- cwt関数で得られる周波数ベクトルはlogスケール
- imagesc関数の第一、第二引数がベクトルの場合、最初と最後の要素のみ使用(それ以外は無視)
- imagesc関数の原点は左上
cwt(連続ウエーブレット変換)関数を用いたときのplotの仕方について
8 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
cwt(連続ウエーブレット変換)を用いた結果をグラフにplotするときに、surface関数とimagesc関数をそれぞれ使用したときに、グラフの結果が異なります。どちらのplotの方法が正確なのでしょうか?具体的な理由もお願いします。
fl = 100;
fs = 8000; % サンプリング周波数
t = 0:1/fs:1-1/fs; % 時間ベクトル(1秒間)
signal = sin(2*pi*fl*t); % 100Hz の信号
% モラウェーブレットを使ってCWTを計算
[wt, f] = cwt(signal, 'morse', fs);
% CWTの結果をプロット
figure;
surface(t,f,abs(wt)); %surfaceでplot
%imagesc(t,f,abs(wt)); %imagescでplot
axis tight;
shading flat
xlabel('Time (s)');
ylabel('Frequency (Hz)');
title('CWT Magnitude using Morse Wavelet');
colorbar;
よろしければ、imagescとsurfaceの関数の違いも教えてほしいです。
0 Kommentare
Antworten (1)
takemoto
am 12 Nov. 2024
このケースではsurface関数の実行結果がより正確かと思います。表示結果が異なる理由として、以下が考えられます。
imagescを使用し、100Hz付近にピークを持つ特性を確認する場合、以下の様に書けるかと思います。
fl = 100;
fs = 8000; % サンプリング周波数
t = 0:1/fs:1-1/fs; % 時間ベクトル(1秒間)
signal = sin(2*pi*fl*t); % 100Hz の信号
[wt, f] = cwt(signal, 'morse', fs);
imagesc("XData",t,"YData",f,"CData",abs(wt)); % 縦軸と横軸のデータを明示
set(gca,"Yscale","log") % 縦軸をlogスケールとする
axis xy % 縦軸の反転
0 Kommentare
Siehe auch
Kategorien
Mehr zu 連続ウェーブレット変換 finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!