音源のフィルター処理

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

Risposta accettata

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

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Audio Processing Algorithm Design in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!