(57)【要約】【課題】サンプリング周波数変換装置の回路規模を抑制しながらクロック信号のジッタの影響を迅速に解消する。【解決手段】サンプリング周波数変換装置３０は、クロック信号LRCKaに同期して順次に供給されるデータＤＡ1からクロック信号LRCKbに同期したデータＤＡ2を生成する。ラッチ回路３２５は、クロック信号LRCKaによって指定されるタイミングとクロック信号LRCKbによって指定されるタイミングとの間隔ａを出力する。補間比特定部３２７は、ラッチ回路３２５からの出力に応じて補間比Ｆaを特定する。補間部３４は、クロック信号LRCKaによって指定されるタイミングでデータＤＡ1を順次に取り込んで演算用データ列として保持し、補間比Ｆaおよび演算用データ列に応じた補間演算をクロック信号LRCKbに同期して順次に実行することでデータＤＡ2を生成する。【選択図】図２
2008085964.tif 000002
【特許請求の範囲】
【請求項１】
第１クロック信号に同期して順次に供給される第１データから第２クロック信号に同期した第２データを生成する装置であって、
第１クロック信号によって指定されるタイミングと第２クロック信号によって指定されるタイミングとの間隔を計測する計測手段と、
前記計測手段が計測した間隔に基づいて補間比を特定する補間比特定手段と、
第１クロック信号によって指定されるタイミングで第１データを順次に取り込んで演算用データ列として保持するデータ保持手段と、
前記補間比特定手段が特定した補間比と前記データ保持手段が保持する演算用データ列とに応じた補間演算によって第２データを生成する補間演算手段と
を具備するサンプリング周波数変換装置。
【請求項２】
第１クロック信号によって指定される各タイミングの間隔を特定する周期特定手段を具備し、
前記補間比特定手段は、前記計測手段が計測した間隔と前記周期特定手段が特定した間隔との相対比を補間比として特定する
請求項１に記載のサンプリング周波数変換装置。
【請求項３】
第１クロック信号および第２クロック信号よりも周波数が高いクロック信号を第１クロック信号によって指定される各タイミングから計数するカウンタ回路を具備し、
前記周期特定手段は、第１クロック信号によって指定されるタイミングで前記カウンタ回路によるカウント値を出力および保持する第１ラッチ回路を含み、
前記計測手段は、第２クロック信号によって指定されるタイミングで前記カウンタ回路によるカウント値を出力および保持する第２ラッチ回路を含み、
前記補間比特定手段は、前記第１ラッチ回路からの出力と前記第２ラッチ回路からの出力との相対比を補間比として特定する
請求項２に記載のサンプリング周波数変換装置。
【請求項４】
前記周期特定手段は、第２クロック信号の周期を記憶する記憶回路を含み、
前記補間比特定手段は、前記計測手段が計測した間隔と前記記憶回路が記憶する周期との相対比を補間比として特定する
請求項２に記載のサンプリング周波数変換装置。
【請求項５】
前記計測手段は、各々が２以上である複数の整数値の何れかを選択的に累算する累算回路を含み、
前記補間比特定手段は、前記累算回路による累算値に基づいて補間比を特定する
請求項１に記載のサンプリング周波数変換装置。
【請求項６】
第１クロック信号に同期して順次に供給される第１データから第２クロック信号に同期した第２データを生成する装置であって、
基準値を保持する保持手段と、
前記保持手段が保持する基準値を、第１クロック信号によって指定される各タイミングの間隔にて順次に累算する累算手段と、
前記累算手段による累算値と所定値とを比較する比較手段と、
前記比較手段による比較の結果に応じた補正値を特定する補正値特定手段と、
前記保持手段が保持する基準値を前記補正値に基づいて補正する補正手段と、
前記保持手段が保持する基準値に応じたタイミングで第１データを順次に取り込んで演算用データ列として保持するデータ保持手段と、
前記保持手段が保持する基準値と前記データ保持手段が保持する演算用データ列とに応じた補間演算によって第２データを生成する補間演算手段と
を具備するサンプリング周波数変換装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタルデータのサンプリング周波数を変換する技術に関する。
【背景技術】
【０００２】
デジタルデータで表現される信号の波形を維持しながらサンプリング周波数を変換する技術が従来から提案されている。例えば特許文献１から特許文献３には、ＦＩＦＯ（First-In First-Out）方式のメモリ（以下では単に「ＦＩＦＯ」という）を利用したサンプリング周波数変換装置が開示されている。変換の対象となるデータ列は、当該データ列のサンプリング周波数ｆ1と同じ周波数となるように生成されたクロック信号（以下「入力クロック」という）に同期して順次にＦＩＦＯに格納される。そして、所望のサンプリング周波数ｆ2と同じ周波数となるように生成されたクロック信号（以下「出力クロック」という）に同期して、ＦＩＦＯに格納されたデータ列の補間処理が実行される。
【０００３】
入力クロックや出力クロックの周波数の精度には限界がある。入力クロックの周波数がサンプリング周波数ｆ1に合致しない場合や出力クロックの周波数がサンプリング周波数ｆ2に合致しない場合にはＦＩＦＯにオーバーフローやアンダーフローが発生する。この問題を防止するために、特許文献１から特許文献３のサンプリング周波数変換装置は、ＦＩＦＯのデータ残量に応じてデータ列の読出の速度が調整される構成となっている。
【特許文献１】特開平１１−５５０７５号公報
【特許文献２】特開２００５−１５９４０７号公報
【特許文献３】特開２００５−１９２１７４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、以上のようにＦＩＦＯを採用した構成においては回路規模の抑制が困難であるという問題がある。オーバーフローやアンダーフローの可能性を確実に低減する（すなわちデータ残量の許容範囲を充分に確保する）ためにはＦＩＦＯの段数を増加する必要があるから、回路規模の肥大化という問題はいっそう深刻化する。また、入力クロックや出力クロックの周波数に誤差（ジッタ）が発生し始めた場合であっても、その影響が直ちにＦＩＦＯのデータ残量に現れるわけではない。したがって、入力クロックや出力クロックのジッタがデータの読出の速度にフィードバックされるまでに相当の時間を要するという問題もある。以上の事情に鑑みて、本発明は、回路規模を抑制しながらクロック信号のジッタの影響を迅速に解消するという課題の解決を目的としている。
【課題を解決するための手段】
【０００５】
以上の課題を解決するために、本発明の第１の特徴に係るサンプリング周波数変換装置は、第１クロック信号に同期して順次に供給される第１データから第２クロック信号に同期した第２データを生成する装置であって、第１クロック信号によって指定されるタイミングと第２クロック信号によって指定されるタイミングとの間隔を計測する計測手段（例えば図２のラッチ回路３２５や図５のラッチ回路４２３）と、計測手段が計測した間隔に基づいて補間比を特定する補間比特定手段と、第１クロック信号によって指定されるタイミングで第１データを順次に取り込んで演算用データ列として保持するデータ保持手段（例えば図４のシフトレジスタ３４１）と、補間比特定手段が特定した補間比とデータ保持手段が保持する演算用データ列とに応じた補間演算によって第２データを生成する補間演算手段と具備する。なお、第１の特徴に係る発明の具体的な形態は第１実施形態として後述される。
【０００６】
本発明においては、第１クロック信号によって指定されるタイミング（例えば図３のサンプリング点Ｔa）と第２クロック信号によって指定されるタイミング（例えば図３のサンプリング点Ｔb）との間隔に基づいて補間比が特定される。この構成によれば、補間比の特定のためにＦＩＦＯを利用する必要はないから、ＦＩＦＯを利用した従来の構成と比較して回路規模の縮小や消費電力の低減が実現される。また、第１クロック信号と第２クロック信号との間隔（位相差）に応じて補間比が特定されるから、ＦＩＦＯのデータ残量に応じて補間比が特定される従来の構成と比較して、クロック信号の周波数の誤差（ジッタ）の影響が迅速に解消されるという利点がある。
【０００７】
本発明の好適な態様において、第１クロック信号によって指定される各タイミングの間隔（例えば図３の周期(t+Δt)や図６の周期ｓ）を特定する周期特定手段を具備し、補間比特定手段は、計測手段が計測した間隔と周期特定手段が特定した間隔との相対比を補間比として特定する。本態様によれば、第１クロック信号の周期に応じた適切な補間比の特定が可能となる。
【０００８】
周期特定手段を具備するサンプリング周波数変換装置の第１の態様においては、第１クロック信号および第２クロック信号よりも周波数が高いクロック信号（例えば図１のマスタークロック信号MCLK）を第１クロック信号によって指定される各タイミングから計数するカウンタ回路が設置され、周期特定手段は、第１クロック信号によって指定されるタイミングでカウンタ回路によるカウント値を出力および保持する第１ラッチ回路（例えば図２のラッチ回路３２３）を含み、計測手段は、第２クロック信号によって指定されるタイミングでカウンタ回路によるカウント値を出力および保持する第２ラッチ回路（例えば図２のラッチ回路３２５）を含み、補間比特定手段は、第１ラッチ回路からの出力と第２ラッチ回路からの出力との相対比を補間比として特定する。以上の態様によれば、第１クロック信号によって指定される各タイミングの間隔（周期）が第１ラッチ回路によって特定されるから、第１クロック信号の周期（周波数）に誤差が発生した場合であっても適切な補間比を特定することが可能である。
【０００９】
周期特定手段を具備するサンプリング周波数変換装置の第２の態様において、周期特定手段は、第２クロック信号の周期を記憶する記憶回路（例えば図５の記憶部４２５や図７の記憶部３２９）を含み、補間比特定手段は、計測手段が計測した間隔と記憶回路が記憶する周期との相対比を補間比として特定する。以上の態様によれば、第２クロック信号の周期が記憶回路に記憶されるから、第２クロック信号の周期を計測する手段（第１ラッチ回路）の省略によって回路規模がさらに縮小される。
【００１０】
本発明の好適な態様において、計測手段は、各々が２以上である複数の整数値の何れかを選択的に累算する累算回路（例えば図８の累算回路３２２）を含み、補間比特定手段は、累算回路による累算値に基づいて補間比を特定する。以上の態様によれば、累算回路が順次に累算する整数値を適宜に算定することで累算回路による累算値を補間比として利用することが可能となる。したがって、乗算回路や除算回路によって補間比が算定される構成と比較して回路規模が縮小されるという利点がある。
【００１１】
本発明の第２の特徴に係るサンプリング周波数変換装置は、第１クロック信号に同期して順次に供給される第１データから第２クロック信号に同期した第２データを生成する装置であって、基準値を保持する保持手段（例えば図９のラッチ回路７１１）と、保持手段が保持する基準値を、第１クロック信号によって指定される各タイミングの間隔にて順次に累算する累算手段と、累算手段による累算値と所定値とを比較する比較手段と、比較手段による比較の結果に応じた補正値を特定する補正値特定手段（例えば図９の補正値テーブル７４）と、保持手段が保持する基準値を補正値に基づいて補正する補正手段と、保持手段が保持する基準値に応じたタイミングで第１データを順次に取り込んで演算用データ列として保持するデータ保持手段と、保持手段が保持する基準値とデータ保持手段が保持する演算用データ列とに応じた補間演算によって第２データを生成する補間演算手段とを具備する。なお、第２の特徴に係る発明の具体的な形態は第２実施形態として後述される。
【００１２】
第２の特徴に係る構成においても補間演算の制御にＦＩＦＯは不要であるから、第１の特徴に係る構成と同様に、ＦＩＦＯを利用した従来の構成と比較して回路規模の縮小や消費電力の低減が実現される。また、第１クロック信号によって指定される各タイミングの間隔にわたる基準値の累算値に応じて補間演算手段による第２データの生成（補間）が制御されるから、ＦＩＦＯのデータ残量に応じて補間比が特定される従来の構成と比較して、クロック信号の周波数の誤差（ジッタ）の影響が迅速に解消されるという利点がある。さらに、補間演算を制御するための基準値が累算手段による累算値に応じて補正されるから、クロック信号に同期したカウント値に応じて補間演算が制御される構成（例えば図２や図５の構成）と比較して補間演算（演算用データ列の更新のタイミングや補間比）を高精度に調整することが可能である。
【発明を実施するための最良の形態】
【００１３】
＜Ａ−１：第１実施形態＞
図１は、本発明の第１実施形態に係るデジタル信号処理装置の構成を示すブロック図である。デジタル信号処理装置Ｐは、音源回路１０と、２個のインタフェース回路２１および２２と、２個のサンプリング周波数変換装置（図１では各々が「ＳＲＣ（Sample Rate Converter）」と表記されている）３０および４０と、２個のクロック発生回路５１および５２とを具備する。
【００１４】
インタフェース回路２１には、ビットクロック信号BCKaおよびクロック信号LRCKaと、シリアル形式のビット列であるデータＤＡ1とが外部の機器から供給される。データＤＡ1は、音響の波形を示すアナログ信号から生成されたサンプリング周波数ｆ1（例えば44.1kHz）のデジタルデータである。クロック信号LRCKaは、サンプリング周波数ｆ1と同じ周波数となるように生成される。インタフェース回路２１は、ビットクロック信号BCKaに同期して各ビットを展開することでデータＤＡ1をパラレル形式に変換してクロック信号LRCKaとともに出力する。
【００１５】
サンプリング周波数変換装置３０は、インタフェース回路２１が出力するデータＤＡ1で表現される信号の波形を維持しながら、データＤＡ1を、サンプリング周波数ｆ1とは異なるサンプリング周波数ｆ2（例えば48kHz）のデータＤＡ2に変換して出力する手段である。本実施形態においてはサンプリング周波数ｆ2がサンプリング周波数ｆ1よりも高い場合を想定する。なお、サンプリング周波数変換装置３０の具体的な構成や動作については後述する。
【００１６】
音源回路１０は、サンプリング周波数変換装置３０から供給されるデータＤＡ2に対して各種の加工（例えば音楽的な効果を付与する処理）を実行する手段である。さらに、音源回路１０は、サンプリング周波数ｆ2のデータＤＢ1（例えばデータＤＡ2を加工したデータ）をパラレル形式で順次に出力する。
【００１７】
サンプリング周波数変換装置４０は、音源回路１０が出力するデータＤＢ1で表現される信号の波形を維持しながら、データＤＢ1を、サンプリング周波数ｆ1のデータＤＢ2に変換して出力する手段である。なお、ここではデータＤＢ2とデータＤＡ1とが同じサンプリング周波数ｆ1である場合を例示するが、各々のサンプリング周波数が相違する構成としてもよい。
【００１８】
インタフェース回路２２には、パラレル形式のデータＤＢ2がサンプリング周波数変換装置４０から供給されるとともに、ビットクロック信号BCKaおよびクロック信号LRCKaが外部の機器から供給される。インタフェース回路２２は、ビットクロック信号BCKaに同期して各ビットを配列することでデータＤＢ2をシリアル形式に変換して外部の機器に出力する。クロック信号LRCKaはインタフェース回路２２からサンプリング周波数変換装置４０に出力される。サンプリング周波数変換装置４０は、クロック信号LRCKaに同期したタイミングでデータＤＢ2を生成および出力する。
【００１９】
クロック発生回路５１は、サンプリング周波数ｆ2と同じ周波数となるようにクロック信号LRCKbを生成する。また、クロック発生回路５２は、クロック信号LRCKaやクロック信号LRCKbよりも充分に高い周波数（例えば36.864MHz）のマスタークロック信号MCLKを生成する。クロック信号LRCKbおよびマスタークロック信号MCLKはサンプリング周波数変換装置３０および４０に供給される。
【００２０】
図２は、サンプリング周波数変換装置３０の構成を示すブロック図であり、図３は、サンプリング周波数変換装置３０による処理の概要を説明するための概念図である。図２に示すように、サンプリング周波数変換装置３０は補間制御部３２と補間部３４とを含む。補間部３４は、図３に示すように、クロック信号LRCKaに同期して順次に供給されるデータＤＡ1を補間することでクロック信号LRCKb（周期ｓ）に同期したデータＤＡ2を生成する。なお、以下では同種の複数の要素のうち第ｍ番目の要素を特に区別する場合には当該要素の符号に添字[m]を付加する。例えば、複数のデータＤＡ1のうち第ｍ番目のデータＤＡ1を特に「ＤＡ1[m]」と表記する場合がある。
【００２１】
図２の補間制御部３２は、補間比Ｆaを生成して補間部３４に出力する手段である。図３に示すように、補間比Ｆa（特に図３の「a2/(t+Δt1)」）は、データＤＡ1[m]のサンプリング点Ｔa[m]からデータＤＡ1[m+1]のサンプリング点Ｔa[m+1]までの区間の何れの時点にデータＤＡ2[k]のサンプリング点Ｔb[k]が存在するか（位相）を示す。さらに詳述すると、補間比Ｆaは、クロック信号LRCKaによって指定されるタイミング（例えばサンプリング点Ｔa[m]）からその直後にクロック信号LRCKbによって指定されるタイミング（例えばサンプリング点Ｔb[k]）までの間隔ａ（ａ1，ａ2，ａ3，……）とクロック信号LRCKaの周期との相対比として算定される。補間制御部３２は、クロック信号LRCKbに同期して順次に補間比Ｆaを算定して出力する。
【００２２】
なお、外部から供給されるクロック信号LRCKaの周波数はサンプリング周波数ｆ1に厳密には合致せず、図３に例示されるようにクロック信号LRCKaの周期は変動する。図３の「Δt（Δt0，Δt1，Δt2，Δt3……）」は、クロック信号LRCKaにおける所期の周期ｔからの誤差（ジッタ）を示している。したがって、データＤＡ2[k]に対応した補間比Ｆa（＝a2/(t+Δt1)）が出力されるサンプリング点Ｔb[k]においてクロック信号LRCKaの周期（t+Δt2）は未だ確定していない。そこで、本実施形態においては図３に示すように、補間比Ｆaが出力される時点の直前におけるクロック信号LRCKaの周期（t+Δt1）を分母として補間比Ｆaが算定される。クロック信号LRCKaのうち相前後する周期の時間長は近似するから、以上のように直前の周期に基づいて補間比Ｆaを算定する構成によっても、補間比Ｆaの精度が大幅に低下することはない。
【００２３】
図２に示すように、補間制御部３２は、カウンタ回路３２１と２個のラッチ回路３２３および３２５と補間比特定部３２７とを含む。カウンタ回路３２１は、マスタークロック信号MCLKに同期してカウント値CNTを「１」ずつ増加させる手段である。カウント値CNTは、クロック信号LRCKaによって指定されるサンプリング点Ｔaで「０」にリセットされる。ラッチ回路３２３は、クロック信号LRCKaによって指定されるサンプリング点Ｔaでカウント値CNTを出力および保持する。したがって、ラッチ回路３２３が出力するカウント値CNT1は、クロック信号LRCKaの周期（t+Δt）に相当する数値となる。
【００２４】
ラッチ回路３２５は、クロック信号LRCKbによって指定されるサンプリング点Ｔbでカウント値CNTを出力および保持する。したがって、ラッチ回路３２５が出力するカウント値CNT2は、サンプリング点Ｔaとサンプリング点Ｔbとの時間差（図３の間隔ａ）に相当する数値となる。補間比特定部３２７は、ラッチ回路３２３が出力するカウント値CNT1とラッチ回路３２５が出力するカウント値CNT2とに基づいて補間比Ｆaを特定する手段である。本実施形態の補間比特定部３２７は、カウント値CNT1によるカウント値CNT2の除算（CNT2/CNT1）によって補間比Ｆaを算定する除算回路である。補間比Ｆaはクロック信号LRCKbに同期して順次に補間部３４に出力される。
【００２５】
図４は、補間部３４の具体的な構成を示すブロック図である。同図に示すように、補間部３４は、シフトレジスタ３４１と補間係数発生部３４３と補間演算部３４５とを含む。シフトレジスタ３４１は、インタフェース回路２１から供給されるデータＤＡ1をクロック信号LRCKaに同期して順次に取り込み、過去ｎ個分のデータＤＡ1（ＤＡ1[0]〜ＤＡ1[n-1]）の集合（以下「演算用データ列」という）を保持する。すなわち、新たなデータＤＡ1を取り込むと、シフトレジスタ３４１は、その直前までに保持していた各データＤＡ1をシフトするとともに最も古いデータＤＡ1[n-1]を破棄する。
【００２６】
補間係数発生部３４３は、補間制御部３２から供給される補間比Ｆaに対応したｎ個の補間係数ｋ0〜ｋn-1を出力する手段である。例えば、補間比Ｆaの各数値に対応した補間係数ｋ0〜ｋn-1を記憶するＲＯＭ（テーブル）が補間係数発生部３４３として利用される。補間演算部３４５は、補間係数発生部３４３が生成した補間係数ｋ0〜ｋn-1をシフトレジスタ３４１の演算用データ列（ＤＡ1[0]〜ＤＡ1[n-1]）に畳み込むことでサンプリング周波数ｆ2のデータＤＡ2を生成する。補間演算部３４５による畳み込み演算（データＤＡ2の生成）は、クロック信号LRCKbに同期したタイミングで実行される。補間演算部３４５が出力したデータＤＡ2は図１に示したように音源回路１０に供給される。
【００２７】
次に、図５は、サンプリング周波数変換装置４０の構成を示すブロック図であり、図６は、サンプリング周波数変換装置４０による処理の概要を説明するための概念図である。図５に示すように、サンプリング周波数変換装置４０は、サンプリング周波数変換装置３０と同様に、補間制御部４２と補間部４４とを含む。補間部は、図６に示すように、クロック信号LRCKb（周期ｓ）に同期して音源回路１０から順次に供給されるデータＤＢ1を補間することでクロック信号LRCKaに同期したデータＤＢ2を生成する。
【００２８】
図５の補間制御部４２は、クロック信号LRCKaに同期して補間比Ｆbの生成および出力を実行する。図６に示すように、補間比Ｆbは、補間比Ｆaと同様に、データＤＢ1[k]のサンプリング点Ｔb[k]からデータＤＢ1[k+1]のサンプリング点Ｔb[k+1]までの区間の何れの時点にデータＤＢ2[m]のサンプリング点Ｔa[m]が存在するかを示す。したがって、補間比Ｆbは、クロック信号LRCKbによって指定されるサンプリング点Ｔbからその直後にクロック信号LRCKaによって指定されるサンプリング点Ｔaまでの間隔ｂ（ｂ1，ｂ2，ｂ3，……）とクロック信号LRCKbの周期ｓとの相対比として算定される。クロック信号LRCKbはデジタル信号処理装置Ｐの内部で生成されるから、クロック信号LRCKaと比較すると周波数の変動（ジッタ）は全く存在しない。したがって、本実施形態においてはクロック信号LRCKbの周期ｓを固定値として取り扱う。
【００２９】
図５に示すように、補間制御部４２は、カウンタ回路４２１とラッチ回路４２３と記憶部４２５と補間比特定部４２７とを含む。カウンタ回路４２１は、マスタークロック信号MCLKに同期してカウント値CNTを「１」ずつ増加させるとともに、クロック信号LRCKbによって指定されるサンプリング点Ｔbにてカウント値CNTを「０」にリセットする。ラッチ回路４２３は、クロック信号LRCKaによって指定されるサンプリング点Ｔaでカウント値CNTを出力および保持する。したがって、ラッチ回路４２３が出力するカウント値CNTは、図６のサンプリング点Ｔbからその直後のサンプリング点Ｔaまでの間隔ｂ（ｂ1，ｂ2，ｂ3，……）に相当する数値となる。
【００３０】
記憶部４２５は、クロック信号LRCKbの周期ｓを記憶する手段（レジスタ）である。補間比特定部４２７は、ラッチ回路４２３が出力するカウント値CNTと記憶部４２５が記憶する周期ｓとに基づいて補間比Ｆbを特定する。すなわち、補間比特定部４２７は、カウント値CNTを周期ｓで除算することで補間比Ｆbを算定し、クロック信号LRCKaに同期して順次に補間部４４に出力する。
【００３１】
補間部４４は図４の補間部３４と同様の構成である。すなわち、補間部４４は、クロック信号LRCKbに同期して順次に供給されるｎ個のデータＤＢ1を演算用データ列として保持するシフトレジスタと、補間制御部４２から出力される補間比Ｆbに応じて補間係数ｋ0〜ｋn-1を生成する補間係数発生部と、シフトレジスタの各データＤＢ1に対する補間係数ｋ0〜ｋn-1の畳み込み演算によってクロック信号LRCKaに同期したデータＤＢ2を生成する補間演算部とを含む。
【００３２】
以上に説明したように、本実施形態においては、クロック信号LRCKaが指定するサンプリング点Ｔaとクロック信号LRCKbが指定するサンプリング点Ｔbとの間隔（ａ，ｂ）を計測した結果に基づいて補間比Ｆa，Ｆbが算定される。以上の構成によれば、補間比Ｆa，Ｆbの特定にＦＩＦＯは不要であるから、ＦＩＦＯを利用した構成と比較して回路規模の縮小や消費電力の低減が実現される。また、間隔ａ，ｂが直接的に計測されたうえで補間比Ｆa，Ｆbに反映されるから、ＦＩＦＯのデータ残量に応じて補間比を調整する従来の構成と比較して、クロック信号LRCKaのジッタの影響を迅速に解消できるという利点がある。
【００３３】
＜Ａ−２：第１実施形態の変形例＞
以上の形態は適宜に変形される。具体的な変形の態様を例示すれば以下の通りである。
【００３４】
（１）変形例１  
以上の形態においては、クロック信号LRCKaの周波数の変動（誤差）を考慮したため、図２のラッチ回路３２３がクロック信号LRCKaの周期（t+Δt）を計測する構成とした。しかしながら、クロック信号LRCKaの周期の変動分Δｔは本来の周期ｔと比較して充分に短いから、クロック信号LRCKaの周期を固定値ｔとして補間比Ｆaを算定する構成としてもよい。例えば、クロック信号LRCKbの周期を固定値ｓとした図５の構成と同様に、周期ｔを記憶する記憶部を補間制御部３２に設置し、補間比特定部３２７が当該周期ｔとラッチ回路３２５から供給されるカウント値CNT2（間隔ａ）とに基づいて補間比Ｆaを算定する。この構成によれば、図２のラッチ回路３２３が省略されることでサンプリング周波数変換装置３０の回路規模が縮小される。
【００３５】
また、除算回路は他の演算回路と比較して大規模な回路となるから、以上の形態のようにサンプリング点Ｔaとサンプリング点Ｔbとの間隔ａをクロック信号LRCKaの周期（t+Δt）で除算する構成においては補間比特定部３２７の規模の縮小が困難となる。そこで、クロック信号LRCKaの周期（ここでは固定値ｔとする）の逆数（1/t）を記憶する記憶部を補間制御部３２に配置し、当該数値（1/t）とラッチ回路３２５から供給されるカウント値CNT2（間隔ａ）との乗算によって補間比特定部３２７が補間比Ｆaを算定する構成としてもよい。この構成によれば補間比特定部３２７が乗算回路によって構成されるから、除算回路を利用した構成と比較してサンプリング周波数変換装置３０の回路規模が縮小される。サンプリング周波数変換装置４０についても同様に、クロック信号LRCKbの周期の逆数（1/s）とラッチ回路４２３から供給されるカウント値CNT1とを補間比特定部４２７にて乗算する構成が採用される。
【００３６】
また、図７に示すように、複数の周波数（ｆ1a，ｆ1b，……）の各々について周波数の逆数（1/t1，1/t2，……）を記憶する記憶部３２９が補間制御部３２に配置された構成としてもよい。図７の構成においては、外部の機器から実際に供給されるクロック信号LRCKaの周波数に対応した逆数（1/t）が記憶部３２９から選択的に読み出され、補間比特定部３２７が当該逆数（1/t）とカウント値CNT2とを乗算することで補間比Ｆaが算定される。図７の構成によれば、デジタル信号処理装置Ｐの接続先に応じてクロック信号LRCKaの周期（サンプリング周波数ｆ1）が変化した場合であっても適切な補間比Ｆaを算定することが可能となる。
【００３７】
（２）変形例２  
第１実施形態や変形例１の構成においてはカウンタ回路３２１によるカウント値CNTに基づく乗算または除算によって補間比Ｆaが算定される構成を例示したが、カウンタ回路３２１によるカウント値CNTの増加分を例えば「１」以外の数値に選定すれば、図８に示すように補間比特定部３２７による乗算または除算を不要とすることも可能である。
【００３８】
図８に示すように、本変形例の補間制御部３２は、累算回路３２２とラッチ回路３２４とを含む。累算回路３２２は、予め選定された加算値ΔF（ΔF≧２）をマスタークロック信号MCLKに同期してカウント値CNTに順次に加算する手段である。カウント値CNTは、第１実施形態と同様に、クロック信号LRCKaによって指定されるサンプリング点Ｔaでリセットされる。ラッチ回路３２４は、クロック信号LRCKbによって指定されるサンプリング点Ｔbでカウント値CNTを補間比Ｆaとして出力および保持する。すなわち、本変形例においてはラッチ回路３２４が補間比Ｆaを特定する手段として機能する。
【００３９】
加算値ΔFは、カウント値CNTの最大値（サンプリング点Ｔaとサンプリング点Ｔbとの間隔ａがクロック信号LRCKbの１周期の時間長となる場合）が補間比Ｆaの所望の最大値と合致するように選定される。例えばいま、補間制御部３２から出力される補間比Ｆaを12ビットで表現する場合（すなわち補間比Ｆaが最小値「０」から最大値「4096」までの何れかの数値となる場合）を想定する。クロック信号LRCKbの周期を48kHzとしてマスタークロック信号MCLKの周期を36.864MHzとすると、クロック信号LRCKbの１周期内にてカウント値CNTには加算値ΔFが768回（＝36.864MHz/48kHz）にわたって累算されるから、加算値ΔＦを「4096/768」に設定すれば補間比Ｆaの最大値を「4096」とすることができる。以上の構成によれば、補間比Ｆaの特定に際して乗算や除算が不要となるから、補間制御部３２の回路規模が縮小されるという利点がある。
【００４０】
ただし、「4096/768」のような循環小数を加算値ΔＦとする累算回路３２２の実現は困難であるから、実際には、複数種の整数値の何れかを選択的に加算値ΔＦとしてカウント値CNTに加算する構成が採用される。例えば、マスタークロック信号MCLKの３周期を単位期間とし、各単位期間のうち第１番目の周期では数値「５」を加算値ΔＦとしてカウント値CNTに加算し、第２番目の周期では加算値ΔＦを数値「６」に設定し、第３番目の周期では加算値ΔＦを数値「５」に設定する。すなわち、加算値ΔＦは、マスタークロック信号MCLKに同期して、「５」→「６」→「５」→「５」→「６」→「５」→……という具合に変化していく。以上の構成によれば、加算値ΔＦを整数値することで累算回路３２２の構成を簡素化しながら、ラッチ回路３２４から出力される補間値Ｆaを所期の範囲（以上の例示では「０」以上かつ「4096」以下の範囲）で変動させることが可能となる。なお、図８においてはサンプリング周波数変換装置３０の変形例を例示したが、サンプリング周波数変換装置４０についても同様の変形が適用される。
【００４１】
＜Ｂ−１：第２実施形態＞
次に、本発明の第２実施形態について説明する。なお、本実施形態のうち第１実施形態と共通する要素については以上と同じ符号を付してその詳細な説明を適宜に省略する。
【００４２】
第１実施形態においては、クロック信号LRCKaの周期（カウント値CNT1）がマスタークロック信号MCLKに同期して計数される構成を例示した。この構成においては、マスタークロック信号MCLKを充分に高い周波数とすることで補間比Ｆaを高精度（高分解能）に設定することが可能である。しかしながら、マスタークロック信号MCLKの周波数はデジタル信号処理装置Ｐの様々な要素（例えばコストや消費電力など）を考慮して選定されるため、補間比Ｆaを充分に高精度化できる程度にマスタークロック信号MCLKの周波数を上昇させることは困難である場合が多い。そして、マスタークロック信号MCLKの周波数が充分に確保されない場合には、クロック信号LRCKaの周期（周波数）を充分に高い分解能で計測することができない。例えば、マスタークロック信号MCLKの周波数を36.864MHzとすると、クロック信号LRCKaの周波数は、カウント値CNT1が768であれば48kHzと特定されるが、カウント値CNT1が767であれば48.0626kHzと特定され、各々の場合に算定される補間比Ｆaの差異は大きい。したがって、適切な補間比Ｆaの算定が阻害されるという問題がある。本実施形態は、マスタークロック信号MCLKの周波数に拘わらず補間比Ｆaを充分な分解能で特定することを目的とした形態である。
【００４３】
図９は、本実施形態に係るサンプリング周波数変換装置の構成を示すブロック図である。本実施形態のサンプリング周波数変換装置９０は、図１のサンプリング周波数変換装置３０と同様に、サンプリング周波数ｆ1のデータＤＡ1からサンプリング周波数ｆ2のデータＤＡ2を生成する装置である。ただし、データＤＢ1からデータＤＢ2を生成するサンプリング周波数変換装置４０にも本実施形態と同様の構成を採用することが可能である。
【００４４】
図９に示すように、サンプリング周波数変換装置９０は、図４と同じ構成の補間部３４と、補間部３４の動作を制御する補間制御部７０とを含む。なお、図９の各部分に併記された“[x:0]”という符号は、当該部分で処理されるデジタルデータが第０桁から第ｘ桁までの合計（x+1）ビットであることを意味する。また、“[y:z]”という符号は、“[x:0]”が併記された合計（x+1）ビットのデータのうち、最下位を第０桁として下位側から第ｚ桁目から第ｙ桁目までのビット列を意味する。
【００４５】
図９のラッチ回路７１１は、基準値SRC_RATEを保持および出力する手段である。基準値SRC_RATEは、外部からインタフェース回路２１を介して供給されるクロック信号LRCKaの周波数（周期）を計測する基準となる数値である。設定部７１３は、基準値SRC_RATEの初期値を設定する手段（レジスタ）である。ラッチ回路７１１から出力される基準値SRC_RATEは、サンプリング周波数変換装置９０が動作を開始した直後に、設定部７１３から供給される初期値に設定される。
【００４６】
本実施形態の設定部７１３は、クロック信号LRCKaに設定され得る周波数の各々について別個の初期値を保持する。例えば、クロック信号LRCKaの周波数として48kHzおよび24kHzの何れかが想定されるとすれば、設定部７１３は、周波数48kHzに対応する初期値「32768（＝4096×8）」と周波数24kHzに対応する初期値「16384（＝32768/2）」とを保持する。そして、設定部７１３は、実際に外部から供給されるクロック信号LRCKaの周波数に応じた初期値を選択的にラッチ回路７１１に出力する。
【００４７】
図９の累算部７２は、クロック信号LRCKaの１周期にわたって、マスタークロック信号MCLKに同期したタイミングで基準値SRC_RATEを累算する手段であり、加算回路７２１とラッチ回路７２３と論理積回路７２５とを含む。ラッチ回路７２３は、マスタークロック信号MCLKに同期したタイミングで加算回路７２１からの出力（累算値Ａ1）を保持および出力するとともに、自身が保持する累算値Ａ1をクロック信号LRCKaに同期したタイミングでゼロにリセットする。加算回路７２１は、ラッチ回路７２３が出力する累算値Ａ1とラッチ回路７１１が出力する基準値SRC_RATEとを加算する。また、論理積回路７２５は、クロック信号LRCKaがアクティブレベル（ハイレベル）を維持する期間にてラッチ回路７２３からの累算値Ａ1を出力する。以上の構成において、ラッチ回路７２３から出力される累算値Ａ1は、マスタークロック信号MCLKに同期したタイミングで基準値SRC_RATEずつ増加していき、クロック信号LRCKaによって指定されるタイミングで（すなわちクロック信号LRCKaの周期ごとに）累算部７２（論理積回路７２５）から出力される。
【００４８】
いま、クロック信号LRCKaの周波数が正確に48kHzであるとすれば、クロック信号LRCKaの１周期はマスタークロック信号MCLKの768周期分（36.864MHz/48kHz）に相当する。したがって、ラッチ回路７１１から出力される基準値SRC_RATEが周波数48kHzに対応する初期値「32768」に設定されている場合、累算部７２から出力される累算値Ａ1は「25165824（＝32768×768）」となる。一方、クロック信号LRCKaの周波数が正確に24kHzに維持されているとすれば、クロック信号LRCKaの１周期はマスタークロック信号MCLKの1536周期分（36.864MHz/24kHz）に相当する。周波数24kHzに対応する基準値SRC_RATEの初期値は48kHzの場合の半分の「16384」に設定されるから、累算部７２から出力される累算値Ａ1は、48kHzの場合と同様に「25165824（＝16384×1536）」となる。
【００４９】
図９の比較部７３は、累算部７２から出力される累算値Ａ1を所定値と比較する手段であり、記憶部７３１と加算回路７３３とラッチ回路７３５とを含む。記憶部７３１は、クロック信号LRCKaの周波数に誤差がない場合に累算部７２から出力されるべき累算値Ａ1に負号を付した比較値Ａ2（-25165824（＝−32768×768））を記憶する手段である。加算回路７３３は、累算部７２から出力される累算値Ａ1と、記憶部７３１に記憶された比較値Ａ2と、ラッチ回路７３５から出力される誤差値Ｄとの加算値を新たな誤差値Ｄとして出力する。ラッチ回路７３５は、加算回路７３３から出力される誤差値Ｄをクロック信号LRCKaに同期したタイミングで順次に保持および出力する。
【００５０】
クロック信号LRCKaの周波数が正確に48kHzに維持されている場合に累算値Ａ1は比較値Ａ2の絶対値と同値の「25165824」となるから、加算回路７３３による累算値Ａ1と比較値Ａ2との加算によって誤差値Ｄはゼロとなる。これに対し、クロック信号LRCKaの周波数に誤差（ジッタ）がある場合には、累算値Ａ1は比較値Ａ2の絶対値と一致しないから、加算回路７３３から出力される誤差値Ｄはゼロ以外の数値となる。さらに詳述すると、クロック信号LRCKaの周波数が所期のサンプリング周波数ｆ1よりも低い場合には、累算値Ａが「25165824」よりも大きくなるから、誤差値Ｄは正数となる。また、クロック信号LRCKaの周波数がサンプリング周波数ｆ1よりも高い場合には、累算値Ａが「25165824」よりも小さくなるから、誤差値Ｄは負数となる。
【００５１】
図９の補正値テーブル７４は、誤差値Ｄ（すなわち比較部７３による累算値Ａ1と比較値Ａ2との比較の結果）に応じた補正値Ｒを特定する手段である。具体的には、誤差値Ｄがとり得る各数値について補正値Ｒを記憶したＲＯＭが補正値テーブル７４として好適に採用される。すなわち、補正値テーブル７４には、正数の各誤差値Ｄについては当該誤差値Ｄに応じた負数の補正値Ｒが記憶され、負数の各誤差値Ｄについては当該誤差値Ｄに応じた正数の補正値Ｒが記憶される。補正値テーブル７４は、比較部７３（ラッチ回路７３５）が出力する誤差値Ｄに対応した補正値Ｒを選択して出力する。誤差値Ｄがゼロである場合に補正値テーブル７４が出力する補正値Ｒはゼロである。
【００５２】
補正部７５は、ラッチ回路７１１が出力する基準値SRC_RATEを、補正値テーブル７４が出力する補正値Ｒに基づいて補正する。本実施形態の補正部７５は、基準値SRC_RATEと補正値Ｒとを加算する加算回路である。ラッチ回路７１１は、補正部７５が出力する新たな基準値SRC_RATEをクロック信号LRCKbに同期したタイミングで順次に出力および保持する。したがって、ラッチ回路７１１から出力される基準値SRC_RATEは、クロック信号LRCKaの実際の周波数に応じて初期値から随時に更新される。すなわち、基準値SRC_RATEは、クロック信号LRCKaの周波数がサンプリング周波数ｆ1よりも低い場合には減少し、クロック信号LRCKaの周波数がサンプリング周波数ｆ1よりも高い場合には増加するように、クロック信号LRCKbに同期して順次に補正される。
【００５３】
制御部７６は、ラッチ回路７１１が出力する基準値SRC_RATEに応じて補間部３４を制御する手段であり、加算回路７６１とラッチ回路７６３とを含む。加算回路７６１は、ラッチ回路７６３が出力するデータＤ2とラッチ回路７１１が出力する基準値SRC_RATEとの加算値Ｓを出力する。ラッチ回路７６３は、加算回路７６１が出力する加算値Ｓ（合計17ビット）に応じたデータＤ1およびデータＤ2を、クロック信号LRCKbに同期したタイミングで並列に出力して各々を保持する。データＤ1は加算値Ｓの上位２桁（第15桁目と第16桁目）であり、データＤ2は加算値Ｓのうち第０桁目から第14桁目までのビット列である。データＤ2のうち第３桁目から第14桁目までのビット列は補間比Ｆaとして補間部３４に出力される。したがって、補間比Ｆaは、第１実施形態と同様に、補間部３４が生成すべきデータＤＡ2のサンプリング点Ｔb（位相）を順次に指定する情報となる。
【００５４】
補間部３４は、図４に例示したようにシフトレジスタ３４１と補間係数発生部３４３と補間演算部３４５とを含む。シフトレジスタ３４１は、クロック信号LRCKaに同期して順次に供給されるデータＤＡ1のｎ個を演算用データ列として保持するとともに、ラッチ回路７６３が出力するデータＤ1に応じて演算用データ列を更新する。すなわち、データＤ1の数値が「１（10進表記）」である場合、シフトレジスタ３４１は、インタフェース回路２１から供給される１個の新たなデータＤＡ1を演算用データ列に追加するとともに最も古いデータＤＡ1を破棄する。また、データＤ1の数値が「２（10進表記）」である場合、シフトレジスタ３４１は、インタフェース回路２１から供給される２個の新たなデータＤＡ1を演算用データに追加するとともに演算用データのうち古い順に選択された２個のデータＤＡ1を破棄する。
【００５５】
補間係数発生部３４３は、ラッチ回路７６３が出力する補間比Ｆaに対応する補間係数ｋ0〜ｋn-1を発生する。補間演算部３４５は、シフトレジスタ３４１が保持する演算用データ列と補間係数ｋ0〜ｋn-1との畳み込み演算をクロック信号LRCKbに同期したタイミングで実行してサンプリング周波数ｆ2のデータＤＡ2を生成する。
【００５６】
以上に説明したように、本実施形態においても補間演算の制御にＦＩＦＯは不要であるから、第１実施形態と同様に回路規模の縮小や消費電力の低減が実現される。さらに、補間比Ｆaの演算に除算回路が不要であるから、補間比特定部３２７に除算回路が利用される図２の構成と比較して回路規模が縮小されるという利点がある。
【００５７】
また、本実施形態においては、補間部３４による補間演算（演算用データ列および補間係数ｋ0〜ｋn-1）を制御するための基準値SRC_RATEが、クロック信号LRCKaの１周期の期間にわたる基準値SRC_RATEの累算値に応じて補正される。したがって、マスタークロック信号MCLKのカウント値CNT1に応じて補間演算が制御される第１実施形態の構成と比較して、演算用データ列の更新のタイミングと補間比Ｆaとを高い分解能で高精度に調整することが可能である。さらに、基準値SRC_RATEはクロック信号LRCKaに同期して順次に補正されるから、ＦＩＦＯのデータ残量に応じて補間比を調整する従来の構成と比較して、クロック信号LRCKaのジッタの影響を迅速に解消することができる。
【００５８】
＜Ｂ−２：第２実施形態の変形例＞
以上の形態は適宜に変形される。具体的な変形の態様を例示すれば以下の通りである。
【００５９】
（１）変形例１  
以上の形態においては設定部７１３が基準値SRC_RATEの初期値を設定する構成を例示したが、基準値SRC_RATEは、初期値に拘わらず最終的にはクロック信号LRCKaに応じた数値に収束するから、基準値SRC_RATEの初期化は必ずしも必要ではない。ただし、以上の形態のように基準値SRC_RATEをクロック信号LRCKaの周波数に応じた数値に初期化する構成によれば、基準値SRC_RATEが適正値に収束するまでの時間を短縮することができる。
【００６０】
（２）変形例２  
以上の形態においては基準値SRC_RATEと補正値Ｒとが加算される構成を例示したが、補正部７５による基準値SRC_RATEの補正の方法は任意である。したがって、補正値テーブル７４の補正値Ｒと各誤差値Ｄとの関係も以上の例示から適宜に変更される。また、以上の形態では予め記憶された補正値Ｒを誤差値Ｄに応じて読み出す構成を例示したが、誤差値Ｄに応じた補正値Ｒを特定するための方法は任意である。例えば、誤差値Ｄを引数とした所定の演算によって補正値Ｒが算定される構成としてもよい。
【図面の簡単な説明】
【００６１】
【図１】第１実施形態に係るデジタル信号処理装置Ｐの構成を示すブロック図である。
【図２】サンプリング周波数変換装置３０の構成を示すブロック図である。
【図３】サンプリング周波数変換装置３０による処理を説明するための概念図である。
【図４】補間部３４の構成を示すブロック図である。
【図５】サンプリング周波数変換装置４０の構成を示すブロック図である。
【図６】サンプリング周波数変換装置４０による処理を説明するための概念図である。
【図７】変形例に係るサンプリング周波数変換装置３０の構成を示すブロック図である。
【図８】変形例に係るサンプリング周波数変換装置３０の構成を示すブロック図である。
【図９】第２実施形態に係るサンプリング周波数変換装置９０の構成を示すブロック図である。
【符号の説明】
【００６２】
Ｐ……デジタル信号処理装置、３０，４０，９０……サンプリング周波数変換装置、３２，４２，５０……補間制御部、３４，４４……補間部、３２１，４２１……カウンタ回路、３２２……累算回路、３２３，３２５，４２３，７１１，７２３，７３５，７６３……ラッチ回路、３２７，４２７……補間比特定部、３２９，４２５，７３１……記憶部、３４１……シフトレジスタ、３４３……補間係数発生部、３４５……補間演算部、５１，５２……クロック発生回路、７１３……設定部、７２……累算部、７２１，７３３，７６１……加算回路、７３……比較部、７４……補正値テーブル、７５……補正部、７６……制御部。
【図１】
2008085964.tif 000003
【図２】
2008085964.tif 000004
【図３】
2008085964.tif 000005
【図４】
2008085964.tif 000006
【図５】
2008085964.tif 000007
【図６】
2008085964.tif 000008
【図７】
2008085964.tif 000009
【図８】
2008085964.tif 000010
【図９】
2008085964.tif 000011