CWT関数により表示されるウェーブレットのグラフからデータを取り出す方法について
3 ビュー (過去 30 日間)
古いコメントを表示
CWT関数を用いてウェーブレット変換を行い表示されるグラフから特定の範囲(周波数と時間)の強度のデータを取り出して保存する方法を教えてください。データカーソルを用いて選択した領域のデータをすべて保存できるでしょうか?
0 件のコメント
回答 (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')
配列から一部の要素を抽出する方法はドキュメントのこのあたりが参考になるのでは。
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で 連続ウェーブレット変換 についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!