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

3 ビュー (過去 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 Center および File Exchange連続ウェーブレット変換 についてさらに検索

Community Treasure Hunt

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

Start Hunting!