рддрд░рдВрдЧ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рднрд╛рдЧ рез

рдкрд░рд┐рдЪрдп


PyWavelets PyWavelets 1.0.3 рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдП рдЧрдП рдЕрд╕рддрдд рддрд░рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди (DWT) рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред PyWavelets MIT рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рддрд╣рдд рдЬрд╛рд░реА рдПрдХ рдирд┐рд╢реБрд▓реНрдХ, рдУрдкрди рд╕реЛрд░реНрд╕ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╣реИред

рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдбреЗрдЯрд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╕рдордп, рдирд┐рд░рдВрддрд░ рддрд░рдВрдЧрд┐рдХрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдПрдХ рд╡рд┐рд╡реЗрдХрд╛рдзреАрди рд╕рдВрд╕реНрдХрд░рдг рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреА рдореВрд▓ рдмрд╛рддреЗрдВ рдореЗрд░реЗ рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рдордирдорд╛рдирд╛ рдХрджрдо anda рдФрд░ arbitb рдХреЗ рд╕рд╛рде рддрд░рдВрдЧрд┐рдХрд╛рдУрдВ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ (рдЕ, рдЦ) рдХреЗ рдЕрд╕рддрдд рдореВрд▓реНрдпреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЧрдгрдирд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдкрд░рд┐рдгрд╛рдо рдЧреБрдгрд╛рдВрдХ рдХреА рдПрдХ рдЕрддреНрдпрдзрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рд╣реИ, рдореВрд▓ рд╕рд┐рдЧреНрдирд▓ рдХреЗ рдирдореВрдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рдЬреЛ рдЗрд╕рдХреЗ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред

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

рдлреВрд░рд┐рдпрд░ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо рдХреЗ рдмрдЬрд╛рдп рд╡реЗрд╡рд▓реЗрдЯ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдм рдХрд░реЗрдВ


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

рдлрд╝реЙрдпрд░ рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдо рдореЗрдВ рдлрд╝реНрд░реАрдХреНрд╡реЗрдВрд╕реА рдбреЛрдореЗрди рдореЗрдВ рдЙрдЪреНрдЪ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рд╣реИ, рд▓реЗрдХрд┐рди рдЯрд╛рдЗрдо рдбреЛрдореЗрди рдореЗрдВ рд╢реВрдиреНрдп рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рд╣реИред рд╣рдо рдЗрд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджреЛ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВред

рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ
import numpy as np from scipy import fftpack from pylab import* N=100000 dt = 1e-5 xa = np.linspace(0, 1, num=N) xb = np.linspace(0, 1/4, num=N/4) frequencies = [4, 30, 60, 90] y1a, y1b = np.sin(2*np.pi*frequencies[0]*xa), np.sin(2*np.pi*frequencies[0]*xb) y2a, y2b = np.sin(2*np.pi*frequencies[1]*xa), np.sin(2*np.pi*frequencies[1]*xb) y3a, y3b = np.sin(2*np.pi*frequencies[2]*xa), np.sin(2*np.pi*frequencies[2]*xb) y4a, y4b = np.sin(2*np.pi*frequencies[3]*xa), np.sin(2*np.pi*frequencies[3]*xb) def spectrum_wavelet(y): Fs = 1 / dt # sampling rate, Fs = 0,1 MHz n = len(y) # length of the signal k = np.arange(n) T = n / Fs frq = k / T # two sides frequency range frq = frq[range(n // 2)] # one side frequency range Y = fftpack.fft(y) / n # fft computing and normalization Y = Y[range(n // 2)] / max(Y[range(n // 2)]) # plotting the data subplot(2, 1, 1) plot(k/N , y, 'b') ylabel('Amplitude') grid() # plotting the spectrum subplot(2, 1, 2) plot(frq[0:140], abs(Y[0:140]), 'r') xlabel('Freq') plt.ylabel('|Y(freq)|') grid() y= y1a + y2a + y3a + y4a spectrum_wavelet(y) show() 


рдЗрд╕ рдЧреНрд░рд╛рдл рдкрд░, рд╕рднреА рдЪрд╛рд░ рдЖрд╡реГрддреНрддрд┐рдпрд╛рдВ рдЗрд╕рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдкреВрд░реЗ рд╕рдордп рдХреЗ рджреМрд░рд╛рди рд╕рд┐рдЧреНрдирд▓ рдореЗрдВ рдореМрдЬреВрдж рд░рд╣рддреА рд╣реИрдВред

рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ
 import numpy as np from scipy import fftpack from pylab import* N=100000 dt = 1e-5 xa = np.linspace(0, 1, num=N) xb = np.linspace(0, 1/4, num=N/4) frequencies = [4, 30, 60, 90] y1a, y1b = np.sin(2*np.pi*frequencies[0]*xa), np.sin(2*np.pi*frequencies[0]*xb) y2a, y2b = np.sin(2*np.pi*frequencies[1]*xa), np.sin(2*np.pi*frequencies[1]*xb) y3a, y3b = np.sin(2*np.pi*frequencies[2]*xa), np.sin(2*np.pi*frequencies[2]*xb) y4a, y4b = np.sin(2*np.pi*frequencies[3]*xa), np.sin(2*np.pi*frequencies[3]*xb) def spectrum_wavelet(y): Fs = 1 / dt # sampling rate, Fs = 0,1 MHz n = len(y) # length of the signal k = np.arange(n) T = n / Fs frq = k / T # two sides frequency range frq = frq[range(n // 2)] # one side frequency range Y = fftpack.fft(y) / n # fft computing and normalization Y = Y[range(n // 2)] / max(Y[range(n // 2)]) # plotting the data subplot(2, 1, 1) plot(k/N , y, 'b') ylabel('Amplitude') grid() # plotting the spectrum subplot(2, 1, 2) plot(frq[0:140], abs(Y[0:140]), 'r') xlabel('Freq') plt.ylabel('|Y(freq)|') grid() y = np.concatenate([y1b, y2b, y3b, y4b]) spectrum_wavelet(y) show() 



рдЗрд╕ рдЧреНрд░рд╛рдл рдкрд░, рд╕рд┐рдЧреНрдирд▓ рд╕рдордп рдкрд░ рдУрд╡рд░рд▓реИрдк рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рд╕рд╛рдЗрдб рд▓реЙрдмреНрд╕ рдЪрд╛рд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХреЗ рдХрд╛рд░рдг рд╣реЛрддреЗ рд╣реИрдВред

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

рддрд░рдВрдЧрд┐рдХрд╛рдУрдВ рдХрд╛ рдореБрдЦреНрдп рдЧреБрдг


рдкреНрд░рдХрд╛рд░ рдХреА рдкрд╕рдВрдж, рдФрд░ рдЗрд╕рд▓рд┐рдП рддрд░рдВрдЧрд┐рдХрд╛ рдХреЗ рдЧреБрдг, рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рдХрд╛рд░реНрдп рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд┐рджреНрдпреБрдд рдКрд░реНрдЬрд╛ рдЙрджреНрдпреЛрдЧ рдореЗрдВ рдзрд╛рд░рд╛рдУрдВ рдХреЗ рдкреНрд░рднрд╛рд╡реА рдореВрд▓реНрдпреЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрдВрдЧреНрд░рд┐рдб рдбреНрдпреВрдмрдЪреАрдЬрд╝ рдХреЗ рдЙрдЪреНрдЪ рдХреНрд░рдо рддрд░рдВрдЧ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдЯреАрдХрддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реВрдЪреА рдореЗрдВ pywt.DiscreteContinuousWavelet () рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡реЗрд╡рд▓реЗрдЯ рдЧреБрдг рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ:

рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ
 import pywt from pylab import * from numpy import * discrete_wavelets = ['db5', 'sym5', 'coif5', 'haar'] print('discrete_wavelets-%s'%discrete_wavelets ) st='db20' wavelet = pywt.DiscreteContinuousWavelet(st) print(wavelet) i=1 phi, psi, x = wavelet.wavefun(level=i) subplot(2, 1, 1) title("   -  -%s"%st) plot(x,psi,linewidth=2, label='level=%s'%i) grid() legend(loc='best') subplot(2, 1, 2) title("  - -%s"%st) plt.plot(x,phi,linewidth=2, label='level=%s'%i) legend(loc='best') grid() show() 

рд╣рдореЗрдВ рдорд┐рд▓рддрд╛ рд╣реИ:

discrete_wavelets - ['db5', 'sym5', 'coif5', 'haar']

 Wavelet db20 Family name: Daubechies Short name: db Filters length: 40 Orthogonal: True Biorthogonal: True Symmetry: asymmetric DWT: True CWT: False 



рдХрдИ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, psi рддрд░рдВрдЧрд┐рдХрд╛ рдХреА рдХреЗрдВрджреНрд░реАрдп рдЖрд╡реГрддреНрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЧрд┐рдпрд░ рдХреЗ рджреЛрд╖реЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреЗрддреЛрдВ рдХреЗ рддрд░рдВрдЧ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдореЗрдВ:

 import pywt f=pywt.central_frequency('haar', precision=8 ) print(f) #  : scale=1 f1=pywt.scale2frequency('haar',scale) print(f1) 

 0.9961089494163424 0.9961089494163424 

рдХреЗрдВрджреНрд░ рдЖрд╡реГрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ fcрдорд╛рддреГ рддрд░рдВрдЧрд┐рдХрд╛ рдФрд░ рдкреИрдорд╛рдирд╛ рдХрд╛рд░рдХ "a" рддрд░рд╛рдЬреВ рдХреЛ рдЫрджреНрдо рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ faрд╕рдореАрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛:

fa= fracfca

рд╕рд┐рдЧреНрдирд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдореЛрдб


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

PyWavelets рдХрдИ рд╕рд┐рдЧреНрдирд▓ рдПрдХреНрд╕рдЯреНрд░рдкрд▓реЗрд╢рди рддрдХрдиреАрдХреЛрдВ рдХреЛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕ рдирдХрд╛рд░рд╛рддреНрдордХ рдкреНрд░рднрд╛рд╡ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдРрд╕реА рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реВрдЪреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

рд╕рдВрдХреЗрдд рд╡рд┐рд╕реНрддрд╛рд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рджрд░реНрд╢рди
 import numpy as np from matplotlib import pyplot as plt from pywt._doc_utils import boundary_mode_subplot # synthetic test signal x = 5 - np.linspace(-1.9, 1.1, 9)**2 # Create a figure with one subplots per boundary mode fig, axes = plt.subplots(3, 3, figsize=(10, 6)) plt.subplots_adjust(hspace=0.5) axes = axes.ravel() boundary_mode_subplot(x, 'symmetric', axes[0], symw=False) boundary_mode_subplot(x, 'reflect', axes[1], symw=True) boundary_mode_subplot(x, 'periodic', axes[2], symw=False) boundary_mode_subplot(x, 'antisymmetric', axes[3], symw=False) boundary_mode_subplot(x, 'antireflect', axes[4], symw=True) boundary_mode_subplot(x, 'periodization', axes[5], symw=False) boundary_mode_subplot(x, 'smooth', axes[6], symw=False) boundary_mode_subplot(x, 'constant', axes[7], symw=False) boundary_mode_subplot(x, 'zeros', axes[8], symw=False) plt.show() 



рд░реЗрдЦрд╛рдВрдХрди рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рдЫреЛрдЯрд╛ рд╕рдВрдХреЗрдд (рд▓рд╛рд▓) рдЕрдкрдиреА рдореВрд▓ рд▓рдВрдмрд╛рдИ рд╕реЗ рдкрд░реЗ (рдХрд╛рд▓рд╛) рдХреИрд╕реЗ рдлреИрд▓рддрд╛ рд╣реИред

рдЕрд╕рддрдд рд╡реЗрд╡рд▓реЗрдЯ рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдо


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

рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ
 from pylab import * from numpy import* x = linspace(0, 1, num=2048) chirp_signal = sin(250 * pi * x**2) fig, ax = subplots(figsize=(6,1)) ax.set_title("     ") ax.plot(chirp_signal) show() 




PyWavelets 1.0.3 рдореЗрдВ рдЕрд╕рддрдд рд╡реЗрд╡рд▓реЗрдЯ рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдо pywt.dwt () рдлрд╝рдВрдХреНрд╢рди рд╣реИ, рдЬреЛ рд╕рдиреНрдирд┐рдХрдЯрди рдЧреБрдгрд╛рдВрдХ cA рдФрд░ рд╡реЗрдХреНрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рд┐рдЧреНрдирд▓ рдХреЗ рдкрд╣рд▓реЗ рд╕реНрддрд░ рдХреЗ рд╡реЗрд╡рд▓реЗрдЯ рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдореЗрд╢рди рдХреЗ рд╡рд┐рд╕реНрддреГрдд рдЧреБрдгрд╛рдВрдХ cD рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ:

рдкрд░рд┐рд╡рд░реНрддрди рд╕реНрддрд░ рдПрдХ рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ
 import pywt from pylab import * from numpy import * x = linspace (0, 1, num = 2048) y = sin (250 * pi * x**2) st='sym5' (cA, cD) = pywt.dwt(y,st) subplot(2, 1, 1) plot(cA,'b',linewidth=2, label='cA,level-1') grid() legend(loc='best') subplot(2, 1, 2) plot(cD,'r',linewidth=2, label='cD,level-1') grid() legend(loc='best') show() 




рдкрд░рд┐рд╡рд░реНрддрди рд╕реНрддрд░ 5 рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ
 import pywt from pylab import * from numpy import * x = linspace (0, 1, num = 2048) y = sin (250 * pi * x**2) st='sym5' (cA, cD) = pywt.dwt(y,st) (cA, cD) = pywt.dwt(cA,st) (cA, cD) = pywt.dwt(cA,st) (cA, cD) = pywt.dwt(cA,st) (cA, cD) = pywt.dwt(cA,st) subplot(2, 1, 1) plot(cA,'b',linewidth=2, label='cA,level-5') grid() legend(loc='best') subplot(2, 1, 2) plot(cD,'r',linewidth=2, label='cD,level-5') grid() legend(loc='best') show() 



рд╕рдиреНрдирд┐рдХрдЯрди рдЧреБрдгрд╛рдВрдХ (cA) рдХрдо-рдкрд╛рд╕ рдлрд╝рд┐рд▓реНрдЯрд░ (рдФрд╕рдд рдлрд╝рд┐рд▓реНрдЯрд░) DWT рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИред рд╡рд┐рд╕реНрддрд╛рд░ рдЧреБрдгрд╛рдВрдХ (cD) рд╣рд╛рдИ-рдкрд╛рд╕ рдлрд┐рд▓реНрдЯрд░ (рдбрд┐рдлрд░реЗрдВрд╢рд┐рдпрд▓ рдлрд┐рд▓реНрдЯрд░) DWT рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИред

рдЖрдк рддреБрд░рдВрдд рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдЧреБрдгрд╛рдВрдХ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП pywt.wavedec () рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдЗрдирдкреБрдЯ рд╕рд┐рдЧреНрдирд▓ рдФрд░ рд╕реНрддрд░ рдХреЛ рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдЕрдиреБрдорд╛рдирд┐рдд рдЧреБрдгрд╛рдВрдХ (n-th рд╕реНрддрд░) рдФрд░ рд╡рд┐рд╡рд░рдг рдЧреБрдгрд╛рдВрдХ рдХреЗ n рд╕реЗрдЯ (1 рд╕реЗ n-рд╡реЗрдВ рд╕реНрддрд░) рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рддрд╛ рд╣реИред рдпрд╣рд╛рдВ рдкрд╛рдВрдЪрд╡реЗрдВ рд╕реНрддрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

 from pywt import wavedec from pylab import * from numpy import * x = linspace (0, 1, num = 2048) y = sin (250 * pi * x**2) st='sym5' coeffs = wavedec(y, st, level=5) subplot(2, 1, 1) plot(coeffs[0],'b',linewidth=2, label='cA,level-5') grid() legend(loc='best') subplot(2, 1, 2) plot(coeffs[1],'r',linewidth=2, label='cD,level-5') grid() legend(loc='best') show() 

рдирддреАрдЬрддрди, рд╣рдореЗрдВ рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рдорд╛рди рдЧреНрд░рд╛рдлрд╝ рдорд┐рд▓рддреЗ рд╣реИрдВред рдЧреБрдгрд╛рдВрдХ cA рдФрд░ cD рдЕрд▓рдЧ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ:

CA рдХреЗ рд▓рд┐рдП:

 import pywt from pylab import * from numpy import* x = linspace (0, 1, num = 2048) data = sin (250 * pi * x**2) coefs=pywt.downcoef('a', data, 'db20', mode='symmetric', level=1) 

рд╕реАрдбреА рдХреЗ рд▓рд┐рдП:

 import pywt from pylab import * from numpy import* x = linspace (0, 1, num = 2048) data = sin (250 * pi * x**2) coefs=pywt.downcoef('d', data, 'db20', mode='symmetric', level=1) 

рдлрд╝рд┐рд▓реНрдЯрд░ рдмреИрдВрдХ


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

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

рдЕрдкрдШрдЯрди рдХреЗ рдЕрдзрд┐рдХрддрдо рд╕реНрддрд░ рдХреА рдЧрдгрдирд╛ pywt.wavedec () рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ, рдЬрдмрдХрд┐ рдЕрдкрдШрдЯрди рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:

рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ
 import pywt from pywt import wavedec from pylab import * from numpy import* x = linspace (0, 1, num = 2048) data= sin (250 * pi * x**2) n_level=pywt.dwt_max_level(len(data), 'sym5') print('  : %s'%n_level) x = linspace (0, 1, num = 2048) y = sin (250 * pi * x**2) st='sym5' coeffs = wavedec(y, st, level=7) subplot(2, 1, 1) plot(coeffs[0],'b',linewidth=2, label='cA,level-7') grid() legend(loc='best') subplot(2, 1, 2) plot(coeffs[1],'r',linewidth=2, label='cD,level-7') grid() legend(loc='best') show() 


рд╣рдореЗрдВ рдорд┐рд▓рддрд╛ рд╣реИ:

рдЕрдзрд┐рдХрддрдо рдЕрдкрдШрдЯрди рд╕реНрддрд░: 7



рдЬрдм рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рд╕рд┐рдВрдкрд▓ 5 рд╡реЗрд▓реЗрдЯ рдХреЗ рд▓рд┐рдП рдлрд┐рд▓реНрдЯрд░ рдХреА рд▓рдВрдмрд╛рдИ рд╕реЗ рд╕рд┐рдЧреНрдирд▓ рдХрдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдЕрдкрдШрдЯрди рд░реБрдХ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 1000 рд╣рд░реНрдЯреНрдЬ рддрдХ рдХреА рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрдХреЗрдд рд╣реИред рдкрд╣рд▓реЗ рдЪрд░рдг рдореЗрдВ, рд╣рдо рдЕрдкрдиреЗ рд╕рд┐рдЧреНрдирд▓ рдХреЛ рдХрдо-рдЖрд╡реГрддреНрддрд┐ рдФрд░ рдЙрдЪреНрдЪ-рдЖрд╡реГрддреНрддрд┐ рд╡рд╛рд▓реЗ рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреН 0-500 рд╣рд░реНрдЯреНрдЬ рдФрд░ 500-1000 рд╣рд░реНрдЯреНрдЬред рджреВрд╕рд░реЗ рдЪрд░рдг рдореЗрдВ, рд╣рдо рдХрдо рдЖрд╡реГрддреНрддрд┐ рд╡рд╛рд▓реЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рд╕реЗ рдЗрд╕реЗ рджреЛ рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЗ рд╣реИрдВ: 0-250 рд╣рд░реНрдЯреНрдЬ рдФрд░ 250-500 рд╣рд░реНрдЯреНрдЬред рддреАрд╕рд░реЗ рдЪрд░рдг рдореЗрдВ, рд╣рдордиреЗ 0-250 рд╣рд░реНрдЯреНрдЬ рднрд╛рдЧ 0-125 рд╣рд░реНрдЯреНрдЬ рдФрд░ рднрд╛рдЧ 125-250 рд╣рд░реНрдЯреНрдЬ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ред рдпрд╣ рддрдм рддрдХ рдЬрд╛рд░реА рд░рд╣рддрд╛ рд╣реИ рдЬрдм рддрдХ рд╣рдо рд╡рд┐рдШрдЯрди рдХреЗ рдЕрдзрд┐рдХрддрдо рд╕реНрддрд░ рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪ рдЬрд╛рддреЗред

Fft рдлреВрд░рд┐рдпрд░ рдФрд░ рд╡реЗрд╡рд▓реЗрдЯ рд╕реНрдХреЗрд▓реЛрдЧреНрд░рд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ wav рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг


рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП, WebSDR рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред Scipy.signal рд╕реЗ рддреНрд░рд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдХрдо рд╕рдВрдХреЗрдд рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдФрд░ рдЕрдЬрдЧрд░ рдореЗрдВ рдЕрд╕рддрдд рдлреВрд░рд┐рдпрд░ рд░реВрдкрд╛рдВрддрд░рдг (scipy.fftpack рд╕реЗ fft) рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдпрджрд┐ рдЕрдиреБрдХреНрд░рдо fft рдХреА рд▓рдВрдмрд╛рдИ 2n рдХреЗ рдмрд░рд╛рдмрд░ рдирд╣реАрдВ рд╣реИ, рддреЛ рддреЗрдЬреА рд╕реЗ рдлреВрд░рд┐рдпрд░ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо (fft) рдХреЗ рдмрдЬрд╛рдп, рдПрдХ рдЕрд╕рддрдд рдлреВрд░рд┐рдпрд░ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо (dft) рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕ рддрд░рд╣ рдпрд╣ рдЯреАрдо рдХрд╛рдо рдХрд░рддреА рд╣реИред

рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдпреЛрдЬрдирд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рддреЗрдЬреА рд╕реЗ рдлреВрд░рд┐рдпрд░ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо рдмрдлрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдбреЗрдЯрд╛):

fftbuffer = np.zeros (15); рд╢реВрдиреНрдп рд╕реЗ рднрд░рд╛ рдПрдХ рдмрдлрд░ рдмрдирд╛рдПрдВ;
fftbuffer [: 8] = x [7:]; рдмрдлрд░ рдХреЗ рдкрд╣рд▓реЗ рднрд╛рдЧ рдХреЛ рд╕рд┐рдЧреНрдирд▓ рдХреЗ рдЕрдВрдд рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ; fftbuffer [8:] = x [: 7] - рд╣рдо рдмрдлрд░ рдХреЗ рдЕрдВрддрд┐рдо рднрд╛рдЧ рдореЗрдВ рд╕рд┐рдЧреНрдирд▓ рдХреА рд╢реБрд░реБрдЖрдд рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ; X = fft (fftbuffer) - рд╣рдо рд╕рд┐рдЧреНрдирд▓ рдореВрд▓реНрдпреЛрдВ рд╕реЗ рднрд░реЗ рдмрдлрд░ рдХреЗ рдлреВрд░рд┐рдпрд░ рд░реВрдкрд╛рдВрддрд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред

рдЪрд░рдг рд╕реНрдкреЗрдХреНрдЯреНрд░рдо рдХреЛ рдЕрдзрд┐рдХ рдкрдардиреАрдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЪрд░рдг рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд▓рд╛рдЧреВ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЪрд░рдг рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреА рдЧрдгрдирд╛ рдХреЗ рд╕рд╛рде рд░реЗрдЦрд╛ рдХреЛ рдмрджрд▓реЗрдВ: pX = np.unwrap (np.angle (X))ред

Fft рд╕рд┐рдЧреНрдирд▓ рдЯреБрдХрдбрд╝рд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ
 import numpy as np from pylab import * from scipy import * import scipy.io.wavfile as wavfile M=501 hM1=int(np.floor((1+M)/2)) hM2=int(np.floor(M/2)) (fs,x)=wavfile.read('WebSDR.wav') x1=x[5000:5000+M]*np.hamming(M) N=511 fftbuffer=np.zeros([N]) fftbuffer[:hM1]=x1[hM2:] fftbuffer[N-hM2:]=x1[:hM2] X=fft(fftbuffer) mX=abs(X) pX=np.angle(X) suptitle(" WebSDR") subplot(3, 1, 1) st='  (WebSDR.wav)' plot(x,linewidth=2, label=st) legend(loc='center') subplot(3, 1, 2) st='    ' plot(mX,linewidth=2, label=st) legend(loc='best') subplot(3, 1, 3) st='    ' pX=np.unwrap(np.angle(X)) plot(pX,linewidth=2, label=st) legend(loc='best') show() 



рддреБрд▓рдирд╛рддреНрдордХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП, рд╣рдо matplotlib рдореЗрдВ рдкреЗрдбрд╝ = pywt.wavedec (рд╕рдВрдХреЗрдд, 'coif5') рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдПрдХ рддрд░рдВрдЧрд┐рдХрд╛ рд╕реНрдХреЗрд▓реЛрдЧреНрд░рд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред

рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ рд╡реЗрд▓реЗрдЯ рд╕реНрдХреИрд▓реЛрдЧреНрд░рд╛рдореНрд╕
 from pylab import * import pywt import scipy.io.wavfile as wavfile #     ,     . def lepow2(x): return int(2 ** floor(log2(x))) #    MRA. def scalogram(data): bottom = 0 vmin = min(map(lambda x: min(abs(x)), data)) vmax = max(map(lambda x: max(abs(x)), data)) gca().set_autoscale_on(False) for row in range(0, len(data)): scale = 2.0 ** (row - len(data)) imshow( array([abs(data[row])]), interpolation = 'nearest', vmin = vmin, vmax = vmax, extent = [0, 1, bottom, bottom + scale]) bottom += scale #  ,   . rate, signal = wavfile.read('WebSDR.wav') signal = signal[0:lepow2(len(signal))] tree = pywt.wavedec(signal, 'coif5') gray() scalogram(tree) show() 




рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕реНрдХреЗрд▓реЛрдЧреНрд░рд╛рдо рд╕рдордп рдХреЗ рд╕рд╛рде рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рд╡рд┐рддрд░рдг рдХреЗ рд╕рд╡рд╛рд▓ рдХрд╛ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдЙрддреНрддрд░ рджреЗрддрд╛ рд╣реИ, рдФрд░ рддреЗрдЬреА рд╕реЗ рдлреВрд░рд┐рдпрд░ рд░реВрдкрд╛рдВрддрд░рдг рд╕реНрд╡рдпрдВ рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рдпрд╣ рд╕рдм рдХрд╛рд░реНрдп рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рднреАред

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


  1. рдЧрддрд┐рд╢реАрд▓ рд╕рдВрдХреЗрддреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрд╕рддрдд рддрд░рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдФрдЪрд┐рддреНрдп рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  2. рдПрдордЖрдИрдЯреА рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рддрд╣рдд рдЬрд╛рд░реА рдПрдХ рдореБрдлреНрдд рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рд╕реЙрдлреНрдЯрд╡реЗрдпрд░, PyWavelets 1.0.3 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡реЗрд╡рд▓реЗрдЯ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рд╣реИрдВред
  3. PyWavelets рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

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


All Articles