- cwt関数で得られる周波数ベクトルはlogスケール
- imagesc関数の第一、第二引数がベクトルの場合、最初と最後の要素のみ使用(それ以外は無視)
- imagesc関数の原点は左上
cwt(連続ウエーブレット変換)関数を用いたときのplotの仕方について
43 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
Réponses (1)
takemoto
le 12 Nov 2024 à 5:49
このケースでは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 commentaires
Voir également
Catégories
En savoir plus sur ビッグ データの処理 dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!