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