• 締切済み

FIRフィルタを用いたディジタルイコライザについて

HAL2(@HALTWO)の回答

回答No.1

>少し調べたら、ほかのフィルタと比べて音質が良いとあったんですが 他の Filter とは何ですか? Analog Filter ですか? IIR Filter ですか? Analog Filter との比較であれば、Digitize した後から Analog に戻すまでの過程に於ける演算処理は Digital で行われるので「Digital 処理中での演算行為は音質を劣化させない」という「Digital 妄想」内で判ずれば「Analog 方式よりも音が良い筈」という回答が出てくるかと思います。 IIR Filter との比較であれば FIR Filter は制御すべき標本が終了すれば動作を停止して安定となり、Feedback を要さないので誤差が蓄積されない利点があり、誤差がないというわけではないのですが、動作が安定していて音質も一定に保たれるという特徴があるようです。 IIR Filter は Analog Filter では良質の Filter とされてきた Butterworth や Bessel 関数 Filter と同様の効果を Digital で行うもので、演算がきめ細かく Sharp であることから、回路動作の安定化を図るために高度な対策を施してでも利用される方式のようです。 つまり IIR Filter では「高度な対策」に誤りがあれば音質が悪くなるものの、誤りが無ければ FIR Filter よりも音が良い筈だと言え、FIR Filter は「高度な対策を要さない」ので音質は安定しているが、原理的に IIR Filter に比較すれば僅かながらの誤差を常に生じていることから正確ではないと言えるかもしれません・・・でも、不正確であっても安定はしているのですから、それが「良い音」と感じさせる Sound Character であると言うこともできます。 Analog Filter ではどれも計測上の誤差、つまり Noise や歪が検出されるものですが、だからと言って音が悪いというわけではなく、その回路特有の個性 (不正確さ) が良い音に繋がっていることが多々あります。 例えば「真空管は Transistor 系統よりも正確に増幅する」とは到底言えないにもかかわらず「真空管 Amplifier の音は良い」という感じ方があるのも真空管の個性 (不正確さ) を良い Sound Character として受け止めるからであって、FIR 型を良いとするか IIR 型を良いとするかは聴く人の感性に委ねられるものです。 まあ FIR 型にせよ IIR 型にせよ Analog Digital 変換部や Digital Analog 変換部及び Analog 変換された後の回路に於ける Sound Character を無視した議論は現実的な参考にはなりません。

関連するQ&A

  • ディジタルフィルタについて

    ディジタルフィルタについて質問させていただきます。 私が勉強して得た知識として、FIRフィルタとIIRフィルタというものが代表的なものとしてあるのはわかったのですが、実用的な観点でいまいち双方のメリット・デメリットが見えてきません。 一応、FIRは位相ひずみがなく、IIRは次数を小さく出来るということはわかるのですが、実際使うとなったときに、どのような基準でFIRかIIRかということを選択するのでしょうか? どなたか、実用的にディジタルフィルタを用いている方がいらっしゃいましたら、実際の経験にもとづいて(例えば、こういう事例であれば、こちらのフィルタの特性の方が用いやすい、などなど・・・)教えていただければありがたく思います。 以上、よろしくお願いいたします。

  • IIRフィルタとFIRフィルタ

    無限インパルス応答(IIR)フィルタと有限インパルス応答(FIR)フィルタとはアナログでいう、バンドパスフィルタやローパスフィルタ、ハイパスフィルタのデジタル版みたいなものであることは分かるのですが、 無限、有限というのは何を表しているのでしょうか? Wikipediaなどに解説はしてあるのですが、どうしても理解することが出来ません。 どなたか易しく説明して頂けないでしょうか?

  • FIRフィルタ

    なぜデジタルフィルタのFIRフィルタは直線位相特性を持っているのでしょうか?

  • デジタルフィルタ

    FIRフィルタでは直線位相特性は実現が可能に対して、IIRフィルタは位相特性が実現困難なのは何でですか?フィードバックするからですか?

  • FIRフィルタの遅延量補正とIIRフィルタの安定性について教えて頂きた

    FIRフィルタの遅延量補正とIIRフィルタの安定性について教えて頂きたいのですが。  双一次z変換を用いていくつかのIIRフィルタを作る事が出来ました。Scilbが持つIIR関数と比較して同じ結果になっています。IIRフィルタがフィルタ係数によっては不安定=発信したりする、というのはScilab等の結果と同じになる→フィルタ係数も同じ→不安定にならない。と思ってよいのでしょうか?。例えばですが、あるサンプリング周波数の波形データをフィルタする為に、同じサンプリング周波数で作ったImplus波形をIIRフィルタに放り込んで周波数応答を確認したら、実際にフィルタする波形データの最初から最後までその周波数応答でフィルタされると私は理解しているのですが。  私のフィルタを使う用途の場合は、フィルタの計算速度は特に制限は無く、速いに越した事はありませんが得られた結果が正確な事が大切なので、安定性や係数誤差の事を考えるとIIRフィルタではなくFIRフィルタでも構わないのですが、FIRフィルタの場合だとタップ数が多くなるので波形の遅延量が無視出来ません。フィルタを通した波形は次定数fastのレベル波形にして100Hz位で出すとは言え、IIRよりは数秒かコンマ数秒遅延した結果になると思います。そのような場合、遅延量を補正するとしたらどうしたら良いのでしょうか?。個人的にはタップ数が(IIRの場合は次数が)遅延量と思っているのですが。  宜しくお願い致します。

  • FIRフィルタ

    手元にC++で設計されたFIRフィルタの記述があります。これを理解したいのですが、FIRフィルタの構造が分からないため、理解できずにいます。 FIRフィルタについて分かりやすく解説したサイトはないでしょうか?自分でも探してみたのですがピンと来るものがみつけられませんでした。 厳密に解説してあるものというより、C++での設計のためのアルゴリズムにつなげられるような解説だと助かります。 ちなみに私はC++は専門ですが回路は初心者です。 よろしくお願いします。

  • FIRフィルタって

    FIRフィルタって何ですか? おバカにもわかるようお願いします。。 「入力データ」という1500個くらいの数値が入ったcsvファイルと、「フィルタ係数(インパルス応答)」という10個の数値を渡されて 「javaでFIRフィルタ作って」 って言われたんですが(学校の課題) なんのことやら・・・

  • デジタルフィルタとFIR Filter

    こんちには。 デジタルフィルタについて学んでいる者です。 カテ違いでしたらすみません。 http://www.f-kmr.com/filter.htm フィルタの種類や特性を調べており こちらのサイトが分かり易かったので、参考にしております。 このサイトの説明ですと 「横軸が周波数」「縦軸が利得」となっており ある周波数を基準にして、通す・通さないを決めているのだと 判断いたしました。 しかし、下記URLの4ページでは http://www.shinetsu-bt.go.jp/sbt/kenkyu/gapfiller/gapfiller-01/080526_siryou8-6_JRC.pdf 利得を基準にフィルタを設定しているように見えます。 「通す・通さない」というよりは「修正している」ように見えます。 そこで質問です。 【質問】 1. 利得を基準にしている方もデジタルフィルタなのでしょうか? 2. FIRフィルタとは、周波数を基準にフィルタをかけるのでしょうか? それとも利得を基準にフィルタをかけるのでしょうか? 素人ですみません。 宜しくお願いします。

  • デジタルフィルタの設計

    はじめてデジタルフィルタの設計をすることになりました。 決まっている事項は以下のようになります。 ・25msごと(40Hz)にA/D変換されたデータが出力されます。 ・出力データを使って波形を描きます。 ・描く波形はおよそ周波数は0~10Hzのものです。 ・係数を算出して、C言語のプログラムに組み込みます。 今のところ決まっているのはこのくらいです。 自分でも勉強していますが、 FIRは計算が比較的簡単で、安定しているが、次数が多くなる。 IIRは複雑で、不安定になることもあるが、次数が少なくてよい。 FIRでは、窓関数やREMEZ法などリプルを小さくする方法がある。 IIRでは、バタワース、チェビシェフ、ベッセルなどの方法がある。 程度のことしかわかっていません。 どのように設計していけばいいかわかりません。 経験のある方、良いアドバイスをお願いします。 また何かフリーツールで設計できるものがあれば教えてください。

  • FIRフィルタ

    FIRフィルタのフィルタ係数の計算式がわかりません。 例えば、サンプリング周波数100kHzとカットオフ周波数10kHzの値だけで計算できるのでしょうか?できなかったら簡単な例でもいいので教えてください。

専門家に質問してみよう