(57)【特許請求の範囲】
【請求項１】
受信機の復調信号から、トーン信号成分をアナログ低域濾波器で抽出した後、Ａ／Ｄ変換されたデジタル復調信号を入力とし、デジタル信号処理で所望周波数のトーン信号成分の有無を判定するＣＴＣＳＳ用のトーン信号回路において、
前記デジタル復調信号が入力されるＧｏｅｒｔｚｅｌフィルタと、
前記Ｇｏｅｒｔｚｅｌフィルタの出力の包絡線を検出する包絡線検出器と、
前記包絡線検出器で検出された包絡線の微分値を求める微分器と、
前記微分器から出力された微分値が所定の第１の閾値以上を維持しているときには、有意の大きさの前記トーン信号成分が存在するための第１の必要条件を満たすと判定する第１の判定部とを含むことを特徴とするＣＴＣＳＳ用のトーン信号回路。
【請求項２】
前記デジタル復調信号の入力振幅が既知の値に正規化されている場合に、前記Ｇｏｅｒｔｚｅｌフィルタが初期化されてから、所定の時間以内に前記包絡線の値が所定の第２の閾値を超えた場合には、前記トーン信号成分が存在するための第２の必要条件を満たすと判定する第２の判定部をさらに備えることを特徴とする請求項１記載のＣＴＣＳＳ用のトーン信号回路。
【請求項３】
前記Ｇｏｅｒｔｚｅｌフィルタへの入力信号のサンプリング周波数は、検出すべきトーン信号の周波数の３倍または６倍の周波数であることを特徴とする請求項１または２記載のＣＴＣＳＳ用のトーン信号回路。
【請求項４】
前記Ｇｏｅｒｔｚｅｌフィルタの入力段には、フィルタ出力が、常に非負値となるように、入力デジタル復調信号及びフィルタ状態変数の符号反転を行うバッファを備えることを特徴とする請求項１〜３のいずれか１項に記載のＣＴＣＳＳ用のトーン信号回路。
【請求項５】
前記Ｇｏｅｒｔｚｅｌフィルタが、チョップトリガ入力により指示されたタイミングで出力のスケーリングを行うことを特徴とする請求項３記載のＣＴＣＳＳ用のトーン信号回路。
【請求項６】
前記微分値が所定の第３の閾値以下まで低下するとトーン信号が終了したものと判断して、前記Ｇｏｅｒｔｚｅｌフィルタを初期化して次のトーン検出手続きを始める第３の判定部をさらに備えることを特徴とする請求項１〜５のいずれか１項に記載のＣＴＣＳＳ用のトーン信号回路。
【請求項７】
前記Ａ／Ｄ変換は、前記Ｇｏｅｒｔｚｅｌフィルタへの入力信号のサンプリング周波数とは異なるサンプリング周波数で行われ、該Ｇｏｅｒｔｚｅｌフィルタへはダウンサンプリングが行われて入力信号が与えられ、
前記ダウンサンプリングに伴うエイリアシングを避けるために、ノッチを持つ低次ＦＩＲフィルタから成るＤｅｃｉｍａｔｉｏｎフィルタが介在されることを特徴とする請求項３記載のＣＴＣＳＳ用のトーン信号回路。
【請求項８】
前記Ｇｏｅｒｔｚｅｌフィルタへの入力信号を正規化するリミッタを介在することを特徴とする請求項２記載のＣＴＣＳＳ用のトーン信号回路。
【請求項９】
前記請求項１〜７のいずれか１項に記載のＣＴＣＳＳ用のトーン信号回路をトーンスケルチに用いることを特徴とする無線受信機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、無線受信機においてトーンスケルチ機能を実現する回路等、ＣＴＣＳＳのトーン判定を必要とする装置に用いられるＣＴＣＳＳ用のトーン信号回路およびそれを用いる前記無線受信機に関し、特にＣＴＣＳＳのトーン信号の検出アルゴリズムに関する。
【背景技術】
【０００２】
アナログ無線通信においては、電話音声周波数帯域外の０〜３００Ｈｚの範囲内で、特定の周波数を持つ正弦波により変調された信号（以下トーン変調信号）を、通信相手の指定などの目的に利用することが一般に行われている。例えば、米国においては、ＥＩＡ−６０３により、このトーン変調信号を利用した通信方法（以下ＣＴＣＳＳと呼ぶ）が規定されている。現在標準的に使用されている無線通信機は、ＣＴＣＳＳトーン変調信号を受信開始してから、２５０ｍｓｅｃ以内に、受信信号が５１本あるトーン信号の内のどれにより変調されているかを正確に判定し、それが受信許可されている無線チャンネルに対応するトーンであれば音声部分の復調信号出力を開始し（スケルチを開く）、受信禁止されている無線チャンネルに対応するトーンであれば復調信号出力を停止する（スケルチを閉じる）といった操作を行う、所謂前記トーンスケルチ機能を備えている。また、前記ＥＩＡ−６０３では、復調停止を指示するためのトーン終了信号も規定されており、これを受信した際には、速やかにスケルチを閉じ、復調信号出力を停止する機能も備えている。
【０００３】
そして、現在では、無線機内部において、受信機の復調信号をアナログ低域濾波器（前記の０〜３００Ｈｚの範囲を抽出する）に通した後、Ａ／Ｄ変換し、そのデジタル復調信号をデジタル信号処理することにより、上述のトーンスケルチ機能を実現することが一般的である。このデジタル信号処理のために、マイクロコントローラ（以下ＭＰＵ）、デジタルシグナルプロセッサ（以下ＤＳＰ）、および専用デジタル論理回路などが用いられるが、トーン判定の計算方法の周波数精度が悪くなる程、高ビット幅のデジタル信号を扱う必要が生じ、該計算方法が複雑になる程、複雑なプログラムを高速に実行可能な高性能プロセッサーを利用するか、或いは計算時間の長時間化を許容する必要が生じる。これは、トーン判定に必要なデジタル回路ブロックのコストアップ、および必要な消費電力の増大を意味し、特に移動無線機において不利益をもたらし、望ましくない。
【０００４】
本発明は、前記のトーンスケルチ処理や、ＤＴＭＦなどのトーン判定処理を対象とするものであり、Ａ／Ｄ変換以前の構成、および出力したトーン信号の使用方法などについては、特に問わない。以下には、入力信号中の特定周波数成分の検出、即ちトーン信号検出を行うための簡便な方法として、３つの従来技術を例示する。トーン信号検出を実現するためには、入力信号ｓ（ｔ）中に、特定の既知の検出対象周波数ｆＴを持つトーン信号が存在しているかどうかを判定する必要がある。
【０００５】
そこで第１の従来技術は、典型的な手法であり、前記入力信号ｓ（ｔ）を、通過帯域中心周波数をｆＴとする帯域濾波器（以下ＢＰＦ）に入力し、その出力信号のパワーと入力信号ｓ（ｔ）とのパワーを比較するものである。そして、出力信号のパワーが入力信号ｓ（ｔ）のパワーに比べて、有意な大きさを持っているとトーン信号が存在していると判定し、充分小さいとトーン信号が存在していないと判定する。
【０００６】
しかしながら、デジタル信号処理回路で、通常、このようなＢＰＦは、無限インパルス応答（以下、ＩＩＲ）フィルタとして実装されるが、低消費電力化及び低価格化のために８ビット固定小数点演算により前記ＩＩＲ  ＢＰＦを実現した場合には、以下のような問題点が生じる。第１は、フィルタ演算、パワー計算などのために、サンプリング毎に乗算が少なくとも２，３回以上必要となり、乗算器を持たない８ビットＭＰＵでは計算負荷が重くなるとともに、ＢＰＦに充分なＱ値を持たせるためには、通常８ビット以上のビット幅で数値表現することが必要になると言うことである。第２は、解析的なＢＰＦの伝達関数を８ビット固定小数点ＩＩＲにより近似的に表現した場合、量子化誤差が大きくなり、一般的に、近似ＢＰＦのフィルタ特性のピーク中心が、正確な値、つまり検出対象周波数ｆＴに対して外れた位置に生じると言うことである。トーンスケルチでは、例えば２％以下の誤差でトーン周波数を判別する必要があり、誤判定を避けるためには、ＢＰＦのピーク中心を高精度に検出対象のトーン周波数に合わせておく必要がある。このようにＢＰＦを用いる第１の従来技術では、計算負荷が重く、不正確になり易いことから、高ビット幅で、高速なＭＰＵが必要となり、計算に要する消費電力も大きくなる。
【０００７】
次に、第２の従来技術は、入力信号ｓ（ｔ）を高速フーリエ変換（以下ＦＦＴ）によって周波数領域へ写像し、周波数ｆＴにおける信号成分が入力信号ｓ（ｔ）のパワーに比べて充分な大きさを持つかどうかを判定することで、トーン信号の検出を行うものである。しかし、ＦＦＴは多数回の乗算および加算と、多数の離散周波数を扱うためのバッファを必要とするので、計算負荷が大きいという問題がある。
【０００８】
このため、１９５８年に、Gerald Goertzelによって、離散フーリエ変換（以下ＤＦＴ）を特定の周波数のみについて行うように変形して、計算負荷を軽くし、必要な計算バッファ量を削減した手法が考案された（Goertzelアルゴリズムと呼ばれる）。前記Goertzelアルゴリズムでは、以下のような伝達関数Ｇ（ｚ）で表される、無限大のＱを持ったＩＩＲ  ＢＰＦ  （以下Goertzelフィルタ）を利用する。
【０００９】
【数１】
0005605158.tif 000002
【００１０】
ｆＴ：検出対象周波数（共振周波数）、ｆＳ：サンプリング周波数、Ｎ：サンプリング点数である。なおGoertzelフィルタは、第１の従来技術で述べたＢＰＦとは異なり、所謂安定なフィルタとはなっていないことに留意する必要がある。
【００１１】
ここで、上式（１）の出力は、複素信号となる。Goertzelアルゴリズムでは、連続したＮ個のサンプリング点で表される有限時間長の入力信号を式（１）で表されるGoertzelフィルタに入力し、Ｎ番目の最終サンプリング点における複素出力信号のノルムを計算することで、入力信号中の検出対象周波数ｆＴにおけるフーリエ成分のパワーを見積もる。このため最終サンプリング点以外のサンプリング点については、
【００１２】
【数２】
0005605158.tif 000003
【００１３】
といった形の簡略化したフィルタを使用し、計算量を削減することができる。また、必要に応じて、ＦＦＴと同様に、窓関数を利用してスペクトル漏れを低下させることもできる。さらにまた、Ｎ・ｆＴ／ｆＳが整数となるように、Ｎ，ｆＳを設定することで、Goertzelフィルタのピーク中心を、検出対象周波数ｆＴと正確に一致させ、検出精度を高めることができる。
【００１４】
したがって、このGoertzelアルゴリズムを使用する第２の従来技術では、前述のＢＰＦを使用する方法における第２の問題点は解消され、８ビット固定小数点によっても、充分な精度でトーン検出を行うことができる。また、上述のように最終サンプリング点以外では式（２）の形のフィルタを用いて、２ｃｏｓθによる乗算を、１回のみ行えば出力値が求められる。このため、第１の従来技術における第１の問題点も大幅に緩和される。Goertzelアルゴリズムは、このように少数のトーン信号の検出に適した手法であり、例えばＤＴＭＦ信号検出などに応用されている（例えば、非特許文献１を参照。ただし、この非特許文献１で言うModified Goertzel Algorithmと、本発明で以下に記述しているModified Goertzelフィルタの意味するものは全く異なる）。
【００１５】
しかしながら、このGoertzelアルゴリズムを使用する第２の従来技術にも、以下のような問題点がある。第１に、Goertzelアルゴリズムは、ある有限時間長のサンプル点数Ｎを持つ入力信号に対して、検出対象周波数ｆＴに対応するＤＦＴ  ｂｉｎについて複素周波数成分値のパワーの演算を行い（すなわち、ｆＴを中心に、あるバンド幅Δｆの範囲についてパワーを求め）、最終のＮサンプル目の時点で結果を得るように構成されている。このため、最終サンプリング点においてのみパワー計算を行うように構成したGoertzelアルゴリズムでは、その計算期間中の入力信号の突発的な変化に対して高速に応答することができず、また連続して信号状態を観測することができない。トーンスケルチでは、トーン信号の開始（雑音からトーン信号への遷移）およびトーン信号の停止を、できるだけ速やかに検出することが求められる。ところが、Goertzelアルゴリズムを、例えば２５０ｍｓｅｃの入力信号に対して適用できるように係数を調整すると、２５０ｍｓｅｃ毎にしか検出結果が得られず、高速応答についての要求仕様を満たすことができない。
【００１６】
第２に、Goertzelアルゴリズムにより得られる出力値は、入力信号中の検出対象周波数ｆＴにおける周波数成分のパワーを、サンプリング期間Ｎ／ｆＳの間、積算して得られるエネルギー値に比例する。このため、入力トーン信号のパワーが大きな場合、或いはサンプリング期間が長い場合には、エネルギー値が非常に大きくなり、オーバーフローを起こしてしまう。このことは、連続して長時間復調信号を観測することが求められるトーンスケルチに応用する場合に問題となる。
【００１７】
第３に、式（２）においても乗算１回、さらに最終サンプリング時にパワーを計算するために乗算３回を必要とし、乗算器を持たない８ビットＭＰＵにとっては計算負荷が軽いとは言えない。
【００１８】
一方、上記第２の従来技術の第１及び第２の問題点を解消する手法として、特許文献１およびその改良案と思われる特許文献２において、Ｓ．ＤａｓとＭ．ＭｃＳｈｅａにより述べられているように、連続した入力信号から有限時間長の検出対象信号フレームを抽出するために用いる、サンプリング窓の開始時刻をずらし、かつ前後の信号フレームと重複させてパイプライン処理を行うことで、検出間隔が実質的に短くなるようにする方法（特許文献２のＦｉｇ．６参照）がある。しかしこのパイプライン処理では、必要な計算量が、重複させた分だけ倍増する。また検出間隔を充分短くしようとすると、必要なパイプライン数が非常に大きくなってしまう。例えば、２６０ｍｓｅｃのサンプリング窓を重ねて２０ｍｓｅｃ間隔でトーン検出する場合には、１３本ものパイプラインが必要となり、計算負荷が非常に重くなる。
【００１９】
また、第２の従来技術の第２の問題点を解消する手法として、式（１），（２）において、係数にダンピングファクタを乗ずることで、Ｇ（ｚ）およびＱ（ｚ）の極が単位円の内側に存在するように操作し、無限に連続したトーン信号入力に対しても出力が発散しないようにGoertzelフィルタを安定化する方法がある。しかしこの方法では、特に８ビット固定小数点で表現した場合、修正したGoertzelフィルタのピーク中心を検出対象周波数ｆＴと正確に一致させることは困難となり、またフィルタのＱ値も低下してしまうので、非常に周波数の近接したトーン信号（最近接の場合で２Ｈｚ程度）を区別することが求められるトーンスケルチ判定への応用には適さない。
【００２０】
一方、第３の従来技術は、上記第２の従来技術における第１及び第２の問題点を回避するために、Goertzelアルゴリズムを連続時間で運用できるように改良したものであり、Sliding Goertzel DFTと呼ばれる（例えば、非特許文献２参照）。この手法によれば、あるサンプリング点ｋにおいて、該サンプリング点からＮサンプル過去までの有限長の入力信号ｘ［ｋ−（Ｎ−１）］…ｘ［ｋ］の検出対象周波数ｆＴにおける離散フーリエ変換成分およびそのノルムを計算して出力するという処理を、連続したサンプリング点ｋ，ｋ＋１，・・・について、少ない計算量で行うことができる。このSliding Goertzel DFTでは、以下の伝達関数Ｈ（ｚ）により表されるSliding Goertzelフィルタを用いる。
【００２１】
【数３】
0005605158.tif 000004
【００２２】
ただし、θ、ｋは式（１）と同様に定義され、ｆＴ：検出対象周波数（共振周波数）、ｆＳ：サンプリング周波数、Ｎ：サンプリング点数である。
【００２３】
すなわち、上式（３）は、前述の式（１）の前段に、Ｎ遅延櫛型フィルタを付加した形をしている。ここで、Ｎ個以上の連続したサンプリング点の入力信号をSliding Goertzelフィルタに入力すると、Ｎ番目のサンプリング点以後の出力ｙ［ｋ］は、有限長の入力信号ｘ［ｋ−（Ｎ−１）］・・・ｘ［ｋ］の検出対象周波数ｆＴにおける離散フーリエ変換成分に等しくなる。そして、式（３）から理解されるように、Sliding Goertzel DFTは、Goertzelアルゴリズムをサンプリング毎に実行するよりは低い計算コストで、検出対象周波数ｆＴについてのＤＦＴを連続して算出できる優れた手法となっている。
【００２４】
しかしながら、このSliding Goertzel DFTを使用する第３の従来技術にも、以下のような問題点が存在する。すなわち、Sliding Goertzelフィルタの周波数特性は、式（３）から明らかなように、通常のＤＦＴと同様に、検出対象周波数ｆＴを中心としたｓｉｎｃ関数で表される。このことは、検出対象周波数ｆＴとサンプリング周波数ｆＳとの比ｆＴ／ｆＳが小さくない場合には、フィルタのＱが低くなることを意味する。このため、第１の問題としては、Sliding Goertzel DFTを、低消費電力、つまり低いサンプリング周波数で、高い周波数分解能（例えば前記の２Ｈｚ）のトーン検出を行う必要があるトーンスケルチ判定に応用した場合、雑音耐性や周波数分解能の仕様を満たすことが困難になるということである。これに対して、前述のように第２の従来技術であるGoertzelフィルタは、Ｑが非常に高いという特徴を有している。第２の問題としては、Goertzelフィルタと異なり、サンプリング毎に式（３）の分子の計算を行う必要があり、連続で出力が得られるという長所はあるものの、Goertzelフィルタよりは計算負荷が重くなると言うことである。
【先行技術文献】
【特許文献】
【００２５】
【特許文献１】米国特許第６９５０５１１号明細書
【特許文献２】米国特許公開第２００５／０１０５７１６号明細書
【非特許文献】
【００２６】
【非特許文献１】”Modified Goertzel Algorithm in DTMF Detection Using the TMS320C80” Application Report SPRA066, Chiouguey J. Chen, 1996 Texas Instruments
【非特許文献２】”The Sliding DFT”, Eric Jacobsen and Richard Lyons, IEEE Signal Processing Magazine March 2003, pp.74-79
【発明の概要】
【発明が解決しようとする課題】
【００２７】
本発明の目的は、少ない計算量で高精度なＣＴＣＳＳのトーン検出を行うことができるＣＴＣＳＳ用のトーン信号回路およびそれを用いる無線受信機を提供することである。
【課題を解決するための手段】
【００２８】
本発明のＣＴＣＳＳ用のトーン信号回路は、受信機の復調信号から、トーン信号成分をアナログ低域濾波器で抽出した後、Ａ／Ｄ変換されたデジタル復調信号を入力とし、デジタル信号処理で所望周波数のトーン信号成分の有無を判定するトーン信号回路において、前記デジタル復調信号が入力されるＧｏｅｒｔｚｅｌフィルタと、前記Ｇｏｅｒｔｚｅｌフィルタの出力の包絡線を検出する包絡線検出器と、前記包絡線検出器で検出された包絡線の微分値を求める微分器と、前記微分器から出力された微分値が所定の第１の閾値以上を維持しているときには、有意の大きさの前記トーン信号成分が存在するための第１の必要条件を満たすと判定する第１の判定部とを含むことを特徴とする。
【００２９】
上記の構成によれば、デジタル信号処理でトーンスケルチ判定などを行うトーン信号回路において、通常は、Goertzelアルゴリズムで計算されるのはパワー値であり、Goertzelフィルタに有限長の入力信号を与え、最終サンプリング点における複素出力信号のノルムを計算し、トーン信号の検出確認を行っているのに対して、本発明では、新規な特徴として、前記Goertzelフィルタの出力信号の包絡線の微分値を観測し、微分値が所定の第１の閾値以上を維持しているときには、前記トーン信号成分が連続して存在しているものと判定する。
【００３０】
したがって、包絡線及び微分値の計算には乗算の必要がないので、トーン信号の検出確認を、乗算を行わずに、加算のみで実現し、低い計算コストで行うことができる。また、前記微分値は連続して求めることができるので、スケルチの応答速度を高めることができる。
【００３１】
また、本発明のＣＴＣＳＳ用のトーン信号回路は、前記デジタル復調信号の入力振幅が既知の値に正規化されている場合に、前記Ｇｏｅｒｔｚｅｌフィルタが初期化されてから、所定の時間以内に前記包絡線の値が所定の第２の閾値を超えた場合には、前記トーン信号成分が存在するための第２の必要条件を満たすと判定する第２の判定部をさらに備えることを特徴とする。
【００３２】
上記の構成によれば、前記デジタル復調信号の入力振幅が不明である場合にも、前記の包絡線の微分値のみに基いて判定した場合よりも短時間で、トーン信号の検出を行うことができる。すなわち、前記微分値による判定では、例えばターゲット周波数から２Ｈｚ以下の近接したトーンを２５０ｍｓｅｃ以内に判別することが困難なため、包絡線の大きさを用いた判定が必要になるが、この判定の際に必要となる閾値を決定するために、入力パワーの計算を行うと計算負荷が増加する。そこで、入力振幅を既知の値に正規化しておくことで、振幅の大きさを既定の第２の閾値と比較するだけで、トーン信号成分の有無を判定することができる。
【００３３】
好ましくは、上記の入力信号の振幅規格化にあたって、前記Goertzelフィルタへの入力信号を二値化するリミッタを利用する。
【００３４】
上記の構成によれば、リミッタを通して矩形波化すると、リミッタの出力信号には入力信号の奇数次高調波成分が現れるが、ｎ倍高調波成分のパワーは基本波の１／ｎ２の大きさしか持たない。このため、もし奇数次高調波が検出対象周波数ｆＴに一致するような周波数のトーン信号が入力されたとしても、所定時間以内に検出対象周波数ｆＴに対応する、所謂ＤＦＴ  ｂｉｎに蓄積されるエネルギーは小さい値に止まり、第２の判定部での第２の判定閾値を超える程包絡線の値が大きくはならず、トーン信号が誤検出されることは無い。一方、検出対象周波数ｆＴのトーン信号に加えて、別の周波数のトーン信号を含むような複数トーン入力信号をリミッタで処理すると、検出対象周波数ｆＴの成分の検出が困難となってしまう場合があるが、ＣＴＣＳＳトーンスケルチの場合、１つの無線チャンネルで利用されるトーン信号の数は１つであるので、そのような問題が生じることは無い。
【００３５】
さらにまた、本発明のＣＴＣＳＳ用のトーン信号回路では、前記Ｇｏｅｒｔｚｅｌフィルタへの入力信号のサンプリング周波数は、検出すべきトーン信号の周波数の３倍または６倍の周波数であることを特徴とする。
【００３６】
上記の構成によれば、Goertzelフィルタの伝達関数が、整数係数の簡単な伝達関数となり、乗算を必要とせず、加算のみで出力値を計算可能となり、乗算器の無い小ビット幅のＭＰＵでも、高速且つ正確に、低消費電力でフィルタ処理を実行することができるようになる。
【００３７】
また、本発明のＣＴＣＳＳ用のトーン信号回路では、前記Ｇｏｅｒｔｚｅｌフィルタの入力段には、フィルタ出力が、常に非負値となるように、入力デジタル復調信号及びフィルタ状態変数の符号反転を行うバッファを備えることを特徴とする。
【００３８】
上記の構成によれば、該フィルタ出力の極大ピークの間隔を１／２に狭め、出力信号の包絡線を滑らかにし、該包絡線の微分値に含まれる雑音を低減することができる。
【００３９】
さらにまた、本発明のＣＴＣＳＳ用のトーン信号回路では、前記Ｇｏｅｒｔｚｅｌフィルタが、チョップトリガ入力により指示されたタイミングで内部状態変数のスケーリングを行うことを特徴とする（以下ではこの操作をチョッピングと呼ぶ）。
【００４０】
上記の構成によれば、長時間連続してトーン信号を入力した際に起きるオーバーフローを避けるために、チョップトリガをアサートした時に、状態変数と同じ比率で出力値がスケールダウンされる。
【００４１】
したがって、適切なタイミングで前記チョップトリガをアサートすることで、オーバーフローを起こさずに出力値の包絡線の観測を行うことが可能になる。なお、このチョッピング・スケーリングおよび前記の状態変数を含めた符号反転による出力の正値化を行うために、本発明のGoertzelフィルタは、従来のGoertzelフィルタを変形したものとなり、以下、Modified Goertzelフィルタと言う。
【００４２】
また、本発明のＣＴＣＳＳ用のトーン信号回路は、前記微分値が所定の第３の閾値以下まで低下するとトーン信号が終了したものと判断して、前記Ｍｏｄｉｆｉｅｄ  Ｇｏｅｒｔｚｅｌフィルタを初期化して次のトーン検出手続きを始める第３の判定部をさらに備えることを特徴とする。
【００４３】
上記の構成によれば、トーン終了判定を行うことができる。
【００４４】
さらにまた、本発明のＣＴＣＳＳ用のトーン信号回路では、前記Ａ／Ｄ変換を、前記Ｍｏｄｉｆｉｅｄ  Ｇｏｅｒｔｚｅｌフィルタへの入力信号のサンプリング周波数のＮ倍（Ｎ＞２）以上の周波数で行い、該Ｍｏｄｉｆｉｅｄ  Ｇｏｅｒｔｚｅｌフィルタへは１／Ｎのダウンサンプリングが行われた入力信号を与え、前記ダウンサンプリングに伴うエイリアシングを避けるために、周波数特性に少数のノッチを持つ低次ＦＩＲフィルタから成るＤｅｃｉｍａｔｉｏｎフィルタを利用してもよい。
【００４５】
このDecimationフィルタの周波数特性のノッチ位置が、検出対象周波数ｆＴに対してエイリアシングを起こす周波数と正確に一致していない場合でも、通常、充分なアンチエイリアシング効果が得られる。従って、通常このDecimationフィルタは少数の２の累乗に近い係数を持つＦＩＲフィルタとして構成することが可能であり、乗算を行わずに、少数回の加算とシフト演算によりフィルタ処理を行うことができる。
【００４６】
さらにまた、本発明の無線受信機は、前記ＣＴＣＳＳ用のトーン信号回路をトーンスケルチに用いることを特徴とする。
【発明の効果】
【００４７】
本発明のＣＴＣＳＳ用のトーン信号回路およびそれを用いる無線受信機は、以上のように、デジタル信号処理でトーンスケルチ判定などを行うトーン信号回路において、通常は、Ｇｏｅｒｔｚｅｌアルゴリズムで計算されるのはパワー値であるのに対して、本発明では、新規な特徴として、Ｍｏｄｉｆｉｅｄ  Ｇｏｅｒｔｚｅｌフィルタとして、その出力信号の包絡線の微分値を観測し、微分値が所定の閾値以上を維持しているときには、前記トーン信号成分が連続して検出されていると判定する。
【００４８】
それゆえ、トーン信号の開始及び終了の検出確認を、乗算を行わずに、加算のみで実現し、低い計算コストで、高速に行うことができる。これは特に移動無線機の低消費電力化、回路の簡単化、低コスト化のために有効である。
【図面の簡単な説明】
【００４９】
【図１】本発明の実施の一形態に係るトーンスケルチ判定回路における判定アルゴリズムを説明するためのフローチャートである。
【図２】本発明でGoertzelフィルタとして用いるModified Goertzelフィルタの機能構成を示すブロック図である。
【図３】図４〜図７で示すシミュレーションに使用した入力信号の一部の期間について示すグラフである。
【図４】図１で示すトーンスケルチ判定アルゴリズムによる本件発明者のシミュレーション結果を示すグラフであり、前記Modified Goertzelフィルタの出力信号の時間変化の一部をプロットしたものである。
【図５】前記Modified Goertzelフィルタの出力信号を包絡線検波した結果を示すグラフであり、検出対象周波数に対して入力トーン周波数が一致している状態を示す。
【図６】前記の包絡線信号を微分し、次に低域濾波処理した結果を示すグラフである。
【図７】前記Modified Goertzelフィルタの出力信号を包絡線検波した結果を示すグラフであり、検出対象周波数に対して入力トーン周波数が２Ｈｚ離れている状態を示す。
【図８】本発明の実施の他の形態に係るトーンスケルチ判定回路における判定アルゴリズムを説明するためのフローチャートである。
【発明を実施するための形態】
【００５０】
（実施の形態１）
図１は、本発明の実施の一形態に係るトーンスケルチ判定回路における判定アルゴリズムを説明するためのフローチャートである。この図１において、記入されているフィルタの次数や、サンプリング周波数は、検出対象周波数ｆＴを、ＣＴＣＳＳに規定されるトーン周波数の内で、隣接トーンとのチャンネル間隔が最も狭く検出が困難となる６７Ｈｚに設定した場合の具体例を示すものである。すなわち、６７Ｈｚのトーン周波数の場合、最近接トーンの周波数は６９．３Ｈｚとなっており、このためトーン信号を約２Ｈｚ以下の誤差で、業界の標準的水準として、受信開始から前記２５０ｍｓｅｃ以内に検出できることが求められる。一方、前記ＣＴＣＳＳの規定では、トーン周波数が上がる程、トーンの間隔が広がり、例えば２０３．５Ｈｚのトーンに対しては隣接トーンがほぼ１０Ｈｚ離れており、より容易にトーン検出を行うことができる。
【００５１】
他の検出対象周波数について、この図１のアルゴリズムを適用する場合は、後述するように、Modified Goertzelフィルタのサンプリング周波数、Ａ／Ｄコンバータのサンプリング周波数、およびDecimationフィルタの次数や低域濾波器のフィルタ定数を、検出対象周波数ｆＴに応じて変更する必要がある。
【００５２】
図１の実際のアルゴリズムを説明する前に、本発明の考え方について説明する。本発明は、デジタル復調信号から、デジタル信号処理でトーン検出を行うにあたって、できるだけ計算量を低減するようにしたものである。そして、基本的に、式（２）で表されるGoertzelフィルタの共振器部分を利用したものとなっている。
【００５３】
先ず、前記式（２）で表されるGoertzelフィルタに、その共振周波数θに等しい周波数を持つトーン信号、ｘ［ｎ］＝αｓｉｎ（θｎ）を入力した時の出力信号ｑ［ｎ］を計算すると、
【００５４】
【数４】
0005605158.tif 000005
【００５５】
となる。ここで、ｎ≫１である場合には、
【００５６】
【数５】
0005605158.tif 000006
【００５７】
と近似される。したがって、上式（５）から、出力信号の包絡線は、サンプリング時間ｎＴＳ（ただし、ＴＳはサンプリング周期）に対して線形に増加する関数となることが理解される。
【００５８】
次に、式（２）で表されるGoertzelフィルタに、その共振周波数θと異なる周波数ωを持つトーン信号、ｘ［ｎ］＝αｓｉｎ（ωｎ）を入力した時の出力信号ｑ［ｎ］を計算すると、
【００５９】
【数６】
0005605158.tif 000007
【００６０】
となる。したがって、上式（６）から、出力信号は、（ω＋θ）／２の周波数で振動し、その包絡線は、（ω−θ）／２の周波数で振動し（すなわち、包絡線の絶対値はω−θの周波数で振動する）、その振幅は離調周波数ω−θに反比例することが理解される。
【００６１】
したがって、上式（５）および（６）から、Goertzelフィルタから出力される信号の包絡線の微分値および振幅を観測することで、入力トーン信号の周波数ω（＝ｆＩ）と、検出ターゲット周波数θ（＝ｆＴ）との差である離調周波数ω−θを、見積り可能であることが理解される。本発明は、このような本件発明者の知見に基いて、後述するようなトーンスケルチ判定アルゴリズムを構成している。
【００６２】
次に、本発明で前記Goertzelフィルタとして用いるModified Goertzelフィルタの機能構成を、図２に示す。図２のブロック構成は、基本的な（前記式（２）に対応した）Goertzelフィルタ共振器に、前記の本件発明者の知見に基づく修正を施して構成したアルゴリズムを模式的に示すものである。ただし、本発明のフィルタ処理アルゴリズムは、この図２で示す機能ブロックにより完全には説明することはできない。その充分説明されていない点については、後に数式で定義する。
【００６３】
図２のModified Goertzelフィルタは、入力信号ｘ［ｋ］に、適宜符号反転を行うバッファ１と、出力信号ｑ［ｋ］を１サンプリング周期だけ遅延する２段の遅延バッファ２，３と、それらの遅延バッファ２，３の出力に係数１，−１をそれぞれ乗算（この場合はバッファおよび符号反転バッファとして機能）するバッファ４，５と、バッファ５の入力または出力側（図２では出力側）に介在されるバッファ８と、バッファ４，８の出力を加算する加算器６と、加算器６の出力を前記バッファ１の出力に加算する加算器７と、加算器７の出力に介在され、前記出力信号ｑ［ｋ］を導出するバッファ９とを備えて構成される。そして、バッファ１，４，５が、基本的なModified Goertzelフィルタに対する追加構成であり、バッファ４，５が、ラッチしている状態変数の所定の比率によるスケーリング（チョッピング）を可能にする機能を備える点が主な修正点である。
【００６４】
以下に、前記の本件発明者の知見に基づく修正点を詳しく説明する。先ず第１の特徴として、θ＝２πｆとした時、ｆが有理数であり、尚且つｃｏｓθが有理数となるようなｆを積極的に利用している。そのようなｆは、ｆ［０，１／２］の範囲では、ｆ＝｛０，１／６，１／３，１／２｝しか存在しない。この内、０はサンプリング周波数ｆＳを無限大に設定することを、１／２は検出対象周波数ｆＴをナイキスト周波数に設定することを意味する（式（１）を参照）ので、１／６と１／３とのみが有用な、ｆＴとｆＳとの比となる。その内、エイリアシングフィルタの要求仕様を緩和するためには、１／６の比に設定する方がより望ましい。このため図１においては、ｆＳ＝６ｆＴに設定し（６７Ｈｚ×６＝４０２Ｈｚ）、さらにサンプリング点数Ｎを６の倍数に設定している。この時、ｃｏｓθ＝１／２となり、式（２）は、
【００６５】
【数７】
0005605158.tif 000008
【００６６】
のような、整数係数の簡単な伝達関数となる。従って図２中のバッファ４，５におけるフィルタ係数は、それぞれＣ１＝１，Ｃ２＝−１となっている。なお１／３の比に設定した場合にはｃｏｓθ＝−１／２となり、フィルタ係数は、それぞれＣ１＝−１，Ｃ２＝−１となる。
【００６７】
こうして、本実施の形態のModified Goertzelフィルタでは、第１の特徴によって、乗算を必要とせず、加算のみで出力値を計算可能となり、乗算器の無い８ビットＭＰＵでも、高速、低消費電力でフィルタ処理を実行することができるようになる。なお上記のModified Goertzelフィルタを８ビットＭＰＵ用に実装した場合でも、加算は１６ビット精度で行っており、フィルタ出力は１６ビット固定小数点値となる。更に、式（７）の形のフィルタを用いることで、固定小数点演算に利用するビット幅に依らず、フィルタの量子化誤差が０に抑えられることが理解される。このため、８ビット固定小数点による粗い表現を用いた場合でも、本実施の形態のModified Goertzelフィルタによって、量子化雑音が付加されることは無い。
【００６８】
次に、第２の特徴として、フィルタ出力ｑ［ｋ］が、常に非負値となるように、必要に応じて符号反転を行っている。さらに、第３の特徴として、フィルタ出力値がオーバーフローを起こさないように、出力のチョッピングを行っている。これらの第２および第３の特徴については、図２のブロックダイアグラムのみにより充分に説明することは困難であるので、以下に式を用いて説明する。
【００６９】
先ず、図１で使用されているModified Goertzelフィルタは、入力信号をｘ［ｋ］、チョップトリガ入力信号をｃ［ｋ］、出力信号をｑ［ｋ］とすると、下式で表すことができる。ｋはサンプリング点の番号を表す整数変数である。
【００７０】
【数８】
0005605158.tif 000009
【００７１】
ここで、チョップトリガ入力ｃ［ｋ］は、論理値０，１のみを取る２進信号であり、ｃ［ｋ］の値によって、Ｃ１，Ｃ２は、
【００７２】
【数９】
0005605158.tif 000010
【００７３】
と定義される。Ｃ１，Ｃ２はそれぞれ図２のバッファ４，５のゲインに対応する。なお、式（９）の右辺はｃｏｓθ＝−１／２となるように設定し、チョッピングによるスケーリングの比率を１／２とした場合の数値であり、これ以外の条件の場合にも同様にしてＣ１，Ｃ２を定義することができる。
【００７４】
また、Ｓ１，Ｓ２は、−１と１のみを取る符号反転用の変数であり、Ｓ１は、
【００７５】
【数１０】
0005605158.tif 000011
【００７６】
と定義される。ただしここでｓｇｎは符号関数であり、ｘが０以上の場合にｓｇｎ［ｘ］＝１、ｘが負の場合にｓｇｎ［ｘ］＝−１を与える。つまり、ｑ［ｋ］は、常に正値となる。更にＳ２は、
【００７７】
【数１１】
0005605158.tif 000012
【００７８】
と定義される。また、Ｓ３は、初期値が１の変数であり、Ｓ１の値によって、
【００７９】
【数１２】
0005605158.tif 000013
【００８０】
と定義される。
【００８１】
そして、上式（８）のように定義したModified Goertzelフィルタは、フィルタ出力ｑ［ｋ］が常に非負値となるようにＳ１を用いて必要に応じて符号反転を行っており、しかもフィルタ出力ｑ［ｋ］の負値側が滑らかに連続した形で正値側に折り返されるように、Ｓ２，Ｓ３を用いて、状態変数、入力変数の符号反転も行っている。このような符号反転の操作によって、フィルタ出力ｑ［ｋ］の極大値ピークの間隔を１／２に狭め、出力信号の包絡線をより滑らかにし、該包絡線の微分値に含まれる雑音を低減することができる。また、必要な場合にはフィルタ計算に無符号２進数を用いるようにすることで、フィルタ出力値の表現可能範囲を、例えば符号付１６ビット値［−３２７６８，３２７６７］ではなく、無符号１６ビット値［０，６５５３５］とし、出力信号の包絡線のダイナミックレンジを、［０，３２７６７］から［０，６５５３５］に広げることができる。さらにまた、フィルタ出力値がオーバーフローを起こさないように、Ｃ１，Ｃ２を用いて出力のチョッピングを行っており、適切なタイミングでチョップトリガ信号をアサートすることで、オーバーフロー抑制制御を行うことができる。
【００８２】
ところで、このような出力のチョッピングを行うと、オーバーフローを起こさずに出力値の包絡線の観測を行うことが可能になるが、例えば式（５）に対応する、Modified Goertzelフィルタから出力される信号の包絡線は、チョッピングにより鋸波状の形に変形される。しかしながら、後述するように、出力信号の包絡線の微分を行う際に、チョッピングにより微分値が不連続とならないようにすることは容易である。したがって、前記チョッピングによるオーバーフロー抑制制御を行っても、本実施の形態のModified Goertzelフィルタの出力信号の包絡線の微分値を観測すれば、前記式（５），（６）に基いて、次のようにして、入力トーン信号の周波数ｆＩが検出対象周波数ｆＴに合致するかどうかの判定を連続して行えることが理解される。
【００８３】
すなわち、第１の判定条件では、Modified Goertzelフィルタを初期化してから、所定の時間以内に包絡線の微分値が０以下まで減衰した場合には、ｆＩ≠ｆＴであると判定し、所定の時間の間微分値が第１の正の閾値以上の値を保ち続けた場合には、更に第２の判定条件を適用する。次に、第２の判定条件では、入力信号ｘ［ｋ］の振幅（式（４），（５），（６）のα）が、或る一定値にリミッタ等により規格化されているという前提の下で、Modified Goertzelフィルタを初期化した時点から、所定の時間以内に、包絡線の値が或る第２の閾値を超えた場合には、ｆＩ＝ｆＴであり、超えない場合には、ｆＩ≠ｆＴであると判定する。
【００８４】
なお、Modified Goertzelフィルタに雑音信号のみを入力した場合には、包絡線が乱雑に変化し、その微分値が０以下となる点が数多く発生する。微分値が０以下となると図１のフローチャートに従ってModified Goertzelフィルタが初期化される。また雑音中の、検出対象周波数ｆＴにおける周波数成分のパワーは小さいので、通常、初期化された時点から短時間の間に積算されるエネルギーは僅かな量に止まり、包絡線が第１の閾値を超えるほど充分な大きさの値まで成長することは無い。従って雑音信号入力時に上述の第１および第２の判定条件によって、トーン信号の誤検出が起こることは無い。
【００８５】
一方、前述したように、トーンスケルチでは、トーン信号の終了も、可能な限り速やかに判定することが求められるが、これも以下に説明するように、Modified Goertzelフィルタの出力値の包絡線を観測することによって、実現することができる。先ず、一般的に、或る周波数のトーン信号を用いた通信を終了する際には、トーン終了信号を送信する。そのトーン終了信号としては、（ｉ）トーン終了信号送信開始直前まで送信されていたトーン信号の位相を、トーン信号の振幅が中心値、つまりＤＣ値に等しくなった瞬間にπだけ遅延させた信号と、（ii）トーンの存在しない信号（無変調信号）とのいずれかを、２００ｍｓｅｃの間送信し続けるように規定されている。（ｉ）は、トーン信号のＤＣ値が０である場合には、トーン終了信号送信開始の瞬間に、トーン信号の符号を反転させると言い換えても良い。更に不測の事態として、（iii）突然受信波が中断して雑音のみになる場合があり、トーンスケルチ判定回路は、（ｉ）（ii）（iii）の全ての場合に速やかに終了信号を認識可能なものでなければならない。（ii）（iii）の場合には、トーン終了により雑音信号がModified Goertzelフィルタに入力されることになり、上述のように包絡線の微分値が負となるサンプリング点が頻繁に発生する。
【００８６】
次に、（ｉ）の方法によって与えられるトーン終了信号について終了判定を行う例として、一般性を失うことなく、
【００８７】
【数１３】
0005605158.tif 000014
【００８８】
なるサンプリング点Ｍにおいてトーンが終了され、入力信号ｘ［ｎ］が、
【００８９】
【数１４】
0005605158.tif 000015
【００９０】
によって与えられる場合を考える。ただし、
【００９１】
【数１５】
0005605158.tif 000016
【００９２】
である。
【００９３】
ここで、入力トーン信号の周波数ωが、Modified Goertzelフィルタの共振周波数θに等しい場合について、式（１４）で与えられる入力信号ｘ［ｎ］を、式（２）で与えられるGoertzelフィルタの共振器に入力した時の出力信号ｑ［ｎ］を、式（５）を利用して計算すると、下式が得られる。
【００９４】
【数１６】
0005605158.tif 000017
【００９５】
上式（１６）から、サンプリング点Ｍの前後で、出力信号の包絡線の微分値が、α／２ｓｉｎθから、−α／２ｓｉｎθへと、不連続且つ急激に変化することが理解される。なお、入力トーン信号の周波数ωが、Modified Goertzelフィルタの共振周波数θと正確には一致しない場合にも、このような出力信号の包絡線の微分値の不連続な変化が生じる。したがって、（ｉ）の場合には、トーン終了時に出力包絡線の微分値の急激な減少が観測される。以上のことから、以下のようなトーン信号終了判定条件を与えることができる。
【００９６】
すなわち、第３の判定条件では、包絡線の微分値が、或る第３の閾値以下まで低下した時点でトーン信号が終了したものと判断し、Modified Goertzelフィルタを初期化して次のトーン検出手続きを始めることができる。同時に、包絡線の微分値が或る第３の閾値以上の状態を保ち続けているかどうかを観測することで、ｆＩ＝ｆＴを満たすトーン信号が連続して入力されていることを検出確認することができる。
【００９７】
図１に示した本実施の形態によるトーンスケルチ判定アルゴリズムは、基本的に、上述の第１〜第３の判定基準に従ってスケルチの開閉が行われるように構成したものである。図１のフローチャートを構成している、Modified Goertzelフィルタ以外のブロックについて、以下に簡単に説明する。
【００９８】
先ず、前述のように、受信機の復調信号がアナログ低域濾波処理された後、ステップＳ１では、Ａ／Ｄ変換器においてデジタル信号に変換され、トーンスケルチ回路に対する入力信号を与える。この際、離散時間信号化に使用するサンプリング周波数は、前記アナログ低域濾波器の遮断周波数が低く、次数が高いほど、低く設定することができるが、通常は低コスト化・低消費電力化のために低次のアナログ低域濾波器が使用されることが多く、該サンプリング周波数をある程度高い周波数に設定せざるを得ない。図１の例では、８０４Ｈｚ以上の周波数成分が前記のアナログ低域濾波処理によって充分に除去されていると想定し、１６０８Ｈｚのサンプリング周波数によりアナログ入力信号を８ビットのデジタル信号に変換している。したがって、該デジタル信号には３００Ｈｚ以上の電話音声周波数帯域内に存在する、トーン信号以外の周波数成分も含まれることになる。
【００９９】
一方、前述のように、６７Ｈｚのトーン信号を検出するModified Goertzelフィルタでは、検出対象周波数の６倍の周波数の４０２Ｈｚでサンプリングを行う必要があるので、ステップＳ３で、１６０８Ｈｚから４０２Ｈｚへ、１／４ダウンサンプリングが行われている。その際に検出対象周波数に折り返される３００Ｈｚ以上８０４Ｈｚ以下の周波数成分によるエイリアシングを避けるために、ステップＳ２のDecimationフィルタが必要となる。Modified Goertzelフィルタ自体は非常に高いＱを持つＢＰＦとみなせるため、ここで用いるDecimationフィルタには、阻止帯域を持った一般的な低域濾波器ではなく、単にエイリアシング周波数点にのみノッチを持つ簡単なノッチフィルタを利用することができる。図１の例で言えば、３００Ｈｚ以上８０４Ｈｚ以下の周波数帯域において、エイリアシングのために、Modified Goertzelフィルタで誤検出される可能性がある周波数点は、３３５（＝４０２−６７）Ｈｚ、４６９（＝４０２＋６７）Ｈｚ、７３７（＝４０２×２−６７）Ｈｚであり、この３点にのみノッチを持つ低次ＦＩＲフィルタとして、前記Decimationフィルタを構成すればよい。
【０１００】
更に、このＦＩＲフィルタの係数を簡単な２ｎに近い値（ｎは自然数）に丸めても、殆どの場合問題なく利用することができる。何故なら、８ビット固定小数点で表現された信号は、大振幅の信号であっても、１／１００程度に減衰させられると、値が０に切り捨てられるので、所望の周波数点においてある程度抑圧されていれば、Decimationフィルタとして充分な効果が得られるからである。したがって、通常、このDecimationフィルタ処理においては、乗算を行う必要はなく、シフト数回と加算のみの軽い計算によって構成することができる。
【０１０１】
なお、検出対象周波数ｆＴが充分高く、アナログ低域濾波器の遮断周波数が充分低い場合には、ステップＳ２のDecimationフィルタおよびステップＳ３のダウンサンプリングは不要となる。例えば、検出対象周波数ｆＴが２５０．３Ｈｚである場合、Modified Goertzelフィルタのサンプリング周波数は、その６倍の１５０１．８Ｈｚとなり、アナログ低域濾波器によって入力信号中の７５０．９Ｈｚ以上の周波数成分が充分低減されている場合には、Decimationフィルタを通さずに直接サンプリングした入力信号をModified Goertzelフィルタに与えることが可能となり、計算負荷を軽くすることができる。
【０１０２】
続いて、ステップＳ４では、リミッタ処理が行われる。上述の第１の判定条件を用いると、入力信号の振幅に依らず、包絡線の微分値が０となった時点で、ｆＩ≠ｆＴであると判定できる。しかしながら、前述のように、ＣＴＣＳＳトーンスケルチにおいて、最も困難な場合には、例えば６７Ｈｚトーンと６９．３Ｈｚトーンとを２５０ｍｓｅｃ以内に区別しなければならず、これを第１の判定条件のみで行うことは困難である。例えば、ターゲット周波数ｆＴから２Ｈｚ離調したトーン信号を入力した場合を考えると、式（６）から、Modified Goertzelフィルタを初期化した時点から包絡線の微分値が０となるまでの時間は２５０ｍｓｅｃと見積もられる。
【０１０３】
したがって、これよりも短い時間で、２Ｈｚ以下の精度で正しくトーン信号を検出するためには、第１の判定条件だけではなく、第２の判定条件も併用する必要がある。ところが、第２の判定条件を適用するためには、式（５），（６）における入力信号の振幅α、或いは入力パワーが既知でなければならないが、入力パワーの計算を行うと計算コストが増加する。これを避けるために、図１では、入力信号の正規化を行っており、そのために最も簡単な方法として、このステップＳ４のリミッタを用いている。
【０１０４】
リミッタを通して矩形波化すると、出力信号には入力信号の奇数次高調波成分が現れるが、ｎ倍高調波成分のパワーは基本波の１／ｎ２の大きさしか持たない。このため、もし奇数次高調波が検出対象周波数ｆＴに一致するような周波数のトーン信号が入力されたとしても、所定時間以内に第２の判定条件の閾値を超える程包絡線の値が大きくはならず、トーン信号が誤検出されることは無い。また、検出対象周波数ｆＴから大きく離調したトーン信号を主成分とする入力信号をModified Goertzelフィルタに与えた場合には、式（６）に従って短時間内に包絡線の微分値が０となるので、第１の判定条件によって、ｆＩ≠ｆＴであると判断できる。さらにまた、検出対象周波数ｆＴのトーン信号以外に、別の周波数のトーン信号を主たる成分として含むような入力信号を、リミッタで処理すると、検出対象周波数ｆＴの成分の検出が困難となってしまう場合があるが、無線通信機のＣＴＣＳＳトーンを用いた交信においては、通常、２波以上のトーン信号が同時に入力されることは無いので、本実施の形態のトーンスケルチ判定アルゴリズムにおいて、リミッタ処理によって問題が生じることは無い。
【０１０５】
その後、ステップＳ５で、式（８）で示されるようなModified Goertzelフィルタ処理を行うと、その出力ｑ［ｋ］は、前述のように（ω＋θ）／２の周波数で振動する波形を持つ。そこで、ステップＳ６で、この出力信号ｑ［ｋ］の局所的極大値（ピーク値）を、次のピーク値が生じるまでの包絡線検出器の出力値ｐ［ｋ］として、ホールドし続けることで、階段状の包絡線を得ることができる。ここで、或るサンプリング点ｋでの出力値ｑ［ｋ］が極大値であるかどうかは、単に前後のサンプリング値ｑ［ｋ−１］、ｑ［ｋ＋１］との比較によって判定することができる。
【０１０６】
その後、ステップＳ７に移り、微分器で微分処理が行われる。これは、実際には差分処理で実現され、その出力値ｄｐ［ｋ］は、単に入力の差分を取ることによって、ｄｐ［ｋ］＝ｐ［ｋ］−ｐ［ｋ−１］として計算される。ｆＩ＝ｆＴであるトーン信号が入力されている場合には、後述のステップＳ１１のチョップトリガに応答して、オーバーフロー回避のためにModified Goertzelフィルタの出力は繰り返しチョッピングされ、包絡線ｐ［ｋ］は鋸波状に変化する。その際、チョッピングが行われたサンプリング点の前後で微分器の出力値が不連続となるのを避けるために、図１の微分器はチョップトリガがアサートされると、その時点の直後に生じたピーク値をｐ［ｋ］、直前のピーク値をｐ［ｋ−１］として、ステップＳ５において述べたModified Goertzelフィルタのチョッピング時に用いられているスケール値と同じ値でスケールダウンを行う。例えば、式（９）ではスケール値を１／２としており、これに対応して
【０１０７】
【数１７】
0005605158.tif 000018
【０１０８】
を出力するようにプログラムされている。これによって、チョッピングの影響を避け、トーン信号入力中に、常時ほぼ一定の微分値を得ることができる。
【０１０９】
前記ステップＳ６の包絡線ｐ［ｋ］が階段状に変化するため、ステップＳ９の微分器の出力ｄｐ［ｋ］は連続した零値を含むパルス列となっている。これを連続して滑らかに変化する微分値に変換し、また雑音の影響を低減するために、ステップＳ８では、ｄｐ［ｋ］を低域濾波器に入力し、連続した微分値ｙ［ｋ］を出力させている。この低域濾波器は、２ｎで表される簡単な係数を持つ１次のＩＩＲフィルタとして構成することができる。このため、乗算を行う必要は無く、シフト数回と加算のみの軽い計算によって実現できる。
【０１１０】
続いて、ステップＳ１０では、スケルチの状態を判定し、閉状態となっている場合にはステップＳ１２へ遷移し、第１の判定部として、第１の判定条件に従い、その連続した微分値ｙ［ｋ］が或る第１の閾値以上の状態を所定時間以上維持しているか否かが判断される。維持している場合にはステップＳ１３へ遷移し、第２の判定条件に従い、包絡線の大きさが第２の閾値以上となっているか否かが判断される。維持されていない場合にはステップＳ１４でスケルチが閉状態のままに保たれ、Modified Goertzelフィルタが初期化され、トーン検出処理がリスタートされる。前記ステップＳ１３での第２の判定条件による判定の結果、第２の閾値以上となっているとステップＳ１５でスケルチを開き、未満であると前記ステップＳ１４に遷移してスケルチが閉状態のままに保たれるとともに、Modified Goertzelフィルタが初期化され、トーン検出処理がリスタートされる。
【０１１１】
これに対して、前記ステップＳ１０で、スケルチが開状態となっている場合にはステップ１１へ遷移し、第４の判定部として、包絡線のチョッピング判定が行われる。第４の判定部における判定条件としては、包絡線の大きさが第４の閾値以上であるか否か、或いは、前回のチョップトリガアサート時点から所定の時間が経過したか否か、の何れかを用いることができる。そして、第４の閾値以上である場合、或いは前記所定時間が経過した場合には、前記ステップＳ５におけるModified Goertzelフィルタにおいて、フィルタ出力値ｑ［ｋ］がオーバーフローを起こさないように、チョップトリガがアサートされる。更にステップＳ１１からステップＳ１６へ遷移し、第３の判定部として、前記第３の判定条件に従い、連続した微分値ｙ［ｋ］が或る第３の閾値以下まで低下したか否かが判断される。低下した場合にはトーン信号が終了したものと判断して、ステップＳ１７でスケルチを閉じるとともに、Modified Goertzelフィルタを初期化して次のトーン検出手続きを始める。ステップＳ１６で、微分値ｙ［ｋ］が第３の閾値よりも大きな値であった場合には、ステップＳ１８でスケルチは開状態に保たれる。
【０１１２】
以上の説明では、検出対象周波数ｆＴを６７Ｈｚとし、８ビットＭＰＵを実装プラットホームとした場合のトーンスケルチ判定プログラムを例に挙げたが、本実施の形態を他の検出対象周波数について、８ビットＭＰＵ以外のＭＰＵ、ＤＳＰ用プログラムとして、或いはＦＰＧＡを利用した論理回路として実装することも同様に可能である。なお、説明の簡略化のため省略したが、入力信号ｘ［ｋ］のＤＣ値が０ではない場合には、必要に応じて図１のサンプリングの直後に、高域濾波器を挿入してもよい。
【０１１３】
図４〜図７に、上述のような本実施の形態によるトーンスケルチ判定アルゴリズムをコード化したプログラムを実行させた本件発明者のシミュレーション結果を示す。シミュレーションには、図３で示す入力トーン信号を使用している。図３および図４では、シミュレーション期間における特徴的な一部の期間についてのみ示している。
【０１１４】
図３で示す入力信号ｘ［ｋ］は、一定振幅のｆＩ＝６７Ｈｚの正弦波に、白色ガウス雑音を加算した信号を、１６０８Ｈｚのサンプリング周波数で８ビット値としてデジタル化したものである。このシミュレーション例では、シミュレーション開始から０．２５秒までの間は、雑音信号だけを入力信号として与え、次に６．２３秒まではこの図３のような雑音を付加したトーン信号を入力し、６．２３秒の時点でトーン信号の位相をπだけ遅延させて、上記（ｉ）の方法によってトーン終了信号を入力している。
【０１１５】
そして、図４は、そのような入力信号ｘ［ｋ］に対する本実施の形態の６７Ｈｚ用Modified Goertzelフィルタ（ステップＳ５）の出力信号ｑ［ｋ］の時間変化の一部をプロットしたものである。（ii）で説明したように、Modified Goertzelフィルタの出力ｑ［ｋ］は、負値の部分が正値に符号反転されているので、出力信号ｑ［ｋ］のピークの周期は、式（５）で与えられる値の半分となり、出力信号ｑ［ｋ］は、２ｆＩ＝１３４Ｈｚの周波数で振動しているように見える。また、式（５）で与えられるように、出力信号ｑ［ｋ］の極大値は、ほぼ一定の正の傾きで増加し続けている。
【０１１６】
既に説明したように、参照符号α１で示す出力信号ｑ［ｋ］の包絡線は、チョッピングによって鋸波状に変化しており、長期間連続してトーン信号を入力した場合でも、オーバーフローを起こさずに、連続してフィルタ処理を行うことが可能となっていることが理解される。そして、前述のように、約６．２３秒の時点で入力トーン信号の位相がπだけ遅延し、そのため式（１６）に従って、約６．２３秒のサンプリング点の前後で、出力信号ｑ［ｋ］の包絡線の傾きが、参照符号α１からα２で示すように、絶対値は同じで、符号が正から負の値に急激に変化している。
【０１１７】
その後６．２６秒の時点で出力値がほぼ０に急激に減衰している理由は、出力包絡線ｐ［ｋ］の微分値ｄｐ［ｋ］が０以下に変化したことに応答して、この時点で図１の低域濾波器の出力値ｙ［ｋ］が設定した第３の閾値以下となり、ステップＳ１６においてModified Goertzelフィルタに、図１に示されている初期化トリガが送信され、フィルタが保持する状態変数ｑ［ｋ−１］，ｑ［ｋ−２］が０に初期化されるためである。
【０１１８】
一方、図５は、上述のようなModified Goertzelフィルタの出力を受ける包絡線検出器（ステップＳ６）の出力信号ｐ［ｋ］の時間変化をプロットしたものである。包絡線検出器は、前述したように、図４に示される出力信号ｑ［ｋ］のピーク値をホールドすることで、この図５のような階段状に変化する包絡線ｐ［ｋ］を得る。前述のように包絡線ｐ［ｋ］の大きさは、Modified Goertzelフィルタを初期化した時点からサンプル点ｋまでの間、入力信号中の検出対象周波数ｆＴの成分のパワーを積分した値に比例する。このため、前記０．２５秒までの雑音信号が入力されている期間では、包絡線の微分値が０以下となる点が頻繁に発生し、その度にModified Goertzelフィルタが初期化されるので、包絡線の値が小さな値に留まり、スケルチは閉状態を維持する。
【０１１９】
一方、前記０．２５秒においてトーン信号の入力が開始されると、式（５），（６）に従って包絡線が上昇し始める。所定の時間の間、包絡線の微分値が設定した第１の閾値以上に保たれ、尚且つ、Modified Goertzelフィルタが最後に初期化された時点から、所定の時間以内に、包絡線の出力値が設定した第２の閾値（この例では８０００に設定している）を超えると、上述の第１および第２の判定条件が満たされるので、スケルチが開かれる（Ｓ１２−Ｓ１３−Ｓ１５）。スケルチが開状態にある期間には、上述の第３の判定条件に従って包絡線の微分値の観測が連続して行われ、図５に示されているように、上述の第４の判定条件に従って一定時間毎にチョップトリガがアサートされ、包絡線がオーバーフローしないように制御される。そして図４に示したように、トーン終了信号が入力されると、包絡線の微分値が第３の閾値以下に変化し、これに対応してスケルチが閉じられる（Ｓ１０−Ｓ１１−Ｓ１６−Ｓ１７）。このシミュレーション例では示していないが、上述したように、（ii）および（iii）の方法によってトーン信号が終了させられた場合にも、包絡線の微分値が第３の閾値以下に変化するので、同様にしてスケルチを閉じることができる。
【０１２０】
図６は、前記ステップＳ９での低域濾波器の出力の時間変化をプロットしたものである。前述したように、低域濾波器の出力値ｙ［ｋ］は、図５に示した包絡線の微分値の移動平均に相当するものである。０．２５秒までの雑音信号のみを入力している期間には、頻繁に包絡線の微分値が０以下となって初期化が行われるため、低域濾波器の出力値ｙ［ｋ］は、小さな値に留まっている。
【０１２１】
これに対して、６．２３秒までのトーン信号が入力されている期間中は、式（５）に従って包絡線の傾きがほぼ一定となるので、低域濾波器の出力値ｙ［ｋ］も８５付近でほぼ一定の正値を保っている。なお、不均等な間隔で、出力がスパイク状に減衰しているのは、入力トーン信号に大きな雑音を付加しているためであり、包絡線のチョッピングに因るものではない。トーン終了信号が入力された約６．２３秒の時点以降に、低域濾波器の出力値ｙ［ｋ］が急激に０付近まで減少しており、これを検出してスケルチが閉じられる。
【０１２２】
一方、図７は、２Ｈｚ離調させた６９Ｈｚのトーン信号入力に対する包絡線検出器の出力信号ｐ［ｋ］の時間変化をプロットしたものである。図５と同様に、シミュレーション開始から０．２５秒までは雑音信号のみを入力信号として与え、次に雑音を付加した６９Ｈｚトーン信号を入力している。
【０１２３】
前記式（６）から明らかなように、検出対象周波数ｆＴから離調したトーン信号を入力した場合、図５で示す検出対象周波数ｆＴと一致したトーン信号を入力した場合に比べて、包絡線の振幅は離調周波数に反比例して小さくなり、包絡線の絶対値は離調周波数で振動するようになる。したがって、包絡線の大きさと増加率は図５の場合よりも小さくなり、図７において、包絡線は所定時間内に所定の第２の閾値（この例では８０００に設定している）を超える大きさまで成長することができず、第２の判定条件の結果Modified Goertzelフィルタの初期化が行われ（Ｓ１３−Ｓ１４）、包絡線ｐ［ｋ］の値も０に戻るという過程を繰り返している。６５Ｈｚのトーン信号を入力した場合にも、図７と同様の出力が得られる。したがって、±２Ｈｚまで近接した周波数を持つトーン信号を６７Ｈｚ用トーンスケルチ判定プログラムに入力しても、スケルチが誤って開くことは無く、正確にスケルチ判定が行われていることが理解される。
【０１２４】
以上のように、通常は、Goertzelアルゴリズムで計算されるのはパワー値であり、第２の従来技術のGoertzelアルゴリズムでは、Goertzelフィルタに有限長の入力信号を与え、最終サンプリング点における複素出力信号のノルムを計算し、トーン信号の検出確認を行っているのに対して、本発明では新規な特徴として、Modified Goertzelフィルタの出力信号の包絡線の微分値を観測することで、トーン信号の検出確認を、乗算を行わずに加算のみで実現し、低い計算コストで、しかも連続して行うことを可能にしている。
【０１２５】
すなわち、概略的に説明すれば、第２の従来技術では、式（１）のフィルタ出力（のノルム）を求めるために、式（２）を用いた計算をＮ回と、Ｎ回目のサンプリング点で、式（１）によるＧ（ｚ）の分子の計算を行い、更に式（１）によるＧ（ｚ）の出力値（複素数）の大きさ（実部の２乗＋虚部の２乗）を計算する必要があり、このため乗算をＮ＋３回程度行う必要が生じる。また、無限長の入力信号を扱うために、Ｎを大きくするとオーバーフローを生じる。これに対して、本実施の形態では、図１から明らかなように、Modified Goertzelフィルタ（Ｓ５）以外の箇所では、乗算を必要としないので、本実施の形態は効果的である。
【０１２６】
さらに本実施の形態では、検出対象周波数ｆＴの６倍或いは３倍の比較的低いサンプリング周波数を用いて、高い周波数分解能でのトーンスケルチ判定を、トーン信号が入力開始されてから短時間以内に行うことを可能としているが、同様な条件下で第３の従来技術のSliding Goertzel DFTを用いた場合には、仕様を満足する周波数分解能と雑音耐性とを備えたトーンスケルチ判定を行うことは、一般的に困難となる。また、図１に示された本実施の形態のトーンスケルチ判定アルゴリズムによれば、８ビット固定小数点入力信号に対して、充分な精度で、入力信号周波数ｆＩがターゲット周波数ｆＴと一致するか否かの判定を、乗算を用いることなく、軽い演算処理のみで実現することが可能となる。このようにして、乗算器を持たない演算性能の低い一般的な８ビットＭＰＵであっても、高速且つ高精度にトーンスケルチ判定を行うことが可能となり、従来よりも低消費電力且つ低コストで、しかも入力信号レベルに依存しないトーンスケルチ機能を実装することができる。
【０１２７】
また、本実施の形態のトーンスケルチ判定アルゴリズムをＦＰＧＡ上に小規模の論理回路として実装することも可能である。このため、本実施の形態は、移動無線受信機のバッテリ駆動時間の長時間化および低コスト化のために有効である。
【０１２８】
なお、現在では、多ビットＭＰＵの低価格化、低消費電力化が進んだために、例えば８ビットＭＰＵと３２ビットＭＰＵとで、パッケージ品に、コストや消費電力の差異はあまり無い。しかしながら、前記のＦＰＧＡのように、例えば４５ｎｍルールの同じ半導体プロセスを使用する条件で比較すると、一般的に８ビットＭＰＵは、３２ビットＭＰＵよりも、低コストで実装し、低消費電力で動作させることができる。
【０１２９】
（実施の形態２）
図８は、本発明の実施の他の形態に係るトーンスケルチ判定回路における判定アルゴリズムを説明するためのフローチャートである。この図８のアルゴリズムにおいて、図１のアルゴリズムに類似し、対応する部分には同一のステップ番号を付して示し、その説明を省略する。注目すべきは、このアルゴリズムでは、ステップＳ１ａでのサンプリング周波数ｆＳを、任意の値に設定することである。すなわち、このアルゴリズムは、サンプリング周波数の設定値に関して制約が存在し、検出対象周波数の６倍或いは３倍に設定することが困難な場合、或いは８ビット乗算を行うことによる消費電力や計算時間の増加が許容される場合に、好適に利用可能なアルゴリズムである。
【０１３０】
しかしながら、サンプリング周波数ｆＳに任意の周波数の利用が可能になる反面、式（１）に従って算出されるGoertzelフィルタの係数ｃｏｓθは非整数値となる。このため、図２のModified Goertzelフィルタにおけるバッファ４の係数Ｃ１も１以外の値となり、Modified Goertzelフィルタの出力値を求めるためには、８ビット乗算を１回行うことが必要となる。また該フィルタ演算により、出力信号に量子化雑音が付加されることとなり、トーンスケルチ判定における雑音耐性が、第１の実施形態に比べて劣化する。本実施の形態においても、ＮｆＴ／ｆＳができるだけ整数値に近い値となるように、サンプリング周波数ｆＳとサンプリング点数Ｎとを調整することが望ましい。
【０１３１】
一方、本実施の形態では、入力信号ｘ［ｋ］のサンプリング周波数と、Modified Goertzelフィルタのサンプリング周波数ｆＳとが一致しているために、図１の実施形態と異なり、ダウンサンプリング（Ｓ３）を行う必要が無く、Decimationフィルタ（Ｓ２）を省略することができる。
【０１３２】
しかしながら、このことは、図２において、Modified Goertzelフィルタ入力ｘ［ｋ］から、スケルチ判定値出力ｑ［ｋ］までのブロックが全て入力信号ｘ［ｋ］のサンプリング周波数と同じ高いクロックで駆動されることを意味する。したがって、本実施の形態では、第１の実施の形態と比較して、計算コストが増大し、消費電力も増加する。
【符号の説明】
【０１３４】
１，４，５，８，９    バッファ
２，３    遅延バッファ
６，７    加算器
【図１】
0005605158.tif 000019
【図２】
0005605158.tif 000020
【図３】
0005605158.tif 000021
【図４】
0005605158.tif 000022
【図５】
0005605158.tif 000023
【図６】
0005605158.tif 000024
【図７】
0005605158.tif 000025
【図８】
0005605158.tif 000026