こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

matlab初心者です。

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

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

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

投稿日時 - 2010-12-01 09:01:22

QNo.6355444

すぐに回答ほしいです

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

フィルタの設計方法は幾つかあると思いますが、
関数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/

投稿日時 - 2010-12-09 14:14:38

このQ&Aは役に立ちましたか?

7人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問