(57)【特許請求の範囲】
【請求項１】
エンジン騒音に同期したエンジンパルスにてキャンセル信号を生成する適応フィルタを有し、当該生成されたキャンセル信号に基づいて自動車の車室等における閉空間にて前記エンジン騒音を相殺して低減するシステムであって、
前記エンジンパルスが所定間隔よりも短い間隔で入力されると、当該短い間隔で入力された複数のエンジンパルスの内、特定のエンジンパルスについてのみ前記キャンセル信号を生成し、他のエンジンパルスについては前記キャンセル信号を生成することなく読み飛ばすことを特徴とするアクティブ・ノイズ・コントロール・システム。
【請求項２】
前記読み飛ばされたエンジンパルスには、当該読み飛ばされたエンジンパルス直前に生成されたキャンセル信号を複写することを特徴とする請求項１記載のアクティブ・ノイズ・コントロール・システム。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、適応フィルタを用いて自動車、船舶等のエンジン騒音を空間で相殺することにより、当該騒音を低減するアクティブ・ノイズ・コントロール・システム（以下、単にＡＮＣと称する）に関する。
【０００２】
【従来の技術】
従来、このようなＡＮＣにおけるエンジン騒音を低減するキャンセル信号を生成する適応フィルタとしては、前記エンジン騒音に同期したエンジンパルスである参照入力信号及びマイクロホンより抽出されたエラー信号に基づいてキャンセル信号を生成するのである。
【０００３】
【発明が解決しようとする課題】
しかしながら、上記従来のＡＮＣによれば、前記適応フィルタが前記エンジンパルス及びエラー信号に基づいてキャンセル信号を生成するものであるが、当該エンジンの回転数が急速回転すると、当該適応フィルタのタップ間隔が短くなることにより、前記エンジンパルスが所定間隔よりも短くなって、キャンセル信号に不連続点が発生してノイズが生じるといった問題点があった。
【０００４】
本発明は上記問題点に鑑みてなされたものであり、その目的とするところは、エンジンの急速回転時に生成されるキャンセル信号の不連続点によるノイズを防止するアクティブ・ノイズ・コントロール・システムを提供することにある。
【０００５】
【課題を解決するための手段】
上記目的を達成するために本発明は、エンジン騒音に同期したエンジンパルスにてキャンセル信号を生成する適応フィルタを有し、当該生成されたキャンセル信号に基づいて自動車の車室等における閉空間にて前記エンジン騒音を相殺して低減するシステムであって、前記エンジンパルスが所定間隔よりも短い間隔で入力されると、当該短い間隔で入力された複数のエンジンパルスの内、特定のエンジンパルスについてのみ前記キャンセル信号を生成し、他のエンジンパルスについては前記キャンセル信号を生成することなく読み飛ばすことを特徴とする。
【０００６】
【作用】
かかる構成により、急速にエンジン回転数が上がって所定間隔よりも短い間隔でエンジンパルスが入力されると、キャンセル信号を生成する処理がおぼつかなくなって、当該キャンセル信号に発生する不連続点によってノイズが生じるといった事態を打開することができる。
【０００７】
【実施例】
以下、本発明に係るアクティブ・ノイズ・コントロール・システムの実施例について説明する。
【０００８】
車載用アクティブ・ノイズ・コントロール・システム（Ａｃｔｉｖｅ  Ｎｏｉｓｅ・Ｃｏｎｔｒｏｌ  Ｓｙｓｔｅｍ；以下、ＡＮＣと称する）を例に説明する。これは適用フィルタを応用し、エンジン騒音を空間で相殺することにより乗員の頭部付近の騒音を低減するシステムである。
本システムのＡＮＣモードの信号処理上の特徴を列記すると下記のようになる。
【０００９】
１）一括更新型ＳＦＸ−ＬＭＳアルゴリズムを考案し演算量を削減した。
【００１０】
２）不連続音対策、適応フィルタの発散防止、不要な低周波数音の成長防止用としての係数安定化ＦＩＲフィルタ（ＳＴＦ）を採用した。
【００１１】
３）回転数、回転状態感応型、ＳＴＦ、ステップサイズ変更方式を採用。
【００１２】
４）エンジンパルス割り込みによるサンプリングタイミング調整機能の採用。
【００１３】
図１は本実施例の構成を立体的に表わす斜視図である。図１において、エンジン騒音の騒音源であるエンジン１００と、該エンジン１００の回転状態や回転数を検出するエンジンコントロールユニット２００と、当該車内の任意の位置に設置されたスピーカ３００と、各座席の上部に設けて当該車内の騒音を収音するマイクロホン４００と、該ＡＮＣ全体を制御するＡＮＣコントローラ５００とを有している。
【００１４】
図２にＡＮＣモードのブロック図を示す。ＳＰ１〜４はキャンセル音出力用スピーカであり、ＭＩＣ１〜４はエラーマイクロホンである。
【００１５】
Ｃ１１〜４４はスピーカＳＰ１〜４、マイクロホンＭＩＣ１〜４間の伝達関数であり、Ｃｈａｔ１１〜４４はシステム同定により推定されたスピーカＳＰ１〜４、マイクロホンＭＩＣ１〜４間の伝達関数である。
【００１６】
「ＡＤＳＧ１〜４」は適応フィルタ（キャンセル信号発生器）［Ａｄａｐｔｉｖｅ  Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｇｅｎｅｒａｔｏｒ）であり、従来より一般的に使用されているものである。
【００１７】
「ＳＴＦ」はＡＤＳＧ係数安定化ＦＩＲフィルタ、「ＵＰＦ」は一括更新型ＳＦＸ−ＬＭＳ係数更新用ＦＩＲフィルタ、「ＳＳ１」はステップサイズ１、各パスごとにかかる固定のステップサイズ、「ＳＳ２」はステップサイズ２であり、回転数、回転状態により変化するステップサイズである。
【００１８】
Ｗ１（ｎ）〜Ｗ４（ｎ）は更新前のＡＤＳＧ係数である。１１はＡＤＳＧ１〜４から出力された出力値の位相を反転させる位相反転部である。１０は監視手段及び制御手段であるエンジン回転数・回転状態判断部である。尚、ＥＮＧＩＮＥＰＵＬＳＥはＡＤＳＧ１〜４及びエンジン回転数・回転状態判断部１０に入力されるエンジン回転数に同期したパルスである。
【００１９】
このシステムは図１に示すように１個のエンジン１００を騒音源とし、４個のエラーマイクロホン４００と４個のスピーカ３００を使うＣＡＳＥ（１，４，４）である。
【００２０】
では、次に図２に示すブロック図の動作について簡単に説明する。
【００２１】
エンジン騒音とスピーカＳＰ１〜４より発せられるキャンセル信号の和を、マイクロホンＭＩＣ１〜４で取り込みエラー信号とする。そして、推定した伝達関数（Ｃｈａｔ）を逆並べ（Ｄａｔａ  Ｒｅｖｅｒｓｅ）した数値とエラー信号の畳み込み演算を行う。これが一括更新型ＳＦＸ−ＬＭＳの特徴である。このＦＩＲフィルタをＵＰＦと呼ぶ。（このＳＦＸ−ＬＭＳについての詳細は後述する）。さらに、畳み込んだ値にステップサイズ１を乗算する。
【００２２】
ステップサイズ１の乗算した結果を各マイクロホンＭＩＣ１〜４入力毎に加算し、エンジン回転数、回転状態に応じたステップサイズ２（ＳＳ２）を乗算する。これが、エンジン回転数、回転状態感応型ステップサイズ変更方式である。また、この計算結果が、ＡＤＳＧ係数の更新値である。
【００２３】
現在のＡＤＳＧ係数［Ｗ１（ｎ）］〜［Ｗ４（ｎ）］に更新値を、それぞれ加算する。
【００２４】
その加算結果を安定させるために、ＳＴＦでフィルタリングし、その結果を新しいＡＤＳＧ係数［Ｗ１（ｎ＋１）］〜［Ｗ４（ｎ＋１）］とする。ＳＴＦの特性はエンジン回転数、回転状態により変化する。これが回転数感応型ＳＴＦ変更方式である。
【００２５】
さらにＡＤＳＧから出力された信号の出力値の位相を位相反転部１１により反転させる。そして、スピーカＳＰ１〜ＳＰ４より出力する。以上がＡＮＣモードの基本動作である。
【００２６】
次にＦｉｌｔｅｒｅｄ−Ｘ  ＬＭＳについて説明する。
【００２７】
通常のＦｉｌｔｅｒｅｄ−Ｘ  ＬＭＳでは、３次元空間のＡＮＣを実現する場合、消音したい信号（騒音）に相関性のある信号を参照信号として取り込む。この場合の信号処理アルゴリズムを図３に示す。これが一般的なＦｉｌｔｅｒｅｄ−Ｘ  ＬＭＳのアルゴリズムである。
【００２８】
このＦｉｌｔｅｒｅｄ−Ｘ  ＬＭＳの係数更新式を（数１）、（数２）に示す。
【００２９】
【数１】
0003591870.tif 000002
【００３０】
【数２】
0003591870.tif 000003
但し、ここでｗは適応フィルタ係数、ｉはフィルタ係数の番号、μはステップサイズ、ｅはエラー記号、ｒは伝達関数補正用フィルタ出力信号、Ｃはマイクロホンとスピーカとの間の伝達関数、Ｘは参照入力信号、ｊはＣのインパルス応答の番号、ｋはＣのタップ数である。
【００３１】
（数２）がＦｉｌｔｅｒｅｄ−Ｘの特徴である空間（スピーカ〜マイクロホン間）の伝達関数Ｃと入力データＸの畳込み演算である。
【００３２】
ここで参照入力に次式のようなインパルスを入力したとする。ただし、このインパルスは消音対象ある周期性騒音に同期して繰り返される。
【００３３】
Ｘ（０）＝１
Ｘ（ｉ）＝０          ｉ＜０  ｉ＞０
上記式の条件を満たすということは、次式が成り立つ。
【００３４】
ｎ＝ｊ→Ｘ（ｎ−ｊ）＝１
ｎ≠ｊ→Ｘ（ｎ−ｊ）＝０
すると（数２）は次式になる。
【００３５】
ｒ（ｎ）＝ｃｎ
すなわち、ｒ（ｎ）は伝達関数Ｃのインパスルレスポンスｃｎ  を順次出力することであり、畳込み演算を必要としない。フィルタＷに関しても、これと同様に畳込み演算をせずにフィルタ係数ｗｉを順次出力すればよく、演算量を大幅に削減できかつ、図３のような通常のＦｉｌｔｅｒｅｄ−Ｘの参照入力にパルスが入力した場合と演算結果は等価である。これがＳｙｎｃｈｒｏｎｉｚｅｄ  Ｆｉｌｔｅｒｅｄ−Ｘ（ＳＦＸ）アルゴリズムである。
【００３６】
次に、一括更新型ＳＦＸ−ＬＭＳについて説明する。
【００３７】
ＳＦＸでは（数１），（数２）は、（数３）になる。
【００３８】
【数３】
0003591870.tif 000004
従来のアルゴリズムでは図３（Ｈ部）の様に（数３）をｋ＋１回、１サンプルで更新していた。従って、フィルタＷの係数ｗｉ  の更新が完了するためには、Ｃのタップ数であるｋ＋１回分更新しなければならない。この説明を図４を使い説明する。（数３）を図式化したものが図４である。縦に並ぶｅとｃが（数３）の右辺第２項の乗算を示す。これは、Ｃを８タップ（ｋ＝７）とし、参照入力のパルスが２２サンプル目に入力した場合の例であり、縦軸がサンプル数（ｎ）、横軸がフィルタＷのタップ番号（ｉ）である。Ｐ１、Ｐ２、Ｐ３はポインタの位置を示している。これらポインタについては後で説明する。
【００３９】
例えば、１１サンプル目のｗｉを更新する場合を考える。従来型のＳＦＸ−ＬＭＳアルゴリズムでは（数３）に従い、ｗ１９からｗ１２までの８個の係数を更新する（図４の点線で囲んだ部分の演算）。この処理でｗ１２の更新は終了する。
【００４０】
次にｗ１２に着目すると、このタップは、４サンプル目から更新が始まり、１１サンプル目で更新が終了する。更新が完了したｗ１２´は（数４）の様に示される。
【００４１】
【数４】
0003591870.tif 000005
尚、（ｗｉ´）はｗｉの更新が完了していることを示す。
【００４２】
（数４）を一般式に直すと（数５）で表される。
【００４３】
【数５】
0003591870.tif 000006
（数５）式の右辺第２項はエラー信号と伝達関数Ｃの係数ｃｊを逆並べした係数との畳込み演算である。（図４の実線で囲んだ部分の演算を示す。）（数５）は、従来の（数３）をｋ＋１回演算するのと比べ、乗算、減算ともｋ＋１回削減することができる。
【００４４】
また、ＤＳＰの特徴として、畳込み演算を得意とするアーキテクチャを採用しいるため、実際は、削減された演算数以上に、演算結果を短縮することができる。
【００４５】
これが、一括更新型ＳＦＸ−ＬＭＳアルゴリズムである。図２のＵＰＦがこの一括更新型ＳＦＸ−ＬＭＳによる更新係数演算部であり、処理としては、伝達関数Ｃを推定したＣｈａｔのインパルスレスポンスを逆並べした数列を係数とするＦＩＲフィルタである。
【００４６】
なお、図４において、Ｐ１は係数出力用ポインタである。ポインタはフィルタ係数（ｗ）上をサンプルごとにインクリメントされる。ＳＦＸなので畳込み演算を行わず、Ｐ１の示すデータｗｉを出力すればよい。また、このポインタは、参照入力にパルスが入力するとｗ０  に戻る。すなわち適応フィルタのタップ数が可変である。Ｐ２は一括更新する係数ｗを示す係数更新用ポインタである。Ｐ３はＳＴＦ出力をＡＤＳＧに格納するポインタである。
【００４７】
次にＡＤＳＧ係数安定化ＦＩＲフィルタ（ＳＴＦ）について説明する。
【００４８】
本システムの適応フィルタが不安定になる条件としては、次のようなことが考えられる。
【００４９】
１）騒音の周波数帯域をスピーカＳＰ１〜４の特性がカバーできない場合、フィルタ係数が発散する。例えば、騒音の周波数が５０Ｈｚで、スピーカＳＰ１〜４が５０Ｈｚのような低域を発生できない場合、適応フィルタは５０Ｈｚの信号を生成するが、エラー信号は減少しないために、適応フィルタが発散してしまう。
【００５０】
２）Ｆｉｌｔｅｒｅｄ−Ｘ  ＬＭＳの特性として、高音域が発散しやすい。
【００５１】
３）マイクロホンＭＩＣ１〜４入力に何かの理由でオフセットがかかった場合、適応フィルタにもＤＣ成分が重畳してしまう。
【００５２】
４）エンジン回転数が変化した場合、適応フィルタの出力に不連続点が生じてしまう。
【００５３】
これらの問題点を解決する方法として、フィルタ係数安定化フィルタ（ＳＴＦ）を採用した。
【００５４】
このフィルタ係数安定化フィルタの原理について説明する。
【００５５】
一括更新型ＳＦＸ−ＬＭＳアルゴリズムにより更新される値を直線位相のＦＩＲフィルタでフィルタリングする。このＦＩＲフィルタの特性は基本的にはバンドパスフィルタとし、スピーカＳＰ１〜４の再生できない低音域と、空間で消音できない高音域の更新をカットする。このフィルタにより、低音域や高音域の発散を防止し、また、エンジン回転数が変化した場合の不連続音の発生を減少させることができる。
【００５６】
ＳＴＦに直線位相のＦＩＲフィルタを使うことで、位相状態は保たれたまま周波数のフィルタリングが可能となる。このＳＴＦによる遅延はタップ数の半分のサンプル数となるため、その時間経過後に、適応フィルタの更新を行わなければならない。
【００５７】
この説明を図４を使い説明する。ＳＴＦを７タップのＦＩＲフィルタとした場合、フィルタリングされた結果は、３サンプル後に出力される。従って、（数５）の結果であるｗｉ´（ｎ＋１）をフィルタリングした値は、３サンプル後に更新すれば良い。Ｐ３が更新されるアドレスである。
【００５８】
次に回転数、回転状態感応型ステップサイズ、ＳＴＦ変更方式について説明する。
【００５９】
ＳＦＸアルゴリズムの欠点として、その構造上、エラー信号の影響が直接出力信号に反映される。言い換えると、エラー信号に参照入力と相関性のない信号が入力した場合、出力信号にその相関性のない信号が重畳されてしまっていた。
【００６０】
本システムのようなＡＮＣの場合、エラーマイクロホンに向かって声を発する等のことを行うと、スピーカよりエコーが発生する場合がある。このような対策として、ステップサイズを小さくし、更新量を小さくすることでエコーを抑える方法があるが、この処理は、システムの性能を劣化させてしまう。
【００６１】
従来は、これらのバランスを考えてステップサイズを決定していた。その結果、エンジンの加減速に追従する性能を出すことができなかった。
【００６２】
また、もう一つの問題として、アルゴリズムの構成上、加減速時にキャンセル信号に不連続点が発生する場合がある。その対策として、ＳＴＦを付加したが、単一の特性では効果的に不連続音を低減させることができなかった。
【００６３】
そこで、本実施例においてはエンジン回転数、回転状態を監視し、これによりステップサイズ、ＳＴＦを変更することで、前記の問題点が緩和させた。
【００６４】
この方式の原理について説明する。
【００６５】
エンジン回転数、回転状態をＤＳＰを使い監視し、それにより、ステップサイズ、ＳＴＦを制御させた。回転数は低回転、中回転、高回転の３段階に、回転状態は、定常回転、加速、減速、急減速の４段階に分け、これらの組み合わせの計１２通りの場合分けを行い、夫々に最適なステップサイズ、ＳＴＦの係数を図示せぬ記憶手段であるメモリに記憶しておき、当該メモリから夫々を選択した。
【００６６】
図５にエンジン回転数、回転状態に対するステップサイズ、ＳＴＦの例を、図６にＳＴＦの周波数特性を示す。例えば、加減速時は、不連続点が発生しやすいため、ローパス・フィルタのカットオフ周波数を低く設定する。この時のカットオフ周波数は、２００〜４００Ｈｚが適当である。また騒音の変化に対する追従性を上げるため、ステップサイズを大きく設定する。
【００６７】
対して、定常回転時は、なるべく高い周波数まで消音するため、ローパス・フィルタのカットオフ周波数を高くし、エコーを抑えるために、ステップサイズを小さくする。ギアチェンジ等の急減速時は、適応処理が追従できないとして、ＡＤＳＧの係数をすべてクリアする。なお、図５、図６は説明のための例であり、この値にとらわれるものではない。
【００６８】
次にエンジンパルス割り込みによるサンプリングタイミング調整機能について説明する。
【００６９】
本システムのアルゴリズム（一括更新型ＳＦＸ−ＬＭＳ）は適応フィルタのタップ長をエンジン回転数により変化させる可変タップアルゴリズムである。適応フィルタのタップ長はエンジン二回転の周期に一致させるのであるが、これは、サンプリング周期を単位として離散的になる。従って、従来の方法では騒音の周期とキャンセル音の周期を正確に一致させることができず、ビート音を発生するという問題があった。
【００７０】
そこで、この対策として、エンジンパルスをサンプリング周期の基準とし、強制的に騒音の周期とキャンセル音の周期とを一致させる。この動作を図６に示す。
【００７１】
具体的には、エンジンパルスをＤＳＰの外部割り込みに入力し、エンジンパルスにサンプリング周期（ＡＤ，ＤＡコンバータのタイミング）を同期させる。エンジンパルスが入力されると、図７のＮ番目のサンプルの処理を中断し、新たなサンプリングを開始する。これにより、エンジンパルス入力時のみ疑似的にサンプリング周波数が高くなることになり、ビート音の発生を抑えることができる。
【００７２】
また、先に前記フィルタ係数安定化フィルタ（ＳＴＦ）の原理説明にて説明したように、いかなる場合であれ、図４に示すように係数出力用ポインタＰ１と係数更新用ポインタＰ２との間隔は、ＦＩＲフィルタ（ＵＰＦ）のタップ数分であり、係数更新用ポインタＰ２とＳＴＦの出力結果をＡＤＳＧに格納するポンイタＰ３との間隔は、前記ＳＴＦのタップ数の半分であり、このような各ポインタ間の間隔におけるＳＴＦ及ＵＰＦのタップ数における因果律は不変である。
【００７３】
また、前記係数出力用ポインタＰ１から係数を出力した結果、係数更新用ポインタＰ２の係数が算出され、当該係数更新用ポインタＰ２の係数をＳＴＦに入力した結果、ポインタＰ３にて前記算出された値がＡＤＳＧに格納される。
【００７４】
ところが、エンジンの回転数が上がると、当該エンジン回転数に同期したエンジンパルスの間隔が短くなり、係数出力用ポインタＰ１がポインタＰ３を追い抜いてしまう場合が発生する。この場合には、先に説明した各ポインタ間の間隔におけるＳＴＦ及びＵＰＦのタップ数における因果律が満たせなくなり、正確な適応が行えなくなって、ノイズが発生するといった問題があった。
【００７５】
そこで、本発明のアクティブ・ノイズ・コントロール・システムによれば、このような場合に限り、エンジンパルスを一つ無視して、つまり当該一つのエンジンパルスを読み飛ばすことにより、係数出力用ポインタＰ１がポインタＰ３を追い抜いてしまうといった事態の発生を無くすようにしたので、ノイズの発生を防止することができる。
【００７６】
また、エンジンパルス間隔で、騒音が繰り返されるので、キャンセル音も繰り返される。そこで、はじめのエンジンパルス間隔分のキャンセル信号を読み飛ばされたエンジンパルス以降に複写することにより、不連続音に対しより一層の効果を上げることができる。
【００７７】
【発明の効果】
上記のように構成された本発明のアクティブ・ノイズ・コントロールシステムによれば、急速にエンジン回転数が上がって所定間隔よりも短い間隔でエンジンパルスが入力されると、キャンセル信号を生成する処理がおぼつかなくなって、キャンセル信号に発生した不連続点によってノイズが発生するといった事態を打開することができる。
【図面の簡単な説明】
【図１】本実施例の構成を立体的に表わした斜視図である。
【図２】ＡＮＣモードの概略を示すブロック図である。
【図３】ＳＦＸ−ＬＭＳの基本的なアルゴリズムを示すブロック図である。
【図４】一括更新型ＳＦＸ−ＬＭＳを図式化した説明図である。
【図５】エンジン回転数、回転状態のチューニング結果を示す説明図である。
【図６】ＳＴＦの係数と特性を示す説明図である。
【図７】エンジンパルス割り込み状態を示す概念図である。
【符号の説明】
ＳＰ１〜４  キャンセル音出力用スピーカ
ＭＩＣ１〜４  エラーマイクロホン
Ｃ１１〜４４  伝達関数
Ｃｈａｔ１１〜４４  伝達関数
ＡＤＳＧ１〜４  適応フィルタ
ＳＴＦ  ＡＤＳＧ係数安定化フィルタ
ＵＰＦ  一括更新型ＳＦＸ−ＬＭＳ係数更新用ＦＩＲフィルタ
ＭＹＵ２  Ｒ  ステップサイズ２
ＥＮＧＩＮＥ  ＰＵＬＳＥ  エンジンパルス
１０  エンジン回転数・回転状態判断部
【図１】
0003591870.tif 000007
【図２】
0003591870.tif 000008
【図３】
0003591870.tif 000009
【図４】
0003591870.tif 000010
【図５】
0003591870.tif 000011
【図６】
0003591870.tif 000012
【図７】
0003591870.tif 000013