(57)【要約】【課題】  三角関数波を生成する回路の縮小を図る技術を提供することを目的とする。【解決手段】  本発明のＤＴＭＦ信号生成回路１２は、ＤＴＭＦ信号を形成する周波数を指示する周波数指示部３０と、周波数指示部３０によって指示された周波数に応じて正弦波を算出する正弦波演算部３２と、正弦波演算部３２で算出された２種類の正弦波を合成する正弦波合成部３４とを備えている。正弦波演算部３２は、加減算器や乗算器などの演算器を有しており、テーラー展開された正弦関数の各項を算術演算することによって正弦波を生成する。【選択図】  図２
2006005915.tif 000002
【特許請求の範囲】
【請求項１】
級数展開された三角関数の各項を直接算術演算する演算器を備え、この演算器によって三角関数波を生成することを特徴とする三角関数波生成回路。
【請求項２】
前記級数展開された三角関数の各項の係数を保持するメモリをさらに備えることを特徴とする請求項１に記載の三角関数波生成回路。
【請求項３】
前記演算器は、三角関数の位相が−１／２πから１／２πの範囲に含まれるようにシフトした後に、演算処理を行うことを特徴とする請求項１または２に記載の三角関数波生成回路。
【請求項４】
級数展開を利用して第１の周波数の正弦波を算出する第１周波数正弦波生成部と、
級数展開を利用して第２の周波数の正弦波を算出する第２周波数正弦波生成部と、
第１周波数正弦波生成部で算出した正弦波と第２周波数正弦波生成部で算出した正弦波とを合成する正弦波合成部と、
を備えることを特徴とするＤＴＭＦ（Dual Tone Multi Frequency）信号生成回路。
【請求項５】
前記第１、第２周波数正弦波生成部は、請求項１から３のいずれかに記載される、ひとつの三角関数波生成回路を共有して構成されることを特徴とする請求項４に記載のＤＴＭＦ信号生成回路。
【請求項６】
前記第１、第２の周波数を、前記ひとつの三角関数波生成回路に指示する周波数指示部をさらに備えることを特徴とする請求項５に記載のＤＴＭＦ信号生成回路。
【請求項７】
請求項４から６のいずれかに記載のＤＴＭＦ信号生成回路と、
デジタルの音響信号を生成する音響信号生成部と、
ＤＴＭＦ信号生成部で生成されたデジタルのＤＴＭＦ信号と、音響信号生成部で生成されたデジタルの音響信号とを混合するミキシング部と、
を備えることを特徴とする音信号生成回路。
【請求項８】
前記ミキシング部により混合された音信号を補間する補間器と、
前記補間器の出力信号をデジタルアナログ変換するΔΣＤ／Ａコンバータと、
前記ΔΣＤ／Ａコンバータの後段に設けられたフィルタと、
をさらに備えることを特徴とする請求項７に記載の音信号生成回路。
【請求項９】
請求項７または８に記載の音声信号生成回路を備えることを特徴とする通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、正弦波などの三角関数波を生成する回路に関し、例えば正弦波を利用したＤＴＭＦ信号を生成する回路に応用することができるものに関する。
【背景技術】
【０００２】
三角関数で表される波形を有する正弦波などの信号は、様々な分野で利用されている。例えば、プッシュ回線においてダイヤル信号として利用されているＤＴＭＦ（Dual Tone Multi Frequency）信号は、２種類の周波数の正弦波が組み合わされて発生される。そのような正弦波などの三角関数波をデジタル信号からアナログ信号に変換して生成する技術は、従来から知られている。例えば特許文献１には、正弦波データテーブルから正弦波の波形データを読み出してデジタル信号のＤＴＭＦ信号を生成し、そのＤＴＭＦ信号をＤ／Ａ変換器によってアナログ信号に変換する回路が開示されている。
【０００３】
データテーブルに基づいて生成されるＤＴＭＦ信号が音声信号のような他の信号と合成されて用いられる場合、図５に示す回路によってＤＴＭＦ信号と他の信号とが合成されることがある。図５に示す回路は、ＤＴＭＦ信号生成ブロック６０と音声信号コーデックブロック６２とを有する。ＤＴＭＦ信号生成ブロック６０は、与えられる周波数に応じて正弦波データテーブル上のアドレスを演算するアドレス演算部６４と、正弦波に関するデータテーブルを保持する正弦波データテーブル記憶部６６と、デジタル・アナログ変換部６８（以下、「ＤＡＣ６８」とも表記する）とを有する。音声信号コーデックブロック６２は、インターポレータ部７０と、ΔΣＤＡＣ７２と、後置フィルタとして機能するスムージングフィルタ７４（以下、「ＳＭＦ部７４」とも表記する）とを有する。ＤＴＭＦ信号生成ブロック６０で生成されるＤＴＭＦ信号と音声信号コーデックブロック６２で生成される音声信号とは、ミキシング部７６においてアナログ信号の形で合成され、音信号として出力される。
【０００４】
【特許文献１】特開平８−１６３２２４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
データテーブルを利用して三角関数波を生成する回路では、データテーブルを格納しておくＲＯＭ等の記憶部が必要になる。そのような回路では、正確な三角関数波を生成するために、詳細な情報を含むデータテーブルを用いる必要がある。また、時間分解能を上げるために、時間間隔の小さいデータをデータテーブルに格納しておく必要がある。そのため、データテーブルを利用する回路では、正確な三角関数波を生成するためにデータテーブルを格納する記憶部の規模を大きくする必要があり、回路面積が大きくなる傾向がある。
【０００６】
また、図５に示す回路のように、音声信号などの他の信号とＤＴＭＦ信号とをアナログ信号の形で合成する場合、ＤＴＭＦ信号をアナログ信号に変換するＤＡＣだけでなく、音声信号などの他の信号をアナログ信号に変換するＤＡＣも必要になる。これも、回路面積を大きくする要因の一つとなっている。
【０００７】
一方、データテーブルではなくソフトウェアを利用して三角関数波を生成する場合、通常は汎用のＤＳＰ（Digital Signal Processor）等のプロセッサを利用して三角関数波を生成するので、回路規模が大きくなってしまい消費電力量も増大する傾向がある。
【０００８】
本発明は上述の事情を鑑みてなされたものであり、その目的は、三角関数波を生成する回路の規模の縮小化を図る技術を提供することにある。
【課題を解決するための手段】
【０００９】
本発明の一態様は三角関数波生成回路に関する。この三角関数波生成回路は、級数展開された三角関数の各項を直接算術演算する演算器を備え、この演算器によって三角関数波を生成する。当該三角関数波生成回路は、級数展開に基づく算術演算によって三角関数波を直接生成するので、三角関数波に関する比較的大きなデータを予め記憶する記憶部が不要となる。なお、ここでいう級数展開には、べき乗の形に級数展開するものが含まれ、例えばテーラー展開やマクローリン展開などが含まれる。
【００１０】
演算器は、級数展開された三角関数の各項の係数を保持するメモリをさらに含んでもよい。
演算器は、三角関数の位相が−１／２πから１／２πの範囲に含まれるようにシフトした後に、演算処理を行ってもよい。−πからπの範囲の位相を、−１／２πから１／２πの範囲にシフトすることにより、絶対値を小さくすることができるため、誤差を低減することができる。
【００１１】
本発明の別の態様はＤＴＭＦ信号生成回路に関する。このＤＴＭＦ信号生成回路は、級数展開を利用して第１の周波数の正弦波を算出する第１周波数正弦波生成部と、級数展開を利用して第２の周波数の正弦波を算出する第２周波数正弦波生成部と、第１周波数正弦波生成部で算出した正弦波と第２周波数正弦波生成部で算出した正弦波とを合成する正弦波合成部と、を備える。当該ＤＴＭＦ信号生成回路は、級数展開を利用して算出した正弦波を合成してＤＴＭＦ信号を生成するので、正弦波に関する比較的大きなデータを予め記憶する記憶部が不要となる。ここでいう正弦波には、いわゆるｓｉｎ波のみならず、ｓｉｎ波と位相が異なるだけの余弦波（ｃｏｓ波）などの三角関数波も含まれる。
【００１２】
第１、第２周波数正弦波生成部は、上述したひとつの三角関数波生成回路を共有して構成してもよい。また、第１、第２の周波数を、ひとつの三角関数波生成回路に指示する周波数指示部をさらに備えてもよい。この場合、第１、第２の周波数に対する三角関数波を、ひとつの三角関数波生成回路で算出できるため、回路面積を低減することができる。
【００１３】
本発明の更なる別の態様は音信号生成回路に関する。この音信号生成回路は、上述のＤＴＭＦ信号生成部と、デジタルの音響信号を生成する音響信号生成部と、ＤＴＭＦ信号生成部で生成されたデジタルのＤＴＭＦ信号と、音響信号生成部で生成されたデジタルの音響信号とを混合するミキシング部と、を備える。当該音信号生成回路は、級数展開を利用して算出した正弦波から生成されたＤＴＭＦ信号を用いているので、正弦波に関する比較的大きなデータを予め記憶する記憶部が不要となる。また、ＤＴＭＦ信号および音響信号がデジタル信号の段階でミキシングされるので、デジタル信号をアナログ信号に変換するＤＡＣを、ＤＴＭＦ信号および音響信号の各々に関して別個に用意する必要がない。なお、ここでいう音響信号には、人間などによって発せられる音声だけでなく、その他の音に関する信号全般が含まれる。
【００１４】
音信号生成回路は、ミキシング部により混合された音信号を補間する補間器と、補間器の出力信号をデジタルアナログ変換するΔΣＤ／Ａコンバータと、ΔΣＤ／Ａコンバータの後段に設けられたフィルタと、をさらに備えてもよい。ΔΣ変調を行いオーバーサンプリングすることにより、ノイズシェーピングを行い、高音質を得ることができる。
【００１５】
本発明の更なる別の態様は通信に関する。この通信装置は、上述の音声信号生成回路を備える。この通信装置によれば、三角関数波を生成するブロックの規模を低減することができるため、装置全体のサイズを低減することができる。
【００１６】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものも、本発明の態様として有効である。
【発明の効果】
【００１７】
本発明の三角関数波生成回路によれば、三角関数波に関する比較的大きなデータを予め記憶する記憶部が不要となり、回路規模を効果的に抑制することができる。
【００１８】
また、本発明のＤＴＭＦ信号生成回路および音信号生成回路においても、正弦波に関する比較的大きなデータを予め記憶する記憶部が不要となるため、回路規模を効果的に抑制することができる。
【発明を実施するための最良の形態】
【００１９】
本発明に関する下記の実施の形態は、テーラー展開された正弦関数の各項をハードウェアによって直接算術演算することにより、正弦波を精度良く迅速に算出する。
【００２０】
図１は、音信号発生回路１０の全体構成を示すブロック図である。音信号発生回路１０は、デジタル信号のＤＴＭＦ信号を生成するＤＴＭＦ信号生成回路１２と、音声に関するデジタル信号の音声信号を生成する音声信号生成部１４と、ＤＴＭＦ信号および音声信号をミキシングしてデジタル信号の音声／ＤＴＭＦ信号を生成するミキシング部１６と、を備える。また、音信号発生回路１０は、デジタル信号の音声／ＤＴＭＦ信号をアナログ信号の形に変換する、補間器のインターポレータ（Interporator）１８、ΔΣデジタル・アナログ変換器２０(以下、「ΔΣＤＡＣ２０」と表記する）、およびスムージングフィルタ２２（以下、「ＳＭＦ２２」（SMoothing Filter）と表記する）をさらに備える。
【００２１】
ＤＴＭＦ信号生成回路１２は、後述する図２に示す構成を有し、テーラー展開を利用して算出した正弦波を用いてデジタルのＤＴＭＦ信号を生成する。
【００２２】
音声信号生成部１４は、ＰＣＭ（Pulse Code Modulation）方式によってデジタル信号化された音声信号を生成する。例えば音声信号生成部１４は、電話機などの通信機器に用いられ、受話器に対し発せられた音声をＰＣＭデータの形に加工して、デジタル信号の音声信号を生成する。なお、音声信号生成部１４では、サンプリング周波数は固定である。
【００２３】
ミキシング部１６は、ＤＴＭＦ信号生成回路１２から送られてくるデジタルのＤＴＭＦ信号と音声信号生成部１４から送られてくるデジタル信号の音声信号とを既知の手法で混合（ミキシング）して、デジタルの音声／ＤＴＭＦ信号を生成する。
【００２４】
インターポレータ１８は、ミキシング部１６で生成されたデジタルの音声／ＤＴＭＦ信号を補間するインターポレーション処理を施す。インターポレータ１８による補間は、サンプリング周波数間をオーバー・サンプリングして行われる。これにより、見かけ上は音声／ＤＴＭＦ信号のサンプリング周波数が上がり、音声／ＤＴＭＦ信号は後述するΔΣＤＡＣ２０やＳＭＦ２２において精度良くアナログ信号に変換される。
【００２５】
ΔΣＤＡＣ２０は、インターポレータ１８から送られてくるデジタルの音声／ＤＴＭＦ信号を、ΔΣ変調方式によってアナログ信号に変換する。このΔΣ変調方式は、ノイズ・シェーピング技術を応用したものであり、インターポレータ１８における上述のインターポレーション処理と併用されることによって、音声／ＤＴＭＦ信号を更に精度良くアナログ信号に変換することが可能である。
【００２６】
ＳＭＦ２２は、後置フィルタの役割を果たすアナログのローパスフィルタの一種である。このＳＭＦ２２は、ΔΣＤＡＣ２０においてデジタル信号からアナログ信号の形に変換された音声／ＤＴＭＦ信号の出力波形に含まれている成分のうちサンプリング周波数で折り返す成分を除去し、音声／ＤＴＭＦ信号を自然な形のアナログ波形に整形する。
【００２７】
図２は、ＤＴＭＦ信号生成回路１２の構成を示すブロック図である。ＤＴＭＦ信号生成回路１２は、所定の周波数群の中から所望の周波数を選択する周波数指示部３０と、テーラー展開を利用して正弦波を算出する正弦波演算部３２と、正弦波演算部３２で算出された正弦波を合成する正弦波合成部３４とを有する。
【００２８】
周波数指示部３０は、正弦波演算部３２で算出する正弦波の周波数を指示する。本実施の形態の周波数指示部３０は、ＤＴＭＦ信号を形成する２種類の周波数のうちの一方を、比較的高い周波数によって形成される高域周波数群の中から選択し、また他方を、比較的低い周波数によって形成される低域周波数群の中から選択する。本実施の形態では、１２０９Ｈｚ、１３３６Ｈｚ、１４７７Ｈｚおよび１６３３Ｈｚによって高域周波数群が形成され、６９７Ｈｚ、７７０Ｈｚ、８５２Ｈｚおよび９４１Ｈｚによって低域周波数群が形成されている。周波数指示部３０は選択した周波数を正弦波演算部３２に対し指示する。周波数指示部３０における周波数の選択は、例えば通話者が押したプッシュ方式の電話機のボタンなどに応じて決定することが可能である。
【００２９】
正弦波演算部３２は、後述する図３に示す構造を有し、周波数指示部３０によって指示される周波数に応じて、テーラー展開された正弦関数の各項を算術演算する演算器を用いて正弦波を生成する。なお本実施の形態では、正弦波演算部３２によって本発明の第１周波数正弦波生成部および第２周波数正弦波生成部が実現されている。
【００３０】
正弦波合成部３４は、周波数指示部３０において選択された高域周波数群に含まれる周波数（以下、「高域周波数」とも表記する）及び低域周波数群に含まれる周波数（以下、「低域周波数」とも表記する）の各々に関して正弦波演算部３２で算出された正弦波を、デジタル信号の段階で合成する。これにより、所望のＤＴＭＦ信号がデジタル信号の形で生成される。
【００３１】
図３は、正弦波演算部３２の回路アーキテクチャを示す図である。正弦波演算部３２は、シーケンスコントロールユニット４２、メモリ群４３、レジスタコントロールユニット４４、第１レジスタ４６、第２レジスタ４８、算術演算ユニット５０（以下、「ＡＬＵ５０」（Arithmetic and Logical Unit）と表記する）、および出力タイミングコントローラ５２を含んで構成されている。
【００３２】
シーケンスコントロールユニット４２は、正弦波演算部３２の各部を統括的に制御するシーケンサとして働く。本実施の形態では、テーラー展開された正弦関数の各項が算術演算されることにより正弦波に関するデータが取得されるので、シーケンスコントロールユニット４２は、テーラー展開された正弦関数の各項がＡＬＵ５０において適切に算術演算されるように、正弦波演算部３２の各部を制御する。例えば、シーケンスコントロールユニット４２は、算術演算に必要な作動タイミング、データ、動作内容の指示、等を、適宜、レジスタコントロールユニット４４、第１レジスタ４６、第２レジスタ４８、ＡＬＵ５０、および出力タイミングコントローラ５２の各々に与える。
【００３３】
メモリ群４３は、データの書き換えが容易なｄｐｈｉ、ｓｐｈｉ、ｐｈｓｑ、ｐｈｑｄ、およびｔｅｍｐと、ＲＯＭ（Read Only Memory）であるｒｏｍ０、ｒｏｍ１、およびｒｏｍ２と、を含む。ｄｐｈｉは、正弦波演算部３２で生成する正弦波の周波数に対応する単位時間当たりの位相成分を保持するメモリである。ｓｐｈｉは、正弦波演算部３２において算出される正弦波の位相成分に関するデータを保持するメモリである。ｐｈｓｑは、位相成分の２乗のデータを保持するメモリである。ｐｈｑｄは、位相成分の４乗のデータを保持するメモリである。ｔｅｍｐは、正弦波演算部３２での演算過程で導出される各種のデータを保持するメモリである。ｒｏｍ０〜ｒｏｍ２は、正弦波演算部３２で演算する演算式中の各係数を保持するメモリである。後述するように、本実施の形態ではテーラー展開された正弦関数の第１項〜第３項までを演算することによって、正弦波を算出する（後述する式（５）を参照）。そのため本実施の形態では、ｒｏｍ０がテーラー展開された正弦関数の第１項に関連する係数である「１６０８」というデータを保持し、ｒｏｍ１がテーラー展開された正弦関数の第２項に関連する係数である「２６４５」というデータを保持し、ｒｏｍ２がテーラー展開された正弦関数の第３項に関連する係数である「１３０５」というデータを保持する。
【００３４】
レジスタコントロールユニット４４は、シーケンスコントロールユニット４２によって制御され、メモリ群４３の各メモリ、第１レジスタ４６、あるいは第２レジスタ４８に供給するデータをコントロールする。例えば、レジスタコントロールユニット４４は、メモリ群４３の各メモリが保持するデータを適宜読み込んで第１レジスタ４６や第２レジスタ４８に供給したり、また、ＡＬＵ５０の演算結果を取得してメモリ群４３の各メモリに記憶させたりする。
【００３５】
第１レジスタ４６は、シーケンスコントロールユニット４２、レジスタコントロールユニット４４、あるいはＡＬＵ５０から与えられるデータを一時的に保持して、所定のタイミングでＡＬＵ５０に供給する。第２レジスタ４８は、シーケンスコントロールユニット４２やレジスタコントロールユニット４４から与えられるデータを一時的に保持して、所定のタイミングでＡＬＵ５０に供給する。これらのタイミングは、シーケンスコントロールユニット４２によって調整される。
【００３６】
ＡＬＵ５０は、乗算器や加減算器などの演算器（図示せず）を含み、各演算器はオーバーフロー処理や丸め処理の機能も有する。このＡＬＵ５０は、シーケンスコントロールユニット４２によって指示される算術演算方式に従い、第１レジスタ４６および第２レジスタ４８から供給されるデータに基づいて算術演算を行う。例えば、ＡＬＵ５０は、算術演算方式として加算指示がシーケンスコントロールユニット４２から与えられた場合、第１レジスタ４６および第２レジスタ４８から供給されるデータを加算する。ＡＬＵ５０の演算結果は、適宜、シーケンスコントロールユニット４２、第１レジスタ４６、および出力タイミングコントローラ５２に送られる。
【００３７】
出力タイミングコントローラ５２は、シーケンスコントロールユニット４２によって制御され、ＡＬＵ５０の演算結果が正弦波合成部３４に送られるタイミングを調整する。本実施の形態では、後述するように、テーラー展開された正弦関数の第３項、すなわちｘの次数が５となる項までのデータが用いられて、正弦波が生成される。従って、出力タイミングコントローラ５２は、テーラー展開された正弦関数の第３項までがＡＬＵ５０において演算された時点でこのＡＬＵ５０の演算結果が正弦波合成部３４に送られるよう、送信タイミングを調整する。
【００３８】
次に、本実施の形態の音信号発生回路１０の作用について説明する。
【００３９】
まず、音信号発生回路１０において音信号が出力される流れを、図１を参照して説明する。音信号発生回路１０では、ＤＴＭＦ信号生成回路１２で生成されるデジタルのＤＴＭＦ信号と音声信号生成部１４で生成されるデジタルの音声信号とがミキシング部１６でミキシングされ、音声／ＤＴＭＦ信号が生成される。この音声／ＤＴＭＦ信号は、ミキシング部１６からインターポレータ１８に送られて補間処理が施され、ΔΣＤＡＣ２０においてアナログ信号に変換され、ＳＭＦ２２において自然な形のアナログ波形に整形される。このようにして得られるアナログ波形の音声／ＤＴＭＦ信号が音信号として出力される。
【００４０】
次に、ＤＴＭＦ信号生成回路１２においてＤＴＭＦ信号が発生される流れを、図２を参照して説明する。ＤＴＭＦ信号生成回路１２では、周波数指示部３０で選択された高域周波数および低域周波数の各々に関する正弦波が、正弦波演算部３２において算出される。そして、正弦波演算部３２において算出された高域周波数に関する正弦波と低域周波数に関する正弦波とが正弦波合成部３４で合成され、デジタルのＤＴＭＦ信号が生成される。正弦波合成部３４で生成されたＤＴＭＦ信号は、ミキシング部１６に送られて音声信号とミキシングされる。
【００４１】
次に、正弦波演算部３２における正弦波の算出過程について説明する。一般に、ｓｉｎ（ｘ）の形で表される正弦関数は、テーラー展開すると以下の式（１）で表される。
【００４２】
【数１】
2006005915.tif 000003
【００４３】
式（１）における各項までの計算値と正弦関数の真値とは、以下の表１に示される関係を有する。表１は、式（１）に関して、（ａ）「第何項までの計算値なのか」、（ｂ）「計算する最終項の式」、（ｃ）「ｘ＝（π／２）とした場合の計算値」、および（ｄ）「真値に対する誤差率（％）」を相互に対応づけて示している。なお、ｘの値は−π〜＋πまでとりうるが、ｘ＝−π〜−π／２における正弦関数とｘ＝−π／２〜０における正弦関数とは同じ値を示す。
【００４４】
【表１】
2006005915.tif 000004
【００４５】
表１に示されているように、計算する項数を大きくするほど、真値に対する誤差率は小さくなる。そのため、テーラー展開された正弦関数の第何項までを正弦波演算部３２において計算させるかは、ＤＴＭＦ信号に必要とされる正弦波の精度が考慮されて決定される。テーラー展開された正弦関数の計算値と真値との隔たりを示すノイズ成分Ｖｎ（ｒｍｓ）は、以下の式（２）によって近似的に算出することができる。
【００４６】
【数２】
2006005915.tif 000005
【００４７】
テーラー展開された正弦関数の第３項までを正弦波演算部３２における計算対象とする場合、上記の式（２）を信号の振幅に関して正規化すると、ノイズ成分Ｖｔｈｄは以下の式（３）で表される。なお、式（３）における信号の振幅は「１」とされている。
【００４８】
【数３】
2006005915.tif 000006
【００４９】
ＤＴＭＦ信号は、正規の信号成分に対するノイズ成分の割合を示す歪が５０ｄＢ以上であれば、一般に問題がないとされている。式（３）によって算出されるノイズ成分を考慮すると、テーラー展開された正弦関数の第３項までを計算の対象とした場合には、歪は大体５５ｄＢとなる。そのため、本実施の形態の正弦波演算部３２は、テーラー展開された正弦関数の第３項までを計算対象として、正弦波を近似的に取得する。
【００５０】
テーラー展開された正弦関数の第３項までの関係式は、以下の式（４）によって表される。なお、式（４）におけるｘは位相成分φが用いられ、ｘ＝πφ、の関係を有する。ｘが−π〜＋πの値をとるので、位相成分φは−１〜＋１の値をとる。
【００５１】
【数４】
2006005915.tif 000007
【００５２】
本実施の形態では、後述するように１３ビットのデータ語長が用いられるので、上記の式（４）を１３ビットの２の補数で表し、算出誤差が最小となるように係数を選択すると以下の式（５）が得られる。なお、以下の式（５）では、演算過程におけるオーバーフローなどのエラーを防ぐために「０．９９９５ｓｉｎ（πφ）」に対応する値が求められる。
【００５３】
【数５】
2006005915.tif 000008
【００５４】
図３に示す正弦波演算部３２は、式（５）を演算することによって、正弦波に関するデータを取得する。具体的には正弦波演算部３２は、図４に示すプロセスに沿って正弦波を算出演算する。
【００５５】
図４は、正弦波演算部３２において正弦波を算出演算する過程を示す。まず、シーケンスコントロールユニット４２からの指示を受けたレジスタコントロールユニット４４がメモリ群４３のｓｐｈｉを初期化し、このｓｐｈｉが保持するデータがレジスタコントロールユニット４４により読み込まれて第１レジスタ４６に代入される。また、メモリ群４３のｄｐｈｉが保持する所望の周波数の正弦波に関する単位時間当たりの位相成分が、レジスタコントロールユニット４４により読み込まれて第２レジスタ４８に代入される。第１レジスタ４６および第２レジスタ４８が保持するデータは、シーケンスコントロールユニット４２に制御され、所定のタイミングでＡＬＵ５０に送られる。シーケンスコントロールユニット４２は、オーバーフロー無しという条件付きの加算命令をＡＬＵ５０に与える。ＡＬＵ５０は、シーケンスコントロールユニット４２により指示された加算命令に従って、第１レジスタ４６および第２レジスタ４８の各々から送られてくるデータを加算する（図４のＳ１）。このＡＬＵ５０での加算結果は、レジスタコントロールユニット４４に送られてメモリ群４３のｓｐｈｉに記憶される（Ｓ２）。
【００５６】
そして、シーケンスコントロールユニット４２では、ｓｐｈｉが保持するＡＬＵ５０の演算結果が「−０．５以上であって０．５以下」か否かが判定される（Ｓ３）。ｓｐｈｉが保持するデータが「−０．５以上であって０．５以下」であると判定される場合（Ｓ３のＹＥＳ）、レジスタコントロールユニット４４が、シーケンスコントロールユニット４２からの指示に従って、ｓｐｈｉが保持するデータをメモリ群４３のｔｅｍｐに代入し（Ｓ５）、後述するＳ４およびＳ５の処理が跳ばされてＳ６の処理に移る。
【００５７】
一方、ｓｐｈｉが保持するデータが「−０．５以上であって０．５以下」ではないと判定される場合（Ｓ３のＮＯ）、ｓｐｈｉが保持するデータが０以上か否かがシーケンスコントロールユニット４２において判定される（Ｓ４）。ｓｐｈｉが保持するデータが０以上と判定される場合には、シーケンスコントロールユニット４２からの指示を受けたレジスタコントロールユニット４４を介して、第１レジスタ４６に対し「１」が代入されるとともに第２レジスタ４８に対しｓｐｈｉが保持するデータが代入される。一方、ｓｐｈｉが保持するデータが０未満と判定される場合には、シーケンスコントロールユニット４２からの指示を受けたレジスタコントロールユニット４４を介して、第１レジスタ４６に対し「−１」が代入されるとともに第２レジスタ４８に対しｓｐｈｉが保持するデータが代入される。第１レジスタ４６および第２レジスタ４８が保持するデータは所定のタイミングでＡＬＵ５０に送られ、オーバーフロー無しという条件付きの減算命令がシーケンスコントロールユニット４２からＡＬＵ５０に与えられ、ＡＬＵ５０は第１レジスタ４６が保持するデータから第２レジスタ４８が保持するデータを差し引いて減算する。このＡＬＵ５０の演算結果は、レジスタコントロールユニット４４に送られ、メモリ群４３のｔｅｍｐに代入される（Ｓ５）。上述のＳ１〜Ｓ５により、上記の式（５）における位相成分φが算出されてメモリ群４３のｔｅｍｐに記憶される。
このように、本実施の形態においては、位相成分φの算出において、三角関数の位相が−１／２πから１／２πの範囲に含まれるように、すなわち位相成分φが−０．５から０．５の範囲に含まれるようにシフトをおこない、シフトした位相成分にもとづいて演算処理を行う。
【００５８】
このメモリ群４３のｔｅｍｐが保持する位相成分φに関するデータは、シーケンスコントロールユニット４２からの指示を受けたレジスタコントロールユニット４４を介して、第１レジスタ４６および第２レジスタ４８の各々に代入される。第１レジスタ４６および第２レジスタ４８が保持するデータが所定のタイミングでＡＬＵ５０に送られ、乗算命令がシーケンスコントロールユニット４２からＡＬＵ５０に与えられ、ＡＬＵ５０は第１レジスタ４６が保持するデータと第２レジスタ４８が保持するデータを乗算する（Ｓ６）。このＡＬＵ５０の演算結果はシーケンスコントロールユニット４２に送られて、メモリ群４３のｐｈｓｑに代入される（Ｓ７）。これにより、上記の式（５）における位相成分φの自乗成分φ２が算出され、メモリ群４３のｐｈｓｑに記憶される。
【００５９】
そして、ＡＬＵ５０によって算出されメモリ群４３のｐｈｓｑに記憶される位相成分φの自乗成分φ２が、シーケンスコントロールユニット４２からの指示を受けたレジスタコントロールユニット４４を介して第１レジスタ４６および第２レジスタ４８の各々に代入される。そして、第１レジスタ４６および第２レジスタ４８が保持するデータは所定のタイミングでＡＬＵ５０に送られ、乗算命令がシーケンスコントロールユニット４２からＡＬＵ５０に対して与えられる。ＡＬＵ５０は、第１レジスタ４６から送られてくるデータに対して第２レジスタ４８から送られてくるデータを掛け合わせて、位相成分φの４乗成分φ４を演算する（Ｓ８）。このＡＬＵ５０の演算結果はシーケンスコントロールユニット４２に送られて、メモリ群４３のｐｈｑｄに位相成分φの４乗成分φ４が代入される（Ｓ９）。
【００６０】
そして、レジスタコントロールユニット４４を介して、メモリ群４３のｐｈｓｑに保持されている位相成分φの自乗成分φ２に関するデータが第１レジスタ４６に代入されるとともに、メモリ群４３のｒｏｍ１に保持されているデータが第２レジスタ４８に代入される。第１レジスタ４６および第２レジスタ４８が保持するデータが所定のタイミングでＡＬＵ５０に送られ、乗算命令がシーケンスコントロールユニット４２からＡＬＵ５０に与えられる。ＡＬＵ５０は、第１レジスタ４６から送られてくるデータに対して第２レジスタ４８から送られてくるデータを掛け合わせて「２６４５φ２」を演算する（Ｓ１０）。このＡＬＵ５０の演算結果はレジスタコントロールユニット４４に送られ、メモリ群４３のｔｅｍｐに「２６４５φ２」が代入される（Ｓ１１）。
【００６１】
また、レジスタコントロールユニット４４を介して、メモリ群４３のｐｈｑｄに保持されている位相成分φの４乗成分φ４に関するデータが第１レジスタ４６に代入されるとともに、メモリ群４３のｒｏｍ２に保持されているデータが第２レジスタ４８に代入される。そして、第１レジスタ４６および第２レジスタ４８が保持するデータが所定のタイミングでＡＬＵ５０に送られ、乗算命令がシーケンスコントロールユニット４２からＡＬＵ５０に与えられる。ＡＬＵ５０は、第１レジスタ４６から送られてくるデータに対して第２レジスタ４８から送られてくるデータを掛け合わせて「１３０５φ４」を算出する（Ｓ１２）。
【００６２】
そして、このＡＬＵ５０の演算結果が第１レジスタ４６に代入されるとともに、メモリ群４３のｔｅｍｐが保持するデータがレジスタコントロールユニット４４を介して第２レジスタ４８に代入される。第１レジスタ４６および第２レジスタ４８が保持するデータは所定のタイミングでＡＬＵ５０に送られ、減算命令がシーケンスコントロールユニット４２からＡＬＵ５０に対して与えられる。ＡＬＵ５０は、第１レジスタ４６から送られてくるデータと第２レジスタ４８から送られてくるデータとの差を求めて「−２６４５φ２＋１３０５φ４」を算出する（Ｓ１３）。
【００６３】
このＡＬＵ５０の演算結果が第１レジスタ４６に代入されるとともに、メモリ群４３のｒｏｍ０が保持するデータがレジスタコントロールユニット４４を介して第２レジスタ４８に代入される。第１レジスタ４６および第２レジスタ４８が保持するデータは所定のタイミングでＡＬＵ５０に送られ、加算命令がシーケンスコントロールユニット４２からＡＬＵ５０に与えられる。ＡＬＵ５０は、第１レジスタ４６から送られてくるデータと第２レジスタ４８から送られてくるデータとを加算して、「１６０８−２６４５φ２＋１３０５φ４」を算出する（Ｓ１４）。
【００６４】
このＡＬＵ５０の演算結果が第１レジスタ４６に代入されるとともに、メモリ群４３のｓｐｈｉが保持する位相成分φに関するデータが第２レジスタ４８に代入される。第１レジスタ４６および第２レジスタ４８が保持するデータが所定のタイミングでＡＬＵ５０に送られ、３ビットのシフト付き乗算命令がシーケンスコントロールユニット４２からＡＬＵ５０に与えられる。ＡＬＵ５０は、第１レジスタ４６から送られてくるデータと第２レジスタ４８から送られてくるデータとを乗算して３ビットシフトする（Ｓ１５）。一般に、３ビットシフトすると８倍の値が得られる。従って、ＡＬＵ５０では、上述のＳ１５によって上記の式（５）が算出される。
【００６５】
そして、ＡＬＵ５０において算出された上記の式（５）で表される正弦波は、出力タイミングコントローラ５２において出力タイミングが調整され、正弦波合成部３４に対し出力される（Ｓ１６）。
【００６６】
上述のように正弦波演算部３２では、Ｓ１〜Ｓ５で位相成分φが算出され、Ｓ６およびＳ７で位相成分φの自乗成分φ２が算出され、Ｓ８およびＳ９で位相成分φの４乗成分φ４が算出され、Ｓ１０およびＳ１１で上記の式（５）の第２項成分「２６４５φ２」が算出され、Ｓ１２で上記の式（５）の第３項成分「１３０５φ４」が算出され、Ｓ１３〜Ｓ１５で上記の式（５）の全体が算出される。
【００６７】
特に本実施の形態の正弦波演算部３２では、精度の高い正弦波を算出して出力することができる。例えば、位相成分φの絶対値が大きくなると正弦波演算部３２で算術演算される正弦波の算出誤差が大きくなる傾向が一般に存在し、位相成分φの絶対値が小さいほうが正弦波を精度良く求めることができる。本実施の形態では、上述のＳ１〜Ｓ５、とりわけＳ３〜Ｓ５によって、位相成分φが「−０．５以上であって０．５以下」の範囲に調整された状態で算出されており、正弦波の算出精度の改善が図られている。また、本実施の形態では、上述のＳ１５において３ビットシフトすることにより８倍された値を求めて、算出誤差が最小となるように調整されており、正弦波の算出精度の改善が図られている。
【００６８】
なお、本実施の形態ではテーラー展開された正弦関数の歪が上述のように大体５５ｄＢを示すため、歪が５５ｄＢ以上となるように各係数を調整して、１０ビット以上の係数語長が必要とされる。また、周波数精度Ｆｔ、サンプリング周波数Ｆｓ、およびデータ語長ｎは、一般に以下の式（６）で表される関係を有する。
【００６９】
【数６】
2006005915.tif 000009
【００７０】
本実施の形態のようなＤＴＭＦ信号生成回路１２の場合、周波数精度Ｆｔは、ＤＴＭＦ信号の最低周波数の１．５％以下であることが一般的に望ましいとされている。そのため、本実施の形態では、マージンなどを考慮して、周波数精度ＦｔがＤＴＭＦ信号の最低周波数の１％以下となるように、周波数精度Ｆｔおよびデータ語長ｎが決定される。従って、例えばサンプリング周波数Ｆｓが１６ｋＨｚである場合には、本実施の形態で用いられうるＤＴＭＦ信号の最低周波数が低域周波数群の６９７Ｈｚであることを鑑みて上記の式（６）を参照すると、周波数精度Ｆｔを３．９０６２５Ｈｚとし、またデータ語長ｎを１３ビットとすることが望ましい。上記の式（４）などからも明らかなように、正弦波演算部３２において正弦関数を算出する場合にはべき乗の演算が必要であるため、正弦波演算部３２の乗算器はデータ語長の２乗（ｎ×ｎ）以上の演算を可能とする構成を有する必要がある。そのため、本実施の形態の正弦波演算部３２の乗算器は、１３ビット×１３ビットの乗算を処理することができる構成を有している。
【００７１】
以上説明したように本実施の形態によれば、テーラー展開された正弦関数の各項が算術演算されることにより、ＤＴＭＦ信号に用いられる正弦波が取得される。そのため、正弦波に関するデータテーブルを記憶するための記憶部が不要となり、回路規模を縮小することができる。また、正弦波を生成する際に、正弦波に関する比較的大きなデータの中から必要なデータのすべてを逐一取得していた従来技術に比べると、本実施の形態では消費電力を抑制しうる。
【００７２】
また、本実施の形態では、ＤＴＭＦ信号および音声信号をデジタル信号の段階でミキシングしているので、ＤＡＣが一つで足りる。従って、図５に示す従来の音信号生成回路と比べ、ＤＡＣの数を減らしてアナログ部分の面積を縮小させることができる。特に、ＤＴＭＦ信号および音声信号をアナログ信号化するためにΔΣＤＡＣ２０を共用する場合などには、リソースシェアリング等の手法を用いて、必要な処理のステップ数と消費電流とのトレードオフにより回路規模を効果的に低減させることが可能である。
【００７３】
また、１μｍ以下の微細なプロセスでは、構成が簡単な図５に示すような従来回路と本発明に係る新規回路との差がデジタル部ではかなり小さくなる一方で、アナログ部では面積および電流に関する差が支配的となる。そのため、アナログ部の構成が比較的簡単な新規回路では、電流の低減化を効果的に図ることが可能になる。
【００７４】
また、図５に示す従来の回路では、生成する正弦波の精度を上げるために、正弦波に関するデータをできるだけ大量にＲＯＭ等の記憶部に記憶させておく必要があるため、正弦波の精度の向上と回路規模の縮小とを両立することが難しかった。しかしながら、本実施の形態では、テーラー展開された正弦関数のどの項まで演算させるかを適宜選択することにより、所望の精度の正弦波を得ることができるので、正弦波に求められる精度を確保した上で、回路の大規模化を効果的に防ぐことができる。
【００７５】
本発明は上述の各実施の形態に限定されるものではなく、各実施の形態やその変形例の各要素を適宜組み合わせたものも、本発明の実施の形態として有効である。また、当業者の知識に基づいて各種の設計変更等の変形を各実施の形態やその変形例に対して加えることも可能であり、そのような変形が加えられた実施の形態も本発明の範囲に含まれうる。
【００７６】
例えば、上述の実施の形態では、音声信号に対してＤＴＭＦ信号をミキシングする例について説明したが、他の信号に対してＤＴＭＦ信号をミキシングさせるような場合であっても、本発明を適用することが可能である。
【００７７】
また、ＤＴＭＦ信号に用いられる正弦波を算出する例について説明したが、他の信号に用いられる正弦波を算出するような場合であっても本発明を適用することが可能である。
【００７８】
また、図３に示す正弦波演算部の回路アーキテクチャは本発明を実現する構成の一例を示すものであって、他の構成によっても本発明を実現することが可能である。また、上述では一例として図４に示すプロセスで正弦波を算出する場合について説明したが、他のプロセスによって正弦波を算出する場合にも本発明を適用することが可能である。
【００７９】
また、正弦波を正弦波演算部３２において算出する例について説明したが、テーラー展開された正弦関数以外の三角関数の各項を算術演算して正弦波以外の三角関数波を算出するような場合にも本発明を適用することが可能である。また、テーラー展開以外の級数展開を利用することも可能である。
【図面の簡単な説明】
【００８０】
【図１】音信号発生回路の全体構成を示すブロック図である。
【図２】ＤＴＭＦ信号生成回路の構成を示すブロック図である。
【図３】正弦波演算部の回路アーキテクチャを示す図である。
【図４】正弦波演算部において正弦波を算出演算する過程を示すフローチャートである。
【図５】ＤＴＭＦ信号と音声信号を合成して所望の音信号を出力する従来の回路の一例を示すブロック図である。
【符号の説明】
【００８１】
１０  音信号発生回路、  １２  ＤＴＭＦ信号生成回路、  １４  音声信号生成部、  １６  ミキシング部、  １８  インターポレータ、  ２０  ΔΣＤＡＣ、  ２２  ＳＭＦ、  ３０  周波数指示部、  ３２  正弦波演算部、  ３４  正弦波合成部、  ４２  シーケンスコントロールユニット、  ４３  メモリ群、  ４４  レジスタコントロールユニット、  ４６  第１レジスタ、  ４８  第２レジスタ、  ５０  ＡＬＵ、  ５２  出力タイミングコントローラ、  ６０  ＤＴＭＦ信号生成ブロック、  ６２  音声信号コーデックブロック、  ６４  アドレス演算部、  ６６  正弦波データテーブル記憶部、  ６８  ＤＡＣ、  ７０  インターポレータ部、  ７２  ΔΣＤＡＣ、  ７４  ＳＭＦ部、  ７６  ミキシング部。
【図１】
2006005915.tif 000010
【図２】
2006005915.tif 000011
【図３】
2006005915.tif 000012
【図４】
2006005915.tif 000013
【図５】
2006005915.tif 000014