(57)【要約】【課題】  任意の入出力サンプリング周波数Ｆin，Ｆoutに対して、僅かなバッファサイズで周波数変換を行う。【解決手段】  カウンタ２０４は入力ＣＫinをカウントし、入力データＤinの書込みアドレスwadをＦＩＦＯ２０６に供給する。全加算器２１８は、オーバーサンプリングクロックＣＫover毎に、信号Delta（ほぼＦin／Ｆover）を累積し累積結果が「１」を超える毎に信号ＳＨを発生する。カウンタ２０２は信号ＳＨのカウント結果を読出しアドレスradとして出力する。全加算器２１２等は、「wad−rad」に基づいて、Deltaの値を微調節する。ここで、ＦinまたはＦoverが急速に変動すると、セレクタ２１５を介して、Ｆin／Ｆoutの実測値に基づいてDeltaの値が強制的に設定される。その後「wad−rad」に対する微調節値の感度が高くされDeltaの収束が促進される。【選択図】  図３
2005210190.tif 000002
【特許請求の範囲】
【請求項１】
入力データのサンプリングタイミングに同期する入力クロックと、出力データのサンプリングタイミングに同期するとともに前記入力クロックには同期しない出力クロックとが入力されると、前記出力クロックを乗数ＭＰ倍に逓倍することにより、前記入力クロックには同期しないオーバーサンプリングクロックを発生するオーバーサンプリングクロック発生手段と、
前記入力データを順次記憶するＦＩＦＯバッファと、
周波数比信号を前記オーバーサンプリングクロック毎に累積するとともに、その累積結果が所定条件を満たす毎に、前記ＦＩＦＯバッファに書き込まれた入力データを順次読み出す読出手段と、
前記読出手段により読み出された入力データに対し、前記オーバーサンプリングクロック毎に、前記累積結果に基づく非同期サンプリング周波数変換を施し、前記オーバーサンプリングクロックに同期したオーバーサンプリング信号を出力するオーバーサンプリング手段と、
前記オーバーサンプリング周波数の「１／（ＭＰ・２）」倍以上の信号成分を除去しつつ、該オーバーサンプリング信号を「１／ＭＰ」にダウンサンプリングすることにより、前記出力クロックに同期した前記出力データを出力するダウンサンプリング手段と、
前記ＦＩＦＯバッファに既に書き込まれ前記読出手段によって未だ読み出されていないデータ数である差分データに基づく調整値を、前記周波数比信号に対して増減する周波数比信号調節手段と、
前記入力クロックと前記出力クロックとに基づいて、前記入力サンプリング周波数と前記オーバーサンプリング周波数の周波数比を検出する周波数比検出手段と、
前記周波数比と、前記差分データとに基づいて、前記周波数比信号として強制的に設定され得る算出値を算出する算出手段と、
前記入力サンプリング周波数または前記出力サンプリング周波数が所定のジャンプ条件を満たす程度に変動すると、前記周波数比信号を前記算出値に強制的に設定する強制設定手段と
を有することを特徴とするサンプリング周波数変換装置。
【請求項２】
入力データのサンプリングタイミングに同期する入力クロックと、出力データのサンプリングタイミングに同期するとともに前記入力クロックには同期しない出力クロックとが入力されると、前記出力クロックを乗数ＭＰ倍に逓倍することにより、前記入力クロックには同期しないオーバーサンプリングクロックを発生するオーバーサンプリングクロック発生手段と、
前記入力データを順次記憶するＦＩＦＯバッファと、
周波数比信号を前記オーバーサンプリングクロック毎に累積するとともに、その累積結果が所定条件を満たす毎に、前記ＦＩＦＯバッファに書き込まれた入力データを順次読み出す読出手段と、
前記読出手段により読み出された入力データに対し、前記オーバーサンプリングクロック毎に、前記累積結果に基づく非同期サンプリング周波数変換を施し、前記オーバーサンプリングクロックに同期したオーバーサンプリング信号を出力するオーバーサンプリング手段と、
前記オーバーサンプリング周波数の「１／（ＭＰ・２）」倍以上の信号成分を除去しつつ、該オーバーサンプリング信号を「１／ＭＰ」にダウンサンプリングすることにより、前記出力クロックに同期した前記出力データを出力するダウンサンプリング手段と、
前記ＦＩＦＯバッファに既に書き込まれ前記読出手段によって未だ読み出されていないデータ数である差分データに基づく調整値を、前記周波数比信号に対して増減する周波数比信号調節手段と、
前記入力クロックと前記出力クロックとに基づいて、前記入力サンプリング周波数と前記オーバーサンプリング周波数の周波数比を検出する周波数比検出手段と、
前記周波数比に基づいて、前記周波数比信号として強制的に設定され得る算出値を算出する算出手段と、
前記入力サンプリング周波数または前記出力サンプリング周波数が所定のジャンプ条件を満たす程度に変動すると、前記周波数比信号を前記算出値に強制的に設定する強制設定手段と、
前記強制設定手段によって前記周波数比信号が強制的に設定されると、前記差分データに対する前記調整値の感度を高め、しかる後に前記感度を低下させる感度調節手段と
を有することを特徴とするサンプリング周波数変換装置。
【請求項３】
前記周波数比信号の直流成分を出力する直流成分出力手段と、
前記周波数比信号と、前記直流成分のレベルとが交差するタイミングである交差タイミングを検出する交差タイミング検出手段と
をさらに有し、前記強制設定手段は前記交差タイミングにおいて前記感度を低下させることを特徴とする請求項２記載のサンプリング周波数変換装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタル音声信号のサンプリング周波数の変換に用いて好適なサンプリング周波数変換装置に関する。
【背景技術】
【０００２】
近年、音声信号の記録／再生装置、編集装置、効果装置等はデジタル化されているものが多いが、これらの機器に用いられるサンプリング周波数は異なるため、サンプリング周波数を変換するための種々の装置が提案されている。例えば、特許文献１にあっては、入力サンプリング周期毎にＦＩＦＯバッファに入力データのサンプリング値を書き込み、それとは非同期の出力サンプリング周期毎に該ＦＩＦＯバッファを読み出すことにより、サンプリング周波数を変換する技術が開示されている。ここで、ＦＩＦＯバッファの読み出しアドレスはほぼ入力サンプリング周期毎に歩進するため、出力サンプリング周波数が入力サンプリング周波数よりも高い場合には、同一のサンプル値が続けて２回読み出される場合もある。そこで、同文献においては、ＦＩＦＯバッファから読み出されたサンプリング値に対して補間処理を施すことにより、滑らかな出力データを得る技術が開示されている。
【０００３】
また、特許文献２にあっては、入力サンプリング周期毎にＦＩＦＯバッファにサンプリング値を書き込み、出力サンプリング周期の「１／８」のオーバーサンプリング周期毎に該ＦＩＦＯバッファを読み出し、読み出された一連のサンプリング結果に対して畳込み演算を施すことによって出力データを得る技術が開示されている。
【０００４】
【特許文献１】特開平１１−０５５０７５号公報
【特許文献２】特開平１１−０５５０７６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、入出力サンプリング周波数には「揺らぎ」が生じる場合もあるため、特許文献１，２に示されているように、サンプリング周波数変換装置には通常は揺らぎを吸収するためのＦＩＦＯバッファが設けられている。しかし、これら従来の装置においては、入出力サンプリング周波数の大きな「揺らぎ」に対応しようとすると、必然的にＦＩＦＯバッファ等のサイズが増大し、コスト高を招くという問題があった。
この発明は上述した事情に鑑みてなされたものであり、僅かなバッファサイズで入出力サンプリング周波数の大きな揺らぎに対応できるサンプリング周波数変換装置を提供することをの目的としている。
【課題を解決するための手段】
【０００６】
上記課題を解決するため本発明にあっては、下記構成を具備することを特徴とする。なお、括弧内は例示である。
請求項１記載のサンプリング周波数変換装置にあっては、入力データ（Ｄin）のサンプリングタイミングに同期する入力クロック（ＣＫin）と、出力データ（Ｄout）のサンプリングタイミングに同期するとともに前記入力クロック（ＣＫin）には同期しない出力クロック（ＣＫout）とが入力されると、前記出力クロック（ＣＫout）を乗数ＭＰ倍に逓倍することにより、前記入力クロック（ＣＫin）には同期しないオーバーサンプリングクロック（ＣＫover）を発生するオーバーサンプリングクロック発生手段（１７０）と、前記入力データ（Ｄin）を順次記憶するＦＩＦＯバッファ（２０６）と、周波数比信号（Delta）を前記オーバーサンプリングクロック（ＣＫover）毎に累積するとともに、その累積結果が所定条件を満たす毎に、前記ＦＩＦＯバッファ（２０６）に書き込まれた入力データを順次読み出す読出手段（２０４，２１８，２２０）と、前記読出手段により読み出された入力データ（ＰＤ１）に対し、前記オーバーサンプリングクロック（ＣＫover）毎に、前記累積結果に基づく非同期サンプリング周波数変換を施し、前記オーバーサンプリングクロック（ＣＫover）に同期したオーバーサンプリング信号（ＰＤmid）を出力するオーバーサンプリング手段（２００，１２０，１３０，１４０，１５２〜１５６）と、前記オーバーサンプリング周波数（Ｆover）の「１／（ＭＰ・２）」倍以上の信号成分を除去しつつ、該オーバーサンプリング信号（ＰＤmid）を「１／ＭＰ」にダウンサンプリングすることにより、前記出力クロック（ＣＫout）に同期した前記出力データ（Ｄout）を出力するダウンサンプリング手段（１５８）と、前記ＦＩＦＯバッファ（２０６）に既に書き込まれ前記読出手段によって未だ読み出されていないデータ数である差分データ（Ｓ208）に基づく調整値（Ｓ210）を、前記周波数比信号（Delta）に対して増減する周波数比信号調節手段（２１０，２１２，２１６）と、前記入力クロック（ＣＫin）と前記出力クロック（ＣＫout）とに基づいて、前記入力サンプリング周波数（Ｆin）と前記オーバーサンプリング周波数（Ｆover）の周波数比を検出する周波数比検出手段（１８４）と、前記周波数比と、前記差分データ（Ｓ208）とに基づいて、前記周波数比信号（Delta）として強制的に設定され得る算出値（ＣＶ）を算出する算出手段（１９４）と、前記入力サンプリング周波数（Ｆin）または前記出力サンプリング周波数（Ｆout）が所定のジャンプ条件を満たす程度に変動すると、前記周波数比信号（Delta）を前記算出値（ＣＶ）に強制的に設定する強制設定手段（２１５）とを有することを特徴とする。
また、請求項２記載のサンプリング周波数変換装置にあっては、入力データ（Ｄin）のサンプリングタイミングに同期する入力クロック（ＣＫin）と、出力データ（Ｄout）のサンプリングタイミングに同期するとともに前記入力クロック（ＣＫin）には同期しない出力クロック（ＣＫout）とが入力されると、前記出力クロック（ＣＫout）を乗数ＭＰ倍に逓倍することにより、前記入力クロック（ＣＫin）には同期しないオーバーサンプリングクロック（ＣＫover）を発生するオーバーサンプリングクロック発生手段（１７０）と、前記入力データ（Ｄin）を順次記憶するＦＩＦＯバッファ（２０６）と、周波数比信号（Delta）を前記オーバーサンプリングクロック（ＣＫover）毎に累積するとともに、その累積結果が所定条件を満たす毎に、前記ＦＩＦＯバッファ（２０６）に書き込まれた入力データを順次読み出す読出手段（２０４，２１８，２２０）と、前記読出手段により読み出された入力データ（ＰＤ１）に対し、前記オーバーサンプリングクロック（ＣＫover）毎に、前記累積結果に基づく非同期サンプリング周波数変換を施し、前記オーバーサンプリングクロック（ＣＫover）に同期したオーバーサンプリング信号（ＰＤmid）を出力するオーバーサンプリング手段（２００，１２０，１３０，１４０，１５２〜１５６）と、前記オーバーサンプリング周波数（Ｆover）の「１／（ＭＰ・２）」倍以上の信号成分を除去しつつ、該オーバーサンプリング信号（ＰＤmid）を「１／ＭＰ」にダウンサンプリングすることにより、前記出力クロック（ＣＫout）に同期した前記出力データ（Ｄout）を出力するダウンサンプリング手段（１５８）と、前記ＦＩＦＯバッファ（２０６）に既に書き込まれ前記読出手段によって未だ読み出されていないデータ数である差分データ（Ｓ208）に基づく調整値（Ｓ210）を、前記周波数比信号（Delta）に対して増減する周波数比信号調節手段（２１０，２１２，２１６）と、前記入力クロック（ＣＫin）と前記出力クロック（ＣＫout）とに基づいて、前記入力サンプリング周波数（Ｆin）と前記オーバーサンプリング周波数（Ｆover）の周波数比を検出する周波数比検出手段（１８４）と、前記周波数比に基づいて、前記周波数比信号（Delta）として強制的に設定され得る算出値（ＣＶ）を算出する算出手段（１９４）と、前記入力サンプリング周波数（Ｆin）または前記出力サンプリング周波数（Ｆout）が所定のジャンプ条件を満たす程度に変動すると、前記周波数比信号（Delta）を前記算出値（ＣＶ）に強制的に設定する強制設定手段（２１５）と、前記強制設定手段（２１５）によって前記周波数比信号（Delta）が強制的に設定されると、前記差分データ（Ｓ208）に対する前記調整値（Ｓ210）の感度を高め、しかる後に前記感度を低下させる感度調節手段（２２２）とを有することを特徴とする。
さらに、請求項３記載の構成にあっては、請求項２記載のサンプリング周波数変換装置において、前記周波数比信号（Delta）の直流成分を出力する直流成分出力手段（２２６）と、前記周波数比信号（Delta）と、前記直流成分のレベルとが交差するタイミングである交差タイミングを検出する交差タイミング検出手段（２２４）とをさらに有し、前記強制設定手段（２１５）は前記交差タイミングにおいて前記感度を低下させることを特徴とする。
【発明の効果】
【０００７】
このように、計測した周波数比と、差分データとに基づいて、算出値を算出し、入力サンプリング周波数または出力サンプリング周波数が所定のジャンプ条件を満たす程度に変動すると、周波数比信号を該算出値に強制的に設定する構成によれば、周波数比信号を理想値に近い値に速やかに近接させることができるから、必要なバッファサイズを小さくすることができる。
また、周波数比信号が強制的に設定されると、差分データに対する調整値の感度を高め、しかる後にこの感度を下げる構成によれば、周波数比信号を急速に収束させるとともに、収束後は周波数比信号を安定させることができるから、必要なバッファサイズを小さくすることができる。
【発明を実施するための最良の形態】
【０００８】
1．実施例の構成
1．1．全体構成
次に、本発明の一実施例のサンプリング周波数変換装置の全体構成を図１を参照し説明する。
このサンプリング周波数変換装置には、図示せぬ入力側の機器よりシリアルデータである入力データＤinと、この入力データＤinのビット周期毎に立ち上がるビットクロックｂＣＫinと、サンプリング周期毎に立ち上がる入力クロックＣＫinとが供給される。また、図示せぬ出力側の機器より、出力データＤoutのビット周期毎に立ち上がるビットクロックｂＣＫoutと、サンプリング周期毎に立ち上がる出力クロックＣＫoutとが供給される。サンプリング周波数変換装置は、これらの信号等に基づいて、ビットクロックｂＣＫoutに同期するシリアルデータである出力データＤoutを出力するものである。ここで、入力側の機器と出力側の機器はそれぞれ独自に生成したサンプリング周波数に基づいて音声信号を処理しており、この入力クロックＣＫinと出力クロックＣＫoutとは同期していない。
【０００９】
図１において１１０はシリアル・パラレル変換器であり、この入力データＤinをパラレルデータＰＤinに変換する。１７０はオーバーサンプリングクロック発生器であり、出力クロックＣＫoutを逓倍することにより、出力サンプリング周波数ＦoutのＭＰ倍（乗数ＭＰは「２」，「４」または「８」）のオーバーサンプリング周波数Ｆoverを有するオーバーサンプリングクロックＣＫoverを発生する。なお、ビットクロックｂＣＫoutが出力クロックＣＫoutの「８ｎ」（ｎは自然数）倍の周波数を有しているのであれば、ビットクロックｂＣＫoutを分周することによりオーバーサンプリングクロックＣＫoverを生成することが可能である。なお、この明細書では、２つの信号の周期が完全に一致するときに両信号を「同期する」といい、一方の信号の周期が他方の信号の周期に対して、安定した有理数倍であるときに両信号が「準同期する」と呼ぶ。従って、上述したクロックＣＫoverは、出力クロックＣＫoutに準同期するクロックである。
【００１０】
１８０は変換制御部であり、入力クロックＣＫinと出力クロックＣＫoutとに基づいて、両者のサンプリング周波数Ｆin，Ｆoutを計測し、上記乗数ＭＰ等を算出する。２００はＦＩＦＯ＆ＰＬＬ回路であり、パラレルデータＰＤinを若干遅延させて成るデータＰＤ１と、クロックＣＫoverの各サンプルタイミングが入力クロックＣＫinに対して有する位相差である位相信号ＰＨと、入力クロックＣＫinとほぼ同一の周波数を有し、立ち上がりタイミングがクロックＣＫoverに同期したシフト信号ＳＨとを出力する。１３０は第１フィルタであり、データＰＤ１の不要帯域を除去する不要帯域のフィルタリング処理と、入力クロックＣＫinに同期したデータを出力クロックＣＫoutに準同期したデータに変換する非同期変換処理とを行いつつ、そのサンプリング周波数をＦoverにオーバーサンプリングし、その結果をデータＰＤmidとして出力する。１２０は第１係数メモリであり、位相信号ＰＨに基づいて、クロックＣＫover毎に第１フィルタ１３０のフィルタ係数を決定する。
【００１１】
１５０は第２フィルタであり、データＰＤmidが有する周波数帯域を、出力データＤoutのサンプリング周波数Ｆoutによって再現できる範囲に狭めるフィルタリング処理を行い、そのフィルタリング結果のダウンサンプリングを行うことによって周波数Ｆoutをサンプリング周期とするパラレルデータＰＤoutを出力する。１４０は第２係数メモリであり、乗数ＭＰに応じて、第２フィルタ１５０のフィルタ係数を決定する。１６０はパラレル・シリアル変換器であり、パラレルデータＰＤoutをシリアルデータである出力データＤoutに変換する。
【００１２】
1．2．変換制御部１８０
以下、図１における各構成要素の詳細構成を説明する。まず変換制御部１８０の構成を図２を参照し説明する。
図２において１９０，１９２は分周回路であり、各々入力クロックＣＫinおよび出力クロックＣＫoutを「６４」分周する。１８１はＦin計測部であり、「６４」分周した入力クロックＣＫinの周期を計測することにより、その周波数である入力サンプリング周波数Ｆinを「１６ビット」の精度で算出する。同様に、１８６はＦout計測部であり、「６４」分周した出力クロックＣＫoutの周期を計測することにより、その周波数である出力サンプリング周波数Ｆoutを「１６ビット」の精度で算出する。
【００１３】
１８２はＧin判定部であり、入力サンプリング周波数Ｆinが「グループ１（６０kＨz未満）」「グループ２（６０kHz以上１２０kＨz未満）」、または「グループ３（１２０kHz以上）」の何れに属するかを判定し、判定したグループの番号を「入力グループＧin」として出力する。同様に、１８７はＧout判定部であり、出力サンプリング周波数Ｆoutが上記何れのグループに属するかを判定し、判定したグループの番号を「出力グループＧout」として出力する。
【００１４】
１８５は乗数ＭＰ決定部であり、判定された入出力グループＧin，Ｇoutに基づいて、以下の要領にて乗数ＭＰを決定する。
(１)Ｇin＝１であれば、乗数ＭＰ＝２。
(２)Ｇin＝２のとき、
Ｇout＝１であれば乗数ＭＰ＝４、
Ｇout＝２または３であれば乗数ＭＰ＝２。
(３)Ｇin＝３のとき、
Ｇout＝１であれば乗数ＭＰ＝８、
Ｇout＝２であれば乗数ＭＰ＝４、
Ｇout＝３であれば乗数ＭＰ＝２。
【００１５】
換言すれば、入出力サンプリング周波数Ｆin，Ｆoutが同程度、または出力サンプリング周波数Ｆoutが高い場合には乗数ＭＰが「２」に設定され、周波数Ｆinが周波数Ｆoutよりも高い場合には、その度合いに応じて乗数ＭＰが高い値に設定される。これは、元々入力データＤinが有している帯域幅をオーバーサンプリング時においても確保するため、オーバーサンプリング周波数Ｆoverを入力サンプリング周波数Ｆinよりも充分高い値に設定する必要があるためである。１８４は周波数比算出部であり、周波数Ｆin，Ｆoverの周波数比Ｆin／Ｆover＝Ｆin／（Ｆout・ＭＰ）を「１５ビット」の精度で算出する。１９４は算出値作成部であり、上記周波数比Ｆin／Ｆoverと、後述する差分データＳ208のＭＳＢ（最上位ビット）とが供給されると、「３２ビット」の算出値ＣＶを出力する。ここで、算出値ＣＶの上位「１５ビット」は周波数比Ｆin／Ｆoverの値がそのまま用いられる。また、算出値ＣＶの下位「１７ビット」は、差分データＳ208のＭＳＢが“１”であれば全ビット“１”にされ、差分データＳ208のＭＳＢが“０”であれば全ビット“０”にされる。ここで、差分データＳ208のＭＳＢが“１”であるときは、ＦＩＦＯバッファ２０６に残っているデータ量が所定量以上（「４」以上）であることを示し、“０”であるときは該データ量が所定量未満（「３」以下）であることを示す。すなわち、ここではＦＩＦＯバッファ２０６に残っているデータ量が多い場合に算出値ＣＶの下位「１７ビット」を最大値（オール“１”）に設定し、データ量が少ない場合に算出値ＣＶの下位「１７ビット」を最小値（オール“０”）に設定しているのである。
【００１６】
ところで、後述するＦＩＦＯ＆ＰＬＬ回路２００においては、「周波数比信号Delta」なる信号が用いられる。この周波数比信号Deltaは、周波数比Ｆin／Ｆoverとほぼ等しい値を有するが、フィードバック制御により周波数Ｆin，Ｆoutの「揺らぎ」を吸収しつつ求められる値であり、上記周波数比Ｆin／Ｆoverとは異なる。この周波数比信号Deltaは、周波数ＦinまたはＦoutの変動に追従して自動的に変化するが、単なるフィードバック制御のみによって周波数比信号Deltaを収束させようとすると、周波数ＦinまたはＦoutが急速に変動したときにその変動速度に収束速度が追従しきれない場合も考えられる。かかる場合に周波数比信号Deltaの収束を早めるためには、周波数比信号Deltaを強制的に算出値ＣＶに一致させることが望ましい。１９６は変動検出部であり、上記周波数比Ｆin／Ｆoverの所定周期毎の変動量を監視し、その変動量が所定量（ジャンプ感度）を超えると、レート変化信号ＲＣを出力する。このレート変化信号ＲＣは、周波数比信号Deltaを算出値ＣＶに強制的に一致させるための信号である。なお、ジャンプ感度は、図示せぬ制御用の処理装置等から与えられる。
【００１７】
1．3．ＦＩＦＯ＆ＰＬＬ回路２００
次に、ＦＩＦＯ＆ＰＬＬ回路２００の構成を図３を参照し説明する。
図において２０４はカウンタであり、「０」〜「７」の範囲で入力クロックＣＫinを循環的にカウントする。２０６はＦＩＦＯバッファであり、書き込みおよび読み出しを独立に制御できる「８」ワードのＲＡＭによって構成されている。ＦＩＦＯバッファ２０６に対しては、上記シリアル・パラレル変換器１１０からのパラレルデータＰＤinが書込みデータwdtとして供給され、カウンタ２０４のカウント結果が書込みアドレスwadとして供給され、入力クロックＣＫinが書込みイネーブル信号weとして供給される。従って、ＦＩＦＯバッファ２０６の各アドレス「０」〜「７」には、入力クロックＣＫinに同期して、データＰＤinが循環的に書き込まれてゆくことになる。
【００１８】
また、２０２はカウンタであり、ＦＩＦＯバッファ２０６の読出しアドレスradを歩進させるためのシフト信号ＳＨ（詳細は後述する）が供給され、「０」〜「７」の範囲で該シフト信号ＳＨを循環的にカウントする。このカウント結果は、読出しアドレスradとしてＦＩＦＯバッファ２０６に供給され、ＦＩＦＯバッファ２０６からは、当該アドレスに格納されている内容がデータＰＤ１として常時出力されることになる。２０８は減算器であり、カウンタ２０２，２０４のカウント結果の差、すなわち「“８＋wad−rad”を“８”で除算したときの余り」を差分データＳ208として出力する。この差分データＳ208は、ＦＩＦＯバッファ２０６に書き込まれたデータＰＤinのうち未だデータＰＤ１として出力されていないデータの数である。ここで、ＦＩＦＯバッファ２０６のＦＩＦＯ動作のために、カウンタ２０２，２０４においては、各々のカウント結果に基づいて他方のカウント結果に対して制限が加えられる。
【００１９】
すなわち、シフト信号ＳＨがカウンタ２０２に入力されたとき、ここで仮にカウンタ２０２を歩進させたならば読出しアドレスradが書込みアドレスwadに一致する場合には、当該シフト信号ＳＨは無視される。同様に、入力クロックＣＫinがカウンタ２０４に入力されたとき、ここで仮にカウンタ２０４を歩進させたならば書込みアドレスwadが読出しアドレスradに一致する場合には、当該入力クロックＣＫinは無視される。これにより、差分データＳ208は、「１」以上「７」以下の範囲に制限されることになる。２１０は微調整テーブルであり、差分データＳ208と、後述する「０」〜「７」の範囲のカウント値ＴＣとに基づいて、図９(a)に示す微調整値Ｓ210を出力する。なお、微調整値Ｓ210の意義については後述する。
【００２０】
２１２は全加算器であり、ここで周波数比信号Deltaと微調整値Ｓ210とが加算される。全加算器２１２は「３２」ビット幅を有し、上位から第ｎビット（ｎ＝１〜３２）が「２-n」の位を表す固定小数点方式の加算器である。２１５はセレクタであり、上記変換制御部１８０内の変動検出部１９６からレート変化信号ＲＣが出力された場合は上記算出値ＣＶを選択し、それ以外の場合は全加算器２１２の加算結果を選択し、選択結果を出力する。２１６は２段のラッチ回路であり、オーバーサンプリングクロックＣＫoverの立上がりで該セレクタ２１５の選択結果をラッチし、ラッチした結果をその直後のクロックＣＫoverの立下がりで新たな周波数比信号Deltaとして出力する。
【００２１】
２１８は全加算器であり、全加算器２１２と同様に構成され、周波数比信号Deltaと位相信号ＰＨ（詳細は後述する）とを加算する。全加算器２１８の最上位桁は「２-1」の桁であるから、加算結果のうち「２0」の位に繰り上がった部分はキャリー信号、すなわち上記シフト信号ＳＨとして出力される。そして、加算結果のうち「２-1」の桁以下の部分は、加算結果Ｓ218として出力される。２２０は２段のラッチ回路であり、クロックＣＫoverの立上がりで加算結果Ｓ218をラッチし、その結果をその直後のクロックＣＫoverの立下がりで新たな位相信号ＰＨとして出力する。次に、２２６はＤＣレベル検出器であり、信号Deltaに含まれる直流成分レベルDelta_DCを検出する。具体的には、信号Deltaをローパスフィルタ処理することにより直流成分レベルDelta_DCを検出しても良いし、あるいは、信号Deltaの揺らぎの正側のピークと負側のピークを検出してその中間値を直流成分レベルDelta_DCとして出力するようにしてもよい。
【００２２】
２２４は周期検出器であり、信号Deltaの揺らぎの周期を検出し、各周期において信号Deltaが直流成分レベルDelta_DCを横切って立ち上がるタイミングで周期パルスＣＰを発生する。信号Deltaはサインカーブに近い波形で揺らいでいるので、その周期の検出は容易である。例えば、信号Deltaを微分した微分値がゼロになるタイミングを、信号Deltaの正と負のピークとして検出し、その２つが検出される毎に「１周期」を検出するようにしてもよいし、信号Deltaが直流成分レベルDelta_DCを負の方向と正の方向へ横切るタイミングから各周期を検出しても良い。２２２は「３ビット」のカウンタであり、周波数比信号Deltaのジャンプが発生すると（レート変化信号ＲＣが出力されると）ゼロクリアされ、その後に周期パルスＣＰが発生する毎に「１」ずつカウントアップされる。但し、カウント結果が「３ビット」の最大値「７」に達すると、その後は周期パルスＣＰが再び入力されるまで「７」のカウント結果が保持される。
【００２３】
1．4．第１係数メモリ１２０および第１フィルタ１３０
次に、第１フィルタ１３０の構成を図４を参照し説明する。図において１３２−０〜１３２−１９は直列に接続された「２０」個の２段のラッチ回路であり、シフト信号ＳＨが出力されているタイミングに各入力端に供給されたデータをラッチし、その結果をそのシフト信号ＳＨの立下がり以降に出力する。また、初段のラッチ回路１３２−０にはデータＰＤ１が供給される。従って、ラッチ回路１３２−０〜１３２−１９には、シフト信号ＳＨの周期毎に過去「２０」サンプルのデータＰＤ１が記憶されることになる。１３４−０〜１３４−１９は乗算器であり、これら過去「２０」サンプルのデータＰＤ１に対して各々係数Ｃ０〜Ｃ１９を乗算する。１３６−１〜１３６−１９は加算器であり、乗算器１３４−０〜１３４−１９における乗算結果を加算し、その結果をデータＰＤmidとして出力する。
【００２４】
一方、第１係数メモリ１２０には、上記係数Ｃ０〜Ｃ１９を「１組の係数群」として、「４０９６（＝２12）組の係数群」を出力するためのデータが記憶されている。この係数群は、第１フィルタ１３０でデータＰＤ１のサンプリング周波数をＦinからＦoutに変換する際に、元のデータＰＤ１が有する信号帯域以上の周波数帯域の成分を減衰させるようなローパスフィルタ特性を有する係数群である。そして、第１係数メモリ１２０には、オーバーサンプリングクロックＣＫover毎に位相信号ＰＨの上位１２ビットがアドレス信号として供給される。従って、位相信号ＰＨが第１係数メモリ１２０供給されると、「Ｆin／２」以上の周波数帯域を減衰させる周波数特性の係数カーブをクロックＣＫoverの周期でサンプリングした「４０９６組」の係数群の中から、位相信号ＰＨに対応する１組の係数群が選択され、該係数群が第１フィルタ１３０に供給されるのである。
【００２５】
ここで、第１係数メモリ１２０には、サンプリング周波数ＦinとＦoverの組み合わせ毎に「４０９６組」の係数群を別個に記憶するようにしてもよいが、上記係数カーブのデータを１セットだけ記憶しておき、その時間軸をサンプリング周波数ＦinとＦoverによりスケーリングするようにしてもよい。かかる構成においても、本実施例と同様に、アドレス信号で参照できる「４０９６組」の係数群を生成することができるからである。なお、この係数群ないし係数カーブは、例えばＳＩＮＣ関数（sin(x)/x）に窓関数を施したもの、あるいはラグランジェ関数等、種々の関数に基づく係数群ないし係数カーブであってよい。
【００２６】
ところで、ラッチ回路１３２−０〜１３２−１９に格納されているデータはシフト信号ＳＨ毎にシフトされるが、係数Ｃ０〜Ｃ１９は各クロックＣＫover毎の位相信号ＰＨに基づいて与えられる。このクロックＣＫover毎の畳み込み演算により、サンプリング周波数ＦinのデータＰＤ１は、サンプリング周波数ＦoverのデータＰＤmidに変換される。なお、上述したようにクロックＣＫoverは出力クロックＣＫoutに準同期したクロックであるので、このデータＰＤmidは既に出力クロックＣＫoutに準同期したデータになっている。
【００２７】
1．5．第２係数メモリ１４０および第２フィルタ１５０
次に、第２フィルタ１５０の構成を図５を参照し説明する。
図において１５２−０〜１５２−６３は直列に接続された「６４」個の２段のラッチ回路であり、クロックＣＫoverの立上がりで各入力端に供給されたデータをラッチし、その結果を直後のクロックＣＫoverの立下がりで出力する。また、初段のラッチ回路１３２−０にはデータＰＤmidが供給される。従って、ラッチ回路１５２−０〜１５２−６３には、クロックＣＫoverの周期毎に過去「６４」サンプルのデータＰＤmidが記憶されることになる。１５４−０〜１５４−６３は乗算器であり、これら過去「６４」サンプルのデータＰＤmidに対して各々係数Ｋ０〜Ｋ６３を乗算する。１５６−１〜１５６−６３は加算器であり、乗算器１５４−０〜１５４−６３における乗算結果を加算し、その結果をデータＰＤ２として出力する。
【００２８】
１５８はダウンサンプラであり、データＰＤ２のサンプリング周波数を「Ｆover／ＭＰ」すなわち出力サンプリング周波数Ｆoutに変換し、その結果をデータＰＤoutとして出力する。なお、乗算器１５４−０〜１５４−６３および加算器１５６−１〜１５６−６３における演算は各クロックＣＫover毎に実行する必要はなく、クロックＣＫoverに対して「ＭＰ回に１回」だけ演算を行えば充分である。これは、仮にその他のタイミングにおける演算を実行したとしても、演算結果はダウンサンプラ１５８によって破棄されるからである。
【００２９】
ところで、第２係数メモリ１４０には、上記係数Ｋ０〜Ｋ６３を「１組の係数群」として、「４組の係数群」が記憶されている。第１の係数群は「Ｆin＞ＦoutであってＭＰ＝２」のときに選択され、第２の係数群は「Ｆin＞ＦoutであってＭＰ＝４」のときに選択され、第３の係数群は「Ｆin＞ＦoutであってＭＰ＝８」のときに選択され、第４の係数群は「Ｆin＜Ｆout」のときに選択される。ここで、第１〜第３の係数群は、データＰＤmidが有する信号帯域のうち出力サンプリング周波数Ｆoutによって表現できない範囲、すなわち「Ｆout／２」＝「Ｆover／（ＭＰ・２）」以上の信号帯域をカット（減衰）するように設定されている。これは、出力データＤoutにおける折り返し雑音を防止するためである。このようにして、データＰＤmidと係数Ｋ０〜Ｋ６３の畳み込み演算により、信号帯域が制限されたデータＰＤ２が生成される。
【００３０】
一方、第４の係数群は、第２フィルタ１５０がスルーの特性を有するように設定されている。具体的には係数Ｋ０〜Ｋ６３のうち他の係数群の場合の群遅延と対応する何れか一の係数が「１」であって他の係数が全て「０」になるように設定されている。これは、出力サンプリング周波数Ｆoutが入力サンプリング周波数Ｆinよりも高い場合には、データＰＤmidの周波数帯域（これは元々の入力データＤinの周波数帯域に等しい）は、全て出力データＤoutの周波数帯域に含めることができる。かかる場合には、フィルタリング処理を行うとかえって出力データＤoutの品質が劣化するため、第２フィルタ１５０の特性をスルーにすることが望ましいためである。なお、この第４の係数群に関しては、それが記憶されていなくても容易に生成可能であるので、必ずしも第２係数メモリに記憶しなくてもよい。あるいは、「Ｆin＜Ｆout」のときに、第４の係数群を生成する代りに第２フィルタ自体をバイパスするようにしてもよい。
【００３１】
2．実施例の動作
2．1．通常動作
次に、本実施例の動作を説明する。ここでは、一例として、入力サンプリング周波数Ｆinが「３０ｋＨｚ」であって出力サンプリング周波数Ｆoutが「５０ｋＨｚ」であった場合の例を説明する。まず、入出力クロックＣＫin，ＣＫoutが変換制御部１８０に供給されると、Ｆin計測部１８１およびＦout計測部１８６において両周波数Ｆin，Ｆoutが計測される。この例においては周波数Ｆin，Ｆoutは何れも「入力グループＧin＝１（６０ｋＨｚ未満）」に属するから、乗数ＭＰ決定部１８５においては乗数ＭＰが「２」に決定される。
【００３２】
また、「Ｆin／Ｆover＝Ｆin／（Ｆout・ＭＰ）＝０．３」であるから、算出値ＣＶもほぼ「０．３」になる。また、変動検出部１９６においては、周波数比の未検出状態から周波数比が検出された場合においても、レート変化信号ＲＣが出力される。この結果、ＦＩＦＯ＆ＰＬＬ回路２００においては、セレクタ２１５を介してほぼ「０．３」の算出値ＣＶがラッチ回路２１６にラッチされ、この値が周波数比信号Deltaとして出力されることになる。これにより、全加算器２１８の一入力端には、クロックＣＫover毎にほぼ「０．３」づつの値が供給される。そして、全加算器２１８の加算結果Ｓ218はクロックＣＫover毎にラッチ回路２２０にラッチされ、そのラッチされた値である位相信号ＰＨは再び全加算器２１８の他入力端に供給される。
【００３３】
これにより、クロックＣＫover毎にほぼ「０．３」づつ累積された累積結果の「小数部」が位相信号ＰＨとしてラッチ回路２２０から出力されるとともに、累積結果において「２0＝１」の位への繰り上がりが生じる毎にシフト信号ＳＨが出力されることになる。また、カウンタ２０２，２０４においてはシフト信号ＳＨおよび入力クロックＣＫin数が循環的にカウントされ、そのカウント結果である読出しアドレスradおよび書込みアドレスwadがＦＩＦＯバッファ２０６に供給されるとともに、減算器２０８を介して両者の差分である差分データＳ208が出力される。
【００３４】
ここで、上記ＦＩＦＯ＆ＰＬＬ回路２００内の各信号の関係を図６を参照し説明する。同図に示すように、入力クロックＣＫinの「１」周期においてクロックＣＫoverが「３」回または「４」回立ち上がる。そして、シフト信号ＳＨはクロックＣＫoverに同期して「３」または「４」周期毎に出力される。ここで、周波数ＦinおよびＦoutがともに安定しており、かつ、周波数比信号Deltaが「Ｆin／Ｆover」に完全に一致していたと仮定すると、シフト信号ＳＨの平均周波数は入力サンプリング周波数Ｆinに一致する。かかる場合には、読出しアドレスradおよび書込みアドレスwadの更新速度の平均値も一致するから、差分データＳ208はある二つ値（図示の例では「３」および「４」）を交互に繰り返すことになる。また、位相信号ＰＨは、クロックＣＫover毎に変化する階段波状の波形を有しているが、その変化点（黒丸印）は、破線で示す鋸歯状波ＰＨ’上の点になる。位相信号ＰＨは、この鋸歯状波ＰＨ’の立下がりタイミングを基準タイミングとして、クロックＣＫoverが発生した時の位相を示す信号になる。
【００３５】
次に、第１フィルタ１３０および第２フィルタ１５０等の動作を図７を参照し説明する。同図(a)は入力データＤinの周波数スペクトルを示す。入力データＤinの入力サンプリング周波数Ｆinは「３０kＨz」であるから、入力データＤinの原信号の周波数スペクトルは「０〜１５kＨz」に抑えられている。そして、原信号が周波数Ｆinでサンプリングされることによって、図示のように「１５〜３０kＨz」のスペクトル成分が発生する。なお、入力データＤinのスペクトル成分は、さらに上の帯域にも存在するが、図上では省略されている。次に、同図(b)は、第１フィルタ１３０により、データＰＤ１の信号帯域を周波数Ｆinの半分の「１５kＨz」以下に帯域制限しつつ、出力クロックＣＫoutに準同期した「周波数Ｆover＝１００kＨz」のクロックＣＫoverでオーバーサンプリングして得られたデータＰＤmidの周波数スペクトルを示す。このデータＰＤmidにおいては、原信号の「０〜１５kＨz」のスペクトル成分に対応して、「８５〜１００kＨz」のスペクトル成分が発生している。
【００３６】
次に、今回の例において第２フィルタ１５０に適用されるフィルタ特性を同図(c)に示す。上述したように、「Ｆin＜Ｆout」である場合は、スルーの特性を有する第４の係数群が第２フィルタ１５０に適用される。このため、同図(d)に示すように、データＰＤ２の周波数スペクトルはデータＰＤmidの周波数スペクトルに一致する。そして、ダウンサンプラ１５８によってデータＰＤ２がダウンサンプリングされると、その結果であるデータＰＤoutにおいては、原信号の「０〜１５kＨz」のスペクトル成分に対応して、「３５〜５０kＨz」のスペクトル成分が発生する。これをシリアルデータに変換した出力データＤoutにおいても、スペクトル成分は同様である。
【００３７】
次に、周波数Ｆin，Ｆoutの他の組み合わせの例として、Ｆin＝「５０kＨz」、Ｆout＝「３４kＨz」を適用した場合のフィルタ１３０，１５０等の動作を図８を参照し説明する。同図(a)は入力データＤinの周波数スペクトルを示す。入力データＤinの原信号の周波数スペクトルは「０〜２５kＨz」に抑えられており、原信号が周波数Ｆinでサンプリングされることによって、図示のように「２５〜５０kＨz」のスペクトル成分が発生する。ここで、周波数Ｆin，Ｆoutは共に「６０kＨz未満」であるから乗数ＭＰは「２」、オーバーサンプリング周波数Ｆoverは「６８kＨz」に設定される。同図(b)は、第１フィルタ１３０により、データＰＤ１の信号帯域を周波数Ｆinの半分の「２５kＨz」以下に帯域制限しつつ、出力クロックＣＫoutに準同期した「周波数Ｆover＝６８kＨz」のクロックＣＫoverでオーバーサンプリングして得られたデータＰＤmidの周波数スペクトルを示す。このデータＰＤmidにおいては、原信号の「０〜２５kＨz」のスペクトル成分に対応して、「４３〜６８kＨz」のスペクトル成分が発生している。
【００３８】
次に、今回の例において第２フィルタ１５０に適用されるフィルタ特性を同図(c)に示す。上述したように、「Ｆin＞Ｆout」である場合は、乗数ＭＰに応じたフィルタ特性が適用される。そして、乗数ＭＰが「２」である場合には、「Ｆover／４〜Ｆover・（３／４）」（今回の例においては１７〜５１kＨz）の帯域をカットするように係数Ｋ０〜Ｋ６３が設定される。従って、データＰＤmidが元々有していた周波数成分のうち、「１７〜２５kＨz」および「４３〜５１kＨz」の部分はカットされ、その結果が同図(d)のデータＰＤ２として出力されることになる。そして、ダウンサンプラ１５８によってデータＰＤ２がダウンサンプリングされると、その結果であるデータＰＤoutにおいては、再現可能な「０〜１７kＨz」のスペクトル成分に対応して、「１７〜３４kＨz」のスペクトル成分が発生する。これをシリアルデータに変換した出力データＤoutにおいても、スペクトル成分は同様である。
【００３９】
なお、周波数Ｆin，Ｆoutが他の組み合わせであった場合には、乗数ＭＰが「４」または「８」に設定されうる。ここで、乗数ＭＰが「４」であった場合には「Ｆover／８〜Ｆover・（７／８）」の帯域をカットするように係数Ｋ０〜Ｋ６３が設定され、乗数ＭＰが「８」であった場合には「Ｆover／１６〜Ｆover・（１５／１６）」の帯域をカットするように係数Ｋ０〜Ｋ６３が設定される。これにより、出力データＤoutにおける折り返し雑音が抑制される。
【００４０】
2．2．周波数Ｆin，Ｆoutに若干の変動が生じた場合の動作
次に、周波数ＦinまたはＦoutに変動が生じた場合の動作を説明する。
図６の例においては、差分データＳ208は「３」または「４」を交互に繰り返している。また、カウンタ２２２のカウント値ＴＣは、サンプリング周波数変換装置が動作を開始した後に比較的早い期間内に「４」以上の値に達する（その理由については後述する）。図９(a)によれば、差分データＳ208が「３」〜「５」であってカウント値ＴＣが「４」以上であれば、微調整テーブル２１０が出力する微調整値Ｓ210は常に「０」であるため、周波数比信号Deltaに変化は生じない。しかし、ここで周波数Ｆinが若干低下し、あるいは周波数Ｆoutが若干上昇したと仮定すると、書込みアドレスwadの変化速度が読出しアドレスradの変化速度よりも相対的に遅くなるため、差分データＳ208が「２」または「１」に低下する。かかる場合、微調整テーブル２１０においては、差分データＳ208の値「２」または「１」に対応して、負値（「−１×２-32」または「−２×２-32」）の微調整値Ｓ210が出力される。
【００４１】
従って、全加算器２１２における加算結果すなわち周波数比信号Deltaは、クロックＣＫoverの「１」周期毎に微調整値Ｓ210相当数づつ小さくなるから、全加算器２１８においてシフト信号ＳＨが発生する頻度が徐々に下がってゆく。これにより、読出しアドレスradの変化速度が徐々に低くなり、やがて読出しアドレスradおよび書込みアドレスwadの変化速度が均衡するようになる。逆に、周波数Ｆinが若干上昇し、または周波数Ｆoutが若干低下した場合においては、差分データＳ208が「６」または「７」に上昇するから、正値（「＋１×２-32」または「＋２×２-32」）の微調整値Ｓ210が出力される。これにより、周波数比信号Deltaが時間の経過とともに大きくなり、読出しアドレスradの変化速度が徐々に高くなり、やがて読出しアドレスradおよび書込みアドレスwadの変化速度が均衡するようになる。
【００４２】
2．3．周波数Ｆin，Ｆoutに急速な変動が生じた場合の動作
また、周波数ＦinまたはＦoutが、微調整テーブル２１０によって調整可能な範囲を外れて急速に変化する場合もありうる。かかる場合には、周波数比算出部１８４において計測される周波数比Ｆin／Ｆoverがジャンプ感度を超え、変動検出部１９６からレート変化信号ＲＣが出力される。この場合には、セレクタ２１５を介して算出値ＣＶが周波数比信号Deltaとしてラッチ回路２１６にラッチされるから、周波数比信号Deltaが略正しい値に直ちに設定されることになる。なお、周波数比算出部１８４から出力される周波数比Ｆin／Ｆoverは、上述したように「１５ビット」幅のデータであるが、実際に出力される周波数比Ｆin／Ｆoverの精度はさらに低くなる。これは、高い精度で周波数比Ｆin／Ｆoverを求めるためにはある程度の観測時間が必要である一方、実際に周波数ＦinまたはＦoutに急速な変動が生じた場合には周波数比信号Deltaを迅速に変更しなければならないからである。
【００４３】
ここで、「周波数ＦinまたはＦoutが急速に変化した場合」には、読出しアドレスradが書込みアドレスwadにほぼ追いついている状態、すなわち差分データＳ208が「１」または「２」である状態と、書込みアドレスwadが読出しアドレスradにほぼ追いついている状態、すなわち差分データＳ208が「６」または「７」である状態との「２」種類が考えられる。そして、両者のうち何れの状態であるかは差分データＳ208のＭＳＢを参照すれば直ちに判明する。本実施例にあっては、この判断結果に応じて算出値ＣＶが決定されるため、上述したように、算出値作成部１９４には差分データＳ208のＭＳＢが供給されるのである。そして、前者の状態においては、読出しアドレスradの更新頻度をやや低めに設定するために、算出値ＣＶの下位「１７ビット」が全て“０”に設定され、後者の状態においては、読出しアドレスradの更新頻度をやや高めに設定するために、算出値ＣＶの下位「１７ビット」が全て“１”に設定されるのである。
【００４４】
また、レート変化信号ＲＣが出力されると、カウンタ２２２のカウント値ＴＣが「０」にリセットされる。ここで図９(a)を参照すると、カウント値ＴＣが「４」〜「７」の範囲と比較して、カウント値ＴＣが「０」〜「３」の範囲においては微調整値Ｓ210の絶対値が大きくなるように、すなわち差分データＳ208に対する微調整値Ｓ210の感度が高くなるように設定されていることが解る。ここで、微調整値Ｓ210の感度と、周波数比信号Deltaとの関係を図１０(a)，(b)を参照し説明しておく。これらの図において、あるタイミングに周波数比Ｆin／Ｆoverの急速な変動が検出され、周波数比信号Deltaがその時点の算出値ＣＶにジャンプしたとする。この算出値ＣＶは、一般的には周波数比信号Deltaの理想値と比較すると若干の差異があるため、その差異を狭めるように微調整値Ｓ210が決定される。但し、あるタイミングで周波数比信号Deltaがその理想値に一致したとしても、その結果が差分データＳ208に反映されるまでにある程度の時間を要するため、その遅れ時間に応じた時間だけ周波数比信号Deltaはオーバーシュートする。結局、周波数比信号Deltaはその理想値を中心にして、ほぼ一定の振幅および周期で振動し続けることになる。
【００４５】
周波数比信号Deltaが算出値ＣＶにジャンプした後、この振動振幅内に収束するまでの時間を「ロック時間」という。図１０(a)，(b)を比較すると、ロック時間は差分データＳ208に対する微調整値Ｓ210の感度を高くするほど短くすることができる。一方、微調整値Ｓ210の感度を高くすると、周波数比信号Deltaの振動振幅が大きくなり、その周期も短くなることが解る。しかし、周波数比信号Deltaの振動振幅が大きい場合、あるいは振動の周期が短い場合には、出力データＤoutの信号品質の劣化が激しくなるという問題が生じる。なお、実験によれば、この振動周期を「１Ｈｚ」程度以下に抑えると、良好な信号品質が得られることが判明している。
【００４６】
周波数比信号Deltaの振動振幅を抑制し、振動周期を長くするためには、図１０(b)に示すように、差分データＳ208に対する微調整値Ｓ210の感度、すなわち同一の差分データＳ208に対する微調整値Ｓ210の絶対値を低下させればよい。しかし、単に微調整値Ｓ210の感度を低下させると、周波数比信号Deltaが僅かづつしか変動しなくなるため、ロック時間が長くなりすぎるという問題が生じる。このように、周波数比信号Deltaの「高い安定性」と「短いロック時間」は相反する要求であり、微調整値Ｓ210の感度を一律に決定したのでは双方の要求を満たすことは困難である。
【００４７】
そこで、本実施例においては、上述したように、カウント値ＴＣに応じて微調整値Ｓ210の感度を切り替えることにしたものである。ここで、本実施例によって得られる周波数比信号Deltaの波形の一例を図１０(c)に示す。まず、周波数比信号Deltaが算出値ＣＶにジャンプすると、カウント値ＴＣが「０」〜「３」の期間（「過渡期」という）においては、感度の高い微調整値Ｓ210が適用されるから、周波数比信号Deltaは比較的急速にその理想値付近の値に接近する。特に、過渡期においては、差分データＳ208が「４」以外の値であるときは、微調整値Ｓ210は必ず「０」以外の値になる。そして、図６から明らかなように、シフト信号ＳＨの「１」周期内で、差分データＳ208が「４」以外の値になる期間は必然的に発生する。従って、過渡期においては、周波数比信号Deltaに常に修正が加えられることになり、これによって応答速度を一層速めることができるのである。
【００４８】
但し、過渡期においては周波数比信号Deltaの振動振幅が大きくなり、その周期も短くなる。かかる振動状態が「４」周期継続した後、カウント値ＴＣが「４」以上になると、感度の低い微調整値Ｓ210が適用される。この期間を「安定期」という。安定期においては、差分データＳ208が「３」〜「５」の範囲であれば、微調整値Ｓ210は「０」になる。これにより、周波数比信号Deltaの振動振幅は抑制され、その振動周期も長くなることが解る。このように、本実施例においては、カウント値ＴＣに応じて、差分データＳ208に対する微調整値Ｓ210の感度が切り替えられるから、周波数比信号Deltaについて「高い安定性」と「短いロック時間」とを共に達成することができるのである。また、微調整値Ｓ210の感度を切り替えるタイミング、すなわち周期パルスＣＰが出力されるタイミングは、周波数比信号Deltaがその直流成分レベルDelta_DCを横切って立ち上がるタイミングに設定されていることも本実施例の特徴の一つである。ＤＣレベル検出器２２６によって得られた直流成分レベルDelta_DCは、周波数比信号Deltaの理想値に非常に近い値になるため、状態が「安定期」に遷移した後は、周波数比信号Deltaはその理想値付近で安定して振動することになる。
【００４９】
また、本実施例においては、算出値ＣＶの精度を高めて、微調整値Ｓ210の感度が高い場合の周波数比信号Deltaの振動振幅内にジャンプできるようにしている。これは、ロック時間を短縮する（実質的にゼロになる）のみならず、周波数比信号Deltaが振動振幅内に入っている場合には周波数比信号Deltaに対するフィードバックによりＦＩＦＯバッファ２０６内に残っているデータ量の調整が適切に行われるためである。実験によれば、微調整値Ｓ210の感度が高い場合の周波数比信号Deltaの振幅は全「３２ビット」中の「１８〜２０ビット」程度であったので、その振動振幅内にジャンプするためには、算出値ＣＶの精度が「１４〜１５ビット」程度必要になる。
【００５０】
現在のカスタムＬＳＩの一般的なシステムクロックは、数十ＭＨｚ〜数百ＭＨｚである。例えばシステムクロックを「１００ＭＨｚ」として周波数「５０ｋＨｚ〜２００kＨz」のサンプリングクロック（ＣＫin，ＣＫout）の周期を測定した場合、その周期の精度は「１０〜１１ビット」程度になり、十分な精度の算出値ＣＶを算出することができない。そこで、本実施例においては、前述した分周回路１９０，１９２によりサンプリングクロックを「６４分周」し、サンプリングクロックの「６４周期」分の時間を測定することにより、サンプリング周波数を「１５〜１６ビット」程度の精度で測定できるようにしている。なお、精度を向上させる方法としては、このように分周回路を用いる方法の他に、システムクロックをより高くする方法も考えられる。また、本実施例においては算出値ＣＶの精度が「１４〜１５ビット」程度必要ということであったが、上述したように、必要な精度は周波数比信号Deltaの微調整値Ｓ210の感度に応じて変化するので、それに応じて算出値ＣＶに求められる精度も変化する。
【００５１】
3．変形例
本発明は上述した実施例に限定されるものではなく、例えば以下のように種々の変形が可能である。
(1)微調整テーブル２１０が出力する微調整値Ｓ210は上記実施例のものに限定されず、入出力クロックＣＫin，ＣＫoutの安定度に応じて適宜変更してもよい。例えば、微調整値Ｓ210として、図９(b)に示すものを採用してもよい。この例においては、微調整値Ｓ210は、カウント値ＴＣ＝「０」〜「２」の第１段階と、ＴＣ＝「３」，「４」の第２段階と、ＴＣ＝「５」以上の第３段階とにおいて異なる値に設定されている。第２段階においては、第１段階よりは安定度が高く、第３段階よりは追従性の高い値が採用されている。この例では、「過渡期（第１，第２段階）」の長さが実施例のものよりも若干長くなるが、過渡期から安定期に、よりスムーズに状態を移行することができる。
【００５２】
(2)また、上記実施例のフィルタ１３０，１５０におけるタップ数（ラッチ回路１３２−０〜１３２−１９およびラッチ回路１５２−０〜１５２−６３の段数）は上述した数に限定されるものではなく、各信号のビット数も上記実施例において例示したビット数に限られるものでもない。これらは必要とされる性能に応じて適宜増減してもよい。また、分周回路１９０，１９２における分周比も「６４」に限定されるものではないことは言うまでもない。
【００５３】
(3)上記実施例においては、カウンタ２０２，２０４のカウント結果を減算することにより差分データＳ208を生成したが、入力クロックＣＫinおよびシフト信号ＳＨをアップおよびダウン信号として入力する、１個のカウンタによって差分データＳ208を生成することもできる。
【００５４】
(4)また、上記実施例において、乗数ＭＰを決定するためのサンプリング周波数のグループ分けの仕方は一例に過ぎないものであり、グループ分けの方法も任意に決定してもよい。例えば、上記実施例ではグループ１とグループ２の境界の周波数Ｆt1は「６０ｋＨｚ」であり、グループ２とグループ３の境界の周波数Ｆt2は「１２０ｋＨｚ」であったが、各境界周波数はこれらに限られるものではない。但し、サンプリング周波数として使われることの多い「４４．１ｋＨｚ」、「８８．２ｋＨｚ」、「１７６．４ｋＨｚ」、「４８ｋＨｚ」、「９６ｋＨｚ」、「１９２ｋＨｚ」の近傍は避けた方が望ましい。例えば、上記実施例と同様に周波数帯域を「３」グループに分割する場合は、周波数Ｆt1を「５５〜８０kＨz」、周波数Ｆt2を「１１０〜１６０kＨz」付近の周波数にするとよい。また、グループ数は「３」に限られるものではなく、周波数帯域を「２」あるいは「４」グループに分けるようにしてもよい。
【００５５】
(5)また、上記実施例においては、入力クロックＣＫinから検出した入力サンプリング周波数Ｆinに基づいて入力グループＧinを決定し、出力クロックＣＫoutから検出した出力サンプリング周波数Ｆoutに基づいて出力グループＧoutを決定し、これら入出力グループＧin，Ｇoutの組み合わせに応じて乗数ＭＰを決定したが、この乗数ＭＰの決定方法も上記実施例のものに限定されるわけではない。
【００５６】
例えば、入力サンプリング周波数Ｆinと出力サンプリング周波数Ｆoutの周波数比を求め、求めた周波数比に基づいて乗数ＭＰを決定してもよい。ここで、周波数比を求める方法としては、入力クロックＣＫinから入力サンプリング周波数Ｆinを検出し、出力クロックＣＫoutから出力サンプリング周波数Ｆoutを検出し、両者を割り算することが考えられる。また、他の方法として、出力クロックＣＫoutがｎ周期発生する間に入力クロックＣＫinが何周期発生するかを計測し、その値から周波数比を求めても良い。逆に、入力クロックＣＫinがｎ周期発生する間に出力クロックＣＫoutが何周期発生するかを計測し、その値から周波数比を求めても良い。このように、サンプリング周波数Ｆin，Ｆoutを直接的に得ることは必ずしも必要ではない。
【００５７】
また、周波数比に基づいて乗数ＭＰを決定する方法としては、例えば入力サンプリング周波数Ｆinが出力サンプリング周波数Ｆoutの「１．２」倍以下であれば乗数ＭＰを「２」とし、「１．２」倍を超えて「２．４」倍以下であれば乗数ＭＰを「４」とし、「２．４」倍を超えていれば乗数ＭＰを「８」とするとよい。この例においては、乗数ＭＰを異なる値にする境界が「１．２」の倍数であるが、必ずしも「１．２」の倍数でなくてもよい。例えば「１〜１．３」倍の範囲の値の倍数としてもよいし、あるいは境界を特定の数字の倍数とせず、例えば「１．２」倍、「２．３」倍、「４．４」倍を境界にしてもよい。
【００５８】
このような変形を行うにあたっては、図２の周波数比算出部１８４の算出した周波数比を乗数ＭＰ決定部１８５に供給し、乗数ＭＰ決定部１８５はその周波数比に基づいて乗数ＭＰを決定するようにするとよい。この変形例および上記実施例の何れにおいても、乗数ＭＰ決定部１８５において、乗数ＭＰは、入力クロックＣＫinの入力サンプリング周波数Ｆinと出力クロックＣＫoutの出力サンプリング周波数Ｆoutの広い意味での周波数比に関連して決定されている。
【００５９】
(6)デジタルレコーダやデジタルミキサ等においては、一つの入力クロックに同期して複数チャンネルの信号を転送することが一般的である。上記実施例においては、入力データＤinが１チャンネルのデータである場合を例として説明したが、入力データＤinを複数チャンネル入力できるようにしてもよい。すなわち、入力データＤinの各サンプリング周期を複数チャンネルに対応する複数時分割チャンネルに分割し、ＦＩＦＯバッファ２０６、第１フィルタ１３０、第２フィルタ１５０の部分を時分割チャンネル動作させるようにするとよい。ここで、入力クロックＣＫin、出力クロックＣＫoutは複数チャンネルについて共通であるため、乗数ＭＰ、位相信号ＰＨ、シフト信号ＳＨ、係数Ｃ０〜Ｃ１９、係数Ｋ０〜Ｋ６３などの各種信号を複数チャンネルで共用することができ、それらの信号を生成する回路は複数チャンネル化する必要はない。
【００６０】
(7)また、上記実施例におけるカウンタ２２２は、レート変化信号ＲＣによってゼロクリアされた後、周波数比信号Deltaの揺らぎ周期をカウントするカウンタであったが、これは必ずしも揺らぎ周期をカウントするカウンタでなくてもよい。例えば、該揺らぎ周期をカウントする代わりにレート変化信号ＲＣ入力後の経過時間をカウントし、周波数比信号Deltaが直流成分レベルDelta_DCとクロスオーバーするタイミング（周期パルスＣＰが発生するタイミング）毎に、そのカウントした経過時間を出力するようなカウンタであってもよい。
【図面の簡単な説明】
【００６１】
【図１】本発明の一実施例のサンプリング周波数変換装置の全体ブロック図である。
【図２】変換制御部１８０の詳細ブロック図である。
【図３】ＦＩＦＯ＆ＰＬＬ回路２００の詳細ブロック図である。
【図４】第１フィルタ１３０の詳細ブロック図である。
【図５】第２フィルタ１５０の詳細ブロック図である。
【図６】一実施例における各部の波形図である。
【図７】一実施例における各部の周波数スペクトルを示す図である。
【図８】一実施例における各部の周波数スペクトルを示す図である。
【図９】微調整テーブル２１０の動作説明図である。
【図１０】一実施例の動作説明図である。
【符号の説明】
【００６２】
１１０：シリアル・パラレル変換器、１２０：第１係数メモリ、１３０：第１フィルタ、１３２−０〜１３２−１９：ラッチ回路、１３４−０〜１３４−１９：乗算器、１３６−１〜１３６−１９：加算器、１４０：第２係数メモリ、１５０：第２フィルタ、１５２−０〜１５２−６３：ラッチ回路、１５４−０〜１５４−６３：乗算器、１５６−１〜１５６−６３：加算器、１５８：ダウンサンプラ、１６０：パラレル・シリアル変換器、１７０：オーバーサンプリングクロック発生器（オーバーサンプリングクロック発生手段）、１８０：変換制御部、１８１：Ｆin計測部、１８２：Ｇin判定部、１８４：周波数比算出部（周波数比検出手段）、１８５：乗数ＭＰ決定部、１８６：Ｆout計測部、１８７：Ｇout判定部、１９０，１９２：分周回路、１９４：算出値作成部（算出手段）、１９６：変動検出部、２００：ＦＩＦＯ＆ＰＬＬ回路、２０２，２０４：カウンタ、２０６：ＦＩＦＯバッファ、２０８：減算器、２１０：微調整テーブル（周波数比信号調節手段）、２１２，２１８：全加算器、２１４：リミット回路、２１５：セレクタ（強制設定手段）、２１６，２２０：ラッチ回路、２２２：カウンタ（感度調節手段）、２２４：周期検出器（交差タイミング検出手段）、２２６：ＤＣレベル検出器（直流成分出力手段）。
【図１】
2005210190.tif 000003
【図２】
2005210190.tif 000004
【図３】
2005210190.tif 000005
【図４】
2005210190.tif 000006
【図５】
2005210190.tif 000007
【図６】
2005210190.tif 000008
【図７】
2005210190.tif 000009
【図８】
2005210190.tif 000010
【図９】
2005210190.tif 000011
【図１０】
2005210190.tif 000012