- ベストアンサー
FIRフィルタの設計
FIRの設計に関して、 設計パラメータとしてはカットオフ、減衰量、リップル など挙げられますが、制約が厳しいとタップ数が増えてしまいます。 高次のFIRにするほどロールオフが急で減衰量も理想に近づきますが 逆に、ノイズフロアは悪化(上昇)してしまいました。 これはリップルが増えたことが原因だと考えていますが リップルの増加=ノイズフロアの上昇といまいち結びつきません。 ノイズフロア上昇なので量子化誤差によるホワイトノイズが 関係しているのでしょうか? どなたか詳しい方、ご教授いただけないでしょうか。 説明が分かりづらい場合は補足いたします。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
>...... 直線位相のFIRです。 勘違いしてました。 次数を上げたら、ノイズ・レベルが増大したのではなく、ダイナミック・レンジが狭まったということみたいですね。 定性的には、(次数を上げて)遮断傾斜を急にすると、FIR での演算桁落ちが増大するのがふつう。 その結果としてノイズ・フロアが上がったようにみえる。 改善を要するなら、桁数を増やすしかなさそう。
その他の回答 (2)
・直線位相特性の FIR なのですか? 処理対象の信号がどんなものか、まったく不明なので、断定は不可能ですけど、ロールオフを急峻にすると 波形ひずみが増大するような信号なのじゃありませんか? もしフィルタ位相が非直線だと、ロールオフを急にすればするほど、位相の湾曲が大きくなり、波形ひずみ を増大させます。
補足
ご回答ありがとうございます。 #1さんのところで補足したとおり、直線位相のFIRです。 入力している信号は1kHzのサイン波なので、 波形ひずみは影響しないと考えていますがいかがでしょう? ちなみにサンプリングは48kHzです。
- rabbit_cat
- ベストアンサー率40% (829/2062)
本当に、回路を作って試してみたのか、それともシミュレーションで試してみたのか、どちらですか? 本当に理想的なFIRなら、FIR自身がノイズを作り出すことはありませんから、信号にもノイズにも、全く同じフィルタ特性がかかるだけです。 もし、本当に、ノイズフロアが上昇したんであれば、FIR自身がノイズを作り出しているんだと思いますが、それがなぜかは、どういうFIRを作ったのかわからなければ、答えようがないです。 >ノイズフロア上昇なので量子化誤差によるホワイトノイズが >関係しているのでしょうか? 理想的なFIRではれば、そもそも量子化誤差は0です。
補足
ご回答ありがとうございました。 ノイズフロアの現象はシミュレーションで確認しました。 シミュレーターはMatlabを使用しています。 フィルタの設計はMatlabで用意されている関数を使用しています。 もちろん直線位相は崩れていません。 Matlabではデフォルトでは、おそらく64or32bitで計算されるはずですので、 少なからず量子化誤差が発生します。 matlabでは ・fir1(10,0.5) ・fir1(100,0.5) で入力に理想のSINE波1kHzを入れてFFTを観測しました。 結果は次数の少ない前者がノイズフロアが低い結果が得られています。
補足
なるほど! FIRのタップ数が増えれば演算誤差の積み上げが多くなるということですね。 これによってノイズフロアが上昇しダイナミックレンジが狭くなってしまうように見えていたわけですね。 頭の中がすっきりしました。ありがとうございました。