waveletを使用した低周波の解析について

6 visualizaciones (últimos 30 días)
Ryosuke Takahashi
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;

Respuesta aceptada

Jiro Doke
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
Jiro Doke
Jiro Doke el 25 de Jul. de 2017
そうですね。2 番目の数字を省略すると間隔は 1 となります。
参考: colon
Ryosuke Takahashi
Ryosuke Takahashi el 25 de Jul. de 2017
ありがとうございました。 今後ともよろしくお願いいたします。

Iniciar sesión para comentar.

Más respuestas (0)

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!