CWT関数により表示されるウェーブレットのグラフからデータを取り出す方法について
显示 更早的评论
CWT関数を用いてウェーブレット変換を行い表示されるグラフから特定の範囲(周波数と時間)の強度のデータを取り出して保存する方法を教えてください。データカーソルを用いて選択した領域のデータをすべて保存できるでしょうか?
回答(1 个)
Shoumei
2019-2-4
MATLAB関数の多くは出力が無いとグラフィックス表示し、あると変数代入するようになっています。
CWT関数も出力引数を与えてやって、そのデータから所望の範囲を抽出すればよいと思います。
以下例です。
Fs = 44100;
t = 0:1/Fs:1;
x = chirp(t, 100, 1, 4000, 'quadratic'); % チャープ信号生成
[coefs,frq] = cwt(x, Fs);
% 可視化
figure,surface(t,frq,abs(coefs))
axis tight, shading flat
xlabel('Time (s)'), ylabel('Frequency (Hz)'), set(gca,'yscale','log')

% 一部の区間を抽出
indx_t = (t>0.5)&(t<0.7); % 時間0.5-0.7
t2 = t(indx_t);
indx_f = (frq>1000)&(frq<2000); % 周波数1k-2k
frq2 = frq(indx_f);
coefs2 = coefs(indx_f, indx_t);
% 可視化
figure,surface(t2,frq2,abs(coefs2))
axis tight, shading flat
xlabel('Time (s)'), ylabel('Frequency (Hz)'), set(gca,'yscale','log')

配列から一部の要素を抽出する方法はドキュメントのこのあたりが参考になるのでは。
类别
在 帮助中心 和 File Exchange 中查找有关 連続ウェーブレット変換 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!