- cwt関数で得られる周波数ベクトルはlogスケール
- imagesc関数の第一、第二引数がベクトルの場合、最初と最後の要素のみ使用(それ以外は無視)
- imagesc関数の原点は左上
cwt(連続ウエーブレット変換)関数を用いたときのplotの仕方について
14 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
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 comentarios
Respuestas (1)
takemoto
el 12 de Nov. de 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 comentarios
Ver también
Categorías
Más información sobre 連続ウェーブレット変換 en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!