(57)【要約】【課題】  後段の装置が要求するサンプリング周波数が入力サンプルのサンプリング周波数以上になっても、補間演算のエラーを発生させずにサンプリング周波数変換を行う。【解決手段】  制御部１ａは、入力サンプリング周波数ｆ１の２倍の周波数のメインクロックφｍに同期し、演算要求信号ＣＲＱと発生すべき補間サンプルの位相を示す位相情報を更新し、位相情報が所定の条件を満たしたとき、演算指令信号を発生する。補間部２ａは、偶数周期に演算指令信号が発生したとき、２Ｎ次補間のための２Ｎ個の補間係数のうちＮ個の偶数番目の補間係数を用いて補間サンプルｙを算出し、奇数周期に演算指令信号が発生したときには、Ｎ個の奇数番目の補間係数を用いて補間サンプルｙを算出する。【選択図】図１
2008178049.tif 000002
【特許請求の範囲】
【請求項１】
所定のサンプリング周波数の入力サンプルに補間演算を施すことにより、後段の装置が要求するサンプリング周波数の補間サンプルを算出して出力するサンプリング周波数変換装置において、
前記入力サンプルを順次取り込み、取り込んだ最新のＮ個の入力サンプルを補間演算用入力サンプル列として記憶する入力サンプル記憶手段と、
前記入力サンプルのサンプリング周波数の２倍の周波数のメインクロックに同期し、演算要求信号と発生すべき補間サンプルと前記補間演算用入力サンプル列との位相関係を示す位相情報を更新し、位相情報が所定の条件を満たしたとき、補間サンプルを発生するための補間演算を要求する演算指令信号を発生する制御手段と、
前記演算指令信号が発生したとき、前記メインクロックに同期して切り換わる周期が偶数周期である場合には、前記補間演算用入力サンプル列との関係において前記位相情報により示される位相を持った補間サンプルを２Ｎ次の補間演算により得るための２Ｎ個の補間係数のうちＮ個の偶数番目の補間係数を発生し、前記メインクロックに同期して切り換わる周期が奇数周期である場合には、前記補間演算用入力サンプル列との関係において前記位相情報により示される位相を持った補間サンプルを２Ｎ次の補間演算により得るための２Ｎ個の補間係数のうちＮ個の奇数番目の補間係数を発生する係数発生手段と、
前記演算指令信号が発生したとき、前記係数発生手段により発生されたＮ個の補間係数を前記入力サンプル記憶手段に記憶された補間演算用入力サンプル列に畳み込み、補間サンプルを出力する畳み込み演算手段と
を具備することを特徴とするサンプリング周波数変換装置。
【請求項２】
前記後段の装置から要求されるサンプリング周波数と同一周波数のワードクロックを受け取り、算出された補間サンプルを前記ワードクロックに同期させて前記後段の装置に送信するインタフェースを具備し、
前記制御手段は、前記メインクロックに同期して発生する演算指令信号の時間密度を前記ワードクロックの周波数に追従させる制御を行うことを特徴とする請求項１に記載のサンプリング周波数変換装置。
【請求項３】
前記サンプリング周波数変換装置は、前記畳み込み演算手段から出力される補間サンプルを順次記憶し、前記ワードクロックの受信に応じて、記憶した補間サンプルを古いものから順に読み出して出力する先入れ先出し式記憶手段を具備し、
前記制御手段は、前記先入れ先出し式記憶手段における読み出し未了の補間サンプルの残量を検出する残量検出手段を具備し、前記残量検出手段により検出される残量に基づき、前記演算指令信号が発生する時間密度を前記ワードクロックの周波数に追従させる制御を行うことを特徴とする請求項２に記載のサンプリング周波数変換装置。
【請求項４】
前記係数発生手段は、前記補間演算用入力サンプル列が同一内容を維持するサンプリング周期を２分割した各周期のうちの前半の周期を前記偶数周期とし、後半の周期を前記奇数周期として、前記補間係数を発生することを特徴とする請求項１〜３のいずれか１の請求項に記載のサンプリング周波数変換装置。
【請求項５】
前記偶数周期において発生する演算指令信号およびその発生時点における位相情報を記憶する偶数周期用記憶手段と、前記奇数周期において発生する演算指令信号およびその発生時点における位相情報を記憶する奇数周期用記憶手段とを具備し、
前記係数発生手段は、前記入力サンプルの１サンプリング周期内において、前記偶数周期用記憶手段に演算指令信号および位相情報が記憶された場合には前記偶数周期用記憶手段に記憶された位相情報に基づき前記偶数番目の補間係数を発生し、前記奇数周期用記憶手段に演算指令信号および位相情報が記憶された場合には前記奇数周期用記憶手段に記憶された位相情報に基づき前記奇数番目の補間係数を発生することを特徴とする請求項１〜４のいずれか１の請求項に記載のサンプリング周波数変換装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、デジタルオーディオ機器等に好適なサンプリング周波数変換装置に関する。
【背景技術】
【０００２】
デジタルオーディオ等の分野では、様々なサンプリング周波数に対応した装置が提供されているため、サンプリング周波数の異なる装置同士が接続される場合も多い。そのような場合、前段の装置から後段の装置に供給されるオーディオサンプル等のサンプルのサンプリング周波数を後段の装置のサンプリング周波数に合わせるサンプリング周波数変換装置が両装置間に設けられる。
【０００３】
図１２はこの種のサンプリング周波数変換装置の構成例を示すブロック図である。このサンプリング周波数変換装置は、前段の装置が出力する第１のサンプリング周波数ｆ１のサンプルｘに補間演算を施すことにより、後段の装置が要求する第２のサンプリング周波数ｆ２の補間サンプルｙに変換して出力する装置である。
【０００４】
図１２に示すように、サンプリング周波数変換装置は、装置全体と制御する制御部１と、補間部２と、ＲＡＭなどにより構成されたＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ  Ｆｉｒｓｔ−Ｏｕｔ）３と、インタフェース４とにより構成されている。
【０００５】
補間部２には、サンプリング周波数変換装置の前段の装置から第１のサンプリング周波数ｆ１の入力サンプルｘが与えられる。補間部２は、制御部１による制御の下、過去入力された所定個数の入力サンプルｘの列に補間演算を施すことにより、後段の装置が要求する第２のサンプリング周波数ｆ２の補間サンプルｙを発生し、書き込み要求信号ＷＥとともに出力する。制御部１は、この書き込み要求信号ＷＥが出力されるのに応じて、ＦＩＦＯ３に与える書き込みアドレスを更新する。
【０００６】
ＦＩＦＯ３は、制御部１による制御の下、補間部２から書き込み要求信号ＷＥとともに与えられる補間サンプルｙを順次記憶し、インタフェース４から読み出し要求信号ＲＥが与えられるのに応じて、記憶したサンプルｙを古いものから順次読み出し、サンプルｚとしてインタフェース４に供給する先入れ先出し方式のバッファである。
【０００７】
インタフェース４は、後段の装置からのワードクロックＬＲＣＫに応じて、読み出し要求信号ＲＥをＦＩＦＯ３および制御部１に出力する。制御部１は、この読み出し要求信号ＲＥに応じて、ＦＩＦＯ３に与える読み出しアドレスを更新し、読み出し未了の補間サンプルｙのうち最も古いものをＦＩＦＯ３から出力させるための制御を行う。インタフェース４は、このようにして制御部１への読み出し要求信号ＲＥの出力に応じてＦＩＦＯ３から読み出されるサンプルｚを受け取る。そして、受け取ったサンプルｚをシリアルなビット列ＳＤＯに変換し、ビット列ＳＤＯの各ビットを後段の装置から供給されるビットクロックＢＣＫに同期して出力する。ワードクロックＬＲＣＫは、後段の装置が要求する第２のサンプリング周波数ｆ２と同じ周波数のクロックである。
【０００８】
図１３は、補間部２によって行われる補間演算の内容を示す図である。この図１３において、黒丸マークは補間部２に与えられる入力サンプルｘを例示しており、白抜き三角マークは補間部２が発生すべき補間サンプルｙを例示している。発生すべき補間サンプルｙの周期１／ｆ２を入力サンプルｘの周期（サンプル間の時間間隔）１／ｆ１により割り算して得られる比（１／ｆ２）／（１／ｆ１）＝ｆ１／ｆ２を変換比βとした場合、補間演算により発生すべき補間サンプルｙは、入力サンプルｘが示す波形をβ周期（１周期＝１／ｆ１）間隔でサンプリングし直したものとなる。図１３に示す例では、第１のサンプリング周波数ｆ１が４８ｋＨｚ、第２のサンプリング周波数ｆ２が２２．０５ｋＨｚであるため、変換比βは４８ｋＨｚ／２２．０５ｋＨｚ＝２．１７６８となる。このため、入力サンプルｘが示す波形を２．１７６８周期の時間間隔でサンプリングし直したものを補間サンプルｙとしている。
【０００９】
このような補間演算を行うため、補間部２は、図１２に示すように、入力サンプルレジスタ２０１と、係数発生回路２０２と、畳み込み演算部２０３とを有している。ここで、入力サンプルレジスタ２０１は、例えばＮ段（Ｎは所定の整数）のシフトレジスタであり、第１のサンプリング周波数ｆ１と同一周波数のクロックφ１により、第１のサンプリング周波数ｆ１の入力サンプルｘを順次取り込み、取り込んだ過去Ｎ個分のサンプル列ｘ［ｉ−ｋ］（ｋ＝０〜Ｎ−１；ただし、ｉは時刻に対応したインデックス、ｘ［ｉ−０］が最新のサンプル、ｘ［ｉ−（Ｎ−１）］が最古のサンプルである。）を補間演算用入力サンプル列として保持する。
【００１０】
クロックφ１が入力サンプルレジスタ２０１に与えられる度に、最新のサンプルｘが入力サンプルレジスタ２０１に書き込まれ、入力サンプルレジスタ２０１に記憶された最古のサンプルが廃棄される。従って、入力サンプルレジスタ２０１に入力される補間演算用入力サンプル列ｘ［ｉ−ｋ］（ｋ＝０〜Ｎ−１）は、１サンプリング周期１／ｆ１が経過する毎に１サンプリング周期１／ｆ１分だけ位相が進んだものに更新される。
【００１１】
そして、入力サンプルレジスタ２０１の補間演算用入力サンプル列ｘ［ｉ−ｋ］（ｋ＝０〜Ｎ−１）の位相が補間サンプルｙの補間演算に適した位相になったとき、補間演算を要求する演算要求信号ＣＲＱと補間比αが制御部１から供給される。ここで、補間比αは、補間部２において発生すべき補間サンプルｙのサンプリング点の位相を示している。
【００１２】
さらに詳述すると、このサンプリング周波数変換装置において、補間部２は、入力サンプルレジスタ２０１に保持された補間演算用入力サンプル列ｘ［ｉ−ｋ］（ｋ＝０〜Ｎ−１）の中のサンプルｘ［ｉ−ｍ］（例えばｍ＝Ｎ／２）とサンプルｘ［ｉ−ｍ＋１］との間に補間サンプルｙが存在する状態になったときに、この補間サンプルｙを補間演算により求める。そして、補間比αは、時間軸上においてサンプルｘ［ｉ−ｍ］のサンプリング点とサンプルｘ［ｉ−ｍ＋１］のサンプリング点との間のどの位置に補間演算により求めるべき補間サンプルｙのサンプリング点があるかを示している。具体的には、補間比αは、補間サンプルｙのサンプリング点が入力サンプルレジスタ２０１内のサンプルｘ［ｉ−ｍ］のサンプリング点からα周期（１周期は１／ｆ１）だけ進んだところに位置していることを示す。
【００１３】
係数発生回路２０２は、この補間比αに対応した補間係数列ｈ［ｋ］（ｋ＝０〜Ｎ−１）を出力する回路である。そして、畳み込み演算部２０３は、演算要求信号ＣＲＱが与えられるのに応じて、補間係数列ｈ［ｋ］（ｋ＝０〜Ｎ−１）と入力サンプルレジスタ２０１に記憶された補間演算用入力サンプル列ｘ［ｉ−ｋ］（ｋ＝０〜Ｎ−１）とを用いた畳み込み演算を行い、補間サンプルｙを出力する回路である。
【００１４】
図１４〜図１６は、２２次の補間演算を行う場合を例に、係数発生回路２０２における補間係数列ｈ［ｋ］（ｋ＝０〜Ｎ−１）の発生方法を説明する図である。係数発生回路２０２は、理想ローパスフィルタのインパルス応答である標本化関数上の複数点の関数値を示す標本化関数テーブルを記憶している（図１４にはその一部が“既知の標本化関数の点”として示されている。）。係数発生回路２０２は、図１４および図１５に示すように、標本化関数のピーク点を補間サンプルｙのサンプリング点に一致させた場合において、入力サンプルレジスタ２０１に記憶された補間演算用入力サンプル列ｘ［ｉ−ｋ］（ｋ＝０〜Ｎ−１）の各サンプルと同一位相を持つ標本化関数上の各点の関数値を補間係数ｈ［ｋ］（ｋ＝１〜Ｎ−１）として算出する。図１５にも示すように、この補間係数ｈ［ｋ］（ｋ＝１〜Ｎ−１）は、標本化関数において、そのピーク点から補間比α相当の時間だけ負側に移動した点における関数値が補間係数ｈ［ｍ］となり、この補間係数ｈ［ｍ］のある位置を中心として１／４８ｋＨｚの間隔を空けて並んだ各点における標本化関数の関数値が他のＮ−１個の補間係数ｈ［ｋ］（ｋ＝０〜ｍ−１、ｍ＋１〜Ｎ−１）となる。
【００１５】
ここで、補間比αが例えば１２ビット表現のデータである場合、補間比αにより定まる補間サンプルｙのサンプリング点の時間分解能は、１／４８ｋＨｚの期間を４０９６分割したものとなる。この場合、補間比αがとりうる全ての値に対応して、補間係数ｈ［ｋ］（ｋ＝１〜Ｎ−１）を発生するためには、１個の補間係数ｈ［ｋ］当たり４０９６通りの標本化関数値を発生する能力が求められる。しかし、そのような標本化関数値を標本化関数テーブルに収めるとなると、標本化関数テーブルの記憶に必要なメモリ容量が膨大なものとなって得策ではない。そこで、一般には、以下説明するように、標本化関数テーブルの参照と直線補間とを併用した方法により補間係数ｈ［ｋ］（ｋ＝０〜Ｎ−１）の算出が行われる。
【００１６】
図１６は、補間係数ｈ［ｍ］を例に、その算出方法を説明するものである。図１６に示すように、１種類の補間係数ｈ［ｍ］は、１／４８ｋＨｚの区間内のいずれかの標本化関数値をとりうる。そこで、１種類の補間係数ｈ［ｍ］当たり、１／４８ｋＨｚの区間を３２分割する３２個の標本化関数値を標本化関数テーブルに収める。
【００１７】
そして、補間係数ｈ［ｍ］の算出に当たっては、まず、１２ビットの補間比αの上位６ビットに基づき、３２分割された区間内のどの区間に求めるべき補間係数ｈ［ｍ］が所在するかを特定し、その特定した区間の両端点をなす２個の標本化関数値を標本化関数テーブルから読み出す。次に１２ビットの補間比αの下位６ビットに基づき、読み出した２個の標本化関数値を用いた直線補間を行い、補間係数ｈ［ｍ］を算出するのである。
【００１８】
次に制御部１の処理内容について説明する。制御部１が行う処理の１つとして、位相情報Ｐの更新処理がある。位相情報Ｐは、次に発生すべき補間サンプルｙのサンプリング点と入力サンプルレジスタ２０１内の補間演算用入力サンプル列ｘ［ｉ−ｋ］（ｋ＝０〜Ｎ−１）との位相関係を示す情報である。上述した通り、補間演算用入力サンプル列ｘ［ｉ−ｋ］（ｋ＝０〜Ｎ−１）の内容は、第１のサンプリング周波数ｆ１と同一周波数のクロックφ１に同期して更新される。このため、制御部１は、位相情報Ｐの更新処理を第１のサンプリング周波数ｆ１と同一周波数のクロックφｍに同期して実行する。上述した演算要求信号ＣＲＱおよび補間比αは、この位置情報Ｐの更新処理の過程において発生される。
【００１９】
図１７は、制御部１によって行われる位相情報Ｐの更新処理の過程を例示する図である。この図において、上下方向は時間軸である。図１７にはクロックφｍに同期して位相情報Ｐが更新される様子が示されている。また、クロックφｍに従って補間サンプルｙと補間演算用入力サンプル列ｘ［ｉ−ｋ］（ｋ＝０〜Ｎ−１）との位相関係が変化する様子を分かりやすくするため、入力サンプルレジスタ２０１に記憶された入力サンプル列補間演算用入力サンプル列ｘ［ｉ−ｋ］（ｋ＝０〜Ｎ−１）が黒丸マークで、補間サンプルｙの位置が白丸マークで示されている。
【００２０】
位相情報Ｐは、次に発生すべき補間サンプルｙの位相が補間演算用入力サンプル列ｘ［ｉ−ｋ］（ｋ＝０〜Ｎ−１）の中のサンプルｘ［ｉ−ｍ］（例えばｍ＝Ｎ／２）の位相からどれだけ進んでいるかを示す情報である。すなわち、位相情報Ｐは、次に発生すべき補間サンプルｙの位相が現時点ｉにおけるサンプルｘ［ｉ−ｍ］の位相からＰ周期（１周期は１／ｆ１）だけ進んだ位置にあることを示す。
【００２１】
制御部１は、クロックφｍが立ち上がる毎に、この位相情報Ｐを１だけ減少させる。これはクロックφｍが立ち上がる毎に補間演算用入力サンプル列ｘ［ｉ−ｋ］（ｋ＝０〜Ｎ−１）の位相が１周期（＝１／ｆ１）だけ進むからである。
【００２２】
クロックφｍに同期して位相情報Ｐを１だけ減少させてゆくと、やがて位相情報Ｐは１より小さな値になる。このとき、補間サンプルｙのサンプリング点は、補間演算用入力サンプル列ｘ［ｉ−ｋ］（ｋ＝０〜Ｎ−１）の中のサンプルｘ［ｉ−ｍ］（図示の例ではｍ＝Ｎ／２）のサンプリング点とサンプルｘ［ｉ−ｍ＋１］のサンプリング点との間に位置している。そこで、制御部１は、演算要求信号ＣＲＱを補間部２に送るとともに、位相情報Ｐの小数部を補間比αとして補間部２に送る。これにより補間部２では、上述した方法により補間比αに対応した補間係数列ｈ［ｋ］（ｋ＝０〜Ｎ−１）が発生され、これが補間演算用入力サンプル列ｘ［ｉ−ｋ］（ｋ＝０〜Ｎ−１）に畳み込まれ、補間サンプルｙが発生される。
【００２３】
一方、演算要求信号ＣＲＱおよび補間比αを出力した制御部１は、次に発生すべき補間サンプルｙの位相を示した内容となるように、位相情報Ｐの更新を行う。具体的には、変換比β＝ｆ１／ｆ２を位相情報Ｐに加算する。この位相情報Ｐは、その後、クロックφｍが立ち上がる毎に１ずつ減算されてゆく。そして、位相情報Ｐが１より小さな値になると、演算要求信号ＣＲＱおよび補間比αの補間部２への供給と、位相情報Ｐに対する変換比βの加算が行われるのである。
【００２４】
このような処理が繰り返される結果、変換比βに反比例した時間密度で演算要求信号ＣＲＱおよび補間比αが補間部２に送られ、図１３に例示したように、β周期間隔で並んだ補間サンプルｙが補間部２により順次発生される。そして、この補間サンプルｙは、ＦＩＦＯ３およびインタフェース４を介して、後段の装置に送られるのである。
【００２５】
さて、以上説明したサンプリング周波数変換装置は、後段の装置から与えられるワードクロックＬＲＣＫの周波数が第２のサンプリング周波数ｆ２と同一周波数であることを前提としている。ワードクロックＬＲＣＫにジッタがなく、ワードクロックＬＲＣＫの周波数が常に一定である理想的な状況では、変換比βをｆ１／ｆ２に固定してもよい。しかし、実際にはワードクロックＬＲＣＫにはどうしてもジッタが発生する。
【００２６】
そして、瞬時的なワードクロックＬＲＣＫの周波数が第２のサンプリング周波数ｆ２よりも低い状態が続くと、ＦＩＦＯ３内における読み出し未了の補間サンプルｙの残量が増加し、これを放置すると、ＦＩＦＯ３のオーバフローを引き起こす。一方、瞬時的なワードクロックＬＲＣＫの周波数が第２のサンプリング周波数ｆ２よりも高い状態が続くと、ＦＩＦＯ３内における読み出し未了の補間サンプルｙの残量が減少し、これを放置すると、ＦＩＦＯ３のアンダフローを引き起こす。
【００２７】
制御部１は、ワードクロックＬＲＣＫのジッタを吸収して、このようなＦＩＦＯ３のオーバフローやアンダフローの発生を防止するため、いわばＰＬＬ（Ｐｈａｓｅ  Ｌｏｃｋｅｄ  Ｌｏｏｐ）制御を行う。すなわち、制御部１は、ＦＩＦＯ３内の読み出し未了の補間サンプルｙの残量を監視し、残量が適正値を維持するように、残量の変動に応じて、ＦＩＦＯ３におけるサンプル入力速度を増減する。
【００２８】
具体的には、ＦＩＦＯ３内の読み出し未了の補間サンプルｙの残量が適正範囲から外れて大きくなるときには、制御部１は、変換比βを増加させることにより、演算指令信号ＣＲＱが発生する時間密度を減少させ、ＦＩＦＯ３におけるサンプル入力速度を低下させる。一方、ＦＩＦＯ３内の読み出し未了の補間サンプルｙの残量が適正範囲から外れて小さくなるときには、変換比βを減少させることにより、演算指令信号ＣＲＱが発生する時間密度を増加させ、ＦＩＦＯ３におけるサンプル入力速度を上昇させる。このようなＰＬＬ制御により、補間部２からＦＩＦＯ３への補間サンプルｙの入力速度がワードクロックＬＲＣＫの周波数に追従したものとなり、ＦＩＦＯ３内の読み出し未了の補間サンプルｙの残量が適正範囲内に維持される。
なお、この種のサンプリング周波数変換装置に関する文献として、例えば特許文献１、２がある。
【特許文献１】特開２００６−２３８０４４号公報
【特許文献２】特開２００６−２６１８１２号公報
【発明の開示】
【発明が解決しようとする課題】
【００２９】
ところで、サンプリング周波数変換装置は、入力サンプルｘのサンプリング周波数ｆ１と同一またはそれに非常に近いサンプリング周波数ｆ２へのサンプリング周波数変換に用いられる場合もある。そのような場合、後段の装置からサンプリング周波数変換装置に送られるワードクロックＬＲＣＫの周波数がジッタの影響により入力サンプルｘのサンプリング周波数ｆ１よりも高くなる場合がある。図１８に示す例では、後段の装置は４８ｋＨｚの補間サンプルｙを受け取って処理する装置なのであるが、ワードクロックＬＲＣＫの周波数がジッタの影響により入力サンプルｘのサンプリング周波数ｆ１＝４８ｋＨｚよりも大きな５９．０７ｋＨｚとなっている。このため、変換比βが４８ｋＨｚ／５９．０７ｋＨｚとなり、１より小さくなっている。このように変換比βが１より小さな値になると、あるサンプリング周期（１／４８ｋＨｚ）において位相情報Ｐが１より小さくなって、演算指令信号ＣＲＱが発生され、その次のサンプリング周期において位相情報Ｐにβ−１を加算した結果が負になる場合がある。この場合、演算指令信号ＣＲＱが発生されるものの、補間比αが負になるため、補間演算に用いる補間係数ｈ［ｋ］（ｋ＝０〜Ｎ−１）を算出することができず、補間演算がエラーになるという問題が発生する。従来は、このような補間演算のエラーの発生を回避するために、後段の装置からサンプリング周波数変換装置に供給するワードクロックＬＲＣＫのジッタを極力少なくする必要があった。また、従来のサンプリング周波数変換装置は、ワードクロックＬＲＣＫのジッタが少なくても、後段の装置が要求するサンプリング周波数が入力サンプルのサンプリング周波数以上である場合には補間演算のエラーを発生させることなくサンプリング周波数の変換を行うことができなかった。
【００３０】
この発明は上述した事情に鑑みてなされたものであり、後段の装置が要求するサンプリング周波数が入力サンプルのサンプリング周波数以上であっても、補間演算のエラーを発生させることなく後段の装置が要求するサンプリング周波数へのサンプリング周波数変換を行うことができるサンプリング周波数変換装置を提供することを目的としている。
【課題を解決するための手段】
【００３１】
この発明は、後段の装置からのワードクロックの供給に応じて、所定のサンプリング周波数の入力サンプルに補間演算を施し、前記ワードクロックの周波数と同一のサンプリング周波数の補間サンプルを出力するサンプリング周波数変換装置において、前記入力サンプルを順次取り込み、取り込んだ最新のＮ個の入力サンプルを補間演算用入力サンプル列として記憶する入力サンプル記憶手段と、前記入力サンプルのサンプリング周波数の２倍の周波数のメインクロックに同期し、演算要求信号と発生すべき補間サンプルと前記補間演算用入力サンプル列との位相関係を示す位相情報を更新し、位相情報が所定の条件を満たしたとき、補間サンプルを発生するための補間演算を要求する演算指令信号を発生する制御手段と、前記演算指令信号が発生したとき、前記メインクロックに同期して切り換わる周期が偶数周期である場合には、前記補間演算用入力サンプル列との関係において前記位相情報により示される位相を持った補間サンプルを２Ｎ次の補間演算により得るための２Ｎ個の補間係数のうちＮ個の偶数番目の補間係数を発生し、前記メインクロックに同期して切り換わる周期が奇数周期である場合には、前記補間演算用入力サンプル列との関係において前記位相情報により示される位相を持った補間サンプルを２Ｎ次の補間演算により得るための２Ｎ個の補間係数のうちＮ個の奇数番目の補間係数を発生する係数発生手段と、前記演算指令信号が発生したとき、前記係数発生手段により発生されたＮ個の補間係数を前記入力サンプル記憶手段に記憶された補間演算用入力サンプル列に畳み込み、補間サンプルを出力する畳み込み演算手段とを具備することを特徴とするサンプリング周波数変換装置を提供する。
【００３２】
かかる発明によれば、演算量を増加させることなく、零点挿入による２倍のオーバサンプリングを補間演算用入力サンプル列に施して、本来の補間演算用入力サンプル列のサンプル数の２倍の次数の補間演算を行った場合と同様な効果が得られる。従って、後段の装置が要求するサンプリング周波数が入力サンプルのサンプリング周波数以上となる場合でも、補間演算のエラーを発生させることなく、サンプリング周波数変換を行うことができる。
【発明を実施するための最良の形態】
【００３３】
以下、図面を参照して、本発明を実施するための最良の実施の形態について説明する。
図１はこの発明の一実施形態によるサンプリング周波数変換装置の構成を示すブロック図である。この図において、ＦＩＦＯ３およびインタフェース４は、前掲図１２のものと同様である。本実施形態によるサンプリング周波数変換装置では、前掲図１２における制御部１および補間部２が制御部１ａおよび補間部２ａに置き換えられている。本実施形態の特徴は、この制御部１ａおよび補間部２ａに関する次の改良点にある。
改良点１：補間部２ａは、前段の装置から与えられた入力サンプル列を用いて補間演算により補間サンプルｙを算出する際、見かけ上の零点挿入による２倍オーバサンプリングを行う。
改良点２：制御部１ａは、前段の装置から与えられる入力サンプルｘのサンプリング周波数ｆ１の２倍の周波数のメインクロックφｍに同期して、位置情報Ｐの更新処理を行う。
以下では、まず、改良点１を中心に補間部２ａの詳細について説明し、次いで改良点２を中心に制御部１ａの詳細について説明する。
【００３４】
上述した従来技術における補間部２では、例えばサンプリング周波数ｆ１が４８ｋＨｚである入力サンプルｘが前段の装置から与えられる場合、図２に示すように、例えば現時点ｉまでに入力された２２個の入力サンプルｘ［ｉ−ｋ］（ｋ＝０〜２１）（図２では図示が煩雑になるのを防ぐため、ｘ［２１］〜ｘ［０］としている。）に２２個の補間係数ｈ［ｋ］（ｋ＝０〜２１）を畳み込む２２次の補間演算を行って補間サンプルｙを算出した。このため、従来のサンプリング周波数変換装置では、変換後のサンプリング周波数が変換前のサンプリング周波数と同じ４８ｋＨｚである場合に、後段の装置から与えられるワードクロックＬＲＣＫのジッタの影響により補間比αが負になり、補間演算においてエラーが発生する場合があった。
【００３５】
このような補間演算のエラーの発生を回避するための方法として、前段の装置から与えられる４８ｋＨｚのサンプリング周波数のサンプルｘに２倍のオーバサンプリングを施し、補間演算に用いるサンプル列のサンプリング周波数を入力サンプル列の本来のサンプリング周波数よりも高くする方法が考えられる。より具体的には、図３に示すように、現時点までに与えられた２２個の入力サンプルｘ［２１］〜ｘ［０］の各間に零点を挿入し、これにデシメーション処理（ローパスフィルタ処理）を施してサンプリング周波数ｆ１が９６ｋＨｚである４４個の入力サンプル列ｘ’［４３］〜ｘ’［０］とし、これに４４個の補間係数ｈ［ｋ］（ｋ＝０〜４３）を畳み込む４４次の補間演算を行って補間サンプルｙを算出するのである。
【００３６】
しかし、この方法により２倍のオーバサンプリングを実際に行うとなると、そのための処理負担が補間部２ａに掛かる。また、オーバサンプリング後に行う補間演算の次数も２倍になるため、そのための処理負担が補間部２ａに掛かる。従って、このような方法により２倍のオーバサンプリングを行うのは得策でない。
【００３７】
ところで、既に述べたように、補間サンプルｙを得るために行う補間演算は、理想的なローパスフィルタのインパルス応答である標本化関数の関数値列を入力サンプル列に畳み込むものであるため、デシメーション処理（ローパスフィルタ処理）としての役割を果たす。従って、２倍のオーバサンプリングのための零点挿入とデシメーション処理のうちデシメーション処理は省略可能である。そこで、４８ｋＨｚの２２個の入力サンプルｘ［２１］〜ｘ［０］の各間に零点を挿入して、９６ｋＨｚの４４個の入力サンプルｘ’［４３］〜ｘ’［０］とし、これに補間演算を施して補間サンプルｙを算出する方法が考えられる。しかし、この場合、補間演算の次数が２倍の４４次になるため、そのための処理負担が補間部２ａに掛かる。
【００３８】
そこで、本実施形態では、“見かけ上の”零点挿入による２倍のオーバサンプリングを行うことにより入力サンプルｘ［ｉ−ｋ］（ｋ＝０〜Ｎ−１）から補間サンプルｙを算出する。すなわち、入力サンプルレジスタ２０１に記憶された入力サンプルｘ［ｉ−ｋ］（ｋ＝０〜Ｎ−１）に対する零点挿入やデシメーション処理は実際には行わず、入力サンプルｘ［ｉ−ｋ］（ｋ＝０〜Ｎ−１）に対して零点挿入による２倍のオーバサンプリングを行ったのと同様の効果を発生させる態様で補間サンプルｙの算出を行う。具体的には次の通りである。
【００３９】
図４は、１／４８ｋＨｚの周期で前段の装置から入力サンプルｘが順次与えられる状況において、入力サンプル列に対して実際に零点挿入を行い、１／９６ｋＨｚの周期で、この零点挿入後の４４個の入力サンプル列を用いて４４次の補間演算を行う場合の処理内容を例示するものである。なお、図４では、図示が煩雑になるのを防止するため、前段の装置から与えられた入力サンプルｘ［ｉ−ｋ］（ｋ＝０〜２１）がｘ［２１］〜ｘ［０］、零点挿入後の補間演算用のサンプル列ｘ’［ｉ−ｋ］（ｋ＝０〜４３）がｘ’［４３］〜ｘ’［０］とされている。
【００４０】
入力サンプルｘのサンプリング周波数が４８ｋＨｚである場合、１／４８ｋＨｚの周期内においては、補間演算用入力サンプル列ｘ’［４３］〜ｘ’［０］に新たに加わるサンプルはなく、また、この補間演算用入力サンプル列ｘ’［４３］〜ｘ’［０］から追い出されるサンプルもない。
【００４１】
１／４８ｋＨｚの周期の前半の１／９６ｋＨｚの周期において、補間演算用入力サンプル列ｘ’［４３］〜ｘ’［０］では、サンプルｘ’［４３］、ｘ’［４１］、…、ｘ’［１］の内容が元の入力サンプルｘ［２１］〜ｘ［０］となっており、サンプルｘ’［４２］、ｘ’［４０］、…、ｘ’［０］の内容が零点となっている。そして、この補間演算用入力サンプル列ｘ’［４３］〜ｘ’［０］に対し、４４次の補間演算のための補間係数ｈ［０］、ｈ［１］、…、ｈ［４２］、ｈ［４３］が畳み込まれる。
【００４２】
この畳み込み演算において、零点であるサンプルｘ’［４２］、ｘ’［４０］、…、ｘ’［０］に対して、奇数番目の補間係数ｈ［１］、ｈ［３］、…、ｈ［４３］が各々乗算されるが、それらの乗算結果は全て０となる。一方、零点でないサンプルｘ’［４３］、ｘ’［４１］、…、ｘ’［１］は、元の４８ｋＨｚの入力サンプルｘ［２１］〜ｘ［０］であり、これらには偶数番目の補間係数ｈ［０］、ｈ［２］、…、ｈ［４２］が各々乗算される。
【００４３】
１／４８ｋＨｚの周期の後半の１／９６ｋＨｚの周期になると、補間演算用入力サンプル列ｘ’［４３］〜ｘ’［０］について１サンプル分のシフトが行われる。その際、最後尾（最も古い）のサンプルｘ’［０］の中身（この場合、零点）が追い出され、先頭（最も新しい）のサンプルｘ［４３］に零点が代入される。このため、補間演算用の入力サンプル列ｘ’［４３］〜ｘ’［０］では、サンプルｘ’［４２］、ｘ’［４０］、…、ｘ’［０］の内容が元の入力サンプルｘ［２１］〜ｘ［０］となり、サンプルｘ’［４３］、ｘ’［４１］、…、ｘ’［１］の内容が零点となる。そして、この補間演算用の入力サンプル列ｘ’［４３］〜ｘ’［０］に対し、４４次の補間演算のための補間係数ｈ［４３］、ｈ［４２］、…、ｈ［１］、ｈ［０］が畳み込まれる。
【００４４】
この畳み込み演算において、零点であるサンプルｘ’［４３］、ｘ’［４１］、…、ｘ’［１］に対して、偶数番目の補間係数ｈ［０］、ｈ［２］、…、ｈ［４２］が各々乗算されるが、それらの乗算結果は全て０となる。一方、零点でないｘ’［４２］、ｘ’［４０］、…、ｘ’［０］は、元の４８ｋＨｚの入力サンプルｘ［２１］〜ｘ［０］であり、これらには奇数番目の補間係数ｈ［１］、ｈ［３］、…、ｈ［４３］が各々乗算される。
【００４５】
以上説明したように、４８ｋＨｚのサンプリング周波数の入力サンプル列に対して実際に零点挿入を行い、１／９６ｋＨｚの周期で、この零点挿入後の入力サンプル列を用いて補間演算を行うと、零点と補間係数との乗算処理が発生する。このような乗算処理は無駄であり、実行する必要はない。一方、１／９６ｋＨｚの周期で行う補間演算において、補間演算用の入力サンプル列のうち挿入された零点以外のサンプルは、元の４８ｋＨｚの入力サンプルである。前半の１／９６ｋＨｚの周期と後半の１／９６Ｈｚの周期とで異なるのは、元の４８ｋＨｚの入力サンプルとの乗算に用いられる補間係数が前半の１／９６ｋＨｚの周期では偶数番目の補間係数であるのに対し、後半の１／９６ｋＨｚの周期では奇数番目の補間係数である、という点である。
【００４６】
以上の点に鑑み、本実施形態では、図５に示す方法により、入力サンプルに対する補間演算を行う。まず、図１における入力サンプルレジスタ２０１には、従来技術と同様、入力サンプルｘのサンプリング周波数ｆ１と同じ周波数のクロックに同期して記憶内容（補間演算用入力サンプル列）の更新を行わせる。
【００４７】
そして、入力サンプルレジスタ２０１に同一内容の補間演算用入力サンプル列が保持される１／４８ｋＨｚのサンプリング周期を前半の１／９６ｋＨｚの周期（以下、偶数周期）と後半の１／９６ｋＨｚの周期（以下、奇数周期）に分ける。
【００４８】
そして、偶数周期における補間サンプルｙの算出を行うときには、補間比αに対応した２Ｎ次補間のための２Ｎ個の補間係数ｈ（ｋ）（ｋ＝０〜２Ｎ−１）（図５ではｈ［０］〜ｈ［４３］）のうち偶数番目の補間係数を発生して、入力サンプルレジスタ２０１に記憶された補間演算用入力サンプル列ｘ［ｉ−ｋ］（ｋ＝０〜Ｎ−１）（図５ではｘ［２１］〜ｘ［０］）に畳み込む。一方、奇数周期における補間サンプルｙの算出を行うときには、補間比αに対応した２Ｎ次補間のための２Ｎ個の補間係数ｈ（ｋ）（ｋ＝０〜２Ｎ−１）（図５ではｈ［０］〜ｈ［４３］）のうち奇数番目の補間係数を発生して、入力サンプルレジスタ２０１に記憶された補間演算用入力サンプル列ｘ［ｉ−ｋ］（ｋ＝０〜Ｎ−１）（図５ではｘ［２１］〜ｘ［０］）に畳み込む。
【００４９】
この方法によれば、入力サンプル列ｘ［ｉ−ｋ］（ｋ＝０〜Ｎ−１）に対して、零点挿入による２倍オーバサンプリングを行って、本来の倍の次数の補間演算により補間サンプルｙの算出を行うのと同様な効果が得られる。
【００５０】
本実施形態では、偶数周期における補間サンプルｙの算出と奇数周期における補間サンプルｙの算出の両方が行われ得るため、制御部１ａは、サンプリング周波数ｆ１＝４８ｋＨｚの２倍の周波数ｆｍ（＝２ｆ１＝９６ｋＨｚ）のメインクロックφｍに同期して、位相情報Ｐの更新処理を行う（図１参照）。演算指令信号ＣＲＱおよび補間比αは、この位相情報Ｐの更新処理の過程において発生される。また、本実施形態では、演算指令信号ＣＲＱおよび補間比αの発生タイミングが偶数周期に属するか奇数周期に属するかを区別する必要があるため、制御部１ａは、メインクロックφｍのカウントを行うことにより、偶数周期において“０”、奇数周期において“１”となる１ビットの奇偶指示信号Ｏ／Ｅを補間部２ａに出力する。
【００５１】
図１に示すように、補間部２ａには、演算指令信号ＣＲＱを保持するための２個のレジスタ２１０および２１１と、補間比αを保持するための２個のレジスタ２２０および２２１が設けられている。ここで、レジスタ２１０および２２０は偶数周期用のレジスタであり、レジスタ２１１および２２１は奇数周期用のレジスタである。すなわち、奇偶指示信号Ｏ／Ｅが“０”である偶数周期において制御部１ａから出力された演算指令信号ＣＲＱおよび補間比αは、レジスタ２１０および２２０に各々保持され、奇偶指示信号Ｏ／Ｅが“１”である奇数周期において制御部１ａから出力された演算指令信号ＣＲＱおよび補間比αは、レジスタ２１１および２２１に各々保持される。
【００５２】
偶数周期用のレジスタ２１０および２２０に演算指令信号ＣＲＱおよび補間比αが保持された場合、係数発生回路２０２ａは、保持された補間比αに対応した４４個の補間係数ｈ［ｋ］（ｋ＝０〜４３）のうち２２個の偶数番目の補間係数を発生して畳み込み演算部２０３ａに与える。
【００５３】
図６は、この場合の補間係数の発生方法を例示する図である。本実施形態において、偶数周期において発生する補間比αは、求めるべき補間サンプルｙのサンプリング点が入力サンプルレジスタ２０１に記憶されたサンプルｘ［ｉ−ｋ］（ｋ＝０〜２１）のうちのサンプルｘ［ｉ−ｍ］のサンプリング点からα周期（ただし、１周期は、上記従来技術と異なり、１／９６ｋＨｚである。）だけ進んだところにあることを示す。偶数周期において補間比αが演算指令信号ＣＲＱとともに発生した場合、係数発生回路２０２ａは、サンプルｘ［ｉ−ｍ］のサンプリング点からα周期だけ位相が進んだ点に標本化関数のピーク点を位置させた状態において、サンプルｘ［ｉ−ｋ］（ｋ＝０〜２１）の各サンプリング点と同一の位相を持つ標本化関数値を補間係数として出力する。これらは、仮想的な零点も含めた４４個のサンプルと乗算される４４個の補間係数のうちの２２個の偶数番目の補間係数である。
【００５４】
一方、奇数周期用のレジスタ２１１および２２１に演算指令信号ＣＲＱおよび補間比αが保持された場合、係数発生回路２０２ａは、保持された補間比αに対応した４４個の補間係数ｈ［ｋ］（ｋ＝０〜４３）のうち２２個の奇数番目の補間係数を発生して畳み込み演算部２０３ａに与える。
【００５５】
図７は、この場合の補間係数の発生方法を例示する図である。本実施形態において、奇数周期において発生する補間比αは、求めるべき補間サンプルｙのサンプリング点が入力サンプルレジスタ２０１に記憶されたサンプルｘ［ｉ−ｋ］（ｋ＝０〜２１）のうちのサンプルｘ［ｉ−ｍ］とサンプルｘ［ｉ−ｍ＋１］との間の仮想的な零点からα周期（ただし、１周期は、上記従来技術と異なり、１／９６ｋＨｚである。）だけ進んだところにあることを示す。奇数周期において補間比αが演算指令信号ＣＲＱとともに発生した場合、係数発生回路２０２ａは、サンプルｘ［ｉ−ｍ］とサンプルｘ［ｉ−ｍ＋１］との間の仮想的な零点からα周期だけ位相が進んだ点に標本化関数のピーク点を位置させた状態において、サンプルｘ［ｉ−ｋ］（ｋ＝０〜２１）の各サンプリング点と同一の位相を持つ関数値を補間係数として出力する。これらは、仮想的な零点も含めた４４個のサンプルと乗算される４４個の補間係数のうちの２２個の奇数番目の補間係数である。
【００５６】
畳み込み演算部２０３ａは、以上のようにして係数発生回路２０２ａから出力される２２個の補間係数を入力サンプルレジスタ２０１に記憶された２２個の補間演算用入力サンプル列ｘ［ｉ−ｋ］（ｋ＝０〜２１）に畳み込み、補間サンプルｙを算出し、書き込み要求信号ＷＥとともにＦＩＦＯ３に与える。
【００５７】
ここで、偶数周期における補間サンプルｙは、１／４８ｋＨｚのサンプリング周期内のどのようなタイミングで算出してもよく、同様に、奇数周期における補間サンプルｙも、１／４８ｋＨｚのサンプリング周期内のどのようなタイミングで算出してもよい。
【００５８】
本実施形態では、１／４８ｋＨｚのサンプリング周期内において偶数周期における補間サンプルｙの算出と奇数周期における補間サンプルｙの算出の両方についての演算指令信号ＣＲＱおよび補間比αが発生される場合がある。この場合、補間部２ａでは、１／４８ｋＨｚのサンプリング周期内において偶数周期における補間サンプルｙと奇数周期における補間サンプルｙを順次算出する。
以上が補間部２ａの詳細である。
【００５９】
次に図８を参照し、制御部１ａの詳細について説明する。
ライトポインタ１０１は、補間部２ａから書き込み要求信号ＷＥが出力されるのに応じて書き込みアドレスを順次インクリメントし、ＦＩＦＯ３に供給する回路である。補間部２ａが補間サンプルｙを書き込み要求信号ＷＥとともに出力すると、補間部２ａからの補間サンプルｙは、ライトポインタ１０１が出力する書き込みアドレスにより指定されるＦＩＦＯ３内のエリアに書き込まれる。リードポインタ１０２は、インタフェース４からの読み出し要求信号ＲＥに応じて読み出しアドレスを順次インクリメントし、ＦＩＦＯ３へ供給する。ここで、読み出しアドレスは、ＦＩＦＯ３内に残存している読み出し未了の補間サンプルｙのうち最も古いものを指定する。この読み出しアドレスにより指定された補間サンプルｙは、読み出し要求信号ＲＥによりＦＩＦＯ３から読み出され、インタフェース４に供給される。
【００６０】
残量検出部１０３は、ライトポインタ１０１が発生している書き込みアドレスとリードポインタ１０２が発生している読み出しアドレスとの差分、すなわち、現時点においてＦＩＦＯ３に残存する読み出し未了の補間サンプルｙの残量を検出する回路である。ジッタ補正値テーブル１０４は、補間サンプルｙの残量をジッタ補正値に対応付けるテーブルであり、残量検出部１０３によって検出された残量に対応付けられたジッタ補正値を出力する。ここで、ジッタ補正値は、演算指令信号ＣＲＱが発生する時間密度を決定する変換比βを補正するための補正値である。ジッタ補正値テーブル１０４において、適正範囲内の残量は値が０であるジッタ補正値に対応付けられている。また、適正範囲よりも大きな区間における残量は、その値が大きいほど負方向に大きな値のジッタ補正値に対応つけられており、適正範囲よりも小さな区間における残量は、その値が小さいほど正方向に大きな値のジッタ補正値に対応付けられている。残量増減検出回路１０５は、残量検出部１０３によって検出される残量の急激な変化を検出する回路である。セレクタ１０６は、残量増減検出回路１０５によって残量の急激な変化が検出されたときにジッタ補正値テーブル１０４から出力されたジッタ補正値を選択して出力し、そうでない場合にはジッタ補正値として０を選択して出力する。
【００６１】
周波数補正部１１０は、ジッタ補正値に応じて変換比βの補正を行う回路であり、加算器１１１と、リミタ１１２と、ラッチ１１３とにより構成されている。ここで、ラッチ１１３には、クロックφａが与えられる。このクロックφａは、メインクロックφｍよりも高速であり、周波数は例えば９ＭＨｚである。このサンプリング周波数変換装置が動作を開始するとき、ラッチ１１３には、メインクロックφｍの周波数ｆｍを変換後のサンプリング周波数ｆ２により除算した値ｆｍ／ｆ２が変換比βの初期値として設定される。その後、ラッチ１１３は、クロックφａが与えられる毎に変換比βを加算器１１１からリミタ１１２を介して与えられる変換比βにより更新する。加算器１１１は、ラッチ１１３から出力される変換比βにセレクタ１０６から与えられるジッタ補正値を加算して出力する。リミタ１１２は、この加算器１１１から出力される変換比βが適正範囲から外れた場合に適正範囲内に制限する役割を果たす。この構成によれば、セレクタ１０６から値が０のジッタ補正値が出力されているときはラッチ１１３から出力される変換比βは変化しない。そして、セレクタ１０６から負のジッタ補正値が出力されているときはラッチ１１３から出力される変換比βが時間経過に伴って減少し、正のジッタ補正値が出力されているときはラッチ１１３から出力される変換比βが時間経過に伴って増加する。変換比βの減少の時間勾配、増加の時間勾配はジッタ補正値の絶対値が大きくなるほど大きくなる。
【００６２】
位相情報更新部１２０は、メインクロックφｍに同期して位相情報Ｐを更新し、その更新過程において、変換比βに反比例した時間密度で演算指令信号ＣＲＱを発生する回路であり、セレクタ１２１と、加算器１２２と、ラッチ１２３と、演算指令発生部１２４とにより構成されている。セレクタ１２１は、演算指令信号ＣＲＱが非アクティブレベルのときには−１を加算器１２２に出力し、アクティブレベルのときには周波数補正部１１０から与えられる変換比βから１を減算したデータを加算器１２２に出力する。加算器１２２は、ラッチ１２３に保持された位相情報Ｐにセレクタ１２１を介して与えられるデータを加算して位相情報Ｐの更新を行う回路である。ラッチ１２３は、加算器１２２から出力される位相情報Ｐをメインクロックφｍが与えられる毎に保持する回路である。演算指令発生部１２４は、ラッチ１２３から出力される位相情報Ｐが１以上であるときは演算指令信号ＣＲＱを非アクティブレベルとする。また、演算指令発生部１２４は、位相情報Ｐが１より小さくなったとき、クロックφｍの１周期相当の期間、演算指令信号ＣＲＱをアクティブレベルとする。このような構成によれば、位相情報Ｐが１以上である期間は、演算指令信号ＣＲＱが非アクティブレベルになってセレクタ１２１を介して−１が加算器１２２に与えられるため、メインクロックφｍが発生する毎にラッチ１２３が出力する位相情報Ｐが１ずつ減算される。そして、位相情報Ｐが１より小さくなると、演算指令信号ＣＲＱがアクティブレベルになってセレクタ１２１を介して変換比βから１を減じたデータが加算器１２２に与えられ、位相情報Ｐはβ−１だけ増加する。従って、変換比βに反比例した時間密度で演算指令信号ＣＲＱがアクティブレベルとされる。
【００６３】
クロックカウンタ１３０は、メインクロックφｍが発生する毎に、奇偶指示信号Ｏ／Ｅを反転させる１ビットのカウンタである。ここで、クロックカウンタ１３０は、入力サンプルレジスタ２０１が同一内容の補間演算用入力サンプル列ｘ［ｉ−ｋ］（ｋ＝０〜２１）を保持する１サンプリング周期（１／４８ｋＨｚ）内において前半の偶数周期では奇偶指示信号Ｏ／Ｅを“０”とし、奇数周期ではは奇偶指示信号Ｏ／Ｅを“１”とする。そして、位相情報Ｐの小数部のビット列に対し、この奇偶指示信号Ｏ／Ｅを最上位ビットとして加えたものが補間比αとされ、この補間比αが演算指令信号ＣＲＱとともに補間部２ａに供給される。
以上が制御部１ａの構成の詳細である。
【００６４】
図９および図１０は本実施形態の動作例を示すものである。図９に示す例では、後段の装置から与えられるワードクロックＬＲＣＫの周波数ｆ２が２２．０５ｋＨｚとなっている。制御部１ａでは、ＦＩＦＯ３内の補間サンプルｙの残量が残量検出部１０３によって検出される。
【００６５】
そして、残量が適正範囲よりも大きい場合には変換比βを増加させ、演算指令信号ＣＲＱが発生する時間密度を減少させ、補間部２ａからＦＩＦＯ３への補間サンプルｙの入力速度を低下させる制御が行われる。一方、残量が適正範囲よりも小さい場合には変換比βを減少させ、演算指令信号ＣＲＱが発生する時間密度を増加させ、補間部２ａからＦＩＦＯ３への補間サンプルｙの入力速度を上昇させる制御が行われる。
【００６６】
この制御が繰り返される結果、変換比βが９６ｋＨｚ／２２．０５ｋＨｚ＝４．３５３７となったときに、９６ｋＨｚのメインクロックφｍに同期して発生される演算指令信号ＣＲＱの時間密度がワードクロックＬＲＣＫの周波数ｆ２＝２２．０５ｋＨｚと一致した状態となり、ＦＩＦＯ３内の補間サンプルｙの残量は適正範囲内に収束する。そして、変換比βを４．３５３７としたサンプリング周波数変換が行われ、サンプリング周波数変換により得られた２２．０５ｋＨｚの補間サンプルｙがＦＩＦＯ３およびインタフェース４を介して後段の装置に送られる。
【００６７】
本実施形態では、９６ｋＨｚの周波数ｆｍのクロックφｍに同期して位相情報Ｐの更新および更新結果に基づく演算指令信号ＣＲＱの発生が行われるため、演算指令信号ＣＲＱは、クロックφｍの偶数周期において発生される場合もあり、奇数周期において発生される場合もある。しかしながら、この例の場合、変換比βが４．３５３７であるため、位相情報Ｐが１より小さくなって、演算指令信号ＣＲＱを発生し、その次のメインクロックφｍが発生するとき、位相情報Ｐはβ−１＝３．３５３７だけ増加する。従って、補間比αが負になることはない。
【００６８】
図１０に示す例では、後段の装置から与えられるワードクロックＬＲＣＫの周波数ｆ２が５９．０７ｋＨｚであり、前段の装置からの入力サンプルｘのサンプリング周波数ｆ１＝４８ｋＨｚよりも高い。上述した従来のサンプリング周波数変換装置では、このような入力サンプルｘのサンプリング周波数ｆ１よりも高い周波数のワードクロックＬＲＣＫが後段の装置から与えられた場合、補間比αが負になり、補間演算がエラーになる場合があった。しかしながら、本実施形態の場合、このような補間演算のエラーは発生しない。
【００６９】
本実施形態では、ワードクロックＬＲＣＫの周波数ｆ２が５９．０７ｋＨｚである場合、変換比βが９６ｋＨｚ／５９．０７ｋＨｚ＝１．６２５となったときに、９６ｋＨｚのメインクロックφｍに同期して発生される演算指令信号ＣＲＱの時間密度がワードクロックＬＲＣＫの周波数ｆ２＝５９．０７ｋＨｚと一致した状態となり、ＦＩＦＯ３内の補間サンプルｙの残量は適正範囲内に収束する。そして、変換比βを１．６２５としたサンプリング周波数変換が行われ、サンプリング周波数変換により得られた５９．０７ｋＨｚの補間サンプルｙがＦＩＦＯ３およびインタフェース４を介して後段の装置に送られる。
【００７０】
この場合、変換比βが１．６２５であるため、位相情報Ｐが１より小さくなって、演算指令信号ＣＲＱを発生し、その次のメインクロックφｍが発生するとき、位相情報Ｐはβ−１＝０．６２５だけ増加する。従って、補間比αが負になることはない。従って、上述した従来の技術において発生したような補間演算のエラーは発生しない。
【００７１】
以上のように本実施形態によれば、後段の装置から与えられるワードクロックＬＲＣＫの周波数ｆ２が前段の装置から与えられる入力サンプルｘのサンプリング周波数ｆ１よりも高くなる状況でも、補間演算のエラーを発生させることなく、ワードクロックＬＲＣＫの周波数へのサンプリング周波数変換を行うことができる。従って、本実施形態によれば、ワードクロックＬＲＣＫにジッタがある場合でも、補間演算のエラーを発生させることなく、入力サンプルのサンプリング周波数と同一のサンプリング周波数へのサンプリング変換を行うことができる。また、本実施形態によれば、入力サンプルのサンプリング周波数の２倍以下であり、かつ、入力サンプルのサンプリング周波数よりも高い周波数へのサンプリング周波数変換を行うことも可能である。
【００７２】
また、本実施形態によれば、補間演算の時間分解能が同じであるならば、係数発生回路２０２ａとして従来のサンプリング周波数変換装置において使用した係数発生回路２０２をそのまま流用することができるという効果がある。以下、図１１を参照し、この効果について説明する。
【００７３】
図１１（ａ）は、従来のサンプリング周波数変換装置において、補間演算の際に補間サンプルｙのサンプリング点の直前のサンプルｘ［ｉ−ｍ］に乗算される補間係数ｈ［ｍ］の範囲を示している。この図１１（ａ）に示すように、標本化関数においてピーク点の左側（負側）の１／４８ｋＨｚの時間長の区間内の関数値が補間係数ｈ［ｍ］として発生される。ここで、補間比αが１２ビットのデータである場合、この１／４８ｋＨｚの区間を４０９６分割した各点の関数値の中から０〜４０９５の範囲の値をとりうる補間比αの値に対応したものを係数発生回路２０２が発生すればよい。
【００７４】
図１１（ｂ）は、本実施形態によるサンプリング周波数変換装置において、補間演算の際に補間サンプルｙのサンプリング点の直前のサンプルｘ［ｉ−ｍ］に乗算される補間係数ｈ［２ｍ］およびｈ［２ｍ＋１］の範囲を示している。
【００７５】
本実施形態では、補間サンプルｙのサンプリング点が偶数周期に属する場合には偶数番目の補間係数ｈ［２ｍ］を発生してサンプルｘ［ｉ−ｍ］に乗算し、補間サンプルｙのサンプリング点が奇数周期に属する場合には奇数番目の補間係数ｈ［２ｍ＋１］を発生してサンプルｘ［ｉ−ｍ］に乗算する。
【００７６】
しかし、図１１（ｂ）に示すように、標本化関数においてピーク点の左側（負側）の１／９６ｋＨｚの時間長の区間内の関数値が補間係数ｈ［２ｍ］となり、その左隣の１／９６ｋＨｚの時間長の区間内の関数値が補間係数ｈ［２ｍ＋１］となる。結局、本実施形態と従来技術とで、サンプルｘ［ｉ−ｍ］に乗算される補間係数の範囲は同じである。
【００７７】
従って、奇偶指示信号Ｏ／Ｅを最上位ビットとして位相情報Ｐの小数部１１ビットに付加し、従来技術と同様な１２ビットの補間比αを構成するのであれば、係数発生回路２０２ａとして、従来のサンプリング周波数変換装置において使用した係数発生回路２０２をそのまま流用することができる。
【００７８】
以上、この発明の一実施形態について説明したが、この発明には他にも実施形態が考えられる。例えば次の通りである。
【００７９】
（１）メインクロックφｍを１／２分周して入力サンプルレジスタ２０１に与えるクロックφ１を生成してもよい。ここで、クロックφ１の立ち上がり時に入力サンプルｘの入力サンプルレジスタ２０１への書き込みが行われる場合には、クロックφ１がＨレベルである期間をメインクロックφｍの偶数周期、クロックφ１がＬレベルである期間を奇数周期とし、クロックφ１を奇偶指示信号Ｏ／Ｅの代わりに用いてもよい。この態様によれば、奇偶指示信号Ｏ／Ｅを生成するためのクロックカウンタ１３０を省略することができる。
【００８０】
（２）上記実施形態では、位相情報Ｐの一部（小数部）である補間比αを補間部２ａに送って補間演算を行わせたが、演算指令信号ＣＲＱが発生するときには位相情報Ｐの整数部は０になっているので、位相情報Ｐ全体を補間部２ａに送っても問題ない。
【００８１】
（３）上記実施形態では、位相情報Ｐが１より小さくなったときに演算指令信号ＣＲＱを発生したが、１より大きな所定数未満になったとき、演算指令信号ＣＲＱを発生するようにしてもよい。すなわち、演算指令信号ＣＲＱは、補間演算用入力サンプル列と補間サンプルｙとの位相関係が所定の条件を満たしたことが位相情報Ｐから検出されたときに発生させればよい。
【００８２】
（４）上記実施形態では、インタフェース４が後段の装置から要求されるサンプリング周波数と同一周波数のワードクロックＬＲＣＫを受け取り、算出された補間サンプルをこのワードクロックＬＲＣＫに同期させて後段の装置に送信した。しかし、このようなワードクロックＬＲＣＫを受け取ることなく、例えば通信開始前のネゴシエーションなどにより後段の装置が要求するサンプリング周波数を検知し、このサンプリング周波数を持った補間サンプルを入力サンプルｘを用いて算出し、後段の装置に送るようにサンプリング周波数変換装置を構成してもよい。
【図面の簡単な説明】
【００８３】
【図１】この発明の一実施形態であるサンプリング周波数変換装置の構成を示すブロック図である。
【図２】従来のサンプリング周波数変換装置において行われた補間演算の処理内容を説明する図である。
【図３】零点挿入による２倍のオーバサンプリングを伴う補間演算の処理内容を説明する図である。
【図４】零点挿入による２倍のオーバサンプリングを伴う補間演算における偶数周期の処理内容および奇数周期の処理内容を説明する図である。
【図５】同実施形態が採用する補間演算の偶数周期の処理内容および奇数周期の処理内容を説明する図である。
【図６】同実施形態において偶数周期の補間サンプルの算出に用いる補間係数を示す図である。
【図７】同実施形態において奇数周期の補間サンプルの算出に用いる補間係数を示す図である。
【図８】同実施形態における制御部１ａの詳細な構成を示すブロック図である。
【図９】同実施形態の動作例を示す図である。
【図１０】同実施形態の動作例を示す図である。
【図１１】同実施形態において従来の係数発生回路を流用可能であることを説明する図である。
【図１２】従来のサンプリング周波数変換装置の構成を示すブロック図である。
【図１３】同サンプリング周波数変換装置の動作例を示す図である。
【図１４】同サンプリング周波数変換装置における補間係数の発生方法を説明する図である。
【図１５】同サンプリング周波数変換装置における補間係数の発生方法を詳細に説明する図である。
【図１６】同サンプリング周波数変換装置における補間係数の所在区間の特定方法および補間係数の直線補間方法を示す図である。
【図１７】同サンプリング周波数変換装置において行われる位相情報の更新処理を説明する図である。
【図１８】同サンプリング周波数変換装置において発生する補間演算のエラーを説明する図である。
【符号の説明】
【００８４】
１ａ…制御部、２ａ…補間部、２０１…入力サンプルレジスタ、２０２ａ…係数発生回路、２０３ａ…畳み込み演算部、２１０，２２０…偶数周期用レジスタ、２１１，２２１…奇数周期用レジスタ、３…ＦＩＦＯ、４…インタフェース、１０１…リードポインタ、１０２…ライトポインタ、１０３…残量検出部、１０５…残量増減検出回路、１０４…ジッタ補正値テーブル、１０６…セレクタ、１１０…周波数補正部、１２０…位相情報更新部、１３０…クロックカウンタ。
【図１】
2008178049.tif 000003
【図２】
2008178049.tif 000004
【図３】
2008178049.tif 000005
【図４】
2008178049.tif 000006
【図５】
2008178049.tif 000007
【図６】
2008178049.tif 000008
【図７】
2008178049.tif 000009
【図８】
2008178049.tif 000010
【図９】
2008178049.tif 000011
【図１０】
2008178049.tif 000012
【図１１】
2008178049.tif 000013
【図１２】
2008178049.tif 000014
【図１３】
2008178049.tif 000015
【図１４】
2008178049.tif 000016
【図１５】
2008178049.tif 000017
【図１６】
2008178049.tif 000018
【図１７】
2008178049.tif 000019
【図１８】
2008178049.tif 000020
【手続補正書】
【提出日】平成19年5月16日(2007.5.16)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
所定のサンプリング周波数を有する入力サンプルに補間演算を施すことにより、後段の装置が要求するサンプリング周波数の補間サンプルを算出して出力するサンプリング周波数変換装置において、
所定個数の前記入力サンプルを補間演算用入力サンプル列として記憶する入力サンプル記憶手段と、
零点挿入によりオーバサンプリングされた前記補間演算用入力サンプル列から前記補間サンプルを生成するための補間演算に用いる補間係数列のうち、零点挿入されていない前記補間演算用入力サンプル列と乗算される補間係数列のみを発生する係数発生手段と、
前記係数発生手段が発生した補間係数列を零点挿入されていない前記補間演算用入力サンプル列に畳み込むことにより、前記補間サンプルを生成する畳み込み演算手段と
を具備することを特徴とするサンプリング周波数変換装置。
【請求項２】
（１）前記入力サンプルのサンプリング周波数の２倍の周波数のメインクロックに同期し、発生すべき補間サンプルと前記補間演算用入力サンプル列との位相関係を示す位相情報を更新し、位相情報が所定の条件を満たしたとき、補間サンプルを発生するための補間演算処理を要求する演算指令信号を発生する制御手段を具備し、
（２）前記入力サンプル記憶手段は、前記入力サンプルのサンプリング周波数と同一の周波数のクロックに同期して、前記入力サンプルを順次取り込み、取り込んだ最新のＮ個の入力サンプルを補間演算用入力サンプル列として記憶するものであり、
（３）前記補間手段は、
（３Ａ）前記メインクロックに同期して切り換わる周期が偶数周期である期間に発生する前記演算指令信号および前記位相情報を各々記憶する偶数周期用演算指令記憶手段および偶数周期用位相情報記憶手段と、
（３Ｂ）前記メインクロックに同期して切り換わる周期が奇数周期である期間に発生する前記演算指令信号および前記位相情報を各々記憶する奇数周期用演算指令記憶手段および奇数周期用位相情報記憶手段とを具備し、
（４）前記係数発生手段は、
（４Ａ）前記偶数周期用演算指令記憶手段に前記演算指令信号が記憶されたときには、前記偶数周期用位相情報記憶手段に記憶された位相情報が示す位相を持った補間サンプルを得るための２Ｎ次の補間係数列のうち、Ｎ個の偶数番目の補間係数を発生して前記畳み込み演算手段に供給する第１の補間係数発生処理を実行し、
（４Ｂ）前記奇数周期用演算指令記憶手段に前記演算指令信号が記憶されたときには、前記奇数周期用位相情報記憶手段に記憶された位相情報が示す位相を持った補間サンプルを得るための２Ｎ次の補間係数列のうち、Ｎ個の奇数番目の補間係数を発生して前記畳み込み演算手段に供給する第２の補間係数発生処理を実行し、
（４Ｃ）前記偶数周期用演算指令記憶手段と前記偶数周期用演算指令記憶手段の両方に前記演算指令信号が記憶されたときには、前記第１および第２の補間係数発生処理の両方を順次実行し、
（５）前記畳み込み演算手段は、前記係数発生手段からＮ個の補間係数が供給される毎に、供給されたＮ個の補間係数と前記補間演算用入力サンプル列との畳み込み演算を行うことを特徴とする請求項１に記載のサンプリング周波数変換装置。
【請求項３】
前記後段の装置が要求するサンプリング周波数と同一周波数のワードクロックを受け取り、算出された補間サンプルを前記ワードクロックに同期させて前記後段の装置に送信するインタフェースを具備し、
前記制御手段は、前記メインクロックに同期して発生する演算指令信号の時間密度を前記ワードクロックの周波数に追従させる制御を行うことを特徴とする請求項２に記載のサンプリング周波数変換装置。
【請求項４】
前記畳み込み演算手段から出力される補間サンプルを順次記憶し、前記ワードクロックの受信に応じて、記憶した補間サンプルを古いものから順に読み出して出力する先入れ先出し式記憶手段を具備し、
前記制御手段は、前記先入れ先出し式記憶手段における読み出し未了の補間サンプルの残量を検出する残量検出手段を具備し、前記残量検出手段により検出される残量に基づき、前記演算指令信号が発生する時間密度を前記ワードクロックの周波数に追従させる制御を行うことを特徴とする請求項３に記載のサンプリング周波数変換装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００３１
【補正方法】変更
【補正の内容】
【００３１】
この発明は、所定のサンプリング周波数を有する入力サンプルに補間演算を施すことにより、後段の装置が要求するサンプリング周波数の補間サンプルを算出して出力するサンプリング周波数変換装置において、所定個数の前記入力サンプルを補間演算用入力サンプル列として記憶する入力サンプル記憶手段と、零点挿入によりオーバサンプリングされた前記補間演算用入力サンプル列から前記補間サンプルを生成するための補間演算に用いる補間係数列のうち、零点挿入されていない前記補間演算用入力サンプル列と乗算される補間係数列のみを発生する係数発生手段と、前記係数発生手段が発生した補間係数列を零点挿入されていない前記補間演算用入力サンプル列に畳み込むことにより、前記補間サンプルを生成する畳み込み演算手段とを具備することを特徴とするサンプリング周波数変換装置を提供する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００３２
【補正方法】変更
【補正の内容】
【００３２】
かかる発明によれば、補間サンプル１個当たりの演算量を増加させることなく、零点挿入によるオーバサンプリングを伴う補間演算処理と同じ結果の得られる処理を行うことができる。従って、後段の装置が要求するサンプリング周波数が入力サンプルのサンプリング周波数未満である場合に限らず、入力サンプルのサンプリング周波数以上となる場合でも、補間サンプル１個当たりの演算量を増加させることなく、かつ、補間演算のエラーを発生させることなく、サンプリング周波数変換を行うことができる。