| Japanese | English |
第15回LSIデザインコンテスト・イン沖縄 設計仕様書 - 4-2-2
4-2-2. N=8 のFFT回路
(1) 回路設計
前章と同様にパラレル入力に対するFFT回路から作成する.
シリアル入力を遅延させバタフライ演算回路に入力し, 出力信号のうちFFTに必要な信号のみ次のバタフライ演算回路へ送るようマルチプレクサで制御する。
作成した回路を図27に示す。
a) MUX_control
MUX_controlというブロックはマルチプレクサのセレクタに入力する信号を制御するシーケンスであり、これによりマルチプレクサの出力信号を決定している。
シーケンスのパラメータを図28に示す.
図28から読み取れるようにMUX_controlから出力される値はステップごとに変化している。 これによりバタフライ演算回路の出力信号のうちFFTに必要な信号のみ次のバタフライ演算回路へ送るよう制御を行っている。
b) W_control
W_controlは回転因子Wを表すシーケンスである。
STEPごとに複素乗算する回転因子の値(実部、虚部)を変化させて、バタフライ演算を行う。
回転因子Wは , , , であるため、シーケンスのパラメータは表7のようになる。
表7: W_controlシーケンスのパラメータ
表7において, を小数で表す際に概数として0.7071を用いた。
表7からわかるように、図26のMULT0において最初のステップでは , を乗算し、以降順に , , , を乗算している。 MULT1において最初のステップでは を乗算し、次のステップでは を乗算している。MULT2においては常に を乗算している。
図27のシリアル入力に対する8点FFT回路のタイミングチャートを図29に示す。
(2) 検証
入力信号を x(0)=0+0j, x(1)=1+1j, x(2)=2+2j, x(3)=3+3j, x(4)=4+4j, x(5)=5+5j, x(6)=6+6j, x(7)=7+7j として回路上でシミュレーションを行った。 出力波形を図30に示す。
図28の出力波形から小数点以下の値を読み取るのは困難なため,MATLAB上に値として表示した。
出力信号は X(0)=28+28j, X(1)=-13.6570+5.6575j, X(2)=-8+0j, X(3)=-5.6570-2.3430j, X(4)=-4-4j, X(5)=-2.3430-5.6575j, X(6)=0-8j, X(7)=5.6570-13.6570j となった。
MATLABの演算結果(図27参照)との誤差を表8に示す。
最大誤差は であり、この誤差の原因は を二進数で表した際に生じた丸め誤差である。
表8: MATLABにおける演算結果との誤差