CWT関数により表示​されるウェーブレット​のグラフからデータを​取り出す方法について

9 次查看(过去 30 天)
Suguru
Suguru 2019-2-1
回答: Shoumei 2019-2-4
CWT関数を用いてウェーブレット変換を行い表示されるグラフから特定の範囲(周波数と時間)の強度のデータを取り出して保存する方法を教えてください。データカーソルを用いて選択した領域のデータをすべて保存できるでしょうか?

回答(1 个)

Shoumei
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')
Wv1.jpg
% 一部の区間を抽出
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')
Wv2.jpg
配列から一部の要素を抽出する方法はドキュメントのこのあたりが参考になるのでは。

类别

Help CenterFile Exchange 中查找有关 連続ウェーブレット変換 的更多信息

Community Treasure Hunt

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

Start Hunting!