(57)【要約】【課題】  積和演算するｘ（ｎ）、ｘ（ｎ−１）、ｘ（ｎ−２）、ｙ（ｎ−１）、ｙ（ｎ−２）の値が小さい時のみ定数をかけて積和演算することにより、規模の小さなハードウェアにおいて丸め込みによる誤差を小さくすることができるＩＩＲフィルタ装置を提供する。【解決手段】  ローパス特性を得るＩＩＲフィルタ装置において、帰還データのデータ幅は、出力データのデータ幅より広くし、入力データおよび帰還データの値が小さい時は、係数を乗じて積和演算し、積和演算後に係数で除して出力データを得る。【選択図】  図１
2005094378.tif 000002
【特許請求の範囲】
【請求項１】
ローパス特性を得るＩＩＲフィルタ装置において、
帰還データのデータ幅は、出力データのデータ幅より広くし、入力データおよび前記帰還データの値が小さい時は、該データに係数を乗じて積和演算し、積和演算後に前記係数で除して出力データを得ることを特徴とするＩＩＲフィルタ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタル信号処理に用いるＩＩＲフィルタ装置に関する。
【背景技術】
【０００２】
従来より、デジタル信号処理のローパスフィルタとして、ＩＩＲ（Infinite Impulse Response）フィルタが良く用いられている。このフィルタをハードウェアで構成すると、回路規模を小さく出来る固定小数点フォーマットをデータに使用する場合がある（例えば、特許文献１参照。）。このとき、データのサンプリング周波数に対し、ローパスフィルタの遮断周波数を小さく取ると、係数が小さくなり、入力値が小さい時は出力が０になってしまう問題がある。
ここで、２次のＩＩＲフィルタの例を示す（図４参照）。
ｙ（ｎ）＝ｂ０／ｘ（ｎ）＋ｂ１／ｘ（ｎ−１）＋ｂ２／ｘ（ｎ−２）＋ａ１／ｙ（ｎ−１）＋ａ２／ｙ（ｎ−２）
ｘ（ｎ）：入力データ
ｙ（ｎ）：出力データ
標本化周波数：１００ｋＨｚ、遮断周波数：１ｋＨｚの場合の係数データ
ａ１＝１．８４９５１１６０
ａ２＝−０．８６１６５８１７
ｂ０＝０．００３００１８８
ｂ１＝０．００６００３７７
ｂ２＝０．００３００１８８
入力データが１６ｂｉｔなので、積和演算器に１６ｂｉｔ×１６ｂｉｔの乗算器を用いると、あらかじめ２１５を乗じた係数データを用いて積和演算し、積和演算結果を２１５で除してｙ（ｎ）を求めると桁数をもっとも有効に用いることが出来る。すなわち、係数用メモリに入れておく値は次のようになる。
２１５・ａ１＝６０６０４
２１５・ａ２＝−２８２３４
２１５・ｂ０＝９８
２１５・ｂ１＝１９６
２１５・ｂ２＝９８
【特許文献１】実開平０５−００９０３１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、入力データが８３以下の状態が続き、ｘ（ｎ−１）とｘ（ｎ−２）も８３以下になると、
｛２１５・ｂ０・ｘ（ｎ）＋２１５・ｂ１・ｘ（ｎ−１）＋２１５・ｂ２・ｘ（ｎ−２）｝／２１５＜１
となってしまい、丸め込みがおきて入力データが０であることと同じになってしまい、ｙ（ｎ）の値に誤差が出るという問題が生じる。入力データをＮ倍して用いることにより、上記の丸め込み問題が発生する入力データは８３／Ｎに低下するが、それに応じて、積和演算器のｂｉｔ数も大きくする必要があり、ハードウェアの規模が大きくなってしまうという問題がある。
そこで、本発明は、上述した実情を考慮してなされたもので、積和演算するｘ（ｎ）、ｘ（ｎ−１）、ｘ（ｎ−２）、ｙ（ｎ−１）、ｙ（ｎ−２）の値が小さい時のみ定数をかけて積和演算することにより、規模の小さなハードウェアにおいて丸め込みによる誤差を小さくすることができるＩＩＲフィルタ装置を提供することを目的とする。
【課題を解決するための手段】
【０００４】
上記の課題を解決するために、請求項１に記載の発明は、ローパス特性を得るＩＩＲフィルタ装置において、帰還データのデータ幅は、出力データのデータ幅より広くし、入力データおよび帰還データの値が小さい時は、該データに係数を乗じて積和演算し、積和演算後に係数で除して出力データを得るＩＩＲフィルタ装置を最も主要な特徴とする。
【発明の効果】
【０００５】
本発明によれば、積和演算するｘ（ｎ）、ｘ（ｎ−１）、ｘ（ｎ−２）、ｙ（ｎ−１）、ｙ（ｎ−２）の値が小さい時のみ定数をかけて積和演算することにより、規模の小さなハードウェアにおいて丸め込みによる誤差を小さくすることができる。
【発明を実施するための最良の形態】
【０００６】
以下、図面を参照して、本発明の実施形態を詳細に説明する。図１は本発明の実施の形態であるＩＩＲフィルタ装置１００のブロック図であり、図２はＩＩＲフィルタ装置を使用したデジタル信号処理システムの概略構成図であり、図３は図１のモードコントローラの詳細図である。
図１に示すように、本実施の形態におけるＩＩＲフィルタ装置１００はモードコントローラ１０、ｘ（ｎ−１）レジスタ１１、ｘ（ｎ−２）レジスタ１２、２５・ｙ（ｎ−１）レジスタ１３と２５・ｙ（ｎ−２）レジスタ１４、２ｔｏ１セレクタ１５〜２１、５ｔｏ１セレクタ２２，２３、積和演算器２４、係数用メモリ２５を備えている。
入力データｘ（ｎ）は、１６ｂｉｔデータであり、図２に示すセンサ３０の信号をＡＤコンバータ３１でデジタル化した信号で、ＡＤコンバータ３１の１／標本化周波数の周期で送られてくる。出力データｙ（ｎ）も１６ｂｉｔデータで、図２に示すように、ＣＰＵ３２に送られ、センサ値を読み取っている。
ＩＩＲフィルタ装置では、ハードウェアを小さくするために、ｙ（ｎ）の演算は単一の積和演算器２４を用い、２つの５ｔｏ１セレクタ２２，２３を使って、係数とｘ（ｎ）、ｘ（ｎ−１）、ｘ（ｎ−２）、ｙ（ｎ−１）、ｙ（ｎ−２）を切り替えている。
ｘ（ｎ−１）、ｘ（ｎ−２）の値を保存しておくレジスタは、それぞれｘ（ｎ）と同じ１６ｂｉｔデータ幅のレジスタである。ｙ（ｎ−１）、ｙ（ｎ−２）の値は、１つ前や２つ前のｙ（ｎ）の値そのままではなく、２５を乗じた値を保存している。その為に２１ｂｉｔ幅（帰還データのデータ幅）のレジスタになっている。また、積和演算器２４の出力ｙ’（ｎ）は、３１ｂｉｔデータ幅の出力なので、２５・ｙ（ｎ−１）と２５・ｙ（ｎ−２）の値を求める時は、ｙ’（ｎ）を除する値をｙ（ｎ）を求める時の除数より２５小さくして丸め込みの誤差が出ないようにしている。
モードコントローラ１０はｘ（ｎ）の上位６ｂｉｔとｘ（ｎ−１）、ｘ（ｎ−２）、ｙ（ｎ−１）、ｙ（ｎ−２）の上位５ｂｉｔを監視し（図３参照）、すべてのｂｉｔが０の時はＳＥＬ信号を１にして、２５倍モードに切り替える。それ以外のときはＳＥＬ信号を０にして通常モードにする。ｘ（ｎ）のみ上位６ｂｉｔ監視するのは、ｘ（ｎ）が一定でもフィルタのリップルにより、ｙ（ｎ−１）とｙ（ｎ−２）はある程度変動してしまい、ｘ（ｎ）も上位５ｂｉｔしか監視しないと、下位１１ｂｉｔが全部１の状態が連続して続くとリプルでｙ（ｎ−１）とｙ（ｎ−２）の上位から５ｂｉｔ目が１になったり０になったりを繰り返し、モードが一定にならないのを避けるためである。
【０００７】
通常モード（ＳＥＬ＝０）の時は、各２ｔｏ１セレクタは、ａ入力を選択する。すなわち、５ｔｏ１セレクタへの入力は、ｘ（ｎ）、ｘ（ｎ−１）、ｘ（ｎ−２）、ｙ（ｎ−１）、ｙ（ｎ−２）となる。ｙ（ｎ−１）とｙ（ｎ−２）は２５・ｙ（ｎ−１）レジスタ１３と２５・ｙ（ｎ−２）レジスタ１４の値から２５を除した値になる。２５を除するのには除算器を用いる必要はなく、ｂｉｔのつなぎを替えるだけで出来る。すなわち、２５・ｙ（ｎ−１）［２０］をｙ’（ｎ−１）［１５］というように接続すれば良い。ｙ（ｎ）の値は、あらかじめ係数に乗じてあった２１５をｙ’（ｎ）から除した値となる。
【０００８】
２５倍モード（ＳＥＬ＝１）の時は、各２ｔｏ１セレクタは、ｂ入力を選択する。すなわち、５ｔｏ１セレクタ１への入力は、２５・ｘ（ｎ）、２５・ｘ（ｎ−１）、２５・ｘ（ｎ−２）、２５・ｙ（ｎ−１）、２５・ｙ（ｎ−２）となる。積和演算器２４が１６ｂｉｔデータ幅なので、上位５ｂｉｔのデータが積和演算器２４へ送られないが、モードコントローラで上位５ｂｉｔの値は０であることを確認しているので問題ない。
ｘ（ｎ）、ｘ（ｎ−１）、ｘ（ｎ−２）は、入力データとｘ（ｎ−１）レジスタ１１、ｘ（ｎ−２）レジスタ１２に２５を乗じた値になる。２５を乗じるのには除算器を用いる必要はなく、ｂｉｔのつなぎを替えるだけで出来る。すなわち、ｘ（ｎ）［１０］をｘ’（ｎ）［１５］というように接続し、ｘ’（ｎ）［４：０］には０を接続すれば良い。
ｙ（ｎ）の値は、あらかじめ係数に乗じてあった２１５とｘ（ｎ）、ｘ（ｎ−１）、ｘ（ｎ−２）、ｙ（ｎ−１）、ｙ（ｎ−２）に乗じていた２５の両方をｙ’（ｎ）から除した値となる。ｘ（ｎ）、ｘ（ｎ−１）、ｘ（ｎ−２）に２５を乗じたため、
｛２１５・ｂ０・２５・ｘ（ｎ）＋２１５・ｂ１・２５・ｘ（ｎ−１）＋２１５・ｂ２・２５・ｘ（ｎ−２）｝／２１５＜１
となるのは、ｘ（ｎ）、ｘ（ｎ−１）、ｘ（ｎ−２）が２以下の時だけである。
このように、本実施の形態のＩＩＲフィルタ装置１００では、ｙ（ｎ−１）、ｙ（ｎ−２）の値は、１つ前や２つ前のｙ（ｎ）の値そのままではなく、２５を乗じた値を保存していることと、積和演算器２４への入力データの上位５ｂｉｔが０の時は、２５・ｘ（ｎ）、２５・ｘ（ｎ−１）、２５・ｘ（ｎ−２）、２５・ｙ（ｎ−１）、２５・ｙ（ｎ−２）に２５を乗じた値を積和演算器２４に入力することにより、小さなハードウェアで入力データ値が小さい時の丸め込みによる誤差を少なくすることができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施の形態であるＩＩＲフィルタ装置１００のブロック図である。
【図２】ＩＩＲフィルタ装置１００を使用したデジタル信号処理システムの概略構成図である。
【図３】モードコントローラ１０（図１）の詳細図である。
【図４】従来技術におけるＩＩＲフィルタのブロック図である。
【符号の説明】
【００１０】
１０  モードコントローラ
１１  ｘ（ｎ−１）レジスタ
１２  ｘ（ｎ−２）レジスタ
１３  ２５・ｙ（ｎ−１）レジスタ
１４  ２５・ｙ（ｎ−２）レジスタ
１５〜２１  ２ｔｏ１セレクタ
２２，２３  ５ｔｏ１セレクタ
２４  積和演算器
２５  係数用メモリ
３０  センサ
３１  ＡＤコンバータ
３２  ＣＰＵ
１００  ＩＩＲフィルタ装置
【図１】
2005094378.tif 000003
【図２】
2005094378.tif 000004
【図３】
2005094378.tif 000005
【図４】
2005094378.tif 000006