(57)【要約】【課題】  ＦＩＦＯの読み出し速度の初期設定を行うことなく、残存データ量の振動を十分に小さく抑制することができる非同期信号を提供する。【解決手段】  書き込み制御部３０は、第１の周波数の入力クロックに従い、入力データをＦＩＦＯ１０に書き込む。残存データ量検出部５０は、ＦＩＦＯ１０に格納された読み出し未了の入力データの残存データ量を検出し、ベクトル検出回路５１は、残存データ量の時間的変化を表すベクトルを出力する。ループフィルタ部６０は、残存データ量およびベクトルに基づいて、残存データ量と目標値との間の誤差を修正量に変換し、該修正量に基づいて周波数制御情報を生成する。可変周波数発振部７０は、読み出し許可信号ＲＰを、周波数制御情報に応じた時間密度で生成する。読み出し制御部４０は、読み出し許可信号に伴って読み出しクロックＣＫＲが与えられ、ＦＩＦＯ１０から入力データを読み出す。【選択図】        図１
2005192174.tif 000002
【特許請求の範囲】
【請求項１】
記憶手段と、
第１の周波数の入力クロックに従い、入力データを前記記憶手段に書き込む書き込み制御手段と、
前記記憶手段に格納された読み出し未了の入力データの残存データ量を検出する残存データ量検出手段と、
前記残存データ量の時間的変化を検出するベクトル検出手段と、
前記残存データ量検出手段により検出された残存データ量および前記ベクトル検出手段により検出された残存データ量の時間的変化に基づいて、前記残存データ量と目標値との間の誤差を修正量に変換し、該修正量に基づいて周波数制御情報を生成するループフィルタ部と、
第２の周波数の出力クロックに同期した読み出し信号を、前記周波数制御情報に応じた時間密度で生成する読み出し信号生成手段と、
前記読み出し信号生成手段によって生成された読み出し信号により前記記憶手段から入力データを読み出す読み出し制御手段と
を具備することを特徴とする非同期信号入力装置。
【請求項２】
前記ベクトル検出手段は、所定個数の残存データ量を記憶する残存データ量記憶手段を有し、前記残存データ量検出手段によって検出された残存データ量と前記残存データ量記憶手段に記憶された最新の残存データ量との間に±２の差があるときに前記残存データ量検出手段によって検出された残存データ量を前記残存データ量記憶手段に格納し、前記残存データ量記憶手段に記憶された所定個数の残存データ量に基づき、前記残存データ量の時間的変化を検出することを特徴とする請求項１に記載の非同期信号入力装置。
【請求項３】
請求項１または２に記載の非同期信号入力装置と、
前記出力クロックが発生する毎に補間情報を生成する手段であり、該補間情報を、前記ループフィルタ部から生成される周波数制御情報に基づいて制御する補間情報生成手段と、
前記出力クロックの発生タイミングに対応したデータを、前記読み出し制御手段によって読み出されたデータと前記補間情報生成手段によって生成された補間情報を用いた補間演算により求める補間手段と
を具備することを特徴とするサンプリング周波数変換装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、機器間で非同期信号を確実に受け渡すために使用される非同期信号入力装置、および同装置を使用したサンプリング周波数変換装置に関する。
【背景技術】
【０００２】
ディジタルオーディオ機器等では、３２ｋＨｚ、４４．１ｋＨｚ、４８ｋＨｚ等、様々なサンプリング周波数が使用されている。サンプリング周波数が異なる機器同士をつなぐ場合に、送出側の機器から送出される元信号波形のデータ列を、そのまま受取側機器で読み出すと、出力される信号波形は時間方向に歪んだものとなり、元信号波形は正しく再現されない。そこで、受取側機器では、サンプリング周波数変換装置が使用される。このサンプリング周波数変換装置は、第１のサンプリング周波数の入力データ列を受け取り、この入力データ列に基づき、これと同一の信号波形を描く第２のサンプリング周波数の出力データ列を生成する装置である。
【０００３】
この種のサンプリング周波数変換装置としては、ＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）を使用したものが本出願人によって提案されている（特許文献１参照）。尚、本明細書中では、特許文献１記載の技術を「従来のサンプリング周波数変換装置」と称する。
【０００４】
【特許文献１】特開平１１−５５０７５号公報
【０００５】
従来のサンプリング周波数変換装置において、処理対象である入力データ列は、第１のサンプリング周波数と同一周波数の入力クロックにより、順次、ＦＩＦＯに書き込まれる。一方、サンプリング周波数変換装置では、第２のサンプリング周波数と同一周波数の出力クロックが生成され、この出力クロックに同期して、第２のサンプリング周波数の出力データ列が生成される。ここで、出力データ列は、入力データ列と同一の信号波形を描くものであるが、各々のサンプリング周波数が異なっているため、出力データ列および入力データ列の各々が時間軸上において占める位置（以下、サンプリング点という）は一般的に異なったものとなる。そこで、出力データ列を構成する個々の出力データを求めるために、その出力データのサンプリング点の前後にある所定個数の入力データ（以下、補間用入力データ列という）を用いた補間処理が出力クロックに同期して行われる。この補間処理では、発生すべき出力データのサンプリング点の時間軸上での位置を示す位相情報を求める処理と、この位相情報に対応付けて用意された補間用係数列を補間用入力データ列に畳み込む処理が行われる。位相情報は、出力クロックが発生する度に、ある適正な値の周波数制御情報を累算することにより生成される。この周波数制御情報の累算が繰り返されることにより、その累算結果たる位相情報は順次増加し、位相情報によって示されるサンプリング点が時間軸上を移動する。そして、位相情報によって示されるサンプリング点が、補間用入力データ列における最も新しい入力データのサンプリング点を越すと、出力クロックに同期したタイミングで読み出しクロックが発生され、これにより、ＦＩＦＯに保存されていた入力データ列のうち最も古いものが読み出される。この読み出された入力データは、補間用入力データ列に追加され、補間用入力データ列中の最も古い入力データは廃棄される。このような処理により、入力データ列と同一信号波形を描く出力データ列が得られる。
【０００６】
ここで、入力データ列のＦＩＦＯへの書き込みに用いられる入力クロックの周波数が第１のサンプリング周波数に正確に一致しており、かつ、補間処理のタイミング制御に用いられる出力クロックの周波数が第２のサンプリング周波数に正確に一致している場合には、周波数制御情報として、第１のサンプリング周波数と第２のサンプリング周波数との比に相当する固定値を用いればよい。しかし、入力クロックの周波数精度および出力クロックの周波数精度を如何に厳しくしても、各々を第１および第２のサンプリング周波数に正確に一致させるのには限界がある。このため、例えば入力クロックの周波数が第１のサンプリング周波数よりも高い、あるいは出力クロックの周波数が第２のサンプリング周波数よりも低い、といったことが起こると、ＦＩＦＯ内の残存データ量（読み出し未了の入力データの個数）が時間経過に伴って増大し、やがてＦＩＦＯがオーバフローしてしまう。逆に、入力クロックの周波数が第１のサンプリング周波数よりも低い、あるいは出力クロックの周波数が第２のサンプリング周波数よりも高い、といったことが起こると、ＦＩＦＯ内の残存データ量が時間経過に伴って減少し、やがてＦＩＦＯがアンダーフローしてしまう。
【０００７】
このような問題を解決するため、従来のサンプリング周波数変換装置には、ＦＩＦＯ内の残存データ量に応じて周波数制御情報を増減することにより、ＦＩＦＯのオーバフローおよびアンダーフローを防止する非同期信号入力装置が設けられている。
さらに詳述すると、この非同期信号入力装置では、ＦＩＦＯの残存データ量を目標値と比較し、残存データ量が目標値よりも大きいときには周波数制御情報を増加させることによりＦＩＦＯにおける入力データの読み出し速度を増加させ、残存データ量が目標値よりも小さいときには周波数制御情報を減少させることによりＦＩＦＯにおける入力データの読み出し速度を減少させていた。このように、非同期信号入力装置では、残存データ量、すなわち、ＦＩＦＯに書き込まれる入力データとＦＩＦＯから読み出される入力データとの位相差の時間平均値を適正な値に収束させる、いわばＰＬＬ（Ｐｈａｓｅ  Ｌｏｃｋｅｄ  Ｌｏｏｐ）としての動作が行われ、ＦＩＦＯのオーバフローおよびアンダーフローが防止される。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ところで、従来の非同期信号入力装置では、上述したＰＬＬとしての動作が開始されるとき、ＦＩＦＯの読み出し速度の初期値が適正な値に設定されていないと、ＦＩＦＯの残存データ量が目標値を中心として、ある一定の振幅で振動し続ける、ということが確認されていた。この残存データ量の振動は、読み出し速度の初期値と適正値との誤差が大きくなる程、その振幅が大きくなり、サンプリング周波数変換装置の出力データ波形にノイズやゆらぎを与える原因となる。このような不具合を防止するためには、ＦＩＦＯの読み出し速度の初期値を適正値に極力近づけ、残存データ量の振動の振幅を小さくする必要がある。しかしながら、かかる適正値には個体差があり、あるサンプリング周波数変換装置におけるＦＩＦＯの読み出し速度の適正値が分かったとしても、その適正値が、これと同一機種の別のサンプリング周波数変換装置においても適正値である保証はない。従って、従来のサンプリング周波数変換装置においては、個体毎にＦＩＦＯの読み出し速度の適正値を求め、その適正値に初期設定する必要があるという問題があった。
【０００９】
本発明は上述した事情に鑑みてなされたものであり、ＦＩＦＯの読み出し速度の初期設定を行うことなく、残存データ量の振動を十分に小さく抑制することができる非同期信号入力装置および同装置を使用したサンプリング周波数変換装置を提供することを目的としている。
【課題を解決するための手段】
【００１０】
上述した課題を解決するため、本発明は、記憶手段と、第１の周波数の入力クロックに従い、入力データを前記記憶手段に書き込む書き込み制御手段と、前記記憶手段に格納された読み出し未了の入力データの残存データ量を検出する残存データ量検出手段と、前記残存データ量の時間的変化を検出するベクトル検出手段と、前記残存データ量検出手段により検出された残存データ量および前記ベクトル検出手段により検出された残存データ量の時間的変化に基づいて、前記残存データ量と目標値との間の誤差を修正量に変換し、該修正量に基づいて周波数制御情報を生成するループフィルタ部と、第２の周波数の出力クロックに同期した読み出し信号を、前記周波数制御情報に応じた時間密度で生成する読み出し信号生成手段と、前記読み出し信号生成手段によって生成された読み出し信号により前記記憶手段から入力データを読み出す読み出し制御手段とを具備することを特徴とする非同期信号入力装置を提供する。
かかる発明によれば、記憶手段の残存データ量およびその時間的変化に基づいて修正量の制御が行われ、残存データ量の振動が抑制される。
好ましい態様において、前記ベクトル検出手段は、所定個数の残存データ量を記憶する残存データ量記憶手段を有し、前記残存データ量検出手段によって検出された残存データ量と前記残存データ量記憶手段に記憶された最新の残存データ量との間に±２の差があるときに前記残存データ量検出手段によって検出された残存データ量を前記残存データ量記憶手段に格納し、前記残存データ量記憶手段に記憶された所定個数の残存データ量に基づき、前記残存データ量の時間的変化を検出する。
この態様によれば、収束状態における残存データおよび記憶手段におけるデータの読み出し速度の定常振動の振幅を最小に抑えることができる。
【００１１】
好ましい態様において、この発明は、上記非同期信号入力装置と、前記出力クロックが発生する毎に補間情報を生成する手段であり、該補間情報を、前記ループフィルタ部から生成される周波数制御情報に基づいて制御する補間情報生成手段と、前記出力クロックの発生タイミングに対応したデータを、前記読み出し制御手段によって読み出されたデータと前記補間情報生成手段によって生成された補間情報を用いた補間演算により求める補間手段とを具備することを特徴とするサンプリング周波数変換装置として実施される。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照して、本発明の最良な実施の形態であるサンプリング周波数変換装置について説明する。
【００１３】
図１は、本実施形態に係るサンプリング周波数変換装置の構成を示すブロック図である。
このサンプリング周波数変換装置は、第１のサンプリング周波数ｆ１の入力データＤｉｎの列を受け取り、この入力データＤｉｎの列に基づき、これと同一の信号波形を描く第２のサンプリング周波数ｆ２の出力データＤｏｕｔの列を生成する装置である。このサンプリング周波数変換装置では、出力データ列を生成し、出力するための処理のタイミング制御を行うため、第２のサンプリング周波数ｆ２と同一周波数の出力クロックＣＫｏｕｔが、図示しないクロック発生回路により生成される。
【００１４】
サンプリング周波数変換装置は、大別すると、非同期信号入力装置１００と、補間部２００とにより構成されている。ここで、非同期信号入力装置１００は、３つの機能を有している。第１の機能は、第１のサンプリング周波数ｆ１の入力データ列を受け取って保存し、補間部２００が新たな入力データを必要とするとき、これを出力クロックＣＫｏｕｔに同期したタイミングで補間部２００に供給する機能である。第２の機能は、出力クロックＣＫｏｕｔが発生する毎に、補間部２００において生成すべき出力データのサンプリング点の位相を表す補間比Δｔを更新し、これを補間部２００に供給する機能である。第３の機能は、補間比Δｔの増分である周波数制御情報を制御する機能である。補間部２００は、非同期信号入力装置１００を介して供給される入力データを、過去一定個数だけ、補間用入力データ列として記憶し、出力クロックＣＫｏｕｔの発生タイミングにおいて、その時点における補間比Δｔによって定まる補間用係数列を補間用入力データ列に畳み込み、出力データを生成する手段である。
【００１５】
次に、非同期信号入力装置１００の構成について説明する。
ＦＩＦＯ１０は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などにより構成される先入れ先出し形式のバッファであり、３２ビットの入力データを最大１６個記憶することができる。ＦＩＦＯ１０は、外部の送出側機器から供給される入力データＤｉｎを、一時的に保存し、古いものから順に補間部２００に引き渡す。
書き込み制御部３０は、入力データＤｉｎのサンプリング周波数ｆ１と同一周波数の入力クロックＣｋｉｎに従って、書き込みアドレスおよび書き込みイネーブル信号ＷＥを生成し、ＦＩＦＯ１０に供給する。ＦＩＦＯ１０に供給される入力データＤｉｎは、書き込みイネーブル信号ＷＥにより、ＦＩＦＯ１０内の書き込みアドレスによって指定されるエリアに書き込まれる。
【００１６】
読み出し制御部４０は、読み出しクロックＣＫＲがＡＮＤゲート４１から出力されると、読み出しアドレスおよび読み出しイネーブル信号ＲＥを生成し、ＦＩＦＯ１０へ供給する。ここで、読み出しアドレスは、ＦＩＦＯ１０内に残存している読み出し未了の入力データのうち最も古いものを指定するように制御される。この読み出しアドレスにより指定された入力データは、読み出しイネーブル信号ＲＥによりＦＩＦＯ１０から読み出され、補間部２００に供給される。ＡＮＤゲート４１は、読み出し許可信号ＲＰおよび読み出し要求信号ＲＲが与えられたときに読み出しクロックＣＫＲを出力する。なお、読み出し許可信号ＲＰおよび読み出し要求信号ＲＲについては後述する。
【００１７】
残存データ量検出部５０は、書き込み制御部３０が発生している書き込みアドレスと読み出し制御部４０が発生している読み出しアドレスとの差分、すなわち、現時点においてＦＩＦＯ１０に残存する読み出し未了の入力データの個数である残存データ量ΔＳを検出する回路である。ベクトル検出回路５１は、残存データ量検出部５０から出力される残存データ量ΔＳの時間的変化を検出し、この時間的変化の態様を示すベクトルｄΔＳを出力する回路である。
【００１８】
ベクトル検出回路５１は、３個のポインタＶａｌｉｄ０、Ｖａｌｉｄ１およびＶａｌｉｄ＿ｐｔｒを有している。ポインタＶａｌｉｄ＿ｐｔｒには、現在の残存データ量ΔＳが格納される。このポインタＶａｌｉｄ＿ｐｔｒの値は、下記式（１）に示す更新条件が満たされると、ポインタＶａｌｉｄ０に代入され、それまでのポインタＶａｌｉｄ０の値はポインタＶａｌｉｄ１に代入される。
Ｖａｌｉｄ＿ｐｔｒ＝Ｖａｌｉｄ０±２        ・・・（１）
【００１９】
ポインタＶａｌｉｄ１は、ポインタＶａｌｉｄ０の１つ前の残存データ量である。従って、一般的には、Ｖａｌｉｄ０＞Ｖａｌｉｄ１の関係にあれば、ＦＩＦＯ１０の残存データ量ΔＳは増加中であり、Ｖａｌｉｄ０＜Ｖａｌｉｄ１であれば、ＦＩＦＯ１０の残存データ量ΔＳは減少中であるといえる。しかし、残存データ量ΔＳが増加状態から減少状態に転じたり、減少状態から増加状態に転じたりすることがあり、そのような変化は、ポインタＶａｌｉｄ０およびＶａｌｉｄ１のみから判断することはできない。そこで、本実施形態において、ベクトル検出回路５１は、３個のポインタＶａｌｉｄ０、Ｖａｌｉｄ１およびＶａｌｉｄ＿ｐｔｒを参照し、残存データ量ΔＳの時間的変化の態様を示すベクトルｄΔＳを出力するようにしている。なお、詳細については後述する。
【００２０】
残存データ量検出部５０から出力される残存データ量ΔＳは、ＦＩＦＯ１０内のデータの残存データ量を示すと同時に、入力クロックＣｋｉｎによって最後に書き込まれたデータＤｉｎと、読み出しクロックＣＫＲによって最後に読み出されたデータＤｉｎとの位相差を示している。また、ベクトル検出回路５１から出力されるベクトルｄΔＳは、この位相差の時間的変化を示している。上述した読み出し制御部４０、書き込み制御部３０およびＡＮＤゲート４１と、残存データ量検出部５０と、ベクトル検出回路５１と、ループフィルタ部６０と、可変周波数発振部７０は、この位相差を所定の目標位相差に収束させるＰＬＬ８０を構成している。
【００２１】
ループフィルタ部６０は、変換部６１、第１全加算器６２、第１ラッチ回路６３およびリミタ６４から構成されている。
【００２２】
変換部６１は、図２に示す変換テーブルを記憶しており、この変換テーブルに従い、残存データ量ΔＳとベクトルｄΔＳとを修正量ΔＴに変換する。本実施形態において、ＦＩＦＯ１０における残存データ量の適正値は「８」である。図２に示すように、残存データ量ΔＳが適正値「８」よりも小さく、かつ、残存データ量ΔＳが減少中であることをベクトルｄΔＳが示している場合、変換部６１は、残存データ量ΔＳと適正値との差分に応じた大きさの負の修正量ΔＴを出力する。また、逆に残存データ量ΔＳが適正値「８」よりも大きく、かつ、残存データ量ΔＳが増加中であることをベクトルｄΔＳが示している場合、変換部６１は、残存データ量ΔＳと適正値との差分に応じた大きさの正の修正量ΔＴを出力する。修正量ΔＴの大きさは、残存データ量ΔＳに非線形変換を施した大きさとなる。これに対し、残存データ量ΔＳが適正値「８」以下であり、かつ、残存データ量ΔＳが減少中であることをベクトルｄΔＳが示していない場合および残存データ量ΔＳが適正値「８」以上であり、かつ、残存データ量ΔＳが増加中であることをベクトルｄΔＳが示していない場合（残存データ量に変化がない場合は時間的変化の傾向が変わりつつある場合を含む）には、変換部６１は、値が「０」の修正量ΔＴを出力する。
【００２３】
図３（ａ）〜（ｄ）には、修正量ΔＴが「０」とされる例が示されている。図３（ａ）に示す例では、ポインタＶａｉｌｄ＿ｐｔｒが示す現在の残存データ量ΔＳが適正値「８」以下であり、ポインタＶａｉｌｄ＿ｐｔｒ、Ｖａｌｉｄ１およびＶａｌｉｄ０が示すように、残存データ量ΔＳは適正値「８」に向かって増加中である。従って、修正量ΔＴは「０」とされる。図３（ｂ）に示す例では、ポインタＶａｉｌｄ＿ｐｔｒが示す現在の残存データ量ΔＳが適正値「８」以上であり、ポインタＶａｉｌｄ＿ｐｔｒ、Ｖａｌｉｄ１およびＶａｌｉｄ０が示すように、残存データ量ΔＳは適正値「８」に向かって減少中である。従って、修正量ΔＴは「０」とされる。図３（ｃ）に示すのは、残存データ量ΔＳが減少状態から最小値となり、増加状態に転じた例である。この例では、Ｖａｌｉｄ１およびＶａｌｉｄ０は、Ｖａｌｉｄ０＜Ｖａｌｉｄ１であることから、残存データ量ΔＳが減少中であることを示している。また、Ｖａｉｌｄ＿ｐｔｒ≦８であるから、現在の残存データ量ΔＳは適正値「８」以下である。ポインタＶａｌｉｄ１およびＶａｌｉｄ０だけから判断すると、残存データ量ΔＳは減少中であるように見えるが、Ｖａｉｌｄ＿ｐｔｒ＞Ｖａｌｉｄ０であることから、ベクトル検出回路５１では、残存データ量ΔＳは減少状態から増加状態に切り換わったと判断され、その旨を示すベクトルｄΔＳが出力される。この場合、修正量ΔＴは「０」とされる。図３（ｄ）に示すのは、残存データ量ΔＳが増加状態から最大値となり、減少状態に転じた例である。この例では、Ｖａｌｉｄ１およびＶａｌｉｄ０は、Ｖａｌｉｄ０＞Ｖａｌｉｄ１であることから、残存データ量ΔＳが増加中であることを示している。また、Ｖａｉｌｄ＿ｐｔｒ≧８であるから、現在の残存データ量ΔＳは適正値「８」以上である。ポインタＶａｌｉｄ１およびＶａｌｉｄ０だけから判断すると、残存データ量ΔＳは増加中であるように見えるが、Ｖａｉｌｄ＿ｐｔｒ＜Ｖａｌｉｄ０であることから、ベクトル検出回路５１では、残存データ量ΔＳは増加状態から減少状態に切り換わったと判断され、その旨を示すベクトルｄΔＳが出力される。この場合、修正量ΔＴは「０」とされる。
以上が残存データ量検出部５０、ベクトル検出回路５１および変換部６１によって行われる処理の詳細である。
【００２４】
第１全加算器６２は、修正量ΔＴと第１ラッチ回路６３から供給される値ｙ（ｎ）とに基づき、下記（２）式に示す演算を行う。第１全加算器６２の出力データである下記ｙ（ｎ＋１）は、第１ラッチ回路６３によって、出力クロックＣｋｏｕｔに同期したタイミングでラッチされ、リミタ６４によって、ある上限値以下に制限され、ループフィルタ部６０の出力である周波数制御情報として、可変周波数発振部７０に供給される。
ｙ（ｎ＋１）＝ｙ（ｎ）＋ΔＴ・・・・・（２）
第１ラッチ回路６３は、初期設定が可能な構成となっている。このサンプリング周波数変換装置が動作を開始するとき、第１ラッチ回路６３には、初期値ｙ（０）として所定の値が設定される。
【００２５】
可変周波数発振部７０は、第２全加算器７１と、第２ラッチ回路７２と、第３ラッチ回路７３と、オーバフロー検出部７４とにより構成されている。第２ラッチ回路７２は、出力クロックＣｋｏｕｔに同期して第２全加算器７１の出力データをラッチし、再び第２全加算器７１にフィードバックする。即ち、第２全加算器７１は、ループフィルタ部６０の出力データとして供給される周波数制御情報ｙ（ｎ）を出力クロックＣｋｏｕｔ毎に累算する。第２ラッチ回路７２の出力は、第２全加算器７１にフィードバックされる一方、第３ラッチ回路７３によって、出力クロックＣＫｏｕｔの１クロック周期分だけ遅延され、補間比Δｔとして補間部２００に供給される。
【００２６】
補間比Δｔには、上限値があり、周波数制御情報ｙ（ｔ）の累算の結果がこの上限値を越える場合には、その超過分が新たな補間比Δｔとなる。オーバフロー検出部７４は、第２ラッチ回路７２から出力される補間比Δｔが低下したとき、すなわち、周波数制御情報ｙ（ｔ）の累算の結果が上限値を越えて、その超過分が新たな補間比Δｔとなったと認められるとき、上述した読み出し許可信号ＲＰを出力する。この読み出し許可信号ＲＰは、オーバフロー後の補間値Δｔが第３ラッチ回路７３から補間部２００に供給されるときに、オーバフロー検出部７４からＡＮＤゲート４１および補間部２００に送られる。
【００２７】
補間部２００は、補間用入力データ列を格納するシフトレジスタを有している。補間部２００は、第３ラッチ回路７３から供給される補間比Δｔに応じた補間用係数列をこのシフトレジスタの各段の出力データに畳み込み、この畳み込み演算結果を出力データＤｏｕｔとして、出力クロックＣＫｏｕｔに同期したタイミングで出力する。また、補間部２００は、データ読み出し許可信号ＲＰを受け取った場合には、出力クロックＣＫｏｕｔに同期したタイミングで読み出し要求信号ＲＲを出力する。この読み出し要求信号ＲＲが出力されると、そのとき読み出し許可信号ＲＰが出力されているため、ＡＮＤゲート４１から読み出し制御部４０に読み出しクロックＣＫＲが送られる。読み出し制御部４０は、読み出しアドレスを「１」だけ増加させて、読み出しイネーブル信号ＲＥを出力する。この結果、ＦＩＦＯ１０における読み出し未了のデータのうち最も古いものが読み出され、補間部２００に供給される。補間部２００では、このようにしてＦＩＦＯ１０から供給されるデータがシフトレジスタの初段に書き込まれ、シフトレジスタ内の既存のデータは順次後段にシフトされ、最終段のデータは廃棄される。
【００２８】
図４は、本実施形態に係る非同期信号入力装置の動作を示すタイミングチャートである。信号波形のサンプルである入力データＤｉｎは、既に述べたように、サンプリング周波数ｆ１と同一周波数の入力クロックＣｋｉｎに同期し、ＦＩＦＯ１０に供給される。ここで、ＦＩＦＯ１０は、１６個のアドレス「Ａ１」〜「Ａ１６」に対応した各エリアを持っている。書き込み制御部３０は、入力クロックＣｋｉｎが発生する毎に、書き込みイネーブル信号ＷＥをＦＩＦＯ１０に供給するとともに、その際にＦＩＦＯ１０に与える書き込みアドレスを順次「Ａ１」、「Ａ２」、〜「Ａ１６」、「Ａ１」、〜という具合に巡回的に変化させる。このようにして、ＦＩＦＯ１０内のアドレス「Ａ１」〜「Ａ１６」に対応した各エリアが巡回的に書き込み先として指定され、入力データＤｉｎが順次書き込まれる。図４では、ＦＩＦＯ１０におけるアドレス「Ａｘ」（ｘ＝１〜１６）に書き込まれた入力データＤｉｎがＤｉｎ（Ａｘ）と表記されている。
【００２９】
読み出し制御部４０は、読み出しクロックＣＫＲがＡＮＤゲート４１から与えられる毎に、読み出しイネーブル信号ＲＥおよび読み出しアドレスをＦＩＦＯ１０に供給する。その際、読み出し制御部４０は、読み出しイネーブル信号とともに供給する読み出しアドレスを「Ａ１」、「Ａ２」〜「Ａ１６」、「Ａ１」、〜という具合に巡回的に変化させる。
残存データ量検出部５０は、ＦＩＦＯ１０に対する書き込みアドレスと読み出しアドレスの差分を残存データ量ΔＳとして出力する。このΔＳは、ＦＩＦＯ１０内の残存データ量を表すとともに、ＦＩＦＯ１０に書き込まれるデータＤｉｎとＦＩＦＯ１０から読み出されるデータＤｉｎとの位相差を表している。ベクトル検出回路５１は、この残存データ量ΔＳの時間的変化の態様を示すベクトルｄΔＳを出力する。変換部６１は、残存データ量ΔＳとベクトルｄΔＳに基づいて修正量ΔＴを生成する。ループフィルタ部６０における第１全加算器６２以降の回路は、このようにして変換部６１から順次出力される修正量ΔＴを時間軸上において均し、周波数制御情報ｙ（ｎ）として出力する。
【００３０】
可変周波数発振部７０は、出力クロックＣＫｏｕｔが与えられる毎に、周波数制御情報ｙ（ｎ）の累算を行い、補間比Δｔを算出する。この累算の過程において補間比Δｔがオーバフローする毎に、読み出し許可信号ＲＰが発生し、これに伴って読み出しクロックＣＫＲが発生する。読み出しクロックＣＫＲが発生する時間密度は、周波数制御情報ｙ（ｎ）に依存し、周波数制御情報ｙ（ｎ）が大きければ読み出しクロックＣＫＲの時間密度は大きくなり、逆に周波数制御情報ｙ（ｎ）が小さければ読み出しクロックＣＫＲの時間密度は小さくなる。この読み出しクロックＣＫＲの時間密度の変化は、ＦＩＦＯ１０における残存データ量ΔＳに反映される。すなわち、読み出しクロックＣＫＲの時間密度が増加すると、残存データ量ΔＳは減少し、時間密度が減少すると、残存データ量ΔＳは増加する。そして、ＰＬＬ８０では、この残存データ量ΔＳとその時間的変化の態様を示すベクトルｄΔＳに基づき、残存データ量ΔＳを適正値に収束させる帰還制御が行われる。この帰還制御が行われる結果、読み出しクロックＣＫＲは、第２のサンプリング周波数ｆ２と同一周波数の出力クロックＣＫｏｕｔに同期して発生されるものの、その時間密度は、第１のサンプリング周波数ｆ１相当のものに収束する。
【００３１】
図４に示す例においては、時刻ｔ１、ｔ２、ｔ３、ｔ４，ｔ５において出力クロックＣＫｏｕｔが発生している。そして、時刻ｔ１、ｔ２、ｔ３、ｔ５では、出力クロックＣＫｏｕｔに同期して読み出しクロックＣＫＲが発生するが、時刻ｔ４では読み出しクロックＣＫＲが発生しない。このように、本実施形態では、個々の出力クロックＣＫｏｕｔを所々間引いた態様で、第１のサンプリング周波数ｆ１相当の時間密度の読み出しクロックＣＫＲが発生されるのである。このようにして発生される読み出しクロックＣＫＲにより、ＦＩＦＯ１０内の入力データＤｉｎが古いものから順に読み出され、補間部２００に供給される。補間部２００では、このようにして供給される過去所定個数のデータに、補間比Δｔに応じた補間係数列が畳み込まれ、その結果得られる出力データＤｏｕｔが、第２のサンプリング周波数ｆ２の出力クロックＣＫｏｕｔに同期して出力される。
【００３２】
本実施形態の第１の特徴は、以上説明した動作において、周波数制御情報ｙ（ｎ）を変化させる修正量ΔＴを生成するに当たり、残存データ量ΔＳだけでなく、その時間的変化の態様を示すベクトルｄΔＳをも考慮に入れた点にある。図５（ａ）は、従来における修正量ΔＴの制御、すなわち、ベクトルｄΔＳを考慮に入れず、残存データ量ΔＳが適正値より大きい場合には残存データ量ΔＳと適正値との差分に応じた大きさの正の修正量ΔＴを発生し、残存データ量ΔＳが適正値より小さい場合には残存データ量ΔＳと適正値との差分に応じた大きさの負の修正量ΔＴを発生する制御を行った場合のＦＩＦＯ１０の残存データ量ΔＳと読み出し速度（読み出しクロックＣＫＲの時間密度）ＦＲを示している。これに対し、図５（ｂ）は、本実施形態における修正量ΔＴの制御、すなわち、残存データ量ΔＳおよびベクトルｄΔＳの両方に基づいて修正量ΔＴを発生する制御を行った場合のＦＩＦＯ１０の残存データ量ΔＳと読み出し速度ＦＲを示している。以下、図５（ａ）および（ｂ）を参照し、本実施形態の効果を説明する。
【００３３】
図５（ａ）に示す例では、読み出し速度ＦＲを適正値（すなわち、第１のサンプリング周波数ｆ１相当の速度）から所定量ΔＦＲだけ低い値にする初期値が第１ラッチ回路６３に設定された後、サンプリング周波数変換装置が動作を開始している。動作開始直後は、ＦＩＦＯ１０の読み出し速度ＦＲは書き込み速度よりも低いので、ＦＩＦＯ１０の残存データ量ΔＳは増加してゆく。そして、残存データ量ΔＳが適正値「８」より大きい間は、残存データ量ΔＳと適正値「８」との差分に応じた正の修正量ΔＴが発生されるため、周波数制御情報ｙ（ｎ）が増加し、読み出し速度ＦＲが増加する。
【００３４】
残存データ量ΔＳは、この読み出し速度ＦＲの変化に対して遅れて変化し、読み出し速度ＦＲが適正値（ｆ１）となる付近において、最大値に到達し、そこから減少に転じる（時刻ｔ１０ａ）。しかし、このとき残存データ量ΔＳは、適正値「８」より大きいので、依然として正の修正量ΔＴが発生される。このため、読み出し速度ＦＲは、増加し続け、残存データ量ΔＳが適正値「８」に到達する付近において最大値となる（時刻ｔ１１ａ）。これは、ＦＩＦＯ１０の残存データ量ΔＳが適正値のときに修正量ΔＴが±０とされるからである。このとき、読み出し速度ＦＲ＞書き込み速度（ｆ１）の関係にあるので、ＦＩＦＯ１０の残存データ量ΔＳは減少し続ける。そして、残存データ量ΔＳが適正値「８」より小さい間は、残存データ量ΔＳと適正値「８」との差分に応じた負の修正量ΔＴが発生されるため、周波数制御情報ｙ（ｎ）が減少し、読み出し速度ＦＲが減少する。
【００３５】
残存データ量ΔＳは、この読み出し速度ＦＲの変化に対して遅れて変化し、読み出し速度ＦＲが適正値（ｆ１）となる付近において、最小値に到達し、そこから増加に転じる（時刻ｔ１２ａ）。しかし、このとき残存データ量ΔＳは、適正値「８」より小さいので、依然として負の修正量ΔＴが発生される。このため、読み出し速度ＦＲは、減少し続け、残存データ量ΔＳが適正値「８」に到達する付近において最小値となる（時刻ｔ１３ａ）。これは、既に述べたように、ＦＩＦＯ１０の残存データ量ΔＳが適正値のときに修正量ΔＴが±０とされるからである。その後、読み出し速度ＦＲ＜書き込み速度（ｆ１）の関係にあるので、ＦＩＦＯ１０の残存データ量ΔＳは増加し続ける。これ以降、残存データ量ΔＳおよび読み出し速度ＦＲは、各々ある一定の振幅で増減を周期的に繰り返す。この振幅は、読み出し速度ＦＲの初期値に依存することが確認されている。従って、従来技術の下では、残存データ量ΔＳおよび読み出し速度ＦＲの振幅を軽減するために、読み出し速度ＦＲの初期値を極力適正値に近づける必要があった。
【００３６】
これに対し、本実施形態では、以下説明するように、残存データ量ΔＳおよびベクトルｄΔＳの両方に基づいて修正量ΔＴを発生する制御が行われ、この問題が改善される。図５（ｂ）に示す例では、図５（ａ）と同様、読み出し速度ＦＲを適正値（ｆ１）から所定量ΔＦＲだけ低い値にする初期値が第１ラッチ回路６３に設定された後、サンプリング周波数変換装置が動作を開始している。動作開始直後は、ＦＩＦＯ１０の読み出し速度ＦＲは書き込み速度よりも低いので、ＦＩＦＯ１０の残存データ量ΔＳは増加してゆく。そして、残存データ量ΔＳが適正値「８」より大きく、かつ、残存データ量ΔＳが増加中であることをベクトルｄΔＳが示している間は、残存データ量ΔＳと適正値「８」との差分に応じた正の修正量ΔＴが発生されるため、周波数制御情報ｙ（ｎ）が増加し、読み出し速度ＦＲが増加する。
【００３７】
残存データ量ΔＳは、この読み出し速度ＦＲの変化に対して遅れて変化する。ところが、残存データ量ΔＳは、読み出し速度ＦＲが適正値（ｆ１）となる付近において、最大値に到達し、そこから減少に転じる（時刻ｔ１０ｂ）。このため、ベクトルｄΔＳは残存データ量ΔＳが増加中であることを示さなくなり、修正量ΔＴは「０」とされる。この結果、読み出し速度ＦＲの増加は停止する。以後、残存データ量ΔＳが適正値以上であり、かつ、残存データ量ΔＳが増加中であることをベクトルｄΔＳが示さない間は、修正量ΔＴは「０」とされ、読み出し速度ＦＲは変化しない。この間、読み出し速度ＦＲ＞書き込み速度（ｆ１）の関係にあるので、ＦＩＦＯ１０の残存データ量ΔＳは減少し続ける。そして、残存データ量ΔＳが適正値「８」よりも減少すると（時刻ｔ１１ｂ）、残存データ量ΔＳが適正値「８」より小さく、かつ、残存データ量ΔＳが減少中であることをベクトルｄΔＳが示している間、残存データ量ΔＳと適正値「８」との差分に応じた負の修正量ΔＴが発生される。このため、周波数制御情報ｙ（ｎ）が減少し、読み出し速度ＦＲが減少する。
【００３８】
残存データ量ΔＳは、この読み出し速度ＦＲの変化に対して遅れて変化し、読み出し速度ＦＲが適正値（ｆ１）となる付近において、最小値に到達し、そこから増加に転じる（時刻ｔ１２ｂ）。このとき残存データ量ΔＳは、適正値「８」より小さいが、ベクトルｄΔＳは、もはや残存データ量ΔＳが減少中であることを示していないので、修正量ΔＴは「０」とされる。この結果、読み出し速度ＦＲの減少は停止する。以後、残存データ量ΔＳが適正値以下であり、かつ、残存データ量ΔＳが減少中であることをベクトルｄΔＳが示さない間は、修正量ΔＴは「０」とされ、読み出し速度ＦＲは変化しない。この間、読み出し速度ＦＲ＜書き込み速度（ｆ１）の関係にあるので、ＦＩＦＯ１０の残存データ量ΔＳは増加し続ける。そして、残存データ量ΔＳが適正値「８」よりも増加すると（時刻ｔ１３ｂ）、残存データ量ΔＳが適正値「８」より大きく、かつ、残存データ量ΔＳが増加中であることをベクトルｄΔＳが示している間、残存データ量ΔＳと適正値「８」との差分に応じた正の修正量ΔＴが発生される。このため、周波数制御情報ｙ（ｎ）が増加し、読み出し速度ＦＲが増加する。これ以降、残存データ量ΔＳおよび読み出し速度ＦＲは、増減を周期的に繰り返すが、その際の振幅は次第に減衰してゆく。
【００３９】
これは、残存データ量ΔＳが適正値以上であっても、残存データ量ΔＳが増加中である期間しか残存データ量ΔＳの増加を抑制する正の修正量ΔＴが発生されず、残存データ量ΔＳが適正値以下であっても、残存データ量ΔＳが減少中である期間しか残存データ量ΔＳの減少を抑制する負の修正量ΔＴが発生されず、残存データ量ΔＳおよび読み出し速度ＦＲの振動を助長する余分な修正量ΔＴが発生されないからである。
以上が本実施形態の第１の特徴の詳細である。
【００４０】
本実施形態の第２の特徴は、ベクトル検出回路５１においてポインタＶａｌｉｄ０およびＶａｌｉｄ１の更新条件として上記式（１）を採用している点である。以下、上記式（１）を採用していることによってもたらされる効果について説明する。まず、ＦＩＦＯ１０の読み出し速度ＦＲの制御の安定化の観点からは、残存データ量ΔＳの増加および減少を検出するための閾値を小さくし、残存データ量ΔＳの僅かな変化を捉えて、残存データ量ΔＳの時間的変化を判定することが望まれる。何故ならば、かかる閾値を小さくすれば、ＦＩＦＯ１０の読み出し速度ＦＲが収束した減衰域において残存データ量ΔＳの振幅を小さく抑えることができるからである。しかし、残存データ量ΔＳは、０，１，２，３，〜といった整数値しか取り得ない。そこで、残存データ量ΔＳの変化を検出するための閾値として、最小の整数である１を採用し、更新条件を下記式（３）とすることが考えられる。
Ｖａｌｉｄ＿ｐｔｒ＝Ｖａｌｉｄ０±１      ・・・（３）
【００４１】
しかし、残存データ量ΔＳは定常状態においても±１の振幅で振動している。従って、このような更新条件を採用した場合、定常的な振動が発生しているに過ぎないのに、残存データ量ΔＳの増加と減少が交互に発生していると判断され、実際の残存データΔＳの時間的変化とは程遠いベクトルが得られることとなる。そこで、本実施形態では、１の次に小さい整数である２を閾値とし、上記式（１）の更新条件を採用しているのである。
【００４２】
閾値を２より大きくすると、１にする場合とは別の不都合が生じる。図６は、式（１）の更新条件を採用した場合と下記の式（４）の更新条件を採用した場合について、ＦＩＦＯ１０の読み出し速度ＦＲと残存データ量ΔＳの収束限界を例示している。
Ｖａｌｉｄ＿ｐｔｒ＝Ｖａｌｉｄ０±３      ・・・（４）
図６に示す例において、式（４）の更新条件を採用した場合、Ａ点においてＦＩＦＯ１０の残存データ量ΔＳの変化が±２の幅の中に収まると、それ以降、ベクトル検出回路５１がポインタの更新をしなくなるため、残存データ量ΔＳおよび読み出し速度ＦＲをこれ以上適正値に収束させることができなくなる。しかし、式（１）の更新条件を採用した場合には、Ａ点以降においても、ベクトル検出回路５１によるポインタの更新が行われるため、残存データ量ΔＳおよび読み出し速度ＦＲをさらに適正値に収束させることができる。すなわち、更新条件として式（４）を採用するよりも式（１）を採用した方が、残存データ量ΔＳおよび読み出し速度ＦＲの収束限界がＡ点からＢ点まで延長され、より適正値に収束させることができるのである。
【００４３】
以上のように、本実施形態によれば、残存データ量ΔＳおよびその時間的変化を表すベクトルｄΔＳに基づいて、残存データ量ΔＳおよび読み出し速度ＦＲの振動の抑制に役立つ期間のみ、振動の抑制のための修正量ΔＴが発生されるので、残存データ量ΔＳおよび読み出し速度ＦＲの振動の振幅を減衰させることができ、出力データ波形の歪みを防止することができる。また、本実施形態によれば、残存データ量ΔＳに±２の変化があることをベクトルｄΔＳの更新の条件としているので、収束状態における残存データ量ΔＳおよび読み出し速度ＦＲの定常信号の振幅を最小に抑えることができる。
【００４４】
なお、以上説明した実施形態では、ベクトル検出回路５１は、３個のポインタを用いて、残存データ量ΔＳの時間的変化の態様として、増加中、減少中、増加から減少への転換、減少から増加への転換の４態様を検出した。しかし、ベクトル検出回路５１に２個のポインタのみを設け、増加中、減少中の２態様のみを検出し、変換部６１において次のような修正量ΔＴの制御を行うようにしてもよい。
ａ．ΔＳが適正値より大きく、かつ、増加中の場合は正の修正量ΔＴを発生する。
ｂ．ΔＳが適正値以上であり、かつ、減少中の場合は修正量ΔＴを「０」にする。
ｃ．ΔＳが適正値より小さく、かつ、減少中の場合は負の修正量ΔＴを発生する。
ｄ．ΔＳが適正値以下であり、かつ、増加中の場合は修正量ΔＴを「０」にする。
【図面の簡単な説明】
【００４５】
【図１】本発明の実施形態に係るサンプリング周波数変換装置の構成を示すブロック図である。
【図２】同装置における変換テーブルを示す図である。
【図３】同装置において修正量ΔＴが「０」とされる例を示す図である。
【図４】同装置の動作を示すタイミングチャートである。
【図５】同装置におけるＦＩＦＯの残存データ量ΔＳおよび読み出し速度ＦＲの時間的変化を示す図である。
【図６】同装置におけるベクトルの更新条件とＦＩＦＯの残存データ量ΔＳおよび読み出し速度ＦＲの収束限界の関係を示す図である。
【符号の説明】
【００４６】
１０…ＦＩＦＯ、２００…補間部、３０…書き込み制御部、４０…読み出し制御部、５０・・・残存データ量検出部、５１…ベクトル検出回路、６０…ループフィルタ部、６１…変換部、６２…第１全加算器、６３…第１ラッチ回路、６４…リミタ、７０…可変周波数発振部、７１…第２全加算器、７２…第２ラッチ回路、７３…第３ラッチ回路、７４…オーバフロー検出部、８０…ＰＬＬ（位相同期ループ）。
【図１】
2005192174.tif 000003
【図２】
2005192174.tif 000004
【図３】
2005192174.tif 000005
【図４】
2005192174.tif 000006
【図５】
2005192174.tif 000007
【図６】
2005192174.tif 000008