Octaveで Signal Processing

1.これは、困った...

   「シミュレーションで学ぶディジタル信号処理 尾知先生 CQ出版」から。

    第2章の章末問題に、こんなのが、ありました。

「図の差分方程式を求めなさい」

これは、第2章で解説されていた、差分方程式とは違い、格段の難しさでした...

これが、IIRフィルタで、ある事は、知っては、いました。

ヒントとして、「媒介変数 x’(n)を置く」と、指示されていましたが、

私は、連立差分方程式は、さっぱり、解りません。

手持ちの本を、漁って

「C言語によるディジタル信号処理入門 三上先生 CQ出版 p.85」 にて

やっと、理解できました。

これは、直接型2と、言って、「乗算は順序を変えても同じ結果が得られます」 から

直接型1の、乗算の順序を、変えたものです。

この解説なら、解る。 ありがとうございます。

まず、遅延の所を、2つに分離。

次に、乗算の順序を入れ替えるのです。

これから

    係数が a の所は、firフィルタそのもの、係数が b のものは、フィードバックである事が、わかります。

ですので、

これは、IIRフィルタであり

    y[n] = ΣAn y[n-m] + ΣBn x[[n-m] 

の形です。

    結局

    y[n] = b1y[n-1] + b2y[n-2] + a0x[n] + a1x[n-1] + a2x[n-2]

と、なりました、やれやれ (^_^;;

この問題と、同じ形で、遅延器が4つの、セルラ用、IIRフィルタの例が、第1章で、紹介されていました。

これを、octaveしてみると

こんな、風です。

「このフィルタを少数部12ビットの単精度固定小数点乗算器を用いて実際に動作させると、

 振幅特性が理想特性に対して劣化する......」(同書p.9)

2.第3章「信号のスペクトル解析」に、入る

   sin と、cos の掛け算の周波数シフトを、調べる。

100HZのsin波と、300Hzのcos波を掛け合わせると、

振幅が、元の振幅の半分の、200Hzと、400Hzのスペクトルが、観察される。

一方、複素信号同士を、掛け合わせると

100Hzの複素信号と、300Hzの掛け算では、

400Hzの信号しか、生じない事が、解ります。振幅も、元の信号と、同じ大きさやっ!

更に

sin 100Hzと、複素信号 exp(j*300*t) 300Hzを掛け合わせると

実信号と同じ、200Hz, 400Hzが生じるが、振幅は、1/2に、ならないですね。

3.サンプリング定理

サンプリングされた離散信号から

何故、連続信号が、復元できるのか、書いてありました。

そのため、

    まず、連続時間信号と、離散時間信号の、周波数スペクトルの関係が、説明されて、

次に、帯域が重ならなければ (T:サンプリング周期)

    「周波数区間 [-f/2,f/2」において、振幅が1/T倍される以外は

     連続信号の周波数スペクトルと、全く同じになる」

と、説明されています、御意。

H18.5.18