(57)【要約】      （修正有）【課題】回路規模の増加を抑えながら、応答信号に重畳される位相ノイズによる検出精度の劣化を防止するタッチ検出回路及び半導体装置を提供する。【解決手段】タッチ検出回路１００は、Ａ／Ｄ変換器３とフーリエ変換器５とを備える。Ａ／Ｄ変換器３は、応答信号を所定周期でサンプリングしてディジタル値に変換して時系列の応答データとして出力する。フーリエ変換器５は、その時系列の応答データから、検出信号の周期の逆数である検出周波数における変換結果を算出して出力する。タッチ検出回路１００は、応答信号を周波数ドメインに変換し、タッチ検出に必要な検出信号の周波数と等しい周波数成分のみを（必要に応じてその高調波等も）算出して後段のタッチ座標の演算処理に供する。【選択図】図１
2017215646.tif 000002
【特許請求の範囲】
【請求項１】
印加される検出信号に応じてセンサ容量から得られる応答信号を測定することによって、前記センサ容量への導体の接近を検知するタッチ検出回路であって、
アナログ／ディジタル変換器とフーリエ変換器とを備え、
前記アナログ／ディジタル変換器は、前記応答信号を所定周期でサンプリングしてディジタル値に変換し、時系列の応答データとして出力し、
前記フーリエ変換器は、前記時系列の応答データから、前記検出信号の周期の逆数である検出周波数における変換結果を算出して出力する、
タッチ検出回路。
【請求項２】
請求項１において、前記タッチ検出回路は、タイマと、任意波形生成器と、ディジタル／アナログ変換器と、係数テーブルを有するフーリエ係数生成器とをさらに備え、
前記タイマは、前記任意波形生成器と前記フーリエ係数生成器とに共通のタイミング信号を供給し、
前記係数テーブルは、フーリエ係数を生成するための係数列を保持し、
前記フーリエ係数生成器は、前記タイミング信号に基づいて前記係数テーブルから係数列を順次読み出して、前記フーリエ変換器と前記任意波形生成器とに供給し、
前記フーリエ係数生成器は、供給される前記係数列に基づいてフーリエ係数を生成して前記フーリエ変換器に供給し、
前記任意波形生成器は、供給される前記係数列に基づいて、時系列データを生成し、
前記ディジタル／アナログ変換器は、前記時系列データをアナログ信号に変換して前記検出信号として出力する、
タッチ検出回路。
【請求項３】
請求項２において、
前記係数テーブルは、正弦波または余弦波の４分の１周期のデータ列を前記係数列として保持する、
タッチ検出回路。
【請求項４】
請求項３において、前記タッチ検出回路は、窓関数生成器をさらに備え、
前記タイマは、前記タイミング信号を前記窓関数生成器にさらに供給し、
前記窓関数生成器は、前記タイミング信号に基づいて窓関数の係数値を前記フーリエ係数生成器に供給し、
前記フーリエ係数生成器は、供給される前記係数列と前記窓関数の係数値とに基づいて、フーリエ係数を生成して前記フーリエ変換器に供給する、
タッチ検出回路。
【請求項５】
請求項１において、前記タッチ検出回路は、タイマと、波形テーブルを有する任意波形生成器と、ディジタル／アナログ変換器と、係数テーブルを有するフーリエ係数生成器とをさらに備え、
前記タイマは、前記任意波形生成器と前記フーリエ係数生成器とに共通のタイミング信号を供給し、
前記波形テーブルは、前記検出信号を生成するための時系列データを保持し、
前記任意波形生成器は、前記タイミング信号に基づいて前記波形テーブルから前記時系列データを順次読み出して、前記ディジタル／アナログ変換器に供給し、
前記ディジタル／アナログ変換器は、順次供給される前記時系列データをアナログ信号に変換して前記検出信号として出力し、
前記係数テーブルは、フーリエ係数を生成するための係数列を保持し、
前記フーリエ係数生成器は、前記タイミング信号に基づいて前記係数テーブルから前記係数列を順次読み出し、フーリエ係数を生成して前記フーリエ変換器に供給する、
タッチ検出回路。
【請求項６】
請求項５において、
前記波形テーブルは、前記検出信号の４分の１周期の時系列データを保持し、
前記係数テーブルは、正弦波または余弦波の４分の１周期のデータ列を前記係数列として保持する、
タッチ検出回路。
【請求項７】
請求項６において、前記タッチ検出回路は、窓関数生成器をさらに備え、
前記タイマは、前記タイミング信号を前記窓関数生成器にさらに供給し、
前記窓関数生成器は、前記タイミング信号に基づいて窓関数の係数値を前記フーリエ係数生成器に供給し、
前記フーリエ係数生成器は、順次供給される前記係数列と前記窓関数の係数値とに基づいて、フーリエ係数を生成して前記フーリエ変換器に供給する、
タッチ検出回路。
【請求項８】
請求項１において、前記アナログ／ディジタル変換器は、シグマデルタ方式である、
タッチ検出回路。
【請求項９】
請求項２において、前記アナログ／ディジタル変換器は、１ビットのシグマデルタ変調回路であり、
前記フーリエ変換器は、前記フーリエ係数生成器から順次供給される前記フーリエ係数の符号ビットと前記シグマデルタ変調回路からの出力との排他的論理和の結果に基づいて、前記フーリエ係数の符号を反転するか反転せずにそのまま累積加算することによって、前記検出周波数における振幅値を算出する、
タッチ検出回路。
【請求項１０】
センサ容量に接続可能であり、前記センサ容量に印加される検出信号に応じて得られる応答信号を測定することによって、前記センサ容量への導体の接近を検知するタッチ検出回路を備える半導体装置であって、
前記タッチ検出回路は、アナログ／ディジタル変換器とフーリエ変換器とを備え、
前記アナログ／ディジタル変換器は、前記応答信号を所定周期でサンプリングしてディジタル値に変換し、時系列の応答データとして出力し、
前記フーリエ変換器は、前記時系列の応答データから、前記検出信号の周期の逆数である検出周波数における変換結果を算出して出力する、
半導体装置。
【請求項１１】
請求項１０において、前記タッチ検出回路は、タイマと、任意波形生成器と、ディジタル／アナログ変換器と、係数テーブルを有するフーリエ係数生成器とをさらに備え、
前記タイマは、前記任意波形生成器と前記フーリエ係数生成器とに共通のタイミング信号を供給し、
前記係数テーブルは、フーリエ係数を生成するための係数列を保持し、
前記フーリエ係数生成器は、前記タイミング信号に基づいて前記係数テーブルから係数列を順次読み出して、前記フーリエ変換器と前記任意波形生成器とに供給し、
前記フーリエ係数生成器は、供給される前記係数列に基づいてフーリエ係数を生成して前記フーリエ変換器に供給し、
前記任意波形生成器は、供給される前記係数列に基づいて、時系列データを生成し、
前記ディジタル／アナログ変換器は、前記時系列データをアナログ信号に変換して前記検出信号として出力する、
半導体装置。
【請求項１２】
請求項１１において、
前記係数テーブルは、正弦波または余弦波の４分の１周期のデータ列を前記係数列として保持する、
半導体装置。
【請求項１３】
請求項１２において、前記タッチ検出回路は、窓関数生成器をさらに備え、
前記タイマは、前記タイミング信号を前記窓関数生成器にさらに供給し、
前記窓関数生成器は、前記タイミング信号に基づいて窓関数の係数値を前記フーリエ係数生成器に供給し、
前記フーリエ係数生成器は、供給される前記係数列と前記窓関数の係数値とに基づいて、フーリエ係数を生成して前記フーリエ変換器に供給する、
半導体装置。
【請求項１４】
請求項１０において、前記タッチ検出回路は、タイマと、波形テーブルを有する任意波形生成器と、ディジタル／アナログ変換器と、係数テーブルを有するフーリエ係数生成器とをさらに備え、
前記タイマは、前記任意波形生成器と前記フーリエ係数生成器とに共通のタイミング信号を供給し、
前記波形テーブルは、前記検出信号を生成するための時系列データを保持し、
前記任意波形生成器は、前記タイミング信号に基づいて前記波形テーブルから前記時系列データを順次読み出して、前記ディジタル／アナログ変換器に供給し、
前記ディジタル／アナログ変換器は、順次供給される前記時系列データをアナログ信号に変換して前記検出信号として出力し、
前記係数テーブルは、フーリエ係数を生成するための係数列を保持し、
前記フーリエ係数生成器は、前記タイミング信号に基づいて前記係数テーブルから前記係数列を順次読み出し、フーリエ係数を生成して前記フーリエ変換器に供給する、
半導体装置。
【請求項１５】
請求項１４において、
前記波形テーブルは、前記検出信号の４分の１周期の時系列データを保持し、
前記係数テーブルは、正弦波または余弦波の４分の１周期のデータ列を前記係数列として保持する、
半導体装置。
【請求項１６】
請求項１５において、前記タッチ検出回路は、窓関数生成器をさらに備え、
前記タイマは、前記タイミング信号を前記窓関数生成器にさらに供給し、
前記窓関数生成器は、前記タイミング信号に基づいて窓関数の係数値を前記フーリエ係数生成器に供給し、
前記フーリエ係数生成器は、順次供給される前記係数列と前記窓関数の係数値とに基づいて、フーリエ係数を生成して前記フーリエ変換器に供給する、
半導体装置。
【請求項１７】
請求項１０において、前記アナログ／ディジタル変換器は、シグマデルタ方式である、
半導体装置。
【請求項１８】
請求項１１において、前記アナログ／ディジタル変換器は、１ビットのシグマデルタ変調回路であり、
前記フーリエ変換器は、前記フーリエ係数生成器から順次供給される前記フーリエ係数の符号ビットと前記シグマデルタ変調回路からの出力との排他的論理和の結果に基づいて、前記フーリエ係数の符号を反転するか反転せずにそのまま累積加算することによって、前記検出周波数における振幅値を算出する、
半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、タッチ検出回路及びそれを備えた半導体装置に関し、特に印加される検出信号に応じてセンサ容量から得られる応答信号を測定することによって、前記センサ容量への導体の接近を検知するタッチ検出に好適に利用できるものである。
【背景技術】
【０００２】
容量方式のタッチ検出には、自己容量方式と相互容量方式があるが、いずれの方式においても、センサ容量に所定の検出信号を印加してセンサ容量及びタッチによって増減した容量成分を充放電し、それに伴って得られる応答信号を受信し、その大きさを測定することによって、タッチの有無を検出する。
【０００３】
特許文献１には、相互容量方式のタッチ検出回路が開示されている。検出信号を矩形波としてその立上りエッジに対応する応答信号と、立下りエッジに対応する応答信号を、互いに極性を反転した上で積分することによって、検出感度を向上している。
【０００４】
特許文献２には、ΔΣ変調回路が開示されている。入力部に複数のスイッチ付き容量を備え、入力信号を平滑する。入力信号の直流成分がゼロになるように、スイッチをフィードバック制御し、クロックジッタによる誤差を軽減する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１４−１０６８６４号公報
【特許文献２】米国特許出願公開第２０１０／０２９５７１５号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１及び２について本発明者が検討した結果、以下のような新たな課題があることがわかった。
【０００７】
特許文献１において、検出信号として矩形波を用いる場合には、応答信号の極性を反転させるタイミングに十分な余裕があるが、検出信号として正弦波や三角波などを用いる場合には、応答信号の極性を反転させるタイミングに十分な余裕がない。応答信号の極性を反転させるタイミングに十分な余裕がないと、本来正側の応答信号が負側の応答信号として積分され、または逆に本来負側の応答信号が正側の応答信号として積分され、その結果、検出精度を保つことができない場合がある。即ち、応答信号に重畳される位相ノイズ成分が検出精度を劣化させるという問題がある。
【０００８】
この問題を解決するために、特許文献２に記載される技術を組み合わせることができる。即ち、応答信号の入力部に複数のスイッチ付き容量を備え、応答信号の直流成分がゼロになるように、スイッチをフィードバック制御することによって、応答信号の極性を反転させるタイミングを適切なタイミングに保つことができる。
【０００９】
しかしながら、このような解決手段では、複数の容量やスイッチを搭載する必要があり、回路規模が大きくなるという問題がある。特に、タッチ検出回路では、タッチ座標の検出精度を高める要請から、多数のセンサ容量が実装され、それに伴って多数のタッチ検出回路が搭載される傾向にあるので、回路規模の増加は深刻な課題である。
【００１０】
本発明の目的は、回路規模の増加を抑えながら、応答信号に重畳される位相ノイズによる検出精度の劣化を防止することにある。
【００１１】
このような課題を解決するための手段を以下に説明するが、その他の課題と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１２】
一実施の形態によれば、下記の通りである。
【００１３】
すなわち、印加される検出信号に応じてセンサ容量から得られる応答信号を測定することによって、前記センサ容量への導体の接近を検知するタッチ検出回路であって、以下のように構成される。
【００１４】
アナログ／ディジタル変換器とフーリエ変換器とを備え、アナログ／ディジタル変換器は、応答信号を所定周期でサンプリングしてディジタル値に変換して時系列の応答データとして出力する。フーリエ変換器は、その時系列の応答データから、検出信号の周期の逆数である検出周波数における振幅値を算出して出力する。
【発明の効果】
【００１５】
前記一実施の形態によって得られる効果を簡単に説明すれば下記のとおりである。
【００１６】
すなわち、回路規模の増加を抑えながら、応答信号に重畳される位相ノイズによる検出精度の劣化を防止することができる。タッチ検出回路は、応答信号を周波数ドメインに変換し、タッチ検出に必要な検出信号の周波数と等しい周波数成分のみを算出して後段のタッチ座標の演算処理に供するので、回路規模が小さく且つ位相ノイズの影響を排除することができる。
【図面の簡単な説明】
【００１７】
【図１】図１は、本発明に係る基本的なタッチ検出回路の構成例を示すブロック図である。
【図２】図２は、実施形態２のタッチ検出回路の構成例を示すブロック図である。
【図３】図３は、波形メモリ（DDS Wave RAM）と係数メモリ（Coef. RAM）とそれぞれ備える場合の構成例を示すブロック図である。
【図４】図４は、係数メモリ（Coef. RAM）を任意波形生成器（DDS）と係数生成器とで共用する、第１（アドレス共通）の構成例を示すブロック図である。
【図５】図５は、係数メモリ（Coef. RAM）を任意波形生成器（DDS）と係数生成器とで共用する、第２（アドレス分離）の構成例を示すブロック図である。
【図６】図６は、係数メモリ（Coef. RAM）を任意波形生成器（DDS）と係数生成器とで共用する、第３（アドレス分離、高調波に対応）の構成例を示すブロック図である。
【図７】図７は、係数メモリ（Coef. RAM）が１／４波長の余弦波データを格納する、係数生成器８の構成例を示すブロック図である。
【図８】図８は、係数メモリ（Coef. RAM）が１／４波長の正弦波データを格納する、係数生成器８の構成例を示すブロック図である。
【図９】図９は、係数メモリ（Coef. RAM）が１／４波長の正弦波データを格納し、任意波形生成器と係数生成器のアドレスを分離した構成例を示すブロック図である。
【図１０】図１０は、実施形態４の離散フーリエ変換器の構成例を示すブロック図である。
【図１１】図１１は、実施形態４の離散フーリエ変換器の別の構成例を示すブロック図である。
【図１２】図１２は、相互容量方式のタッチパネル及びタッチコントローラの構成例を模式的に示すブロック図である。
【図１３】図１３は、自己容量方式のタッチパネル及びタッチコントローラの構成例を模式的に示すブロック図である。
【図１４】図１４は、本発明に係るタッチ検出回路の基本的な動作を示す説明図である。
【発明を実施するための形態】
【００１８】
１．実施の形態の概要
先ず、本願において開示される代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１９】
〔１〕検出信号を周波数領域にフーリエ変換するタッチ検出回路
印加される検出信号（SENSING WAVE）に応じてセンサ容量（１）から得られる応答信号（SENSOR RESPONSE）を測定することによって、前記センサ容量への導体の接近を検知するタッチ検出回路（１００）であって、以下のように構成される。
【００２０】
アナログ／ディジタル変換器（ＡＤＣ；３）とフーリエ変換器（ＤＦＴ；５）とを備える。
【００２１】
前記アナログ／ディジタル変換器は、前記応答信号を所定周期でサンプリングしてディジタル値に変換し、時系列の応答データとして出力する。
【００２２】
前記フーリエ変換器は、前記時系列の応答データから、前記検出信号の周期（t0）の逆数である検出周波数（fk）における変換結果（Gain at fkまたはReal/Img at fk）を算出して出力する。
【００２３】
これにより、回路規模の増加を抑えながら、応答信号に重畳される位相ノイズによる検出精度の劣化を防止することができる。
【００２４】
〔２〕任意波形生成器＋フーリエ係数生成器（係数テーブルの共用）
項〔１〕において、前記タッチ検出回路は、タイマ（１０）と、任意波形生成器（ＤＤＳ；６）と、ディジタル／アナログ変換器（ＤＡＣ；７）と、係数テーブル（８１〜８４）を有するフーリエ係数生成器（８）とをさらに備える。
【００２５】
前記タイマは、前記任意波形生成器と前記フーリエ係数生成器とに共通のタイミング信号を供給する。
【００２６】
前記係数テーブルは、フーリエ係数を生成するための係数列を保持する。
【００２７】
前記フーリエ係数生成器は、前記タイミング信号に基づいて前記係数テーブルから係数列（data_img, data_real）を順次読み出して、前記フーリエ変換器と前記任意波形生成器とに供給する。
【００２８】
前記フーリエ係数生成器は、供給される前記係数列に基づいてフーリエ係数（coef_data_img, coef_data_real）を生成して前記フーリエ変換器に供給する。
【００２９】
前記任意波形生成器は、供給される前記係数列に基づいて、時系列データ（data_dds_img）を生成し、前記ディジタル／アナログ変換器は、前記時系列データをアナログ信号に変換して前記検出信号として出力する。
【００３０】
これにより、検出信号の波形を正弦波または余弦波とするときに、任意波形生成器（ＤＤＳ；６）は波形テーブルを備える必要がなくなる。よって、少ない回路規模で、係数生成器（８）は検出周波数におけるフーリエ変換係数をフーリエ変換器に供給することができるとともに、任意波形生成器（ＤＤＳ；６）は検出信号の時系列データを供給することができる。
【００３１】
〔３〕係数テーブルはsinまたはcosの1/4周期のデータ列を保持
項〔１〕または項〔２〕において、前記係数テーブルは、正弦波または余弦波の４分の１周期のデータ列を前記係数列として保持する。
【００３２】
これにより、更に少ない回路規模で、任意波形生成器（ＤＤＳ；６）及び係数生成器（８）を構成することができる。
【００３３】
〔４〕さらに窓関数
各項〔１〕、〔２〕または〔３〕において、前記タッチ検出回路は、窓関数生成器（９）をさらに備える。
【００３４】
前記タイマは、前記タイミング信号を前記窓関数生成器にさらに供給し、前記窓関数生成器は、前記タイミング信号に基づいて窓関数の係数値を前記フーリエ係数生成器に供給する。
【００３５】
前記フーリエ係数生成器は、供給される前記係数列と前記窓関数の係数値とに基づいて、フーリエ係数を生成して前記フーリエ変換器に供給する。
【００３６】
これにより、フーリエ変換に窓関数が適用され、時系列データが有限であることに起因する、周波数領域での変換誤差が軽減され、外来ノイズに対する耐性を向上することができる。
【００３７】
〔５〕任意波形生成器＋フーリエ係数生成器（波形テーブルと係数テーブル）
項〔１〕において、前記タッチ検出回路は、タイマ（１０）と、波形テーブル（６１）を有する任意波形生成器（ＤＤＳ；６）と、ディジタル／アナログ変換器（ＤＡＣ；７）と、係数テーブル（８１）を有するフーリエ係数生成器（８）とをさらに備える。
【００３８】
前記タイマは、前記任意波形生成器と前記フーリエ係数生成器とに共通のタイミング信号を供給する。
【００３９】
前記波形テーブルは、前記検出信号を生成するための時系列データを保持し、前記任意波形生成器は、前記タイミング信号に基づいて前記波形テーブルから前記時系列データを順次読み出して、前記ディジタル／アナログ変換器に供給する。前記ディジタル／アナログ変換器は、順次供給される前記時系列データをアナログ信号に変換して前記検出信号として出力する。
【００４０】
前記係数テーブルは、フーリエ係数を生成するための係数列を保持し、前記フーリエ係数生成器は、前記タイミング信号に基づいて前記係数テーブルから前記係数列を順次読み出し、フーリエ係数を生成して前記フーリエ変換器に供給する。
【００４１】
これにより、検出信号の波形を正弦波ではない任意の波形とするときに、検出周波数におけるフーリエ変換係数をフーリエ変換器に供給することができる。
【００４２】
〔６〕1/4周期の時系列データ
項〔５〕において、前記波形テーブルは、前記検出信号の４分の１周期の時系列データを保持し、前記係数テーブルは、正弦波または余弦波の４分の１周期のデータ列を前記係数列として保持する。
【００４３】
これにより、更に少ない回路規模で、任意波形生成器を構成することができる。
【００４４】
〔７〕さらに窓関数
項〔５〕または項〔６〕において、前記タッチ検出回路は、窓関数生成器（９）をさらに備える。
【００４５】
前記タイマは、前記タイミング信号を前記窓関数生成器にさらに供給する。
【００４６】
前記窓関数生成器は、前記タイミング信号に基づいて窓関数の係数値を前記フーリエ係数生成器に供給し、前記フーリエ係数生成器は、順次供給される前記係数列と前記窓関数の係数値とに基づいて、フーリエ係数を生成して前記フーリエ変換器に供給する。
【００４７】
これにより、フーリエ変換に窓関数が適用され、時系列データが有限であることに起因する、周波数領域での変換誤差が軽減され、外来ノイズに対する耐性を向上することができる。
【００４８】
〔８〕アナログ／ディジタル変換器はΣΔ型
各項〔１〕〜〔７〕のうちのいずれか１項において、前記アナログ／ディジタル変換器は、シグマデルタ方式である。
【００４９】
これにより、回路規模の増加を抑えることができる。
【００５０】
〔９〕１ビットΣΔ変調器＋XNOR(XOR)による乗算
項〔２〕または項〔５〕において、前記アナログ／ディジタル変換器は、１ビットのシグマデルタ変調回路（４）である。
【００５１】
前記フーリエ変換器は、前記フーリエ係数生成器から順次供給される前記フーリエ係数の符号ビットと前記シグマデルタ変調回路からの出力との排他的論理和（３５、３６）の結果に基づいて、前記フーリエ係数の符号を反転するか反転せずにそのまま累積加算することによって、前記検出周波数における変換結果（dft_real, dft_img）を算出する。
【００５２】
これにより、回路規模の増加をさらに抑えることができる。
【００５３】
〔１０〕半導体装置
センサ容量（１）に接続可能であり、前記センサ容量に印加される検出信号（SENSING WAVE）に応じて得られる応答信号（SENSOR RESPONSE）を測定することによって、前記センサ容量への導体の接近を検知するタッチ検出回路（１００）を備える半導体装置（２０１、２０２）であって、以下のように構成される。
【００５４】
タッチ検出回路（１００）は、アナログ／ディジタル変換器（ＡＤＣ；３）とフーリエ変換器（ＤＦＴ；５）とを備える。
【００５５】
前記アナログ／ディジタル変換器は、前記応答信号を所定周期でサンプリングしてディジタル値に変換し、時系列の応答データとして出力する。
【００５６】
前記フーリエ変換器は、前記時系列の応答データから、前記検出信号の周期（t0）の逆数である検出周波数（fk）における変換結果（Gain at fkまたはReal/Img at fk）を算出して出力する。
【００５７】
これにより、回路規模の増加を抑えながら、応答信号に重畳される位相ノイズによる検出精度の劣化を防止することができる、例えばタッチコントローラＩＣなどの半導体装置を提供することができる。
【００５８】
〔１１〕任意波形生成器＋フーリエ係数生成器（係数テーブルの共用）
項〔１０〕において、前記タッチ検出回路は、タイマ（１０）と、任意波形生成器（ＤＤＳ；６）と、ディジタル／アナログ変換器（ＤＡＣ；７）と、係数テーブル（８１〜８４）を有するフーリエ係数生成器（８）とをさらに備える。
【００５９】
前記タイマは、前記任意波形生成器と前記フーリエ係数生成器とに共通のタイミング信号を供給する。
【００６０】
前記係数テーブルは、フーリエ係数を生成するための係数列を保持する。
【００６１】
前記フーリエ係数生成器は、前記タイミング信号に基づいて前記係数テーブルから係数列（data_img, data_real）を順次読み出して、前記フーリエ変換器と前記任意波形生成器とに供給する。
【００６２】
前記フーリエ係数生成器は、供給される前記係数列に基づいてフーリエ係数（coef_data_img, coef_data_real）を生成して前記フーリエ変換器に供給する。
【００６３】
前記任意波形生成器は、供給される前記係数列に基づいて、時系列データ（data_dds_img）を生成し、前記ディジタル／アナログ変換器は、前記時系列データをアナログ信号に変換して前記検出信号として出力する。
【００６４】
これにより、検出信号の波形を正弦波または余弦波とするときに、任意波形生成器（ＤＤＳ；６）は波形テーブルを備える必要がなくなる。よって、少ない回路規模で、係数生成器（８）は検出周波数におけるフーリエ変換係数をフーリエ変換器に供給することができるとともに、任意波形生成器（ＤＤＳ；６）は検出信号の時系列データを供給することができる。
【００６５】
〔１２〕係数テーブルはsinまたはcosの1/4周期のデータ列を保持
項〔１０〕または項〔１１〕において、前記係数テーブルは、正弦波または余弦波の４分の１周期のデータ列を前記係数列として保持する。
【００６６】
これにより、更に少ない回路規模で、任意波形生成器（ＤＤＳ；６）及び係数生成器（８）を構成することができる。
【００６７】
〔１３〕さらに窓関数
各項〔１０〕、〔１１〕または〔１２〕において、前記タッチ検出回路は、窓関数生成器（９）をさらに備える。
【００６８】
前記タイマは、前記タイミング信号を前記窓関数生成器にさらに供給し、前記窓関数生成器は、前記タイミング信号に基づいて窓関数の係数値を前記フーリエ係数生成器に供給する。
【００６９】
前記フーリエ係数生成器は、供給される前記係数列と前記窓関数の係数値とに基づいて、フーリエ係数を生成して前記フーリエ変換器に供給する。
【００７０】
これにより、フーリエ変換に窓関数が適用され、時系列データが有限であることに起因する、周波数領域での変換誤差が軽減され、外来ノイズに対する耐性を向上することができる。
【００７１】
〔１４〕任意波形生成器＋フーリエ係数生成器（波形テーブルと係数テーブル）
項〔１０〕において、前記タッチ検出回路は、タイマ（１０）と、波形テーブル（６１）を有する任意波形生成器（ＤＤＳ；６）と、ディジタル／アナログ変換器（ＤＡＣ；７）と、係数テーブル（８１）を有するフーリエ係数生成器（８）とをさらに備える。
【００７２】
前記タイマは、前記任意波形生成器と前記フーリエ係数生成器とに共通のタイミング信号を供給する。
【００７３】
前記波形テーブルは、前記検出信号を生成するための時系列データを保持し、前記任意波形生成器は、前記タイミング信号に基づいて前記波形テーブルから前記時系列データを順次読み出して、前記ディジタル／アナログ変換器に供給する。前記ディジタル／アナログ変換器は、順次供給される前記時系列データをアナログ信号に変換して前記検出信号として出力する。
【００７４】
前記係数テーブルは、フーリエ係数を生成するための係数列を保持し、前記フーリエ係数生成器は、前記タイミング信号に基づいて前記係数テーブルから前記係数列を順次読み出し、フーリエ係数を生成して前記フーリエ変換器に供給する。
【００７５】
これにより、検出信号の波形を正弦波ではない任意の波形とするときに、検出周波数におけるフーリエ変換係数をフーリエ変換器に供給することができる。
【００７６】
〔１５〕1/4周期の時系列データ
項〔１４〕において、前記波形テーブルは、前記検出信号の４分の１周期の時系列データを保持し、前記係数テーブルは、正弦波または余弦波の４分の１周期のデータ列を前記係数列として保持する。
【００７７】
これにより、更に少ない回路規模で、任意波形生成器を構成することができる。
【００７８】
〔１６〕さらに窓関数
項〔１４〕または項〔１５〕において、前記タッチ検出回路は、窓関数生成器（９）をさらに備える。
【００７９】
前記タイマは、前記タイミング信号を前記窓関数生成器にさらに供給する。
【００８０】
前記窓関数生成器は、前記タイミング信号に基づいて窓関数の係数値を前記フーリエ係数生成器に供給し、前記フーリエ係数生成器は、順次供給される前記係数列と前記窓関数の係数値とに基づいて、フーリエ係数を生成して前記フーリエ変換器に供給する。
【００８１】
これにより、フーリエ変換に窓関数が適用され、時系列データが有限であることに起因する、周波数領域での変換誤差が軽減され、外来ノイズに対する耐性を向上することができる。
【００８２】
〔１７〕アナログ／ディジタル変換器はΣΔ型
各項〔１０〕〜〔１６〕のうちのいずれか１項において、前記アナログ／ディジタル変換器は、シグマデルタ方式である。
【００８３】
これにより、回路規模の増加を抑えることができる。
【００８４】
〔１８〕１ビットΣΔ変調器＋XNOR(XOR)による乗算
項〔１１〕または項〔１４〕において、前記アナログ／ディジタル変換器は、１ビットのシグマデルタ変調回路（４）である。
【００８５】
前記フーリエ変換器は、前記フーリエ係数生成器から順次供給される前記フーリエ係数の符号ビットと前記シグマデルタ変調回路からの出力との排他的論理和（３５、３６）の結果に基づいて、前記フーリエ係数の符号を反転するか反転せずにそのまま累積加算することによって、前記検出周波数における変換結果（dft_real, dft_img）を算出する。
【００８６】
これにより、回路規模の増加をさらに抑えることができる。
【００８７】
２．実施の形態の詳細
実施の形態について更に詳述する。
【００８８】
〔実施形態１〕検出信号を周波数領域にフーリエ変換するタッチ検出回路
図１は、本発明に係る基本的なタッチ検出回路１００の構成例を示すブロック図である。タッチ検出回路１００は、印加される検出信号（SENSING WAVE）に応じてセンサ容量（センサノードとも称す）１から得られる応答信号（SENSOR RESPONSE）を測定することによって、センサ容量１へのユーザの指などの導体の接近を検知するために、センサ容量１の容量値の変動を測定する。なお、図１に図示される信号は、１本または複数の配線からなる１〜多数ビットのディジタル信号であるが、バス表記は省略される。この点は、本願で開示する他の実施形態、及び、引用する他のブロック図等についても同様である。
【００８９】
図１２及び図１３は、それぞれ相互容量方式と自己容量方式のタッチパネルとタッチコントローラの構成例を模式的に示すブロック図である。
【００９０】
相互容量方式（図１２）のタッチパネル３０１では、センサ容量１であるＣｘは、検出信号配線Ｇ１〜ＧＹと応答信号配線Ｓ１〜ＳＸとが交差する位置に、マトリックス状に配置される。タッチコントローラＩＣ（Integrated Circuit）２０１は、検出信号配線Ｇ１〜ＧＹを駆動する検出信号駆動回路（SD）１０１と、応答信号配線Ｓ１〜ＳＸにそれぞれ接続されるタッチ検出回路（TS）１００＿１〜１００＿Ｘと、インターフェース（I/F）１０２とを備える。インターフェース（I/F）１０２を介して接続されるマイクロコントローラ（MCU）１１は、タッチコントローラＩＣ２０１を制御するとともに、タッチ検出回路１００＿１〜１００＿Ｘによって観測されるセンサ容量（Cx）１の容量値の変化からタッチ座標を求める。相互容量方式では、検出信号配線Ｇ１〜ＧＹを順次駆動し、それに伴ってセンサ容量（Cx）１の容量値に応じた充放電電流が応答信号配線Ｓ１〜ＳＸに現れるので、その電流値をタッチ検出回路１００＿１〜１００＿Ｘが測定する。応答信号の電流値は、センサ容量（Cx）１の容量値の変化に対応して増減するので、ユーザの指などの導体が接近することによるセンサ容量（Cx）１の容量値の減少を検知することができる。
【００９１】
自己容量方式（図１３）のタッチパネル３０２では、センサ容量１であるＣｘは検出信号が印加され、応答信号が現れる配線Ｔ１〜ＴＺ毎に配置される。タッチコントローラＩＣ２０２は、配線Ｔ１〜ＴＺ毎に接続される検出信号駆動回路（SD）１０１＿１〜Ｚとタッチ検出回路１００＿１〜１００＿Ｚと、インターフェース（I/F）１０２とを備える。インターフェース（I/F）１０２を介して接続されるマイクロコントローラ（MCU）１１は、タッチコントローラＩＣ２０２を制御するとともに、タッチ検出回路１００＿１〜１００＿Ｚによって観測されるセンサ容量（Cx）１の容量値の変化からタッチ座標を求める。自己容量方式では、配線Ｔ１〜ＴＺを介して検出信号駆動回路（SD）１０１＿１〜Ｚによりセンサ容量（Cx）１を充電し、それに伴ってセンサ容量（Cx）１の容量値に応じた放電電流が同じ配線Ｔ１〜ＴＺに現れるので、その電流値をタッチ検出回路１００＿１〜１００＿Ｚが測定する。応答信号の電流値は、センサ容量（Cx）１の容量値の変化に対応して増減するので、ユーザの指などの導体が接近することによるセンサ容量（Cx）１の容量値の増加を検知することができる。
【００９２】
なお、説明を簡略化するために、センサ容量（Cx）１とタッチ検出回路の数を同数として説明したが、マルチプレックスなどによって時分割で動作させてもよい。
【００９３】
いずれの方式を採用しても、タッチ検出回路１００は、印加される検出信号（SENSING WAVE）に応じてセンサ容量（Cx）１から得られる応答信号（SENSOR RESPONSE）を測定することによって、センサ容量（Cx）１へのユーザの指などの導体の接近を検知することができる。
【００９４】
また、いずれの方式を採用しても、タッチコントローラＩＣ２０１、２０２は、特に制限されないが、例えば、公知のＣＭＯＳ（Complementary Metal-Oxide-Semiconductor field effect transistor）ＬＳＩ（Large Scale Integrated circuit）の製造技術を用いて、シリコンなどの単一半導体基板上に形成される。表示ドライバ回路と同一の半導体チップに集積されても良い。表示タッチパネルのガラス基板上にフリップチップ実装されることにより、表示タッチパネルの実装・配線面積を低減して、狭額縁化に寄与することもできる。
【００９５】
図１の説明に戻る。センサノード１は図１２及び１３のセンサ容量（Cx）１に対応する。タッチ検出回路１００は、アナログ／ディジタル変換器（ADC）３とフーリエ変換器（DFT）５とを備える。アナログ／ディジタル変換器３は、応答信号を所定周期でサンプリングしてディジタル値に変換し、時系列の応答データとして出力する。フーリエ変換器５は、時系列の応答データから、検出信号の周期（t0）の逆数である検出周波数（fk）における変換結果を算出して出力する。周期ｔ０の検出信号をセンサノード１に印加すると、センサノード１の容量値の変化を反映する応答信号は、基本周波数ｆｋが検出信号の基本周波数と同じ１／ｔ０となる。フーリエ変換器５はディジタル化された応答信号に対して離散フーリエ変換を実行することによって、応答信号を周波数ドメインの信号に変換する。周波数ドメインの応答信号のうち、基本周波数ｆｋの成分がセンサノード１の容量値の変化を最も顕著に反映するので、基本周波数ｆｋにおける実部Realと虚部Imgからなる複素周波数成分、または、それらから算出された振幅成分（Gain）を出力する。
【００９６】
これにより、回路規模の増加を抑えながら、応答信号に重畳される位相ノイズによる検出精度の劣化を防止することができる。
【００９７】
このとき、応答信号を周波数ドメインの信号のうち、基本周波数ｆｋが検出信号の基本周波数と同じ１／ｔ０である場合について、特筆して説明したが、本願発明はこれに限定されるものではない。応答信号を周波数ドメインの信号のうち、基本周波数の高調波成分に着目しても良いし、さらには基本周波数とは異なる周波数成分に着目しても良い。
【００９８】
図１４は、本発明に係るタッチ検出回路１００の基本的な動作を示す説明図である。検出信号（SENSING WAVE）は図１２に示した相互容量方式の場合、検出信号配線Ｇ１〜ＧＹに順次印加されるので、検出信号Ｇ１についてみれば、図示されるように周期ｔ０即ち基本周波数ｆｋ＝１／ｔ０の信号が、所定周期Ｔの期間だけ印加される。図１４には、周期Ｔに４周期の正弦波が含まれる検出信号Ｇ１が示されているが、これは単なる一例である。即ち、周期Ｔに含まれる信号波形の繰り返しは任意の回数でよく、その波形も正弦波、余弦波ばかりではなく、台形波、矩形波、三角波等、如何なる波形でも良い。この例では応答信号（SENSOR RESPONSE）も同じ基本周波数ｆｋを持つ信号となる。検出信号よりもむしろ応答信号が正弦波、余弦波となるように検出信号の波形を調整してもよい。
【００９９】
アナログ／ディジタル変換器（ADC）３は、応答信号（SENSOR RESPONSE）をサンプリングしてディジタル値に変換し、時系列の応答データＲ（０）〜Ｒ（Ｎ−１）として出力する。この例では周期Ｔの期間中にＮ回のサンプリングを行うものとして説明する。Ｎ個の時間ドメインの応答データＲ（０）〜Ｒ（Ｎ−１）が得られることとなる。これを離散フーリエ変換して周波数ドメインに変換する。その結果、周波数ドメインの応答信号Ｆ（０）〜Ｆ（Ｎ−１）が得られる。
【０１００】
離散フーリエ変換の基本的な変換式を以下に示す。
【０１０１】
【数１】
2017215646.tif 000003
【０１０２】
【数２】
2017215646.tif 000004
【０１０３】
【数３】
2017215646.tif 000005
【０１０４】
式１は、周波数ドメインの信号Ｆ（０）〜Ｆ（Ｎ−１）と時間ドメインの信号Ｒ（０）〜Ｒ（Ｎ−１）の関係を示す変換式である。式２はこれを書き換えて、時間ドメインの信号Ｒ（０）〜Ｒ（Ｎ−１）から、周波数ドメインの信号Ｆ（０）〜Ｆ（Ｎ−１）を算出する形式に変形した変換式である。ここで図１４に例示するように、周期Ｔの期間に基本周波数ｆｋ＝１／ｔ０の信号が４周期分含まれると仮定すると、周波数ｆｋの周波数ドメインの信号成分Ｆ（ｆｋ）は、式３のように表される。このように、応答信号に含まれる全ての周波数成分ではなく、基本周波数ｆｋの成分の計算のみとすることにより、演算量は大幅に削減され、例えば高速フーリエ変換回路を搭載するよりも回路規模を抑えることができる。なお、基本周波数ｆｋのみに限定する必要はなく、２倍、３倍の高調波成分まで含めて良いし、他の特徴的な周波数成分のみを算出するように変更してもよい。
【０１０５】
〔実施形態２〕任意波形生成器＋係数生成器＋窓関数生成器
図２は、実施形態２のタッチ検出回路１００の構成例を示すブロック図である。タッチ検出回路１００は、電流−電流変換器（Current Conveyor）２、シグマデルタ変調器（SDM：Sigma Delta Modulator）４、離散フーリエ変換器（DFT: Discrete Fourier Transfer）５、任意波形生成器（DDS: Direct Digital Synthesizer）６、Ｄ／Ａ変換器（DAC: Digital to Analog Convertor）７、係数生成器（Coefficient Generator）８、及び、タイマ（TIMER）１０を備え、センサノード１とマイコン（MCU: Micro Controller Unit）１１に接続される。
【０１０６】
実施形態２のタッチ検出回路１００は、センサノード１に印加する検出信号（SENSING WAVE）と離散フーリエ変換器（DFT）５に供給するフーリエ係数を、共通のタイマ１０に同期して生成して供給する点に特徴がある。任意波形生成器（DDS）６は、タイマ１０から供給されるタイミング信号に基づいて、時系列データを生成してＤ／Ａ変換器７に供給し、Ｄ／Ａ変換器７はアナログの検出信号に変換してセンサノード１に印加する。一方、係数生成器８も同じくタイマ１０から供給されるタイミング信号に基づいて、フーリエ係数を生成して離散フーリエ変換器５に供給する。
【０１０７】
印加される検出信号（SENSING WAVE）に応じてセンサノード１から得られる応答信号（SENSOR RESPONSE）は、電流−電流変換器（Current Conveyor）２を介してシグマデルタ変調器（SDM）４に入力され、離散的なディジタルの時系列データに変換されて、離散フーリエ変換器（DFT）５に供給される。離散フーリエ変換器（DFT）５では、それぞれ順次供給される時系列データとフーリエ係数との畳み込み演算を行って、周波数ドメインの成分の実数項dft_realと虚数項dft_imgを求めて、マイコン（MCU）１１に出力する。これに代えて、実数項dft_realと虚数項dft_imgそれぞれの２乗の和の平方根（RMS: Root Mean Square）により、ゲインGAIN（周波数ドメインにおける振幅）を算出して、マイコン（MCU）１１に出力してもよい。
【０１０８】
タッチ検出回路１００は、さらに窓関数生成器（Window Generator）９を備えてもよい。窓関数生成器９にも係数生成器８と同じくタイマ１０からタイミング信号が供給され、このタイミング信号に同期して窓関数の係数が係数生成器８に供給される。係数生成器８は供給される窓関数の係数を乗じてフーリエ係数を算出し、離散フーリエ変換器（DFT）５に供給する。これにより、入力される応答信号が、有限長であることによるスペクトル精度の低下を補償することができる。
【０１０９】
図２は、相互容量方式のタッチパネルを想定し、検出信号の出力端子と応答信号の入力端子が、別個に備えられるものとして説明したが、自己容量方式のタッチパネルに接続できるように変更することもできる。電流−電流変換器（Current Conveyor）２にＤ／Ａ変換器７から検出信号（SENSING WAVE）を入力して、応答信号（SENSOR RESPONSE）から検出信号の成分を相殺して除去し、残ったセンサノードの容量値を反映する信号成分のみを、シグマデルタ変調器（SDM）４に入力する。なお、電流−電流変換器（Current Conveyor）２に代えて、電流−電圧変換器（Trans-Impedance Amplifier）を備えても良い。これにより、シグマデルタ変調器（SDM）４は、電圧入力とすることができる。電流−電流変換器（Current Conveyor）２に代えて、電圧−電流変換器（Trans-Conductance Amplifier）あるいは 電圧−電圧変換器（Voltage Convertor）を備えても良い。これにより、応答信号（SENSOR RESPONSE）は、電圧信号とすることができる。
【０１１０】
〔実施形態３〕係数メモリの共用
任意波形生成器（DDS）６と係数生成器８と窓関数生成器９は、それぞれの時系列データを保持するメモリと、タイマ１０から供給されるタイミング信号によってカウント動作を行うアドレスカウンタとを備え、アドレスカウンタから供給されるアドレスによってメモリからデータを順次読み出すことによってそれぞれの時系列データを生成する。
【０１１１】
〔波形メモリと係数メモリをそれぞれ備える場合〕
図３は、波形メモリ（DDS Wave RAM）と係数メモリ（Coef. RAM）とそれぞれ備える場合の構成例を示すブロック図である。
【０１１２】
任意波形生成器（DDS）６は、検出信号を生成するための時系列データを保持する波形メモリ（DDS Wave RAM）６１と、タイマ１０から供給されるタイミング信号によってカウント動作を行うアドレスカウンタを含むDDS制御部（DDSC）６０とを備える。DDS制御部（DDSC）６０内のアドレスカウンタから供給されるアドレス（addr）にしたがって波形メモリ６１からデータを順次読み出すことによって時系列データ（data）を生成する。生成された時系列データ（dds_out）は、Ｄ／Ａ変換器７によってアナログの検出信号に変換されてセンサノード１に印加される。
【０１１３】
窓関数生成器９は、窓関数の係数を保持する窓関数係数メモリ（Window RAM）９１と、タイマ１０から供給されるタイミング信号によってカウント動作を行うアドレスカウンタを含む窓関数生成制御部（WndwGC）９０とを備える。窓関数生成制御部９０内のアドレスカウンタから供給されるアドレス（addr）にしたがって窓関数係数メモリ９１から窓関数の係数値を順次読み出して係数生成器８に供給する。
【０１１４】
係数生成器８は、フーリエ係数を保持する係数メモリ（Coef. RAM）８１と、タイマ１０から供給されるタイミング信号によってカウント動作を行うアドレスカウンタを含む係数生成制御部（CoefGC）８０とを備える。係数生成制御部８０内のアドレスカウンタから供給されるアドレス（addr）にしたがって係数メモリ８１からフーリエ変換の係数値（実数部data_realと虚数部data_img）を順次読み出し、係数生成制御部８０内で窓関数生成器９から供給された窓関数の係数を乗じて、離散フーリエ変換器（DFT）５に供給する。
【０１１５】
係数メモリ８１に、フーリエ変換の係数値と窓関数の係数値を予め乗じた値を格納し、窓関数生成器９を省略することもできる。これにより、回路規模をより小さく抑えることができる。
【０１１６】
波形メモリ（DDS Wave RAM）６１、係数メモリ（Coef. RAM）８１及び窓関数係数メモリ（Window RAM）９１のそれぞれをＲＡＭで実装する例を示したが、ＲＯＭその他の方式のメモリであってもよい。また、１個のメモリのみを備え、時分割でアクセスするように実装しても良い。さらには、メモリに代えて、演算回路によって実装してもよい。このことは、他の図面で引用する係数メモリ８２〜８４についても同様である。
【０１１７】
〔係数メモリを波形メモリと共用する場合（１）〕
図３に示した例では波形メモリ６１と係数メモリ８１とをそれぞれ備えたが、係数メモリ８１に格納されるデータは、フーリエ係数であるから、位相（φ）に対応した余弦（cosφ）と正弦（sinφ）の値である。例えば、位相（φ）に対応した余弦（cosφ）は、cos(0), cos(π/4), cos(π/2), cos(3π/4), cos(π), cos(5π/4), cos(3π/2), cos(7π/4), cos(2π)であり、位相（φ）に対応した正弦（sinφ）は、sin(0), sin(π/4), sin(π/2), sin(3π/4), sin(π), sin(5π/4), sin(3π/2), sin(7π/4), sin(2π)である。したがって、任意波形生成器（DDS）６が生成する検出信号を同じ周波数の正弦波または余弦波とする場合には、係数メモリを波形メモリと共用することができる。
【０１１８】
図４は、係数メモリ（Coef. RAM）８１を任意波形生成器（DDS）６と係数生成器８とで共用する、第１（アドレス共通）の構成例を示すブロック図である。係数メモリを共用すると、任意波形生成器（DDS）６と係数生成器８の２つのブロックは渾然としてその境界は判然としなくなるので、ブロック境界は図示しない。
【０１１９】
DDS制御部（DDSC）６０内のアドレスカウンタから供給されるアドレス（addr）にしたがって係数メモリ８１からフーリエ変換の係数値（実数部data_realと虚数部data_img）を順次読み出し、係数生成制御部８０内で窓関数生成器９から供給された窓関数の係数（window）を乗じて、離散フーリエ変換器（DFT）５に供給する。係数メモリ８１から読み出されるフーリエ変換の係数値の虚数部data_imgは、正弦波の時系列データと同じであるから、これをDDS制御部（DDSC）６０からＤ／Ａ変換器７に供給して、アナログの検出信号に変換する。窓関数生成器９の構成と動作は、図３と同様であるので説明を省略する。
【０１２０】
このように、係数メモリ（Coef. RAM）８１を任意波形生成器（DDS）６と係数生成器８とで共用することにより、波形メモリ６１を不要とすることができ、回路規模を小さく抑えることができる。
【０１２１】
さらに、DDS制御部（DDSC）６０から係数生成制御部８０へ検出信号の位相情報を伝達するdds_phase信号を供給することにより、係数メモリ８１の記憶容量をさらに削減することができる。係数メモリ８１に格納される値が、位相（φ）に対応した正弦（sinφ）である場合、位相が０〜πの期間とπ〜２πの期間で係数値data_imgは極性が反転する。dds_phase信号によってこの位相情報を伝達し、係数生成制御部８０で係数値data_imgの極性を操作すれば、係数メモリ８１の記憶容量を半減することができる。さらに、位相が0〜π/2の期間とπ/2〜πの期間と、π〜3π/2の期間と3π/2〜2πの期間とではそれぞれ中央の位相値を挟んで対称の係数値となっている。この性質を利用して係数メモリ８１の記憶容量を1/4に減らすことができる。この例については、次の実施形態４で図７〜図９を参照して詳しく説明する。
【０１２２】
〔係数メモリを波形メモリと共用する場合（２）〕
図５は、係数メモリ（Coef. RAM）８２を任意波形生成器（DDS）６と係数生成器８とで共用する、第２（アドレス分離）の構成例を示すブロック図である。図４に示した例と同様に、係数メモリを共用すると、任意波形生成器（DDS）６と係数生成器８の２つのブロックは渾然としてその境界は判然としなくなるので、ブロック境界は図示しない。
【０１２３】
図４に示した例との相違点は、図４の係数メモリ８１がDDS制御部（DDSC）６０内のアドレスカウンタから供給されるアドレス（addr）にしたがってアクセスされていたのに対して、図５の係数メモリ８２は、DDS制御部（DDSC）６０内のアドレスカウンタから供給されるアドレス（addr_dds）と係数生成制御部８０内のアドレスカウンタから供給されるアドレス（addr_coef）のそれぞれにしたがってアクセスされる点である。係数メモリ８２に格納されるデータ自体は図４の係数メモリ８１と同様である。DDS制御部（DDSC）６０側のアドレス（addr_dds）にしたがって読み出されたデータdata_dds_imgは、Ｄ／Ａ変換器７に供給されてアナログの検出信号に変換される。係数生成制御部８０側のアドレス（addr_coef）にしたがって読み出されたデータdata_coef_imgとdata_coef_realは、係数生成制御部８０内で窓関数生成器９から供給された窓関数の係数（window）を乗じられて、離散フーリエ変換器（DFT）５に供給される。他の構成と動作は図４と同様であるので説明を省略する。
【０１２４】
検出信号の時系列データdata_dds_imgと順次供給されるフーリエ係数値data_coef_imgとdata_coef_realの位相と周波数の一方または両方が互いに異なるような波形を生成することができる。例えば、係数メモリ８２に格納されるデータをcos(0), cos(π/4), cos(π/2), cos(3π/4), cos(π), cos(5π/4), cos(3π/2), cos(7π/4), cos(2π)であるとし、フーリエ係数値data_coef_imgとして位相０のcos(0)から順に読出し、検出信号の時系列データdata_dds_imgとして位相π/4のcos(π/4)から順に読み出せば、π/4だけ位相をシフトさせることができる。また、DDS制御部（DDSC）６０内のアドレスカウンタと係数生成制御部８０内のアドレスカウンタの動作速度を異ならせれば、周波数を相違させることができる。係数生成制御部８０側のアドレス（addr_coef）即ち係数側の位相をDDS制御部（DDSC）６０側のアドレス（addr_dds）即ち検出信号の位相の整数倍とすれば、離散フーリエ変換器（DFT）５において検出信号の基本周波数の高調波成分を算出させることができる。ただし、整数倍に限定されるものでなく、係数側の位相（アドレスaddr_coef）と検出信号側の位相（アドレスaddr_dds）との関係は任意に与えることができる。
【０１２５】
係数メモリ８２は、図５に示す通りアドレスポートを２つ持つ、２ポートメモリにより実装することができるが、シングルポートメモリを実装し、２つのアドレスによるアクセスを時分割で行うように構成してもよい。
【０１２６】
〔係数メモリを波形メモリと共用する場合（３）〕
図６は、係数メモリ（Coef. RAM）８２を任意波形生成器（DDS）６と係数生成器８とで共用する、第３（アドレス分離、高調波に対応）の構成例を示すブロック図である。図４、図５に示した例と同様に、係数メモリを共用すると、任意波形生成器（DDS）６と係数生成器８の２つのブロックは渾然としてその境界は判然としなくなるので、ブロック境界は図示しない。
【０１２７】
図５に示した例との相違点は、乗算器２０がさらに具備され、係数側の位相（アドレスaddr_coef）として、検出信号側の位相（アドレスaddr_dds）を整数Ｍ倍された値が、係数メモリ８２に入力される点である。整数Ｍは、係数生成制御部８０から供給される。係数メモリ８２に格納されるデータ自体は図５の係数メモリ８１と同様である。DDS制御部（DDSC）６０側のアドレス（addr_dds）にしたがって読み出されたデータdata_dds_imgは、Ｄ／Ａ変換器７に供給されてアナログの検出信号に変換される。係数生成側では、整数Ｍ倍されたアドレスaddr_coef_xMにしたがって読み出されたデータdata_dds_xM_imgとdata_dds_xM_realに、係数生成制御部８０内で窓関数生成器９から供給された窓関数の係数を乗じられて、離散フーリエ変換器（DFT）５に供給される。他の構成と動作は図５と同様であるので説明を省略する。
【０１２８】
これにより、少ない回路規模で、離散フーリエ変換器（DFT）５において検出信号の基本周波数の高調波成分を算出させることができる。
【０１２９】
〔実施形態４〕係数メモリに１／４波長分のデータを格納
上述したように係数メモリに格納されるデータは、その対称性を考慮すれば１周期の１／４に抑えることができる。したがって、係数メモリの記憶容量も１周期全体を格納する場合の１／４に抑えることができる。
【０１３０】
〔1/4 Cosine RAM〕
図７は、係数メモリ（Coef. RAM）８３が１／４波長の余弦波データを格納する、係数生成器８の構成例を示すブロック図である。即ち、係数メモリ８３は「1/4 Cosine RAM」とされ、余弦（cosφ）のうち位相範囲0≦φ0＜π/2のデータが格納されている。
【０１３１】
係数生成器８は、Pビットのアドレス値である係数アドレスcoef_addr[P-1:0]が入力されたとき、係数メモリ（Coef. RAM）８３をアクセスしてデータを読み出し、それぞれQビットの係数データの実数部coef_data_real[Q-1:0]と虚数部coef_data_img[Q-1:0]とを出力する（P及びQは自然数）。
【０１３２】
係数生成器８は、係数メモリ８３、Ｐ−２ビットインバータ２１、２つセレクタ２３と２４、インバータ３０、XORゲート３１、及び、バッファ３２を備える。
【０１３３】
係数アドレスcoef_addr[P-1:0]はPビットのアドレス値であり、coef_addr[P-1]は最上位ビット、coef_addr[P-2]は最上位の次のビットである。係数アドレスcoef_addr[P-1:0]は、全体で0≦φ＜2πの位相範囲に対応する。位相範囲0≦φ0＜π/2のときcoef_addr[P-1:P-2]=0x00、π/2≦φ1＜πのときcoef_addr[P-1:P-2]=0x01、π≦φ2＜3π/2のときcoef_addr[P-1:P-2]=0x10、3π/2≦φ3＜2πのときcoef_addr[P-1:P-2]=0x11となる。ここで、「[x:y]」の表記は第yビットから第xビットまでのｘ−ｙ＋１ビットの２進数の変数を意味し、先頭に「0x」を付した２進数はそのビット数の２進数の値を表記する。
【０１３４】
Ｐ−２ビットインバータ２１は、係数アドレスの上位２ビットを除くＰ−２ビット（coef_addr[P-3:0]）すべてを反転させ、coef_addr_b[P-3:0]を出力する。インバータ３０は、係数アドレスの第２上位ビットcoef_addr[P-2]を反転させ、coef_addr_b[P-2]を出力する。XORゲート３１は、係数アドレスの上位２ビットcoef_addr[P-1]とcoef_addr[P-2]の排他的論理和をとって、係数データの実数部の最上位ビットcoef_data_real[Q-1]として出力する。バッファ３２は、係数アドレスの最上位ビットcoef_addr[P-1]をそのまま係数データの虚数部の最上位ビットcoef_data_img[Q-1]として出力する。
【０１３５】
位相範囲0≦φ0＜π/2のとき、実数部はcosφ0=cos(φ0)であるから、セレクタ２３はcoef_addr[P-2]=0x0側を選択して、ビット反転されないアドレスcoef_addr[P-3:0]を実数部のためのアドレスcoef_ram_addr_real[P-3:0]として出力し、読み出されたデータcoef_data_real[Q-2:0]に最上位ビットcoef_data_real[Q-1]=0x0を付加して正の値のまま、係数値coef_data_real[Q-1:0]を出力する。虚数部はsinφ0=cos(−φ0)であるから、セレクタ２４はcoef_addr_b[P-2]=0x1側を選択して、ビット反転されたアドレスcoef_addr_b[P-3:0]を虚数部のためのアドレスcoef_ram_addr_img[P-3:0]として出力し、読み出されたデータcoef_data_img[Q-2:0]に最上位ビットcoef_data_img[Q-1]=0x1を付加して正の値のまま、係数値coef_data_img[Q-1:0]を出力する。
【０１３６】
位相範囲π/2≦φ1＜πのとき、実数部はcosφ1=−cos(−φ0)であるから、セレクタ２３はcoef_addr[P-2]=0x1側を選択して、ビット反転されたアドレスcoef_addr_b[P-3:0]を実数部のためのアドレスcoef_ram_addr_real[P-3:0]として出力し、読み出されたデータcoef_data_real[Q-2:0]に最上位ビットcoef_data_real[Q-1]=0x1を付加して負の値に変換して、係数値coef_data_real[Q-1:0]を出力する。虚数部はsinφ1=cos(φ0)であるから、セレクタ２４はcoef_addr_b[P-2]=0x0側を選択して、ビット反転されないアドレスcoef_addr[P-3:0]を虚数部のためのアドレスcoef_ram_addr_img[P-3:0]として出力し、読み出されたデータcoef_data_img[Q-2:0]に最上位ビットcoef_data_img[Q-1]=0x0を付加して正の値のまま、係数値coef_data_img[Q-1:0]を出力する。
【０１３７】
位相範囲π≦φ2＜3π/2のとき、実数部はcosφ2=−cos(φ0)であるから、セレクタ２３はcoef_addr[P-2]=0x0側を選択して、ビット反転されないアドレスcoef_addr[P-3:0]を実数部のためのアドレスcoef_ram_addr_real[P-3:0]として出力し、読み出されたデータcoef_data_real[Q-2:0]に最上位ビットcoef_data_real[Q-1]=0x1を付加して負の値に変換して、係数値coef_data_real[Q-1:0]を出力する。虚数部はsinφ2=−cos(−φ0)であるから、セレクタ２４はcoef_addr_b[P-2]=0x1側を選択して、ビット反転されたアドレスcoef_addr_b[P-3:0]を虚数部のためのアドレスcoef_ram_addr_img[P-3:0]として出力し、読み出されたデータcoef_data_img[Q-2:0]に最上位ビットcoef_data_img[Q-1]=0x1を付加して負の値に変換して、係数値coef_data_img[Q-1:0]を出力する。
【０１３８】
位相範囲3π/2≦φ3＜2πのとき、実数部はcosφ3=cos(−φ0)であるから、セレクタ２３はcoef_addr[P-2]=0x1側を選択して、ビット反転されたアドレスcoef_addr_b[P-3:0]を実数部のためのアドレスcoef_ram_addr_real[P-3:0]として出力し、読み出されたデータcoef_data_real[Q-2:0]に最上位ビットcoef_data_real[Q-1]=0x0を付加して正の値のまま、係数値coef_data_real[Q-1:0]を出力する。虚数部はsinφ3=−cos(φ0)であるから、セレクタ２４はcoef_addr_b[P-2]=0x0側を選択して、ビット反転されないアドレスcoef_addr[P-3:0]を虚数部のためのアドレスcoef_ram_addr_img[P-3:0]として出力し、読み出されたデータcoef_data_img[Q-2:0]に最上位ビットcoef_data_img[Q-1]=0x1を付加して負の値に変換して、係数値coef_data_img[Q-1:0]を出力する。
【０１３９】
以上説明したように、フーリエ係数データの対称性を考慮することにより、係数メモリの記憶容量を、１周期全体を格納する場合の１／４に抑えることができる。
【０１４０】
〔1/4 Sine RAM〕
係数メモリは、余弦波データに代えて正弦波データを格納したものに変更しても良い。
【０１４１】
図８は、係数メモリ（Coef. RAM）８４が１／４波長の正弦波データを格納する、係数生成器８の構成例を示すブロック図である。即ち、係数メモリ８４は「1/4 Sine RAM」とされ、正弦（sinφ）のうち位相範囲0≦φ0＜π/2のデータが格納されている。
【０１４２】
係数生成器８は、Pビットのアドレス値である係数アドレスcoef_addr[P-1:0]が入力されたとき、係数メモリ（Coef. RAM）８４をアクセスしてデータを読み出し、それぞれQビットの係数データの実数部coef_data_real[Q-1:0]と虚数部coef_data_img[Q-1:0]とを出力する。
【０１４３】
係数生成器８は、係数メモリ８４、Ｐ−２ビットインバータ２１、２つセレクタ２３と２４、インバータ３０、XORゲート３１、及び、バッファ３２を備える。
【０１４４】
Ｐ−２ビットインバータ２１は、係数アドレスの上位２ビットを除くＰ−２ビット（coef_addr[P-3:0]）すべてを反転させ、coef_addr_b[P-3:0]を出力する。インバータ３０は、係数アドレスの第２上位ビットcoef_addr[P-2]を反転させ、coef_addr_b[P-2]を出力する。XORゲート３１は、係数アドレスの上位２ビットcoef_addr[P-1]とcoef_addr[P-2]の排他的論理和をとって、係数データの実数部の最上位ビットcoef_data_real[Q-1]として出力する。バッファ３２は、係数アドレスの最上位ビットcoef_addr[P-1]をそのまま係数データの虚数部の最上位ビットcoef_data_img[Q-1]として出力する。
【０１４５】
位相範囲0≦φ0＜π/2のとき、実数部はcosφ0=sin(−φ0)であるから、セレクタ２３はcoef_addr_b[P-2]=0x1側を選択して、ビット反転されたアドレスcoef_addr_b[P-3:0]を実数部のためのアドレスcoef_ram_addr_real[P-3:0]として出力し、読み出されたデータcoef_data_real[Q-2:0]に最上位ビットcoef_data_real[Q-1]=0x0を付加して正の値のまま、係数値coef_data_real[Q-1:0]を出力する。虚数部はsinφ0=sin(φ0)であるから、セレクタ２４はcoef_addr[P-2]=0x0側を選択して、ビット反転されないアドレスcoef_addr[P-3:0]を虚数部のためのアドレスcoef_ram_addr_img[P-3:0]として出力し、読み出されたデータcoef_data_img[Q-2:0]に最上位ビットcoef_data_img[Q-1]=0x0を付加して正の値のまま、係数値coef_data_img[Q-1:0]を出力する。
【０１４６】
位相範囲π/2≦φ1＜πのとき、実数部はcosφ1=−sin(φ0)であるから、セレクタ２３はcoef_addr_b[P-2]=0x0側を選択して、ビット反転されないアドレスcoef_addr[P-3:0]を実数部のためのアドレスcoef_ram_addr_real[P-3:0]として出力し、読み出されたデータcoef_data_real[Q-2:0]に最上位ビットcoef_data_real[Q-1]=0x1を付加して負の値に変換して、係数値coef_data_real[Q-1:0]を出力する。虚数部はsinφ1=sin(−φ0)であるから、セレクタ２４はcoef_addr[P-2]=0x1側を選択して、ビット反転されたアドレスcoef_addr_b[P-3:0]を虚数部のためのアドレスcoef_ram_addr_img[P-3:0]として出力し、読み出されたデータcoef_data_img[Q-2:0]に最上位ビットcoef_data_img[Q-1]=0x0を付加して正の値のまま、係数値coef_data_img[Q-1:0]を出力する。
【０１４７】
位相範囲π≦φ2＜3π/2のとき、実数部はcosφ2=−sin(−φ0)であるから、セレクタ２３はcoef_addr_b[P-2]=0x1側を選択して、ビット反転されたアドレスcoef_addr_b[P-3:0]を実数部のためのアドレスcoef_ram_addr_real[P-3:0]として出力し、読み出されたデータcoef_data_real[Q-2:0]に最上位ビットcoef_data_real[Q-1]=0x1を付加して負の値に変換して、係数値coef_data_real[Q-1:0]を出力する。虚数部はsinφ2=−sin(φ0)であるから、セレクタ２４はcoef_addr[P-2]=0x0側を選択して、ビット反転されないアドレスcoef_addr[P-3:0]を虚数部のためのアドレスcoef_ram_addr_img[P-3:0]として出力し、読み出されたデータcoef_data_img[Q-2:0]に最上位ビットcoef_data_img[Q-1]=0x1を付加して負の値に変換して、係数値coef_data_img[Q-1:0]を出力する。
【０１４８】
位相範囲3π/2≦φ3＜2πのとき、実数部はcosφ3=sin(φ0)であるから、セレクタ２３はcoef_addr_b[P-2]=0x0側を選択して、ビット反転されないアドレスcoef_addr[P-3:0]を実数部のためのアドレスcoef_ram_addr_real[P-3:0]として出力し、読み出されたデータcoef_data_real[Q-2:0]に最上位ビットcoef_data_real[Q-1]=0x0を付加して正の値のまま、係数値coef_data_real[Q-1:0]を出力する。虚数部はsinφ3=−sin(−φ0)であるから、セレクタ２４はcoef_addr[P-2]=0x1側を選択して、ビット反転されたアドレスcoef_addr_b[P-3:0]を虚数部のためのアドレスcoef_ram_addr_img[P-3:0]として出力し、読み出されたデータcoef_data_img[Q-2:0]に最上位ビットcoef_data_img[Q-1]=0x1を付加して負の値に変換して、係数値coef_data_img[Q-1:0]を出力する。
【０１４９】
以上説明したように、フーリエ係数データの対称性を考慮することにより、係数メモリとして１／４波長の正弦波データを格納する1/4 Sine RAMを用いても、その記憶容量を、１周期全体を格納する場合の１／４に抑えることができる。
【０１５０】
〔1/4 Sine RAMをDDS用波形RAMと共用〕
実施形態３で説明した、係数メモリを波形メモリと共用する場合においても、共用する係数メモリの記憶容量も１周期全体を格納する場合の１／４に抑えることができる。図５を引用して説明した、係数側のアドレスaddr_coefと検出信号側のアドレスaddr_ddsとの関係を任意に与えることができる構成に、図８を引用して説明したような係数メモリ（Coef. RAM）８４が１／４波長の正弦波データを格納する構成を組み合わせた形態を一例として説明する。他の組合せも同様である。
【０１５１】
図９は、係数メモリ（Coef. RAM）が１／４波長の正弦波データを格納し、任意波形生成器と係数生成器のアドレスを分離した構成例を示すブロック図である。図８に示した係数生成器８の構成に、Ｐ−２ビットインバータ２２、セレクタ２５、及び、バッファ３４が追加される。図８に示した係数生成器８の構成と同じ部分は動作も同じであるので、説明を省略する。
【０１５２】
追加された検出信号側のPビットのアドレスdds_addr[P-1:0]が入力されたとき、係数メモリ（Coef. RAM）８４をアクセスしてデータを読み出し、Qビットの検出信号側のデータdds_data_img[Q-1:0]を出力する。このとき、検出信号側のデータdds_data_img[Q-1:0]は正弦波であるとして説明する。
【０１５３】
Ｐ−２ビットインバータ２２は、検出信号側のアドレスの上位２ビットを除くＰ−２ビット（dds_addr[P-3:0]）すべてを反転させ、dds_addr_b[P-3:0]を出力する。インバータ３３は、検出信号側のアドレスの第２上位ビットdds_addr[P-2]を反転させ、dds_addr_b[P-2]を出力する。バッファ３４は、検出信号側のアドレスの最上位ビットdds_addr[P-1]をそのまま検出信号側のデータの最上位ビットdds_data_img[Q-1]として出力する。
【０１５４】
位相範囲0≦φ0＜π/2のとき、sinφ0=sin(φ0)であるから、セレクタ２５はdds_addr[P-2]=0x0側を選択して、ビット反転されないアドレスdds_addr[P-3:0]をアドレスdds_ram_addr_img[P-3:0]として出力し、読み出されたデータdds_data_img[Q-2:0]に最上位ビットdds_data_img[Q-1]=0x0を付加して正の値のまま、検出信号側のデータdds_data_img[Q-1:0]を出力する。
【０１５５】
位相範囲π/2≦φ1＜πのとき、sinφ1=sin(−φ0)であるから、セレクタ２５はdds_addr[P-2]=0x1側を選択して、ビット反転されたアドレスdds_addr_b[P-3:0]をアドレスdds_ram_addr_img[P-3:0]として出力し、読み出されたデータdds_data_img[Q-2:0]に最上位ビットdds_data_img[Q-1]=0x0を付加して正の値のまま、検出信号側のデータdds_data_img[Q-1:0]を出力する。
【０１５６】
位相範囲π≦φ2＜3π/2のとき、sinφ2=−sin(φ0)であるから、セレクタ２５はdds_addr[P-2]=0x0側を選択して、ビット反転されないアドレスdds_addr[P-3:0]をアドレスdds_ram_addr_img[P-3:0]として出力し、読み出されたデータdds_data_img[Q-2:0]に最上位ビットdds_data_img[Q-1]=0x1を付加して負の値に変換して、検出信号側のデータdds_data_img[Q-1:0]を出力する。
【０１５７】
位相範囲3π/2≦φ3＜2πのとき、sinφ3=−sin(−φ0)であるから、セレクタ２５はdds_addr[P-2]=0x1側を選択して、ビット反転されたアドレスdds_addr_b[P-3:0]をアドレスdds_ram_addr_img[P-3:0]として出力し、読み出されたデータdds_data_img[Q-2:0]に最上位ビットdds_data_img[Q-1]=0x1を付加して負の値に変換して、検出信号側のデータdds_data_img[Q-1:0]を出力する。
【０１５８】
以上のように、係数メモリを波形メモリと共用する場合においても、共用する係数メモリの記憶容量も１周期全体を格納する場合の１／４に抑えることができる。
【０１５９】
〔実施形態４〕1-bit SDM
シグマデルタ変調器（SDM）４を１ビット構成とすることにより、離散フーリエ変換器（DFT）５の回路規模を抑えることができる。
【０１６０】
図１０は、実施形態４の離散フーリエ変換器（DFT）５の構成例を示すブロック図である。離散フーリエ変換器（DFT）５には、１ビットのシグマデルタ変調器（SDM）４から応答信号に対応する１ビット信号と、係数生成器８から供給される実数部coef_data_real[Q-1:0]と虚数部coef_data_img[Q-1:0]からなる離散フーリエ変換の基底関数列とが入力され、変換結果である実数部dft_realと虚数部dft_imgとが出力される。離散フーリエ変換器（DFT）５は、実数部と虚数部のそれぞれに、正負反転回路２６と２７、セレクタ２８と２９、累算器４０と４１とを備える。
【０１６１】
シグマデルタ変調器（SDM）４から入力される、応答信号に対応した１ビット信号は、＋１または−１の意味を持つ時系列信号列である。１ビット信号が１の場合には、基底関数列の符号を反転せずにそのまま、０の場合には符号を反転して、累算器４０と４１で積算し、所定回数の積算後に変換結果である実数部dft_realと虚数部dft_imgとして出力する。
【０１６２】
図１１は、実施形態４の離散フーリエ変換器（DFT）５の別の構成例を示すブロック図である。離散フーリエ変換器（DFT）５は、実数部と虚数部のそれぞれに排他的論理NORゲート３５と３６をさらに備える。図７〜図９を引用して説明した実施形態３の係数生成部８からは、直交関数列がその符号と符号以外の部分に分かれて出力される。即ち、１／４周期に記憶容量を抑えられた係数メモリ８３と８４からは、coef_data_real[Q-2:0]として余弦（cosine）関数列の符号を除くビットと、coef_data_img[Q-2:0]として正弦（sine）関数列の符号を除くビットと、それぞれの符号ビットcoef_data_real[Q-1]とcoef_data_img[Q-1]とが出力される。各図では全ビットを揃えて出力するように図示されているが、出力する回路が異なることは明らかである。
【０１６３】
図１１に示す離散フーリエ変換器（DFT）５は、このような係数生成器８との整合が良い。排他的NORゲート３５と３６によって、シグマデルタ変調器（SDM）４から入力される、応答信号に対応した１ビット信号と、係数生成器８から入力される直交関数列の符号ビットcoef_data_real[Q-1]とcoef_data_img[Q-1]とのそれぞれの排他的論理NORを求める。その結果は、応答信号と直交関数列の積の、実数部と虚数部それぞれの極性を表す。排他的論理NORなので、正の場合は０、負の場合は１である。その結果が１（応答信号と直交関数列の積が負）の場合は、直交関数列coef_data_real[Q-1:0]とcoef_data_img[Q-1:0]の極性を反転し、０（応答信号と直交関数列の積が正）の場合は反転せずに、それぞれ累算器４０と４１で積算する。所定回数の積算後に変換結果である実数部dft_realと虚数部dft_imgとして出力する。
【０１６４】
数表記法及びそれに対応する回路構成は任意である。例えば、図７〜図９の係数生成器８から入力される直交関数列は符号付き絶対値表現であるので、図１１の２６と２７をそれぞれ全ビット反転回路とし、応答信号と直交関数列の積が負の場合は、直交関数列の符号ビットを除いた他の全ビット（coef_data_real[Q-2:0]とcoef_data_img[Q-2:0]）を反転し、符号ビットを付加して累算器４０と４１にそれぞれ入力する。これにより、累算器４０と４１はそれぞれ１の補数表現での加算を行う。
【０１６５】
なお、排他的論理NORに代えて排他的論理ORゲートを備え、セレクタ２８と２９の接続を変更してもよい。
【０１６６】
また、本実施形態に限らず、すべての実施形態について、離散フーリエ変換器（DFT）５の変換結果である実数部dft_realと虚数部dft_imgの二乗平均の平方根（RMS: Root Mean Square）を算出して、変換結果の振幅成分として出力しても良い。このとき、平方根を省略して二乗平均を振幅成分の二乗として出力してもよい。振幅成分またはそれに対応する振幅成分の二乗を出力するように構成することにより、フーリエ変換等を行わずに時間ドメインでのセンサノードの変化を計測する従来方式のタッチ検出回路に接続される、タッチ座標算出回路またはタッチ座標算出プログラムをそのまま、或いは、軽微な変更のみで流用することができる。
【０１６７】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【０１６８】
例えば、ブロック図に示したブロック分割は、単なる一例に過ぎず、１つのブロックの一部または全部の機能を他のブロックの機能と渾然一体に実現した別のブロックに変更して実現するなどの変更は、適宜任意に行うことができる。また、機能の一部を例えば後段のマイクロコントローラ１１によるソフトウェア処理によって実現することもできる。
【符号の説明】
【０１６９】
１  センサノード（Sensor Electrode）
２  電流−電流変換器（Current Conveyor）
３  Ａ／Ｄ変換器（ADC: Analog to Digital Convertor）、
４  シグマデルタ変調器（SDM：Sigma Delta Modulator）
５  離散フーリエ変換器（DFT: Discrete Fourier Transfer）
６  任意波形生成器（DDS: Direct Digital Synthesizer）
７  Ｄ／Ａ変換器（DAC: Digital to Analog Convertor）
８  係数生成器（Coefficient Generator）
９  窓関数生成器（Window Generator）
１０  タイマ（TIMER）
１１  マイコン（MCU: Micro Controller Unit）
１２、１３  排他的論理和ゲート／排他的論理ＮＯＲゲート（XNOR）
１４、１５  符号反転選択回路
１６、１７  累算器（Accumulator）
１８  ゲイン算出器（RMS: Root Mean Square）
１９  位相算出器（Tan−１: Arctangent）
２０  乗算器
２１、２２  ビット反転器（P−2bit inverter）
２３、２４、２５、２８、２９  セレクタ
２６、２７  正負反転回路
３０〜３６  論理ゲート
４０、４１  累算器
６０  ＤＤＳ制御部（DDSC）
６１  波形メモリ（DDS Wave RAM）
８０  係数生成制御部（CoefGC）
８１〜８６  係数メモリ（Coef. RAM）
９０  窓関数生成制御部（WndwGC）
９１  窓関数係数メモリ（Window RAM）
１００  タッチ検出回路（TS: Touch Sensor）
１０１  検出信号駆動回路（SD: Sensing Wave Driver）
１０２  インターフェース（I/F）
２０１、２０２  タッチコントローラＩＣ
３０１  相互容量方式タッチパネル
３０２  自己容量方式タッチパネル
Ｃｘ  センサ容量
【図１】
2017215646.tif 000006
【図２】
2017215646.tif 000007
【図３】
2017215646.tif 000008
【図４】
2017215646.tif 000009
【図５】
2017215646.tif 000010
【図６】
2017215646.tif 000011
【図７】
2017215646.tif 000012
【図８】
2017215646.tif 000013
【図９】
2017215646.tif 000014
【図１０】
2017215646.tif 000015
【図１１】
2017215646.tif 000016
【図１２】
2017215646.tif 000017
【図１３】
2017215646.tif 000018
【図１４】
2017215646.tif 000019