¿Cuál es la configuración adecuada para Fb, Fc en complejo morlet wavelet (cmor)?

7

Estoy usando la transformada wavelet Cmor-Fb-FC en el entorno matlab. Fb es ancho de banda y Fc es parámetros de frecuencia central. con el procedimiento de rastro y error selecciono Fb-Fc como 5-1, y tengo un resultado racional. Pero quiero saber cuál es la regla de seleccionar el valor adecuado para los parámetros Fb-Fc. Imagine que estoy usando 300 muestras durante 30 segundos. entonces mi frecuencia de muestreo es de 10 Hz. Aquí está mi señal.

x=sin(2*pi*t*.1).*(t<10)+sin(2*pi*t*0.3).*... 
    (t<30)+sin(2*pi*t*0.6).*(t<10).*exp(-t*.1);
SAH
fuente
parece fb = (1 / Tp) alguien confirma ??
Arnaldo Batista

Respuestas:

10

Recuerde que las transformaciones Wavelet no son más que operaciones de filtrado / correlación localizadas en el tiempo . Las transformaciones wavelet proporcionan un marco unificado para sortear el principio de incertidumbre de Heisenberg que sufre la transformación de Fourier. Entonces, cuando pregunta "cuáles deberían ser mis ajustes para el ancho de banda y la frecuencia central", está solicitando que se le proporcionen parámetros de filtro . Nadie puede darle parámetros de filtro excepto usted y su aplicación. Por eso son parámetros. :-)

Más concretamente, cómo elegir su FC y Fsitiene que ver con la naturaleza de su señal. Primero, algunos preliminares:

Las transformaciones Wavelet no son más que filtros coincidentes que construyes, de modo que tengas la mejor coincidencia con las 'características' en tu señal de interés. Un conjunto de 'características' que podría considerar sería la vecindad de la frecuencia central y la vecindad del ancho de banda. Nuevamente, nadie puede elegirlos por usted , porque necesita saber lo que está buscando. Sin embargo, puede elegir un rango acorde con lo que espera. (Esta es en realidad una de las características que hacen que Wavelet Transforms sea muy potente).

La wavelet morlet viene dada por la siguiente función:

Ψ(t,FC,Tpags)=1πTpags mi-t2Tpags mi-j2πFCt

Aquí, t es el índice de tiempo en segundos, FC es su frecuencia central y Tpagsrepresenta lo que he llamado un "parámetro de período". Inspecciona la ecuación anterior. Observe cómo la wavelet morlet no es más que un exponencial complejo centrado en la frecuencia.FC, ventana por una función gaussiana de media cero, con σ=Tpags2

Por lo tanto, para responder a su primera pregunta, el FC parámetro, debe elegirse de modo que esté en o cerca de la frecuencia que desea interrogar.

En cuanto al ancho de banda de wavelet: lo que he llamado Tpagsaquí está su "parámetro de período", y esto está directamente relacionado con su ancho de banda. Regrese a la ecuación de Morlet Wavelet y considere un escenario en el que, en lugar de una ventana gaussiana, usamos una ventana rectangular. En el dominio de Fourier, alcanzamos una función sinc debido a este tipo de ventana, y podemos decir que el ancho de banda nulo a nulo,si, es simple: si=2Tpagsmiryoore, (en la banda de paso).

La siguiente figura ilustra esto para un exponencial complejo ubicado en FC=2 Hz, con variación Tpagsmiryoore valores:

ingrese la descripción de la imagen aquí

Puede ver claramente que a medida que aumenta la extensión del período, el ancho de banda disminuye. Esta es la naturaleza inversa de la relación tiempo-frecuencia. Si quisieras usar esta pseudo-wavelet, ¿qué elegirías?Tpagsmiryoore¿ser - estar? La respuesta sería "Lo que seaTpagsmiryooremi señal de interés se queda en ". De hecho, esto es exactamente lo que se hace en la Transformada de Fourier a corto plazo (STFT), aunque uno elegiría una ventana más inteligente en lugar del vagón.

Ahora volvamos a inspeccionar la ecuación de Morlet Wavelet y vuelva a insertar la función de ventana gaussiana, con σ=Tpags2. Si hacemos esto, obtenemos las siguientes gráficas de dominio de tiempo y la correspondiente Transformada discreta de Fourier (DFT) de las Morlets Wavelet:

ingrese la descripción de la imagen aquí

Una vez más, observe cómo a medida que aumenta la extensión, a medida que aumenta la varianza de la ventana gaussiana que sombrea el exponencial complejo, disminuye el ancho de banda en el dominio de Fourier. (En este caso, tenemos un comportamiento de lóbulo lateral mucho más agradable, pero esto es tangencial). En cualquier caso, puede ver una vez más cómo tenemos una relación inversa entreTpags parámetro (o el parámetro de desviación estándar de su gaussiano, lo que más le convenga) y el ancho de banda del filtro correspondiente.

Qué hacer con este conocimiento: ahora comprende cómo se relaciona el ancho de banda con la función de sombreado gaussiana integrada en Morlet Wavelet. Por lo tanto, para cualquier señalX[norte]usted tiene, simplemente puede tomar el DFT de su señal y observar sus anchos de banda en varias frecuencias centrales. Luego, ajuste elσ y FCparámetros de su Morlet Wavelet en consecuencia, de modo que la función DFT del filtro Morlet se superponga directamente con la función DFT de su señal de plantilla. Así es como puede configurar sus parámetros.

El código para generar las parcelas anteriores está aquí:

clear all;
fS = 500;
tStart = -4;
tStop = 4;
timeVector = linspace(tStart,tStop, (tStop-tStart)*fS );
fCenter = 2;
tP = [0.2 1 3];
exps = length(tP);

figure(1); clf(1);
figure(2); clf(2);
for ii = 1:exps

    tPeriod = tP(ii);
    timeMask = zeros(1,length(timeVector));
    timeMask((timeVector >= -tPeriod/2) & (timeVector <= tPeriod/2)) = 1;

    psiFakeWavelet = exp(2*1i*pi*fCenter.*timeVector).*timeMask;
    psiWavelet = ((pi*tP(ii))^(-0.5)).*exp(2*1i*pi*fCenter.*timeVector).*exp(-timeVector.^2/tP(ii));

    %Demonstrating the Rectangular Window
    figure(1);
    subplot(3,2,2*ii-1);
    plot(timeVector,real(psiFakeWavelet), timeVector,imag(psiFakeWavelet));
    ylim([-1.2 1.2])
    xlabel('Time / Seconds');
    title(sprintf('Morlet Wavelet, T_{period} = %2.2f, f_c = %2.2f Hz', tPeriod, fCenter));

    input = psiFakeWavelet;
    Nfft = 10 * 2^nextpow2(length(input));
    psd = 20.*log10(fftshift(abs(fft(input,Nfft))));
    freqs = [0:Nfft - 1].*(fS/Nfft);
    freqs(freqs >= fS/2) = freqs(freqs >= fS/2) - fS;
    freqs = fftshift(freqs);
    figure(1);
    subplot(exps,2,2*ii);
    plot(freqs, psd); 
    xlim([-10  15]);
    xlabel('Frequency / Hz');
    title (sprintf('PSD, Null-Null-BW = %2.2f Hz', 2/tPeriod));

    %Demonstrating the Morlet Wavelet
    figure(2);
    subplot(3,2,2*ii-1);
    plot(timeVector,real(psiWavelet), timeVector,imag(psiWavelet));
    ylim([-1.2 1.2])
    xlabel('Time / Seconds');
    title(sprintf('Morlet Wavelet, T_{period} = %2.2f, f_c = %2.2f Hz', tPeriod, fCenter));

    input = psiWavelet;
    Nfft = 10 * 2^nextpow2(length(input));
    psd = 20.*log10(fftshift(abs(fft(input,Nfft))));
    freqs = [0:Nfft - 1].*(fS/Nfft);
    freqs(freqs >= fS/2) = freqs(freqs >= fS/2) - fS;
    freqs = fftshift(freqs);
    figure(2);
    subplot(exps,2,2*ii);
    plot(freqs, psd); 
    xlim([-10  15]);
    xlabel('Frequency / Hz');
    title ('Wavelet PSD');

end
Tarin Ziyaee
fuente
¡Gracias! entonces, si tengo 3 modos en mi señal ([0.1,0.3,0.6] Hz), entonces mi Fc será 0.25 Hz (0.6-0.1) / 2? y ¿cómo puedo determinar el ancho de banda de mi señal? (Fb)
SAH
"evitar el principio de Heisenberg incierto" No creo que eso sea correcto. Todavía tienen el mismo problema, pero hacen diferentes compensaciones a diferentes frecuencias.
endolito
3
@endolith La Transformada de Fourier contiene 100% de información de frecuencia y 0% de información de tiempo, cortesía de HUP. Las wavelets evitan esto a través de una compensación.
Tarin Ziyaee
@ endolith, @ User4619. gracias por la información, ¿respondería a mi pregunta sobre la selección de fb y fc por favor?
SAH
1
@ Electricista: Depende de la aplicación. Pruebe valores diferentes y ver lo que pone de relieve las características que le interesa.
endolito