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

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


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

рдЗрд╕ рдкреНрд░рдХрд╛рд╢рди рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп PyWavelets рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдордп рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдирд┐рд░рдВрддрд░ рддрд░рдВрдЧрд┐рдХрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рд╡рд┐рдзрд┐ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рд╣реИред

рдереЛрдбрд╝рд╛ рд╕рд╛ рдЗрддрд┐рд╣рд╛рд╕

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

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

рд╡реЗрд╡рд▓реЗрдЯ рдбреАред рдореЛрд░рд▓реИрдХреНрд╕
from pylab import* import scaleogram as scg axes = scg.plot_wav('cmor1-1.5', figsize=(14,3)) show() 




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


рдПрдХрд▓-рд╕реНрддрд░реАрдп рддрд░рдВрдЧрд┐рдХрд╛ рдкрд░рд┐рд╡рд░реНрддрди:

coefs, рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ = pywt.cwt (рдбреЗрдЯрд╛, рд╕реНрдХреЗрд▓, рд╡реЗрд╡рд▓реЗрдЯ)

рдЬрд╣рд╛рдВ:

рдбреЗрдЯрд╛: (array_like) -Input рд╕рдВрдХреЗрдд;

рддрд░рд╛рдЬреВ (array_like) : - рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрд░рдВрдЧ рдкреИрдорд╛рдиреЗред рдЖрдк рдЕрдиреБрдкрд╛рдд f = scale2frequency (рд╕реНрдХреЗрд▓, рд╡реЗрд╡рд▓реЗрдЯ) / sampling_period рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рднреМрддрд┐рдХ рдЖрд╡реГрддреНрддрд┐ f рдХреНрдпрд╛ рд╣реИред рдЗрдзрд░, рд╣рд░реНрдЯреНрдЬ рдореЗрдВ рдЬрдм рд╕реИрдореНрдкрд▓рд┐рдВрдЧ_рдкреЗрд░реЛрдб рд╕реЗрдХрдВрдб рдореЗрдВ;

рддрд░рдВрдЧрд┐рдХрд╛ (рд╡реЗрд╡рд▓реЗрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдпрд╛ рдирд╛рдо) : - рддрд░рдВрдЧрд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП;

sampling_period (рдлреНрд▓реЛрдЯ): - рдЖрдЙрдЯрдкреБрдЯ рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ (рд╡реИрдХрд▓реНрдкрд┐рдХ рдкреИрд░рд╛рдореАрдЯрд░) рдХреЗ рд▓рд┐рдП рдирдореВрдирд╛рдХрд░рдг рдЕрд╡рдзрд┐ред Coefs рдХреЗ рд▓рд┐рдП рдЧрдгрдирд╛ рдХрд┐рдП рдЧрдП рдорд╛рди, sampling_period рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИрдВ (рдпрд╛рдиреА, рдЕрд╡рдзрд┐ рдирдореВрдирд╛ рдХреЗ рд▓рд┐рдП рд╕реНрдХреЗрд▓ рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВ;)ред

coefs (array_like) : - рдирд┐рд░рдВрддрд░ рддрд░рдВрдЧрд┐рдХрд╛ - рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдкреИрдорд╛рдиреЗ рдФрд░ рддрд░рдВрдЧрд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдЗрдирдкреБрдЯ рд╕рдВрдХреЗрдд рдХрд╛ рдкрд░рд┐рд╡рд░реНрддрди;

рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ (array_like) : - рдпрджрд┐ рдирдореВрдиреЗ рдХреА рдЕрд╡рдзрд┐ рдХреА рдЗрдХрд╛рдИ рджреВрд╕рд░реА рд╣реИ рдФрд░ рд╕реЗрдЯ рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЛ рд╣рд░реНрдЯреНрдЬ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдиреНрдпрдерд╛, 1 рдХрд╛ рдирдореВрдирд╛ рдЕрд╡рдзрд┐ рдорд╛рди рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдиреЛрдЯ: рдЧреБрдгрд╛рдВрдХ рд╕рд░рдгрд┐рдпреЛрдВ рдХрд╛ рдЖрдХрд╛рд░ рдЗрдирдкреБрдЯ рд╕рд░рдгреА рдХреА рд▓рдВрдмрд╛рдИ рдФрд░ рджрд┐рдП рдЧрдП рддрд░рд╛рдЬреВ рдХреА рд▓рдВрдмрд╛рдИ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред

рдЙрдкрд▓рдмреНрдз cwt рд╕рдВрдЧрдд рддрд░рдВрдЧрд┐рдХрд╛ рдирд╛рдореЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:

 >>> import pywt >>> wavlist = pywt.wavelist(kind='continuous') >>> wavlist 

['cgau1', 'cgau2', 'cgau3', 'cgau4', 'cgau5', 'cgau6', 'cgau7', 'cgau8', 'cmor', 'fbsp', 'gaus1', 'gaus2', 'gaus2', ' рдЧрд╛рдКрд╕ 3 ',' рдЧрд╛рдКрд╕ 4 ',' рдЧрд╛рдКрд╕ 5 ',' рдЧрд╛рдКрд╕ 6 ',' рдЧрд╛рдКрд╕ 7 ',' рдЧрд╛рдКрд╕ 8 ',' рдореЗрдХреНрд╕рд┐рдХреЛ ',' рдореЙрд░рд▓ ',' рд╢рд╛рди ']

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

рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ 1
 import numpy as np import pywt import matplotlib.pyplot as plt vav='cmor1.5-1.0' wav = pywt.ContinuousWavelet(vav) #  ,      print("       [{}, {}]".format( wav.lower_bound, wav.upper_bound)) width = wav.upper_bound - wav.lower_bound scales = [1, 2, 3, 4, 10, 15] max_len = int(np.max(scales)*width + 1) t = np.arange(max_len) fig, axes = plt.subplots(len(scales), 2, figsize=(12, 6)) for n, scale in enumerate(scales): #       cwt int_psi, x = pywt.integrate_wavelet(wav, precision=10) step = x[1] - x[0] j = np.floor( np.arange(scale * width + 1) / (scale * step)) if np.max(j) >= np.size(int_psi): j = np.delete(j, np.where((j >= np.size(int_psi)))[0]) j = j.astype(np.int) # normalize int_psi     int_psi /= np.abs(int_psi).max() #     filt = int_psi[j][::-1] # CWT          #          . nt = len(filt) t = np.linspace(-nt//2, nt//2, nt) axes[n, 0].plot(t, filt.real, t, filt.imag) axes[n, 0].set_xlim([-max_len//2, max_len//2]) axes[n, 0].set_ylim([-1, 1]) axes[n, 0].text(50, 0.35, 'scale = {}'.format(scale)) f = np.linspace(-np.pi, np.pi, max_len) filt_fft = np.fft.fftshift(np.fft.fft(filt, n=max_len)) filt_fft /= np.abs(filt_fft).max() axes[n, 1].plot(f, np.abs(filt_fft)**2) axes[n, 1].set_xlim([-np.pi, np.pi]) axes[n, 1].set_ylim([0, 1]) axes[n, 1].set_xticks([-np.pi, 0, np.pi]) axes[n, 1].set_xticklabels([r'$-\pi$', '0', r'$\pi$']) axes[n, 1].grid(True, axis='x') axes[n, 1].text(np.pi/2, 0.5, 'scale = {}'.format(scale)) axes[n, 0].set_xlabel('time (samples)') axes[n, 1].set_xlabel('frequency (radians)') axes[0, 0].legend(['real', 'imaginary'], loc='upper left') axes[0, 1].legend(['Power'], loc='upper left') axes[0, 0].set_title('filter: wavelet - %s'%vav) axes[0, 1].set_title(r'|FFT(filter)|$^2$') plt.show() 

рдЕрдЧрд▓рд╛, рд╣рдо рдЙрдкрд░реЛрдХреНрдд рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рддрд░рдВрдЧ рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рдЙрдирдХреЗ рдЧреБрдгреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ:

рдореИрдХреНрд╕рд┐рдХрди рдЯреЛрдкреА рддрд░рдВрдЧ рдореЗрдХреНрд╕рд┐рдХреЛ:

\ varphi \ рдмрд╛рдПрдБ (t \ right) = \ frac {2} {\ sqrt {3} \ sqrt [4] {\ pi}} \ cdot exp ^ {- \ frac {t ^ {2}} [2}} } \ cdot \ left (1-t ^ {2} \ right)



рд╡реЗрд╡рд▓реЗрдЯ "рдореЛрд░рд▓" рдореЛрд░рд▓рд┐рдХреНрд╕:

 varphi left(t right)=expтИТ fract22 cdotcos(5t)

рдХреЙрдореНрдкреНрд▓реЗрдХреНрд╕ рдореЙрд░реНрд▓реЗрдЯ рд╡реЗрд╡рд▓реЗрдЯ "cmorB-C"

 varphi рдмрд╛рдПрдБ(t рджрд╛рдПрдБ)= frac1 sqrt piBexpтИТ fract2B cdotexpj2ipiрд╕реАрдЯреА

рдЬрд╣рд╛рдВ B рдмреИрдВрдбрд╡рд┐рдбреНрде рд╣реИ; C рдХреЗрдВрджреНрд░ рдЖрд╡реГрддреНрддрд┐ рд╣реИред

рдЗрд╕рдХреЗ рдмрд╛рдж (рд╡рд┐рд╢реЗрд╖ рд╕рдВрдХреЗрдд рдХреЗ рдмрд┐рдирд╛) рдмреА, рд╕реА рдХреЗ рдорд╛рди рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдмрд┐рдВрджреБ рдХреЗ рд╕рд╛рде рд╕реЗрдЯ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред



рдЧрд╛рдКрд╕реА рддрд░рдВрдЧреЛрдВ "рдЧрд╛рдКрд╕"

 varphi left(t right)=C cdotexpтИТt2

рдЬрд╣рд╛рдВ: рдкреА - 1 рд╕реЗ 8 рддрдХ рдХреЗ рдкреВрд░реНрдгрд╛рдВрдХ рдХреЛ рддрд░рдВрдЧрд┐рдХрд╛ рдХреЗ рдирд╛рдо рд╕реЗ рдбрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рдЧреЙрд╕ 8"; C- рдмрд┐рд▓реНрдЯ-рдЗрди рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг рд╕реНрдерд┐рд░рд╛рдВрдХред



рдПрдХреАрдХреГрдд рдЧрд╛рдКрд╕реА рддрд░рдВрдЧреЗрдВ "cgauP"

 varphi left(t right)=C cdotexpтИТt2 cdotexpтИТjt

рдЬрд╣рд╛рдБ: P - 1 рд╕реЗ 8 рддрдХ рдХрд╛ рдкреВрд░реНрдгрд╛рдВрдХ рддрд░рдВрдЧрд┐рдХрд╛ рдХреЗ рдирд╛рдо рд╕реЗ рдбрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "gaus8" рдФрд░ рд╡реЗрд╡рд▓реЗрдЯ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╡реНрдпреБрддреНрдкрдиреНрди рдХреЗ рдХреНрд░рдо рдХреЗ рдЕрдиреБрд░реВрдк; C- рдмрд┐рд▓реНрдЯ-рдЗрди рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг рд╕реНрдерд┐рд░рд╛рдВрдХред



рд╢реИрдирди рддрд░рдВрдЧ "рд╢рд╛рдирдм-рд╕реА"

 varphi рдмрд╛рдПрдБ(t рджрд╛рдПрдБ)= sqrtB cdot fracрдкрд╛рдк( piBt) piBT cdotexpj2piCt

рдЬрд╣рд╛рдВ: рдмреА рдмреИрдВрдбрд╡рд┐рдбреНрде рд╣реИ; C рдХреЗрдВрджреНрд░ рдЖрд╡реГрддреНрддрд┐ рд╣реИред



PyWavelets рдореЗрдВ рд╕реАрдбрдмреНрд▓реНрдпреВрдЯреА рдбреЗрдЯрд╛ рдХреЛ рдЕрд╕рддрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ - рддрд░рдВрдЧ рдЕрднрд┐рдиреНрди рдХреЗ рдирдореВрдиреЗ рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓реНрдкред рдпрджрд┐ рд╕реНрдХреЗрд▓ рдмрд╣реБрдд рдЫреЛрдЯрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдЕрдкрд░реНрдпрд╛рдкреНрдд рдирдореВрдиреЗ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрд╕рддрдд рдлрд╝рд┐рд▓реНрдЯрд░ рдорд┐рд▓рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╕реНрдореВрдерд┐рдВрдЧ рд╣реЛрддреА рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рддрд░рдВрдЧрд┐рдХрд╛ 'cmor1.5-1.0' рдХреЗ рд▓рд┐рдП рдЧреНрд░рд╛рдл рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдмрд╛рдПрдВ рдХреЙрд▓рдо рдореЗрдВ, рдЧреНрд░рд╛рдлрд╝ рд╡рд┐рднрд┐рдиреНрди рдкреИрдорд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдХрдирд╡рд▓реНрд╢рди рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдП рдЧрдП рдЕрд╕рддрдд рдлрд╝рд┐рд▓реНрдЯрд░ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВред рджрд╛рдпрд╛рдВ рд╕реНрддрдВрдн рдкреНрд░рддреНрдпреЗрдХ рдлрд┐рд▓реНрдЯрд░ рдХрд╛ рд╕рдВрдЧрдд рдлреВрд░рд┐рдпрд░ рдкрд╛рд╡рд░ рд╕реНрдкреЗрдХреНрдЯреНрд░рд╛ рд╣реИред рдЧреНрд░рд╛рдл 'cmor1.5-1.0' рдХреЗ рд▓рд┐рдП рддрд░рд╛рдЬреВ 1 рдФрд░ 2 рдХреЗ рд╕рд╛рде, рдпрд╣ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ Nyquist рдмрд╛рдзрд╛ рдХреЗ рдЙрд▓реНрд▓рдВрдШрди рдХреЗ рдХрд╛рд░рдг рдЪреМрд░рд╕рд╛рдИ рд╣реЛрддреА рд╣реИред рд╕рдВрдХреЗрддрд┐рдд рдШрдЯрдирд╛ рд╕реА рдФрд░ рдмреА рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╕рдордп рдЕрдиреНрдп рддрд░рдВрдЧреЛрдВ рдореЗрдВ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП, рддрд░рдВрдЧрд┐рдХрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП - рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ 1ред

рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рд┐рдЧреНрдирд▓ рдЖрд╡реГрддреНрддрд┐ рдХреЛ рджрд┐рдП рдЧрдП рдкреИрдорд╛рдиреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рд┐рдЧреНрдирд▓ рдХреЗ рдирдореВрдиреЗ рдХреА рдЕрд╡рдзрд┐ рдЬреНрдЮрд╛рдд рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред Pywt.scale2frequency () рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рддрд░рд╛рдЬреВ рдХреА рд╕реВрдЪреА рдХреЛ рд╕рдВрдмрдВрдзрд┐рдд рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рддрд░рд╛рдЬреВ рдХрд╛ рд╕рд╣реА рд╡рд┐рдХрд▓реНрдк рдЪрдпрдирд┐рдд рддрд░рдВрдЧрд┐рдХрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП pywt.scale2frequency () рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд┐рдЧреНрдирд▓ рдХреА рд╕рдВрдмрдВрдзрд┐рдд рдЖрд╡реГрддреНрддрд┐ рд╕реАрдорд╛ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

 >>> import pywt >>> dt = 0.01 # 100 Hz sampling >>> frequencies = pywt.scale2frequency('cmor1.5-1.0', [1, 2, 3, 4]) / dt >>> frequencies 

рд╕рд░рдгреА ([100., 50., 33.33333333, 25.])

рд╡реЗрд╡рд▓реЗрдЯ - рд╕реАрдбрдмреНрд▓реНрдпреВрдЯреА рдкрд╛рдпрд╡реЗрд▓реЗрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЯрд╛рдЗрдо рд╕реАрд░реАрдЬрд╝ рд╡рд┐рд╢реНрд▓реЗрд╖рдг


рдПрд▓-рдиреАрдиреЛ рдбреЗрдЯрд╛рд╕реЗрдЯ рдПрдХ рд╕рдордп рд╢реНрд░реГрдВрдЦрд▓рд╛ рдбреЗрдЯрд╛рд╕реЗрдЯ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрд▓ рдиреАрдиреЛ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ 1871 рд╕реЗ 1997 рддрдХ рддреНрд░реИрдорд╛рд╕рд┐рдХ рд╕рдореБрджреНрд░реА рд╕рддрд╣ рддрд╛рдкрдорд╛рди рдорд╛рдк рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рд╕реНрдХреЗрд▓ рдЪрд╛рд░реНрдЯ рдХреА рд╢рдХреНрддрд┐ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП, рдЗрд╕реЗ рдПрд▓-рдиреАрдиреЛ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдореВрд▓ рд╕рдордп рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдбреЗрдЯрд╛ рдФрд░ рдЗрд╕рдХреЗ рдлреВрд░рд┐рдпрд░ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВред

рд╕рдордп рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рддрд░рдВрдЧрд┐рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд░рдгреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:

1. рдорд╛рдБ рддрд░рдВрдЧрд┐рдХрд╛ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ: рдЬрдЯрд┐рд▓ рдореЛрд░рд▓реЗрдЯ рддрд░рдВрдЧрд┐рдХрд╛ "cmorB-C" рдЪреБрдиреЗрдВ:

 varphi рдмрд╛рдПрдБ(t рджрд╛рдПрдБ)= frac1 sqrt piBexpтИТ fract2B cdotexpj2ipiрд╕реАрдЯреА

рдмреИрдВрдбрд╡рд┐рдбреНрде - рдмреА рдФрд░ рдХреЗрдВрджреНрд░ рдЖрд╡реГрддреНрддрд┐ - рдЬрд┐рд╕рд╕реЗ рд╣рдо рдЕрдЧрд▓реЗ рдЪрд░рдг рдореЗрдВ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВрдЧреЗред

2. рд╣рдорд╛рд░реЗ рд╕рдордп рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд▓рд┐рдП dt = 0.25 рд▓реЗрдХрд░ рдХреЗрдВрджреНрд░ рдХреА рдЖрд╡реГрддреНрддрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ:

 import pywt dt = 0.25 # 4 Hz sampling scale=range(1,4) frequencies = pywt.scale2frequency('cmor1.0-0.5', scale) / dt print(frequencies) 

[2ред 1. 0.66666667]

3. рд╣рдо рдорд╛рдБ рддрд░рдВрдЧрд┐рдХрд╛ cmor1.0-0.5 рдХреЗ рдлреВрд░рд┐рдпрд░ рд░реВрдкрд╛рдВрддрд░рдг рдкрд╛рддреЗ рд╣реИрдВ (рд╣рдо рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ 1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ):
рд╕рдВрдкреВрд░реНрдг рд░реЗрдВрдЬ рдореЗрдВ рдирд┐рд░рдВрддрд░ рддрд░рдВрдЧрд┐рдХрд╛ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ [-8.0, 8.0]



4. рд╕рдордп рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ:

 pd.read_csv("http://paos.colorado.edu/research/wavelets/wave_idl/sst_nino3.dat", sep = "|") 

рдбреЗрдЯрд╛ рддреНрд░реИрдорд╛рд╕рд┐рдХ рд╕рдореБрджреНрд░реА рд╕рддрд╣ рдХреЗ рддрд╛рдкрдорд╛рди рдорд╛рдк 1871 рд╕реЗ 1997 рддрдХ рд╣реИрдВред рдЗрд╕ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП: t0 = 1871 dt = 0.25

5. рд╣рдо рдПрдХ рд╕рд┐рдЧреНрдирд▓ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдордп рд╢реНрд░реГрдВрдЦрд▓рд╛ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдЪрд╛рд░реНрдЯ рдкрд░ рдЗрд╕рдХреА рдФрд╕рдд рдЪрд▓рддреА рд╣реИ:

рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ 2
 from numpy import * from scipy import * import pandas as pd from pylab import * import pywt def get_ave_values(xvalues, yvalues, n = 5): signal_length = len(xvalues) if signal_length % n == 0: padding_length = 0 else: padding_length = n - signal_length//n % n xarr = array(xvalues) yarr = array(yvalues) xarr.resize(signal_length//n, n) yarr.resize(signal_length//n, n) xarr_reshaped = xarr.reshape((-1,n)) yarr_reshaped = yarr.reshape((-1,n)) x_ave = xarr_reshaped[:,0] y_ave = nanmean(yarr_reshaped, axis=1) return x_ave, y_ave def plot_signal_plus_average(time, signal, average_over = 5): fig, ax = subplots(figsize=(15, 3)) time_ave, signal_ave = get_ave_values(time, signal, average_over) ax.plot(time, signal, label='') ax.plot(time_ave, signal_ave, label = '   (n={})'.format(5)) ax.set_xlim([time[0], time[-1]]) ax.set_ylabel(' ', fontsize=18) ax.set_title(' +   ', fontsize=18) ax.set_xlabel('', fontsize=18) ax.legend() show() df_nino = pd.read_csv("http://paos.colorado.edu/research/wavelets/wave_idl/sst_nino3.dat", sep = "|") N = df_nino.shape[0] t0=1871 dt=0.25 time = arange(0, N) * dt + t0 signal = df_nino.values.squeeze() scales = arange(1, 128) plot_signal_plus_average(time, signal) 




6. рд╣рдо рд╕рдордп рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╕реЗ рдлреВрд░рд┐рдпрд░ рд░реВрдкрд╛рдВрддрд░рдг рдФрд░ рд╕реНрдкреЗрдХреНрдЯреНрд░рдо рдореЛрдбреЗрд▓рд┐рдЯреА рдХреЛ рдЕрдВрдЬрд╛рдо рджреЗрддреЗ рд╣реИрдВ:

рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ 3
 from numpy import * from scipy import * import pandas as pd from pylab import * import pywt def get_ave_values(xvalues, yvalues, n = 5): signal_length = len(xvalues) if signal_length % n == 0: padding_length = 0 else: padding_length = n - signal_length//n % n xarr = array(xvalues) yarr = array(yvalues) xarr.resize(signal_length//n, n) yarr.resize(signal_length//n, n) xarr_reshaped = xarr.reshape((-1,n)) yarr_reshaped = yarr.reshape((-1,n)) x_ave = xarr_reshaped[:,0] y_ave = nanmean(yarr_reshaped, axis=1) return x_ave, y_ave def get_fft_values(y_values, T, N, f_s): f_values = linspace(0.0, 1.0/(2.0*T), N//2) fft_values_ = fft(y_values) fft_values = 2.0/N * abs(fft_values_[0:N//2]) return f_values, fft_values def plot_fft_plus_power(time, signal): dt = time[1] - time[0] N = len(signal) fs = 1/dt fig, ax = subplots(figsize=(15, 3)) variance = std(signal)**2 f_values, fft_values = get_fft_values(signal, dt, N, fs) fft_power = variance * abs(fft_values) ** 2 # FFT power spectrum ax.plot(f_values, fft_values, 'r-', label='FFT ') ax.plot(f_values, fft_power, 'k--', linewidth=1, label=' ') ax.set_xlabel('[ / ]', fontsize=18) ax.set_ylabel('', fontsize=18) ax.legend() show() df_nino = pd.read_csv("http://paos.colorado.edu/research/wavelets/wave_idl/sst_nino3.dat", sep = "|") N = df_nino.shape[0] t0=1871 dt=0.25 time = arange(0, N) * dt + t0 signal = df_nino.values.squeeze() scales = arange(1, 128) plot_fft_plus_power(time, signal) 




7. рд╣рдо рддрд░рд╛рдЬреВ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ: рддрд░рд╛рдЬреВ = рд╡реНрдпрд╡рд╕реНрдерд╛ (1, 128); рд╕реНрддрд░ = [реи ** - рек, реи ** - рей, реи ** - реи, реи ** - рез, реи ** реж, реи ** рез, реи ** реи, реи ** рей]ред

8. рдПрдХ рд╕реНрдХреЗрд▓ рдЪрд╛рд░реНрдЯ рдмрдирд╛рдПрдБ:

рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ 4
 from numpy import * import pandas as pd from pylab import * import pywt def plot_wavelet(time, signal, scales, waveletname = 'cmor1.0-0.4', cmap = plt.cm.seismic, title = '-( ) ', ylabel = ' ()', xlabel = ''): dt = time[1] - time[0] [coefficients, frequencies] = pywt.cwt(signal, scales, waveletname, dt) power = (abs(coefficients)) ** 2 period = 1. / frequencies levels = [2**-4 , 2**-3 , 2**-2 , 2**-1 , 2**0 , 2**1 , 2**2 , 2**3] contourlevels = log2(levels) fig, ax = subplots(figsize=(15, 10)) im = ax.contourf(time, log2(period), log2(power), contourlevels, extend='both',cmap=cmap) ax.set_title(title, fontsize=20) ax.set_ylabel(ylabel, fontsize=18) ax.set_xlabel(xlabel, fontsize=18) yticks = 2**arange(np.ceil(log2(period.min())), ceil(log2(period.max()))) ax.set_yticks(log2(yticks)) ax.set_yticklabels(yticks) ax.invert_yaxis() ylim = ax.get_ylim() ax.set_ylim(ylim[0], -1) cbar_ax = fig.add_axes([0.95, 0.5, 0.03, 0.25]) fig.colorbar(im, cax=cbar_ax, orientation="vertical") show() df_nino = pd.read_csv("http://paos.colorado.edu/research/wavelets/wave_idl/sst_nino3.dat", sep = "|") N = df_nino.shape[0] t0=1871 dt=0.25 time = arange(0, N) * dt + t0 signal = df_nino.values.squeeze() scales = arange(1, 128) plot_wavelet(time, signal, scales) 




рд╕реНрдХреЗрд▓ рдЪрд╛рд░реНрдЯ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕реНрдкреЗрдХреНрдЯреНрд░рдо рд╢рдХреНрддрд┐ 2-8 рд╡рд░реНрд╖реЛрдВ рдХреА рдЕрд╡рдзрд┐ рдореЗрдВ рдХреЗрдВрджреНрд░рд┐рдд рд╣реИ, рдпрд╣ 0.125 - 0.5zz рдХреА рдЖрд╡реГрддреНрддрд┐ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИред рдлреВрд░рд┐рдпрд░ рд╕реНрдкреЗрдХреНрдЯреНрд░рдо рдореЗрдВ, рдлреИрд╢рди рдЗрди рдЖрд╡реГрддреНрддрд┐ рдореВрд▓реНрдпреЛрдВ рдХреЗ рдЖрд╕рдкрд╛рд╕ рднреА рдХреЗрдВрджреНрд░рд┐рдд рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рддрд░рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рднреА рд╣рдореЗрдВ рдЕрд╕реНрдерд╛рдпреА рдЬрд╛рдирдХрд╛рд░реА рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлреВрд░рд┐рдпрд░ рд░реВрдкрд╛рдВрддрд░рдг рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрдХреЗрд▓ рдЖрд░реЗрдЦ рдкрд░, рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ 1920 рд╕реЗ рдкрд╣рд▓реЗ рдХрдИ рдЙрддрд╛рд░-рдЪрдврд╝рд╛рд╡ рдереЗ, рдЬрдмрдХрд┐ 1960 рдФрд░ 1990 рдХреЗ рдмреАрдЪ рдЗрддрдиреЗ рд╕рд╛рд░реЗ рдирд╣реАрдВ рдереЗред рд╣рдо рдпрд╣ рднреА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕рдордп рдХреЗ рд╕рд╛рде рдЫреЛрдЯреА рд╕реЗ рд▓рдВрдмреА рдЕрд╡рдзрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрджрд▓рд╛рд╡ рд╣реИред

рд╕реНрдХреЗрд▓реЛрдЧреНрд░рд╛рдо рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛


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

рд╕реНрдХреЗрд▓реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ:

  • рд╕рд░рд▓ рд╢реБрд░реБрдЖрдд рдХреЙрд▓ рд╣рд╕реНрддрд╛рдХреНрд╖рд░
  • рдкрдардиреАрдп рдХреБрд▓реНрд╣рд╛рдбрд╝рд┐рдпреЛрдВ рдФрд░ рд╢реБрджреНрдз matplotlib рдПрдХреАрдХрд░рдг
  • рдЬреВрдорд┐рдВрдЧ, рд╕реНрдкреЗрдХреНрдЯреНрд░рдо рдлрд┐рд▓реНрдЯрд░, рдХрд▓рд░рдмрд╛рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди, рдЖрджрд┐ рдХреЗ рд▓рд┐рдП рдХрдИ рд╡рд┐рдХрд▓реНрдк ...
  • рдЕрдВрдХрди рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЖрд╡реГрддреНрддрд┐ рдФрд░ рдЖрд╡реГрддреНрддрд┐ рдЗрдХрд╛рдЗрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди
  • рдЧрддрд┐, рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдПрди * рд▓реЙрдЧ (рдПрди) рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ
  • рдкреЛрд░реНрдЯреЗрдмрд┐рд▓рд┐рдЯреА: python2.7 рдФрд░ python3.7 рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛
  • рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╡рд┐рд╕реНрддреГрдд рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдФрд░ рдкреНрд░рд▓реЗрдЦрди

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

 nino3 = "http://paos.colorado.edu/research/wavelets/wave_idl/sst_nino3.dat" 

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪреЗрддрд╛рд╡рдиреА рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ:

nino3 = pd.read_table (nino3)
рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рдХреЗ рд▓рд┐рдП рдЕрдЧреНрд░рдгреА:
рдЪреЗрддрд╛рд╡рдиреА (рдЪреЗрддрд╛рд╡рдиреА рдореЙрдбреНрдпреВрд▓ рд╕реЗ):
рдлрд╝рд╛рдЗрд▓ "C: /User/User/Desktop/wavelet/pr.py", рдкрдВрдХреНрддрд┐ 7
nino3 = pd.read_table (nino3)
FutureWarning: read_table рдкрджрд╛рд╡рдирдд рд╣реИ, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп read_csv рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдкрд╛рд╕рд┐рдВрдЧ sep = 't'

рдбреЗрдЯрд╛ рдПрдХреНрд╕реЗрд╕ рдЗрд╕ рддрд░рд╣ рд▓рд┐рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:

 url="http://paos.colorado.edu/research/wavelets/wave_idl/sst_nino3.dat" nino3 = pd.read_csv(url, sep = "|") 

рд╕реНрдХреЗрд▓реЛрдЧреНрд░рд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рд╣реА рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ - 1871 рд╕реЗ 1997 рддрдХ рд╕рдореБрджреНрд░ рдХреА рд╕рддрд╣ рдХреЗ рддрд╛рдкрдорд╛рди рдХреЗ рддреНрд░реИрдорд╛рд╕рд┐рдХ рдорд╛рдк рдкрд░ред рдЗрд╕ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП: t0 = 1871 dt = 0.25

рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ 4
 import pandas as pd import pywt from numpy import* import scaleogram as scg from pylab import* url="sst_nino3.dat" nino3 = pd.read_csv(url, sep = "|") data = nino3.values.squeeze() N = data.size t0 = 1871; dt = 0.25 time = t0 + arange(len(data))*dt wavelet = 'cmor1-0.5' ax = scg.cws(time, data, scales=arange(1, 128), wavelet=wavelet, figsize=(14, 3), cmap="jet", cbar=None, ylabel=' ()', xlabel=" []", yscale="log", title='-  \n( )') ticks = ax.set_yticks([2,4,8, 16,32]) ticks = ax.set_yticklabels([2,4,8, 16,32]) show() 



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

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

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


PyWavelets рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдордп рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рддрд░рдВрдЧ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

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


All Articles