(57)【要約】【課題】  小規模の回路構成で係数ａの更新値ａ[n+1]の演算の高速処理が可能な適応型ディジタルフィルタを提供する。【解決手段】  適応型ディジタルフィルタ１は、ａ[n+1]＝ａ[n]＋β・ｅ[n]・ｑ[n]／ｐ[n]で設定される係数ａを有するディジタルフィルタ２とサンプリングデータｘ[n]が入力される毎に係数ａの更新値ａ[n+1]を演算し、ディジタルフィルタ２の係数ａを更新するＮＭＬＳ演算器３とで構成される。ＮＭＬＳ演算器３は、係数ａを求める演算式の除数ｐ[n]を超える２の冪乗値２mを演算する演算器を備え、除数ｐ[n]に代えて演算器により演算された２の冪乗値２mを用いて除算部分β・ｅ[n]・ｑ[n]／２mの演算処理を行う。除算演算の除数を２mに置き換えることにより、例えば固定小数点法では被除数の各ビットをｍビット分シフトさせることにより除算値が得られるので、ＮＭＬＳ演算器３内の除算回路はビットシフタなどの簡単なロジック回路で構成され、回路構成の簡素化、高速処理が可能になる。【選択図】      図１
2005229312.tif 000002
【特許請求の範囲】
【請求項１】
ａ[n+1]＝ａ[n]＋β・ｅ[n]・ｑ[n]／ｐ[n]（β：０〜２の範囲の係数、ｅ[n]：フィルタ入力とフィルタ出力との誤差、ｑ[n]，ｐ[n]：所定の演算式）で設定される係数ａを有するディジタルフィルタと、
前記ディジタルフィルタにサンプリングデータが入力される毎に、前記係数ａの更新値を演算し、その演算結果を用いて前記ディジタルフィルタの係数ａを更新する係数更新手段と、を備えた適応型ディジタルフィルタにおいて、
前記係数更新手段は、前記係数ａを求める演算式の除数ｐ[n]を超える２の冪乗値２mを演算し、前記除数ｐ[n]に代えて演算された２の冪乗値２mを用いて前記係数ａの更新値を演算する
ことを特徴とする適応型ディジタルフィルタ。
【請求項２】
前記２の冪乗値２mは、前記除数ｐ[n]を超える２の冪乗値のうち、最小の値であることを特徴とする、請求項１に記載の適用型ディジタルフィルタ。
【請求項３】
前記係数更新手段は、固定小数点法により係数ａの更新値を演算するものであり、
前記除数ｐ[n]を示す２進整数データの中の「１」がセットされている最上位桁のビットを検出し、そのビット位置よりも１つ上位のビットのみが「１」となる２の冪乗値２mを演算する第１の演算手段と、
前記係数ａを求める演算式において前記除数ｐ[n]により割られる被除数を示す２進整数データの各ビットのデータを、前記第１の演算手段により演算された２の冪乗値２mの指数ｍ個分だけ全体的に下位の桁の方向にシフトさせるビットシフト手段と、
前記ビットシフト手段によってビットシフトされた２進整数データを用いて係数ａの更新値を演算する第２の演算手段と、
からなることを特徴とする請求項２に記載の適応型ディジタルフィルタ。
【請求項４】
前記係数更新手段は、浮動小数点法により係数ａの更新値を演算するものであり、
前記除数ｐ[n]を示す２進数データと前記係数ａを求める演算式において前記除数ｐ[n]により割られる被除数を示す２進数データからそれぞれ指数部のデータを抽出するデータ抽出手段と、
前記データ抽出手段により抽出された除数の指数部のデータから当該指数部の値を１だけ増加した値のデータを生成する指数データ生成手段と、
前記データ抽出手段により抽出された被除数の指数部のデータから前記指数データ生成手段で生成された指数部のデータを引く演算を行う減算手段と、
前記被除数を示す２進数データのうち、指数部のデータを前記減算手段により算出されデータに変更するデータ変更手段と、
前記データ変更手段によりデータ変更された被除数を示す２進数データを用いて係数ａの更新値を演算する係数演算手段と、
からなることを特徴とする請求項２に記載の適応型ディジタルフィルタ。
【請求項５】
前記係数ａは、前記ディジタルフィルタによって通過される単一の周波数を決定する係数であることを特徴とする請求項１〜4のいずれかに記載の適応型ディジタルフィルタ。
【請求項６】
前記係数更新手段によって更新される係数ａの更新値を制限する更新値制限手段を更に備えたことを特徴とする請求項１〜５のいずれかに記載の適応型ディジタルフィルタ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディジタルフィルタと、このディジタルフィルタの入力に対する出力の誤差が最小になるように当該ディジタルフィルタの係数をサンプリングデータが入力される毎に演算して更新する係数更新手段を備え、特定の単一周波数を通過させる適応型ディジタルフィルタに関するものである。
【背景技術】
【０００２】
従来、図１７に示すように、ＩＩＲ（infinite impulse response）フィルタからなるディジタルフィルタ１０１とこのディジタルフィルタの通過帯域の中心周波数を決定する係数ａを制御する係数制御回路１０２とで構成され、ディジタルフィルタ１０１にディジタルデータ（サンプリングデータ）ｘ[n]が入力される毎に、当該ディジタルデータのレベル値ｘ[n]とディジタルフィルタから出力されるディジタルデータのレベル値ｙ[n]との誤差ｅ[n]＝ｘ[n]−ｙ[n]が最小となるように係数ａ[n+1]を演算し、その演算結果を次のディジタルデータｘ[n+1]の入力の際にディジタルフィルタ１０１に設定することにより、ディジタルフィルタ１０１に入力される信号のうち、特定の単一周波数ｆoの信号のみを濾波する適応型ディジタルフィルタ１００が知られている。
【０００３】
適応型ディジタルフィルタ１００の係数ａ[n+1]の更新式は、下記数式（１）で与えられ、Ｓ．ＨＡＹＫＩＮの論文「Ａｄａｐｔｉｖｅ  ｆｉｌｔｅｒ  ｔｈｅｏｒｙ  ３ｒｄ  ｅｄ．」によれば、数式（１）内の係数βが０＜β＜２を満たしていれば、係数ａの更新値ａ[n+1]は特定の値に収束することが確認されている。
【０００４】
【数１】
2005229312.tif 000003
【０００５】
図１８は、係数制御回路１０２内の上記数式（１）により係数ａ[n]を演算するための回路構成を示したものである。係数ａ[n]の演算回路は、数式（１）の割り算の項の除数（ｕ[n]2＋ｕ[n-1]2）を演算する除数演算回路１０３と、同割り算の項の被除数（ｅ[n]・ｕ[n-1]）を演算する被除数演算回路１０４と、この被除数演算回路１０４の演算結果を除数演算回路１０３の演算結果で除する除算回路１０５と、この除算回路１０５の演算結果に係数βを乗ずる乗算回路１０６と、この乗算回路１０６の演算結果を前回算出された係数ａ[n]に加算して係数aの更新値ａ[n+1]を算出する加算回路１０７とで構成されている。
【０００６】
【特許文献１】特開平６−１８８６８３号公報
【特許文献２】特許第３０９２６４７号公報
【非特許文献１】書籍名「Ａｄａｐｔｉｖｅ  ｆｉｌｔｅｒ  ｔｈｅｏｒｙ  ３ｒｄ  ｅｄ．」（著者Ｓ．ＨＡＹＫＩＮ、１９９６年発行）の４３７頁
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、従来の適応型ディジタルティルタの係数制御回路１０２は、上記数式（１）を直接演算する構成であるため、特に除算回路１０５の具体的な構成が複雑かつ大規模になり、これに伴い演算時間も長くなるという問題を有していた。
【０００８】
上記数式（１）のとおりに係数ａの更新値ａ[n+1]を演算すれば、毎回の係数ａの更新値ａ[n+1]は正確に算出されるが、係数制御回路１０２は、ディジタルフィルタ１０１にサンプリングデータｘ[n]が入力される毎に係数ａを更新し、この係数ａの更新処理を繰り返すことにより当該係数ａを特定の単一周波数ｆoの信号のみを濾波する特定の値に収束させることを目的とするものであるから、各回の係数ａの更新値ａ[n+1]が上記数式（１）によって定義される正確な値から多少ずれていたとしても同一の値に収束するのであれば、係数制御回路１０２は、必ずしも上記数式（１）により係数ａの更新値ａ[n+1]を演算する必要はないといえる。
【０００９】
上記数式（１）をディジタル演算処理で簡単かつ迅速に演算することのできる演算式に置き換え、その演算式を実行する回路により係数制御回路１０２を構成すれば、係数制御回路１０２の回路構成が簡単且つ小規模になり、演算時間の短縮も可能になると考えられる。
【課題を解決するための手段】
【００１０】
本発明は、上記課題に鑑みてなされたものであり、係数ａの更新値ａ[n+1]の演算式をディジタル演算処理で簡単かつ迅速に演算することのできる演算式に置き換え、この演算式を実行する回路構成とすることにより、簡単な回路構成で係数ａの更新値ａ[n+1]の演算の高速処理が可能な適応型ディジタルフィルタを提供するものである。
【００１１】
本発明は、ａ[n+1]＝ａ[n]＋β・ｅ[n]・ｑ[n]／ｐ[n]（β：０〜２の範囲の係数、ｅ[n]：フィルタ入力とフィルタ出力との誤差、ｑ[n]，ｐ[n]：所定の演算式）で設定される係数ａを有するディジタルフィルタと、前記ディジタルフィルタにサンプリングデータが入力される毎に、前記係数ａの更新値を演算し、その演算結果を用いて前記ディジタルフィルタの係数ａを更新する係数更新手段と、を備えた適応型ディジタルフィルタにおいて、前記係数更新手段は、前記係数ａを求める演算式の除数ｐ[n]を超える２の冪乗値２mを演算し、前記除数ｐ[n]に代えて演算された２の冪乗値２mを用いて前記係数ａの更新値を演算することを特徴とするものである（請求項１）。
【００１２】
なお、前記係数ａは、例えば前記ディジタルフィルタによって通過される単一の周波数を決定する係数である（請求項５）。
【００１３】
前記２の冪乗値２mは、前記除数ｐ[n]を超える２の冪乗値のうち、最小の値にするとよい（請求項２）。
【００１４】
より具体的には、前記係数更新手段は、固定小数点法により係数ａの更新値を演算するものであり、前記除数ｐ[n]を示す２進整数データの中の「１」がセットされている最上位桁のビットを検出し、そのビット位置よりも１つ上位のビットのみが「１」となる２の冪乗値２mを演算する第１の演算手段と、前記係数ａを求める演算式において前記除数ｐ[n]により割られる被除数を示す２進整数データの各ビットのデータを、前記第１の演算手段により演算された２の冪乗値２mの指数ｍ個分だけ全体的に下位の桁の方向にシフトさせるビットシフト手段と、前記ビットシフト手段によってビットシフトされた２進整数データを用いて係数ａの更新値を演算する第２の演算手段とで構成するとよい（請求項３）。
【００１５】
また、前記係数更新手段は、浮動小数点法により係数ａの更新値を演算するものであり、前記除数ｐ[n]を示す２進数データと前記係数ａを求める演算式において前記除数ｐ[n]により割られる被除数を示す２進数データからそれぞれ指数部のデータを抽出するデータ抽出手段と、前記データ抽出手段により抽出された除数の指数部のデータから当該指数部の値を１だけ増加した値のデータを生成する指数データ生成手段と、前記データ抽出手段により抽出された被除数の指数部のデータから前記指数データ生成手段で生成された指数部のデータを引く演算を行う減算手段と、前記被除数を示す２進数データのうち、指数部のデータを前記減算手段により算出されデータに変更するデータ変更手段と、前記データ変更手段によりデータ変更された被除数を示す２進数データを用いて係数ａの更新値を演算する係数演算手段とで構成するとよい（請求項４）。
【００１６】
更に、前記適応型ディジタルフィルタにおいて、前記係数更新手段によって更新される係数ａの更新値を制限する更新値制限手段を更に備えるとよい（請求項６）。
【００１７】
本発明に係る適応型ディジタルフィルタによれば、係数更新手段により演算式ａ[n+1]＝ａ[n]＋β・ｅ[n]・ｑ[n]／ｐ[n]の除数ｐ[n]を超える２の冪乗値２mが演算される。例えば除数ｐ[n]を超える２の冪乗値２mのうち、最小の２mが演算される。
【００１８】
次に、ｐ[n]に代えて２mを除数とし、上記演算式においてβ・ｅ[n]・ｑ[n]／２mの除算演算が行われた後、この演算結果に前回の係数ａ[n]を加算して今回の係数ａの更新値ａ[n+1]が算出され、その算出結果によりディジタルフィルタの係数ａが更新される。
【００１９】
具体的には、例えば固定小数点法により演算する場合、除数及び被除数は２進整数のデータで表され、除数Ｎ２をＮ２＝２m、被除数Ｎ１をＮ１＝ｄn×２n＋ｄn-1×２n-1＋…＋ｄ1×２1＋ｄ0×２0とすると、除算値Ｎ１／Ｎ２はＮ２／Ｎ１＝ｄn×２n-m＋ｄn-1×２n-1-m＋…＋ｄm×２m-mとなる。被除数Ｎ１の２進整数データは（ｄnｄn-1…ｄ1ｄ0）、除算値Ｎ１／Ｎ２の２進整数データは（＊…＊ｄnｄn-1…ｄm）となり、除算値のＮ１／Ｎ２の２進整数データは、被除数Ｎ１の２進整数データの各ビットを全体的に下位の桁の方向にｍビット分シフトしたものとなる。
【００２０】
係数更新手段により、除数ｐ[n]を示す２進整数データの中の「１」がセットされている最上位桁のビットが検出され、そのビット位置よりも１つ上位のビットのみが「１」となる２の冪乗値２mが演算される。例えば除数ｐ[n]を（０００００１０１）の８ビットデータとすると、「１」がセットされている最上位桁のビットは左側から６番目であるから、左側から５番目のビットのみが「１」となる２の冪乗値２4（＝（００００１０００））が演算される。
【００２１】
次に、係数更新手段により、除数ｐ[n]により割られる被除数、例えばｅ[n]・ｑ[n]を示す２進整数データの各ビットのデータを、２の冪乗値２mの指数ｍ個分だけ全体的に下位の桁の方向にシフトさせて除算値が演算される。例えばｅ[n]・ｑ[n]を（０１１１１１０１）の８ビットデータとすると、上記の例では、ｍ＝４であるから、（０１１１１１０１）の各ビットを全体的に右側に４ビット分シフトさせて除算値のデータ（０００００１１）が演算される。なお、被除数は、ｅ[n]・ｑ[n]に限定とされるものではない。分子の項（β・ｅ[n]・ｑ[n]）を構成する３つの要素のうち、１の要素または任意の組み合わせによる複数の要素の積を被除数とすることができる。
【００２２】
その後、係数更新手段により、除算値のデータを用いて係数ａの更新値ａ[n+1] が演算される。例えば被除数をｅ[n]・ｑ[n]とした場合は、除算値のデータに係数βを乗じた後、前回の係数ａ[n]のデータを加算して更新値ａ[n+1]が演算される。
【００２３】
また、浮動小数点法により演算する場合、浮動小数点法では除数及び被除数がＡ×２nで表され、除数をＡ１×２m、被除数をＡ２×２nとすると、除算演算はＡ２×２n／Ａ１×２mとなる。Ａ１×２mを超える２の冪乗値の最小値は２m+1であるから、除算演算はＡ２×２n／２m+1＝Ａ２×２n-m+1となり、被除数のデータのうち、指数部のデータを２nの値から２n-m+1の値に変更することにより除算値のデータが得られる。
【００２４】
係数更新手段により、除数ｐ[n]を示す２進数データと、係数ａを求める演算式において除数ｐ[n]により割られる被除数を示す２進数データからそれぞれ指数部のデータが抽出される。次に、係数更新手段により、抽出された除数の指数部のデータから当該指数部の値を１だけ増加した値のデータが生成され、このデータを被除数の指数部のデータから引く演算が行われる。すなわち、除数の指数部の値をｍ、被除数の指数部の値をｎとすると、（ｎ−ｍ−１）の演算が行われる。
【００２５】
その後、係数演算手段により、被除数の指数部のデータを減算結果のデータに変更して除算値のデータが生成される。すなわち、被除数の指数部の値をｎから（ｎ−ｍ−１）に変更して除算値のデータが生成される。そして、この除算値のデータを用いて係数ａの更新値ａ[n+1]が演算される。例えば被除数をｅ[n]・ｑ[n]とした場合は、除算値のデータに係数βを乗じた後、前回の係数ａ[n]のデータを加算して更新値ａ[n+1] が演算される。
【００２６】
なお、更新値制限手段を備えたものでは、係数ａの更新値ａ[n+1]が所定の範囲内に制限される。例えば上限値Ａmaxと下限値Ａminとが設定されている場合、係数更新手段により、更新値ａ[n+1]がＡmaxより大きいときは更新値Ａmaxが出力され、更新値ａ[n+1]がＡminより小さいときは更新値Ａminが出力され、更新値ａ[n+1]がＡmin以上Ａmax以下のときはその更新値ａ[n+1] が出力される。
【発明の効果】
【００２７】
本発明によれば、係数ａの更新値a[n+1]の演算式における除算部分の除数を、当該除数を越える２の冪乗値２mに置き換えて除算演算を行うので、除算回路を簡単なロジック回路で構成することができる。従って、回路構成が簡単且つ小規模で、演算速度の速い適応型ディジタルフィルタを実現することができる。
【００２８】
係数ａの更新値ａ[n+1]に制限を設けたものでは、制限値を適当に設定することにより適応型ディジタルフィルタが追従する通過させる周波数が一定の範囲に制限されるので、互に異なる周波数に追従する複数種類の適応型ディジタルフィルタを容易に実現することができる。また、入力段に別途フィルタを設ける必要がないので、その分適応型ディジタルフィルタの構成を簡単にすることができる。
【発明を実施するための最良の形態】
【００２９】
まず、本発明に係る適応型ディジタルフィルタを実現するための前提となる上記数式（１)を修正した演算式について説明する。
【００３０】
計算機による演算処理では２進数が使用され、例えば１０進整数ＮがＮ＝ａn×２n＋ａn-1×２n-1＋…＋ａ2×２2＋ａ1×２1＋ａ0×２0で表されるとすると、計算機では各項の係数を配列した２進整数（＊ａnａn-1…ａ2ａ1ａ0）で演算処理が行われる。なお、最上位ビットの「＊」は符号を示すデータ（「＋」の場合は、「０」、「−」の場合は「１」）である。計算機による演算方法には、周知のように固定小数点演算と浮動小数点演算とがあるが、固定小数点演算においては、例えば１０進整数Ｎをある除数Ｍで割る場合、除数Ｍが２m（ｎ＞ｍ）であると、Ｎ／Ｍ＝ａn×２n-m＋ａn-1×２n-1-m＋…＋ａm×２m-mとなる。この演算結果を２進数で表すと、（＊…＊ａnａn-1…ａm）となり、（＊ａnａn-1…ａ2ａ1ａ0）の各ビットを右側にｍ個分シフトしたものとなる。
【００３１】
なお、被除数の各ビットを全体的にｍ個分右側にシフトさせると、左端からｍビット分にビット内容が不定の部分が生じ、演算結果のビットデータの構成上問題が生じるので、この部分に符号ビットをコピーしている。（＊…＊ａnａn-1…ａm）の（＊…＊）の部分はそのことを示している。除算結果に対する符号ビットのデータは被除数の符号ビットと除数の符号ビットの排他的論理和を演算することにより生成される。
【００３２】
例えば被除数の１０進整数Ｎを「＋３０」とし、除数の１０進整数Ｍを「＋４」＝＋２2とすると、３０＝１×２4＋１×２3＋１×２2＋１×２1+０×２0であるから、３０／４＝１×２2＋１×２1＋１×２0となり、これを８ビットの２進数表示すると、（０００００１１１）（最上位桁から下位３ビット分の「０」は符号ビット）となる。１０進整数の「＋３０」の８ビットの２進数表示は（０００１１１１０）（最上位桁のビット「０」は符号ビット）であるから、３０／４の２進数表示（０００００１１１）は、被除数（０００１１１１０）の数値部分の各ビットを全体的に右側に２個分シフトし、最上位桁から下位３ビット分に符号ビットを付与したものとなっている。
【００３３】
このように、計算機による固定小数点法での除算処理では、除数が２mであれば、その除算結果は被除数（ａnａn-1…ａ2ａ1ａ0）の各ビットを全体的にｍ個分右側にシフトさせる処理により簡単に演算結果を得ることができるという特徴がある。
【００３４】
そうすると、上記数式（１）において、例えば第２項の割り算部分ｅ[n]・ｕ[n-1]／（ｕ[n]2＋ｕ[n-1]2）をｅ[n]・ｕ[n-1]／２mに置き換えれば、係数ａ[n]の演算回路、特に割算回路は被除数のビットをシフトする処理回路により簡単に実現できることになる。なお、第２項の割り算部分の被除数は、ｅ[n]・ｑ[n]に限定とされるものではない。分子の項（β・ｅ[n]・ｕ[n-1]）を構成する３つの要素のうち、１の要素または任意の組み合わせによる複数の要素の積を被除数とすることができる。
【００３５】
一方、浮動小数点演算の場合は、数値のデータフォーマットがｋ×２nで定義され、数値データは最上位桁１ビットが符号ビット、それに続く８ビットが指数部の値（ｎ）を示す指数ビット、それ以降の所定数のビットが仮数部の値（ｋ）を示す仮数ビットで構成される。被除数Ｎ１をｋ1×２n、除数Ｎ２をｋ2×２mとすると、除算結果Ｎ１／Ｎ２はＮ１／Ｎ２＝（ｋ1／ｋ2）×２n-mとなり、除数Ｎ２の仮数部ｋ2が「１」でなければ、（ｋ1／ｋ2）の演算処理は非常に複雑になる。
【００３６】
そこで、固定小数点演算の場合と同様に、除数Ｎ２をｋ2×２mを超える２rに置き換えると、除算結果Ｎ１／Ｎ２はＮ１／Ｎ２＝ｋ1×２n-rとなり、被除数Ｎ１の指数部の値ｎから除数Ｎ２の指数部の値ｒを引くことにより簡単に除算結果を得ることができる。すなわち、浮動小数点演算の場合は、引き算器と、被除数の指数部のデータｎと除数の指数部のデータｎを抽出し、引き算器により（ｎ−ｒ）を演算した結果を被除数の指数部のデータに置き換えるとともに、被除数の符号ビットのデータを被除数の符号ビットと除数の符号ビットとの排他的論理和の演算値に置き換える処理する処理回路とによって簡単に除算処理の回路を実現することができる。
【００３７】
なお、浮動小数点演算の場合は、被除数Ｎ１の指数部のデータが（ｎ−ｒ）の演算結果で置き換えられるだけであるから、固定小数点演算の場合のように、ビットシフトによって生じるデータが不定となるビットに符号ビットを補充する処理は必要ない。
【００３８】
上述したように、除算処理においては除数を２の冪乗値２mに選ぶと、除算の処理回路が極めて簡単になり、演算速度も高速化が可能になる。そこで、本発明に係る係数制御装置では、係数ａの更新値ａ[n+1]の演算式を、上記数式（１）において、第２項の割り算部分ｅ[n]・ｕ[n-1]／（ｕ[n]2＋ｕ[n-1]2）をｅ[n]・ｕ[n-1]／２mに置き換えた下記数式(２)に示す演算式とし、この演算式の演算処理を行う回路により構成している。
【００３９】
【数２】
2005229312.tif 000004
【００４０】
なお、上記数式（２）により係数ａの更新値ａ[n+1]を演算処理する場合は、その更新値を特定の値に収束させる必要があるため、上述した０＜β＜２の条件を満足するように２mを選択する必要がある。
【００４１】
０＜β＜２の条件式を（ｕ[n]2＋ｕ[n-1]2）で割ると、０＜β／（ｕ[n]2＋ｕ[n-1]2）＜２／（ｕ[n]2＋ｕ[n-1]2）となり、２m＞（ｕ[n]2＋ｕ[n-1]2）とすると、０＜β／２m＜β／（ｕ[n]2＋ｕ[n-1]2）＜２／（ｕ[n]2＋ｕ[n-1]2）となるから、上記条件式を満足する。従って、２mは（ｕ[n]2＋ｕ[n-1]2）より大きい任意の値に選択することができる。数式（２）は数式（１）の近似式として代用するものであるから、好ましくは両者の誤差は可及的に小さいほうがよい。そこで、本実施形態に係る係数制御装置では、（ｕ[n]2＋ｕ[n-1]2）を超える最小の２mの値を設定するようにしている。
【００４２】
例えば（ｕ[n]2＋ｕ[n-1]2）が１０進数の「３０」であると、「３０」を超える最小の２の冪乗値は「３２」であるから、２m＝２4となる。
【００４３】
次に、本発明に係る適応型ディジタルフィルタについて説明する。
【００４４】
図１は、本発明に係る適応型ディジタルフィルタの一実施形態を示すブロック構成図である。
【００４５】
同図に示す適応型ディジタルフィルタ1は、ＩＩＲディジタルフィルタ２と学習同定法によりＩＩＲディジタルフィルタ２内の係数ａと係数ｄとを演算するＮＬＭＳ（Normalized Least Mean Square）演算器３とにより構成されている。
【００４６】
ＩＩＲディジルタフィルタ２は、フィードバックパートとフィードフォワードパートとを縦続接続してなる周知の２次ＩＩＲディジルタフィルタである。ＩＩＲディジルタフィルタ２は単一の周波数に共振する共振特性を有し、フィードバックパート（遅延回路２ａから入力端側に戻るパート）では、周波数ｆｏの信号を抽出する演算が行なわれ、フィードフォワードパート（遅延回路２ａから出力端側に進むパート）では、抽出された信号の位相及び振幅を決定する演算が行われる。
【００４７】
フィードバックパートにおける係数ａの演算式は正確には上記数式（１）であるが、上述したように、本実施形態では上記数式（２）を係数ａの演算式としている。また、フィードバックパートにおける係数ｂとフィードフォワードパートにおける係数ｃ，ｄは、従来の演算式を用いている。すなわち、係数ｂの演算式はｂ＝−ｒ2、係数ｃの演算式はｃ＝１−ｒ2である。また、係数ｄの演算式はｄ[n+1]＝（ｒ−１）・ａ[n+1]である。そして、本実施形態ではｒを固定し、係数ｂ，ｃを固定値としている。
【００４８】
図１に示すように、ディジタルデータｘ[n]（サンプリングナンバーｎのデータ）は、ＩＩＲディジルタフィルタ２とＮＬＭＳ演算器３とに入力される。また、ＮＬＭＳ演算器３にはＩＩＲディジルタフィルタ２から出力されるディジタルデータｙ[n]と、ＩＩＲディジルタフィルタ２のフィードバックパートを構成する遅延回路２ａの入力データｕ[n]と出力データｕ[n-1]とが入力される。ＮＬＭＳ演算器３では、入力データｘ[n]と出力データｙ[n]の誤差データｅ[n]＝ｘ[n]−ｙ[n]（レベル差に相当）が演算されるとともに、この誤差データｅ[n]と遅延回路２ａの入力データｕ[n]及び出力データｕ[n-1]とを用いて上述した演算式により係数ａの更新値ａ[n+1]と係数ｄの更新値ｄ[n+1]とが演算され、その演算結果がそれぞれＩＩＲディジルタフィルタ２の係数ａと係数ｄとにフィードバックされる。
【００４９】
図２は、固定小数点法により係数ａ，ｄの更新値を演算するＮＬＭＳ演算器３の具体的な回路構成を示す図である。
【００５０】
同図において、ブロック３１は上記数式（１）の第２項の分母（ｕ[n]2＋ｕ[n-1]2）を演算する演算部（以下、分母演算部という。）、ブロック３２は上記数式（１）の第２項の分子（ｅ[n]・ｕ[n-1]）を演算する演算部（以下、分子演算部という。）、ブロック３３は分母演算部３１から出力される演算結果（ｕ[n]2＋ｕ[n-1]2の演算結果）からこの演算結果を超える最小の２mを算出し、この算出結果と分子演算部３２から出力される演算結果（ｅ[n]・ｕ[n-1]の演算結果）とを用いて上記数式（２）の第２項の除算演算を行う除算処理部、ブロック３４は除算処理部３３の演算結果と前回算出された係数ａ[n]と用いて数式（２）により係数ａの更新値ａ[n+1]を演算する第1係数演算部である。
【００５１】
また、ブロック３５は予め設定された固定値ｒと第１係数演算部３４で演算された係数ａの更新値ａ[n+1]とを用いてｄ[n+1]＝（ｒ−１）・ａ[n+1]の演算式により係数ｄの更新値ｄ[n+1]を演算する第２係数演算部である。
【００５２】
分母演算部３１では、乗算回路３１１とこの乗算回路３１１の演算結果を保持するデータ保持回路３１４によりデータｕ[n]の自乗値を演算する第１自乗演算器が構成され、乗算回路３１２とこの乗算回路３１２の演算結果を保持するデータ保持回路３１５によりデータｕ[n-１]の自乗値を演算する第２自乗演算器が構成されている。また、加算回路３１３とこの加算回路３１３の演算結果を保持するデータ保持回路３１６によりデータｕ[n]の自乗値とデータｕ[n-1]の自乗値を加算する加算器が構成されている。
【００５３】
第１自乗演算器にはデータｕ[n]が入力され、このデータｕ[n]は２つに分けられて一方を被乗数とし、他方を乗数として乗算回路３１１に入力される。従って、乗算回路３１１からはデータｕ[n]の自乗値ｕ[n]2が演算され、その演算結果がデータ保持回路３１４に保持される。一方、第２自乗演算器にはデータｕ[n-1]が入力され、このデータｕ[n-1]は２つに分けられて一方を被乗数とし、他方を乗数として乗算回路３１２に入力される。従って、乗算回路３１２からはデータｕ[n-1]の自乗値ｕ[n-1]2が演算され、その演算結果がデータ保持回路３１５に保持される。
【００５４】
データ保持回路３１４に保持された自乗値ｕ[n]2とデータ保持回路３１５に保持された自乗値ｕ[n-1]2は加算回路３１３に入力され、この加算回路３１３で両自乗値の加算演算が行われ、その演算結果がデータ保持回路３１６に保持される。すなわち、加算回路３１３で（ｕ[n]2+ｕ[n-1]2)の加算処理が行われ、その加算結果はデータ保持回路３１６に保持され、除算処理部３２に入力される。
【００５５】
分子演算部３２では、減算回路３２１とこの減算回路３２１の演算結果を保持するデータ保持回路３２３により誤差データｅ[n]の演算器が構成され、乗算回路３２２とこの乗算回路３２２の演算結果を保持するデータ保持回路３２４により上記数式（２）の第２項の分子（ｅ[n]・ｕ[n-1]）を演算する演算器が構成されている。
【００５６】
減算回路３２１にはＩＩＲディジタルフィルタ２への入力データｘ[n]とＩＩＲディジタルフィルタ２からの出力データｙ[n]とが入力される。減算回路３２１で（ｘ[n]−ｙ[n]）の演算処理が行われ、その演算結果ｅ[n]＝ｘ[n]−ｙ[n]はデータ保持回路３２３に保持される。乗算回路３２２にはデータ保持回路３２３に保持された誤差データｅ[n]が被乗数として入力されるとともに、データｕ[n-1]が乗数として入力される。乗算回路３２２でｅ[n]・ｕ[n-1]の演算処理が行われ、その演算結果はデータ保持回路３２４に保持され、除算処理部３２に入力される。
【００５７】
除算処理部３３は、分母演算部３１から入力される（ｕ[n]2+ｕ[n-1]2)の演算値を記憶する除数メモリ３３１と、分子演算部３２から入力される（ｅ[n]・ｕ[n-1]）の演算値を記憶する被除数メモリ３３２と、除数ｕ[n]2+ｕ[n-1]2よりも大きい最小の２mの値、より具体的には指数ｍの値を算出するシフト量演算部３３３と、シフト量演算部３３３の算出結果に基づいて被除数メモリ３３２に記憶されたデータの数値部分の各ビットを全体的に右側（下位の桁側）にシフトさせるビットシフト部３３４と、ビットシフトにより被除数メモリ３３２のデータの符号の桁と数値部分の最上位の桁との間に生じる不定ビットの部分に符号ビットのデータをコピーする符号ビット設定部３３５と、によって構成されている。
【００５８】
除数メモリ３３１及び被除数メモリ３３２はシフトレジスタで構成され、シフト量演算部３３３、ビットシフト部３３４及び符号ビット設定部３３５は予め設定された処理プログラム（固定小数法により（e[n]・ｕ[n-1]）／２mの演算処理を行うプログラム）を実行する演算回路により構成されている。
【００５９】
図３は、除算処理部３３の演算理回路により実行される演算処理の処理手順を示すフローチャートである。
【００６０】
例えば除算演算処部３３で扱われる数値を、図４に示すように、３２ビットの２進整数データＤ0Ｄ1Ｄ2…Ｄ31とすると、左端の１ビットのデータＤ0は符号データであり、それよりも右側の３１ビットのデータＤ1Ｄ2…Ｄ31は数値データである。
【００６１】
以下の説明では、ビットデータＤiの添え字ｉを当該ビットデータＤiを特定するビット番号とする。このビット番号は、２進数整数データの左端（最上位の桁）から右側（下位の桁の方向）に順番に０，１，２，…と付されている。２進数整数データの最上位の桁から最下位の桁の方向に各桁の番号ｊを１，２，３…とすると、ビット番号ｉと桁番号ｊは、ｊ＝ｉ＋１の関係になっている。
【００６２】
また、除数と被除数の２進整数データを区別するため、除数の２進整数データをＡ0Ａ1Ａ2…Ａ31と表記し、被除数の２進整数データをＢ0Ｂ1Ｂ2…Ｂ31と表記する。
【００６３】
まず、ビット番号をカウントするカウント値ｉが「０」に設定される（Ｓ１）。続いて、カウント値ｉが１だけ増加され（Ｓ２）、除数メモリ３３１に記憶された除数のビット番号「１」のビットデータＡ1が抽出され、そのビットデータＡ1が「１」であるか否かが判別される（Ｓ３）。Ｄ１1＝０であれば（Ｓ３：ＮＯ）、ステップＳ２に戻り、カウント値ｉが１だけ増加され、次のビット番号「２」のビットデータＡ2が「１」であるか否かが判別される（Ｓ３）。
【００６４】
以下、ビット番号ｉを１ずつ更新しながら同様の処理が繰り返され、最初に「１」のビットデータを有するビット番号ｉが算出される（Ｓ２とＳ３のループ処理）。そして、ビット番号ｉのときに、Ａi＝１であれば（Ｓ３：ＹＥＳ）、ステップＳ４に移行し、そのビット番号ｉとデータのビット数Ｌ（図４の例ではＬ＝３２）とからシフト量ＳがＳ＝Ｌ−ｉ＋１により演算され、その演算結果が符号ビット設定部３３５に設けられた図略のメモリに一時記憶される。
【００６５】
ステップＳ２〜Ｓ４の処理は、除数（ｕ[n]2+ｕ[n-1]2）を超える最小の２mの指数ｍを求め、この指数ｍから被除数の各ビットを全体的に右側にシフトするシフト量Ｓを求める処理である。
【００６６】
例えば除数が１０進整数の「９」であるとすると、この２進整数データは、図５に示すように、ビット番号２９とビット番号３１のビットデータＡ29，Ａ31のみが「１」となる。「９」よりも大きい最小の２mは２4で、この２進整数データはビット番号２８のビットデータＡ28のみが「１」となる３２ビットデータである。すなわち、除数よりも大きい最小の２mは、除数の数値データを構成するビットデータＡ1Ａ2…Ａ31のうち、「１」となる最小のビット番号をｒとすると、ビット番号（ｒ−１）のビットデータＡr-1のみが「１」となる値である。
【００６７】
ビット番号ｒのビットデータＡrのみが「１」となる３２ビットの２進整数は、２32-rであるから、除数よりも大きい最小の２mは２32-(r-1)となり、その指数ｍは、ｍ＝３２−（ｒ−１）に算出される。そして、この指数ｍがシフト量Ｓに相当するから、シフト量ＳはＳ＝３２−（ｒ−１）により算出される。従って、ステップＳ４のシフト量Ｓの設定処理はＳ＝３２−（ｒ−１）の演算処理を行っている。図５の例では、ｒ＝２９であるから、シフト量ＳはＳ＝３２−（２９−１）＝４となる。
【００６８】
なお、ビット番号ｉに代えて桁番号ｊを用いた場合は、除数の数値データを構成するビットデータＡ1Ａ2…Ａ31のうち、「１」となる最小のビット番号をｋとすると、桁番号ｋとビット番号ｒとの間にはｒ＝ｋ−１の関係があるから、Ｓ＝３２−（ｒ−１）の式のｒを（ｋ−１）に置き換えればよい。すなわち、ビット番号ｉに代えて桁番号ｊを用いた場合は、シフト量ＳはＳ＝３２−（ｋ−２）により算出される。従って、図５の例では、ｋ＝３０であるから、シフト量ＳはＳ＝３２−（３０−２）＝４となる。
【００６９】
図３のフローチャートに戻り、シフト量Ｓが設定されると、被除数メモリ３３２に記憶された被除数のビット番号「１」以降の各ビットデータＢ1，Ｂ2，…がＳビット分だけ右側に（下位の桁方向に）シフトされるとともに、桁番号「０」から「Ｓ」のビット位置のデータが被除数メモリ３３２のビット番号「０」のデータＢ0（符号ビットのデータ）に置き換えられる（Ｓ５）。これにより（ｅ[n]・ｕ[n-1]）／２mの除算処理は終了する。
【００７０】
図５の例では、シフト量Ｓは「４」であるから、除算結果は、図６に示すように、被除数のビットデータＢ1〜Ｂ27がそれぞれ４ビット分だけ右側にシフトされ、ビット番号０〜４のデータ（桁番号１〜５のデータ）が符号ビットのデータＢ0に置き換えられる。
【００７１】
図２に戻り、第１係数演算部３４では、乗算回路３４１とこの乗算回路３４１の演算結果を保持するデータ保持回路３４３により上記数式（２）の第２項の値（β・ｅ[n]・ｕ[n-1]／２m）を演算する演算器が構成され、加算回路３４２とこの加算回路３４２の演算結果を保持するデータ保持回路３４４により係数ａの更新値ａ[n+1]を演算する演算器が構成されている。
【００７２】
乗算回路３４１には除算演算部３３から除算値（ｅ[n]・ｕ[n-1]／２m）が入力されるとともに、予め設定された係数βが入力され、乗算回路３４１で除算値と係数βとの乗算が行われる。その乗算結果β・（ｅ[n]・ｕ[n-1]／２m）はデータ保持回路３４３に保持されるとともに、加算回路３４２に入力される。加算回路３４２にはデータ保持回路３４４に保持されている前回演算された係数ａ[n]が入力され、加算回路３４２ではこの係数ａ[n]とデータ保持回路３４３からの乗算結果β・（ｅ[n]・ｕ[n-1]／２m）とが加算される。その加算結果β・（ｅ[n]・ｕ[n-1]／２m）+ａ[n]、すなわち、係数ａの更新値ａ[n+1]は、データ保持回路３４４に保持されるとともに、ＩＩＲディジタルフィルタ２に出力される。
【００７３】
第２係数演算部３４では、乗算回路３５１とこの乗算回路３５１の演算結果を保持するデータ保持回路３４２により係数ｄの更新値ｄ[n+1を演算する演算器が構成されている。乗算回路３５１には、予め設定された（ｒ−１）の数値データが入力されるとともに、データ保持回路３４４に保持された係数ａの更新値ａ[n+1]が入力され、乗算回路３５１ではこの係数ａの更新値ａ[n+1]と（ｒ−１）とが乗算される。その乗算結果（ｒ−１）・ａ[n+1]はデータ保持回路３５２に保持されるとともに、ＩＩＲディジタルフィルタ２に出力される。
【００７４】
図７は、浮動小数点法により係数ａ，ｄを演算するＮＬＭＳ演算器３の具体的な回路構成を示す図である。
【００７５】
同図は、図２に示したＮＬＭＳ演算器３の構成図の除算処理部の構成のみが相違している。従って、以下の説明では、除算処理部３３’の構成と処理について説明する。
【００７６】
除算処理部３３’は、分母演算部３１から入力される（ｕ[n]2+ｕ[n-1]2)の演算値を記憶する除数メモリ３３１と、分子演算部３２から入力される（ｅ[n]・ｕ[n-1])の演算値を記憶する被除数メモリ３３２と、除算結果の符合を演算し、その演算結果で被除数メモリ３３２に記憶された被除数の符号ビットを置き換える符号ビット設定部３３５’と除数メモリ３３１に記憶された除数のビットデータと被除数メモリ３３２に記憶された被除数のビットデータとからそれぞれ指数部のビットデータを抽出する指数データ抽出部３３６と、被除数から抽出した指数データと除数から抽出した指数データとを用いて除算値の指数部のデータを算出する指数データ演算部３３７と、被除数メモリ３３２に記憶された被除数の指数部のデータを指数データ演算部３３７で演算された指数データに置換することにより乗算値のデータを生成する除算値データ生成部３３８と、によって構成されている。
【００７７】
除数メモリ３３１及び被除数メモリ３３２はシフトレジスタで構成され、符号ビット設定部３３５’、指数データ抽出部３３６、指数データ演算部３３７及び除算値データ生成部３３８は予め設定された処理プログラム（浮動小数点法により（ｅ[n]・ｕ[n-1]）／２mの演算処理を行うプログラム）を実行する演算回路により構成されている。
【００７８】
図８は、除算処理部３３’の演算理回路により実行される演算処理の処理手順を示すフローチャートである。
【００７９】
除算演算処部３３’で扱われる浮動小数点法の数値データを、例えば３２ビットの２進整数データＤ0Ｄ1Ｄ2…Ｄ31とすると、図９に示すように、左端の１ビットのデータＤ0は符号データ、それよりも右側の８ビット分のビットデータＤ1Ｄ2…Ｄ8は指数部の数値データ、それ以降の２３ビット分のビットデータＤ9Ｄ10…Ｄ31は仮数部の数値データとなっている。
【００８０】
この説明でも、ビットデータＤiの添え字ｉを当該ビットデータＤiを特定するビット番号とする。また、除数と被除数の２進整数データを区別するため、除数の２進整数データをＡ0Ａ1Ａ2…Ａ31と表記し、被除数の２進整数データをＢ0Ｂ1Ｂ2…Ｂ31と表記する。
【００８１】
まず、ビット番号をカウントするカウント値ｉが「０」に設定される（Ｓ１０）。続いて、カウント値ｉが１だけ増加され（Ｓ１１）、除数メモリ３３１に記憶された除数のビット番号「１」のビットデータＡ1と被除数メモリ３３２に記憶された除数のビット番号「１」のビットデータＢ1とが抽出され、それぞれ指数データ抽出部３３６に設けられた図略のメモリに一時記憶される（Ｓ１２）。続いて、カウント値ｉが「９」以上なっているか否かが判別され（Ｓ１３）、ｉ＜９であれば（Ｓ１３：ＮＯ）、ステップＳ１１に戻り、カウント値ｉが１だけ増加され、次のビット番号「２」のビットデータＡ2とビットデータＢ２が抽出される（Ｓ１３）。
【００８２】
以下、ビット番号ｉを１ずつ更新しながら同様の処理が繰り返され、除数メモリ３３１に記憶された除数のビットデータと被除数メモリ３３２に記憶された被除数のビットデータからそれぞれ指数部のビットデータ（Ａ1Ａ2…Ａ8），（Ｂ1Ｂ2…Ｂ8）が抽出される（Ｓ１１〜Ｓ１３のループ）。
【００８３】
指数部のビットデータ（Ａ1Ａ2…Ａ8），（Ｂ1Ｂ2…Ｂ8）の抽出が終了すると（Ｓ１３：ＹＥＳ）、除数の指数部のデータ（Ａ1Ａ2…Ａ8）を１だけ増加したデータ（ａ1ａ2…ａ8）に変更した後（Ｓ１４）、被除数の指数部のデータ（Ｂ1Ｂ2…Ｂ8）から変更後の除数の指数部のデータ（ａ1ａ2…ａ8）を引く減算処理が行われる（Ｓ１５）。この減算処理はデータ（ａ1ａ2…ａ8）の補数を生成し、この補数をデータ（Ｂ1Ｂ2…Ｂ8）に加算することにより行われる。
【００８４】
続いて、図１０に示すように、被除数の指数部のデータ（Ｂ1Ｂ2…Ｂ8）がステップＳ１５で算出された減算値のデータ（Ｃ1Ｃ2…Ｃ8）の置き換えられる（Ｓ１６）。これにより（ｅ[n]・ｕ[n-1]）／２mの除算処理は終了する。
【００８５】
なお、上記実施形態では、数式（２）の除算部分の分子を（ｅ[n]・ｕ[n-1]）としているが、分子はこれに限定されるものではなく、分子の項（β・ｅ[n]・ｕ[n-1]）を構成する３つの要素のうち、１の要素または任意の組み合わせによる複数の要素の積を被除数とすることができる。例えば除算処理部３３で（β・ｅ[n]・ｕ[n-1]）／２mの除算処理を行わせるようにしてもよい。
【００８６】
上記のように、本実施形態に係る適応型ディジタルフィルタ１のＮＬＳＭ演算器３は、ＩＩＲディジタルフィルタ２の通過周波数ｆoを決定する係数ａの更新値ａ[n+1]を求める数式（１）の除算部分の分母（ｕ[n]2＋ｕ[n-1]2）を、当該分母（ｕ[n]2＋ｕ[n-1]2）を越える最小の２mに置き換えた演算式（２）に変更し、この演算式（２）により係数ａの更新値ａ[n+1]を求めるようにしているので、ＮＬＳＭ演算器３の除算回路が簡単になり、回路の小型化、演算処理の迅速化を図ることができる。
【００８７】
特に、固定小数点法により係数ａの更新値ａ[n+1]を演算する場合は、被除数のビットデータを２mの指数ｍだけビットシフトするだけで除算値を求めることができるので、シフトレジスタとビットシフタとにより簡単に除算回路を実現することができる。また、浮動小数点法により係数ａの更新値ａ[n+1]を演算する場合は、被除数の指数部のデータから除数の指数部のデータを引いた減算値により被除数の指数部のデータを置き換えるだけで除算値を求めることができるので、減算回路とビットデータ変更回路により簡単に除算回路を実現することができる。
【００８８】
なお、上記実施形態では、適応型ディジタルフィルタとして、ＩＩＲディジタルフィルタを用いた場合について説明したが、本発明はこれに限定されず、係数ａの更新値ａ[n+1]が上記数式（１）のように、前回の係数ａ[n]と所定の除算値との加算演算によって係数ａの更新値ａ[n+1]が求められるディジタルフィルタであれば、ＦＩＲ（finite impulse response）ディジタルフィルタにも適用することができる。
【００８９】
また、上記実施形態では、ディジタフィルタの通過させる特定の周波数を決定する係数ａの更新値ａ[n+1]の演算式について説明したが、本発明は、一般にａ[n+1]=ａ[n]＋β・ｅ[n]・ｑ[n]／ｐ[n]（β：０〜２の範囲の係数、ｅ[n]：フィルタ入力とフィルタ出力との誤差、ｑ[n]，ｐ[n]：所定の演算式）の形で演算されるディジタルフィルタ２の任意の係数に適用することができる。従って、例えば係数ｃがｃ[n+1]=ｃ[n]＋β・ｅ[n]・ｑ[n]／ｐ[n]の演算式で更新される場合は、係数ｃの演算回路に適用することができる。
【００９０】
次に、本発明に係る適応型ディジタルフィルタの適用例について説明する。
【００９１】
適応型ディジタルフィルタは、入力される交流信号のうち、特定の単一の周波数の交流信号のみを通過させるように係数ａ[n]が自動的に変化させられるので、実質的に特定の周波数に追従し、その周波数のみを抽出するフィルタとなる。これは、交流信号が伝送されている信号ラインにおいて、特定の周波数の交流信号のみを検出する場合に適用することができる。
【００９２】
例えば、図１１に示すように、高周波電源装置６からインピーダンス整合装置７を介してプラズマチャンバー９に高周波を供給し、このプラズマチャンバー９で半導体ウェハのプラズマエッチングを行うプラズマ処理システムにおいては、インピーダンス整合装置７とプラズマチャンバー９との間に電圧／電流測定装置８が設けられ、この電圧／電流測定装置８によりプラズマチャンバー９の入力端における高周波の電圧信号と電流信号とが測定されるようになっている。
【００９３】
このプラズマ処理システムでは、例えば高周波電源装置６から単一の周波数（例えば１３．５６ＭＨｚ）の高周波電力が出力され、インピーダンス整合装置７を介してプラズマチャンバー９に供給されるが、近年では高周波電力の周波数を１３．５６ＭＨｚに固定せず、例えば±２ＭＨｚの範囲で変換させるものもある。また、プラズマチャンバー９側から高周波電源装置６側に例えば２ＭＨｚの高周波を供給させる処理システムもある。
【００９４】
このように、高周波電源装置６から供給される高周波電力の周波数が変化する場合は、高周波の周波数の変化に対応して検出対象の周波数に追従する電圧／電流測定装置８が必要となるが、本発明に係る適応型ディジタルフィルタを適用すれば、簡単な回路構成で周波数追従型の電圧／電流測定装置８を容易に実現することができる。また、２種類以上の周波数の信号を検出する場合にも、検出周波数の異なる２種類の適応型ディジタルフィルタを用いれば、２周波以上の信号を検出可能な周波数追従型の電圧／電流測定装置８を簡単に実現することができる。
【００９５】
図１２は、本発明に係る適応型ディジタルフィルタを適用した電圧／電流測定装置８のブロック構成図、図１３は、ディジタル信号処理部のブロック構成図である。
【００９６】
電圧／電流測定装置８は、図１２に示すように、主として交流電圧信号を検出する電圧検出部８１ａとアナログの交流電流信号を検出する電流検出部８１ｂとからなるアナログ信号処理部８１とこのアナログ信号処理部８１から出力されるアナログ信号（交流電圧信号と交流電流信号）をディジタル信号に変換して交流電圧信号の実効値Ｖrmsと交流電流信号の実効値Ｉrmsと位相差φ（交流電圧信号と交流電流信号との位相差）を算出するディジタル信号処理部８２とで構成されている。
【００９７】
電圧／電流測定装置８は、例えば１３．５６ＭＨｚと２ＭＨｚの２つの周波数の交流電流信号と交流電流信号とをそれぞれ測定することができるようになっている。このため、ディジタル信号処理部８２は、図１３に示すように、１３．５６ＭＨｚ用のディジタル信号処理部８２Ａ（以下、第１ディジタル信号処理部８２Ａという。）と２ＭＨｚ用のディジタル信号処理部８２Ｂ（以下、第２ディジタル信号処理部８２Ｂという。）を備えている。第１ディジタル信号処理部８２Ａは、アナログ信号処理部８１から入力されるアナログ信号をディジタル信号に変換するＡ／Ｄ変換部８２１、Ａ／Ｄ変換部８２１から出力されるディジタルの交流信号から所望の周波数の交流信号を抽出するディジタルフィルタ８２２、交流電圧信号の実効値Ｖrmsを演算するＲＭＳ演算器８２３、交流電流信号の実効値Irmsを演算するＲＭＳ演算器８２４及び交流電圧信号と交流電流信号との間の位相差φを演算する位相差演算器８２５により構成されている。第２ディジタル信号処理部８２Ｂも第１ディジタル信号処理部８２Ａと同一の構成を有している。
【００９８】
Ａ／Ｄ変換部８２１は、交流電圧信号に対するＡ／Ｄ変換回路８２１ａと交流電流信号に対するＡ／Ｄ変換回路８２１ｂを有している。また、ディジタルフィルタ８２２は、交流電圧信号に対して所望の周波数の交流電圧信号を抽出するための適応型ディジタルフィルタ８２２ａと交流電流信号に対して所望の周波数の交流電流信号を抽出するための適応型ディジタルフィルタ８２２ｂとを有している。ここに所望の周波数とは、高周波電源装置６から出力される高周波電源の周波数で、例えばプラズマ処理システムに使用される１３．５６Ｈｚの周波数である。
【００９９】
適応型ディジタルフィルタ８２２ａ，８２２ｂには、図１に示した適応型ディジタルフィルタ１が適用されている。なお、適応型ディジタルフィルタ８２２ａと適応型ディジタルフィルタ８２２ｂの追従する周波数は同一であるから、適応型ディジタルフィルタ８２２ａ，８２２ｂのＮＬＭＳ演算器は共用することができる。従って、ディジタルフィルタ８２２は、例えば図１４に示すように、電流用の適応型ディジタルフィルタ８２２ｂのＮＬＭＳ演算器を削除し、電圧用の適応型ディジタルフィルタ８２２ａのＮＬＭＳ演算器３を電流用の適応型ディジタルフィルタ８２２ｂに共用してＮＬＭＳ演算器３から出力される係数ａの更新値ａ[n+1]及び係数ｄの更新値ｄ[n+1]を電流用のＩＩＲディジタルフィルタ２ｂに入力する構成となっている。
【０１００】
２ＭＨｚ用の第２ディジタル信号処理部８２Ｂの構成も１３．５６ＭＨｚ用の第１ディジタル信号処理部８２Ｂの構成と同様に構成されている。
【０１０１】
なお、本発明に係る周波数追従型の適応型ディジタルフィルタは、入力されたサンプリングデータｘ[n]と出力されるサンプリングデータｙ[n]との誤差を最小にするように係数ａ[n]を収束させて入力される交流信号に追従させるから、２ＭＨｚ用の第２ディジタル信号処理部８２Ｂの適応型ディジタルフィルタ８２２と１３．５６ＭＨｚ用の第１ディジタル信号処理部８２Aの適応型ディジタルフィルタ８２２とに同一の適応型ディジタルフィルタを用いると、両ディジタルフィルタが同一の周波数に追従する可能性がある。すなわち、第１ディジタル信号処理部８２Ａの適応型ディジタルフィルタ８２２も第２ディジタル信号処理部８２Ｂの適応型ディジタルフィルタ８２２も１３．５６ＭＨｚの電圧信号と電流信号を抽出したり、２ＭＨｚの電圧信号と電流信号を抽出したりする可能性がある。
【０１０２】
そこで、本実施形態では、適応型ディジタルフィルタ８２２の係数ａ[n]の収束値に制限を設けることにより、第１ディジタル信号処理部８２Ａの適応型ディジタルフィルタ８２２は１３．５６ＭＨｚに追従し、第２ディジタル信号処理部８２Bの適応型ディジタルフィルタ８２２は１３．５６ＭＨｚに追従するようにしている。
【０１０３】
図１５は、係数ａ[n]の収束値に制限を設けたＮＬＭＳ演算器３の一例を示す回路構成図である。
【０１０４】
同図に示すＮＬＭＳ演算器３’は、図２に示すＮＬＭＳ演算器３において、第１係数演算部３４のデータ保持回路３４４の後段に係数ａの収束値を制限するリミッタ回路３４５を設けたものである。分母演算部３１、分子演算部３２、除算処理部３３及び第２係数演算部３５の内部回路は同一であるので、図１５では各部の内部回路は省略している。
【０１０５】
リミッタ回路３４５には係数ａの上限値Ａmaxと下限値Ａminが設定されており、データ保持回路３４４に保持される係数ａ[n]の値が上限値Ａmaxと下限値Ａminとの間にある場合に限り、その係数ａ[n]が出力される。すなわち、リミッタ回路３４５からは、Ａmax＜ａ[n]のときはＡmaxが出力され、ａ[n]＜ＡmiｎのときはＡmiｎが出力され、Ａmiｎ≦ａ[n]≦Ａmaxのときはａ[n]が出力される。
【０１０６】
従って、第１ディジタル信号処理部８２Ａに適用される適応型ディジタルフィルタ８２２のリミッタ回路３４５に２ＭＨｚよりも大きい下限値Ａamiｎ、例えばＡamiｎ＝５ＭＨｚを設定し、この下限値Ａaminを第２ディジタル信号処理部８２Ｂに適用される適応型ディジタルフィルタ８２２のリミッタ回路３４５の上限値Ａbmaxを設定しておけば、第１ディジタル信号処理部８２Ａの適応型ディジタルフィルタ８２２は５ＭＨｚよりも大きい周波数にしか追従せず、第２ディジタル信号処理部８２Ｂの適応型ディジタルフィルタ８２２は５ＭＨｚよりも小さい周波数にしか追従しないから、図１６に示すように、第１ディジタル信号処理部８２Ａでは１３．５６ＭＨｚの交流電圧信号と交流電流信号が確実に検出され、第２ディジタル信号処理部８２Ｂでは２ＭＨｚの交流電圧信号と交流電流信号が確実に検出されることになる。
【０１０７】
図１５に示すＮＬＭＳ演算器３’によれば、係数ａの更新値ａ[n+1]の出力段にリミッタ回路３４５を設けるだけで、簡単にディジタルフィルタ２の追従する周波数の範囲を制限することができるから、互いに異なる周波数にそれぞれ追従する複数のディジタルフィルタ２を並列に接続し、各ディジタルフィルタ２でそれぞれ異なる複数の周波数を検出することのできる適応型ディジタルフィルタ１を構成する場合、各ディジタルフィルタ２の入力段にそれぞれフィルタを設けて入力信号の周波数範囲を分ける必要がなく、簡単な回路構成で複数の周波数を検出することのできる適応型ディジタルフィルタ１を実現することができる。
【０１０８】
図１２に示す電圧／電流測定装置８によれば、アナログ信号処理部８１の電圧検出部８１ａによりプラズマチャンバー９の入力端における高周波電源の交流電圧信号が検出され、所定のアナログ信号処理（レベル調整や不要なノイズを除去するフィルタリング処理など）が行われた後、ディジタル信号処理部８２に入力される。ディジタル信号処理部８２では、第１ディジタル信号処理部８２ＡのＡ／Ｄ変換回路８２１ａによりアナログの電圧信号がディジタルの電圧信号（サンプリングデータＶ[n]）に変換された後、適応型ディジタルフィルタ８２２ａで１３．５６ＭＨｚの電圧信号が抽出され、その電圧信号がＲＭＳ演算器８２３と位相差演算器８２５に入力される。また、第２ディジタル信号処理部８２ＢのＡ／Ｄ変換回路８２１ａによりアナログの電圧信号がディジタルの電圧信号（サンプリングデータＶ[n]）に変換された後、適応型ディジタルフィルタ８２２ａで２ＭＨｚの電圧信号が抽出され、その電圧信号がＲＭＳ演算器８２３と位相差演算器８２５に入力される。
【０１０９】
また、アナログ信号処理部８１の電流検出部８１ａによりプラズマチャンバー９の入力端における高周波電源の交流電流信号が検出され、上述と同様の所定のアナログ信号処理が行われた後、ディジタル信号処理部８２に入力される。ディジタル信号処理部８２では、第１ディジタル信号処理部８２ＡのＡ／Ｄ変換回路８２１ｂによりアナログの電流信号がディジタルの電流信号（サンプリングデータＩ[n]）に変換された後、適応型ディジタルフィルタ８２２ｂで１３．５６ＭＨｚの電流信号のみが抽出され、その電流信号がＲＭＳ演算器８２４と位相差演算器８２５に入力される。また、第２ディジタル信号処理部８２ＢのＡ／Ｄ変換回路８２１ｂによりアナログの電流信号がディジタルの電流信号（サンプリングデータＩ[n]）に変換された後、適応型ディジタルフィルタ８２２ｂで２ＭＨｚの電流信号のみが抽出され、その電流信号がＲＭＳ演算器８２４と位相差演算器８２５に入力される。
【０１１０】
そして、第１ディジタル信号処理部８２ＡのＲＭＳ演算器８２３で１３．５６ＭＨｚの交流電圧信号Ｖの実効値Ｖrmsを示すディジタルデータが生成され、ＲＭＳ演算器８２４で１３．５６ＭＨｚの交流電流信号Iの実効値Irmsを示すディジタルデータが生成され、それぞれ外部に出力される。また、位相差演算器８２５で交流電圧信号Ｖと交流電流信号Iとの位相差φが演算され、その演算値を示すディジタルデータが生成され、外部に出力される。
【０１１１】
更に、第２ディジタル信号処理部８２ＢのＲＭＳ演算器８２３で２ＭＨｚの交流電圧信号Ｖの実効値Ｖrmsを示すディジタルデータが生成され、ＲＭＳ演算器８２４で２ＭＨｚの交流電流信号Iの実効値Irmsを示すディジタルデータが生成され、それぞれ外部に出力される。また、位相差演算器８２５で交流電圧信号Ｖと交流電流信号Iとの位相差φが演算され、その演算値を示すディジタルデータが生成され、外部に出力される。
【０１１２】
上記のように、係数ａの更新値ａ[n+1]に上限値若しくは下限値または両制限値を設けるようにしているので、周波数特性の異なる周波数追従型の適応型ディジタルフィルタを容易に実現することができる。従って、複数周波数の交流信号が伝送されるラインに対して各周波数の交流信号をそれぞれ抽出するディジタルフィルタを簡単且つコンパクトに実現することができる。
【図面の簡単な説明】
【０１１３】
【図１】本発明に係る適応型ディジタルフィルタに一実施形態を示すブロック構成図である。
【図２】固定小数点法により係数ａ，ｄの更新値ａ[n+1]，ｄ[n+1]を演算するＮＬＭＳ演算器の具体的な回路構成を示す図である。
【図３】固定小数点法の場合の除算処理部の演算処理の手順を示すフローチャートである。
【図４】演算処理に適用される固定小数点法の３２ビットデータの構成を示す図である。
【図５】除数の３２ビットデータの一例を示す図である。
【図６】図５の例の場合における被除数の３２ビットデータと除算値の３２ビットデータとの関係を示す図である。
【図７】浮動小数点法により係数ａ，ｄの更新値ａ[n+1]，ｄ[n+1]を演算するＮＬＭＳ演算器の具体的な回路構成を示す図である。
【図８】浮動小数点法の場合の除算処理部の演算処理の手順を示すフローチャートである。
【図９】演算処理に適用される浮動小数点法の３２ビットデータの構成を示す図である。
【図１０】浮動小数点法の被除数のビットデータから生成された除算値のビットデータを示す図である。
【図１１】プラズマ処理システムの構成を示すブロック図である。
【図１２】本発明に係る適応型ディジタルフィルタを適用した電圧／電流測定装置のブロック構成図である。
【図１３】ディジタル信号処理部のブロック構成図である。
【図１４】ディジタルフィルタの内部構成を示すブロック図である。
【図１５】係数ａ[n]の収束値に制限を設けたＮＬＭＳ演算器の一例を示す回路構成図である。
【図１６】係数ａの更新値ａ[n+1]の演算部にリミッタ回路を設けることにより２つの適応型ディジタルフィルタの追従周波数を異ならせることを説明するための図である。
【図１７】従来の適応型ディジタルフィルタの構成を示す図である。
【図１８】従来の適応型ディジタルフィルタの係数制御回路の構成を示す図である。
【符号の説明】
【０１１４】
１  適応型ディジタルフィルタ
２  ＩＩＲディジルタフィルタ
３，３’  ＮＬＭＳ演算器
３１  分母演算部
３２  分子演算部
３３  除算処理部
３３１  除数メモリ
３３２  被除数メモリ
３３３  シフト量演算部
３３４  ビットシフト部
３３５，３３５’  符号ビット設定部
３３６  指数データ抽出部
３３７  指数データ演算部
３３８  除算値データ生成部
３４  第１係数演算部
３４５  リミッタ回路
３５  第２係数演算部
６  高周波電源装置
７  インピーダンス整合装置
８  電圧／電流測定装置
８１  アナログ信号処理部
８２  ディジタル信号処理部
８２１  Ａ／Ｄ変換部
８２２  ディジタルフィルタ
８２３  ＲＭＳ演算器（電圧用）
８２４  ＲＭＳ演算器（電流用）
８２５  位相差演算器
９  プラズマチャンバー
【図１】
2005229312.tif 000005
【図２】
2005229312.tif 000006
【図３】
2005229312.tif 000007
【図４】
2005229312.tif 000008
【図５】
2005229312.tif 000009
【図６】
2005229312.tif 000010
【図７】
2005229312.tif 000011
【図８】
2005229312.tif 000012
【図９】
2005229312.tif 000013
【図１０】
2005229312.tif 000014
【図１１】
2005229312.tif 000015
【図１２】
2005229312.tif 000016
【図１３】
2005229312.tif 000017
【図１４】
2005229312.tif 000018
【図１５】
2005229312.tif 000019
【図１６】
2005229312.tif 000020
【図１７】
2005229312.tif 000021
【図１８】
2005229312.tif 000022