音源のフィルター処理

5 vues (au cours des 30 derniers jours)
Cir 2t
Cir 2t le 15 Août 2020
Commenté : Cir 2t le 20 Août 2020
初心者質問ですみませんが、192kHzでサンプリングした音源を「クロスオーバー周波数26または22kHz、カットオフ減衰量170または80dB/オクターブのローパスフィルタとハイパスフィルタ」にかけたいと考えています。
正直、質問していて私自身にもわかっていないことが多いのですが、論文に書いてあるので、そのまま質問させていただきます。
どなたか、matlabでこのフィルターをかけることができる、コードを教えていただけないでしょうか?
具体例があると良いのですが。宜しくお願い致します。

Réponse acceptée

takemoto
takemoto le 17 Août 2020
Audio Toolboxから提供される機能で実現可能かと思います。
>>data = audioread('aaa.wav');
>>crossFilt = crossoverFilter(1,'CrossoverFrequencies',26e3,'CrossoverSlopes',80) ;
>>[y1,y2] = crossFilt(data);
とすれば、26kHzをクロスオーバー周波数とした、highバンド側とlowバンド側の出力が得られるはずです。
  5 commentaires
takemoto
takemoto le 17 Août 2020
クロスオーバーフィルタは、一般には、所定のクロスオーバー周波数を境界点として、その高域成分と低域成分を分割するのに使用しますので、二分割の場合はバンドパスではなく、ハイパスフィルタとローパスフィルタの組み合わせとなりますが、三分割以上の場合は、それにバンドパスを加えた構成になるかと思います。
ご案内した上記例題のパラメータの意味ですが、10はフィルタの次数です。20次のフィルタを、二つのフィルタのカスケード接続で構成するため、単体のフィルタの次数を10としているのだと思います。 750は、ナイキスト周波数(サンプリング周波数の半分)です。butter関数は、カットオフ周波数の値を、ナイキスト周波数を1として正規化した値で設定するために、この用な表現になっているのではないでしょうか。
以上、参考となれば幸いです。
Cir 2t
Cir 2t le 20 Août 2020
よくわかりました。色々とご指導ありがとうございました。

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Audio Processing Algorithm Design dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!