cwt変換後に作成さ​れる行列の、各行と周​波数との関係性

3 Ansichten (letzte 30 Tage)
SHOHEI YAMASHITA
SHOHEI YAMASHITA am 10 Apr. 2019
Kommentiert: SHOHEI YAMASHITA am 11 Apr. 2019
現在、外部機器にて音声データを収録(Fs:50kHz,t=10s)し
waveファイルとしてmatlabに取り込み、行ベクトルに変換後、cwtを行っています。
結果は指定のファイル(wavelet_wave_1)に格納しています。
[y1,Fs1]=audioread(filename1);%waveファイルの読み込み
detrend_y1=detrend(y1);%直流成分除去
yy1=detrend_y1(1:500000,1)';%10秒間だけ切り出し
[wavelet_wave_1,f1]=cwt(yy1,50000);%連続ウェーブレット変換
出力された行列は161×500000のサイズとなっており、
列サイズはFs×tとなるのは分かるのですが、
161行の各行が、どの周波数帯に対応しているのかが分かりません。
1行目:25000Hzから始まり、10行ごとに1オクターブ下がるのでしょうか?
回答よろしくお願いします。

Akzeptierte Antwort

Shoumei
Shoumei am 11 Apr. 2019
出力された行列が161x500000となっているということですが、その161行が周波数軸に相当します。500000列が時間軸方向のデータです。
各行が何Hzとなっているかは変数f1に入っています。マザーウェーブレットが異なると周波数軸データf1も異なります。
以下コードで表示できますよ。
t = (0:numel(yy1)-1)/Fs1; % 時間軸データを作成
[wavelet_wave_1,f1]=cwt(yy1,Fs1);%連続ウェーブレット変換
surface(t, f1, abs(wavelet_wave_1))
  1 Kommentar
SHOHEI YAMASHITA
SHOHEI YAMASHITA am 11 Apr. 2019
行列f1を確認したところ、確かに入っておりました!
解決しました。
プログラムの表記まで、ありがとうございます。

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu 連続ウェーブレット変換 finden Sie in Help Center und File Exchange

Produkte


Version

R2017a

Community Treasure Hunt

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

Start Hunting!