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のインパルス応答はこんな感じ
最初のページへ
目次へ戻る |