第 9 章 デジタルフィルタ回路実装
9.2 固定小数点フィルタ演算の仕様設計
Common信号のデータ形式は12bit符号無し整数型(int12)であり、このままでは演算
することができない。よって、浮動小数型か固定小数型に型変換する必要がある。第8章 は浮動小数演算で解析したが、FPGAには演算処理が高速に行える固定小数型での演算方 式を採用する。しかし、固定小数型は表現できる数値が量子化するので丸め誤差が生じる。
よって固定小数型によるフィルタ演算精度の検証を行う必要がある。
9.2.1 固定小数型フォーマット
Common信号のADCの仕様は以下の通りである。
ADC型式 LINEAR TECHNOLOGY社製 LTC2293
ADC分解能 12bit
ADC周波数 62.5Msps
ADCレンジ
ADC出力フォーマット ストレート・バイナリ
電圧値とチャネルの関係を(9.1)式と(9.2)式に示し、得られる値を表9-1に示す。
(9.1)
(9.2)
- 77 -
表 9-1 電圧値とチャネルの対応関係 チャネル 電圧値 [V] Binary number
0 -0.999511719 000000000000
・・
・
・・
・
・・
・
2044 -0.001464844 011111111100 2045 -0.000976563 011111111101 2046 -0.000488281 011111111110 2047 0 011111111111 2048 0.000488281 100000000000 2049 0.000976563 100000000001 2050 0.001464844 100000000010
・・
・
・・
・
・・
・
4095 1 111111111111
電圧値を表現する固定小数型のフォーマットを図9-3に示す。語長32bitの符号1bit、整数 部12bit、小数部19bit(sfix32En19)に定めた。符号ビットは0正を、1負を表す。
語長32bit
符号1bit 整数部12bit 小数部19bit
図 9-3 固定小数型のフォーマット
9.2.2 固定小数演算精度の検証
頭部用半導体PETのADCのサンプリング周波数 と、第8章で得た、最も 良いエネルギーFWHM、SN比の値を示した遮断周波数 =30kHzを(8.48)式に代入して、
二次型チェビシェフローパスフィルタ係数A,B,Cを得る。ここで、sfix32En19でこれらフ ィルタ係数を表現しようとしたとき丸め誤差が生じてしまう(表9-2)。
表 9-2 遮断周波数 30kHz のフィルタ係数値
データ型 フィルタ係数 A フィルタ係数 B フィルタ係数 C
- 78 -
double 1.513952711305781e-06 -1.997532956690654 0.997540526908441 sfix32En19 1.9073486328125e-06 -1.9975337982178 0.9975414276123
16 進数表示 x(0000 0001) x(FFF0 050D) x(0007 FAF7)
固定小数演算精度の検証を行うのにSimulinkを利用した。SimulinkとはMath Works 社が提供する汎用シミュレーションであり、システムをブロック図でモデル化し、モデル 動作の検証が行える環境である [27]。Simulinkで固定小数点演算をブロック図でモデル化 し、検証作業を行った。ブロック図を図9-4に示す。なお、階層構造になっており、
CHEB2_Filterブロックを図9-5に示す。
図 9-4 固定小数点演算ブロック図
図 9-5 CHEB2_Filter ブロック図
このモデルで浮動小数演算した場合と固定小数演算した場合のシミュレーション結果を図 9-6に示す。やはり丸め誤差の影響で出力波形に違いが見られたが、フィルタ演算は可能と 判断し、このモデルをFPGAで実現することにした。
- 79 -
図 9-6 Simulink での演算シミュレーション結果( のフィルタ)
- 80 -