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の複素共役を表します。