説明

サンプリング周波数変換装置

【課題】サンプリング周波数変換装置の回路規模を抑制しながらクロック信号のジッタの影響を迅速に解消する。
【解決手段】サンプリング周波数変換装置30は、クロック信号LRCKaに同期して順次に供給されるデータDA1からクロック信号LRCKbに同期したデータDA2を生成する。ラッチ回路325は、クロック信号LRCKaによって指定されるタイミングとクロック信号LRCKbによって指定されるタイミングとの間隔aを出力する。補間比特定部327は、ラッチ回路325からの出力に応じて補間比Faを特定する。補間部34は、クロック信号LRCKaによって指定されるタイミングでデータDA1を順次に取り込んで演算用データ列として保持し、補間比Faおよび演算用データ列に応じた補間演算をクロック信号LRCKbに同期して順次に実行することでデータDA2を生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、デジタルデータのサンプリング周波数を変換する技術に関する。
【背景技術】
【0002】
デジタルデータで表現される信号の波形を維持しながらサンプリング周波数を変換する技術が従来から提案されている。例えば特許文献1から特許文献3には、FIFO(First-In First-Out)方式のメモリ(以下では単に「FIFO」という)を利用したサンプリング周波数変換装置が開示されている。変換の対象となるデータ列は、当該データ列のサンプリング周波数f1と同じ周波数となるように生成されたクロック信号(以下「入力クロック」という)に同期して順次にFIFOに格納される。そして、所望のサンプリング周波数f2と同じ周波数となるように生成されたクロック信号(以下「出力クロック」という)に同期して、FIFOに格納されたデータ列の補間処理が実行される。
【0003】
入力クロックや出力クロックの周波数の精度には限界がある。入力クロックの周波数がサンプリング周波数f1に合致しない場合や出力クロックの周波数がサンプリング周波数f2に合致しない場合にはFIFOにオーバーフローやアンダーフローが発生する。この問題を防止するために、特許文献1から特許文献3のサンプリング周波数変換装置は、FIFOのデータ残量に応じてデータ列の読出の速度が調整される構成となっている。
【特許文献1】特開平11−55075号公報
【特許文献2】特開2005−159407号公報
【特許文献3】特開2005−192174号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、以上のようにFIFOを採用した構成においては回路規模の抑制が困難であるという問題がある。オーバーフローやアンダーフローの可能性を確実に低減する(すなわちデータ残量の許容範囲を充分に確保する)ためにはFIFOの段数を増加する必要があるから、回路規模の肥大化という問題はいっそう深刻化する。また、入力クロックや出力クロックの周波数に誤差(ジッタ)が発生し始めた場合であっても、その影響が直ちにFIFOのデータ残量に現れるわけではない。したがって、入力クロックや出力クロックのジッタがデータの読出の速度にフィードバックされるまでに相当の時間を要するという問題もある。以上の事情に鑑みて、本発明は、回路規模を抑制しながらクロック信号のジッタの影響を迅速に解消するという課題の解決を目的としている。
【課題を解決するための手段】
【0005】
以上の課題を解決するために、本発明の第1の特徴に係るサンプリング周波数変換装置は、第1クロック信号に同期して順次に供給される第1データから第2クロック信号に同期した第2データを生成する装置であって、第1クロック信号によって指定されるタイミングと第2クロック信号によって指定されるタイミングとの間隔を計測する計測手段(例えば図2のラッチ回路325や図5のラッチ回路423)と、計測手段が計測した間隔に基づいて補間比を特定する補間比特定手段と、第1クロック信号によって指定されるタイミングで第1データを順次に取り込んで演算用データ列として保持するデータ保持手段(例えば図4のシフトレジスタ341)と、補間比特定手段が特定した補間比とデータ保持手段が保持する演算用データ列とに応じた補間演算によって第2データを生成する補間演算手段と具備する。なお、第1の特徴に係る発明の具体的な形態は第1実施形態として後述される。
【0006】
本発明においては、第1クロック信号によって指定されるタイミング(例えば図3のサンプリング点Ta)と第2クロック信号によって指定されるタイミング(例えば図3のサンプリング点Tb)との間隔に基づいて補間比が特定される。この構成によれば、補間比の特定のためにFIFOを利用する必要はないから、FIFOを利用した従来の構成と比較して回路規模の縮小や消費電力の低減が実現される。また、第1クロック信号と第2クロック信号との間隔(位相差)に応じて補間比が特定されるから、FIFOのデータ残量に応じて補間比が特定される従来の構成と比較して、クロック信号の周波数の誤差(ジッタ)の影響が迅速に解消されるという利点がある。
【0007】
本発明の好適な態様において、第1クロック信号によって指定される各タイミングの間隔(例えば図3の周期(t+Δt)や図6の周期s)を特定する周期特定手段を具備し、補間比特定手段は、計測手段が計測した間隔と周期特定手段が特定した間隔との相対比を補間比として特定する。本態様によれば、第1クロック信号の周期に応じた適切な補間比の特定が可能となる。
【0008】
周期特定手段を具備するサンプリング周波数変換装置の第1の態様においては、第1クロック信号および第2クロック信号よりも周波数が高いクロック信号(例えば図1のマスタークロック信号MCLK)を第1クロック信号によって指定される各タイミングから計数するカウンタ回路が設置され、周期特定手段は、第1クロック信号によって指定されるタイミングでカウンタ回路によるカウント値を出力および保持する第1ラッチ回路(例えば図2のラッチ回路323)を含み、計測手段は、第2クロック信号によって指定されるタイミングでカウンタ回路によるカウント値を出力および保持する第2ラッチ回路(例えば図2のラッチ回路325)を含み、補間比特定手段は、第1ラッチ回路からの出力と第2ラッチ回路からの出力との相対比を補間比として特定する。以上の態様によれば、第1クロック信号によって指定される各タイミングの間隔(周期)が第1ラッチ回路によって特定されるから、第1クロック信号の周期(周波数)に誤差が発生した場合であっても適切な補間比を特定することが可能である。
【0009】
周期特定手段を具備するサンプリング周波数変換装置の第2の態様において、周期特定手段は、第2クロック信号の周期を記憶する記憶回路(例えば図5の記憶部425や図7の記憶部329)を含み、補間比特定手段は、計測手段が計測した間隔と記憶回路が記憶する周期との相対比を補間比として特定する。以上の態様によれば、第2クロック信号の周期が記憶回路に記憶されるから、第2クロック信号の周期を計測する手段(第1ラッチ回路)の省略によって回路規模がさらに縮小される。
【0010】
本発明の好適な態様において、計測手段は、各々が2以上である複数の整数値の何れかを選択的に累算する累算回路(例えば図8の累算回路322)を含み、補間比特定手段は、累算回路による累算値に基づいて補間比を特定する。以上の態様によれば、累算回路が順次に累算する整数値を適宜に算定することで累算回路による累算値を補間比として利用することが可能となる。したがって、乗算回路や除算回路によって補間比が算定される構成と比較して回路規模が縮小されるという利点がある。
【0011】
本発明の第2の特徴に係るサンプリング周波数変換装置は、第1クロック信号に同期して順次に供給される第1データから第2クロック信号に同期した第2データを生成する装置であって、基準値を保持する保持手段(例えば図9のラッチ回路711)と、保持手段が保持する基準値を、第1クロック信号によって指定される各タイミングの間隔にて順次に累算する累算手段と、累算手段による累算値と所定値とを比較する比較手段と、比較手段による比較の結果に応じた補正値を特定する補正値特定手段(例えば図9の補正値テーブル74)と、保持手段が保持する基準値を補正値に基づいて補正する補正手段と、保持手段が保持する基準値に応じたタイミングで第1データを順次に取り込んで演算用データ列として保持するデータ保持手段と、保持手段が保持する基準値とデータ保持手段が保持する演算用データ列とに応じた補間演算によって第2データを生成する補間演算手段とを具備する。なお、第2の特徴に係る発明の具体的な形態は第2実施形態として後述される。
【0012】
第2の特徴に係る構成においても補間演算の制御にFIFOは不要であるから、第1の特徴に係る構成と同様に、FIFOを利用した従来の構成と比較して回路規模の縮小や消費電力の低減が実現される。また、第1クロック信号によって指定される各タイミングの間隔にわたる基準値の累算値に応じて補間演算手段による第2データの生成(補間)が制御されるから、FIFOのデータ残量に応じて補間比が特定される従来の構成と比較して、クロック信号の周波数の誤差(ジッタ)の影響が迅速に解消されるという利点がある。さらに、補間演算を制御するための基準値が累算手段による累算値に応じて補正されるから、クロック信号に同期したカウント値に応じて補間演算が制御される構成(例えば図2や図5の構成)と比較して補間演算(演算用データ列の更新のタイミングや補間比)を高精度に調整することが可能である。
【発明を実施するための最良の形態】
【0013】
<A−1:第1実施形態>
図1は、本発明の第1実施形態に係るデジタル信号処理装置の構成を示すブロック図である。デジタル信号処理装置Pは、音源回路10と、2個のインタフェース回路21および22と、2個のサンプリング周波数変換装置(図1では各々が「SRC(Sample Rate Converter)」と表記されている)30および40と、2個のクロック発生回路51および52とを具備する。
【0014】
インタフェース回路21には、ビットクロック信号BCKaおよびクロック信号LRCKaと、シリアル形式のビット列であるデータDA1とが外部の機器から供給される。データDA1は、音響の波形を示すアナログ信号から生成されたサンプリング周波数f1(例えば44.1kHz)のデジタルデータである。クロック信号LRCKaは、サンプリング周波数f1と同じ周波数となるように生成される。インタフェース回路21は、ビットクロック信号BCKaに同期して各ビットを展開することでデータDA1をパラレル形式に変換してクロック信号LRCKaとともに出力する。
【0015】
サンプリング周波数変換装置30は、インタフェース回路21が出力するデータDA1で表現される信号の波形を維持しながら、データDA1を、サンプリング周波数f1とは異なるサンプリング周波数f2(例えば48kHz)のデータDA2に変換して出力する手段である。本実施形態においてはサンプリング周波数f2がサンプリング周波数f1よりも高い場合を想定する。なお、サンプリング周波数変換装置30の具体的な構成や動作については後述する。
【0016】
音源回路10は、サンプリング周波数変換装置30から供給されるデータDA2に対して各種の加工(例えば音楽的な効果を付与する処理)を実行する手段である。さらに、音源回路10は、サンプリング周波数f2のデータDB1(例えばデータDA2を加工したデータ)をパラレル形式で順次に出力する。
【0017】
サンプリング周波数変換装置40は、音源回路10が出力するデータDB1で表現される信号の波形を維持しながら、データDB1を、サンプリング周波数f1のデータDB2に変換して出力する手段である。なお、ここではデータDB2とデータDA1とが同じサンプリング周波数f1である場合を例示するが、各々のサンプリング周波数が相違する構成としてもよい。
【0018】
インタフェース回路22には、パラレル形式のデータDB2がサンプリング周波数変換装置40から供給されるとともに、ビットクロック信号BCKaおよびクロック信号LRCKaが外部の機器から供給される。インタフェース回路22は、ビットクロック信号BCKaに同期して各ビットを配列することでデータDB2をシリアル形式に変換して外部の機器に出力する。クロック信号LRCKaはインタフェース回路22からサンプリング周波数変換装置40に出力される。サンプリング周波数変換装置40は、クロック信号LRCKaに同期したタイミングでデータDB2を生成および出力する。
【0019】
クロック発生回路51は、サンプリング周波数f2と同じ周波数となるようにクロック信号LRCKbを生成する。また、クロック発生回路52は、クロック信号LRCKaやクロック信号LRCKbよりも充分に高い周波数(例えば36.864MHz)のマスタークロック信号MCLKを生成する。クロック信号LRCKbおよびマスタークロック信号MCLKはサンプリング周波数変換装置30および40に供給される。
【0020】
図2は、サンプリング周波数変換装置30の構成を示すブロック図であり、図3は、サンプリング周波数変換装置30による処理の概要を説明するための概念図である。図2に示すように、サンプリング周波数変換装置30は補間制御部32と補間部34とを含む。補間部34は、図3に示すように、クロック信号LRCKaに同期して順次に供給されるデータDA1を補間することでクロック信号LRCKb(周期s)に同期したデータDA2を生成する。なお、以下では同種の複数の要素のうち第m番目の要素を特に区別する場合には当該要素の符号に添字[m]を付加する。例えば、複数のデータDA1のうち第m番目のデータDA1を特に「DA1[m]」と表記する場合がある。
【0021】
図2の補間制御部32は、補間比Faを生成して補間部34に出力する手段である。図3に示すように、補間比Fa(特に図3の「a2/(t+Δt1)」)は、データDA1[m]のサンプリング点Ta[m]からデータDA1[m+1]のサンプリング点Ta[m+1]までの区間の何れの時点にデータDA2[k]のサンプリング点Tb[k]が存在するか(位相)を示す。さらに詳述すると、補間比Faは、クロック信号LRCKaによって指定されるタイミング(例えばサンプリング点Ta[m])からその直後にクロック信号LRCKbによって指定されるタイミング(例えばサンプリング点Tb[k])までの間隔a(a1,a2,a3,……)とクロック信号LRCKaの周期との相対比として算定される。補間制御部32は、クロック信号LRCKbに同期して順次に補間比Faを算定して出力する。
【0022】
なお、外部から供給されるクロック信号LRCKaの周波数はサンプリング周波数f1に厳密には合致せず、図3に例示されるようにクロック信号LRCKaの周期は変動する。図3の「Δt(Δt0,Δt1,Δt2,Δt3……)」は、クロック信号LRCKaにおける所期の周期tからの誤差(ジッタ)を示している。したがって、データDA2[k]に対応した補間比Fa(=a2/(t+Δt1))が出力されるサンプリング点Tb[k]においてクロック信号LRCKaの周期(t+Δt2)は未だ確定していない。そこで、本実施形態においては図3に示すように、補間比Faが出力される時点の直前におけるクロック信号LRCKaの周期(t+Δt1)を分母として補間比Faが算定される。クロック信号LRCKaのうち相前後する周期の時間長は近似するから、以上のように直前の周期に基づいて補間比Faを算定する構成によっても、補間比Faの精度が大幅に低下することはない。
【0023】
図2に示すように、補間制御部32は、カウンタ回路321と2個のラッチ回路323および325と補間比特定部327とを含む。カウンタ回路321は、マスタークロック信号MCLKに同期してカウント値CNTを「1」ずつ増加させる手段である。カウント値CNTは、クロック信号LRCKaによって指定されるサンプリング点Taで「0」にリセットされる。ラッチ回路323は、クロック信号LRCKaによって指定されるサンプリング点Taでカウント値CNTを出力および保持する。したがって、ラッチ回路323が出力するカウント値CNT1は、クロック信号LRCKaの周期(t+Δt)に相当する数値となる。
【0024】
ラッチ回路325は、クロック信号LRCKbによって指定されるサンプリング点Tbでカウント値CNTを出力および保持する。したがって、ラッチ回路325が出力するカウント値CNT2は、サンプリング点Taとサンプリング点Tbとの時間差(図3の間隔a)に相当する数値となる。補間比特定部327は、ラッチ回路323が出力するカウント値CNT1とラッチ回路325が出力するカウント値CNT2とに基づいて補間比Faを特定する手段である。本実施形態の補間比特定部327は、カウント値CNT1によるカウント値CNT2の除算(CNT2/CNT1)によって補間比Faを算定する除算回路である。補間比Faはクロック信号LRCKbに同期して順次に補間部34に出力される。
【0025】
図4は、補間部34の具体的な構成を示すブロック図である。同図に示すように、補間部34は、シフトレジスタ341と補間係数発生部343と補間演算部345とを含む。シフトレジスタ341は、インタフェース回路21から供給されるデータDA1をクロック信号LRCKaに同期して順次に取り込み、過去n個分のデータDA1(DA1[0]〜DA1[n-1])の集合(以下「演算用データ列」という)を保持する。すなわち、新たなデータDA1を取り込むと、シフトレジスタ341は、その直前までに保持していた各データDA1をシフトするとともに最も古いデータDA1[n-1]を破棄する。
【0026】
補間係数発生部343は、補間制御部32から供給される補間比Faに対応したn個の補間係数k0〜kn-1を出力する手段である。例えば、補間比Faの各数値に対応した補間係数k0〜kn-1を記憶するROM(テーブル)が補間係数発生部343として利用される。補間演算部345は、補間係数発生部343が生成した補間係数k0〜kn-1をシフトレジスタ341の演算用データ列(DA1[0]〜DA1[n-1])に畳み込むことでサンプリング周波数f2のデータDA2を生成する。補間演算部345による畳み込み演算(データDA2の生成)は、クロック信号LRCKbに同期したタイミングで実行される。補間演算部345が出力したデータDA2は図1に示したように音源回路10に供給される。
【0027】
次に、図5は、サンプリング周波数変換装置40の構成を示すブロック図であり、図6は、サンプリング周波数変換装置40による処理の概要を説明するための概念図である。図5に示すように、サンプリング周波数変換装置40は、サンプリング周波数変換装置30と同様に、補間制御部42と補間部44とを含む。補間部は、図6に示すように、クロック信号LRCKb(周期s)に同期して音源回路10から順次に供給されるデータDB1を補間することでクロック信号LRCKaに同期したデータDB2を生成する。
【0028】
図5の補間制御部42は、クロック信号LRCKaに同期して補間比Fbの生成および出力を実行する。図6に示すように、補間比Fbは、補間比Faと同様に、データDB1[k]のサンプリング点Tb[k]からデータDB1[k+1]のサンプリング点Tb[k+1]までの区間の何れの時点にデータDB2[m]のサンプリング点Ta[m]が存在するかを示す。したがって、補間比Fbは、クロック信号LRCKbによって指定されるサンプリング点Tbからその直後にクロック信号LRCKaによって指定されるサンプリング点Taまでの間隔b(b1,b2,b3,……)とクロック信号LRCKbの周期sとの相対比として算定される。クロック信号LRCKbはデジタル信号処理装置Pの内部で生成されるから、クロック信号LRCKaと比較すると周波数の変動(ジッタ)は全く存在しない。したがって、本実施形態においてはクロック信号LRCKbの周期sを固定値として取り扱う。
【0029】
図5に示すように、補間制御部42は、カウンタ回路421とラッチ回路423と記憶部425と補間比特定部427とを含む。カウンタ回路421は、マスタークロック信号MCLKに同期してカウント値CNTを「1」ずつ増加させるとともに、クロック信号LRCKbによって指定されるサンプリング点Tbにてカウント値CNTを「0」にリセットする。ラッチ回路423は、クロック信号LRCKaによって指定されるサンプリング点Taでカウント値CNTを出力および保持する。したがって、ラッチ回路423が出力するカウント値CNTは、図6のサンプリング点Tbからその直後のサンプリング点Taまでの間隔b(b1,b2,b3,……)に相当する数値となる。
【0030】
記憶部425は、クロック信号LRCKbの周期sを記憶する手段(レジスタ)である。補間比特定部427は、ラッチ回路423が出力するカウント値CNTと記憶部425が記憶する周期sとに基づいて補間比Fbを特定する。すなわち、補間比特定部427は、カウント値CNTを周期sで除算することで補間比Fbを算定し、クロック信号LRCKaに同期して順次に補間部44に出力する。
【0031】
補間部44は図4の補間部34と同様の構成である。すなわち、補間部44は、クロック信号LRCKbに同期して順次に供給されるn個のデータDB1を演算用データ列として保持するシフトレジスタと、補間制御部42から出力される補間比Fbに応じて補間係数k0〜kn-1を生成する補間係数発生部と、シフトレジスタの各データDB1に対する補間係数k0〜kn-1の畳み込み演算によってクロック信号LRCKaに同期したデータDB2を生成する補間演算部とを含む。
【0032】
以上に説明したように、本実施形態においては、クロック信号LRCKaが指定するサンプリング点Taとクロック信号LRCKbが指定するサンプリング点Tbとの間隔(a,b)を計測した結果に基づいて補間比Fa,Fbが算定される。以上の構成によれば、補間比Fa,Fbの特定にFIFOは不要であるから、FIFOを利用した構成と比較して回路規模の縮小や消費電力の低減が実現される。また、間隔a,bが直接的に計測されたうえで補間比Fa,Fbに反映されるから、FIFOのデータ残量に応じて補間比を調整する従来の構成と比較して、クロック信号LRCKaのジッタの影響を迅速に解消できるという利点がある。
【0033】
<A−2:第1実施形態の変形例>
以上の形態は適宜に変形される。具体的な変形の態様を例示すれば以下の通りである。
【0034】
(1)変形例1
以上の形態においては、クロック信号LRCKaの周波数の変動(誤差)を考慮したため、図2のラッチ回路323がクロック信号LRCKaの周期(t+Δt)を計測する構成とした。しかしながら、クロック信号LRCKaの周期の変動分Δtは本来の周期tと比較して充分に短いから、クロック信号LRCKaの周期を固定値tとして補間比Faを算定する構成としてもよい。例えば、クロック信号LRCKbの周期を固定値sとした図5の構成と同様に、周期tを記憶する記憶部を補間制御部32に設置し、補間比特定部327が当該周期tとラッチ回路325から供給されるカウント値CNT2(間隔a)とに基づいて補間比Faを算定する。この構成によれば、図2のラッチ回路323が省略されることでサンプリング周波数変換装置30の回路規模が縮小される。
【0035】
また、除算回路は他の演算回路と比較して大規模な回路となるから、以上の形態のようにサンプリング点Taとサンプリング点Tbとの間隔aをクロック信号LRCKaの周期(t+Δt)で除算する構成においては補間比特定部327の規模の縮小が困難となる。そこで、クロック信号LRCKaの周期(ここでは固定値tとする)の逆数(1/t)を記憶する記憶部を補間制御部32に配置し、当該数値(1/t)とラッチ回路325から供給されるカウント値CNT2(間隔a)との乗算によって補間比特定部327が補間比Faを算定する構成としてもよい。この構成によれば補間比特定部327が乗算回路によって構成されるから、除算回路を利用した構成と比較してサンプリング周波数変換装置30の回路規模が縮小される。サンプリング周波数変換装置40についても同様に、クロック信号LRCKbの周期の逆数(1/s)とラッチ回路423から供給されるカウント値CNT1とを補間比特定部427にて乗算する構成が採用される。
【0036】
また、図7に示すように、複数の周波数(f1a,f1b,……)の各々について周波数の逆数(1/t1,1/t2,……)を記憶する記憶部329が補間制御部32に配置された構成としてもよい。図7の構成においては、外部の機器から実際に供給されるクロック信号LRCKaの周波数に対応した逆数(1/t)が記憶部329から選択的に読み出され、補間比特定部327が当該逆数(1/t)とカウント値CNT2とを乗算することで補間比Faが算定される。図7の構成によれば、デジタル信号処理装置Pの接続先に応じてクロック信号LRCKaの周期(サンプリング周波数f1)が変化した場合であっても適切な補間比Faを算定することが可能となる。
【0037】
(2)変形例2
第1実施形態や変形例1の構成においてはカウンタ回路321によるカウント値CNTに基づく乗算または除算によって補間比Faが算定される構成を例示したが、カウンタ回路321によるカウント値CNTの増加分を例えば「1」以外の数値に選定すれば、図8に示すように補間比特定部327による乗算または除算を不要とすることも可能である。
【0038】
図8に示すように、本変形例の補間制御部32は、累算回路322とラッチ回路324とを含む。累算回路322は、予め選定された加算値ΔF(ΔF≧2)をマスタークロック信号MCLKに同期してカウント値CNTに順次に加算する手段である。カウント値CNTは、第1実施形態と同様に、クロック信号LRCKaによって指定されるサンプリング点Taでリセットされる。ラッチ回路324は、クロック信号LRCKbによって指定されるサンプリング点Tbでカウント値CNTを補間比Faとして出力および保持する。すなわち、本変形例においてはラッチ回路324が補間比Faを特定する手段として機能する。
【0039】
加算値ΔFは、カウント値CNTの最大値(サンプリング点Taとサンプリング点Tbとの間隔aがクロック信号LRCKbの1周期の時間長となる場合)が補間比Faの所望の最大値と合致するように選定される。例えばいま、補間制御部32から出力される補間比Faを12ビットで表現する場合(すなわち補間比Faが最小値「0」から最大値「4096」までの何れかの数値となる場合)を想定する。クロック信号LRCKbの周期を48kHzとしてマスタークロック信号MCLKの周期を36.864MHzとすると、クロック信号LRCKbの1周期内にてカウント値CNTには加算値ΔFが768回(=36.864MHz/48kHz)にわたって累算されるから、加算値ΔFを「4096/768」に設定すれば補間比Faの最大値を「4096」とすることができる。以上の構成によれば、補間比Faの特定に際して乗算や除算が不要となるから、補間制御部32の回路規模が縮小されるという利点がある。
【0040】
ただし、「4096/768」のような循環小数を加算値ΔFとする累算回路322の実現は困難であるから、実際には、複数種の整数値の何れかを選択的に加算値ΔFとしてカウント値CNTに加算する構成が採用される。例えば、マスタークロック信号MCLKの3周期を単位期間とし、各単位期間のうち第1番目の周期では数値「5」を加算値ΔFとしてカウント値CNTに加算し、第2番目の周期では加算値ΔFを数値「6」に設定し、第3番目の周期では加算値ΔFを数値「5」に設定する。すなわち、加算値ΔFは、マスタークロック信号MCLKに同期して、「5」→「6」→「5」→「5」→「6」→「5」→……という具合に変化していく。以上の構成によれば、加算値ΔFを整数値することで累算回路322の構成を簡素化しながら、ラッチ回路324から出力される補間値Faを所期の範囲(以上の例示では「0」以上かつ「4096」以下の範囲)で変動させることが可能となる。なお、図8においてはサンプリング周波数変換装置30の変形例を例示したが、サンプリング周波数変換装置40についても同様の変形が適用される。
【0041】
<B−1:第2実施形態>
次に、本発明の第2実施形態について説明する。なお、本実施形態のうち第1実施形態と共通する要素については以上と同じ符号を付してその詳細な説明を適宜に省略する。
【0042】
第1実施形態においては、クロック信号LRCKaの周期(カウント値CNT1)がマスタークロック信号MCLKに同期して計数される構成を例示した。この構成においては、マスタークロック信号MCLKを充分に高い周波数とすることで補間比Faを高精度(高分解能)に設定することが可能である。しかしながら、マスタークロック信号MCLKの周波数はデジタル信号処理装置Pの様々な要素(例えばコストや消費電力など)を考慮して選定されるため、補間比Faを充分に高精度化できる程度にマスタークロック信号MCLKの周波数を上昇させることは困難である場合が多い。そして、マスタークロック信号MCLKの周波数が充分に確保されない場合には、クロック信号LRCKaの周期(周波数)を充分に高い分解能で計測することができない。例えば、マスタークロック信号MCLKの周波数を36.864MHzとすると、クロック信号LRCKaの周波数は、カウント値CNT1が768であれば48kHzと特定されるが、カウント値CNT1が767であれば48.0626kHzと特定され、各々の場合に算定される補間比Faの差異は大きい。したがって、適切な補間比Faの算定が阻害されるという問題がある。本実施形態は、マスタークロック信号MCLKの周波数に拘わらず補間比Faを充分な分解能で特定することを目的とした形態である。
【0043】
図9は、本実施形態に係るサンプリング周波数変換装置の構成を示すブロック図である。本実施形態のサンプリング周波数変換装置90は、図1のサンプリング周波数変換装置30と同様に、サンプリング周波数f1のデータDA1からサンプリング周波数f2のデータDA2を生成する装置である。ただし、データDB1からデータDB2を生成するサンプリング周波数変換装置40にも本実施形態と同様の構成を採用することが可能である。
【0044】
図9に示すように、サンプリング周波数変換装置90は、図4と同じ構成の補間部34と、補間部34の動作を制御する補間制御部70とを含む。なお、図9の各部分に併記された“[x:0]”という符号は、当該部分で処理されるデジタルデータが第0桁から第x桁までの合計(x+1)ビットであることを意味する。また、“[y:z]”という符号は、“[x:0]”が併記された合計(x+1)ビットのデータのうち、最下位を第0桁として下位側から第z桁目から第y桁目までのビット列を意味する。
【0045】
図9のラッチ回路711は、基準値SRC_RATEを保持および出力する手段である。基準値SRC_RATEは、外部からインタフェース回路21を介して供給されるクロック信号LRCKaの周波数(周期)を計測する基準となる数値である。設定部713は、基準値SRC_RATEの初期値を設定する手段(レジスタ)である。ラッチ回路711から出力される基準値SRC_RATEは、サンプリング周波数変換装置90が動作を開始した直後に、設定部713から供給される初期値に設定される。
【0046】
本実施形態の設定部713は、クロック信号LRCKaに設定され得る周波数の各々について別個の初期値を保持する。例えば、クロック信号LRCKaの周波数として48kHzおよび24kHzの何れかが想定されるとすれば、設定部713は、周波数48kHzに対応する初期値「32768(=4096×8)」と周波数24kHzに対応する初期値「16384(=32768/2)」とを保持する。そして、設定部713は、実際に外部から供給されるクロック信号LRCKaの周波数に応じた初期値を選択的にラッチ回路711に出力する。
【0047】
図9の累算部72は、クロック信号LRCKaの1周期にわたって、マスタークロック信号MCLKに同期したタイミングで基準値SRC_RATEを累算する手段であり、加算回路721とラッチ回路723と論理積回路725とを含む。ラッチ回路723は、マスタークロック信号MCLKに同期したタイミングで加算回路721からの出力(累算値A1)を保持および出力するとともに、自身が保持する累算値A1をクロック信号LRCKaに同期したタイミングでゼロにリセットする。加算回路721は、ラッチ回路723が出力する累算値A1とラッチ回路711が出力する基準値SRC_RATEとを加算する。また、論理積回路725は、クロック信号LRCKaがアクティブレベル(ハイレベル)を維持する期間にてラッチ回路723からの累算値A1を出力する。以上の構成において、ラッチ回路723から出力される累算値A1は、マスタークロック信号MCLKに同期したタイミングで基準値SRC_RATEずつ増加していき、クロック信号LRCKaによって指定されるタイミングで(すなわちクロック信号LRCKaの周期ごとに)累算部72(論理積回路725)から出力される。
【0048】
いま、クロック信号LRCKaの周波数が正確に48kHzであるとすれば、クロック信号LRCKaの1周期はマスタークロック信号MCLKの768周期分(36.864MHz/48kHz)に相当する。したがって、ラッチ回路711から出力される基準値SRC_RATEが周波数48kHzに対応する初期値「32768」に設定されている場合、累算部72から出力される累算値A1は「25165824(=32768×768)」となる。一方、クロック信号LRCKaの周波数が正確に24kHzに維持されているとすれば、クロック信号LRCKaの1周期はマスタークロック信号MCLKの1536周期分(36.864MHz/24kHz)に相当する。周波数24kHzに対応する基準値SRC_RATEの初期値は48kHzの場合の半分の「16384」に設定されるから、累算部72から出力される累算値A1は、48kHzの場合と同様に「25165824(=16384×1536)」となる。
【0049】
図9の比較部73は、累算部72から出力される累算値A1を所定値と比較する手段であり、記憶部731と加算回路733とラッチ回路735とを含む。記憶部731は、クロック信号LRCKaの周波数に誤差がない場合に累算部72から出力されるべき累算値A1に負号を付した比較値A2(-25165824(=−32768×768))を記憶する手段である。加算回路733は、累算部72から出力される累算値A1と、記憶部731に記憶された比較値A2と、ラッチ回路735から出力される誤差値Dとの加算値を新たな誤差値Dとして出力する。ラッチ回路735は、加算回路733から出力される誤差値Dをクロック信号LRCKaに同期したタイミングで順次に保持および出力する。
【0050】
クロック信号LRCKaの周波数が正確に48kHzに維持されている場合に累算値A1は比較値A2の絶対値と同値の「25165824」となるから、加算回路733による累算値A1と比較値A2との加算によって誤差値Dはゼロとなる。これに対し、クロック信号LRCKaの周波数に誤差(ジッタ)がある場合には、累算値A1は比較値A2の絶対値と一致しないから、加算回路733から出力される誤差値Dはゼロ以外の数値となる。さらに詳述すると、クロック信号LRCKaの周波数が所期のサンプリング周波数f1よりも低い場合には、累算値Aが「25165824」よりも大きくなるから、誤差値Dは正数となる。また、クロック信号LRCKaの周波数がサンプリング周波数f1よりも高い場合には、累算値Aが「25165824」よりも小さくなるから、誤差値Dは負数となる。
【0051】
図9の補正値テーブル74は、誤差値D(すなわち比較部73による累算値A1と比較値A2との比較の結果)に応じた補正値Rを特定する手段である。具体的には、誤差値Dがとり得る各数値について補正値Rを記憶したROMが補正値テーブル74として好適に採用される。すなわち、補正値テーブル74には、正数の各誤差値Dについては当該誤差値Dに応じた負数の補正値Rが記憶され、負数の各誤差値Dについては当該誤差値Dに応じた正数の補正値Rが記憶される。補正値テーブル74は、比較部73(ラッチ回路735)が出力する誤差値Dに対応した補正値Rを選択して出力する。誤差値Dがゼロである場合に補正値テーブル74が出力する補正値Rはゼロである。
【0052】
補正部75は、ラッチ回路711が出力する基準値SRC_RATEを、補正値テーブル74が出力する補正値Rに基づいて補正する。本実施形態の補正部75は、基準値SRC_RATEと補正値Rとを加算する加算回路である。ラッチ回路711は、補正部75が出力する新たな基準値SRC_RATEをクロック信号LRCKbに同期したタイミングで順次に出力および保持する。したがって、ラッチ回路711から出力される基準値SRC_RATEは、クロック信号LRCKaの実際の周波数に応じて初期値から随時に更新される。すなわち、基準値SRC_RATEは、クロック信号LRCKaの周波数がサンプリング周波数f1よりも低い場合には減少し、クロック信号LRCKaの周波数がサンプリング周波数f1よりも高い場合には増加するように、クロック信号LRCKbに同期して順次に補正される。
【0053】
制御部76は、ラッチ回路711が出力する基準値SRC_RATEに応じて補間部34を制御する手段であり、加算回路761とラッチ回路763とを含む。加算回路761は、ラッチ回路763が出力するデータD2とラッチ回路711が出力する基準値SRC_RATEとの加算値Sを出力する。ラッチ回路763は、加算回路761が出力する加算値S(合計17ビット)に応じたデータD1およびデータD2を、クロック信号LRCKbに同期したタイミングで並列に出力して各々を保持する。データD1は加算値Sの上位2桁(第15桁目と第16桁目)であり、データD2は加算値Sのうち第0桁目から第14桁目までのビット列である。データD2のうち第3桁目から第14桁目までのビット列は補間比Faとして補間部34に出力される。したがって、補間比Faは、第1実施形態と同様に、補間部34が生成すべきデータDA2のサンプリング点Tb(位相)を順次に指定する情報となる。
【0054】
補間部34は、図4に例示したようにシフトレジスタ341と補間係数発生部343と補間演算部345とを含む。シフトレジスタ341は、クロック信号LRCKaに同期して順次に供給されるデータDA1のn個を演算用データ列として保持するとともに、ラッチ回路763が出力するデータD1に応じて演算用データ列を更新する。すなわち、データD1の数値が「1(10進表記)」である場合、シフトレジスタ341は、インタフェース回路21から供給される1個の新たなデータDA1を演算用データ列に追加するとともに最も古いデータDA1を破棄する。また、データD1の数値が「2(10進表記)」である場合、シフトレジスタ341は、インタフェース回路21から供給される2個の新たなデータDA1を演算用データに追加するとともに演算用データのうち古い順に選択された2個のデータDA1を破棄する。
【0055】
補間係数発生部343は、ラッチ回路763が出力する補間比Faに対応する補間係数k0〜kn-1を発生する。補間演算部345は、シフトレジスタ341が保持する演算用データ列と補間係数k0〜kn-1との畳み込み演算をクロック信号LRCKbに同期したタイミングで実行してサンプリング周波数f2のデータDA2を生成する。
【0056】
以上に説明したように、本実施形態においても補間演算の制御にFIFOは不要であるから、第1実施形態と同様に回路規模の縮小や消費電力の低減が実現される。さらに、補間比Faの演算に除算回路が不要であるから、補間比特定部327に除算回路が利用される図2の構成と比較して回路規模が縮小されるという利点がある。
【0057】
また、本実施形態においては、補間部34による補間演算(演算用データ列および補間係数k0〜kn-1)を制御するための基準値SRC_RATEが、クロック信号LRCKaの1周期の期間にわたる基準値SRC_RATEの累算値に応じて補正される。したがって、マスタークロック信号MCLKのカウント値CNT1に応じて補間演算が制御される第1実施形態の構成と比較して、演算用データ列の更新のタイミングと補間比Faとを高い分解能で高精度に調整することが可能である。さらに、基準値SRC_RATEはクロック信号LRCKaに同期して順次に補正されるから、FIFOのデータ残量に応じて補間比を調整する従来の構成と比較して、クロック信号LRCKaのジッタの影響を迅速に解消することができる。
【0058】
<B−2:第2実施形態の変形例>
以上の形態は適宜に変形される。具体的な変形の態様を例示すれば以下の通りである。
【0059】
(1)変形例1
以上の形態においては設定部713が基準値SRC_RATEの初期値を設定する構成を例示したが、基準値SRC_RATEは、初期値に拘わらず最終的にはクロック信号LRCKaに応じた数値に収束するから、基準値SRC_RATEの初期化は必ずしも必要ではない。ただし、以上の形態のように基準値SRC_RATEをクロック信号LRCKaの周波数に応じた数値に初期化する構成によれば、基準値SRC_RATEが適正値に収束するまでの時間を短縮することができる。
【0060】
(2)変形例2
以上の形態においては基準値SRC_RATEと補正値Rとが加算される構成を例示したが、補正部75による基準値SRC_RATEの補正の方法は任意である。したがって、補正値テーブル74の補正値Rと各誤差値Dとの関係も以上の例示から適宜に変更される。また、以上の形態では予め記憶された補正値Rを誤差値Dに応じて読み出す構成を例示したが、誤差値Dに応じた補正値Rを特定するための方法は任意である。例えば、誤差値Dを引数とした所定の演算によって補正値Rが算定される構成としてもよい。
【図面の簡単な説明】
【0061】
【図1】第1実施形態に係るデジタル信号処理装置Pの構成を示すブロック図である。
【図2】サンプリング周波数変換装置30の構成を示すブロック図である。
【図3】サンプリング周波数変換装置30による処理を説明するための概念図である。
【図4】補間部34の構成を示すブロック図である。
【図5】サンプリング周波数変換装置40の構成を示すブロック図である。
【図6】サンプリング周波数変換装置40による処理を説明するための概念図である。
【図7】変形例に係るサンプリング周波数変換装置30の構成を示すブロック図である。
【図8】変形例に係るサンプリング周波数変換装置30の構成を示すブロック図である。
【図9】第2実施形態に係るサンプリング周波数変換装置90の構成を示すブロック図である。
【符号の説明】
【0062】
P……デジタル信号処理装置、30,40,90……サンプリング周波数変換装置、32,42,50……補間制御部、34,44……補間部、321,421……カウンタ回路、322……累算回路、323,325,423,711,723,735,763……ラッチ回路、327,427……補間比特定部、329,425,731……記憶部、341……シフトレジスタ、343……補間係数発生部、345……補間演算部、51,52……クロック発生回路、713……設定部、72……累算部、721,733,761……加算回路、73……比較部、74……補正値テーブル、75……補正部、76……制御部。

【特許請求の範囲】
【請求項1】
第1クロック信号に同期して順次に供給される第1データから第2クロック信号に同期した第2データを生成する装置であって、
第1クロック信号によって指定されるタイミングと第2クロック信号によって指定されるタイミングとの間隔を計測する計測手段と、
前記計測手段が計測した間隔に基づいて補間比を特定する補間比特定手段と、
第1クロック信号によって指定されるタイミングで第1データを順次に取り込んで演算用データ列として保持するデータ保持手段と、
前記補間比特定手段が特定した補間比と前記データ保持手段が保持する演算用データ列とに応じた補間演算によって第2データを生成する補間演算手段と
を具備するサンプリング周波数変換装置。
【請求項2】
第1クロック信号によって指定される各タイミングの間隔を特定する周期特定手段を具備し、
前記補間比特定手段は、前記計測手段が計測した間隔と前記周期特定手段が特定した間隔との相対比を補間比として特定する
請求項1に記載のサンプリング周波数変換装置。
【請求項3】
第1クロック信号および第2クロック信号よりも周波数が高いクロック信号を第1クロック信号によって指定される各タイミングから計数するカウンタ回路を具備し、
前記周期特定手段は、第1クロック信号によって指定されるタイミングで前記カウンタ回路によるカウント値を出力および保持する第1ラッチ回路を含み、
前記計測手段は、第2クロック信号によって指定されるタイミングで前記カウンタ回路によるカウント値を出力および保持する第2ラッチ回路を含み、
前記補間比特定手段は、前記第1ラッチ回路からの出力と前記第2ラッチ回路からの出力との相対比を補間比として特定する
請求項2に記載のサンプリング周波数変換装置。
【請求項4】
前記周期特定手段は、第2クロック信号の周期を記憶する記憶回路を含み、
前記補間比特定手段は、前記計測手段が計測した間隔と前記記憶回路が記憶する周期との相対比を補間比として特定する
請求項2に記載のサンプリング周波数変換装置。
【請求項5】
前記計測手段は、各々が2以上である複数の整数値の何れかを選択的に累算する累算回路を含み、
前記補間比特定手段は、前記累算回路による累算値に基づいて補間比を特定する
請求項1に記載のサンプリング周波数変換装置。
【請求項6】
第1クロック信号に同期して順次に供給される第1データから第2クロック信号に同期した第2データを生成する装置であって、
基準値を保持する保持手段と、
前記保持手段が保持する基準値を、第1クロック信号によって指定される各タイミングの間隔にて順次に累算する累算手段と、
前記累算手段による累算値と所定値とを比較する比較手段と、
前記比較手段による比較の結果に応じた補正値を特定する補正値特定手段と、
前記保持手段が保持する基準値を前記補正値に基づいて補正する補正手段と、
前記保持手段が保持する基準値に応じたタイミングで第1データを順次に取り込んで演算用データ列として保持するデータ保持手段と、
前記保持手段が保持する基準値と前記データ保持手段が保持する演算用データ列とに応じた補間演算によって第2データを生成する補間演算手段と
を具備するサンプリング周波数変換装置。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2008−85964(P2008−85964A)
【公開日】平成20年4月10日(2008.4.10)
【国際特許分類】
【出願番号】特願2006−266821(P2006−266821)
【出願日】平成18年9月29日(2006.9.29)
【出願人】(000004075)ヤマハ株式会社 (5,930)