(57)【要約】【課題】簡単な構成でサンプリング周波数の変換レートを容易に変換させる。【解決手段】入力信号のサンプリング周波数Ｆｓ１および出力信号のサンプリング周波数Ｆｓ２をもとに、Ｆｓ２に対するＦｓ１の比Ｒ、Ｒを超えない最大の２の巾数Ｒ１、Ｒ１に対するＲの比Ｒ２、Ｒ２≒Ｒ３／Ｎを満たすＲ３および２の巾数Ｔを求め、入力信号をＲ１個のサンプルごとの平均値からなる平均信号に変換したのち、周期Ｔをとした時間位置Ｐを算出する。時間位置ＰはＲ３／２ごとに増加し、時間位置Ｐが変化するごとに時間位置Ｐをもとにした直線補間を行う。【選択図】　図１
2004129072.tif 000002
【特許請求の範囲】
【請求項１】
第１のサンプリング周波数でサンプリングされた信号を入力し第２のサンプリング周波数でサンプリングされた出力信号に変換して出力するサンプリング周波数変換装置であって、
上記第１のサンプリング周波数の上記第２のサンプリング周波数に対する比（Ｒとする。）を算出する入出力周波数比算出手段と、
上記Ｒを超えない最大の２の巾数（Ｒ１とする。）を算出する巾数算出手段と、
上記Ｒ１に対するＲの比（Ｒ２とする。）を算出する巾数比算出手段と、
上記Ｒ２を任意の整数Ｒ３と２の巾数Ｎの逆数とで表される関数で置換する置換手段と、
上記第１のサンプリング周波数でサンプリングされた信号から時系列に連なるＲ１個の信号値を抽出し、このＲ１個の信号値ごとに一平均値を算出し、この平均値を平均信号として出力する平均信号算出手段と、
上記平均信号に対する上記出力信号の相対的な時間位置を算出する時間位置算出手段と、
上記平均信号を上記時間位置で直線補間する直線補間手段とを有すること
を特徴とするサンプリング周波数変換装置。
【請求項２】
上記平均信号に対する上記出力信号の相対的な時間位置とは、上記２の巾数Ｎに対する時間位置（Ｐとする。）の値であり、
上記時間位置算出手段は、上記Ｒ３を任意の整数Ｕで割った値Ｖを算出し、任意の初期値に対し上記Ｖを順次加算し、加算結果がＮ以上になったときに、加算結果からＮを減算し、常に０以上Ｎ未満の値を保つ時間位置Ｐを算出することを特徴とする請求項１記載のサンプリング周波数変換装置。
【請求項３】
上記平均信号を記憶する記憶手段と、
上記記憶手段に記憶された２つの平均信号のうち先に出力された信号をＢ１とし、後に出力された信号をＢ２とし、上記Ｂ１とＢ２とを上記Ｂ１とＢ２との間に位置する時間位置Ｐで直線補間することを特徴とする請求項２記載のサンプリング周波数変換装置。
【請求項４】
上記直線補間の結果（Ｂ３とする。）は、以下の式（１）によって算出されることを請求項３記載のサンプリング周波数変換装置。
Ｂ３＝｛Ｂ１×（Ｎ−Ｐ）＋Ｂ２×Ｐ｝／Ｎ・・・・（１）
【請求項５】
上記直線補間の結果をＵ個ごとに平均化する平均化手段を備えることを特徴とする請求項２記載のサンプリング周波数変換装置。
【請求項６】
入力信号のサンプリング周波数Ｆｓ１と、出力信号のサンプリング周波数Ｆｓ２との変化を監視する監視手段を備え、
上記入出力周波数比算出手段、上記巾数算出手段、上記巾数比算出手段、上記置換手段は、上記Ｆｓ１および／またはＦｓ２が変化するごとに、Ｒ、Ｒ１、Ｒ２、Ｒ３、Ｎの値を更新することを特徴とする請求項１記載のサンプリング周波数変換装置。
【請求項７】
第１のサンプリング周波数でサンプリングされた信号を入力し第２のサンプリング周波数でサンプリングされた出力信号に変換して出力するサンプリング周波数変換方法であって、
上記第１のサンプリング周波数の上記第２のサンプリング周波数に対する比（Ｒとする。）を算出する入出力周波数比算出工程と、
上記Ｒを超えない最大の２の巾数（Ｒ１とする。）を算出する巾数算出手段と、
上記Ｒ１に対するＲの比（Ｒ２とする。）を算出する巾数比算出工程と、
上記Ｒ２を任意の整数Ｒ３と２の巾数Ｎの逆数とで表される関数で置換する置換工程と、
上記第１のサンプリング周波数でサンプリングされた信号から時系列に連なるＲ１個の信号値を抽出し、このＲ１個の信号値ごとに一平均値を算出し、この平均値を平均信号として出力する平均信号算出工程と、
上記平均信号に対する上記出力信号の相対的な時間位置を算出する時間位置算出工程と、
上記平均信号を上記時間位置で直線補間する直線補間工程とを有すること
を特徴とするサンプリング周波数変換方法。
【請求項８】
上記平均信号に対する上記出力信号の相対的な時間位置とは、上記２の巾数Ｎに対する時間位置（Ｐとする。）の値であり、
上記時間位置算出工程は、上記Ｒ３を任意の整数Ｕで割った値Ｖを算出し、任意の初期値に対し上記Ｖを順次加算し、加算結果がＮ以上になったときに、加算結果からＮを減算し、常に０以上Ｎ未満の値を保つ時間位置Ｐを算出することを特徴とする請求項７記載のサンプリング周波数変換方法。
【請求項９】
上記平均信号を記憶する記憶手段と、
上記記憶手段に記憶された２つの平均信号のうち先に出力された信号をＢ１とし、後に出力された信号をＢ２とし、上記Ｂ１とＢ２とを上記Ｂ１とＢ２との間に位置する時間位置Ｐで直線補間することを特徴とする請求項８記載のサンプリング周波数変換方法。
【請求項１０】
上記直線補間の結果（Ｂ３とする。）は、以下の式（１）によって算出されることを請求項９記載のサンプリング周波数変換方法。
Ｂ３＝｛Ｂ１×（Ｎ−Ｐ）＋Ｂ２×Ｐ｝／Ｎ・・・・（１）
【請求項１１】
上記直線補間の結果をＵ個ごとに平均化する平均化工程を備えることを特徴とする請求項８記載のサンプリング周波数変換方法。
【請求項１２】
入力信号のサンプリング周波数Ｆｓ１と、出力信号のサンプリング周波数Ｆｓ２との変化を監視する監視工程を備え、
上記入出力比算出工程、上記巾数算出工程、上記巾数比算出工程、上記置換工程は、上記Ｆｓ１および／またはＦｓ２が変化するごとに、Ｒ、Ｒ１、Ｒ２、Ｒ３、Ｎの値を更新することを特徴とする請求項７記載のサンプリング周波数変換方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、サンプリングされた時系列信号のサンプリング周波数を再サンプリングするサンプリング周波数変換装置およびサンプリング周波数変換方法に関する。
【０００２】
【従来の技術】
近年、デジタル音声信号のサンプリング（標本化）周波数は、例えば、デジタルビデオの３２ｋＨｚ、コンパクトディスクの４４．１ｋＨｚ、ＤＶＤ−Ａｕｄｉｏの９６ｋＨｚ等数多くのサンプリング周波数が混在している。
【０００３】
従って、符号化装置へ与えるデジタル音声信号、復号化装置から得られるデジタル音声信号、復号化装置から得られるデジタル音声信号のサンプリング周波数は装置間で必ずしも一致しない。そのため、電子機器を相互接続する際には、サンプリング周波数を再変換する必要がある。
【０００４】
一般に、サンプリング周波数の変換は、補間と再サンプリングに分類される。補間は離散信号データから新しく連続関数を作成する処理であり、再サンプリングは連続関数から新しい離散信号データを作成する処理である。離散信号データから連続関数を作成するには、離散信号データと補間カーネルの一次結合、すなわち畳込みを行う。
【０００５】
【発明が解決しようとする課題】
従来、サンプリング周波数を変換する方法として、フィルタバンクを用いた方法がある。この方法では、出力信号のサンプリング周波数と入力信号のサンプリング周波数との最小公倍数を求め、入力信号を最小公倍数でアップサンプリングし、それを低域通過フィルタで補間し、出力信号のサンプリング周波数にダウンサンプリングする。
【０００６】
出力信号のサンプリング周波数が入力信号のサンプリング周波数より低い場合、ダウンサンプリングの前にフィルタリングを行う必要があり、サンプリング周波数変換装置の処理負担が大きくなる。
【０００７】
一方、出力信号のサンプリング周波数が入力信号のサンプリング周波数より高い場合、アップサンプリングの前にフィルタリングを行う必要があり、サンプリング周波数変換装置の処理負担が大きくなる。
【０００８】
以上のように、フィルタバンクを用いてサンプリング周波数の変換を行うと、サンプリング周波数変換装置の処理負担が大きくなる。そのため、回路規模を大きく、動作速度を速くする必要がある。
【０００９】
また、フィルタバンクを使用した方法では、入力信号のサンプリング周波数や出力信号のサンプリング周波数が変更されるごとにフィルタの再設計が必要となる。フィルタの係数の算出においては、チェス盤歪み等に注意して設計しなければならず、複雑にして多くの処理が必要である。複雑なフィルタは、入出力の遅延時間が大きく、装置全体の応答特性を悪化させることになる。
【００１０】
本発明は、上記の課題に鑑みてなされたものであって、簡単な回路構成であり、かつ、入力信号のサンプリング周波数および出力信号のサンプリング周波数の変更が容易なサンプリング周波数変換装置およびサンプリング周波数変換方法を提供することを目的とする。
【００１１】
【課題を解決するための手段】
上記の課題を解決するため、本発明におけるサンプリング周波数変換装置は、第１のサンプリング周波数でサンプリングされた信号を入力し第２のサンプリング周波数でサンプリングされた信号に変換して出力するサンプリング周波数変換装置であって、第１のサンプリング周波数の第２のサンプリング周波数に対する比（Ｒとする。）を算出する入出力周波数比算出手段と、Ｒを超えない最大の２の巾数（Ｒ１とする。）を算出する巾数算出手段と、Ｒ１に対するＲの比（Ｒ２とする。）を算出する巾数比算出手段と、Ｒ２を任意の整数Ｒ３と２の巾数Ｎの逆数とで表される関数で置換する置換手段と、第１のサンプリング周波数でサンプリングされた信号から時系列に連なるＲ１個の信号値を抽出し、このＲ１個の信号値ごとに一平均値を算出し、この平均値を平均信号として出力する平均信号算出手段と、第２の巾乗を上記平均信号のサンプリング周期とし、入力信号のサンプリング点に対する出力信号のサンプリング点の相対的な時間位置を算出する時間位置算出手段と、平均信号を算出された時間位置で直線補間し、補間して得た値を出力信号とする。
【００１２】
また、本発明におけるサンプリング周波数変更方法は、第１のサンプリング周波数でサンプリングされた信号を入力し第２のサンプリング周波数でサンプリングされた信号に変換して出力するサンプリング周波数変換方法であって、第１のサンプリング周波数の第２のサンプリング周波数に対する比（Ｒとする。）を算出する入出力周波数比算出工程と、Ｒを超えない最大の２の巾数（Ｒ１とする。）を算出する巾数算出工程と、Ｒ１に対するＲの比（Ｒ２とする。）を算出する巾数比算出工程と、Ｒ２を任意の整数Ｒ３と２の巾数Ｎの逆数とで表される関数で置換する置換工程と、第１のサンプリング周波数でサンプリングされた信号から時系列に連なるＲ１個の信号値を抽出し、このＲ１の信号値ごとに一平均値を算出し、この平均値を平均信号として出力する平均信号算出工程と、第２の巾乗を平均信号のサンプリング周期とし、入力信号のサンプリング点に対する出力信号のサンプリング点の相対的な時間位置を算出する時間位置算出工程と、平均信号を算出された時間位置で直線補間し、補間して得た値を上記出力信号とする。
【００１３】
【発明の実施の形態】
以下、本発明を適用したサンプリング周波数変換装置について説明する。サンプリング周波数変換装置は、主に、４つの処理を行うことによって、サンプリング周波数を変換する。第１の処理は、入力信号のサンプリング周波数Ｆｓ１と出力信号のサンプリング周波数Ｆｓ２の値に基づいて、定数Ｒ、Ｒ１、Ｒ２、Ｒ３、Ｎ、Ｔを算出する処理である。この処理は、フローチャートのステップＳ１およびステップＳ２に対応する。ここで、定数Ｒとは入力信号のサンプリング周波数Ｆｓ１の出力信号のサンプリング周波数Ｆｓ２に対する比であり、Ｒ１はＲを２の巾数で近似した値であり、Ｒ２はＲとＲ１の誤差を示す値であり、Ｒ３およびＮはＲ２を整数および２の巾数で近似する際に使用する値であり、Ｔは直線補間におけるサンプル間の周期を示す値である。
【００１４】
以下、サンプリング周波数変換装置１が実行する４つの処理について図１のフローチャートに従って説明する。サンプリング周波数変換装置１は、入力信号のサンプリング信号Ｆｓ１と出力信号のサンプリング周波数Ｆｓ２の変化を常に監視し、Ｆｓ１および／またはＦｓ２が変化すると（ステップＳ１；ＹＥＳ）、ステップＳ２に処理を移行し、定数Ｒ、Ｒ１、Ｒ２、Ｒ３、Ｎ、Ｔを更新する（ステップＳ２）。
【００１５】
ステップＳ２において、サンプリング周波数変換装置１が定数Ｒ、Ｒ１、Ｒ２、Ｒ３、Ｔを算出する手順は、以下のようになる。サンプリング周波数変換装置１は、まず、定数Ｒを算出する。定数Ｒは、入力信号のサンプリング周波数Ｆｓ１と出力信号のサンプリング周波数Ｆｓ２との比であるから、以下の式（１）で求められる。
Ｒ＝Ｆｓ１／Ｆｓ２・・・（１）
【００１６】
次に、サンプリング周波数変換装置１は、定数Ｒ１を算出する。定数Ｒ１は、以下の式（２）で求められる値である。
Ｒ１＝ｐｏｗ（２，ｆｌｏｏｒ（ｌｏｇ２（ｍａｘ（１，Ｒ）））・・・（２）
ただし、ｐｏｗ（ｘ，ｙ）は、ｘのｙ乗を返す関数
ｆｌｏｏｒ（ｘ）は、ｘを超えない最大の整数値を返す関数
ｌｏｇ２（ｘ）は、ｘの２を底としたときの対数
ｍａｘ（ｘ，ｙ）は、ｘとｙのうちの大きい方の値を返す関数
である。
【００１７】
式（２）によって算出されたＲ１は、入力信号をダウンサンプリングする場合とアップサンプリングする場合とで異なる値をとる。ダウンサンプリングする場合のＲ１とアップサンプリングする場合のＲ１との演算結果の違いを説明する。
【００１８】
ダウンサンプリングする場合、Ｆｓ１＞Ｆｓ２であるから、Ｒ＞１となる。このとき、ｍａｘ（１，Ｒ）の戻り値はＲとなり、Ｒ１の値はＲを超えない最大の２の巾数となる。ダウンサンプリングする場合、定数Ｒ１は、入力信号の平均値をとるためのサンプル数として使用される。Ｒ１個のサンプルから１つの平均値を求めると、入力信号のサンプリング周波数Ｆｓ１は、Ｆｓ１×（１／Ｒ１）に変換される。以下、Ｒ１個のサンプルごとに平均化された信号を平均信号と記す。
【００１９】
一方、アップサンプリングする場合、Ｆｓ１＜Ｆｓ２であり、Ｒ＜１となる。ｍａｘ（１，Ｒ）の戻り値は１となり、Ｒ１の値は１となる。
【００２０】
信号をアップサンプリングする場合、Ｒ１の値は１である。１つのサンプルの平均値を求めても、サンプルの値およびサンプルの個数は変化しない。そのため、入力信号はそのまま出力され、入力信号のサンプリング周波数Ｆｓ１も変化しない。
【００２１】
ステップＳ２では、さらに、サンプリング周波数変換装置１は、Ｒ２を算出する。Ｒ２は、以下の式（３）で求められる値である。
Ｒ２＝Ｒ／Ｒ１・・・（３）
【００２２】
Ｒ２は、平均信号のサンプリング周波数Ｆｓ１×（１／Ｒ１）をＦｓ２に変換するための定数として使用される。Ｒ２の意味を数式を使って説明する。なお、以下の式において、平均信号のサンプリング周波数をＦｓＭｅａｎで表現する。
2004129072.tif 000003
【００２３】
このように、平均信号のサンプリング周波数を１／Ｒ２倍すると、出力信号のサンプリング周波数Ｆｓ２を求めることができる。しかしながら、Ｒ２は、整数と整数との除数であるため、値が小数になり、ハードウェアで演算を実行する際、回路規模が大きくなるという問題がある。そこで、Ｒ２を整数Ｒ３と２の巾数との組み合わせで表現する。
【００２４】
Ｒ２＝Ｒ３／ｐｏｗ（２，Ｎ）＋Ｒｅ・・・（４）
式（４）において、Ｒ３、Ｎは、Ｒｅ≒０となるような整数である。式（４）において、Ｒｅ＝０と仮定すると、Ｒ２＝Ｒ３／ｐｏｗ（２，Ｎ）となる。サンプリング周波数変換装置１では、平均信号のサンプルの個数をｐｏｗ（２，Ｎ）／Ｒ３倍することにより、平均信号のサンプリング周波数をＦｓ２に変換できる。
【００２５】
サンプリング周波数変換装置１は、平均信号のサンプリング周波数をｐｏｗ（２，Ｎ）／Ｒ３倍するために、直線補間を用いる。サンプリング周波数変換装置１は、直線補間に使用される定数として、周期を算出する。周期Ｔは以下の式（５）に基づいて算出される。なお、直線補間の手順については、後述する。
Ｔ＝ｐｏｗ（２，Ｎ）・・・（５）
【００２６】
以上のように、定数Ｒ、Ｒ１、Ｒ２、Ｒ３、Ｎ、Ｔが算出される。なお、ステップＳ１において、Ｆｓ１およびＦｓ２の値が変化しない場合には（ステップＳ１；ＮＯ）、サンプリング周波数変換装置１は、定数Ｒ、Ｒ１、Ｒ２、Ｒ３、Ｎ、Ｔの値を更新することなく、ステップＳ３に処理を移行する。
【００２７】
次いで、サンプリング周波数変換装置１は、第２の処理および第３の処理を開始する。第２の処理は、信号の直線補間を行う処理である。第２の処理は、主に、図１のフローチャートのステップＳ４、ステップＳ５、ステップＳ１０、ステップＳ１１に対応する。サンプリング周波数変換装置１はステップＳ４、ステップＳ５において、１回目の直線補間を行い、ステップＳ１０、ステップＳ１１において、２回目の直線補間を行う。サンプリング周波数変換装置１が２回の直線補間を行うのは、直線補間の結果を平均するためであり、これにより、信号のイメージノイズが取り除かれる。
【００２８】
また、第３の処理は、入力信号をＲ１個のサンプルごとに平均をとり、平均信号を生成する処理である。第３の処理は、フローチャートのステップＳ８、ステップＳ１４に対応する。
【００２９】
サンプリング周波数変換装置１が第２の処理として行う直線補間の手順を図２を参照して説明する。図２は、周期Ｍと、平均信号と、出力信号との関係を示す図である。平均信号は、入力信号をＲ１個のサンプルごとに平均化した信号である。図２は、縦軸を振幅、横軸を時間とするグラフである。図２における、黒丸は平均信号の値を示し、黒四角は出力信号を示している。この図において、Ｉ１〜Ｉ４の平均信号が時系列に入力されている。平均信号のサンプリング周期はＴに設定されている。ここで、平均信号の周期を信号の入力された順にＴ１、Ｔ２、Ｔ３と表す。
【００３０】
まず、時間位置Ｐが周期Ｔ２に存在するとき、サンプリング周波数変換装置１は、Ｉ２の値を記憶領域Ｂ２に記憶し、Ｉ１の値を記憶領域Ｂ１に記憶する。そして、Ｂ１、Ｂ２、Ｔ、Ｐの値を式（６）に代入し、時間位置Ｐにおける直線補間Ｓ１を算出する。
【００３１】
Ｂ３＝Ｂ１×（Ｔ−Ｐ）＋Ｂ２×Ｐ・・・（６）
【００３２】
ステップＳ４において、直線補間を完了すると、サンプリング周波数変換装置１は、現在のＰの値を式（７）に代入し、Ｐの値を更新する。
Ｐ＝Ｐ＋Ｒ３／２・・・（７）
そして、Ｐの値がＴより大きくなると（ステップＳ６；ＹＥＳ）、ステップＳ７に処理を移行する。また、Ｐの値がＴを超えない場合には（ステップＳ６；ＮＯ）、サンプリング周波数変換装置１は、処理をステップＳ１０に移行する。
【００３３】
ステップＳ６において、Ｐの値がＴより大きくなった場合、Ｐの時間位置は周期Ｔ３に移動する。サンプリング周波数変換装置１は、周期Ｔ３での直線補間を実行するために、Ｂ１、Ｂ２に記憶された値を変更する。Ｔ２の左端の値は、Ｔ３の右端の値である。そこで、サンプリング周波数変換装置１は、式（８）を用いて、周期Ｔ２におけるＢ１の値を記憶領域Ｂ２に代入し、記憶の時間的移動を行う。（ステップＳ７）。
Ｂ２＝Ｂ１・・・（８）
【００３４】
周期Ｔ３におけるＢ２の値が設定されると、サンプリング周波数変換装置１は、周期Ｔ３におけるＢ１の値を算出する（ステップＳ８）。周期Ｔ３におけるＢ１は、Ｒ１個の入力信号の平均値であり、式（９）をもとに算出することができる。
Ｂ１＝（Ｉ［ｔ＋０］＋Ｉ［ｔ＋１］＋・・・＋Ｉ［ｔ＋Ｒ１］）／Ｒ１・・・（９）
ここで、Ｉ［ｔ］は、入力時刻ｔにおける入力信号と表すため、Ｉ［ｔ］に次いで入力される入力信号は、時系列を持って、Ｉ［ｔ＋０］，Ｉ［ｔ＋１］，・・・，Ｉ［ｔ＋ｎ］となる。
【００３５】
ステップＳ８が終了すると、サンプリング周波数変換装置１は、Ｐの値からＭの値を引き、Ｐの値が０以上Ｍ未満の整数となるように調整する（ステップＳ９）。式（１０）は、Ｐの値を調整するための式である。図２に示すように、式（１０）よって算出されたＰの値は、周期Ｔ３の時間位置を示している。
Ｐ＝Ｐ−Ｍ・・・（１０）
【００３６】
次いで、サンプリング周波数変換装置１は、２回目の直線補間を行う（ステップＳ１１）。２回目の直線補間は、１回目の直線補間と同様に実行される。ステップＳ１１では、１回目の直線補間の結果と２回目の直線補間の結果との和をＢ３として出力するため、演算式は式（１１）のように表現される。
Ｂ３＝Ｂ３＋Ｂ１×（Ｍ−Ｐ）＋Ｂ２×Ｐ・・・（１１）
【００３７】
２回目の直線補間が終了すると、サンプリング周波数変換装置１は、式（６）に従って、Ｐの値を算出し（ステップＳ１１）、Ｐの値がＴより大きい場合には（ステップＳ１２；ＹＥＳ）、記憶領域Ｂ１に記憶された値を記憶領域Ｂ２に記憶させるとともに（ステップＳ１３）、新しいＢ１の算出を行う（ステップＳ１４）。新しいＢ１を算出すると、サンプリング周波数変換装置１は、Ｐの値からＭの値を引いてＰの値を調整する（ステップＳ１５）。これらの処理によって、Ｂ１、Ｂ２、Ｐの値が算出され、次の直線補間が実行できるようになる。なお、ステップＳ１１〜ステップＳ１５までの処理は、それぞれステップＳ５〜ステップＳ９までの処理と同様であるため、詳しい説明を省略する。
【００３８】
次いで、サンプリング周波数変換装置１は、ステップＳ１６に処理を移行し、第４の処理を実行する。第４の処理は、１回目の直線補間と２回目の直線補間の平均をとり、出力信号Ｏを算出する処理である。１回目の直線補間と２回目の直線補間の平均をとる演算は、以下の式（１２）のように表される。
Ｏ＝Ｂ３／（Ｍ×２）・・・（１２）
Ｂ３は、１回目の直線補間と２回目の直線補間との和であるため、Ｂ３を２で割るだけで直線補間の平均は算出される。式（１２）おいて、Ｂ３をＭ×２で割っているのは、式（７）の直線補間を算出する演算において、式全体をＭで割る演算を省略しているためである。Ｍ×２は２のべき乗であるため、式（１２）の演算は、簡単なビット演算で実行することができる。ステップＳ１６の処理が完了すると、サンプリング周波数変換装置１は、ステップＳ１６で算出した値を出力信号として出力する（ステップＳ１７）。
【００３９】
以下、上述の処理を実行するサンプリング周波数変換装置１の一例について説明する。図３はサンプリング周波数変換装置１の回路構成を示す図である。サンプリング周波数変換装置１の回路は、その処理ごとに４つのブロックに分類される。
【００４０】
図３において、加算器１９と、ＤＱフリップフロップ２０と、除算器２１と、セレクタ２３とは、入力信号の平均値を算出するブロックである。また、乗算器２４と、乗算器２５と、減算器２６と、加算器２７とは、直線補間を行うためのブロックである。また、加算器３２と、ＤＱフリップフロップ３１と、セレクタ３４と、除算器３０とは、直線補間の平均をとるブロックである。ＤＱフリップフロップ２８と、加算器３３とは、時間位置Ｐの算出を行うブロックである。また、マイクロプロセッサ３５は、Ｒ、Ｒ１、Ｒ２、Ｒ３、Ｔ、Ｎの算出を行い、シーケンサ３６は、セレクタの入力信号の制御を行う。
【００４１】
まず、入力信号の平均値を算出する回路について説明する。入力端子１８から信号が入力されると、入力された信号は加算器１９に入力される。加算器１９には、入力信号のほかにセレクタ２３からの信号が入力される。シーケンサ３６は、加算器１９の加算回数がＲ１に達するまでセレクタ２３のスイッチをＡに設定する。スイッチがＡに設定されている間、加算器１９には、ＤＱフリップフロップ２０に蓄積された信号が出力される。加算器１９は、入力信号とＤＱフリップフロップ２０に蓄積された信号とを加算し、この値をＤＱフリップフロップ２０に蓄積する。シーケンサ３６は、加算器１９の加算数がＲ１に達すると、セレクタ２３のスイッチをＢに設定し、ＤＱフリップフロップ２０の値をリセットする。そして、ＤＱフリップフロップ２０に累積加算された値は、除算器２１に出力される。除算器２１は、入力された信号をＲ１で除算する。除算器２１からの出力は、Ｒ１個のサンプルの平均値になる。
【００４２】
次に、除算器２１から出力された値は、ＤＱフリップフロップ２２および乗算器２４に出力される。ＤＱフリップフロップ２２に出力された値は、１サンプル遅延するため、上述の処理フローにおいてのＢ１に相当し、乗算器２１に出力された値は遅延がないため、上述の処理フローにおけるＢ２に相当する。乗算器２４には、ＤＱフリップフロップ２８に格納されたＰの値が出力され、乗算器２４では、入力信号の平均値とＰとの積「Ｂ２×Ｐ」が算出される。
【００４３】
また、減算器２６において、ＤＱフリップフロップ２８から出力されたＰの値とＭとの差分「Ｔ−Ｐ」が算出され、この値は、乗算器２５に出力される。乗算器２５では、減算器２６からの出力「Ｔ−Ｐ」と入力信号の平均値との積「Ｂ２×（Ｔ−Ｐ）」が求められる。加算器２７では、乗算器２４からの出力「Ｂ１×Ｐ」と乗算器２５からの出力「Ｂ１×（Ｔ−Ｐ）」との和「Ｂ１×（Ｔ−Ｐ）＋Ｂ２×Ｐ」を算出する。これにより、直線補間される。
【００４４】
加算器２７によって算出された直線補間の結果は、加算器３２に出力される。加算器３２には、セレクタ３４からの出力が入力される。シーケンサ３６は、加算器３２の加算回数が２回になるまで、セレクタのスイッチをＡにする。スイッチがＡに設定されている間、加算器３２にはＤＱフリップフロップ３１に蓄積された値が出力される。そのため、加算器３２は、加算器２７からの出力とＤＱフリップフロップ３１に蓄積された値とを加算し、この結果をＤＱフリップフロップ３１に蓄積していく。そして、加算器３２の加算回数が２回になると、シーケンサ３６は、セレクタ３４のスイッチをＢに切り換え、ＤＱフリップフロップ３１の値をリセットするとともに、ＤＱフリップフロップ３１に蓄積されていた値を除算器３０に出力する。
【００４５】
除算器３０は、ＤＱフリップフロップ３１から出力された値をＴ×２で除算し、直線補間の結果の平均値を算出する。除算器３０によって算出された値は、出力信号として、出力端子２９を介して外部に出力される。
【００４６】
以上のように、サンプリング周波数変換装置１は、入力信号のサンプリング周波数をＲ１分の１に変換した後、直線補間を用いて目的のサンプリング周波数に変換する。また、アップサンプリングする場合、サンプリング周波数変換装置１は、直線補間のみを用いて目的のサンプリング周波数に変換する。
【００４７】
サンプリング周波数変換装置１は、Ｒ１個のサンプルの相加平均を出力信号とすることにより、入力信号のサンプリング周波数をＲ１分の１に変換する。Ｒ１サンプルの和を求める演算と、サンプルの和をＲ１で割る演算とは、単純な回路で実現できる。
【００４８】
また、サンプリング周波数変換装置１は、サンプルの出現する周期をＴに設定し、この周期Ｔに対する時間位置Ｐをもとに直線補間を行う。時間位置Ｐの変位量Ｒ３／２であり、直線補間はＲ３／２Ｔの割合で実行される。Ｒ３、Ｐは整数であり、Ｔは２の巾数であるため、直線補間は２の巾数と整数との四則演算により算出される。このため、直線補間は、単純な回路で実現できる。
【００４９】
また、サンプリング周波数変換装置１は、信号のサンプリング周波数を２×Ｆｓ２に変換し、変換した信号の２サンプルずつの平均を出力信号として出力する。この処理は、信号に含まれるイメージノイズを除去するために実行される。イメージノイズを回路で除去しようとすると、大きな回路が必要になる。本発明を適用したサンプリング周波数変換装置１は、加算器と記憶素子と乗算器のみでイメージノイズが除去できるため、ハードウェア構成が単純になる。
【００５０】
また、サンプリング周波数変換装置１は、定数Ｒ１、Ｒ２、Ｒ３、Ｔ、Ｎの値をセレクタに入力して、サンプリング周波数の変換レートを制御している。そのため、入力信号のサンプリング周波数Ｆｓ１と出力信号のサンプリング周波数Ｆｓ２の変化に応じて定数Ｒ１、Ｒ２、Ｒ３、Ｔ、Ｎを再計算するだけで、サンプリング周波数の変化に対応することができる。
【００５１】
【発明の効果】
上記の課題を解決するため、本発明におけるサンプリング周波数変換装置は、第１のサンプリング周波数でサンプリングされた信号を入力し第２のサンプリング周波数でサンプリングされた信号に変換して出力するサンプリング周波数変換装置であって、第１のサンプリング周波数の第２のサンプリング周波数に対する比（Ｒとする。）を算出する入出力周波数比算出手段と、Ｒを超えない最大の２の巾数（Ｒ１とする。）を算出する巾数算出手段と、Ｒ１に対するＲの比（Ｒ２とする。）を算出する巾数比算出手段と、Ｒ２を任意の整数Ｒ３と２の巾数Ｎの逆数とで表される関数で置換する置換手段と、第１のサンプリング周波数でサンプリングされた信号から時系列に連なるＲ１個の信号値を抽出し、このＲ１個の信号値ごとに一平均値を算出し、この平均値を平均信号として出力する平均信号算出手段と、第２の巾乗を上記平均信号のサンプリング周期とし、入力信号のサンプリング点に対する出力信号のサンプリング点の相対的な時間位置を算出する時間位置算出手段と、平均信号を算出された時間位置で直線補間し、補間して得た値を出力信号とする。そのため、回路構成が簡単であるだけではなく、入力信号のサンプリング周波数および出力信号のサンプリング周波数の変更が容易なサンプリング周波数変換装置を提供することができる。
【００５２】
また、本発明におけるサンプリング周波数変更方法は、第１のサンプリング周波数でサンプリングされた信号を入力し第２のサンプリング周波数でサンプリングされた信号に変換して出力するサンプリング周波数変換方法であって、第１のサンプリング周波数の第２のサンプリング周波数に対する比（Ｒとする。）を算出する入出力周波数比算出工程と、Ｒを超えない最大の２の巾数（Ｒ１とする。）を算出する巾数算出工程と、Ｒ１に対するＲの比（Ｒ２とする。）を算出する巾数比算出工程と、Ｒ２を任意の整数Ｒ３と２の巾数Ｎの逆数とで表される関数で置換する置換工程と、第１のサンプリング周波数でサンプリングされた信号から時系列に連なるＲ１個の信号値を抽出し、このＲ１の信号値ごとに一平均値を算出し、この平均値を平均信号として出力する平均信号算出工程と、第２の巾乗を平均信号のサンプリング周期とし、入力信号のサンプリング点に対する出力信号のサンプリング点の相対的な時間位置を算出する時間位置算出工程と、平均信号を算出された時間位置で直線補間し、補間して得た値を上記出力信号とする。そのため、この方法をサンプリング周波数変換装置に適用すると、サンプリング周波数変換装置の回路構成を簡単にするとともに、入力信号のサンプリング周波数および出力信号のサンプリング周波数を容易に変化させることができる。
【図面の簡単な説明】
【図１】サンプリング周波数を変換する手順を示すフローチャートである。
【図２】直線補間の手順を示す図である。
【図３】サンプリング周波数変換装置の回路構成を示す図である。
【符号の説明】
１　サンプリング周波数変換装置、１８　入力端子、１９　加算器、２０　ＤＱフリップフロップ、２１　除算器、２２　ＤＱフリップフロップ、２３　セレクタ、２４　乗算器、２５　乗算器、２６　減算器、２７　加算器、２８　ＤＱフリップフロップ、２９　出力端子、３０　除算器、３１　ＤＱフリップフロップ、３２　加算器、３３　加算器、３４　セレクタ
【図１】
2004129072.tif 000004
【図２】
2004129072.tif 000005
【図３】
2004129072.tif 000006