プロが教える店舗&オフィスのセキュリティ対策術

matlab初心者です。

matlabで、ある音響データを読み込んだ時、時間領域の波形のまま、
指定した周波数帯域だけを取り出したいのですがやり方が分かりません。

例として、サンプリング周波数44.1kH  16bitモノラル音源の音響データがあったとして、
1kH~1.5kHの周波数帯域を時間領域の波形のまま取り出すにはどうすればいいですか?

つまるところ、帯域通過フィルタの設計方法がわからないのです。

A 回答 (1件)

フィルタの設計方法は幾つかあると思いますが、


関数fir1を使ってFIRバンドパスフィルタを設計する方法をご紹介します。

Fs=44100; % サンプリング周波数(Hz)
N=100; % フィルタ長。大きいとフィルタ精度が向上するが畳み込みに時間を要する
Wn=[1000 1500]/(Fs/2); % 通過帯域を表すベクトル。0Hzが0、(Fs/2)Hzが1となるようスケーリング
fil=fir1(N,Wn,'bandpass'); % バンドパスフィルタの設計

あとは関数convを使って畳み込み積分をすればOKです。
フィルタの特性はfreqz(fil,1)で確認することができます。

参考URL:http://lis2.huie.hokudai.ac.jp/~toyo/MATLAB/
    • good
    • 4

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!