DSP-コンピュータ支援設計
FIRフィルターは、フィルターのコンピューター支援設計を行うのに役立ちます。例を見て、それがどのように機能するかを見てみましょう。以下に、必要なフィルターの図を示します。
コンピューターの設計を行う際に、連続グラフの数値全体を離散値に分割します。特定の制限内で、離散的な大きさを持つ64、256、または512(など)の数のパーツに分割します。
上記の例では、-πから+πまでの制限を採用しています。256の部分に分けました。ポイントは、H(0)、H(1)、…。最大H(256)として表すことができます。ここでは、IDFTアルゴリズムを適用します。これにより、線形位相特性が得られます。
場合によっては、特定のフィルターの順序に関心があることがあります。上記の設計を9次フィルターで実現したいとします。したがって、フィルター値をh0、h1、h2….h9とします。数学的には、以下のように表示できます。
$$ H(e ^ {j \ omega})= h_0 + h_1e ^ {-j \ omega} + h_2e ^ {-2j \ omega} + ..... + h_9e ^ {-9j \ omega} $$転位が多い場合は最大点を取ります。
たとえば、上の図では、ポイントBとCの間で急激な傾きの低下が見られます。したがって、このポイントではより離散的な値を取得しようとしますが、ポイントCとDの間には一定の勾配があります。離散値の数が少なくなります。
上記のフィルターを設計するために、次のように最小化プロセスを実行します。
$ H(e ^ {j \ omega1})= h_0 + h_1e ^ {-j \ omega1} + h_2e ^ {-2j \ omega1} + ..... + h_9e ^ {-9j \ omega1} $
$ H(e ^ {j \ omega2})= h_0 + h_1e ^ {-j \ omega2} + h_2e ^ {-2j \ omega2} + ..... + h_9e ^ {-9j \ omega2} $
同様に、
$(e ^ {j \ omega1000})= h_0 + h_1eH ^ {-j \ omega1000} h_2e ^ {-2j \ omega1000} + ..... + h_9 + e ^ {-9j \ omega1000} $
上記の方程式を行列形式で表すと、次のようになります。
$$ \ begin {bmatrix} H(e ^ {j \ omega_1})\\。\\。\\ H(e ^ {j \ omega_ {1000}})\ end {bmatrix} = \ begin {bmatrix} e ^ {-j \ omega_1}&...&e ^ {-j9 \ omega_1} \\。&&。\\。&&。\\ e ^ {-j \ omega_ {1000}}&...&e ^ {j9 \ omega_ {1000}} \ end {bmatrix} \ begin {bmatrix} h_0 \\。\\。\\ h_9 \ end {bmatrix} $$1000×1行列をB、1000×9行列をA、9×1行列を$ \ hat {h} $としましょう。
したがって、上記の行列を解くために、次のように記述します。
$ \ hat {h} = [A ^ TA] ^ {-1} A ^ {T} B $
$ = [A ^ {* T} A] ^ {-1} A ^ {* T} B $
ここで、A *は行列Aの複素共役を表します。