рдлрд┐рдВрдЧрд░ рд╡реЗрд╡рд▓реЗрдЯ рд╕рдВрдкреАрдбрд╝рди: рдЕрднреНрдпрд╛рд╕


рдкрд┐рдЫрд▓реА рдкреЛрд╕реНрдЯ рдореЗрдВ, рд╣рдордиреЗ рдЕрд╕рддрдд рддрд░рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЫрд╡рд┐ рд╕рдВрдкреАрдбрд╝рди рдХреА рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рдиреАрдВрд╡ рдХреА рдЬрд╛рдВрдЪ рдХреАред рдФрд░ рдпрджреНрдпрдкрд┐ рдХрдИ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдореБрджреНрджреЗ рдирд╣реАрдВ рдЙрдард╛рдП рдЧрдП рдереЗ, рдкреНрд░рд╛рдкреНрдд рдкрд░рд┐рдгрд╛рдо рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИрдВред

рдХреЗ рд▓рд┐рдП рд╢рдмреНрдж рдХреНрдпрд╛ рд╣реИрдВ? рдЪрд▓реЛ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдЬреЛ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд░рддрд╛ рд╣реИ! (рдХрдЯ рдХреЗ рдиреАрдЪреЗ рдмрд╣реБрдд рд╕рд╛рд░реА рддрд╕реНрд╡реАрд░реЗрдВ рд╣реИрдВ!)



рдЙрдкрдХрд░рдг



рд╣рдо рдкрд╛рдпрдерди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдореЗрдВ рд▓рд┐рдЦреЗрдВрдЧреЗред рд╣рд╛рдВ, рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдореБрдЭреЗ рдЕрдкрдиреА рдкрд╕рдВрджреАрджрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдореЗрдВ рдХреЛрдб рдХреЗ рд╕рд╛рде рдкреНрд░рд╕реНрддреБрддрд┐ рдХреЛ рдЪрд┐рддреНрд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред рд▓реЗрдХрд┐рди рдкрд╛рдпрдерди рдореБрдЭреЗ рдЕрдкрдиреА рдЪрд░рдо рд╕рд╛рджрдЧреА рдХреЗ рдХрд╛рд░рдг рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рд▓рдЧрддрд╛ рд╣реИ (рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдПрдХ рд╡реНрдпрд╛рдЦреНрдпрд╛рдпрд┐рдд рдЫрджреНрдордХреЛрдб рд╣реИ)ред

рд╣рдореЗрдВ рдПрдХ рджреБрднрд╛рд╖рд┐рдпрд╛ рдФрд░ рдПрдХ рдкреАрдЖрдИрдПрд▓ рд▓рд╛рдЗрдмреНрд░реЗрд░реА (рдкрд╛рдпрдерди рдЗрдореЗрдЬрд┐рдВрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реА) рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдкрд╛рд╕ рдЙрдиреНрд╣реЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд┐рд░реНрджреЗрд╢ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╡рд╣рд╛рдВ рдирд╣реАрдВ рд░реБрдХреВрдВрдЧрд╛ред

рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬреЛ рдореИрдВ рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рд╡рд╣ рд╣реИ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП ipython рдиреЛрдЯрдмреБрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред рдПрдХ рдЕрджреНрднреБрдд рдмрд╛рдд, рдПрдХ рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЬреЛ рдореИрдердореИрдЯрд┐рдХ рдкреИрдХреЗрдЬ рд╕реЗ рдорд┐рд▓рддрд╛ рдЬреБрд▓рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкрд╛рдпрдерди рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдмрд▓ рд╣реИред

рдкрд┐рдЫрд▓реА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХрд╛ рд╕рд╛рд░рд╛рдВрд╢



рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рдкрддрд╛ рд▓рдЧрд╛ рд▓рд┐рдпрд╛ рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЫрд╡рд┐рдпреЛрдВ рдореЗрдВ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рдХреА рдПрдХ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рд╣реИред рдпрд╣ рдЕрддрд┐рд░реЗрдХ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдкрдбрд╝реЛрд╕реА рдкрд┐рдХреНрд╕реЗрд▓ рдЪрдордХ рдореВрд▓реНрдп рдХрд╛рдлреА рдЖрд╕рд╛рдиреА рд╕реЗ рдмрджрд▓рддреЗ рд╣реИрдВред рд╣рдордиреЗ рдпрд╣ рднреА рд╕реАрдЦрд╛ рдХрд┐ рдЗрд╕ рдЕрддрд┐рд░реЗрдХ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реИрдЦрд┐рдХ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдорд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд, рдореИрдЯреНрд░рд┐рдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рдЧреБрдгрд╛ред

рдкрд╣рд▓рд╛ рдкрд░рд┐рд╡рд░реНрддрди рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ - рд╣рд╛рд░ рдкрд░рд┐рд╡рд░реНрддрди - рдЪрдордХ рдореВрд▓реНрдпреЛрдВ рдХреЗ рдЬреЛрдбрд╝реЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдкрд░рд┐рд╡рд░реНрддрди рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рдЧреБрдгрд╛ рд╣реИ


рджреВрд╕рд░рд╛ рдкрд░рд┐рд╡рд░реНрддрди - Daubechies D4 рдмрджрд▓ - рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рджреЛ рдореВрд▓реНрдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдЪрд╛рд░ рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдореИрдЯреНрд░рд┐рдХреНрд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрдбрд╝рд╛ рд╣реЛрдЧрд╛ (рднрд╛рд░реА рдЧреБрдгрд╛рдВрдХ c i рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реВрдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ):


рд╣рдордиреЗ рдиреЙрдирд▓рд╛рдЗрдирд┐рдпрд░ рд╕рдореАрдХрд░рдгреЛрдВ рдХреА рдПрдХ рдкреНрд░рдгрд╛рд▓реА рдХреЛ рд╣рд▓ рдХрд░рдХреЗ рд░реВрдкрд╛рдВрддрд░рдг рдЧреБрдгрд╛рдВрдХ рдкрд╛рдпрд╛ред рджреВрд╕рд░реА рдкрдВрдХреНрддрд┐ рдмрд╕ рдмрд╛рд░реА-рдмрд╛рд░реА рд╕реЗ рд╡рд░реНрдгреЛрдВ рдХреЗ рд╕рд╛рде рд░рд┐рд╡рд░реНрд╕ рдСрд░реНрдбрд░ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдЧреБрдгрд╛рдВрдХ рд╣реИрдВред

рдЗрд╕ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ 4 рдЪрдордХ рдорд╛рдиреЛрдВ рдХреЗ рдХреЙрд▓рдо рд╡реЗрдХреНрдЯрд░ рд╕реЗ рдЧреБрдгрд╛ рдХрд░рддреЗ рд╣реБрдП, рд╣рдореЗрдВ рдХреЗрд╡рд▓ рджреЛ рдорд╛рди (рдХрдо-рдЖрд╡реГрддреНрддрд┐ рдФрд░ рдЙрдЪреНрдЪ-рдЖрд╡реГрддреНрддрд┐ рдЧреБрдгрд╛рдВрдХ) рдорд┐рд▓рддреЗ рд╣реИрдВред рдпрд╣ рдЗрд╕ рдЕрдиреНрдпрд╛рдп рдХреЗ рдХрд╛рд░рдг рдареАрдХ рд╣реИ рдХрд┐ рдЪрд╛рд░ рдХреЛ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ "рдУрд╡рд░рд▓реИрдк", 2 рдХреА рд╡реГрджреНрдзрд┐ рдореЗрдВ рд▓рд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдорд╛рди [1, 2, 3, 4] рд╣реИ, рддреЛ рд╣рдореЗрдВ рджреЛ рдЪрд╛рд░ рд▓реЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: [1, 2, 3, 4] (рдЖрд╢реНрдЪрд░реНрдп, рдЖрд╢реНрдЪрд░реНрдп!) рдФрд░ [3, 4, 1, 2]ред рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдЙрддреНрддрд░рд╛рд░реНрджреНрдз рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреА рдПрдХ рдЕрдЬреАрдм рдЙрдкрд╕реНрдерд┐рддрд┐ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджрд╛рдИрдВ рдУрд░ рдкрд░реНрдпрд╛рдкреНрдд рдорд╛рди рдирд╣реАрдВ рдереЗ рдФрд░ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдПрдХ рд╕рд░реНрдХрд▓ рдореЗрдВ рд▓реМрдЯрдирд╛ рдкрдбрд╝рд╛ рдерд╛ред

рд╡реИрд╕реЗ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдкреВрд░реЗ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рд░реВрдк рд╣реЛрдЧрд╛:


рдЗрд╕реА рддрд░рд╣, рдПрдХ рдЙрдЪреНрдЪ рдХреНрд░рдо рдХреЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд▓рд┐рдЦ рд╕рдХрддрд╛ рд╣реИ: рдбреА 6, рдбреА 8, рдФрд░ рдЗрд╕реА рддрд░рд╣ред (рд╕рдВрдЦреНрдпрд╛ рд╣рдореЗрд╢рд╛ рднреА рд╣реЛрддреА рд╣реИред рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪреЗрдВ рдХрд┐ рдХреНрдпреЛрдВред)

рдЪрд▓реЛ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдУ!



рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдордиреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдбреА 4 рддрд░рдВрдЧрд┐рдХрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдЪреБрдирд╛ред рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рд░ рдЧрдгрдирд╛ рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рд╕реВрдЪреА рдореЗрдВ рдЧреБрдгрд╛рдВрдХ рдбрд╛рд▓рддреЗ рд╣реИрдВред

from math import sqrt CL = [(1 + sqrt(3)) / (4 * sqrt(2)), (3 + sqrt(3)) / (4 * sqrt(2)), (3 - sqrt(3)) / (4 * sqrt(2)), (1 - sqrt(3)) / (4 * sqrt(2))] 


L рдЕрдХреНрд╖рд░ рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдпреЗ рдирд┐рдореНрди (L, рдирд┐рдореНрди) рдлрд╝рд┐рд▓реНрдЯрд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдХреЗ рдЧреБрдгрд╛рдВрдХ рд╣реИрдВред

рдпрд╣ рдХрд╛рдлреА рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИред рдпрджрд┐ рд╣рдо рдПрдХ рдФрд░ рдкрд░рд┐рд╡рд░реНрддрди рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдмрд╕ рд╕реВрдЪреА рдХреЛ рдмрджрд▓реЗрдВред

рдЙрдЪреНрдЪ-рдкрд╛рд╕ рдлрд╝рд┐рд▓реНрдЯрд░ (HPF, рдЙрдЪреНрдЪ-рдкрд╛рд╕ рдлрд╝рд┐рд▓реНрдЯрд░) рдХреЗ рдЧреБрдгрд╛рдВрдХ рдПрдХ рдЕрд▓рдЧ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдкрд╛рдП рдЬрд╛рдПрдВрдЧреЗ рдЬреЛ рд╕реВрдЪреА рдХреЛ рд░рд┐рд╡рд░реНрд╕ рдСрд░реНрдбрд░ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕рдВрдХреЗрддреЛрдВ рдХреЛ рд╡реИрдХрд▓реНрдкрд┐рдХ рдХрд░рддрд╛ рд╣реИред

 def hpf_coeffs(CL): N = len(CL) #   CH = [(-1)**k * CL[N - k - 1] #        for k in xrange(N)] return CH 


рдХреЛрд╖реНрдардХ рдореЗрдВ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐, рдпрджрд┐ рдХреЛрдИ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИ, рддреЛ рдПрдХ рд╕реВрдЪреА рдЬрдирд░реЗрдЯрд░ рд╣реИред рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрд╛рдд рд╣реИред

рдкреНрд░рддреНрдпрдХреНрд╖ рдПрдХ рдЖрдпрд╛рдореА рдкрд░рд┐рд╡рд░реНрддрди



рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЧреБрдгрд╛рдВрдХ рд╣реИрдВ, рд╣рдо рд░реВрдкрд╛рдВрддрд░рдг рд╕реНрд╡рдпрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╕реВрдЪреА рд╕реАрдПрд▓ рдФрд░ рд╕реАрдПрдЪ рд╕реЗ рдмрджрд▓реЗ рдореЗрдВ рдЧреБрдгрд╛рдВрдХ рдХреЗ рд╕рд╛рде рднрд╛рд░рд┐рдд рд░рдХрдо рд╡рд╛рд▓рд╛ рдПрдХ рд╕реВрдЪреА рд╣реЛрдЧрд╛ред

рднрд╛рд░рд┐рдд рд░рдХрдо (рдЬреЛрдбрд╝реАрджрд╛рд░ рдЙрддреНрдкрд╛рджреЛрдВ рдХреА рд░рд╛рд╢рд┐) рдХреЙрд▓рдо рд╡реЗрдХреНрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдЙрддреНрдкрд╛рдж рд╣реИрдВред рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреА рдкрдВрдХреНрддрд┐рдпрд╛рдБ рднреА рдПрдХ рдХрдо-рдкрд╛рд╕ рдлрд╝рд┐рд▓реНрдЯрд░ рд╣реИрдВ, рдФрд░ рд╡рд┐рд╖рдо рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдПрдХ рдЙрдЪреНрдЪ-рдкрд╛рд╕ рдлрд╝рд┐рд▓реНрдЯрд░ рд╣реИрдВред рдпрд╣реАрдВ рд╕реЗ рдмрд╛рд░реА рдЖрддреА рд╣реИред

рдЧрдгрд┐рдд рдореЗрдВ рдПрдХ рдФрд░ рд╕реВрдЪреА "рдЧрдгрдирд╛" рдХреЗ рд╕рд╛рде рдЧрдгрдирд╛ рдХреА рдЧрдИ рднрд╛рд░рд┐рдд рд░рдХрдореЛрдВ рдХреА рд╕реВрдЪреАред рдлреВрд░рд┐рдпрд░ рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЗрди рд╕рдВрдХрд▓реНрдкреЛрдВ рдХреА рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рднрд╛рд╡реА рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд╣реИрдВред (рдЕрдЪрд╛рдирдХ, рдХреНрдпрд╛ рдпрд╣ рд╣реИ? рдлреВрд░рд┐рдпрд░ рд░реВрдкрд╛рдВрддрд░рдг рд╕рд╛рдЗрди рдФрд░ рдХреЛрдЬрд╛рдЗрди рд╣реИ, рдФрд░ рдЕрдЪрд╛рдирдХ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?) рд▓реЗрдХрд┐рди рд╣рдо рд╕рд╛рджрдЧреА рдХреЗ рд╕рдорд░реНрдердХ рд╣реИрдВ рдФрд░ рд╣рдо рд╕рдордпрдкреВрд░реНрд╡ рдЕрдиреБрдХреВрд▓рди рдХреЗ рд╕рд╛рде рд╕реМрджрд╛ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред рдорд╛рдереЗ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░реЗрдВ, рдпрд╣ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд╣реИред рдФрд░ рд╣рдо рдПрдХ рдЕрднреНрдпрд╛рд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рдардХ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рди рдФрд░ рд╕реБрдВрджрд░ рд╣реИрдХ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВред

рд╣рдо рдлрд╝рдВрдХреНрд╢рди рдХреЛ pconv рдХрд╣рддреЗ рд╣реИрдВред рдкреА - рд╢рдмреНрдж рдЬреЛрдбрд╝реА (рдЬреЛрдбрд╝реА), рдФрд░ рдХрдирд╡ - рдХрдирд╡рд▓реНрд╢рди (рджреГрдврд╝ рд╕рдВрдХрд▓реНрдк) рд╕реЗред

 def pconv(data, CL, CH, delta = 0): assert(len(CL) == len(CH)) #       N = len(CL) M = len(data) out = [] #   ,   for k in xrange(0, M, 2): #   0, 2, 4тАж sL = 0 #   sH = 0 #   for i in xrange(N): #     sL += data[(k + i - delta) % M] * CL[i] sH += data[(k + i - delta) % M] * CH[i] out.append(sL) #     out.append(sH) return out 


рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдбреЗрд▓реНрдЯрд╛ рдорд╛рди рдХреНрдпрд╛ рд╣реИ, рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╢реВрдиреНрдп рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред рдпрд╣ рд╣рдореЗрдВ рдкрд╣рд▓реЗ рддрддреНрд╡ рд╕реЗ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдПрдХ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдХрдирд╡рд┐рдХреНрд╢рди рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдмрд╛рдж рдореЗрдВ рдХрд╛рдо рдЖрдПрдЧрд╛ред

рднрд╛рд░рд┐рдд рдорд╛рддреНрд░рд╛рдУрдВ рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╕рдордп рд╢реЗрд╖ (рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ "% M") рдХреА рдЧрдгрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рддрд╛рдХрд┐ рд╕реВрдЪреА рдХреА рд╕реАрдорд╛рдУрдВ рд╕реЗ рдкрд░реЗ рди рдЬрд╛рдПрдВред рдпрджрд┐ M = 4, рдФрд░ рд╕реВрдЪрдХрд╛рдВрдХ рдЕрдЪрд╛рдирдХ 5 рд╣реЛ рдЧрдпрд╛, рддреЛ рд╣рдо 1 рддрддреНрд╡ рдкрд░ рдлрд┐рд░ рд╕реЗ рд▓реМрдЯреЗрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ 5% 4 рдкрд░рд┐рдгрд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ 1 рджреЗрддрд╛ рд╣реИред

рдЪрд▓рд┐рдП рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдп рдХреЛ рдЕрдкреНрд░рд╛рдХреГрддрд┐рдХ рд╣рд░ рдкрд░рд┐рд╡рд░реНрддрди (рдЬреЛ рдЖрдзрд╛-рдЖрдзрд╛ рдФрд░ рдЖрдзрд╛-рдЕрдВрддрд░ рд╣реИ) рдкрд░ рдкрд░рдЦреЗрдВред

 >>>C = [0.5, 0.5] >>>pconv([1, 2, 3, 4], C, hpf_coeffs(C)) [1.5, -0.5, 3.5, -0.5] 


рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ!

рдФрд░ рд╡рд╛рдкрд╕?



рдЬреИрд╕рд╛ рдХрд┐ рдкрд╛рдардХ рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВ, рд╣рдордиреЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЕрдкрдиреЗ рдореЗрдЯреНрд░рд┐рд╕реЗрд╕ рдХреЛ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рд╣реИ рддрд╛рдХрд┐ рдЙрд▓рдЯрд╛ рд░реВрдкрд╛рдВрддрд░ рдпрдерд╛рд╕рдВрднрд╡ рд╕рд░рд▓ рд╣реЛред рдореЗрдЯреНрд░рд┐рд╕реЗрд╕ рдПрдЪ рдФрд░ рдбреА 4 рдХреА рдСрд░реНрдереЛрдЧреЛрдирд▓рд┐рдЯреА рдХреЗ рдХрд╛рд░рдг, рдЙрдирдХреЗ рд▓рд┐рдП рдЙрд▓рдЯрд╛ рдореИрдЯреНрд░рд┐рд╕ рд╕рд░рд▓ рдЯреНрд░рд╛рдВрд╕рдкреЛрдЬрд┐рд╢рди рджреНрд╡рд╛рд░рд╛ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рдкрд░рд┐рд╡рд░реНрддрди рдореИрдЯреНрд░рд┐рдХреНрд╕ рдбреА 4 рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдордирдорд╛рдиреА рд▓рдВрдмрд╛рдИ рдХреЗ рдПрдХ рд╕реНрддрдВрдн рд╡реЗрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП:


рдкрд┐рдХреНрд╕реЗрд▓ рдЪрдордХ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдХреЙрд▓рдо рд╡реЗрдХреНрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдЗрд╕ рддрд░рд╣ рдХреЗ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рдЧреБрдгрд╛ рдХрд░рдиреЗ рд╕реЗ рд╣рдореЗрдВ рд╕рдЬрд╛рд╡рдЯреА рдореВрд▓реНрдп рдорд┐рд▓рддреЗ рд╣реИрдВред рд╕рдЪ рд╣реИ, рдореИрдЯреНрд░рд┐рдХреНрд╕ рдмрд╣реБрдд рдмрдбрд╝рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рдЧреБрдгрд╛ рдХреЗ рдмрдЬрд╛рдп, рд╣рдордиреЗ рдПрдХ рджреГрдврд╝ рд╕рдВрдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред

рд╡реНрдпреБрддреНрдХреНрд░рдо рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рдЯреНрд░рд╛рдВрд╕рдкреЛрдЬрд╝ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:


рдореВрд▓ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд╕рдорд╛рди, рд▓реЗрдХрд┐рди рдирд┐рдЪрд▓реЗ рдмрд╛рдПрдВ рдХреЛрдиреЗ рдореЗрдВ рдХреЛрдИ рдЪреМрдХреЛрд░ рдЯреБрдХрдбрд╝рд╛ рдирд╣реАрдВ рд╣реИред рдпрджреНрдпрдкрд┐ рдпрджрд┐ рдЖрдк рдЕрдВрддрд┐рдо рджреЛ рдХреЙрд▓рдореЛрдВ рдХреЛ "рдХрдЯ" рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЗрд╕реЗ "рдЧреЛрдВрдж" рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдПрдХ рд╣реА рдЖрдХрд╛рд░ рдХрд╛ рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдорд┐рд▓реЗрдЧрд╛ (рдпрджреНрдпрдкрд┐ рд╡рд┐рднрд┐рдиреНрди рдЧреБрдгрд╛рдВрдХ рдХреЗ рд╕рд╛рде) рдФрд░ рд╣рдо рддреИрдпрд╛рд░-рдХрд┐рдП рдЧрдП pconv рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕реЗ рд░реЛрдХреЛ! рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдбреЗрд▓реНрдЯрд╛ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИ, рдЬреЛ рд╕реНрд░реЛрдд рдбреЗрдЯрд╛ рдореЗрдВ рдСрдлрд╕реЗрдЯ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рдХрд╛рдЯрдиреЗ рдФрд░ gluing рд╣реИред рдбреЗрд▓реНрдЯрд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рд░рд╣рд╕реНрдп рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ!

D4 рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ D6, рдЪрд╛рд░, рдЖрджрд┐ рдХреЗ рд▓рд┐рдП рдЕрдВрддрд┐рдо 2 рдХреЙрд▓рдо "рдХрдЯ" рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЫреЛрдЯреА рдмрд╛рдд рдЙрд▓реНрдЯреЗ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рдЧреБрдгрд╛рдВрдХ рдХреЗ рдХреНрд░рдо рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╣реИред рдбреА 4 рдХреЗ рд▓рд┐рдП, рдЖрджреЗрд╢ рд╕реНрдкрд╖реНрдЯ рд╣реИ:


рд▓реЗрдХрд┐рди рдбреА 6, рдбреА 8 рдФрд░ рдЕрдиреНрдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? рдЖрдЗрдП рдкрд░рд┐рд╡рд░реНрддрди рдореИрдЯреНрд░рд┐рдХреНрд╕ D4 рдХреЛ рджреЗрдЦреЗрдВред рд╣рдо рдЯреНрд░рд╛рдВрд╕рдкреЛрдЬреНрдб рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рдд, рдореВрд▓ рдХреЗ рдХреЙрд▓рдоред

рд╣рдорд╛рд░реЗ рд╡реИрдХреНрдЯрд░ рддреАрд╕рд░реЗ рдФрд░ рдЪреМрдереЗ рд╕реНрддрдВрдн рд╣реИрдВред рд░реВрдкрд╛рдВрддрд░рдг рдЖрджреЗрд╢ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рд▓рд╛рдЗрди рд╢рд┐рдлреНрдЯ рд╣рдореЗрд╢рд╛ рджреЛ рддрддреНрд╡реЛрдВ рджреНрд╡рд╛рд░рд╛ рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкреИрдЯрд░реНрди рдпрд╣ рд╣реИред

рдкрд╣рд▓рд╛ рд╡реЗрдХреНрдЯрд░:
[рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдХрд╛ рдкрд╣рд▓рд╛ рддрддреНрд╡, рджреВрд╕рд░реА рдХрд╛ рдкрд╣рд▓рд╛ рддрддреНрд╡, рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдХрд╛ рдкрд╣рд▓рд╛ рддрддреНрд╡ (рдпрд╣ рддреАрд╕рд░реА рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ), рджреВрд╕рд░реА рдХрд╛ рдкрд╣рд▓рд╛ рддрддреНрд╡]ред

рджреВрд╕рд░рд╛ рд╡реЗрдХреНрдЯрд░:
[рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдХрд╛ рдЕрдВрддрд┐рдо рддрддреНрд╡, рджреВрд╕рд░реА рдХрд╛ рдЕрдВрддрд┐рдо рддрддреНрд╡, рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдХрд╛ рджреВрд╕рд░рд╛ рддрддреНрд╡ (рдпрд╣ рддреАрд╕рд░реА рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ), рджреВрд╕рд░реА рдХрд╛ рджреВрд╕рд░рд╛ рддрддреНрд╡]ред

рдпрд╣реА рд╣реИ, рдЧреБрдгрд╛рдВрдХреЛрдВ рдХреЛ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рд╕реАрдПрд▓ рдФрд░ рд╕реАрдПрдЪ рдХреЗ рдЪрд░рдг 2 рдореЗрдВ рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЙрд▓реНрдЯреЗ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреА рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдпрд╛ рджреВрд╕рд░реА рдкрдВрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдЕрдВрддрд┐рдо рдПрдХ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред

рдпрд╣ рдирд┐рдпрдо D4 рдХреЗ рд▓рд┐рдП рдФрд░ D6 рдХреЗ рд▓рд┐рдП рд╕рд╣реА рд╣реЛрдЧрд╛, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ Haar рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд▓рд┐рдП (рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ D2 рдХреЗ рд╕рдорд╛рди рд╣реА рд╣реИ)ред

рдкрд╛рдЗрдерди рдореЗрдВ, рддрдВрддреБ рддрддреНрд╡ рдХреЛ рдЗрдВрдбреЗрдХреНрд╕ -2 рдФрд░ рдЖрдЦрд┐рд░реА рдореЗрдВ рдЗрдВрдбреЗрдХреНрд╕ -1 рдореЗрдВ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рдордиреЗ pconv рдореЗрдВ рдЗрд╕ рдЙрдкрдпреЛрдЧреА рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИред

рд╣рдо рд╡реНрдпреБрддреНрдХреНрд░рдо рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рдЧреБрдгрд╛рдВрдХ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдЬреЛ рд╡рд░реНрдгрд┐рдд рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
 def icoeffs(CL, CH): assert(len(CL) == len(CH)) #       iCL = [] #    iCH = [] #    for k in xrange(0, len(CL), 2): iCL.extend([CL[k-2], CH[k-2]]) iCH.extend([CL[k-1], CH[k-1]]) return (iCL, iCH) 


рдЪрд▓реЛ рдЙрд╕рдХреЗ рдХрд╛рдо рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ:
 >>>C = [0, 1, 2, 3] >>>icoeffs(C, hpf_coeffs(C)) ([2, 1, 0, 3], [3, 0, 1, -2]) 


рдмрд╛рдзрд╛рдУрдВ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкреБрдирдГ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

рдЖрдк рдХреБрдЫ рд╕реВрдЪреА рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЬреИрд╕реЗ, [0, 1, 2, 3]), рдФрд░ рдлрд┐рд░ рдЕрджреГрд╢реНрдп рдкрд░рд┐рд╡рд░реНрддрди рдХрд░ рд░рд╣реЗ рд╣реИрдВред
 >>>CL = [(1 + sqrt(3)) / (4 * sqrt(2)), >>> (3 + sqrt(3)) / (4 * sqrt(2)), >>> (3 - sqrt(3)) / (4 * sqrt(2)), >>> (1 - sqrt(3)) / (4 * sqrt(2))] >>>X = [0, 1, 2, 3] >>>CH = hpf_coeffs(CL) >>>iCL, iCH = icoeffs(CL, CH) >>>Y = pconv(X, CL, CH) >>>X2 = pconv(Y, iCL, iCH, len(CL) - 2) [2.5077929123346285e-16, 1.0, 1.9999999999999991, 2.9999999999999991] 


рдХреНрдпрд╛ рдмрдХрд╡рд╛рд╕ рд╣реИ! рдпрд╣ рдлрд┐рд░ рд╕реЗ рдирд┐рдХрд▓рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП [0, 1, 2, 3]! рдмрдВрдж рдХрд░реЛ, рдЭреВрдард╛ рдЕрд▓рд╛рд░реНрдоред рдкрд╣рд▓рд╛ рдирдВрдмрд░ рдмрд╕ рд╣реИ , рдпрд╛рдиреА рд▓рдЧрднрдЧ рд╢реВрдиреНрдпред рд╢реЗрд╖ рд╕рдВрдЦреНрдпрд╛рдПрдВ рднреА рдореВрд▓ рдХреЗ рдХрд░реАрдм рд╣реИрдВред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдЕрдкрд░рд┐рдореЗрдп рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЧреЛрд▓рд╛рдИ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдЕрдкрд░рд┐рд╣рд╛рд░реНрдп рд╣реИрдВред

рджреЛ рдЖрдпрд╛рдореА рдкрд░рд┐рд╡рд░реНрддрди



рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдпреЗ рдкрд░рд┐рд╡рд░реНрддрди рдПрдХ рдЖрдпрд╛рдореА рд╣реИрдВ! рдФрд░ рдЬрд┐рди рдЪрд┐рддреНрд░реЛрдВ рдХреЛ рд╣рдо рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВ, рд╡реЗ рдмрд╣реБрдд рджреНрд╡рд┐-рдЖрдпрд╛рдореА рд╣реИрдВред рд▓реЗрдХрд┐рди рдпрд╣ рдЖрд╕рд╛рдиреА рд╕реЗ рд╣рд▓ рд╣реИред рджреЛ-рдЖрдпрд╛рдореА рддрд░рдВрдЧрд┐рдХрд╛ рд░реВрдкрд╛рдВрддрд░рдг рд╕рднреА рд▓рд╛рдЗрдиреЛрдВ рдкрд░ рдПрдХ рдЖрдпрд╛рдореА рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рд╕рднреА рд╕реНрддрдВрднреЛрдВ рдкрд░ (рдпрд╛ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рд╕реНрд╡рд╛рдж рдХреЗ рд▓рд┐рдП)ред

рд╣рдо рд╕рдВрдЦреНрдпрд╛-рдЖрдзрд╛рд░рд┐рдд PIL рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред рдФрд░ рджреНрд╡рд┐-рдЖрдпрд╛рдореА рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рддрддреНрд╡реЛрдВ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХрд╛ рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рддрд░реАрдХрд╛ рд╣реИред

рдпрджрд┐ рд╣рдорд╛рд░реА рдЫрд╡рд┐ рдХреЗ рдкрд┐рдХреНрд╕реЗрд▓ рдХрд╛ рдЪрдордХ рдорд╛рди рдЪрд░ рдЫрд╡рд┐ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдк рдирд┐рдореНрди рдХреЗ рд░реВрдк рдореЗрдВ 4 рдХреЗ рдЪрдордХ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд░реЗрдЦрд╛, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
 image[4, :] 


рдФрд░ 3 рдХреЙрд▓рдо рдореЗрдВ рдЪрдордХ рдХреА рд╕реВрдЪреА рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
 image[:, 3] 


рдЖрдЗрдП рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫрд╡рд┐ рд▓реЗрдВред рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рдЖрдпрд╛рдо рджреЛ рдХреА рд╢рдХреНрддрд┐рдпрд╛рдВ рд╣реИрдВ! (рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рд╡реЗ рднреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рд╣рдо рдмрд╛рд░-рдмрд╛рд░ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░реЗрдВрдЧреЗред)

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдЗрд╕реЗ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ (рдЪреВрдВрдХрд┐ рд▓реАрдирд╛ рд╕рднреА рд╕реЗ рддрдВрдЧ рдЖ рдЪреБрдХреА рд╣реИ):


рдЗрд╕рдореЗрдВ 512 ├Ч 512 рдХреЗ рдЖрдпрд╛рдо рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╣рдореЗрдВ рд╕реВрдЯ рдХрд░рддрд╛ рд╣реИред

рдЗрд╕реЗ рдореЗрдореЛрд░реА рдореЗрдВ рд▓реЛрдб рдХрд░реЗрдВ (рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдХрд╛рд▓реЗ рдФрд░ рд╕рдлреЗрдж рд░реВрдк рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛрдиреЗ рдФрд░ рдЪрдордХ рдХрд╛ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП):
 import PIL.Image as Image image = Image.open('/tmp/boat.png').convert('L') image = array(image) / 255.0 #   тАФ [0, 1] imshow(image, cmap=cm.gray) #    


рд╕реНрдХреНрд░реАрди рдкрд░ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:


рддреЛ, рдЫрд╡рд┐ рдЪрд░ рдЪрдордХ рдХрд╛ рдПрдХ рд╕рд░рдгреА рд╣реИред

рд╣рдо рдПрдХ рджреНрд╡рд┐-рдЖрдпрд╛рдореА рддрд░рдВрдЧрд┐рдХрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦрддреЗ рд╣реИрдВред рдмрд╛рд░реА-рдмрд╛рд░реА рд╕реЗ рдХрдо рдФрд░ рдЙрдЪреНрдЪ рдЖрд╡реГрддреНрддрд┐ рд╡рд╛рд▓реЗ рдЧреБрдгрд╛рдВрдХ рдмрджрд╕реВрд░рдд рджрд┐рдЦрддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░реЗрдВред рдХрдо рдЖрд╡реГрддреНрддрд┐ - рдмрд╛рдИрдВ рдФрд░ рдКрдкрд░, рдЙрдЪреНрдЪ рдЖрд╡реГрддреНрддрд┐ - рджрд╛рдИрдВ рдУрд░ рдФрд░ рдиреАрдЪреЗред

рдЪреВрдВрдХрд┐ рд░реВрдкрд╛рдВрддрд░рдг рдкрдВрдХреНрддрд┐-рд╡рд╛рд░ рдФрд░ рдХреЙрд▓рдо-рд╡рд╛рд░ рджреЛрдиреЛрдВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдХрдо рдЖрд╡реГрддреНрддрд┐ рд╡рд╛рд▓реЗ рдЧреБрдгрд╛рдВрдХ рдЬреЛ рдореВрд▓ рдЫрд╡рд┐ рдХреА рдПрдХ рдЫреЛрдЯреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рддреЗ рд╣реИрдВ, рдКрдкрд░реА рдмрд╛рдПрдВ рдХреЛрдиреЗ рдореЗрдВ рд╕рдореВрд╣реАрдХреГрдд рд╣реЛрддреЗ рд╣реИрдВред

 def dwt2(image, CL): CH = hpf_coeffs(CL) #    w, h = image.shape #   imageT = image.copy() #      for i in xrange(h): #   imageT[i, :] = pconv(imageT[i, :], CL, CH) for i in xrange(w): #   imageT[:, i] = pconv(imageT[:, i], CL, CH) #     data = imageT.copy() data[0:h/2, 0:w/2] = imageT[0:h:2, 0:w:2] data[h/2:h, 0:w/2] = imageT[1:h:2, 0:w:2] data[0:h/2, w/2:w] = imageT[0:h:2, 1:w:2] data[h/2:h, w/2:w] = imageT[1:h:2, 1:w:2] return data 


рдЖрдЗрдП рдкрд░рд┐рд╡рд░реНрддрди рдбреА 4 рдкрд░ рд╣рдорд╛рд░реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ, рдЬрд┐рд╕рдХреЗ рдЧреБрдгрд╛рдВрдХ рд╣рдо рд╕реАрдПрд▓ рдФрд░ рд╕реАрдПрдЪ рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВред
 data2 = dwt2(image, CL) imshow(data2, cmap=cm.gray) 


рдореИрдВ рдЖрдкрдХреЛ рддреБрд░рдВрдд рдЪреЗрддрд╛рд╡рдиреА рджреЗрддрд╛ рд╣реВрдВ! рдЪреВрдВрдХрд┐ рд╣рдордиреЗ рдХреБрдЫ рднреА рдЕрдиреБрдХреВрд▓рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдпрд╣ рдзреАрд░реЗ-рдзреАрд░реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдореЗрд░реА рд╡рд┐рдирдореНрд░ рдиреЗрдЯрдмреБрдХ рдкрд░, рдЧрдгрдирд╛ рдореЗрдВ рдЖрдзрд╛ рджрд░реНрдЬрди рд╕реЗрдХрдВрдб рд▓рдЧреЗред

рдкрд░рд┐рдгрд╛рдо рдРрд╕реА рддрд╕реНрд╡реАрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред


рд╕рдм рдХреБрдЫ, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдореЗрдВ рдЙрдореНрдореАрдж рдереА! рдХреЛрдиреЗ рдореЗрдВ рдПрдХ рдЫреЛрдЯреА рд╕реА рдЫрд╡рд┐ рдФрд░ рдЫреЛрдЯреЗ moduli (рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд▓рд╛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ) рдмрд╛рдХреА рдореЗрдВ рдЧреБрдгрд╛рдВрдХред

рдФрд░ рдпрд╣рд╛рдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдЫрд╡рд┐ рдХреА 50 рд╡реАрдВ рдкрдВрдХреНрддрд┐ рдХреЗ рд╕рд╛рде рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдПрдХ рдЧреНрд░рд╛рдл рд╣реИред


рдпрд╣ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдкрд╣рд▓реА рдЫрдорд╛рд╣реА рдореЗрдВ, рдЗрд╕реА рдХрдо рдХреА рдЧрдИ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐, рднрд┐рдиреНрдирддрд╛ рдХреА рд╕реАрдорд╛ рдЕрдзрд┐рдХ рд╣реИ, рдЬрдмрдХрд┐ рдЙрдЪреНрдЪ рдЖрд╡реГрддреНрддрд┐ рд╡рд╛рд▓реЗ рдЧреБрдгрд╛рдВрдХ рд╢реВрдиреНрдп рдХреЗ рдХрд░реАрдм рд╣реИрдВред

рдЖрдк рд╣рд╛рд░ рддрд░рдВрдЧ рдХреЗ рд╕рд╛рде рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
 C = [1/sqrt(2), 1/sqrt(2)] data3 = dwt2(image, C) imshow(data3, cmap=cm.gray) 




рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрдЪреНрдЫреА рджреГрд╖реНрдЯрд┐ рдФрд░ рдПрдХ рдореЙрдирд┐рдЯрд░ рд╣реИ, рддреЛ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдЙрдЪреНрдЪ рдЖрд╡реГрддреНрддрд┐ рд╡рд╛рд▓реЗ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВред рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ - рдЖрдЦрд┐рд░рдХрд╛рд░, рдХреЗрд╡рд▓ рд░реИрдЦрд┐рдХ рдШрдЯрдХ рдХреЛ рдпрд╣рд╛рдВ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдбреА 4 рдореЗрдВ - рджреНрд╡рд┐рдШрд╛рдд рдШрдЯрдХ рднреАред

рдпрд╛ рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рд╕реЗ D6 рдХреЗ рд▓рд┐рдП рдЧреБрдгрд╛рдВрдХ рднреА рд▓реЗрддреЗ рд╣реИрдВ (рдЙрдиреНрд╣реЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордд рднреВрд▓рдирд╛ рд╡реЗ рд╡рд╣рд╛рдВ рджреЛ рдкрд░ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рд╣реЛрддреЗ рд╣реИрдВ)ред рдФрд░ рд╕рдмрд╕реЗ рд╕рд╛рд╣рд╕реА рдЖрдорддреМрд░ рдкрд░ рдЧреБрдгрд╛рдВрдХ рдХреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЙрдЪреНрдЪрддрд░ рд░реВрдкрд╛рдВрддрд░рдг рдХреНрд░рдо, рдЙрдЪреНрдЪ-рдЖрд╡реГрддреНрддрд┐ рдЧреБрдгрд╛рдВрдХ рд╡рд╛рд▓реЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдЧрд╣рд░рд╛ рдХрд░рддрд╛ рд╣реИред

рдЙрд▓рдЯрд╛ рджреЛ рдЖрдпрд╛рдореА рдкрд░рд┐рд╡рд░реНрддрди



рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рджреЛ рдЖрдпрд╛рдореА рдкрд░рд┐рд╡рд░реНрддрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдорд╣рд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреМрд╢рд▓ рдЙрд▓рдЯрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдмрд┐рдирд╛ рдмреЗрдХрд╛рд░ рд╣реИред

рдпрд╣ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ рд╣рдо рд╕реАрдзреЗ рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рд╕рд╛рде рд╣реА рдХрджрдо рдЙрдард╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд░рд┐рд╡рд░реНрд╕ рдСрд░реНрдбрд░ рдореЗрдВред рдФрд░ pconv рдореЗрдВ рдЕрдиреНрдп рдЧреБрдгрд╛рдВрдХ рдФрд░ рдЧреИрд░-рд╢реВрдиреНрдп рдбреЗрд▓реНрдЯрд╛ рдореВрд▓реНрдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдордд рднреВрд▓рдирд╛ред

 def idwt2(data, CL): w, h = data.shape #   #      imageT = data.copy() imageT[0:h:2, 0:w:2] = data[0:h/2, 0:w/2] imageT[1:h:2, 0:w:2] = data[h/2:h, 0:w/2] imageT[0:h:2, 1:w:2] = data[0:h/2, w/2:w] imageT[1:h:2, 1:w:2] = data[h/2:h, w/2:w] CH = hpf_coeffs(CL) iCL, iCH = icoeffs(CL, CH) image = imageT.copy() #      for i in xrange(w): #   image[:, i] = pconv(image[:, i], iCL, iCH, delta=len(iCL)-2) for i in xrange(h): #   image[i, :] = pconv(image[i, :], iCL, iCH, delta=len(iCL)-2) return image 


рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдЗрдореЗрдЬ рдЗрдореЗрдЬ 2 рдХрд╛ рдЙрд▓рдЯрд╛ рд░реВрдкрд╛рдВрддрд░рдг рдХрд░рддреЗ рд╣реИрдВред
 >>>image_rec = idwt2(image2, CL) >>>imshow(image_rec, cmap=cm.gray) 




рд╣рдореЗрдВ рдореВрд▓ рдЫрд╡рд┐ рдорд┐рд▓реА (рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдпрд╛ рдмрд╣реБрдд, рдмрд╣реБрдд рд╕рдорд╛рди), рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ!

рд╡рд╣рд╛рдВ рд░реБрдХрдирд╛ рдордд!



рдЦреИрд░, рд╣рдореЗрдВ рд╢реВрдиреНрдп рдЧреБрдгрд╛рдВрдХ рдХреЗ рдмрд╣реБрдд рдХрд░реАрдм рдорд┐рд▓рд╛ред рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрднреА рднреА рдПрдХ рдЪреМрдерд╛рдИ рдЪрд┐рддреНрд░ рдХрдо рдЖрд╡реГрддреНрддрд┐ рдбреЗрдЯрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛? рдпрд╣ рдКрдкрд░реА рдмрд╛рдПрдБ рдХреЛрдиреЗ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдХреЗ рдПрдХ рд▓реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рдЫреЛрдЯрд╛ рди рд╣реЛ рдЬрд╛рдПред

рддрд░рдВрдЧрд┐рдХрд╛ рдбреА 4 рдХреЗ рд▓рд┐рдП, "рдХреЛрдиреЗ" рдХрд╛ рдЕрдзрд┐рдХрддрдо рдЖрдХрд╛рд░ 4 ├Ч 4 рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЫреЛрдЯреА рдЫрд╡рд┐ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрдЧрд╛ - 4 рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЧреБрдгрд╛рдВрдХ рджреНрд╡рд╛рд░рд╛ рдЧреБрдгрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдорд╛рди рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, D4 рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕рдорд╛рди рдкреБрдирд░рд╛рд╡рд░реНрддреА рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХреНрд░рдорд╛рджреЗрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
 data = image.copy() w, h = data.shape while w >= len(CL) && h >= len(CL): data[0:w, 0:h] = dwt2(data[0:w, 0:h], CL) w /= 2 h /= 2 imshow(data, cmap=cm.gray) 


рддрд╕реНрд╡реАрд░ рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реИред


рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдорд╛рди рдХрд┐рд╕ рд╢реНрд░реЗрдгреА рдореЗрдВ рдмрджрд▓рддреЗ рд╣реИрдВред рдпрд╣рд╛рдБ рд╢реВрдиреНрдп рд░реЗрдЦрд╛ рд╕реЗ рдорд╛рдиреЛрдВ рдХрд╛ рдПрдХ рдЧреНрд░рд╛рдл рд╣реИред


рдкрд╣рд▓реЗ рдХреБрдЫ рдореВрд▓реНрдп рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдСрдл рд╕реНрдХреЗрд▓ рд╣реИрдВред рд▓реЗрдХрд┐рди рдмрд╛рдХреА рд╕рдм рдЫреЛрдЯреЗ рд╣реИрдВред

рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣рдЯрд╛ рджреЗрдВ



рдФрд░ рдЕрдм рд╣рдо рд╡рд╣ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдо рд╕рднреА рд╕реЛрдЪрддреЗ рдереЗ - рд╣рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╢реВрдиреНрдп рдорд┐рд▓рддреЗ рд╣реИрдВ!

рдпрд╣ рдХрдИ рддрд░реАрдХреЛрдВ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдВрдХреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХ рд╕рдВрдЦреНрдпрд╛ (рдкрд░рд┐рдорд╛рдгреАрдХрд░рдг рдХрд╛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓рд╛) рдХреЗ рд▓рд┐рдП рдорд╛рдиреЛрдВ рдХреЛ рдЧреЛрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕реЗ рдЖрд╕рд╛рди рдХрд░реЗрдВрдЧреЗ - рд╣рдо рдЧреБрдгрд╛рдВрдХ рдХреЛ рдмрджрд▓ рджреЗрдВрдЧреЗ, рдЬреЛ рд╢реВрдиреНрдп рд╕реЗ рдХреБрдЫ рдореВрд▓реНрдп рдХреЗ рдкреВрд░реНрдг рдореВрд▓реНрдп рдореЗрдВ рдЫреЛрдЯреЗ рд╣реИрдВред

рдРрд╕реА рд╕реАрдорд╛ рдореВрд▓реНрдп рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо 0.05 рд▓реЗрддреЗ рд╣реИрдВред рдЕрдзрд┐рдХ, рдЕрдзрд┐рдХ рд╢реВрдиреНрдп, рд▓реЗрдХрд┐рди рдпрд╣ рднреА рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдиреБрдХрд╕рд╛рди!

 from numpy import abs threshold = 0.05 data[abs(data)<threshold] = 0 


рдЙрд╕рдХреЗ рдмрд╛рдж, рдЧреНрд░рд╛рдл рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЪрд┐рдХрдирд╛ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред


рд╢реВрдиреНрдп рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдВ:
 >>>sum(data == 0) 224000 


рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реИ! рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдЫрд╡рд┐ рдореЗрдВ рдХреЗрд╡рд▓ 512 ├Ч 512 = 262144 рдкрд┐рдХреНрд╕реЗрд▓ рд╣реИрдВ, рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рд╣рдордиреЗ рдЕрднреА рдЙрдкрд▓рдмреНрдз рдЧреБрдгрд╛рдВрдХ рдХрд╛ 85.4% рдЧрд┐рд░рд╛ рджрд┐рдпрд╛ рд╣реИ !!!

рдХреНрдпрд╛ рдЗрд╕рд╕реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЫрд╡рд┐ рдХреЛ рдЪреЛрдЯ рдкрд╣реБрдВрдЪреА?

рдЙрд▓рдЯрд╛ рд░реВрдкрд╛рдВрддрд░рдг рдХрд░реЗрдВред (рдХреИрд╕реЗ рдмрд┐рд▓реНрдХреБрд▓ - рдкрд╛рдардХ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реНрдпрд╛рдпрд╛рдо!)

рдПрдХ рдЫреЛрдЯреА рд╕реА рддрд╕реНрд╡реАрд░ рдореЗрдВ, рд╡рд┐рдХреГрддрд┐рдпреЛрдВ рдХреЛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдирд╣реАрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдкреВрд░реНрдг рдЖрдХрд╛рд░ рдХреЗ рдЪрд┐рддреНрд░ - рдореВрд▓ рдФрд░ рдкреБрдирд░реНрдирд┐рд░реНрдорд┐рдд рдЫрд╡рд┐ рджреЗрдЧрд╛ред



рдЕрдВрддрд░ рдХрд┐рд╕рдиреЗ рджреЗрдЦрд╛ - рдЕрдЪреНрдЫрд╛ рдХрд┐рдпрд╛! рдореИрдВрдиреЗ рдЗрд╕реЗ рдХрдард┐рдирд╛рдИ рд╕реЗ рдкрд╛рдпрд╛ рд╣реИред

рдФрд░ рдпрджрд┐ рдЖрдк 0.1 (92.9% рдЧреБрдгрд╛рдВрдХ рд░реАрд╕реЗрдЯ рдХрд░ рд░рд╣реЗ рд╣реИрдВ) рд▓реЗрддреЗ рд╣реИрдВ?

рдЕрдЪреНрдЫрд╛ рднреА!

рдЕрдм рджрд╣рд▓реАрдЬ рдХреЛ 0.2 (рдЫреЛрдбрд╝реЗ рдЧрдП рдЧреБрдгрд╛рдВрдХ рдХреЗ 96.9%) рдХреЗ рдмрд░рд╛рдмрд░ рд▓реЗрдВред

рдЧрдВрднреАрд░ рд╡рд┐рдХреГрддрд┐рдпрд╛рдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИрдВред

рдФрд░ рдЕрдВрдд рдореЗрдВ, рдЪрд▓реЛ рд╕рдм рдХреБрдЫ рдЫреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ 0.5 рд╕реЗ рдХрдо рдкреВрд░реНрдг рдореВрд▓реНрдп рдореЗрдВ рд╣реИ (99.2% рдЧрд┐рд░рд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред

рдЦреМрдлрдирд╛рдХ рд╕рд╛рдмреБрди! рд▓реЗрдХрд┐рди рд╡рд░реНрдЧреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЪреБрдЯрдХреА JPEGs рдХреЗ рд╡рд┐рдкрд░реАрдд рдирд╣реАрдВ рд╣реИрдВред рд╣рдордиреЗ D4 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рд╛рдмреБрди "рджреНрд╡рд┐рдШрд╛рдд" рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЕрдВрджрд░ рдХреА рдУрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдкреНрд░рд╡реЗрд╢ рд╣реЛрддрд╛ рд╣реИред

рддреБрд▓рдирд╛ рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рдЙрд╕реА рдереНрд░реЗрд╢реЛрд▓реНрдб (рдЕрд░реНрдерд╛рдд, 0.5) рдХреЗ рд╕рд╛рде рдЫрд╡рд┐ рдХреЛ рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди Haar рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдореЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗред


рдЦреМрдл рдХрд╛ рд╕рд╛рдпрд╛! рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд░реИрдЦрд┐рдХ рд╡рд┐рд░реВрдкрдгред рдФрд░ рдХреЗрд╡рд▓ 99.2% рдЧреБрдгрд╛рдВрдХ рдХреЛ рддреНрдпрд╛рдЧ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред D4 рд╕реЗ рднреА рдмрджрддрд░ред

рдирд┐рд╖реНрдХрд░реНрд╖


So.

1. D4 рдХреЗ рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рдмрд╛рдж, рд╣рдо 90% рдЧреБрдгрд╛рдВрдХ рдХреЛ рд╕рд░рд▓ рд╢реВрдиреНрдпрдХрд░рдг рджреНрд╡рд╛рд░рд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рддреНрдпрд╛рдЧ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЧреБрдгрд╡рддреНрддрд╛ рдореЗрдВ рдирд╣реАрдВ рдЦреЛрддреЗ рд╣реИрдВред рдФрд░ рдпрджрд┐ рдЖрдк рдЙрдиреНрдирдд рдкрд░рд┐рдорд╛рдгреАрдХрд░рдг рддрдХрдиреАрдХреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкрд░рд┐рдгрд╛рдо рдЕрднреА рднреА рд╕реБрдзрд╛рд░рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

2. D4 D2 (рд╣реИрд░ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдореЗрд╢рди) рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИред D6, D4 рдЖрджрд┐ рд╕реЗ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдЙрдЪреНрдЪ рдЖрджреЗрд╢, рдЬрд┐рддрдиреА рдЬрд▓реНрджреА рд╣рдореЗрдВ рдКрдкрд░реА рдмрд╛рдПрдВ рдХреЛрдиреЗ рдХреЗ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд░реЛрдХрдирд╛ рд╣реЛрдЧрд╛ред рддреЛ рд╣рд░ рдЪреАрдЬ рдореЗрдВ рдЖрдкрдХреЛ рдЙрдкрд╛рдп рдЬрд╛рдирдирд╛ рдЬрд░реВрд░реА рд╣реИред

рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реИ?


рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдо рдЕрднреА рддрдХ рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВред рд╣рд╛рдВ, рд╣рдордиреЗ 90% рдмрд╛рдзрд╛рдУрдВ рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдпреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЧреБрдгрд╛рдВрдХ рд╣реИрдВ, 8 рдмрд╛рдЗрдЯреНрд╕ рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ! рддреЛ рд╕рдВрдкреАрдбрд╝рди рдмрд╣реБрдд, рдмрд╣реБрдд рдЫреЛрдЯрд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рдЬрдм рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╣реЗрдЬрддреЗ рд╣реИрдВ, рддреЛ рдЧреБрдгрд╛рдВрдХ рдЧреЛрд▓ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рд╕реАрдорд┐рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдмрд┐рдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рднрдВрдбрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдмреЗрд╣рддрд░ рдкреИрдХреЗрдЬрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП, рдЧреБрдгрд╛рдВрдХ рдХреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рддрд░реАрдХреЗ рд╕реЗ рдлрд┐рд░ рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЖрдк рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд▓реЗрдЦ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред

рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рдЖрдк рд╕рд┐рд░реНрдл рдЖрдзреЗ-рд╕рдЯреАрдХ рдлрд╝реНрд▓реЛрдЯрд┐рдВрдЧ-рдкреЙрдЗрдВрдЯ рдирдВрдмрд░реЛрдВ (рдлреНрд▓реЛрдЯ 16) рдХреЗ рд░реВрдк рдореЗрдВ рдЧреБрдгрд╛рдВрдХ рдХреЗ рд╕рд╛рде рд╕рд░рдгреА рдХреЛ рдмрдЪрд╛рддреЗ рд╣реИрдВ, рддреЛ xz рдЕрднрд┐рд▓реЗрдЦрд╛рдЧрд╛рд░ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдкреАрдбрд╝рди рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдЖрдХрд╛рд░ рдореЗрдВ 43604 рдмрд╛рдЗрдЯреНрд╕ рдХреА рдПрдХ рдлрд╝рд╛рдЗрд▓ рдорд┐рд▓рддреА рд╣реИред

рдЗрд╕ рддрд░рд╣ рд╕реЗ рдмрдЪрдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред
 from numpy import save save("boat", data.astype(float16)) 


рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рдХрд╛рд░рдг рд╕рдЯреАрдХрддрд╛ рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдиреБрдХрд╕рд╛рди рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдлреНрд▓реЛрдЯ 16 тЖТ рдлреНрд▓реЛрдЯ 16 рдФрд░ рдорд╛рдереЗ рд╕рдВрдкреАрдбрд╝рди рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ, рд╣рдореЗрдВ рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓рддрд╛ рд╣реИ:


рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ, (512 ├Ч 512) / 43604 1. 6 рдпрд╛ 1.33 рдмрд┐рдЯ / рдкрд┐рдХреНрд╕реЗрд▓ рдХрд╛ рдПрдХ рд╕рдВрдкреАрдбрд╝рди рдХрд╛рд░рдХ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рдЕрдЪреНрдЫреА рдЦрдмрд░ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдордиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рдирд┐рдЪреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА рд╣реИред рдЙрдЪрд┐рдд рдкрд░рд┐рдорд╛рдгреАрдХрд░рдг рдФрд░ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдВрдкреАрдбрд╝рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЗрд╕ рдкрд░рд┐рдгрд╛рдо рдореЗрдВ рдмрд╣реБрдд рд╕реБрдзрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ! рддреЛ рдмрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрдЧрд╣ рд╣реИ! рд▓реЗрдХрд┐рди рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА "рд╢рд╛рдо рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛" рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдкрд░реЗ рд╣реИред рд╢рд╛рдпрдж рдХреБрдЫ рдФрд░ рд╕рдордпред ;)

рдШрд░ рдХрд╛ рдкрд╛рда


1. рджрд┐рдП рдЧрдП рдЯреБрдХрдбрд╝реЛрдВ рдХреЛ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдЗрд╕реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЧреНрд░рд╛рдлрд┐рдХ рдлрд╝рд╛рдЗрд▓, рдереНрд░реЗрд╢реЛрд▓реНрдб рдорд╛рди рдФрд░ рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрдиреЗ рджреЗрдВ, рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЫрд╡рд┐ рдХреЛ рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд░реЗрдВ, рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рд╣реЗрдЬреЗрдВред рдСрдкрд░реЗрд╢рди рдХреЗ рджреЛ рддрд░реАрдХреЗ рдкреНрд░рджрд╛рди рдХрд░реЗрдВ: рд╕рдВрдкреАрдбрд╝рди рдФрд░ рд╡рд┐рдШрдЯрдиред
2. рд╡рд┐рднрд┐рдиреНрди рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдФрд░ рдбрд┐рдХреЛрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧред
3. рдЕрдиреНрдп рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред
4. рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдХрд┐ рдЧреБрдгрд╛рдВрдХ рдХреЛ рдЕрдзрд┐рдХ рдЖрд░реНрдерд┐рдХ рд░реВрдк рд╕реЗ рдХреИрд╕реЗ рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред
5. рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред
6. рд░рдВрдЧ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд░реЗрдВред
7. рдЖрдХрд╛рд░ рдкреНрд░рддрд┐рдмрдВрдз рдХреЛ рд╣рдЯрд╛ рджреЗрдВ (рдЕрднреА рдХреЗ рд▓рд┐рдП, рдЙрдиреНрд╣реЗрдВ рджреЛ рдХреА рд╢рдХреНрддрд┐рдпрд╛рдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП)ред
8. ???
9. рд▓рд╛рдн !!!

рдПрдХ рдФрд░ рдЬреЗрдкреАрдИрдЬреА рд╣рддреНрдпрд╛рд░рд╛ рддреИрдпрд╛рд░ рд╣реИ! ;)

рдЖрдк рд╕рднреА рдХреЛ рдзрдиреНрдпрд╡рд╛рдж! рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рдерд╛!

Source: https://habr.com/ru/post/In169615/


All Articles