• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:IIRディジタルフィルタの縦列接続変換について)

IIRディジタルフィルタの縦列接続変換とは?

このQ&Aのポイント
  • IIRディジタルフィルタの縦列接続変換について、量子化誤差を考慮した設計方法について解説します。
  • 4次のIIRフィルタを2次IIRフィルタの縦列接続に変換したい場合の手法について調査しました。
  • 被除数と除数を多項式で表し、除法を行うことで、伝達関数の分母と分子を2次多項式に分解する方法があります。

質問者が選んだベストアンサー

  • ベストアンサー
  • foobar
  • ベストアンサー率44% (1423/3185)
回答No.2

#1に関して補足、修正 通常は a0 + a1*x + a2*x^2 + a3*x^3+ a4*x^4=0 全体をa4で除して、最高次(この場合はx^4)の係数を1にして (c0+c1*x+c2*x^2)(d0+d1*x+d2*x^2) のc2,d2を1にします。 でないと、決定すべき係数の数が多すぎて一意に決まりませんので。 ((x-x1)(x-x2)(x-x3)(x-x4)はその形になってます) 実係数多項式の解を求めるプログラムでは、複素解は全て共役になっていることを使って、二次式(とひとつの一次式)の積に展開し、二次式から解の公式で計算するアルゴリズムが良く使われるようです。 今回の用途では、二次式の展開まででよい(その後の解の計算は不要)ので、多少計算が楽になるかもしれません。 実係数の多項式の解を数値計算する場合、順番に二次式を除していく方法では、だんだん誤差が累積し、後のほうで求めた解の精度が落ちる可能性があります。二次式への分解が完了したら、積を再計算して、もとの多項式と係数を比較してみるなどの考慮が必要かと思います。

tak_man
質問者

お礼

回答いただいた内容で数値計算関係の本を探したところ、 二次式に展開するベアストウ・ヒッチコック法のアルゴリズムとソースコードを みつけました。(Numerical Recipes in Cは在庫切れでした・・・大学でみたことあったんですが・・) 回答ありがとうございました。

その他の回答 (1)

  • foobar
  • ベストアンサー率44% (1423/3185)
回答No.1

要は、実係数の4次の方程式 a0 + a1*x + a2*x^2 + a3*x^3+ a4*x^4=0 を満たす解(x1,x2,x3,x4)を求めて、(係数が実数なので、複素根は共役になる。) 分母の多項式を (x-x1)(x-x2)(x-x3)(x-x4) =(c0+c1*x+c2*x^2)(d0+d1*x+d2*x^2) という形に持っていければよい。 ということになります。 数値解を求めるには、市販の数式処理プログラムを使うのが手っ取り早くて楽なのですが、 使えない場合には、自分で計算プログラムを作る必要が出てくるかもしれません。 繰り返し計算で、実係数多項式の解をもとめるプログラムはいくつか公開されています。 (私が使ったことがあるのは、Numerical Recipes in Cに掲載のプログラム。手順は、ご質問でかかれているように、二次の多項式で除算をして、余り(一次の式)が0になるように収束計算を行う、というものでした。)

tak_man
質問者

お礼

なるほど! (x-x1)(x-x2)(x-x3)(x-x4)の形にできればいかようにも加工できますね。 多項式の解の数値計算なら、より高次な多項式への汎用性も期待できそうです。 回答ありがとうございました。

関連するQ&A