Denken Sie daran, dass Wavelet-Transformationen nichts anderes als zeitlokalisierte Filter- / Korrelationsoperationen sind. Die Wavelet-Transformationen bieten einen einheitlichen Rahmen, um das Heisenberg-Unsicherheitsprinzip zu umgehen , unter dem die Fourier-Transformation leidet. Wenn Sie also fragen, "wie sollen meine Einstellungen für Bandbreite und Mittenfrequenz sein", fragen Sie nach Filterparametern , die Ihnen gegeben werden sollen. Niemand außer Ihnen und Ihrer Anwendung kann Ihnen Filterparameter geben. Deshalb sind sie Parameter. :-)
Genauer die Auswahl von und mit der Art Ihres Signals zu tun. Zunächst einige Vorkenntnisse:F.cF.b
Wavelet-Transformationen sind nichts anderes als übereinstimmende Filter, die Sie erstellen, sodass Sie am besten zu den 'Features' in Ihrem interessierenden Signal passen. Ein Satz von "Merkmalen", die Sie in Betracht ziehen könnten, wäre die Nachbarschaft der Mittenfrequenz und die Nachbarschaft der Bandbreite. Auch hier kann niemand diese für Sie auswählen , da Sie wissen müssen, wonach Sie suchen. Sie können jedoch einen Bereich auswählen, der Ihren Erwartungen entspricht. (Dies ist tatsächlich eine der Funktionen, die Wavelet Transforms sehr leistungsfähig machen).
Das Morlet-Wavelet ist durch die folgende Funktion gegeben:
Ψ ( t ,fc,T.p) =1πT.p- -- -- -√ e- -t2T.p e- j 2 πfct
Hier ist der Zeitindex in Sekunden, ist Ihre Mittenfrequenz und repräsentiert das, was ich als "Periodenparameter" bezeichnet habe. Überprüfen Sie die obige Gleichung. Beachten Sie, dass das Morlet-Wavelet tatsächlich nichts anderes als ein komplexes Exponential ist, das bei der Frequenz zentriert ist und durch eine -Funktion mit dem Mittelwert Null mit gefenstert wirdtfcT.pfcσ=T.p2- -- -√
Um Ihre erste Frage zu beantworten , muss der Parameter so gewählt werden, dass er auf oder nahe der Frequenz liegt, die Sie abfragen möchten.F.c
In Bezug auf die Wavelet-Bandbreite: Was ich hier habe, ist Ihr "Periodenparameter", und dies hängt direkt mit Ihrer Bandbreite zusammen. Kehren Sie zur Morlet-Wavelet-Gleichung zurück und betrachten Sie ein Szenario, in dem anstelle eines Gaußschen Fensters ein rechteckiges Fenster verwendet wurde. In der Fourier-Domäne erreichen wir aufgrund dieses Fenstertyps eine sinc-Funktion, und wir können sagen, dass die Null-zu-Null-Bandbreite einfach ist: , ( im Durchlassbereich).T.pB.B =2T.p e r i o d
Die folgende Abbildung zeigt dies für ein komplexes Exponential bei Hz mit variierenden -Werten:fc= 2T.p e r i o d
Sie können deutlich sehen, dass die Bandbreite mit zunehmender Periodenausdehnung abnimmt. Dies ist die umgekehrte Natur der Zeit-Frequenz-Beziehung. Wenn Sie dieses Pseudo-Wavelet verwenden möchten, wie würden Sie die auswählen ? Die Antwort wäre "Was auch immer mein interessierendes Signal ist". In der Tat, das ist genau das, was in der Kurzzeit-Fourier-Transformation (STFT) durchgeführt wird, obwohl man eine intelligentere Fenster anstelle des Boxcar holen würde.T.p e r i o dT.p e r i o d
Lassen Sie uns nun die Morlet-Wavelet-Gleichung erneut untersuchen und die Gaußsche Fensterfunktion mit erneut einfügen . Wenn wir dies tun, erhalten wir die folgenden Zeitbereichsdiagramme und die entsprechenden diskreten Fourier-Transformationen (DFT) der Morlet-Wavelets:σ=T.p2- -- -√
Beachten Sie erneut, wie mit zunehmender Ausdehnung - wenn die Varianz der Gaußschen Fensterschattierung des komplexen Exponentials zunimmt - die Bandbreite in der Fourierdomäne abnimmt. (In diesem Fall haben wir ein viel besseres Nebenkeulenverhalten, aber dies ist tangential). In jedem Fall können Sie noch einmal sehen, wie wir eine umgekehrte Beziehung zwischen dem Parameter (oder dem Standardabweichungsparameter Ihres Gaußschen, je nachdem, was zu Ihnen passt) und der Bandbreite des entsprechenden Filters haben.T.p
Was tun mit diesem Wissen? Jetzt verstehen Sie, wie die Bandbreite mit der im Morlet Wavelet eingebetteten Gaußschen Schattierungsfunktion zusammenhängt. Somit können Sie für jedes Signal Sie haben, einfach die DFT Ihres Signals nehmen und dessen Bandbreiten bei verschiedenen Mittenfrequenzen beobachten. Dann stellen Sie das und Parameter Ihrer Morlet Wavelet dementsprechend , so daß die Funktion der DFT Morlet - Filter direkt die DFT Funktion des Schablonensignals überlappt. So können Sie Ihre Parameter einstellen.x [ n ]σfc
Der Code zum Generieren der obigen Diagramme ist hier:
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