- ベストアンサー
IIRフィルタの係数変更方法の疑問
- IIRフィルタについて疑問があり、係数変更方法について教えてください。
- IIRフィルタの1次版の図1の係数について、サンプリング周波数を変更して使いまわす方法が分かりません。
- IIRフィルタの係数変更方法について教えてください。アナログの伝達特性はわかりません。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
>係数をカットアンドトライで決めながら元の周波数特性のグラフのような形になるまでひたすら試行するということでしょうか? 一般には「カットアンドトライ」になるのでしょう。 今の例は次数が低いので、三点だけ強引にフィットさせるよう未定係数{a1, b0, b1}を求める、という手もありそう.... 。 EXCEL 使用のシミュレーション例を一つだけ。 H(Z) = (b0+b1*Z)/(1-a1*Z) を想定。< z^(-1) を Z と略記 > a0=2.0, b1=b2=0.5 のとき、100kHz サンプリングでカットオフ(3dB ダウン)がほぼ 10kHz 。このとき、25kHz にてほぼ 10dB ダウン。 50kHz サンプリングで 25kHz までほぼ合わせようとすると、 a0=5.0, b1=3.0, b2=1.0 あたりになりそうです。お試しのほどを。
その他の回答 (4)
蛇足です。 EXCEL 使用のシミュレーション例をもう一つだけ。 H(Z) = (b0+b1*Z)/(a0+a1*Z) ただし、Z = exp(-jθ) として Butterworth 一次特性の H(Z) を想定し、カットオフ(3dB ダウン)だけ合わせた場合です。 (1) サンプリングが 100kHz(θ/π=2)、カットオフ(3dB ダウン)が 10kHz(θc/π=0.2) ならば、 a0=-2.08, a1=4.08, b0=b1=1.00 (2) サンプリングが 50kHz(θ/π=2)、カットオフ(3dB ダウン)が 10kHz(θc/π=0.4) ならば、 a0=-0.38, a1=2.38, b0=b1=1.00 ------------------------------- いずれも、ナイキスト周波数(θ/π=1) にて減衰が無限大。 [a0, a1 の算定式] K=SQRT{(1+cosθc)/(1-cosθc)} として、 a0=1-K a1=1+K
お礼
178tallさん、お世話になっております。 追加情報ありがとうございました。 a0,a1の算定式に当てはめて計算してみると 確かに178tallさんの係数を求めることが できました。SIMに関しては後日やって 見ようと思います。 また調べてみるとExcellを使ったIIRやFIR の設計について書いてある参考書もあるみたい ですね。今度見てみようと思います。 色々と教えていただきありがとうございました。
>同じ回路を違うサンプリング周波数でも流用したい場合は計算式中のサンプリングの項に代入する値を変更し、再計算することでその特性を得られるIIRの係数が求まると思います。...... >伝達関数が分からず、計算済みのIIRの係数が分かっているのですがここからサンプリング周波数を変えて同じ動作をさせるというのは不可能なのでしょうか? サンプリング周波数 = 96kHzで使っていた LPF は、ナイキスト周波数(48kHz)を軸として対称な周波数特性ですね。 また、サンプリング周波数 = 48kHz だとそのナイキスト周波数(24kHz)に対して対称な周波数特性になります。 つまり「サンプリング周波数を変えて同じ動作をさせるというのは不可能」じゃありませんか ? 入力スペクトルを 24kHz 以下に制限できるのなら、もとの LPF の 24kHz 以下の周波数特性に近似するという手はありそうですけど。 (もとの IIR 係数に周波数変換を施せば良い、といものではなさそうです。いかがでしょうか)
お礼
178tallさん、いつもご解答ありがとうございます。 なるほど。確かにサンプリングを変えると折り返し点が変わって きてもともとの特性そのままと言うわけにはいかないですね。 今回は96kHzサンプリングで設計されたフィルタ(例えばカットオフ10kHz) を48kHzサンプリングにして同じく10kHzのカットオフを持たせるという ことで 入力は24kHz以内に制限されているので問題ないと思います。 >LPF の 24kHz 以下の周波数特性に近似するという手はありそうですけど。 これは係数をカットアンドトライで決めながら元の周波数特性の グラフのような形になるまでひたすら試行するということでしょうか?
>例えば、サンプリング周波数96kHzで使っていたLPFをカットオフ周波数などの特性を変えずにサンプリング周波数48kHzで使いたい ..... ディジタル・フィルタの周波数特性は周期関数ですから、「全特性を変えずに」サンプリング周波数を下げるのは不可能じゃありませんか ? たとえば、もとの周波数特性の半周期分に近似するとか.... 。
補足
通常(かどうかは分かりませんが・・)、デジタルフィルタを設計する際、実現したいアナログでの回路での伝達特性が分かると、そこから双一次変換を用いてデジタルフィルタでの係数を算出します。 ここで計算式の中にサンプリング周波数のパラメータがあり、もし同じ回路を違うサンプリング周波数でも流用したい場合は計算式中のサンプリングの項に代入する値を変更し、再計算することでその特性を得られるIIRの係数が求まると思います。 今回はアナログ回路の伝達関数が分からず、計算済みのIIRの係数が分かっているのですがここからサンプリング周波数を変えて同じ動作をさせるというのは不可能なのでしょうか?
>... サンプリング周波数だけを変更して使いまわしたいのですが係数をどのように変更したらよいのか分からずに困っています。 サンプリング周波数だけ変更し係数をそのままにしておけば、規準化周波数特性は不変です。 係数を変更するとその特性も変わりますから、再計算せねばなりません。 .... って、回答になってないのかな。
お礼
ご回答ありがとうございます。 説明が分かりづらくて申し訳ありませんでした。 今回は例えば、サンプリング周波数96kHzで使っていたLPFを カットオフ周波数などの特性を変えずにサンプリング周波数 48kHzで使いたいということです。 単にサンプリング周波数を変えてしまうと上記例ですとカットオフも 当然低域にずれてきてしまうので係数の変更をしようと考えました。 アナログの伝達関数など分かっていればそこから計算する方法は 分かったのですが、アナログ特性が未知なのでどうしてよいものか・・・。
お礼
178tallさん、早速の回答ありがとうございます。 ExcelでもIIRのシミュレーションができるんですね! 係数も調べていただいてありがとうございます。 私はMATLABを使用してシミュレーションをやっていて 今ちょっとできない状況なのであとで試してみます。 数回にわたりご解答いただきありがとうございました。