waveletを使用した低周波の解析について
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Ryosuke Takahashi
el 25 de Jul. de 2017
Comentada: Ryosuke Takahashi
el 25 de Jul. de 2017
wavelet解析を用いて0.1Hzの周波数の違いを判断することは可能なのでしょうか?
waveletの特性上、ある程度の帯域幅があるため細かな周波数解析を行うのは難しいと考えています。そのため、細かな周波数解析を行う場合はフーリエ解析のほうが適していると考えていましたが、あっていますでしょうか?
ちなみに現在作成したコードを下に記載いたします。
%%raw_waveform
fs=1000; % sample frequency(Hz)
t = 0:1/fs:2-1/fs; % sec sample
S1 = sin(2*pi*0.1*t)+sin(2*pi*0.5*t);
time = (1:fs*2)/fs;
%%Wavelet
figure(1);
subplot(2,1,1)
plot(time,S1);
subplot(2,1,2)
wname = 'morl';
fc = centfrq(wname); %
fa = 0.1:1; % 擬似周波数(Hz)
scal2frq(1,wname,1/fs)%
sf = fc./(fa.*1/fs); % スケールファクタ
[CWTcoeffs,frq] = cwt(S1,sf,wname,1/fs);
abs_CWT = abs(CWTcoeffs);
imagesc(time,fa,abs_CWT);
colormap(jet);
axis xy
title('Scalogram')
ylabel('Hz')
axis([0,inf, -inf, inf])
% colorbar
h_bar = colorbar;
h_bar.Location = 'east';
h_bar.Position(1) = 0.95;
0 comentarios
Respuesta aceptada
Jiro Doke
el 25 de Jul. de 2017
Wavelet についてそれほど詳しくはないのですが、ざっとコードを拝見してて気づいたのですが、 fa の定義が
fa = 0.1:1;
だと 0.1 Hz しか定義されません。
fa = 0.1:0.1:1;
にすると 0.1 刻みの周波数のベクトルができます。これでコードを実行するとこんな感じのグラフが作成されました。
3 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre 連続ウェーブレット変換 en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!