(57)【要約】【課題】回路規模を大幅に削減するとともに、精度よい出力データを得ることができるデジタルフィルタを提供する。【解決手段】２値で表現される入力データがシフトレジスタ１０に供給され、シフトレジスタ１０の各段における遅延データに基づき、その遅延データが一方の値のときには対応する係数レジスタ２１１〜２１ｎのフィルタ係数の２倍の値を、他方の値のときにはゼロの値を選択し、出力するスイッチ１１１〜１１ｎと、スイッチ１１１〜１１ｎの各選択データを加算する加算回路１２と、上記各フィルタ係数の総和の値を記憶する総和レジスタ２０と、加算回路１２からの加算データＡＤより総和レジスタ２０の総和データＳＫｎを減算する減算器２２とを備える。【選択図】  図１
2004289417.tif 000002
【特許請求の範囲】
【請求項１】
１ビットで表現される入力データを複数段シフトしながら記憶するシフトレジスタと、
フィルタの伝達特性を決定するフィルタ係数に対応した係数データを、それぞれ記憶する複数個の係数レジスタと、
前記シフトレジスタの各段における遅延データに基づき、前記遅延データが一方の値のときには、その段に対応する前記係数レジスタの係数データの値を選択し、前記遅延データが他方の値のときには、ゼロの値を選択し、それぞれに選択した値を選択データとして出力する複数個の選択回路と、
前記複数個の選択回路からの各選択データを加算し、加算結果を加算データとして出力する加算回路と、
前記フィルタ係数の総和に対応した総和データを記憶する総和レジスタと、
前記加算データから前記総和データを減算し、減算結果を出力データとして出力する減算器とを備え、
前記それぞれの係数レジスタは、前記フィルタ係数の２倍の値である係数値を係数データとして記憶し、
前記総和レジスタは、前記フィルタ係数の総和値である係数総和値を総和データとして記憶することを特徴とするデジタルフィルタ。
【請求項２】
１ビットで表現される入力データを複数段シフトしながら記憶するシフトレジスタと、
フィルタの伝達特性を決定するフィルタ係数に対応した係数データを、それぞれ記憶する複数個の係数レジスタと、
前記シフトレジスタの各段における遅延データに基づき、前記遅延データが一方の値のときには、その段に対応する前記係数レジスタの係数データの値を選択し、前記遅延データが他方の値のときには、ゼロの値を選択し、それぞれに選択した値を選択データとして出力する複数個の選択回路と、
前記複数個の選択回路からの各選択データを加算し、加算結果を加算データとして出力する加算回路と、
前記加算データを２倍にし、２倍にした前記加算データを掛算データとして出力する掛算器と、
前記フィルタ係数の総和に対応した総和データを記憶する総和レジスタと、
前記掛算データから前記総和データを減算し、減算結果を出力データとして出力する減算器とを備え、
前記それぞれの係数レジスタは、前記フィルタ係数の値である係数値を係数データとして記憶し、
前記総和レジスタは、前記フィルタ係数の総和値である係数総和値を総和データとして記憶することを特徴とするデジタルフィルタ。
【請求項３】
２値で表現される入力データを入力順に遅延した各遅延データに対して、各遅延に対応したフィルタ係数により重み付け加算し、重み付け加算した結果を加算データとして出力するＦＩＲ形デジタルフィルタ部と、
前記ＦＩＲ形デジタルフィルタ部の加算データから、前記フィルタ係数の総和の２分の１である総和データを、減算するオフセット補正部とを備えたことを特徴とするデジタルフィルタ。
【請求項４】
２値で表現される入力データを入力順に遅延した各遅延データに対して、各遅延に対応したフィルタ係数により重み付け加算し、重み付け加算した結果のＭ分の１（Ｍは０以外の定数）に相当する加算データを出力するＦＩＲ形デジタルフィルタ部と、
前記ＦＩＲ形デジタルフィルタ部の加算データから、前記フィルタ係数の総和の２Ｍ分の１（２Ｍは前記Ｍの２倍の定数）である総和データを、減算するオフセット補正部とを備えたことを特徴とするデジタルフィルタ。
【請求項５】
２値で表現される入力データを複数段シフトしながら記憶するシフトレジスタと、
複数個のフィルタ係数を記憶する複数個の係数レジスタと、
前記シフトレジスタの各段における遅延データに基づき、前記遅延データが一方の値のときには、その段に対応する前記係数レジスタのフィルタ係数の値を選択し、前記遅延データが他方の値のときには、ゼロの値を選択し、それぞれに選択した値を選択データとして出力する複数個の選択回路と、
前記複数個の選択回路からの各選択データを加算し、加算結果を加算データとして出力する加算回路と、
前記複数個の係数レジスタに記憶した各フィルタ係数の総和の２分の１の値を総和データとして記憶する総和レジスタと、
前記加算データから前記総和データを減算し、減算結果を出力データとして出力する減算器とを備えたことを特徴とするデジタルフィルタ。
【請求項６】
２値で表現される入力データを複数段シフトしながら記憶するシフトレジスタと、
複数個のフィルタ係数を記憶する複数個の係数レジスタと、
前記シフトレジスタの各段における遅延データに基づき、前記遅延データが一方の値のときには、その段に対応する前記係数レジスタのフィルタ係数の値を選択し、前記遅延データが他方の値のときには、ゼロの値を選択し、それぞれに選択した値を選択データとして出力する複数個の選択回路と、
前記複数個の選択回路からの各選択データを加算し、加算結果のＭ分の１（Ｍは０以外の定数）に相当する値を加算データとして出力する加算回路と、
前記複数個の係数レジスタに記憶した各フィルタ係数の総和の２Ｍ分の１（２Ｍは前記Ｍの２倍の定数）の値を総和データとして記憶する総和レジスタと、
前記加算データから前記総和データを減算し、減算結果を出力データとして出力する減算器とを備えたことを特徴とするデジタルフィルタ。
【請求項７】
前記Ｍ分の１、および前記２Ｍ分の１におけるＭは、２のａ乗（ａは整数）であり、それぞれのデータに対するビットシフトにより行なわれることを特徴とする請求項４または請求項６記載のデジタルフィルタ。
【請求項８】
前記２値で表現される入力データは、１ビットで表現される入力データであることを特徴とする請求項３から７までのいずれか一項に記載のデジタルフィルタ。
【請求項９】
入力データを入力する入力端子と、
複数個のフィルタ係数を入力する係数入力端子と、
前記入力端子に供給された１ビットで表現される入力データを、複数段シフトしながら記憶するシフトレジスタと、
前記係数入力端子に供給された前記複数個のフィルタ係数を、それぞれに記憶する複数個の係数レジスタと、
前記シフトレジスタの各段における遅延データに基づき、前記遅延データが一方の値のときには、その段に対応する前記係数レジスタのフィルタ係数の値を選択し、前記遅延データが他方の値のときには、ゼロの値を選択し、それぞれに選択した値を選択データとして出力する複数個の選択回路と、
前記複数個の選択回路からの各選択データを加算し、加算結果に対応した値を加算データとして出力する加算回路と、
前記係数入力端子に供給された前記複数個のフィルタ係数を、前記複数個分だけ累積加算し、累積加算した結果に対応した値を総和データとして出力するアキュムレータと、
前記加算データから前記総和データを減算し、減算結果を出力データとして出力する減算器と、
前記出力データを出力する出力端子とを備えたことを特徴とするデジタルフィルタ。
【請求項１０】
前記加算回路は、前記各選択データを加算し、加算結果のＭ分の１（Ｍは０以外の定数）に相当する値を加算データとして出力し、
前記アキュムレータは、前記供給された複数個のフィルタ係数を、前記複数個分だけ累積加算し、累積加算した結果の２Ｍ分の１（２Ｍは前記Ｍの２倍の定数）の値を総和データとして出力することを特徴とする請求項９記載のデジタルフィルタ。
【請求項１１】
前記加算回路は、前記各選択データを加算し、加算結果のＭ分の１（Ｍは０以外の定数）に相当する値を加算データとして出力し、
前記アキュムレータは、前記供給された複数個のフィルタ係数の２Ｍ分の１（２Ｍは前記Ｍの２倍の定数）の値を、前記複数個分だけ累積加算し、累積加算した結果の値を総和データとして出力することを特徴とする請求項９記載のデジタルフィルタ。
【請求項１２】
入力データを入力する入力端子と、
複数個のフィルタ係数を入力する係数入力端子と、
前記入力端子に供給された１ビットで表現される入力データを、複数段シフトしながら記憶するシフトレジスタと、
前記係数入力端子に供給された前記複数個のフィルタ係数を、それぞれに記憶する複数個の係数レジスタと、
前記シフトレジスタの各段における遅延データに基づき、前記遅延データが一方の値のときには、その段に対応する前記係数レジスタのフィルタ係数の値を選択し、前記遅延データが他方の値のときには、ゼロの値を選択し、それぞれに選択した値を選択データとして出力する複数個の選択回路と、
前記複数個の選択回路からの各選択データを加算し、加算結果に対応した値を加算データとして出力する加算回路と、
前記加算回路からの加算データを、所定のタイミングで取り込み、記憶し、前記取り込んだ加算データに対応した値を総和データとして出力する総和レジスタと、
前記加算データから前記総和データを減算し、減算結果を出力データとして出力する減算器と、
前記出力データを出力する出力端子とを備え、
前記シフトレジスタは、セット指令信号が入力されることにより、前記遅延データを出力するすべての段から、前記一方の値を出力するセット入力を有し、
前記総和レジスタは、前記シフトレジスタのセット入力に前記セット指令信号が入力されるタイミングに応じて、前記加算データを取り込むことを特徴とするデジタルフィルタ。
【請求項１３】
前記加算回路は、前記各選択データを加算し、加算結果のＭ分の１（Ｍは０以外の定数）に相当する値を加算データとして出力し、
前記総和レジスタは、前記所定のタイミングで取り込んだ加算データの２Ｍ分の１（２Ｍは前記Ｍの２倍の定数）の値を総和データとして出力することを特徴とする請求項１２記載のデジタルフィルタ。
【請求項１４】
入力データを入力する入力端子と、
複数個のフィルタ係数を入力する係数入力端子と、
前記入力端子に供給された１ビットで表現される、一方、または他方の値を有した入力データを、複数段シフトしながら記憶するシフトレジスタと、
選択制御のための第１の選択制御信号を入力し、前記第１の選択制御信号に基づき、前記第１の選択制御信号が無効のときには、その段に対応する前記シフトレジスタの遅延データの値を選択し、前記第１の選択制御信号が有効のときには、前記一方の値を選択し、それぞれに選択した値を第２の選択制御信号として出力する複数個の第１の選択回路と、
前記係数入力端子に供給された前記複数個のフィルタ係数を、それぞれに記憶する複数個の係数レジスタと、
前記第２の選択制御信号に基づき、前記第２の選択制御信号が一方の値のときには、その段に対応する前記係数レジスタのフィルタ係数の値を選択し、前記第２の選択制御信号が他方の値のときには、ゼロの値を選択し、それぞれに選択した値を選択データとして出力する複数個の第２の選択回路と、
前記複数個の第２の選択回路からの各選択データを加算し、加算結果に対応した値を加算データとして出力する加算回路と、
前記加算回路からの加算データを、所定のタイミングで取り込み、記憶し、前記取り込んだ加算データに対応した値を総和データとして出力する総和レジスタと、
前記加算データから前記総和データを減算し、減算結果を出力データとして出力する減算器と、
前記出力データを出力する出力端子とを備え、
前記総和レジスタは、前記第１の選択制御信号が有効とされるタイミングに応じて前記加算データを取り込むことを特徴とするデジタルフィルタ。
【請求項１５】
前記加算回路は、前記各選択データを加算し、加算結果のＭ分の１（Ｍは０以外の定数）に相当する値を加算データとして出力し、
前記総和レジスタは、前記所定のタイミングで取り込んだ加算データの２Ｍ分の１（２Ｍは前記Ｍの２倍の定数）の値を総和データとして出力することを特徴とする請求項１４記載のデジタルフィルタ。
【請求項１６】
入力データを入力する入力端子と、
フィルタの伝達特性を決定する複数個のフィルタ係数を入力する係数入力端子と、
前記入力端子に供給された１ビットで表現される入力データを複数段シフトしながら記憶するシフトレジスタと、
前記係数入力端子に供給された前記複数個のフィルタ係数の２倍の値である係数値を係数データとして、それぞれ記憶する複数個の係数レジスタと、
前記シフトレジスタの各段における遅延データに基づき、前記遅延データが一方の値のときには、その段に対応する前記係数レジスタの係数データの値を選択し、前記遅延データが他方の値のときには、ゼロの値を選択し、それぞれに選択した値を選択データとして出力する複数個の選択回路と、
前記複数個の選択回路からの各選択データを加算し、加算結果を加算データとして出力する加算回路と、
前記加算回路からの加算データの２分の１の値を、所定のタイミングで取り込み、記憶し、前記取り込んだ加算データの値を総和データとして出力する総和レジスタと、
前記加算データから前記総和データを減算し、減算結果を出力データとして出力する減算器とを備え、
前記シフトレジスタは、セット指令信号が入力されることにより、前記遅延データを出力するすべての段から、前記一方の値を出力するセット入力を有し、
前記総和レジスタは、前記シフトレジスタのセット入力にセット指令信号が入力されるタイミングに応じて前記加算データの２分の１の値を取り込むことを特徴とするデジタルフィルタ。
【請求項１７】
入力データを入力する入力端子と、
フィルタの伝達特性を決定する複数個のフィルタ係数を入力する係数入力端子と、
前記入力端子に供給された１ビットで表現される、一方、または他方の値を有した入力データを、複数段シフトしながら記憶するシフトレジスタと、
選択制御のための第１の選択制御信号を入力し、前記第１の選択制御信号に基づき、前記第１の選択制御信号が無効のときには、その段に対応する前記シフトレジスタの遅延データの値を選択し、前記第１の選択制御信号が有効のときには、前記一方の値を選択し、それぞれに選択した値を第２の選択制御信号として出力する複数個の第１の選択回路と、
前記係数入力端子に供給された前記複数個のフィルタ係数の２倍の値である係数値を係数データとして、それぞれ記憶する複数個の係数レジスタと、
前記第２の選択制御信号に基づき、前記第２の選択制御信号が一方の値のときには、その段に対応する前記係数レジスタの値を選択し、前記第２の選択制御信号が他方の値のときには、ゼロの値を選択し、それぞれに選択した値を選択データとして出力する複数個の第２の選択回路と、
前記複数個の第２の選択回路からの各選択データを加算し、加算結果を加算データとして出力する加算回路と、
前記加算回路からの加算データの２分の１の値を、所定のタイミングで取り込み、記憶し、前記取り込んだ加算データの値を総和データとして出力する総和レジスタと、
前記加算データから前記総和データを減算し、減算結果を出力データとして出力する減算器とを備え、
前記総和レジスタは、前記第１の選択制御信号が有効とされるタイミングに応じて前記加算データの２分の１の値を取り込むことを特徴とするデジタルフィルタ。
【請求項１８】
２値で表現される入力データを入力順に遅延した各遅延データに対して、各遅延に対応したフィルタ係数により重み付け加算し、重み付け加算した結果のＭ分の１（Ｍは０以外の定数）に相当する加算データを導出するステップと、
前記加算データから、前記フィルタ係数の総和の２Ｍ分の１（２Ｍは前記Ｍの２倍の定数）である総和データを、減算するステップとを備えたことを特徴とするデジタルフィルタ演算方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のタップに所定のフィルタ係数が設定された非巡回形のデジタルフィルタに関し、特に、所定のビット数より低いビット数で量子化されたデジタル信号を入力し、所定のビット数のデジタル信号に変換するデジタルフィルタの回路構成の改良に関する。
【０００２】
【従来の技術】
近年、デジタル技術の進展により、音声や映像の記録方式はデジタル記録が主流になってきている。音声信号を対象としたデジタル処理方式の一つとして、オーバサンプリング方式やデルタシグマ方式と呼ばれる手法が提案され、実用化されている。これらの手法は、アナログ信号をデジタル信号に変換するＡＤ（Ａｎａｌｏｇ  Ｄｉｇｉｔａｌ）変換の一手法である。これらの手法では、アナログ音声信号を、所定の標本化周波数より高い周波数で標本化し、また所定のビット数より低いビット数で量子化を行ないデジタル信号に変換する。次に、このデジタル信号をデジタルフィルタで構成されるローパスフィルタで帯域制限を行ない、デシメーション（Ｄｅｃｉｍａｔｉｏｎ、間引き）処理により所定の標本化周波数で、所定の量子化ビット数のデジタル信号に変換する。具体的には、標本化周波数４８ＫＨｚ、量子化ビット数１６ビットの所定のデジタル信号を得る場合、例えば、４８ＫＨｚの１０倍近い標本化周波数で標本化し、１ビットの量子化でＡＤ変換を行なう。このようなＡＤ変換により得られたデジタル信号に対して、デジタルローパスフィルタは、帯域制限することで低いサンプリングレートに対応させるとともに、デジタルフィルタ演算によりビット数を増加させ、標本化周波数が４８ＫＨｚ、量子化ビット数が１６ビットのデジタル信号を得ることが可能となる。
【０００３】
また、これらの手法のように信号帯域と比較して高い周波数で標本化、および低ビット数で量子化されたデジタル信号を光ディスク等に記録した次世代のＣＤ等も、例えばスーパーオーディオＣＤなどと呼ばれて提案されている。
【０００４】
オーバサンプリング方式やデルタシグマ方式と呼ばれる手法においては、上述したようにデジタルフィルタで構成されるローパスフィルタが、音質等を決める上で重要となる。このため、通常、このようなデジタルローパスフィルタは、直線位相特性を有する非巡回形のＦＩＲ形デジタルフィルタで構成される。また、理想的な周波数特性を有するフィルタを実現するため、多段数のタップを有し、各タップには所定の重み付けを行なうフィルタ係数が設定された、トランスバーサル形フィルタが利用される。すなわち、理想的な周波数特性を有するＦＩＲ形デジタルフィルタを実現するには、タップ数を増すことが必要であり、タップ数を増加させるとフィルタ係数との演算が増える。その結果、この演算のための掛算器の個数が増え、加算器や遅延回路も含めて回路規模が増大するという課題があった。
【０００５】
このような課題に対処するため、回路規模の削減を図りつつ所望の特性を得るような、デジタルフィルタの回路構成の改良に関する手法が提案されている（例えば、特許文献１参照）。
【０００６】
図９は、従来例におけるデジタルフィルタの構成を示すブロック図である。
【０００７】
図９において、１ビットで量子化された入力データは、クロックに同期してシフトレジスタ１０でｎ段シフトされる。シフトレジスタ１０の各段から出力される遅延データＤ１〜Ｄｎは、それぞれスイッチ１１１〜１１ｎに供給される。遅延データＤ１〜Ｄｎは、それぞれスイッチ１１１〜１１ｎの切り換え制御信号として利用される。スイッチ１１１〜１１ｎは、シフトレジスタ１０からの遅延データの値が「０」のとき、ゼロのデータを選択し、シフトレジスタ１０からの遅延データの値が「＋１」のとき、係数レジスタ１９１〜１９ｎに記憶したそれぞれの係数データＫ１〜Ｋｎを選択する。係数データＫ１〜Ｋｎは、ｈビット幅であり、各フィルタ係数に相当する係数値「ｋ１」〜「ｋｎ」を表わす。すなわち、スイッチ１１１〜１１ｎは、各段からの遅延データＤ１〜Ｄｎと係数データＫ１〜Ｋｎとの掛け算を実行することと等価である。スイッチ１１１〜１１ｎの出力は、加算回路１２において加算され、ｍビットの出力データとして出力される。
【０００８】
一般にＦＩＲ形デジタルフィルタは、シフトレジスタ等により入力データのビット幅に対応した複数段の遅延回路を設け、さらに各遅延からの遅延データと複数ビット幅の係数データとの掛け算を必要とする。このとき、遅延段数、すなわちタップ数が多いと、掛け算を行なうための掛算器が増加し、回路規模も非常に大きくなる。これに対し、上述した従来例では、遅延回路に１ビット幅のシフトレジスタを用い、さらに掛算器として、スイッチあるいはそれと等価な回路を利用できるので、全体として大幅に回路規模を削減でき、ＬＳＩに適したデジタルフィルタを実現できる。
【０００９】
【特許文献１】
特開平２−１８６７１０号公報
【００１０】
【発明が解決しようとする課題】
しかしながら、従来例のようなデジタルフィルタは、１ビットの入力データ、すなわちデータの値が「＋１」と「０」との２値に対する処理を行なっており、「正値」と「負値」とからなる２値に対する処理を行なっていない。このために、フィルタの出力データには正方向のオフセット成分が重畳され、このオフセット成分により正確な値を有する出力データが得られないという課題があった。特に、このオフセット成分は、設定するフィルタ係数により変化するため、フィルタ特性によっては、このオフセット成分が直流ノイズ成分となり、音声デジタル信号を扱うような場合、音質劣化を招くおそれがあった。
【００１１】
一方、「正値」と「負値」との２値からなる入力データに対してＦＩＲ形デジタルフィルタを構成する場合、データ自体の表現や負値に対する処理のため回路規模が増加するという課題があった。すなわち、入力データを「正値」と「負値」として構成する場合、一般的に利用される２の補数表示を用い、例えば「＋１」と「−１」の２値とすると、「正値」は「０１」、「負値」は「１１」の表記となり、２ビット必要となる。さらに、２の補数表示による負値を扱う演算処理の場合、負値を正値に変換するための反転回路および「＋１」の加算回路が必要となることがある。このように、負値を扱う構成とした場合、オフセット成分による影響はなくなるが、回路規模の増加を招くおそれがあった。
【００１２】
本発明は、デジタルフィルタを構成する回路規模の増加を抑制するとともに、精度よい出力データを得ることができるデジタルフィルタを提供することを目的とする。
【００１３】
【課題を解決するための手段】
上記課題を解決するため、本発明のデジタルフィルタは、２値で表現される入力データを複数段シフトしながら記憶するシフトレジスタと、複数個のフィルタ係数を記憶する複数個の係数レジスタと、シフトレジスタの各段における遅延データに基づき、この遅延データが一方の値のときには、その段に対応する係数レジスタのフィルタ係数の値を選択し、この遅延データが他方の値のときには、ゼロの値を選択し、それぞれに選択した値を選択データとして出力する複数個の選択回路と、複数個の選択回路からの各選択データを加算し、加算結果を加算データとして出力する加算回路と、複数個の上記係数レジスタに記憶した各フィルタ係数の総和の２分の１の値を総和データとして記憶する総和レジスタと、上記加算データから上記総和データを減算し、減算結果を出力データとして出力する減算器とを備えた構成である。
【００１４】
このような構成により、各段の遅延データに対応してフィルタ係数あるいはゼロを選択する選択回路は、掛算器と等価な機能であり回路規模の削減を実現している。また、加算回路からの加算データより、総和レジスタに記憶した各フィルタ係数の総和の２分の１の値を減算することにより、出力データに重畳されるオフセット成分を除去している。これにより、デジタルフィルタを構成する回路規模の増加を抑制するとともに、精度よい出力データを得ることができるデジタルフィルタの実現を可能としている。
【００１５】
さらに、本発明のデジタルフィルタは、入力データを入力する入力端子と、複数個のフィルタ係数を入力する係数入力端子と、入力端子に供給された１ビットで表現される入力データを、複数段シフトしながら記憶するシフトレジスタと、係数入力端子に供給された複数個のフィルタ係数を、それぞれに記憶する複数個の係数レジスタと、シフトレジスタの各段における遅延データに基づき、遅延データが一方の値のときにはその段に対応する係数レジスタのフィルタ係数の値を選択し、遅延データが他方の値のときにはゼロの値を選択し、それぞれに選択した値を選択データとして出力する複数個の選択回路と、複数個の選択回路からの各選択データを加算し、加算結果に対応した値を加算データとして出力する加算回路と、係数入力端子に供給された複数個のフィルタ係数を、複数個分だけ累積加算し、累積加算した結果に対応した値を総和データとして出力するアキュムレータと、上記加算データから上記総和データを減算し、減算結果を出力データとして出力する減算器と、出力データを出力する出力端子とを備えた構成である。
【００１６】
このような構成により、各フィルタ係数が、所定の係数レジスタに設定されるのと並行して、各フィルタ係数は、アキュムレータにより順次累積加算されて総和データが得られるため、フィルタ係数を変更する毎に、別途に総和データを演算する必要がなく、この演算のための処理が削減できる。よって、任意のフィルタ特性が設定可能なデジタルフィルタが実現できるとともに、デジタルフィルタを構成する回路規模の増加を抑制でき、精度よい出力データを得ることができるデジタルフィルタの実現を可能としている。
【００１７】
また、本発明のデジタルフィルタは、入力データを入力する入力端子と、複数個のフィルタ係数を入力する係数入力端子と、入力端子に供給された１ビットで表現される入力データを、複数段シフトしながら記憶するシフトレジスタと、係数入力端子に供給された複数個のフィルタ係数を、それぞれに記憶する複数個の係数レジスタと、シフトレジスタの各段における遅延データに基づき、遅延データが一方の値のときにはその段に対応する係数レジスタのフィルタ係数の値を選択し、遅延データが他方の値のときにはゼロの値を選択し、それぞれに選択した値を選択データとして出力する複数個の選択回路と、複数個の選択回路からの各選択データを加算し、加算結果に対応した値を加算データとして出力する加算回路と、加算回路からの加算データを、所定のタイミングで取り込み、記憶し、取り込んだ加算データに対応した値を総和データとして出力する総和レジスタと、上記加算データから上記総和データを減算し、減算結果を出力データとして出力する減算器と、出力データを出力する出力端子とを備える。さらに、上記シフトレジスタは、セット指令信号が入力されることにより、遅延データを出力するすべての段から、上記一方の値を出力するセット入力を有し、上記総和レジスタは、シフトレジスタのセット入力にセット指令信号が入力されるタイミングに応じて、加算データを取り込む構成である。
【００１８】
このような構成により、各フィルタ係数が、所定の係数レジスタに設定されるとともに、セット指令信号が入力されるタイミングに応じて、加算回路からすべてのフィルタ係数を加算した値が出力される。総和レジスタは、このすべてのフィルタ係数を加算した値を取り込むことにより総和データが記憶されるため、フィルタ係数を変更する毎に、別途に総和データを演算する必要がなく、この演算のための処理が削減できる。よって、任意のフィルタ特性が設定可能なデジタルフィルタが実現できるとともに、デジタルフィルタを構成する回路規模の増加を抑制でき、精度よい出力データを得ることができるデジタルフィルタの実現を可能としている。
【００１９】
また、本発明のデジタルフィルタは、入力データを入力する入力端子と、複数個のフィルタ係数を入力する係数入力端子と、入力端子に供給された１ビットで表現される、一方、または他方の値を有した入力データを、複数段シフトしながら記憶するシフトレジスタと、選択制御のための第１の選択制御信号を入力し、第１の選択制御信号に基づき、第１の選択制御信号が無効のときには、その段に対応するシフトレジスタの遅延データの値を選択し、第１の選択制御信号が有効のときには、上記一方の値を選択し、それぞれに選択した値を第２の選択制御信号として出力する複数個の第１の選択回路と、係数入力端子に供給された複数個のフィルタ係数を、それぞれに記憶する複数個の係数レジスタと、第２の選択制御信号に基づき、第２の選択制御信号が一方の値のときにはその段に対応する係数レジスタのフィルタ係数の値を選択し、第２の選択制御信号が他方の値のときにはゼロの値を選択し、それぞれに選択した値を選択データとして出力する複数個の第２の選択回路と、複数個の第２の選択回路からの各選択データを加算し、加算結果に対応した値を加算データとして出力する加算回路と、加算回路からの加算データを、所定のタイミングで取り込み、記憶し、取り込んだ加算データに対応した値を総和データとして出力する総和レジスタと、上記加算データから上記総和データを減算し、減算結果を出力データとして出力する減算器と、出力データを出力する出力端子とを備える。さらに、総和レジスタは、第１の選択制御信号が有効とされるタイミングに応じて加算データを取り込む構成である。
【００２０】
このような構成により、各フィルタ係数が、所定の係数レジスタに設定されるとともに、第１の選択制御信号が有効とされるタイミングに応じて、加算回路からすべてのフィルタ係数を加算した値が出力される。総和レジスタは、このすべてのフィルタ係数を加算した値を取り込むことにより総和データが記憶されるため、フィルタ係数を変更する毎に、別途に総和データを演算する必要がなく、この演算のための処理が削減できる。よって、任意のフィルタ特性が設定可能なデジタルフィルタが実現できるとともに、デジタルフィルタを構成する回路規模の増加を抑制でき、精度よい出力データを得ることができるデジタルフィルタの実現を可能としている。
【００２１】
【発明の実施の形態】
以下、本発明の実施の形態について図面を用いて説明する。
【００２２】
（実施の形態１）
図１は、本発明の実施の形態１におけるデジタルフィルタの構成の一例を示すブロック図である。本デジタルフィルタは、２値の入力データを複数段にわたり遅延させた遅延データに対して重み付け加算を施すことでフィルタ演算を行ない、フィルタ演算により帯域制限された複数ビット幅の出力データを出力するデジタルフィルタである。また、重み付け加算により得たデータに対して、重畳された直流成分を除去するオフセット補正部を備えたことを特徴とする。
【００２３】
図１において、２値の入力データは、１ビット幅のデータとして入力端子３０に供給される。本実施の形態１においては、２値は「１」と「０」とであり、２値のうちの一方を「１」、他方を「０」として説明する（以下、データが有する数値については括弧「  」を用いて示す）。入力端子３０に供給された入力データは、シフトレジスタ１０に供給され、クロック端子３２に供給されたクロックに従って、サンプル、およびシフトされる。シフトレジスタ１０は、ｎ（ｎは２以上の整数）段、すなわちｎ個のタップで構成されており、各段から出力される遅延データＤ１〜Ｄｎは、それぞれ、選択回路としてのスイッチ１１１〜１１ｎに供給される。遅延データＤ１〜Ｄｎは、それぞれのスイッチ１１１〜１１ｎに対して、切り換え制御信号として動作する。スイッチ１１１〜１１ｎは、シフトレジスタ１０からの遅延データの値が「０」の場合はゼロの値であるデータを選択し、また、シフトレジスタ１０からの遅延データの値が「１」の場合は、係数レジスタ２１１〜２１ｎにあらかじめ記憶したデータを選択し、選択したデータを選択データとし出力する。ここでは、スイッチ１１１〜１１ｎは等価的に重み付けを行なう掛算器として機能する。係数レジスタ２１１〜２１ｎは、本デジタルフィルタにおける所定のフィルタ係数ｋ１〜ｋｎに対応した係数値をあらかじめ記憶したレジスタである。フィルタ係数ｋ１〜ｋｎは、本デジタルフィルタの伝達特性を決めるフィルタ係数であり、このフィルタ係数ｋ１〜ｋｎを所定の値にそれぞれ設定することにより本デジタルフィルタの周波数特性も決定される。図１に示す構成では、所定のフィルタ係数ｋ１〜ｋｎに対して、フィルタ係数の２倍に相当する係数値「２ｘｋ１」〜「２ｘｋｎ」が所定の係数データＫ１〜Ｋｎとして、それぞれ係数レジスタ２１１〜２１ｎに記憶される。また、係数レジスタ２１１〜２１ｎに記憶された所定の係数値「２ｘｋ１」〜「２ｘｋｎ」は、それぞれｈ（ｈは２以上の整数）ビット幅の係数データＫ１〜Ｋｎとして出力される。スイッチ１１１〜１１ｎは、遅延データＤ１〜Ｄｎに基づき選択したゼロ、あるいは係数データを、加算回路１２に供給する。加算回路１２は、各スイッチ１１１〜１１ｎから供給された各選択データをすべて加算し、加算結果をｍビット幅の加算データＡＤとして出力する。以上、シフトレジスタ１０、スイッチ１１１〜１１ｎ、係数レジスタ２１１〜２１ｎ、および加算回路１２により、ＦＩＲ形デジタルフィルタ部１００が構成される。
【００２４】
総和レジスタ２０は、フィルタ係数ｋ１〜ｋｎの総和に相当するデータを、あらかじめ記憶したレジスタである。すなわち、総和レジスタ２０には、各フィルタ係数ｋ１〜ｋｎの総和（ｋ１＋ｋ２＋ｋ３＋・・・＋ｋｎ）に相当する係数総和値「Σｋｎ」が総和データＳＫｎとして記憶され、総和レジスタ２０からこの総和データＳＫｎが出力される。減算器２２は、加算回路１２からの加算データＡＤより総和レジスタ２０からの総和データＳＫｎを減算する減算器である。減算器２２により減算された減算結果は、出力端子３１に供給される。出力端子３１からは、本デジタルフィルタの出力データとして、ｐビット幅のデータが出力される。以上、総和レジスタ２０、および減算器２２により、オフセット補正部２００が構成される。
【００２５】
以上のように構成された本実施の形態１におけるデジタルフィルタの動作について、以下、より具体的な例を示して説明する。ここでは、具体的な一例として、シフトレジスタ１０の段数として、ｎ＝４、すなわち４段の場合を例に挙げて説明する。
【００２６】
例えば、各遅延データにおいて、Ｄ１＝「１」、Ｄ２＝「０」、Ｄ３＝「１」、Ｄ４＝「０」の場合、スイッチ１１１は遅延データＤ１が「１」であることより係数値が「２ｘｋ１」である係数データＫ１を選択し、スイッチ１１２は遅延データＤ２が「０」であることよりゼロを選択し、スイッチ１１３は遅延データＤ３が「１」であることより係数値が「２ｘｋ３」である係数データＫ３を選択し、スイッチ１１４は遅延データＤ４が「０」であることよりゼロを選択する。これより、加算回路１２は、係数レジスタ２１１の係数値「２ｘｋ１」、および係数レジスタ２１３の係数値「２ｘｋ３」の加算と同等の演算を行なう。加算回路１２は、係数値「２ｘｋ１」と係数値「２ｘｋ３」とを加算した値「２ｘ（ｋ１＋ｋ３）」を加算データＡＤとして出力する。一方、総和レジスタ２０には、あらかじめ各フィルタ係数ｋ１〜ｋ４の総和（ｋ１＋ｋ２＋ｋ３＋ｋ４）に相当する係数総和値「ΣＫｎ」、すなわち「ｋ１＋ｋ２＋ｋ３＋ｋ４」が設定されている。よって、減算器２２により、値「２ｘ（ｋ１＋ｋ３）」を有する加算データＡＤから、値「ｋ１＋ｋ２＋ｋ３＋ｋ４」を有する総和データＳＫｎが減算される。すなわち、このとき、本デジタルフィルタは「｛２ｘ（ｋ１＋ｋ３）―（ｋ１＋ｋ２＋ｋ３＋ｋ４）｝」なる値を有する出力データを出力する。
【００２７】
なお、本発明のデジタルフィルタのように、入力データは１ビットであっても、それぞれの係数データＫ１〜Ｋｎとしては、例えばｈビットとして示したように高ビット幅のデータであり、出力データとしても例えばｐビットとして示したように高ビット幅の出力データとすることができる。すなわち、低ビット幅であるが高いサンプリングレートで入力された入力データに対して、本デジタルフィルタでは、フィルタ演算により帯域制限することで低いサンプリングレートに対応できるように変換し、帯域制限された分、ビット幅に関しては高ビット幅へとトレードオフされたと言える。このような原理を利用し、例えば、サンプリングレート３．０７２ＭＨｚの１ビットの入力音声データから、サンプリングレートが６４分の１である、サンプリングレート４８ＫＨｚの１６ビットのＰＣＭ（Ｐｕｌｓｅ  Ｃｏｄｅ  Ｍｏｄｕｌａｔｉｏｎ）音声データへの変換に利用される。
【００２８】
以上、本実施の形態１のデジタルフィルタの構成、および動作について説明したが、本発明のデジタルフィルタは、次に説明するフィルタ演算式の変形に基づき構成している。以下、フィルタ演算式の変形に従い、本発明のデジタルフィルタの動作原理について説明する。
【００２９】
一般に、フィルタ係数ｋｒ（ｒは、１〜ｎ）を用いた重み付け加算によるＦＩＲ形デジタルフィルタのフィルタ演算式は、各遅延されたデータをｄｒ（ｒは、１〜ｎ）とし、その出力をＹとすると、次の式１で示される。
【００３０】
Ｙ＝Σ｛ｄｒｘｋｒ｝  ・・・・・式１
なお、記号Σは、ｒが１からｎ（ｎは２以上の整数）までそれぞれ括弧内の演算を行ない、その総和をとることを示す。すなわち、式１の右辺は、｛（ｄ１ｘｋ１）＋（ｄ２ｘｋ２）＋・・・＋（ｄｎｘｋｎ）｝の演算を行なうことを示す。
【００３１】
式１は、次のように変形できる。
【００３２】
Ｙ＝Σ｛（ｄｒ＋１−１）ｘｋｒ｝  ・・・・・式２
さらに、式２は、次のように変形できる。
【００３３】
Ｙ＝Σ｛（ｄｒ＋１）ｘｋｒ｝−Σ｛ｋｒ｝  ・・・・・式３
ここで、各遅延されたデータｄｒが、２値の値として「−１」、または「＋１」をとると仮定する。すると、式３における（ｄｒ＋１）は、２値の値として「０」、または「２」をとる。言い換えれば、各遅延データＤ１〜Ｄｎの値「０」、または「１」に応じて、フィルタ係数の０倍の値ゼロ、あるいは２倍の値「２ｘｋｒ」を加算し、式３の演算を実施すれば、式１で示すＦＩＲ形デジタルフィルタと等価の構成が実現できる。すなわち、式３は、さらに、次の式４に変形できる。
【００３４】
Ｙ＝Σ｛（２ｘｋｒ）ｘＤｒ｝−Σ｛ｋｒ｝  ・・・・・式４
さらに、式４は、次のように変形できる。
【００３５】
Ｙ＝Σ｛（２ｘＤｒ−１）ｘｋｒ｝  ・・・・・式５
式４は、図１で示した本実施の形態１のデジタルフィルタの構成を示す式であり、式１で示したＦＩＲ形デジタルフィルタの演算式と等価である。また、式１と式５との比較より、ｄｒ＝２ｘＤｒ−１であり、Ｄｒの値は「０」あるいは「１」であるから、ｄｒは、「−１」あるいは「＋１」である。
【００３６】
換言すると、本実施の形態１の構成によるデジタルフィルタは、シフトレジスタへの入力データを負値「−１」、および正値「＋１」からなる２値データとし、式１で表現されるフィルタ演算を行なうデジタルフィルタの構成と等価である。よって、本発明によれば、簡単な構成で、２値「−１」、および「＋１」を入力とするＦＩＲ形デジタルフィルタと等価なデジタルフィルタが構成できる。すなわち、２値「−１」、「＋１」を２の補数による２進数で表現する場合、通常は２ビット幅必要であるが、本発明によれば、１ビット幅の入力データで同等のデジタルフィルタが実現できる。
【００３７】
一方、上述したように、１ビットの入力データとして、そのままの値「０」、および「１」としてローパスフィルタ特性のフィルタ演算処理を行なうと、出力データにはオフセット成分の影響が現れる。すなわち、入力データは、負値を有しないため、正方向に直流成分としてのオフセット成分を有しており、このオフセット成分がローパスフィルタ特性のフィルタを通過し、その結果、出力データにもこのオフセット成分の影響が現れる。これに対して、本発明のデジタルフィルタでは、まず、ＦＩＲ形デジタルフィルタ部１００において従来と同等のフィルタ処理を行ない、さらに、オフセット補正部２００においてこのオフセット成分を除去する構成としているため、オフセット成分の影響を抑制した、精度よい出力データを得ることができる。
【００３８】
以上、本発明のデジタルフィルタは、このような動作原理に基づき構成されているため、回路規模の増加を抑制するとともに、オフセット成分の影響がなく、精度よい出力データを得ることができる。
【００３９】
なお、図１を用いて説明した本実施の形態１の構成例では、係数レジスタ２１１〜２１ｎに各フィルタ係数の２倍に相当する係数値を記憶した例を示して説明したが、他の構成により実現することも可能である。例えば、係数レジスタ２１１〜２１ｎには各フィルタ係数に相当する係数値を記憶し、スイッチ１１１〜１１ｎの係数データ入力において、上位ビット方向に１ビット分ビットシフトしたり、あるいは、加算回路１２からの加算データＡＤにおいて上位ビット方向に１ビット分ビットシフトしたりすることで、各フィルタ係数の２倍に相当するデータを実現してもよい。
【００４０】
図２は、このような一例として、図１で説明した構成の変形例を示したブロック図である。図２では、係数レジスタ２１１〜２１ｎには各フィルタ係数ｋ１〜ｋｎに相当する各係数値「ｋ１」〜「ｋｎ」を有した係数データＫ１〜Ｋｎを記憶し、加算回路１２からの加算データＡＤに、定数「２」を掛け算する掛算器２３を設けた構成としている。すなわち、図１の構成における各フィルタ係数の２倍に相当する係数値「２ｘｋ１」〜「２ｘｋｎ」を選択し加算する処理は、図２の構成のように各フィルタ係数に相当する係数値「ｋ１」〜「ｋｎ」を選択し加算した後、加算データの２倍である掛算データとして出力する処理でも同一の結果が得られる。よって、図２の構成であっても、図１と構成は異なるが同一の出力結果が得られる。なお、図２では、掛算器２３により２倍する構成を示しているが、加算回路１２からの加算データＡＤを上位ビット方向に１ビット分ビットシフトし、最下位ビットであるＬＳＢには論理値「０」を設定することで、容易に２倍の演算を実現できる。
【００４１】
また、上述した式２、式３において、「１」を２分の１である「（１／２）」に置換え、その式に基づく構成を実現することも可能である。式２、および式３を、次の式２’、および式３’のように置換える。
【００４２】
Ｙ＝Σ｛（ｄｒ＋（１／２）−（１／２））ｘｋｒ｝  ・・・・・式２’
Ｙ＝Σ｛（ｄｒ＋（１／２））ｘｋｒ｝−Σ｛（１／２）ｘｋｒ｝  ・・・式３’
ここで、各遅延されたデータｄｒが、２値の値として「−（１／２）」、または「＋（１／２）」をとると仮定しても、式１と等価である。すなわち、係数レジスタ２１１〜２１ｎには、フィルタ係数ｋ１〜ｋｎに相当する係数値「ｋ１」〜「ｋｎ」を有する係数データＫ１〜Ｋｎを格納し、総和レジスタ２０には、各フィルタ係数ｋ１〜ｋｎの総和に相当する係数総和値「Σｋｎ」の２分の１の値を有する総和データＳＫｎを格納するような構成であってもよい。
【００４３】
言い換えれば、総和レジスタ２０に記憶する総和データＳＫｎは、係数レジスタ２１１〜２１ｎに記憶した各係数データＫ１〜Ｋｎの総和の２分の１である、という関係があればよい。すなわち、ＳＫｎ＝（１／２）ｘ（Ｋ１＋Ｋ２＋・・・＋Ｋｎ）の関係を満たす総和データＳＫｎを総和レジスタ２０に格納すればよい。
【００４４】
さらに、通常、加算回路１２内部に複数設けられた加算器の出力において、下位ビットを切り捨て、あるいは丸めることでビット幅を減らし、回路規模を節約することが行なわれる。この場合、例えば、下位ビットをａビット分切り捨て、あるいは丸めることで、データ値としては２のａ乗で割り算されたと、表現されることがある。例えば、ビット幅が８ビットのデータバス上でのデータ値「６４」に対し、このデータバスの下位２ビットを切り捨てた場合、切り捨て後の上記データ値は「１６」と表現でき、切り捨てによりデータ値が４で割り算された、あるいは４分の１を掛け算されたと表現できる。このような場合、言うまでもなく、上述の総和レジスタ２０の総和データＳＫｎと、係数レジスタ２１１〜２１ｎの各係数データＫ１〜Ｋｎの総和とは、２分の１の関係ではなくなる。すなわち、ビット切り捨て分などを考慮した表現が必要である。このような場合も考慮して、本発明のデジタルフィルタは、各遅延に対応したフィルタ係数により重み付け加算した結果を定数Ｍで割り算した値のデータに対し、総和レジスタ２０は、これらフィルタ係数の総和を上記定数Ｍの２倍の定数２Ｍで割り算した値のデータを記憶すればよいと言える。言い換えれば、このような場合は、ＳＫｎ＝｛１／（２ｘＭ）｝ｘ（Ｋ１＋Ｋ２＋・・・＋Ｋｎ）の関係を満たす総和データＳＫｎを総和レジスタ２０に格納すればよい。ここで、定数Ｍは、ビット切り捨て分などを考慮するため導入した定数であり、ゼロ以外の数ならどんな数でもよい。
【００４５】
すなわち、本発明のデジタルフィルタは、２値で表現される入力データを入力順に遅延した遅延データに対して、各遅延に対応したフィルタ係数により重み付け加算した結果に対し定数Ｍで割り算した値のデータを出力するＦＩＲ形デジタルフィルタ部１００と、ＦＩＲ形デジタルフィルタ部１００から出力されたデータから、上記フィルタ係数の総和を定数Ｍの２倍の定数２Ｍで割り算した値のデータを、減算するオフセット補正部とを備え、これによって、回路規模の削減を図るとともに、出力データに重畳されるオフセット成分を除去し、出力データの精度の向上を図っている。
【００４６】
また、図１、および図２のスイッチ１１１〜１１ｎは、スイッチによる選択回路の例で説明したが、ゲート回路により、あるいはトランスファゲートを利用して実現してもよい。図３は、ゲート回路、あるいはトランスファゲートを用いて、図１におけるスイッチ１１１〜１１ｎを実現した具体的な構成例を示す図である。
【００４７】
図３の（ａ）は、論理積演算を行なうＡＮＤゲート８０を用いて構成した一例であり、スイッチ１１ｎを代表して示している。係数データＫｎとしてはフィルタ係数ｋｎの２倍の入力データ値「２ｘｋｎ」として、最下位ビットであるＬＳＢには論理値「０」が入力され、ＬＳＢより上位の各ビットには、フィルタ係数ｋｎに対応する論理値「Ｋｎ２」〜「Ｋｎｈ」が入力される。論理値「Ｋｎ２」〜「Ｋｎｈ」を示す各ビットは、それぞれ各ＡＮＤゲート８０の一方の入力端子に接続される。また、シフトレジスタ１０からの遅延データＤｎは、各ＡＮＤゲート８０の他方の入力端子に接続される。このような構成により、遅延データＤｎが論理値「０」のときは、出力データとしてはゼロが出力される。また、遅延データＤｎが論理値「１」のときは、出力データとしては、係数値「２ｘｋｎ」が出力される。
【００４８】
図３の（ｂ）は、信号伝達の制御が可能なトランスファゲート８１、８２を用いて構成した一例であり、スイッチ１１ｎを代表して示している。遅延データＤｎが論理値「０」のときは、反転回路であるインバータ８３の出力が論理値「１」となり、各トランスファゲート８１がＯＮとなる。これにより、遅延データＤｎが論理値「０」のときは、出力データとしてはゼロが出力される。逆に、遅延データＤｎが論理値「１」のときは、各トランスファゲート８２がＯＮとなる。これにより、遅延データＤｎが論理値「１」のときは、出力データとしては、係数値「２ｘｋｎ」が出力される。
【００４９】
また、図１、および図２で説明した構成では、出力端子３１からの出力データは、サンプリングレートがクロック端子３２のクロックレートと同一であるが、例えば、出力端子３１からの出力データに対して固定レートで間引くことにより、所望のサンプリングレート出力とすることができる。具体的な例として、サンプリングレート３．０７２ＭＨｚの１ビットの入力音声データとした場合、出力端子３１からは、サンプリングレート３．０７２ＭＨｚの例えば１６ビットの音声出力データが得られる。この音声出力データに対して６４回に一度、データを取り込むようにすることで、サンプリングレート４８ＫＨｚの１６ビットのＰＣＭ音声データを得ることができる。
【００５０】
（実施の形態２）
図４は、本発明の実施の形態２であるデジタルフィルタの構成の一例を示すブロック図である。本実施の形態２におけるデジタルフィルタは、実施の形態１と比較して、外部から各係数データが入力可能であり、入力された各係数データが、それぞれの係数レジスタに設定されるとともに、以下で説明するアキュムレータにも供給され、累積加算される構成であることを特徴とする。すなわち、実施の形態１においては、フィルタ特性を決定する各フィルタ係数が固定された係数値として各レジスタに記憶されたのに対して、本実施の形態２では、任意に各フィルタ係数を設定可能とし、任意のフィルタ特性が得られるように構成したことを特徴とする。このような構成により、例えば、時間的に変化する伝送路特性により信号の劣化が生じる場合であっても、この劣化を補正するような特性を加味したフィルタ係数を適応的に設定するようなデジタルフィルタとして利用できる。なお、本実施の形態２では、実施の形態１における図２で説明した構成を基本にし、その改良した例を挙げて説明するが、図１で説明した構成に対しても適用することができる。また、図４において、図２と同一の符号を付した構成要素は同一の機能を有しており、これらについては説明を省略する。
【００５１】
図４において、係数入力端子３３は、本デジタルフィルタの各フィルタ係数ｋ１〜ｋｎに対応した係数値「ｋ１」〜「ｋｎ」を有する係数データＫ１〜Ｋｎが供給される入力端子である。係数レジスタ４１１〜４１ｎは、本デジタルフィルタにおける所定の係数データＫ１〜Ｋｎを記憶するレジスタである。係数入力端子３３に順次供給された各係数データＫ１〜Ｋｎは、それぞれ所定の係数レジスタ４１１〜４１ｎに転送され、各係数レジスタ４１１〜４１ｎに所定の係数値「ｋ１」〜「ｋｎ」の係数データＫ１〜Ｋｎが格納される。また、アキュムレータ４０は、供給されたデータを、順次累積加算する機能を有する。すなわち、係数入力端子３３に供給された各係数データＫ１〜Ｋｎは、アキュムレータ４０にも転送され、アキュムレータ４０は、順次転送される係数データＫ１〜Ｋｎを累積加算する。本実施の形態２におけるデジタルフィルタは、このような構成とすることにより、任意のフィルタ係数に対応する係数データが設定可能であり、このような機能を有することで任意のフィルタ特性を設定することができる。また、このような機能を有することにより、例えば、フィルタ係数を必要に応じて変更し適応的に最適なフィルタ特性を得るようなデジタルフィルタとして利用することができる。
【００５２】
以下、図４で示す構成により、任意の係数データが設定される動作について説明する。まず、所定のフィルタ係数ｋ１〜ｋｎを設定するとき、係数入力端子３３には各フィルタ係数ｋ１〜ｋｎに相当する係数値「ｋ１」〜「ｋｎ」を有する各係数データＫ１〜Ｋｎを、例えば、Ｋ１、Ｋ２、Ｋ３、と順にＫｎまで供給する。これにより、係数入力端子３３に順番に供給される各係数データＫ１〜Ｋｎは、対応する各係数レジスタ４１１〜４１ｎに転送されるとともに、アキュムレータ４０にも転送される。すなわち、係数レジスタ４１１には所定の係数値「ｋ１」、係数レジスタ４１２には所定の係数値「ｋ２」、と順番に、各係数レジスタ４１１〜４１ｎに応じた係数データＫ１〜Ｋｎが格納される。このような動作とともに、アキュムレータ４０に対しても係数データが、Ｋ１、Ｋ２、Ｋ３と順にＫｎまで転送され、アキュムレータ４０の累積加算の機能により、転送された各係数データは、Ｋ１、Ｋ２、Ｋ３と順にＫｎまで累積加算される。このように、アキュムレータ４０には、最終的に各係数データＫ１〜Ｋｎの各係数値「ｋ１」〜「ｋｎ」を加算した値「ｋ１＋ｋ２＋ｋ３＋・・・＋ｋｎ」である係数総和値「Σｋｎ」が設定される。すなわち、アキュムレータ４０には、図２での総和レジスタ２０と同一の総和データＳＫｎが設定され、アキュムレータ４０から係数総和値「Σｋｎ」を有する総和データＳＫｎが出力される。このような動作により、係数レジスタ４１１〜４１ｎに所定の係数データＫ１〜Ｋｎ、およびアキュムレータ４０にも各係数値「ｋ１」〜「ｋｎ」が累積加算された総和データＳＫｎが設定され、実施の形態１と同一のフィルタ係数を設定した場合、実施の形態１と同一の特性を有するデジタルフィルタが実現できる。さらに、このような構成とすることにより、任意のフィルタ特性が設定可能なデジタルフィルタが実現できる。特に、係数総和値「Σｋｎ」は、各係数データＫ１〜Ｋｎの設定と並行して、アキュムレータ４０により順次累積加算して得られるため、フィルタ係数を変更する毎に、別途に係数総和値を演算する必要がなく、この演算のための処理が削減できる。
【００５３】
図５、および図６は、以上説明した図４に示す構成とは異なった構成ではあるが、図４で示した構成と同様に、外部から入力された各係数データＫ１〜Ｋｎがそれぞれのレジスタに設定される機能を有する他の構成例を示すブロック図である。
【００５４】
図５において、係数入力端子３３に供給された係数データＫ１〜Ｋｎは、図４で説明した構成と同様に、それぞれ所定の係数レジスタ４１１〜４１ｎに転送され、各係数レジスタ４１１〜４１ｎに所定の係数データＫ１〜Ｋｎが格納される。また、シフトレジスタ５０は、図４で説明したシフトレジスタ１０と比較して、シフトレジスタ５０の出力をすべて「１」として出力するように制御するセット入力を有する。シフトレジスタ５０のセット入力は、外部からのセット指令信号が供給されるセット入力端子３４に接続される。また、図５の構成において、図４で説明したアキュムレータ４０に代えて、図２で説明した構成と同様に総和レジスタ２０を有している。
【００５５】
すなわち、セット入力端子３４に、セット指令信号が入力されると、シフトレジスタ５０からの遅延データＤ１〜Ｄｎは、すべて値「１」として出力される。このため、スイッチ１１１〜１１ｎは、すべて係数レジスタ側を選択する。よって、加算回路１２の出力には、各係数値「ｋ１」〜「ｋｎ」を加算した値「ｋ１＋ｋ２＋ｋ３＋・・・＋ｋｎ」、すなわち係数総和値「Σｋｎ」が出力される。総和レジスタ２０は、この係数総和値「Σｋｎ」を適切なタイミングで取り込むことにより、図４で示したアキュムレータ４０と同様に、総和レジスタ２０には、係数総和値「Σｋｎ」を有する総和データＳＫｎが設定される。このように、所定のタイミングでシフトレジスタ５０をセットし、このタイミングに対応した適切なタイミングで総和レジスタ２０に加算回路１２の出力を取り込むことにより、図４で示した構成と同様の機能を実現できる。また、図４の構成と比較して、アキュムレータ４０よりも回路規模が小さくてすむ総和レジスタ２０を設ければよいため、回路規模を削減することができる。
【００５６】
また、図６において、係数入力端子３３に供給された係数データＫ１〜Ｋｎは、図５で説明した構成と同様に、それぞれ所定の係数レジスタ４１１〜４１ｎに転送され、各係数レジスタ４１１〜４１ｎに所定の係数データＫ１〜Ｋｎが格納される。また図６の構成において、図５と比較して、第１の選択回路としてのスイッチ４２１〜４２ｎを有していることを特徴とする。スイッチ４２１〜４２ｎの制御入力は、第１の選択制御信号としての係数ロード指令信号が供給される係数ロード入力端子３５に接続される。また、スイッチ４２１〜４２ｎの一方の入力には、それぞれシフトレジスタ１０からの遅延データＤ１〜Ｄｎが接続され、他方の入力には、２値入力値の一方の値としての値「１」のデータが設定される。また、図６の構成において、図４で説明したアキュムレータ４０に代えて、図２、図５で説明した構成と同様に総和レジスタ２０を有している。
【００５７】
すなわち、係数ロード入力端子３５に入力された係数ロード指令信号が有効であるとスイッチ４２１〜４２ｎは、すべて「１」を選択する。このため、第２の選択回路としてのスイッチ１１１〜１１ｎは、すべて係数レジスタ側を選択する。よって、加算回路１２の出力には、図５の場合と同様に、各係数値を加算した値「ｋ１＋ｋ２＋ｋ３＋・・・＋ｋｎ」が出力される。総和レジスタ２０は、この各係数値を加算した値を適切なタイミングで取り込むことにより、図４で示したアキュムレータ４０と同様に、総和レジスタ２０には、各係数値を加算した値「ｋ１＋ｋ２＋ｋ３＋・・・＋ｋｎ」、すなわち係数総和値「Σｋｎ」を有する総和データＳＫｎが設定される。このように、所定のタイミングで係数ロード信号を入力し、このタイミングに対応した適切なタイミングで総和レジスタ２０に加算回路１２の出力を取り込むことにより、図４で示した構成と同様の機能を実現できる。
【００５８】
また、図７、および図８は、図１で説明した構成を基本として、図５、図６で示した構成と同様に、外部から入力された各係数データがそれぞれのレジスタに設定される機能を有する他の構成例を示すブロック図である。
【００５９】
図７の構成は、図１での構成を基本とし、図５で説明した出力をすべて「１」として出力するように制御するセット入力を有したシフトレジスタ５０を利用した構成である。係数レジスタ４１１〜４１ｎには、係数入力端子３３より、係数データＫ１〜Ｋｎとして、それぞれフィルタ係数の２倍に相当する係数値「２ｘｋ１」〜「２ｘｋｎ」が設定される。セット入力端子３４に、セット指令信号が入力されると、シフトレジスタ５０からの遅延データＤ１〜Ｄｎは、すべて値「１」が出力され、スイッチ１１１〜１１ｎは、すべて係数レジスタ側を選択する。よって、加算回路１２の出力には、各係数値を加算した値「ｋ１＋ｋ２＋ｋ３＋・・・＋ｋｎ」の２倍の値、すなわち係数総和値「Σｋｎ」の２倍の値が出力される。総和レジスタ２０は、この係数総和値「Σｋｎ」の２倍の値を、まず、定数「２分の１」を掛け算する掛算器４１で掛け算され、この掛け算結果を適切なタイミングで取り込むことにより、図１で示した総和レジスタ２０と同様に、係数総和値「Σｋｎ」を有する総和データＳＫｎが設定される。このように、図７で示した構成によっても、図４で示した構成と同様の機能を実現できる。
【００６０】
図８の構成は、図１での構成を基本とし、図６と同様に第１の選択回路としてのスイッチ４２１〜４２ｎを有した構成である。係数レジスタ４１１〜４１ｎには、係数入力端子３３より、係数データＫ１〜Ｋｎとして、それぞれフィルタ係数の２倍に相当する係数値「２ｘｋ１」〜「２ｘｋｎ」が設定される。係数ロード入力端子３５に、第１の選択制御信号としての係数ロード指令信号が入力されると、スイッチ４２１〜４２ｎは、すべて値「１」を選択し、第２の選択回路としてのスイッチ１１１〜１１ｎは、すべて係数レジスタ側を選択する。よって、加算回路１２の出力には、各係数値を加算した値「ｋ１＋ｋ２＋ｋ３＋・・・＋ｋｎ」の２倍、すなわち係数総和値「Σｋｎ」の２倍の値が出力される。総和レジスタ２０は、この係数総和値「Σｋｎ」の２倍の値を、まず、定数「２分の１」を掛け算する掛算器４１で掛け算され、この掛け算結果を適切なタイミングで取り込むことにより、図１で示した総和レジスタ２０と同様に、係数総和値「Σｋｎ」を有する総和データＳＫｎが設定される。このように、図８で示した構成によっても、図４で示した構成と同様の機能を実現できる。
【００６１】
【発明の効果】
以上説明したように、本発明のデジタルフィルタによれば、デジタルフィルタを構成する回路規模の増加を抑制するとともに、精度よい出力データを得ることができる。
【図面の簡単な説明】
【図１】本発明の実施の形態１のデジタルフィルタの構成を示すブロック図
【図２】本発明の実施の形態１のデジタルフィルタの構成の変形例を示すブロック図
【図３】（ａ）図１のスイッチ１１１〜１１ｎを、ＡＮＤゲートを用いて構成した一例を示す図
（ｂ）図１のスイッチ１１１〜１１ｎを、トランスファゲートを用いて構成した一例を示す図
【図４】本発明の実施の形態２のデジタルフィルタの構成を示すブロック図
【図５】本発明の実施の形態２のデジタルフィルタの構成の変形例を示すブロック図
【図６】本発明の実施の形態２のデジタルフィルタの構成の他の変形例を示すブロック図
【図７】本発明の実施の形態２のデジタルフィルタの構成の他の変形例を示すブロック図
【図８】本発明の実施の形態２のデジタルフィルタの構成の他の変形例を示すブロック図
【図９】従来例におけるデジタルフィルタの構成を示すブロック図
【符号の説明】
１０，５０  シフトレジスタ
１２  加算回路
２０  総和レジスタ
２２  減算器
２３  （２倍の）掛算器
３０  入力端子
３１  出力端子
３２  クロック端子
３３  係数入力端子
３４  セット入力端子
３５  係数ロード入力端子
４０  アキュムレータ
４１  （２分の１の）掛算器
８０  ＡＮＤゲート
８１，８２  トランスファゲート
８３  インバータ
１００  ＦＩＲ形デジタルフィルタ部
１１１〜１１ｎ，４２１〜４２ｎ  スイッチ
１９１〜１９ｎ，２１１〜２１ｎ，４１１〜４１ｎ  係数レジスタ
２００  オフセット補正部
【図１】
2004289417.tif 000003
【図２】
2004289417.tif 000004
【図３】
2004289417.tif 000005
【図４】
2004289417.tif 000006
【図５】
2004289417.tif 000007
【図６】
2004289417.tif 000008
【図７】
2004289417.tif 000009
【図８】
2004289417.tif 000010
【図９】
2004289417.tif 000011