(57)【要約】【課題】バッファメモリの容量を削減した倍音生成方法および倍音生成装置を提供する。【解決手段】入力信号に対しダウンサンプリングを行う処理ステップＳ１１と、ダウンサンプリング後の入力信号をバッファメモリに格納するステップＳ１２と、バッファメモリから信号データを読み出すステップＳ１３と、読み出された信号データに対しアップサンプリングを行う処理ステップＳ１５と、アップサンプリングされた信号に対し時間軸圧縮操作を行う処理ステップＳ１５から成り、処理ステップＳ１５の出力が、入力信号の倍音となる。【選択図】  図１
2004328361.tif 000002
【特許請求の範囲】
【請求項１】
入力信号に対しその倍音を生成する倍音生成方法であって、
前記入力信号に対しダウンサンプリングを行った後にバッファメモリに格納し、
前記バッファメモリから読み出した信号についてアップサンプリングを行い、
前記アップサンプリングされた信号に対し、時間軸圧縮操作により倍音を生成することを特徴とする倍音生成方法。
【請求項２】
入力信号に対し、周波数がｋ倍（ｋは自然数）の倍音を生成する倍音生成方法であって、
長さＭ（Ｍは自然数）の前記入力信号に対しダウンサンプリングを行った後にバッファメモリに格納し、
前記バッファメモリから読み出した信号について、アップサンプリングを行い、長さＭ×ｋの信号を取り出し、
前記アップサンプリングされた信号に対し、ｋサンプルのうち１サンプルの割合で信号を取り出すことにより、長さＭの倍音を生成することを特徴とする倍音生成方法。
【請求項３】
入力信号に対し、周波数がｋ倍（ｋは自然数）の倍音を生成する倍音生成方法であって、
前記入力信号に対しダウンサンプリングを行った後に、書き込みアドレスの更新速度ｐ（ｐは自然数）でバッファメモリに格納し、
前記バッファメモリから、読み出しアドレスの更新速度がｐ×ｋで読み出した信号について、ｋサンプルのうち１サンプルの割合でアップサンプリングを行うことにより、倍音を生成することを特徴とする倍音生成方法。
【請求項４】
入力信号に対しその倍音を生成する倍音生成装置であって、
前記入力信号に対し間引き処理を行うダウンサンプリング手段と、
定められた信号に対し、ゼロクロス点を検出するゼロクロス検出手段と、
前記ダウンサンプリング手段の出力信号を格納するバッファメモリと、
前記ゼロクロス検出手段が検出したゼロクロス点の情報と、生成する倍音の倍率に基づき、前記バッファメモリからの読み出しアドレスを設定するアドレス管理手段と、
前記バッファメモリからの出力信号に関し、信号の補間処理を行うアップサンプリング手段と、
前記アップサンプリング手段の出力信号に対し、生成する倍音の次数に応じ、間引き処理を行い、出力信号を生成する間引き手段とを具備し、
前記ゼロクロス検出手段において、ゼロクロス点を検出する対象となる前記定められた信号が、前記ダウンサンプリング手段への入力信号、あるいは前記バッファメモリに記憶された信号、あるいは前記バッファメモリへの入力信号、あるいは前記バッファメモリからの出力信号、あるいは前記アップサンプリング手段からの出力信号、あるいは前記間引き手段の出力信号のいずれかであることを特徴とする倍音生成装置。
【請求項５】
入力信号に対しその倍音を生成する倍音生成装置であって、
前記入力信号に対し間引き処理を行うダウンサンプリング手段と、
定められた信号に対し、ゼロクロス点を検出するゼロクロス検出手段と、
前記ダウンサンプリング手段の出力信号を格納するバッファメモリと、
前記ゼロクロス検出手段が検出したゼロクロス点の情報と、生成する倍音の次数に基づき、前記バッファメモリからの読み出しアドレスを設定するアドレス管理手段と、
前記アドレス管理手段からの読み出しアドレスの情報からアップサンプリングで用いるフィルタの係数を選択し、前記バッファメモリからの出力信号に関し、信号の補間処理と倍音の生成を行い、出力信号を生成するアップサンプリング手段とを具備し、
前記ゼロクロス検出手段において、ゼロクロス点を検出する対象となる前記定められた信号が、前記ダウンサンプリング手段への入力信号、あるいは前記バッファメモリに記憶された信号、あるいは前記バッファメモリへの入力信号、あるいは前記バッファメモリからの出力信号、あるいは前記アップサンプリング手段からの出力信号のいずれかであることを特徴とする倍音生成装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、低音域の成分に関する倍音を生成する倍音生成方法および倍音生成装置に係る。
【０００２】
【従来の技術】
従来より、様々な目的で、原音の整数倍の周波数成分、すなわち倍音を生成する倍音生成装置を含んだ音響信号装置が各種提案されている。
【０００３】
例えば、小型スピーカで生成不可能な低音域の成分の倍音を生成し、バーチャルピッチ効果を利用して低音感向上を図る音響信号処理装置が知られている。
【０００４】
倍音生成装置に関連して、原音の周波数を変換する周波数変換装置が各種知られている。倍音生成とは、周波数変換における周波数変換率を２以上の整数倍に限定したものと考えてよい。
【０００５】
周波数変換は、時間軸圧縮操作により行う。例えば、図２３で示すように、時間長ｔ１の信号（図２３（ａ））を、それより短い時間長ｔ２で再生することで、周波数を（ｔ１／ｔ２）倍に上げることができる（図２３（ｂ））。
【０００６】
図２４は、従来例として、特許文献１に記載されている周波数変換装置のブロック線図を示したものである。
【０００７】
この周波数変換装置は、バッファメモリとしての役割を有するＲＡＭに対する読み出しと書き込み速度の制御、すなわち、ＲＡＭへの書き込みよりも速い速度で信号をＲＡＭから読み出すことにより、時間軸圧縮操作を行っており、これにより入力信号の周波数を上げている。ただし、このような操作は必然的に再生時間の変化を伴う。通常は、読み出しアドレスを適時再設定することで、再生時間の変化を補正する。
【０００８】
図２４において、読み出しアドレスカウンタ２４１５と書き出しアドレスカウンタ２４１６は、それぞれ、ＲＡＭからのデータの読み出しアドレスとＲＡＭへの書き出しアドレスを与えると共に、そのアドレスの更新速度を制御する。
【０００９】
ゼロクロス検出回路２４１３は、ＲＡＭに格納された信号に対するゼロクロス点を検出する。その結果は、前述した読み出しアドレスの再設定動作に反映される。
【００１０】
すなわち、図２５（ａ）で示すように、ゼロクロス検出回路より検出したゼロクロス点と、仮決めした再設定アドレスＡ１、Ｂ１のずれを計算し、Ａ１からＡ２に、Ｂ１からＢ２に再設定アドレスの補正を行う。これにより、図２５（ｂ）に示すように、アドレス再設定時の信号接続を滑らかに行う。
【００１１】
【特許文献１】
特開昭６０−３５７９５号公報
【００１２】
【発明が解決しようとする課題】
従来の技術で説明したように、従来の倍音生成装置では、対象とする信号に関して、ゼロクロス区間を超える信号データを格納するだけのバッファメモリの容量が必要となる。しかしながら、本技術の処理対象としている低域成分は波長が長いため、ゼロクロス区間も長くなり、そのため、バッファメモリの容量が莫大なものになり、コストが高くなる課題が存在した。
【００１３】
本発明は、以上の課題を鑑みなされたもので、ゼロクロス区間の信号を一時保存するためのバッファメモリの容量を削減した倍音生成方法および倍音生成装置を提供することを目的とするものである。
【００１４】
【課題を解決するための手段】
第１の発明は、入力信号に対しその倍音を生成する倍音生成方法であって、
前記入力信号に対しダウンサンプリングを行った後にバッファメモリに格納し、
前記バッファメモリから読み出した信号についてアップサンプリングを行い、
前記アップサンプリングされた信号に対し、時間軸圧縮操作あるいは間引き操作により倍音を生成するものである。
【００１５】
これにより、信号をダウサンプリングされた状態でバッファメモリに格納するため、必要となるバッファメモリの容量を削減できる。
【００１６】
第２の発明は、入力信号に対し、周波数がｋ倍（ｋは自然数）の倍音を生成する倍音生成方法であって、
前記入力信号に対しダウンサンプリングを行った後に、書き込みアドレスの更新速度ｐ（ｐは自然数）でバッファメモリに格納し、
前記バッファメモリから、読み出しアドレスの更新速度がｐ×ｋで読み出した信号について、ｋサンプルのうち１サンプルの割合でアップサンプリングを行うことにより、倍音を生成することを特徴とするものである。
【００１７】
これにより、信号をダウサンプリングされた状態でバッファメモリに格納するため、必要となるバッファメモリの容量を削減できる。また、ｋサンプルのうち１サンプルの割合でアップサンプリングを行うことで、不要なサンプルのアップサンプリング操作を省かれるため、演算量を削減できる。
【００１８】
第３の発明は、入力信号に対しその倍音を生成する倍音生成装置であって、
前記入力信号に対し間引き処理を行うダウンサンプリング手段と、
信号系列の処理過程でのいずれか定められた信号に対し、ゼロクロス点を検出するゼロクロス検出手段と、
前記ダウンサンプリング手段の出力信号を格納するバッファメモリと、
前記ゼロクロス検出手段が検出したゼロクロス点の情報と、生成する倍音の次数に基づき、前記バッファメモリからの読み出しアドレスを設定するアドレス管理手段と、
前記アドレス管理手段からの読み出しアドレスの情報からアップサンプリングで用いるフィルタの係数を選択し、前記バッファメモリからの出力信号に関し、信号のアップサンプリングを行うアップサンプリング手段とを具備することを特徴とするものである。
【００１９】
これにより、信号をダウサンプリングされた状態でバッファメモリに格納するため、必要となるバッファメモリの容量を削減できる。
【００２０】
【発明の実施の形態】
最初に、従来の技術で述べた周波数変換手法を、倍音生成を目的として改良を施した倍音生成方法の原理と、それを適用した倍音生成装置について説明する。
【００２１】
まず、整数倍の周波数変換の基本原理について、図２を参照しながら説明する。図２（ａ）に示すような正弦波に関し、その倍音を生成する例を考える。ゼロクロス点とは、信号が正から負へ、あるいは負から正へ変化する点と定義される。例えば、負から正へのゼロクロス点は、Ｐ１、Ｐ２、Ｐ３となる。第２倍音を生成する場合には、負から正へのゼロクロス点から、次の負から正へのゼロクロス点との区間（以下、ゼロクロス区間と呼ぶことにする）、ゼロクロス区間Ｐ１−Ｐ２、ゼロクロス区間Ｐ２−Ｐ３において、波形を時間軸方向について１／２に圧縮し、２回繰り返し再生する。この処理後の信号は、図２（ｂ）に示すように、周波数が２倍の信号になっていることがわかる。
【００２２】
同様に、第Ｎ倍音は、同ゼロクロス点の区間において、時間軸方向に１／Ｎに圧縮し、Ｎ回繰り返し再生することで生成される。
【００２３】
上記原理に基づく基本的な倍音生成装置のブロック線図を図３に示す。従来の倍音生成装置は、入力信号を受ける入力端子３０１、入力端子からの信号を一時格納するバッファメモリ３０４、バッファメモリ３０４に格納されている信号、あるいはその入力、あるいはその出力に関し、ゼロクロス点を検出するゼロクロス検出手段３０３、ゼロクロス検出手段３０３からの情報に基づき、バッファメモリ３０４からの信号の読み出しアドレスを制御するアドレス管理手段３０５、バッファメモリ３０４から読み出された信号、これが目的の倍音となるが、この倍音を外部に出力するための出力端子３０８により構成される。
【００２４】
ここで、バッファメモリ３０４の動作を、図４を用いて説明する。ここでは、生成する倍音の次数を２とし、ブロック処理で１ブロックが８サンプル単位で処理を行うものとする。
【００２５】
バッファメモリ３０４には、図４（ａ）から図４（ｂ）に示すように入力信号が８サンプル単位で、Ｂ１ｗ、Ｂ２ｗ、Ｂ３ｗ、・・・と順次書き込まれていく。
【００２６】
その一方で、図４（ｂ）から図４（ｃ）のように、一定サンプル遅れて、１サンプル飛びで、Ｂ１ｒ、Ｂ２ｒ、Ｂ３ｒ、・・・と、８サンプル単位で読み出される。このように、１サンプル飛びで読み出された信号データは、図４（ｄ）のように、再び元のサンプリング周波数の信号として出力される。これにより入力信号に対し、周波数を２倍に変換した信号が得られる。
【００２７】
アドレス管理手段３０５では、バッファメモリ３０４における読み出しアドレスの制御を行う。読み出しアドレスがゼロクロス点のアドレスに達した最初の場合には、読み出しアドレスを前回のゼロクロス点に戻し、そこから再度アドレス更新を行う。２回目の場合には、前回のゼロクロス点に戻ることはせずに、そのまま読み出しアドレスを更新する。すなわち、隣接するゼロクロス点の間で２回繰り返すことになる。
【００２８】
この動作でわかるように、読み出しアドレスの更新速度は、書き込みアドレスの更新速度の２倍である。したがって、読み出しアドレスが書き込みアドレスを追い越すことが無いように、２つのアドレスは所定の間隔を設ける必要がある。
【００２９】
（実施の形態１）
以下、図面を参照しながら、本発明の実施の形態１を説明する。
【００３０】
まず、本発明の実施の形態１における倍音生成方法について、図１を参照しながら説明する。ここでは、本発明の本質とは直接関係はないゼロクロス点の検出と、それ伴うアドレス管理動作に関しては省略している。
【００３１】
図１に示されるように、本実施の形態における倍音生成方法は、入力信号に対しダウンサンプリングを行う処理ステップＳ１１と、ダウンサンプリング後の入力信号をバッファメモリに格納するステップＳ１２と、バッファメモリから信号データを読み出すステップＳ１３と、読み出された信号データに対しアップサンプリングを行う処理ステップＳ１４と、アップサンプリングされた信号に対し時間軸圧縮操作を行う処理ステップＳ１５から成る。
【００３２】
さらに、時間軸圧縮についての一例を示した倍音生成方法を、図５を参照しながら説明する。ここでは、周波数がｋ倍の倍音を生成するものとする。
【００３３】
長さＭの入力信号に対しダウンサンプリングを行う処理ステップＳ５１と、ダウンサンプリング後の入力信号をバッファメモリに格納するステップＳ５２と、バッファメモリから信号データを読み出すステップＳ５３と、読み出された信号データに対しアップサンプリングを行い長さＭ×ｋの信号を作る処理ステップＳ５４と、ｋサンプルのうち１サンプルの割合で信号を取り出すといった間引き操作を行う処理ステップＳ５５から成る。
【００３４】
次に、図５と図６を参照しながら、より詳細な動作について説明する。ここでは数値例として、ステップＳ５１でのダウンサンプリング率を１／４、生成する倍音の次数を２とする。また、１ブロックで８サンプル（Ｍ＝８）（入力信号の時点で）まとめて処理を行うブロック処理とする。
【００３５】
長さ８サンプルの入力信号は、ステップＳ５１で１／４にダウンサンプリングされて２サンプルとなり（図６（ａ））、ステップＳ５２でバッファメモリに（Ｂ１ｗ、Ｂ２ｗ、Ｂ３ｗ、・・・）のように格納される（図６（ｂ））。
【００３６】
ステップＳ５３ではバッファメモリからは４サンプルの信号データが（Ｂ１ｗ、Ｂ２ｗ、Ｂ３ｗ、・・・）のように読み出される（図６（ｃ））。すなわち、バッファメモリからの読み出しアドレスは、バッファメモリへの書き込みアドレスよりも遅れており、単位時間当たりのアドレス更新速度が、書き込みアドレスの２倍となっている。
【００３７】
ステップＳ５４では、この４サンプルの信号データに対し、４倍のアップサンプリングを行う（図６（ｄ））。これには、イメージング歪を除去するためのフィルタ処理が含まれている。
【００３８】
ステップＳ５５では、アップサンプリングされた信号データに対し、２サンプルのうち１サンプルを取り出していく（図６（ｅ））。すなわち、出力するサンプルと廃棄するサンプルが交互になる。これにより、元の時間長に戻し、事実上の時間軸圧縮操作を行い、元の信号と同じ長さで、周波数を２倍にした信号（図６（ｆ））が得られる。
【００３９】
上記の倍音生成方法によれば、ダウンサンプリングされ、信号のデータ数が減少された状態でバッファメモリに格納することができるので、バッファメモリの容量を削減できる。
【００４０】
以上に示した倍音生成方法に基づき、装置として適用した倍音生成装置に関して説明する。
【００４１】
本発明の実施の形態１における倍音生成装置のブロック線図を図７に示す。実施の形態１における倍音生成装置は、入力端子７０１、ダウンサンプリング手段７０２、ゼロクロス検出手段７０３、バッファメモリ７０４、アドレス管理手段７０５、アップサンプリング手段７０６、間引き手段７０７、出力端子７０８から構成されている。
【００４２】
入力端子７０１は、倍音生成装置への入力信号を受ける端子である。
【００４３】
ダウンサンプリング手段７０２は、入力端子７０１からの入力信号に対し、エイリアス歪の発生を防止するために、周波数帯域を制限するフィルタリングを行い、そして所定の間隔で信号の間引きを行うものである。換言すれば、信号のサンプリング周波数を下げるものである。ここで行うフィルタリングを行うフィルタとして、ＦＩＲフィルタを用いても良いし、ＩＩＲフィルタを用いても良い。
【００４４】
バッファメモリ７０４は、ダウンサンプリング手段７０２の出力信号を一旦メモリに格納し、アドレス管理手段７０５の指示に従って、メモリに格納された信号をアップサンプリング手段７０６へ出力するものである。
【００４５】
ゼロクロス検出手段７０３は、アップサンプリング手段７０６からの出力信号に対し、そのゼロクロス点を検出するものである。
【００４６】
アドレス管理手段７０５は、ゼロクロス検出手段７０３からの情報に基づき、バッファメモリ７０４からの信号の読み出しアドレスを求め、バッファメモリ７０４から読み出す出力を制御するものである。
【００４７】
アップサンプリング手段７０６は、バッファメモリ７０４からの信号を、イメージングによる歪の発生を防止するために、周波数帯域を制限するフィルタリングを行い、元のサンプリング周波数に戻し、さらに信号の長さをｋ倍（ｋは生成する倍音の次数）にするものである。ここで行うフィルタリングを行うフィルタとして、ＦＩＲフィルタを用いても良いし、ＩＩＲフィルタを用いても良い。ダウンサンプリング手段７０２で用いられるものと同じフィルタでも良い。
【００４８】
間引き手段７０７は、アップサンプリング手段７０６からの出力に対し、ｋサンプルに１回の割合で信号を取り出し、時間軸圧縮を行って周波数をｋ倍に上げると共に、信号の長さを元に戻すものである。
【００４９】
出力端子７０８は、間引き手段７０７からの出力信号を、外部に出力するものである。
【００５０】
次に、図６を参照しながら、より詳細な動作について説明する。ここでは数値例として、ダウンサンプリング手段７０２におけるダウンサンプリング率を１／４、生成する倍音の次数を２とする。また、１ブロックで８サンプル（ダウンサンプリング手段７０２での入力時時点）まとめて処理を行うブロック処理とする。また、ゼロクロス検出手段７０３は、アップサンプリング手段７０６の出力に関し、ゼロクロス判定を行うものとする。
【００５１】
入力端子７０１からの信号は、ダウンサンプリング手段７０２で１／４にダウンサンプリングされ（図６（ａ））、バッファメモリ７０４に格納される（図６（ｂ））。入力信号が８サンプルの長さであれば、そのうちの１／４である２サンプルのみがバッファメモリ７０４に転送される。
【００５２】
ゼロクロス検出手段７０３は、アップサンプリング手段７０６の出力よりゼロクロス点を検出し、それをアドレス管理手段７０５へ伝達する。
【００５３】
アドレス管理手段７０５は、受け取ったゼロクロス点の情報より、バッファメモリ７０４からの読み出しアドレスを算出する。バッファメモリ７０４からの読み出しアドレスは、バッファメモリ７０４への書き込みアドレスよりも遅れている。そして単位時間当たりのアドレス更新速度が、書き込みアドレスの２倍となっている。すなわち、バッファメモリ７０４に２サンプル書き込まれる毎（Ｂ１ｗ、Ｂ２ｗ、Ｂ３ｗ、・・・）に、そのバッファメモリ７０４から４サンプル分の信号データが読み出される（Ｂ１ｒ、Ｂ２ｒ、Ｂ３ｒ、・・・）ことになる（図６（ｃ））。
【００５４】
なお、読み出しアドレスがゼロクロス点に達した場合、前回のゼロクロス点の読み出しアドレスまで戻り、そこから再度アドレス更新が行われる。すなわち、ゼロクロス区間を２回繰り返すことになる。
【００５５】
アップサンプリング手段７０６は、バッファメモリ７０４からの出力（図６（ｃ））について、４倍のアップサンプリングを行う（図６（ｄ））。これには、イメージング歪を除去するためのフィルタ処理が含まれている。
【００５６】
ここで、バッファメモリ７０４から読み出され、アップサンプリング手段７０６でフィルタリングされる信号データについて簡単にコメントする。アップサンプリング手段７０６でフィルタリングを行うためには、フィルタ次数に基づく過去の信号データが必要である。これについては、以下の３つの方法がある。
【００５７】
方式１
バッファメモリ７０４への読み出しアドレスは、信号データの先頭（あるいは末尾）のアドレスを示しており、それからアップサンプリング手段７０６におけるフィルタリングに必要な分（α個）だけ、連続した信号データをバッファメモリ７０４から読み出す。
【００５８】
方式２
新しい信号データのみ、バッファメモリ７０４から読み出し、他の過去の信号データは、アップサンプリング手段７０６で記録した信号データを用いる。すなわち、アップサンプリング手段７０６は過去の信号データを保持する手段をも含んでいる。
【００５９】
方式３
方式１と２の折衷系である。フィルタリングに伴う、過去のフィルタ出力信号データはアップサンプリング手段７０６に保持されており、フィルタへの入力信号データは、全てバッファメモリ７０４から供給される。
【００６０】
間引き手段７０７は、アップサンプリング手段７０６の出力（図６（ｄ））に対し、２サンプルのうち１サンプルを取り出していく（図６（ｅ））。すなわち、出力するサンプルと廃棄するサンプルが交互になる。これにより、元の時間長に戻し、事実上の時間軸圧縮操作を行い、元の信号と同じ長さで、周波数を２倍にした信号（図６（ｆ））を得る。
【００６１】
なお、ここでは、ゼロクロス検出手段７０３について、ゼロクロス点を検出すべき信号として、アップサンプリング手段７０６の出力としたが、図８（ａ）で示す構成のように、ダウンサンプリング手段７０２の入力信号を、ゼロクロス点を検出すべき信号としてもよい。この場合は、ダウンサンプリング手段７０２、バッファメモリ７０４、アップサンプリング手段７０６の処理における遅延分をあらかじめ考慮し、アップサンプリング手段７０６での出力でのゼロクロス点の時刻に合わせればよい。
【００６２】
また、時間分解能は劣るものの、間引き手段７０７の出力でゼロクロス点の検出を行うことも可能である。その場合のブロック線図を、図８（ｂ）に示す。
【００６３】
さらに、図８（ｃ）、（ｄ）、（ｅ）で示す構成のように、バッファメモリ７０４の入力、あるいは出力、あるいは記録されている信号データを、ゼロクロス点を検出すべき信号としてもよい。この場合にも、バッファメモリ７０４やアップサンプリング手段７０６の処理における遅延分をあらかじめ考慮し、アップサンプリング手段７０６での出力でのゼロクロス点の時刻に合わせる必要がある。
【００６４】
なお、図８（ｃ）、（ｄ）、（ｅ）のいずれの構成においても、ダウンサンプリングされた信号データを用いるため、時間分解能が大きい状態でゼロクロス点を検出することになる。
【００６５】
これを避けるため、例えば、直線補間を用いて、ゼロクロス点の検出における時間分解能を細かくする方法が考えられる。これについて、図９を用いて説明する。
【００６６】
ｘ（４０）、ｘ（４４）、ｘ（５２）のように、ゼロクロス点を含まない場合は、そのままでよい。
【００６７】
ｘ（４８）のようにゼロクロス点が検出された場合には、その前のダウンサンプリングされたサンプルｘ（４４）との間を直線で結び、その直線上に挿入したサンプルｘ（４５）、ｘ（４６）、ｘ（４７）を含めてゼロクロス点の検出を行うと、検出の時間分解能を向上させることができる。
【００６８】
なお、ゼロクロスの検出方法には、この他にも各種の変形が考えられるが、本発明はゼロクロスの検出方法には依存しないため、いずれの方法を使用しても良い。
【００６９】
本実施の形態によれば、バッファメモリ７０４に格納される信号データが、元の信号データの１／４、すなわちダウンサンプリング手段７０２のダウンサンプリング率だけ小さくなる。よって、バッファメモリ７０４の容量も１／４で済み、バッファメモリの容量の削減に関し、大きな効果を有していることがわかる。
【００７０】
以上の動作を具体的な例で説明する。ここでは、図１０に示すゼロクロス点ｙ（４１）とｙ（１０４）を含む信号を例として考える。また、ダウンサンプリング率は１／４で、第２倍音を作るものとし、アップサンプリング時のイメージング歪の除去を行うフィルタとして、以下の１６タップのＦＩＲフィルタＦ（ｚ―１）を用いるものとする。
【００７１】
Ｆ（ｚ―１）＝ｆ（０）＋ｆ（１）ｚ−１＋ｆ（２）ｚ―２＋・・＋ｆ（１５）ｚ―１５
この例において、各時刻ｔで倍音ｙ（ｎ）を求めることを考える。なお、ｘ（４ｍ＋１）、ｘ（４ｍ＋２）、ｘ（４ｍ＋３）（ｍは自然数）の値はバッファメモリには存在せず、値０とみなして演算すればよい。なお、この値０に対する乗算は省くことも可能である。
【００７２】
以下、ゼロクロス区間を２回繰り返すところまでを列記する。
【００７３】
ｔ＝０、ｔ＝１：
ダウンサンプリング後の信号をｘ（８０）として書き込む。
【００７４】
ｘ（２８）、ｘ（３２）、ｘ（３６）、ｘ（４０）を読み出し
ｙ（４０）、ｙ（４１）、ｙ（４２）、ｙ（４３）の信号を生成。
【００７５】
最後に、ｙ（４０）、ｙ（４２）を出力。
【００７６】
ｔ＝２、ｔ＝３：
ｘ（３２）、ｘ（３６）、ｘ（４０）、ｘ（４４）を読み出し
ｙ（４４）、ｙ（４５）、ｙ（４６）、ｙ（４７）の信号を生成。
【００７７】
最後に、ｙ（４４）、ｙ（４６）を出力。
【００７８】
ｔ＝４、ｔ＝６：
ダウンサンプリング後の信号ｘ（８４）として書き込む。
【００７９】
ｘ（３６）、ｘ（４０）、ｘ（４４）、ｘ（４８）を読み出し
ｙ（４８）、ｙ（４９）、ｙ（５０）、ｙ（５１）の信号を生成。
【００８０】
最後に、ｙ（４８）、ｙ（５０）を出力。
【００８１】
…
ｔ＝３０、ｔ＝３１：
ｘ（８８）、ｘ（９２）、ｘ（９６）、ｘ（１００）を読み出し
ｙ（１００）、ｙ（１０１）、ｙ（１０２）、ｙ（１０３）の信号を生成。
【００８２】
最後に、ｙ（１００）、ｙ（１０２）を出力。
【００８３】
ｔ＝３２、ｔ＝３３：
ダウンサンプリング後の信号をｘ（１１２）として書き込み
ｘ（２８）、ｘ（３２）、ｘ（３６）、ｘ（４０）を読み出し
ｙ（４０）、ｙ（４１）、ｙ（４２）、ｙ（４３）の信号を生成。
【００８４】
最後に、ｙ（４１）、ｙ（４３）を出力。
【００８５】
ｔ＝３４、ｔ＝３５：
ｘ（３２）、ｘ（３６）、ｘ（４０）、ｘ（４４）を読み出し
ｙ（４４）、ｙ（４５）、ｙ（４６）、ｙ（４７）の信号を生成。
【００８６】
最後に、ｙ（４５）、ｙ（４７）を出力。
【００８７】
…
ｔ＝６２、ｔ＝６３：
ｘ（８８）、ｘ（９２）、ｘ（９６）、ｘ（１００）を読み出し
ｙ（１００）、ｙ（１０１）、ｙ（１０２）、ｙ（１０３）、の信号を生成。
【００８８】
最後に、ｙ（１０１）、ｙ（１０３）を出力。
【００８９】
ｔ＝６４、ｔ＝６５：
ダウンサンプリング後の信号をｘ（１４４）として書き込み
ｘ（９２）、ｘ（９６）、ｘ（１００）、ｘ（１０４）を読み出し
ｙ（１０４）、ｙ（１０５）、ｙ（１０６）、ｙ（１０７）、の信号を生成。
【００９０】
最後に、ｙ（１０５）、ｙ（１０７）を出力。
【００９１】
…
このような一連の動作で、倍音を生成することが出来る。
【００９２】
なお、本発明の倍音生成装置は、ハードウェアとしても、コンピュータにおけるソフトウェアとしても適用可能である。
【００９３】
（実施の形態２）
以下、図面を参照しながら、本発明の実施の形態２を説明する。
【００９４】
まず、本発明の実施の形態２における倍音生成方法について、図１１を参照しながら説明する。ここでは、周波数がｋ倍の倍音を生成するものとし、本発明の本質とは直接関係の無いゼロクロス点の検出と、それ伴うアドレス管理動作に関しては省略している。
【００９５】
図１１に示されるように、本実施の形態における倍音生成方法は、入力信号に対しダウンサンプリングを行う処理ステップＳ１１１と、ダウンサンプリング後の入力信号を書き込み速度ｐでバッファメモリに格納するステップＳ１１２と、バッファメモリから信号データを読み出し速度ｐ×ｋで読み出すステップＳ１１３と、読み出された信号データに対し、ｋサンプルのうち１サンプルの割合でアップサンプリングを行い、倍音を生成する処理ステップＳ１１４から成る。
【００９６】
次に、図１１と図１２を参照しながら、より詳細な動作について説明する。ここでは数値例として、ステップＳ１でのダウンサンプリング率を１／４、生成する倍音の次数を２とする。また、１ブロックで８サンプル（Ｍ＝８）（入力信号の時点で）まとめて処理を行うブロック処理とする。
【００９７】
長さ８サンプルの入力信号は、ステップＳ１１１で１／４にダウンサンプリングされて２サンプルとなり（図１２（ａ））、ステップＳ１１２でバッファメモリに（Ｂ１ｗ、Ｂ２ｗ、Ｂ３ｗ、・・・）のように格納される（図１２（ｂ））。
【００９８】
ステップＳ１１３ではバッファメモリからは４サンプルの信号データが（Ｂ１ｗ、Ｂ２ｗ、Ｂ３ｗ、・・・）のように読み出される（図１２（ｃ））。すなわち、バッファメモリからの読み出しアドレスは、バッファメモリへの書き込みアドレスよりも遅れており、単位時間当たりのアドレス更新速度が、書き込みアドレスの２倍となっている。
【００９９】
ステップＳ１１４では、この４サンプルの信号データに対し、４倍のアップサンプリングを行う（図１２（ｄ））。これには、イメージング歪を除去するためのフィルタ処理が含まれている。ここで、２サンプルのうち１サンプルしかアップサンプリングしないものとする。すなわち、全てアップサンプリングすれば１６サンプルになるところを、８サンプル分しかアップサンプリングの演算をしないことになる。この８サンプルは、そのまま入力信号と同じ長さ８の第２倍音となる。
【０１００】
上記の倍音生成方法によれば、実施の形態１と同様に、バッファメモリの容量を削減できる効果を有すると共に、実施の形態１では間引き手段で廃棄されるデータについてはあらかじめ演算しないため、演算量の削減なる効果も有する。
【０１０１】
以上に示した倍音生成方法に基づき、装置として適用した倍音生成装置に関して説明する。図１３は、本発明の実施の形態２における倍音生成装置のブロック線図である。
【０１０２】
実施の形態２における倍音生成装置は、入力端子１３０１、ダウンサンプリング手段１３０２、ゼロクロス検出手段１３０３、バッファメモリ１３０４、アドレス管理手段１３０５、アップサンプリング手段１３０６、出力端子１３０８から構成されている。
【０１０３】
入力端子１３０１は、倍音生成装置への入力信号を受ける端子である。
【０１０４】
ダウンサンプリング手段１３０２は、入力端子１３０１からの入力信号に対し、エイリアス歪の発生を防止するために、周波数帯域を制限するフィルタリングを行い、そして所定のサンプル間隔で信号の間引きを行うものである。換言すれば、信号のサンプリング周波数を下げるものである。ここで行うフィルタリングを行うフィルタとして、ＦＩＲフィルタを用いても良いし、ＩＩＲフィルタを用いても良い。
【０１０５】
バッファメモリ１３０４は、ダウンサンプリング手段１３０２の出力信号を一旦メモリに格納し、アドレス管理手段１３０５の指示に従って、メモリに格納された信号をアップサンプリング手段１３０６へ出力するものである。
【０１０６】
ゼロクロス検出手段１３０３は、バッファメモリ１３０４に記憶された信号、またはバッファメモリ１３０４への入力信号、あるいはバッファメモリ１３０４からの出力信号、あるいはアップサンプリング手段１３０６からの出力信号のいずれかに対し、そのゼロクロス点を検出するものである。これについては、実施の形態１で示したものと同様であるため、ここでは、アップサンプリング手段１３０６からの出力信号を対象とする場合についてのみ説明する。
【０１０７】
アドレス管理手段１３０５は、ゼロクロス検出手段１３０３からの情報に基づき、バッファメモリ１３０４からの信号の読み出しアドレスを求め、バッファメモリ１３０４から読み出す出力を制御するものである。
【０１０８】
アップサンプリング手段１３０６は、バッファメモリ１３０４からの信号を、イメージングによる歪の発生を防止するために、周波数帯域を制限するフィルタリングを行い、元のサンプリング周波数に戻し、さらに周波数をｋ倍にするものである。ここではＦＩＲフィルタを用いる。
【０１０９】
出力端子１３０８は、アップサンプリング手段１６からの出力信号を、外部に出力するものである。
【０１１０】
次に、図１２を参照しながら、より詳細な動作について説明する。ここでは数値例として、実施の形態１と同様に、ダウンサンプリング手段１３０２におけるダウンサンプリング率を４、生成する倍音の次数を２とする。また、１ブロックで８サンプル（ダウンサンプリング手段１３０２での入力時時点）まとめて処理を行うブロック処理とする。
【０１１１】
また、ゼロクロス検出手段１３０３は、アップサンプリング手段１３０６の出力に関し、ゼロクロス判定を行うものとする。
【０１１２】
入力端子１３０１からの信号は、ダウンサンプリング手段１３０２で１／４にダウンサンプリングされ（図１２（ａ））、バッファメモリ１３０４に格納される（図１２（ｂ））。入力信号が８サンプルの長さであれば、そのうちの１／４である２サンプルのみがバッファメモリ１３０４に転送される。
【０１１３】
ゼロクロス検出手段１３０３は、アップサンプリング手段１３０６の出力よりゼロクロス点を検出し、それをアドレス管理手段１３０５へ伝達する。
【０１１４】
アドレス管理手段１３０５は、受け取ったゼロクロス点の情報より、バッファメモリ１３０４からの読み出しアドレスを算出する。バッファメモリ１３０４からの読み出しアドレスは、バッファメモリ１３０４への書き込みアドレスよりも遅れている。そして単位時間当たりのアドレス更新速度が、書き込みアドレスの２倍となっている。すなわち、バッファメモリ１３０４に２サンプル書き込まれる毎（Ｂ１ｗ、Ｂ２ｗ、Ｂ３ｗ、・・・）に、そのバッファメモリ１３０４から４サンプル分の信号データが読み出される（Ｂ１ｒ、Ｂ２ｒ、Ｂ３ｒ、・・・）ことになる（図１２（ｃ））。
【０１１５】
ここまでは、実施の形態１と同様である。本実施の形態では、間引き手段が存在せず、その役割をアップサンプリング手段１３０６が兼ねる働きとなる。
【０１１６】
アップサンプリング手段１３０６は、バッファメモリ１３０４からの出力について、４倍のアップサンプリングが行われるが、実施の形態１では間引き手段で間引かれるデータについては、この時点で生成しないようにすることが大きな特徴である。
【０１１７】
このために、アップサンプリング手段１３０６にて、２サンプル毎のサンプルのみをフィルタ処理で求めるようにする（図１２（ｄ））。
【０１１８】
これにより、バッファメモリ１３０４からの出力が４サンプルの信号データならば、その４倍の１６サンプルの信号データになるはずが、あらかじめ間引かれるサンプルはフィルタ処理を行わないため、８サンプルのみ信号データが生成されることになる。これは、事実上の時間軸圧縮操作となり、元の信号と同じ長さで周波数を２倍にした信号（図１２（ｅ））が得られる。
【０１１９】
なお、本実施の形態においても実施の形態１と同様に、読み出しアドレスがゼロクロス点に達した際には、前のゼロクロス点に読み出しアドレスが再設定される。そして、そのゼロクロス点より、２巡目のアップサンプリング処理が行われる。
【０１２０】
ここで、ゼロクロス区間の長さ、すなわちサンプル数が偶数か奇数かによって、２巡目の求めるべきサンプルが異なる。これについて、図１４を用いて説明する。図１４（ａ）のように、ゼロクロス区間の長さが偶数であれば、１巡目と同じ信号データを求めればよい。図１４（ｂ）のようにゼロクロス区間の長さが奇数の場合には、１巡目では求めなかったサンプルの信号データを求めればよい。すなわち、１巡目で求めたサンプルは、２巡目では求めないことになる。
【０１２１】
このようにすれば、入力信号と出力信号のサンプル数を一定に保ち、かつ歪の少ない倍音を生成することが出来る。
【０１２２】
以上、第２倍音を求める方法について説明したが、第３倍音以降も同様の操作で生成可能である。
【０１２３】
例えば、第３倍音を生成する場合を考える。アップサンプリング手段１３０６にて、３サンプル毎に、フィルタ処理で信号データを求めればよい。この場合、ゼロクロス区間が、３ｎ、３ｎ＋１、３ｎ＋２（ｎは自然数）の３つの場合に分けられる。これについては、図１５を参照しながら説明する。
【０１２４】
（ａ）ゼロクロス区間が３ｎの場合  図１５（ａ）
１巡目、２巡目、３巡目全て同じ信号データを求めることになる。
【０１２５】
（ｂ）ゼロクロス区間が３ｎ＋１の場合  図１５（ｂ）
２巡目で求める信号データは、１巡目でのサンプルより１サンプル過去側の信号データになる。３巡目で求める信号データは、２巡目でのサンプルより１サンプル過去側の信号データになる。
【０１２６】
（ｃ）ゼロクロス区間が３ｎ＋２の場合  図１５（ｃ）
２巡目で求める信号データは、１巡目でのサンプルより１サンプル未来側の信号データになる。３巡目で求める信号データは、２巡目でのサンプルより１サンプル未来側の信号データになる。
【０１２７】
次に、動作を具体的な例で説明する。ここでは、実施の形態１と同様に、図１０に示すゼロクロス点ｙ（４１）とｙ（１０４）を含む信号を例として考える。以下、実施の形態１と同様に、ダウンサンプリング率は１／４で、第２倍音を作るものとし、アップサンプリング時のイメージング歪の除去を行うフィルタとして、以下の１６タップのＦＩＲフィルタＦ（ｚ―１）を用いるものとする。
【０１２８】
Ｆ（ｚ―１）＝ｆ（０）＋ｆ（１）ｚ−１＋ｆ（２）ｚ―２＋・・＋ｆ（１５）ｚ―１５
この例において、各時刻ｔで倍音ｙ（ｎ）を求めることを考える。なお、ｘ（４ｍ＋１）、ｘ（４ｍ＋２）、ｘ（４ｍ＋３）（ｍは自然数）の値はバッファメモリには存在せず、値０とみなして演算すればよい。なお、この値０に対する乗算は省くことも可能である。
【０１２９】
以下、ゼロクロス区間を２回繰り返すところまでを列記する。
【０１３０】
ｔ＝０、ｔ＝１：
ダウンサンプリング後の信号をｘ（８０）として書き込む。
【０１３１】
ｘ（２８）、ｘ（３２）、ｘ（３６）、ｘ（４０）を読み出し
ｙ（４０）、ｙ（４２）の信号を生成、出力。
【０１３２】
ｔ＝２、ｔ＝３：
ｘ（３２）、ｘ（３６）、ｘ（４０）、ｘ（４４）を読み出し
ｙ（４４）、ｙ（４６）の信号を生成、出力。
【０１３３】
ｔ＝４、ｔ＝６：
ダウンサンプリング後の信号ｘ（８４）として書き込む。
【０１３４】
ｘ（３６）、ｘ（４０）、ｘ（４４）、ｘ（４８）を読み出し
ｙ（４８）、ｙ（５０）の信号を生成、出力。
【０１３５】
…
ｔ＝３０、ｔ＝３１：
ｘ（８８）、ｘ（９２）、ｘ（９６）、ｘ（１００）を読み出し
ｙ（１００）、ｙ（１０２）の信号を生成、出力。
【０１３６】
ｔ＝３２、ｔ＝３３：
ダウンサンプリング後の信号をｘ（１１２）として書き込み
ｘ（２８）、ｘ（３２）、ｘ（３６）、ｘ（４０）を読み出し
ｙ（４０）、ｙ（４２）の信号を生成、出力。
【０１３７】
最後に、ｙ（４１）、ｙ（４３）を出力。
【０１３８】
ｔ＝３４、ｔ＝３５：
ｘ（３２）、ｘ（３６）、ｘ（４０）、ｘ（４４）を読み出し
ｙ（４４）、ｙ（４６）の信号を生成、出力。
【０１３９】
…
ｔ＝６２、ｔ＝６３：
ｘ（８８）、ｘ（９２）、ｘ（９６）、ｘ（１００）を読み出し
ｙ（１００）、ｙ（１０２）の信号を生成、出力。
【０１４０】
ｔ＝６４、ｔ＝６５：
ダウンサンプリング後の信号をｘ（１４４）として書き込み
ｘ（９２）、ｘ（９６）、ｘ（１００）、ｘ（１０４）を読み出し
ｙ（１０４）、ｙ（１０６）の信号を生成、出力。
【０１４１】
…
このような一連の動作で、倍音を生成することが出来る。
【０１４２】
本実施の形態によれば、バッファメモリの容量削減の効果は実施の形態１と同様であるが、あらかじめ間引かれるとわかっている信号データに関しては、最初から求めないので、演算量の削減という意味でより優れていることがわかる。
【０１４３】
なお、本発明の倍音生成装置は、ハードウェアとしても、コンピュータにおけるソフトウェアとしても適用可能である。
【０１４４】
（実施の形態３）
以下、図面を参照しながら、本発明の実施の形態３を説明する。
【０１４５】
図１６は、本発明の実施の形態３における倍音生成装置のブロック線図である。本実施の形態は、実施の形態２で説明したアップサンプリング手段において、より効率良く処理するためのものである。
【０１４６】
実施の形態３における倍音生成装置は、入力端子１６０１、ダウンサンプリング手段１６０２、ゼロクロス検出手段１６０３、バッファメモリ１６０４、アドレス管理手段１６０５、アップサンプリング手段１６０６、出力端子１６０８から構成されている。さらに、アップサンプリング手段１６０６は、サブフィルタ演算部１６１１とサブフィルタ係数選択部１６１２から構成されている。
【０１４７】
全体の動作は、実施の形態２とほぼ同一であるため、重複する箇所の説明は省き、本実施の形態の特徴であるアップサンプリング手段１６０６とアドレス管理手段１６０５の動作を中心に説明する。
【０１４８】
アドレス管理手段１６０５は、ゼロクロス検出手段１６０３からの情報に基づき、バッファメモリ１６０４からの信号の読み出しアドレスを求め、バッファメモリ１６０４から読み出す出力を制御するものである。さらに、サブフィルタ係数選択部１６１２へ、選択すべきサブフィルタを指定するための情報を伝達する。
【０１４９】
サブフィルタ係数選択部１６１２は、アドレス管理手段１６０５からのサブフィルタ選択情報を受けて、該当するサブフィルタの係数列を選択し、該係数列をサブフィルタ演算部１６１１に送る。
【０１５０】
サブフィルタ演算部１６１１は、サブフィルタ係数選択部１６１１により選択されたサブフィルタの係数列と、バッファメモリ１６０４から読み出された信号とのサブフィルタ処理（積和演算）を行う。
【０１５１】
図１６の倍音生成装置の全体構成の中で、アドレス管理手段１６０５とアップサンプリング手段１６０６をより具体的に示したものが図１７である。
【０１５２】
アドレス管理手段１６０５は、内部に設けられたレジスタと加算器により、生成倍音に相当する次数（例えば２）ずつアドレスを増加させる。
【０１５３】
これにより、２番目ごとにサンプルをアップサンプリングしていくことになるので、実施の形態２で述べたような不要なサンプルに対するアップサンプリング処理を省くことができる。
【０１５４】
ここで、ゼロクロス検出手段１６０４からのゼロクロス点の情報より、ゼロクロス点に到達した場合には、前のゼロクロス点、あるいは前のゼロクロス点より数サンプル進めた位置に、読み出しアドレスが再設定される。
【０１５５】
アドレス管理手段１６０５で算出されるアドレスの下位ビットは、サブフィルタの選択情報として、サブフィルタ係数選択部１６１２に送られる。
【０１５６】
また、アドレス管理手段１６０５で算出されるアドレスの上位ビットは、データ列を読み出すための情報として、バッファメモリ１６０４に送られる。
【０１５７】
サブフィルタ係数選択部１６１２は、送られてくる下位ビット情報に基づいて、該当するサブフィルタの係数列を選択する。
【０１５８】
バッファメモリ１６０４は、アドレス管理手段１６０５から送られてくる読み出しアドレスの上位ビット情報に基づいて、４つの連続するデータ列をサブフィルタ演算部１６１１に送る。
【０１５９】
サブフィルタ演算部１６１１は、サブフィルタ係数選択部１６１２により選択されたサブフィルタの係数列と、バッファメモリ１６０４から読み出された信号とを積和演算し、外部に出力する。
【０１６０】
ここで、サブフィルタ処理を用いたアップサンプリングの原理について説明する。数値例として、ＦＩＲフィルタのタップ数を１６、ダウンサンプリング率１／４（アップサンプリング率４）とする。また、バッファメモリから取り出す信号をｘ（４ｍ）、アップサンプリング出力をｙ（ｎ）とする。
【０１６１】
最初に、以下のようなＦＩＲフィルタを取り上げる。
【０１６２】
Ｆ（ｚ−１）＝ｆ（０）＋ｆ（１）ｚ−１＋ｆ（２）ｚ―２＋・・＋ｆ（１５）ｚ―１５
このＦＩＲフィルタに関し、４つのサブフィルタに分割する。
【０１６３】
ｆ０（ｚ−１）
＝ｆ（０）＋ｆ（４）ｚ−４＋ｆ（８）ｚ―８＋ｆ（１２）ｚ―１２
ｆ１（ｚ−１）
＝［ｆ（１）＋ｆ（５）ｚ−４＋ｆ（９）ｚ―８＋ｆ（１３）ｚ―１２］ｚ−１
ｆ２（ｚ−１）
＝［ｆ（２）＋ｆ（６）ｚ−４＋ｆ（１０）ｚ―８＋ｆ（１４）ｚ―１２］ｚ−２
ｆ３（ｚ−１）
＝［ｆ（３）＋ｆ（７）ｚ−４＋ｆ（１１）ｚ―８＋ｆ（１５）ｚ―１２］ｚ−３
したがって、アップサンプリング信号ｙ（ｎ）は、時刻ｎが次の４系列のうちどれに属するかを判別し、対応するサブフィルタ処理を行うことで得られる。
【０１６４】
（ａ）ｎ＝４ｍの系列
ｙ（ｎ）＝ｆ（０）ｘ（４ｍ）＋ｆ（４）ｘ（４ｍ−４）
＋ｆ（８）ｘ（４ｍ−８）
（ｂ）ｎ＝４ｍ＋１の系列
ｙ（ｎ）＝ｆ（１）ｘ（４ｍ）＋ｆ（５）ｘ（４ｍ−４）
＋ｆ（９）ｘ（４ｍ−８）
（ｃ）ｎ＝４ｍ＋２の系列
ｙ（ｎ）＝ｆ（２）ｘ（４ｍ）＋ｆ（６）ｘ（４ｍ−４）
＋ｆ（１０）ｘ（４ｍ−８）
（ｄ）ｎ＝４ｍ＋３の系列
ｙ（ｎ）＝ｆ（３）ｘ（４ｍ）＋ｆ（７）ｘ（４ｍ−４）
＋ｆ（１１）ｘ（４ｍ−８）
ここで、サブフィルタの判別は、ｎをビット表示（２進数表示）した際の、最下位ビットから下位２ビットの情報により行うことが可能である。これは、ｎの最下位ビットから下位２ビットの情報（ｎ−４ｍ）に相当する。
【０１６５】
この動作をより具体的な例で説明する。
【０１６６】
各時刻ｔで倍音ｙ（ｎ）を求めることを考える。ダウンサンプリング率は１／４で、第２倍音を作る例を考える。また、ゼロクロス点がｙ（４１）、ｙ（１０４）にあるものとする。
【０１６７】
まず、ｎの上位ビット（＝４ｍ）に基づいて、信号データｘ（４ｍ）がバッファメモリ１４より読み出される。また、ｎの下位ビット（＝ｎ−４ｍ）に基づいて、サブフィルタｆ０（ｚ−１）〜ｆ３（ｚ−１）のいずれかが選択され、フィルタ演算手段で、積和演算が実行される。
【０１６８】
以上の操作を、ゼロクロス区間を２回繰り返すところまでを列記する。
【０１６９】
ｔ＝０、ｔ＝１：
ダウンサンプリング後の信号をｘ（８０）として書き込み
ｘ（２８）、ｘ（３２）、ｘ（３６）、ｘ（４０）を読み出し
ｙ（４０）の信号を生成、ｆ０（ｚ−１）使用
ｙ（４２）の信号を生成、ｆ２（ｚ−１）使用
ｔ＝２、ｔ＝３：
ｘ（３２）、ｘ（３６）、ｘ（４０）、ｘ（４４）を読み出し
ｙ（４４）の信号を生成、ｆ０（ｚ−１）使用
ｙ（４６）の信号を生成、ｆ２（ｚ−１）使用
ｔ＝４、ｔ＝５：
ダウンサンプリング後の信号をｘ（８４）として書き込み
ｘ（３６）、ｘ（４０）、ｘ（４４）、ｘ（４８）を読み出し
ｙ（４８）の信号を生成、ｆ０（ｚ−１）使用
ｙ（５０）の信号を生成、ｆ２（ｚ−１）使用
…
ｔ＝３０、ｔ＝３１：
ｘ（８８）、ｘ（９２）、ｘ（９６）、ｘ（１００）を読み出し
ｙ（１００）の信号を生成、ｆ０（ｚ−１）使用
ｙ（１０２）の信号を生成、ｆ２（ｚ−１）使用
ｔ＝３２、ｔ＝３３：
ダウンサンプリング後の信号をｘ（１１２）として書き込み
ｘ（２８）、ｘ（３２）、ｘ（３６）、ｘ（４０）を読み出し
ｙ（４１）の信号を生成、ｆ１（ｚ−１）使用
ｙ（４３）の信号を生成、ｆ３（ｚ−１）使用
ｔ＝３４、ｔ＝３５：
ｘ（３２）、ｘ（３６）、ｘ（４０）、ｘ（４４）を読み出し
ｙ（４５）の信号を生成、ｆ１（ｚ−１）使用
ｙ（４７）の信号を生成、ｆ３（ｚ−１）使用
…
ｔ＝６２、ｔ＝６３：
ｘ（８８）、ｘ（９２）、ｘ（９６）、ｘ（１００）を読み出し
ｙ（１０１）の信号を生成、ｆ１（ｚ−１）使用
ｙ（１０３）の信号を生成、ｆ３（ｚ−１）使用
ｔ＝６４、ｔ＝６５：
ダウンサンプリング後の信号をｘ（１４４）として書き込み
ｘ（９２）、ｘ（９６）、ｘ（１００）、ｘ（１０４）を読み出し
ｙ（１０５）の信号を生成、ｆ１（ｚ−１）使用
ｙ（１０７）の信号を生成、ｆ３（ｚ−１）使用
…
このような一連の動作で、倍音を生成することが出来る。
【０１７０】
ここで、サブフィルタの選択を時系列で見ると、生成する倍音次数とダウンサンプリング率（＝アップサンプリング率）の関係に応じて、周期性が見られる。
例えば、倍音次数２、ダウンサンプリング率４の場合で考えると、サブフィルタの選択は、上記の例のように、サブフィルタ０、サブフィルタ２、サブフィルタ０、サブフィルタ２、・・・、あるいは、サブフィルタ１、サブフィルタ３、サブフィルタ１、サブフィルタ３というように変化する。
【０１７１】
この周期性を利用し、係数列選択の変化パターンをテーブル化しておいて、ゼロクロス点における繰り返し初回の係数列選択以降は、このテーブルを利用して係数列の選択を行うことで、係数列の選択に要するステップ数を削減することも可能である。
【０１７２】
なお、ここではダウンサンプリング率１／４で、第２倍音の生成の例を示したが、他のダウンサンプリング率、第ｋ倍音の場合でも、同様の手続きで実行することが出来る。
【０１７３】
本実施の形態によれば、バッファメモリの容量の削減は実施の形態２と同様であることに加え、サブフィルタを用いることで、無駄な積和演算処理を省いたため、単位時間当たりの演算量の削減という意味で、より優れていることがわかる。
【０１７４】
なお、本発明の倍音生成装置は、ハードウェアとしても、コンピュータにおけるソフトウェアとしても適用可能である。
【０１７５】
（実施の形態４）
本発明の実施の形態４について、図面を参照しながら説明する。
【０１７６】
本実施の形態は、実施の形態１の倍音生成装置に関し、複数の倍音を生成するように拡張したものである。
【０１７７】
図１８に示すように、バッファメモリ１８０４に書き込むまでは、全ての倍音生成において共通なので、ダウンサンプリング手段１８０２とバッファメモリ１８０４については共用化する。そして、生成する倍音毎に、ゼロクロス検出手段１８０３ａ〜１８０３ｃ、アドレス管理手段１８０５ａ〜１８０５ｃ、アップサンプリング手段１８０６ａ〜１８０６ｃ、間引き手段１８０７ａ〜１８０７ｃを設け、それぞれ倍音生成を行えば良い。生成された各倍音について、振幅レベルが乗算器１８０９ａ〜１８０９ｃで調整され、加算器１８１０により加算された後に外部に出力される。
【０１７８】
なお、ゼロクロス点は、バッファメモリの入力側でも出力側でも、倍音の倍率には関係ない。したがって、ゼロクロス検出手段でゼロクロス点の検出を行う信号を、ダウンサンプリング手段１８０２の入力信号（図１９）や出力信号、あるいはバッファメモリ１８０４に記憶されている信号とする場合には、ゼロクロス検出手段１８０３を共用化することも可能である。
【０１７９】
また、アップサンプリング手段１８０６ａ〜１８０６ｃの入力信号や出力信号、間引き手段１８０７ａ〜１８０７ｃの出力信号にてゼロクロス点を検出する場合には、最も倍音の次数が高いところにのみゼロクロス検出手段１８０３を設置することも可能である（図２０）。最も倍音の倍率が高いところにした理由は、読み出しアドレスが最も早く次のゼロクロス点に到達するからである。
【０１８０】
以上、複数の倍音を生成する場合について説明した。なお、ここでは代表として、実施の形態１で示した倍音生成装置を拡張する場合について述べたが、実施の形態２、実施の形態３で示した倍音生成装置についても同様な考え方で拡張することができる。
【０１８１】
なお、本発明の倍音生成装置は、ハードウェアとしても、コンピュータにおけるソフトウェアとしても適用可能である。
【０１８２】
（実施の形態５）
本発明の実施の形態５について、図面を参照しながら説明する。
【０１８３】
本実施の形態は、実施の形態１で示した倍音生成装置に関し、帯域分割処理を行い、周波数帯域毎に倍音生成を行うように拡張したものである。
【０１８４】
このような場合には、図２１に示すように、ダウンサンプリング手段２１０２の後に、帯域分割処理を行うための帯域通過フィルタ２１１２ａ〜２１１２ｃを新たに挿入する。そして、ゼロクロス検出手段２１０３ａ〜２１０３ｃ、バッファメモリ２１０４ａ〜２１０４ｃ、アドレス管理手段２１０５ａ〜２１０５ｃ、アップサンプリング手段２１０６ａ〜２１０６ｃ、間引き手段２１０７ａ〜２１０７ｃを周波数帯域毎に設ける。この構成により、周波数帯域毎に倍音生成を行う。
【０１８５】
そして、各周波数帯域で生成される倍音の振幅レベルは、乗算器２１０９ａ〜２１０９ｃで調整され、加算器２１１０により加算された後に外部に出力される。
【０１８６】
本実施の形態における倍音生成装置も、これまでの実施の形態と同様に、バッファメモリの容量を削減できるという効果を有する。
【０１８７】
これに加え、本実施の形態における倍音生成装置は、帯域分割処理を行う帯域通過フィルタの演算量削減という効果を有する。すなわち、各周波数帯域の成分を抽出するための帯域通過フィルタ２１１２ａ〜２１１２ｃを、低いサンプリング周波数で動作させるため、帯域通過フィルタのタップ数の削減、単位時間の処理サンプル数の削減ができ、それにより演算量（単位時間当たりの乗算回数）を削減することが可能となる。
【０１８８】
ダウンサンプリングしない場合と比べ、単位時間当たりの帯域通過フィルタの呼び出し回数が１／Ｄ（Ｄはダウンサンプリング率）になり、また帯域通過フィルタ２１１２ａ〜２１１２ｃのタップ数を１／Ｄ（ＦＩＲフィルタで構成した場合）まで削減できるため、全体で帯域通過フィルタ２１１２ａ〜２１１２ｃに要する単位時間当たりの演算量を１／Ｄ２にまで削減可能となる。すなわち、単位時間当たりの演算量の削減について、大きな効果を有していることがわかる。
【０１８９】
なお、ここでは代表として、実施の形態１で示した倍音生成装置を拡張する場合について述べたが、他の実施の形態で示した倍音生成装置についても同様な考え方で拡張可能である。
【０１９０】
なお、本発明の倍音生成装置は、ハードウェアとしても、コンピュータにおけるソフトウェアとしても適用可能である。
【０１９１】
（実施の形態６）
本実施の形態では、これまでに示した本発明における倍音生成装置を、バーチャルピッチ効果を利用して小型スピーカの低音感向上を図る音響信号処理装置に適用した場合について述べる。
【０１９２】
図２２はこの音響信号処理装置のブロック線図である。本実施例における音響信号処理装置は、入力端子２２１８、ディレイ２２１３、低域通過フィルタ２２１４、高域通過フィルタ２２１５、倍音生成装置２２１６、加算器２２１７、出力端子２２１９により構成される。
【０１９３】
構成要素である倍音生成装置２２１６には、実施の形態１から５で示した、いずれかの倍音生成装置を用いる。
【０１９４】
次に、図２２（ａ）で示される音響信号処理装置について、その動作を説明する。
【０１９５】
入力端子２２１８より入力された入力信号は、ディレイ２２１３と低域通過フィルタ２２１４にそれぞれ入力される。
【０１９６】
ディレイ２２１３は、倍音生成装置２２１６の処理に伴う遅延の分、入力信号を遅延させる。
【０１９７】
低域通過フィルタ２２１４は、入力信号から倍音生成の対象となる低域成分を抽出する。
【０１９８】
倍音生成装置２２１６では、低域通過フィルタ２２１４の出力に対し、倍音生成を行う。
【０１９９】
ディレイ２２１３の出力信号と倍音生成装置２２１６の出力信号は、加算器２２１７で加算される。加算器２２１７の出力信号は、高域通過フィルタ２２１５に入力され、そこで低域成分が減衰させられる。これにより、低域における過負荷を防止する。最後に高域通過フィルタ２２１５の出力信号は、出力端子２２１９を通じて外部に出力される。
【０２００】
また、図２２（ｂ）、（ｃ）に示すように、高域通過フィルタ２２１５を、ディレイ２２１３の前段、あるいは後段に配置する構成としてもよい。
【０２０１】
このように、実施の形態１から５で説明した本発明における倍音生成装置を、小型スピーカの低音感向上を図る音響信号処理装置に適用することが可能である。
【０２０２】
【発明の効果】
以上示したように、本発明によれば、ダウンサンプリングされた信号がバッファメモリに格納されるため、必要となるバッファメモリの容量を削減でき、その効果は大なるものである。
【図面の簡単な説明】
【図１】本発明の実施の形態１に係る倍音生成方法の第１のフロー図
【図２】ゼロクロス法に基づく倍音生成法の原理説明図
【図３】基本的な倍音生成装置のブロック線図
【図４】基本的な倍音生成装置の動作説明図
【図５】本発明の実施の形態１に係る倍音生成方法の第２のフロー図
【図６】本発明の実施の形態１に係る倍音生成装置の動作説明図
【図７】本発明の実施の形態１に係る倍音生成装置のブロック線図（１）
【図８】本発明の実施の形態１に係る倍音生成装置のブロック線図（２）
【図９】直線補間を用いたゼロクロス検出の説明図
【図１０】アップサンプリング手段における入力と出力の具体例を示す図
【図１１】本発明の実施の形態２に係る倍音生成方法のフロー図
【図１２】本発明の実施の形態２に係る倍音生成装置の動作説明図
【図１３】本発明の実施の形態２に係る倍音生成装置のブロック線図
【図１４】第２倍音生成におけるアップサンプリング出力を表す図
【図１５】第３倍音生成におけるアップサンプリング出力を表す図
【図１６】本発明の実施の形態３に係る倍音生成装置のブロック線図
【図１７】本発明の実施の形態３に係る倍音生成装置の詳細構成図
【図１８】本発明の実施の形態４に係る倍音生成装置のブロック線図（１）
【図１９】本発明の実施の形態４に係る倍音生成装置のブロック線図（２）
【図２０】本発明の実施の形態４に係る倍音生成装置のブロック線図（３）
【図２１】本発明の実施の形態５に係る倍音生成装置のブロック線図
【図２２】本発明の実施の形態６に係る倍音生成装置のブロック線図
【図２３】周波数変換の原理説明図
【図２４】従来の周波数変換装置のブロック線図
【図２５】ゼロクロス点に基づくアドレス再設定法の説明図
【符号の説明】
３０１，７０１，１３０１，１６０１，１８０１，２１０１，２２１８，２４１１  入力端子
７０２，１３０２，１６０２，１８０２，２１０２  ダウンサンプリング手段３０３，７０３，１３０３，１６０３，１８０３ａ〜１８０３ｃ，２１０３ａ〜２１０３ｃ  ゼロクロス検出手段
３０４，７０４，１３０４，１６０４，１８０４，２１０４ａ〜２１０４ｃ  バッファメモリ
３０５，７０５，１３０５，１６０５，１８０５ａ〜１８０５ｃ，２１０５ａ〜２１０５ｃ  アドレス管理手段
７０６，１３０６，１６０６，１８０６ａ〜１８０６ｃ，２１０６ａ〜２１０６ｃ  アップサンプリング手段
７０７，１８０７ａ〜１８０７ｃ，２１０７ａ〜２１０７ｃ  間引き手段
３０８，７０８，１３０８，１６０８，１８０８，２１０８，２２１９，２４１８  出力端子
１６１１  サブフィルタ演算部
１６１２  サブフィルタ係数選択部
１８０９ａ〜１８０９ｃ，２１０９ａ〜２１０９ｃ  乗算器
１８１０，２１１０，２２１７，２４１７  加算器
２１１２ａ〜２１１２ｃ  帯域通過フィルタ
２２１３  ディレイ
２２１４  低域通過フィルタ
２２１５  高域通過フィルタ
２２１６  倍音生成装置
２４１３  ゼロクロス検出回路
２４１４  ＲＡＭ
２４１５  読み出しアドレスカウンタ
２４１６  書き込みアドレスカウンタ
【図１】
2004328361.tif 000003
【図２】
2004328361.tif 000004
【図３】
2004328361.tif 000005
【図４】
2004328361.tif 000006
【図５】
2004328361.tif 000007
【図６】
2004328361.tif 000008
【図７】
2004328361.tif 000009
【図８】
2004328361.tif 000010
【図９】
2004328361.tif 000011
【図１０】
2004328361.tif 000012
【図１１】
2004328361.tif 000013
【図１２】
2004328361.tif 000014
【図１３】
2004328361.tif 000015
【図１４】
2004328361.tif 000016
【図１５】
2004328361.tif 000017
【図１６】
2004328361.tif 000018
【図１７】
2004328361.tif 000019
【図１８】
2004328361.tif 000020
【図１９】
2004328361.tif 000021
【図２０】
2004328361.tif 000022
【図２１】
2004328361.tif 000023
【図２２】
2004328361.tif 000024
【図２３】
2004328361.tif 000025
【図２４】
2004328361.tif 000026
【図２５】
2004328361.tif 000027