Red de conocimiento informático - Aprendizaje de programación - Calcular la transformada wavelet unidimensional en MATLAB - tomando la señal Doppler como ejemplo

Calcular la transformada wavelet unidimensional en MATLAB - tomando la señal Doppler como ejemplo

La función para ejecutar DWT es [C,L]=wavedec(x,N,'wname')

La función para ejecutar IDWT es: x=waverec(C,L,'wname')

Donde wname es el nombre de la wavelet; x es la señal de secuencia en el dominio del tiempo; N es la serie de la transformada de wavelet.

Utilice coeficientes wavelet parciales para reconstruir la señal: x=wrcoef('type',C,L,'wname',N)

donde type='a' es un N -aproximación de nivel La señal de reconstrucción de componentes

type='d' es la señal de reconstrucción de componentes de detalle de nivel N

Doppler= wnoise(4,10);

N = 5;

nombrew = 'db4';

[C,L] = wavedec(doppler,N,wname); waverec(C ,L,wname);

A5 = wrcoef('a',C,L, wname,5);

A4 = wrcoef('a',C, L,wname ,4);

A3 = wrcoef('a',C,L,wname,3);

A2 = wrcoef('a',C,L, wname,2 );

A1 = wrcoef('a ',C,L,wname,1);

D5 = wrcoef('d',C,L,wname, 5);

D4 = wrcoef('d',C,L,wname,4);

D3 = wrcoef('d',C,L,wname,3) ;

p>

D2 = wrcoef('d',C,L,wname,2);

D1 = wrcoef('d',C,L,wname ,1);

figure(1);

plot(doppler,'k','linewidth',2);

espera;

plot(A0 ,'-.r','linewidth',2);

espera;

plot(A5,'--b',' linewidth',2);

p>

legend('señal Doppler original','señal IDWT----A0','señal de aproximación de nivel 5----A5');

eje([0 400 -1 1]);

set(gcf,'unidad','centímetros','posición',[10 10 30 10]) )

figura(2);

subplot(3,2,1);

plot(doppler,'k','linewidth',2);

título('señal Doppler');

eje([0 400 -1 1]

subplot(3,2,2);

plot(D5,'k',' linewidth',2);

title('Detalle D5 de db4');

axis([0 400 -1 1]) ;

subplot( 3,2.3);

plot(D4,'k','linewidth',2);

title('D4 detalle de db4');

axis([0 400 -1 1]);

subplot(3,2,4);

plot(D3,' k',2 2 ,'linewidth', 2);

title('Detalle D3 de db4');

axis([0 400 -1 1]);

subtrama(3

,2,5);

plot(D2,'k','linewidth',2);

title('Detalle D2 de db4');

axis( [0 400 -1 1]);

subplot(3,2,6);

plot(D1,'k','linewidth',2);

title('Detalle D1 de db4');

axis([0 400 -1 1]);

figure(3);

subplot(3,2,1);

plot(doppler,'r','linewidth',2);

title('Señal Doppler');

eje([0 400 -1 1]);

subplot(3,2,2);

plot(A5,'r','linewidth ', 2);

title('Aproximación A5');

axis([0 400 -1 1]);

subplot(3,2 ,3 );

plot(A4,'r','linewidth',2);

title('Aproximación A4');

axis( [0 400 -1 1]);

subplot(3,2,4);

plot(A3,'r','linewidth',2);

título('Aproximación A3');

eje([0 400 -1 1]);

subplot(3,2,5).

plot(A2,'r','linewidth',2);

title('Aproximación A2');

axis([0 400 -1 1]) ;

subplot(3,2,6);

plot(A1,'r'. 'linewidth',2);

title('Aproximación A1' );

eje([0 400 -1 1]);