• ベストアンサー

matlabで指定した周波数帯域だけ返す方法

matlab初心者です。 matlabで、ある音響データを読み込んだ時、時間領域の波形のまま、 指定した周波数帯域だけを取り出したいのですがやり方が分かりません。 例として、サンプリング周波数44.1kH  16bitモノラル音源の音響データがあったとして、 1kH~1.5kHの周波数帯域を時間領域の波形のまま取り出すにはどうすればいいですか? つまるところ、帯域通過フィルタの設計方法がわからないのです。

質問者が選んだベストアンサー

  • ベストアンサー
  • m_takeda
  • ベストアンサー率100% (3/3)
回答No.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/

関連するQ&A

専門家に質問してみよう