Korzystam z ciągłej transformacji falkowej Morleta. Mam wscalogram
sygnał i teraz chcę wykreślić częstotliwość freq jak na poniższym obrazku., Ale nie wiem jak to zrobić:
Użyłem scal2freq
funkcji MATLAB do konwersji skal na pseudo częstotliwości. Mam też w swoim sygnale częstotliwości, które mają duży współczynnik tłumienia (4%), więc nie są dobrze widoczne na wykresie. Jak mogę wyolbrzymić te wysoce tłumione tryby?
Korzystam z MATLAB, oto moje kody:
% Import the text4.txt to matlab workspace. and save it under name "data"
t=linspace(0,30,301);
Fs=ceil(inv(t(2)-t(1)));
x=data(:,4); % use x=data(:,3),x=data(:,5) too. first column is time,second is refrence
wname = 'morl';
scales = 1:1:256;
coefs = cwt(x,scales,wname,'lvlabs');
freq = scal2frq(scales,wname,1/Fs);
surf(t,freq,abs(coefs));shading('interp');
axis tight; xlabel('Seconds'); ylabel('Pseudo-Frequency (Hz)');
axis([0 30 0 1 0 60])
xlabel('Time'); ylabel('Frequency');
figure;
sc=wscalogram('image',coefs,'scales',freq,'ydata',x);
hold on
Moja obecna fabuła wygląda następująco:
frequency-spectrum
frequency
wavelet
Elektryczny człowiek
źródło
źródło
Odpowiedzi:
Trochę modyfikuję twój kod, ale nie wprowadzam większych zmian, a ja i tak otrzymuję poprawne wyniki. Użyj tego kodu szablonu tutaj i nie powinieneś mieć żadnych problemów. Otrzymuję prawidłowe wyniki.
Aby uzyskać cyfrę po prawej stronie pierwszego umieszczonego obrazu, jest to po prostu spektrum odcinka czasu. Innymi słowy, jedna kolumna macierzy częstotliwości i czasu.
Na przykład, możemy uzyskać następującą macierz kwadrat-współczynnik, w funkcji częstotliwości w funkcji czasu:
Załóżmy zatem, że chcemy spojrzeć na spektrum dla przedziału czasowego w kolumnie 47. Następnie podaje się tutaj:
Tutaj widać moc współczynników w funkcji częstotliwości dla przedziału czasu odpowiadającego kolumnie 47.
źródło
Ciągła transformata falkowa (CWT) jest metodą analizy w skali czasu . Tak, czytasz to poprawnie, skaluj , a nie częstotliwość . Można jednak mapować wagi na częstotliwości, a nawet dość łatwo. Ponieważ jesteś użytkownikiem MATLAB, prawdopodobnie będziesz chciał skorzystać z tej funkcji , która wykonuje następujące czynności:
Jak można przeczytać, częstotliwości nie są rzeczywistymi częstotliwościami w sygnale, ale przybliżeniami. Jeśli chcesz rzeczywistych częstotliwości, powinieneś użyć krótkotrwałej transformaty Fouriera (STFT).
Kiedy więc należy użyć CWT? Zasadniczo falki działają dobrze, gdy sygnały są przejściowe (tj. Mają szybkie zmiany).
EDYCJA: haha, nie wiem co tu robię. przepraszam :-D całkowicie nie trafiłem w sedno twojego pytania. Po prostu przeczytaj tytuł ...
źródło
Nie jestem pewien, czy nadal potrzebujesz pomocy ...
Jeśli chcesz ustawić częstotliwość w funkcji wielkości, użyj polecenia „mesh / surf”, aby wykreślić współczynniki.
Następnie zmień orientację działki, aby uzyskać oczekiwany wynik. W tym celu zobacz polecenie „view”.
źródło