wavelet波形を​3次元にする際,X軸​を時間に変更する方法​を教えてください。

wavelet波形を3次元にする際,X軸を時間に変更する方法を教えていただけないでしょうか?
現在,sin波のモデル波形に対してwavelet変換を行っています。 CWTcoeffsを使用して2次元の図を作成するまではx軸を時間に変更できるのですが, 3次元にする際には規定をする必要があるのでしょうか?
fs=1000; t = 0:1/fs:2-1/fs;
S1 = sin(2*pi*20*t)+sin(2*pi*100*t);
time = (1:fs*2)/fs;
figure(1);
subplot(2,1,1);
plot(time,S1);
subplot(2,1,2);
wname = 'morl';
fc = centfrq(wname); % 中心周波数
fa = 1:200; % 擬似周波数(Hz)
scal2frq(200,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
axis([0,inf, -inf, 200])
title('Scalogram')
ylabel('Hz')
colorbar
figure(2);
mesh(abs(CWTcoeffs));
colormap(jet)
colorbar

 Akzeptierte Antwort

Tohru Kikawada
Tohru Kikawada am 12 Jul. 2017

1 Stimme

X軸の表示を時間にしたいということでしょうか。
表示だけであれば mesh に軸のラベルデータを指定することで実現できます。
mesh(time,fa,abs(CWTcoeffs));

3 Kommentare

Ryosuke Takahashi
Ryosuke Takahashi am 12 Jul. 2017
ご回答ありがとうございました。おっしゃる通り,X軸を時間に表示したいです。
ご教示いただいた通りに実施したところ,次元が一致していないとエラーが表示されました。
周波数2000で2秒間分なのでtimeは4000件のデータがあります。
それに対して,CWTcoeffsのサイズは2000件でした。これは何か理由があるのでしょうか?
初歩的な質問ばかりで申し訳有りませんが,宜しくお願い致します。
Tohru Kikawada
Tohru Kikawada am 13 Jul. 2017
掲載されているコードを実行したところ、 time 変数のサイズは 1x2000 のようです。
>> size(time)
ans =
1 2000
単純に mesh の引数を変えただけで私の環境では表示できました。
サンプリング周波数も1000Hzとありますが何か条件が異なっていますか。
fs=1000; t = 0:1/fs:2-1/fs;
S1 = sin(2*pi*20*t)+sin(2*pi*100*t);
time = (1:fs*2)/fs;
figure(1);
subplot(2,1,1);
plot(time,S1);
subplot(2,1,2);
wname = 'morl';
fc = centfrq(wname); % 中心周波数
fa = 1:200; % 擬似周波数(Hz)
scal2frq(200,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
axis([0,inf, -inf, 200])
title('Scalogram')
ylabel('Hz')
colorbar
figure(2);
mesh(time,fa,abs(CWTcoeffs));
colormap(jet)
colorbar
Ryosuke Takahashi
Ryosuke Takahashi am 13 Jul. 2017
Bearbeitet: Ryosuke Takahashi am 13 Jul. 2017
申し訳ありません。
ワークスペースをクリアして確認したところ,問題ありませんでした。
この度はありがとうございました。

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Wavelet Toolbox finden Sie in Hilfe-Center und File Exchange

Produkte

Tags

Community Treasure Hunt

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

Start Hunting!