1-01 BiquadのEXCELシートの説明(続き)

●サイン波の入出力を計算するシート

 隣のシートio-sinwaveを見てみましょう。A列(index)に0〜2047、B列(Time)はそれをサンプリング周波数(44100、READMEのB4セル)で割ったものです。C列(x[n])は図1‐09の式で示すようなサイン波になります(*1)

(*1)この例では1kHz(READMEのB5セルが1000)のサイン波になる。すなわち44100/1000サンプルで一回転(2π)する。

 D列は係数ですが、これらはf-responseシートのD列から転写されます。したがってもし係数を変える際はこのシートではなくf-responseシートの方を変更してください。

  図1-09 隣のシートを見てみる

●フィルタ演算は遅延→乗算→累積

 
E列以降で図1‐01のブロック図のような演算を行います。E列は入力x[n]に係数a0を
乗算します(図1‐10)。そしてF列x[n-1]は、x[n]を1サンプル遅延したものです。

  図1-10 C列にD2セルを乗算したものがE列

●a0, a1, a2を各列に書ける

 F列にa1を掛けたものがG列になります(図1‐11)。F列をさらに1サンプル遅延させたものがH列、それにa2を掛けたものがI列になります。

  図1-11 ブロック図(図1‐01)を実践している

●b1, b2は反転して乗算

 J列以降は図1‐01のブロック図のフィードバック側の計算です。N列がBiquadの出力y[n]、それを1サンプル遅延したものがJ列y[n-1]、それを2サンプル遅延したものがL列y[n-2]になります(*2)。
 それらに係数をかけたものがK、M列ですが、図1‐12のように符号を反転させていることに注意しましょう(*3)。

(*2)遅延器の初期値はすべて0になっています。
(*3)フィードバック側係数の符号に関してはここ参照。

  図1-12 ブロック図(図1‐01)と合っているか確認

サイン波が減衰しているのを確認

 5つの乗算結果を足し込んだものがN列の出力y[n]になります。横軸をTime、縦軸をそれぞれx[n]、y[n]としたグラフを図1‐13に示します。-3dB減衰しており、振幅特性と一致します。

  図1-13 減衰して
遅延している。遅延は90度ほど、位相特性でも-1.5[rad]あたり(-π/2)

●IIRとは無限インパルス応答という意味

 隣のシートio-responseはインパルス応答を計算します。図1‐14は単位インパルス入力x[n]と、インパルス応答y[n]のグラフです。IIR (Infinite Impulse Response)なので無限に続きますが、実質的には0に収束します。

  図1-14 LPFのインパルス応答はこんな感じ

最初のページへ

目次へ戻る