필터 지우기
필터 지우기

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

조회 수: 2 (최근 30일)
Ryosuke Takahashi
Ryosuke Takahashi 2017년 7월 25일
댓글: Ryosuke Takahashi 2017년 7월 25일
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;

채택된 답변

Jiro Doke
Jiro Doke 2017년 7월 25일
Wavelet についてそれほど詳しくはないのですが、ざっとコードを拝見してて気づいたのですが、 fa の定義が
fa = 0.1:1;
だと 0.1 Hz しか定義されません。
fa = 0.1:0.1:1;
にすると 0.1 刻みの周波数のベクトルができます。これでコードを実行するとこんな感じのグラフが作成されました。
  댓글 수: 3
Jiro Doke
Jiro Doke 2017년 7월 25일
そうですね。2 番目の数字を省略すると間隔は 1 となります。
参考: colon
Ryosuke Takahashi
Ryosuke Takahashi 2017년 7월 25일
ありがとうございました。 今後ともよろしくお願いいたします。

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 離散多重解像度解析에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!