(57)【特許請求の範囲】
【請求項１】
前段の装置から供給される第１のサンプリング周波数のデータを第２のサンプリング周波数のデータに変換して後段の装置に出力するサンプリング周波数変換装置において、
前段の装置から第１のサンプリング周波数のデータを順次取り込んで補間演算用入力データ列として記憶し、前記補間演算用入力データ列を用いた補間演算により第２のサンプリング周波数のデータを生成して出力する補間手段と、
前記補間手段から出力される第２のサンプリング周波数のデータを記憶し、記憶したデータを古いものから順に読み出して出力する先入れ先出し方式の記憶手段と、
前記記憶手段に記憶された読み出し未了のデータの残存データ量を検出する残存データ量検出手段と、
前記第２のサンプリング周波数のデータを前記補間手段に出力させ、前記記憶手段に記憶させるための制御信号を周波数制御情報に応じた時間密度で発生する可変周波数発振手段と、
前記残存データ量検出手段により検出される残存データ量が適正値となるように、前記可変周波数発振手段に与える周波数制御情報の増減を行なう周波数制御手段と、
第２のサンプリング周波数のデータの出力を要求するクロックの周波数測定を行い、第２のサンプリング周波数を求める周波数測定手段と、
前記周波数測定手段により求められた第２のサンプリング周波数に適した周波数制御情報を生成する周波数制御情報生成手段と、
前記周波数制御情報生成手段により生成された周波数制御情報と前記可変周波数発振手段に与えられている周波数制御情報との間に所定の限度を越える差がない場合に、前記可変周波数発振手段において制御信号を発生させる時間密度の元となる周波数制御情報として、前記周波数制御手段において増減された周波数制御情報を前記可変周波数発振手段に供給し、前記周波数制御情報生成手段により生成された周波数制御情報と前記可変周波数発振手段に与えられている周波数制御情報との間に所定の限度を越える差がある場合に、前記可変周波数発振手段において制御信号を発生させる時間密度の元となる周波数制御情報として、前記周波数制御手段において増減された周波数制御情報に代えて、前記周波数制御情報生成手段により生成された第２のサンプリング周波数に適した周波数制御情報を前記可変周波数発振手段に供給する周波数制御情報適正化手段と
を具備することを特徴とするサンプリング周波数変換装置。
【請求項２】
前段の装置から供給される第１のサンプリング周波数のデータを第２のサンプリング周波数のデータに変換して後段の装置に出力するサンプリング周波数変換装置において、
前段の装置から第１のサンプリング周波数のデータを順次取り込んで記憶し、記憶したデータを古いものから順に読み出して出力する先入れ先出し方式の記憶手段と、
前記記憶手段から出力されるデータを順次取り込んで補間演算用入力データ列として記憶し、前記補間演算用入力データ列を用いた補間演算により第２のサンプリング周波数のデータを生成して出力する補間手段と、
前記記憶手段に記憶された読み出し未了のデータの残存データ量を検出する残存データ量検出手段と、
前記記憶手段からデータを出力させて前記補間手段に与え、前記第２のサンプリング周波数のデータを前記補間手段に出力させるための制御信号を周波数制御情報に応じた時間密度で発生する可変周波数発振手段と、
前記残存データ量検出手段により検出される残存データ量が適正値となるように、前記可変周波数発振手段に与える周波数制御情報の増減を行なう周波数制御手段と、
第１のサンプリング周波数のデータの入力を要求するクロックの周波数測定を行い、第１のサンプリング周波数を求める周波数測定手段と、
前記周波数測定手段により求められた第１のサンプリング周波数に適した周波数制御情報を生成する周波数制御情報生成手段と、
前記周波数制御情報生成手段により生成された周波数制御情報と前記可変周波数発振手段に与えられている周波数制御情報との間に所定の限度を越える差がない場合に、前記可変周波数発振手段において制御信号を発生させる時間密度の元となる周波数制御情報として、前記周波数制御手段において増減された周波数制御情報を前記可変周波数発振手段に供給し、前記周波数制御情報生成手段により生成された周波数制御情報と前記可変周波数発振手段に与えられている周波数制御情報との間に所定の限度を越える差がある場合に、前記可変周波数発振手段において制御信号を発生させる時間密度の元となる周波数制御情報として、前記周波数制御手段において増減された周波数制御情報に代えて、前記周波数制御情報生成手段により生成された第１のサンプリング周波数に適した周波数制御情報を前記可変周波数発振手段に供給する周波数制御情報適正化手段と
を具備することを特徴とするサンプリング周波数変換装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、デジタルオーディオ機器等に好適なサンプリング周波数変換装置に関する。
【背景技術】
【０００２】
デジタルオーディオ等の分野では、様々なサンプリング周波数に対応した装置が提供されているため、サンプリング周波数の異なる装置同士が接続される場合も多い。そのような場合、前段の装置から後段の装置に供給されるデータのサンプリング周波数を後段の装置のサンプリング周波数に合わせるサンプリング周波数変換装置が両装置間に設けられる。この場合において、前段の装置と後段の装置は各々独立したクロックに同期して動作する。このため、一般的にサンプリング周波数変換装置には、サンプリング周波数変換前のデータの一時記憶またはサンプリング周波数変換後のデータの一時記憶を行うためのＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ  Ｆｉｒｓｔ−Ｏｕｔ；先入れ先出し方式のバッファ）が設けられ、前段および後段の装置間のデータ伝送はこのＦＩＦＯを介して行われる。また、サンプリング周波数変換装置では、ＦＩＦＯ内の読み出し未了の残存データ量が監視され、残存データ量が適正値を維持するように、残存データ量の変動に応じて、ＦＩＦＯにおけるデータ出力速度またはデータ入力速度を増減するＰＬＬ（Ｐｈａｓｅ  Ｌｏｃｋｅｄ  Ｌｏｏｐ）制御が行われる。このサンプリング周波数変換装置によれば、前段の装置のデータの送信速度または後段の装置のデータの受信速度に微妙な変動があったとしても、その変動をＰＬＬ制御により吸収し、ＦＩＦＯのオーバフローあるいはアンダフローを発生させることなくサンプリング周波数変換を行うことができる。なお、この種のサンプリング周波数変換装置は、例えば特許文献１に開示されている。
【特許文献１】特開２００５−１９２７１４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、デジタルオーディオ等では、前段の装置および後段の装置間でデータの伝送が行われている期間に、前段の装置が後段の装置に供給するデータのサンプリング周波数を変更し、あるいは後段の装置が前段の装置から受け取るデータのサンプリング周波数を変更する必要が生じる場合がある。しかしながら、上述した従来のサンプリング周波数変換装置は、このようなサンプリング周波数の変更が行われた場合、その変更の程度によっては、上述したＰＬＬ制御がサンプリング周波数の変更に追従することができず、ＦＩＦＯのオーバフローまたはアンダフローを引き起こす場合があるという問題があった。
【０００４】
この発明は上述した事情に鑑みてなされたものであり、前段の装置が後段の装置に供給するデータのサンプリング周波数を変更し、あるいは後段の装置が前段の装置から受け取るデータのサンプリング周波数を変更する場合であっても、ＦＩＦＯのオーバフローまたはアンダフローを発生させることなく安定したサンプリング周波数変換を行うことができるサンプリング周波数変換装置を提供することを目的としている。
【課題を解決するための手段】
【０００５】
この発明は、前段の装置から供給される第１のサンプリング周波数のデータを第２のサンプリング周波数のデータに変換して後段の装置に出力するサンプリング周波数変換装置において、前段の装置から第１のサンプリング周波数のデータを順次取り込んで補間演算用入力データ列として記憶し、前記補間演算用入力データ列を用いた補間演算により第２のサンプリング周波数のデータを生成して出力する補間手段と、前記補間手段から出力される第２のサンプリング周波数のデータを記憶し、記憶したデータを古いものから順に読み出して出力する先入れ先出し方式の記憶手段と、前記記憶手段に記憶された読み出し未了のデータの残存データ量を検出する残存データ量検出手段と、前記第２のサンプリング周波数のデータを前記補間手段に出力させ、前記記憶手段に記憶させるための制御信号を周波数制御情報に応じた時間密度で発生する可変周波数発振手段と、前記残存データ量検出手段により検出される残存データ量が適正値となるように、前記可変周波数発振手段に与える周波数制御情報の増減を行なう周波数制御手段と、第２のサンプリング周波数のデータの出力を要求するクロックの周波数測定を行い、第２のサンプリング周波数を求める周波数測定手段と、前記周波数測定手段により求められた第２のサンプリング周波数に適した周波数制御情報を生成する周波数制御情報生成手段と、前記周波数制御情報生成手段により生成された周波数制御情報と前記可変周波数発振手段に与えられている周波数制御情報との間に所定の限度を越える差がある場合に、前記可変周波数発振手段に与えられる周波数制御情報を前記周波数制御情報生成手段により生成された周波数制御情報に置き換える周波数制御情報適正化手段とを具備することを特徴とするサンプリング周波数変換装置を提供する。
また、この発明は、前段の装置から供給される第１のサンプリング周波数のデータを第２のサンプリング周波数のデータに変換して後段の装置に出力するサンプリング周波数変換装置において、前段の装置から第１のサンプリング周波数のデータを順次取り込んで記憶し、記憶したデータを古いものから順に読み出して出力する先入れ先出し方式の記憶手段と、前記記憶手段から出力されるデータを順次取り込んで補間演算用入力データ列として記憶し、前記補間演算用入力データ列を用いた補間演算により第２のサンプリング周波数のデータを生成して出力する補間手段と、前記記憶手段に記憶された読み出し未了のデータの残存データ量を検出する残存データ量検出手段と、前記記憶手段からデータを出力させて前記補間手段に与え、前記第２のサンプリング周波数のデータを前記補間手段に出力させるための制御信号を周波数制御情報に応じた時間密度で発生する可変周波数発振手段と、前記残存データ量検出手段により検出される残存データ量が適正値となるように、前記可変周波数発振手段に与える周波数制御情報の増減を行なう周波数制御手段と、第１のサンプリング周波数のデータの入力を要求するクロックの周波数測定を行い、第１のサンプリング周波数を求める周波数測定手段と、前記周波数測定手段により求められた第１のサンプリング周波数に適した周波数制御情報を生成する周波数制御情報生成手段と、前記周波数制御情報生成手段により生成された周波数制御情報と前記可変周波数発振手段に与えられている周波数制御情報との間に所定の限度を越える差がある場合に、前記可変周波数発振手段に与えられる周波数制御情報を前記周波数制御情報生成手段により生成された周波数制御情報に置き換える周波数制御情報適正化手段とを具備することを特徴とするサンプリング周波数変換装置を提供する。
これらのサンプリング周波数変換装置によれば、後段の装置が第２のサンプリング周波数を変更した場合または前段の装置が第１のサンプリング周波数を変更した場合に、周波数制御情報が変更後の第１または第２のサンプリング周波数に応じた適正値に置換され、この周波数制御情報に基づいてサンプリング周波数変換のための動作が行われる。従って、先入れ先出し方式の記憶手段をオーバフローまたはアンダフローさせることなく、安定したサンプリング周波数変換を行うことができる。
【発明を実施するための最良の形態】
【０００６】
以下、図面を参照して、本発明の最良な実施の形態について説明する。
＜第１実施形態＞
図１は、この発明の第１実施形態であるサンプリング周波数変換装置の構成を示すブロック図である。このサンプリング周波数変換装置は、前段の装置が出力する第１のサンプリング周波数のデータを後段の装置が要求する第２のサンプリング周波数のデータに変換して出力する装置であり、大別すると、伝送制御装置１００Ａと、補間部２００Ａと、インタフェース３００Ａにより構成されている。
【０００７】
補間部２００Ａは、図２に示すように、ｎ段のシフトレジスタ２０１と、補間係数発生部２０２と、畳み込み演算部２０３とを有している。ここで、シフトレジスタ２０１は、補間部２００Ａの前段部から第１のサンプリング周波数のデータを順次取り込み、取り込んだ過去ｎ個分のデータ列を補間演算用入力データ列として保持する。
【０００８】
補間係数発生部２０２には、伝送制御装置１００Ａから補間比Δｔが供給される。この補間比Δｔは、補間部２００Ａにおいて生成すべきデータのサンプリング点の位相を示している。さらに詳述すると、本実施形態において、補間部２００Ａは、図３に例示するように、シフトレジスタ２０１に保持された補間演算用入力データ列Ｄ０〜Ｄｎ−１におけるデータＤｍ＋１とデータＤｍとの間に存在するデータＰｋを補間演算により求めるものであり、補間比Δｔは、時間軸上においてデータＤｍ＋１のサンプリング点とデータＤｍのサンプリング点との間のどの位置に補間演算により求めるべきデータＰｋのサンプリング点があるかを示している。補間係数発生部２０２は、例えば各種の補間比Δｔに対応した補間係数列を記憶したＲＯＭであり、伝送制御装置１００Ａから与えられる補間比Δｔに対応した補間係数列ａ０〜ａｎ−１を出力する。
【０００９】
畳み込み演算部２０３は、伝送制御装置１００Ａからメインクロックφに同期したデータ入力許可信号ＩＥが与えられるのに応じて、シフトレジスタ２０１に保持された補間演算用入力データ列Ｄ０〜Ｄｎ−１に補間係数発生部２０２から出力された補間係数列ａ０〜ａｎ−１を畳み込み、第２のサンプリング周波数のデータＰｋを出力する。ここで、メインクロックφは、第１のサンプリング周波数と同一の周波数を有するクロックであるが、伝送制御装置１００Ａは、このメインクロックφに同期したデータ入力許可信号ＩＥを第２のサンプリング周波数に相当する時間密度で補間部２００Ａに供給する。なお、このような時間密度でデータ入力許可信号ＩＥを発生するための構成については後述する。
【００１０】
補間演算により求めるべきデータのサンプリング点は、第２のサンプリング周波数に対応した速度で時間軸上を移動する。この結果、図３に例示するように、現在、補間演算により求めたデータＰｋの次に求めるべきデータＰｋ−１の位相がシフトレジスタ２０１に記憶されたデータＤｍの位相よりも進むことが起こりうる。この場合には、データＰｋの補間演算後、次のデータＰｋ−１の補間演算に備えて、新たなデータＤ−１が前段の装置からシフトレジスタ２０１に取り込まれ、シフトレジスタ２０１内の最も古いデータＤｎ−１は廃棄される。補間演算により求めるデータの位相を逐次進める操作は、現状の補間比Δｔに対し、第１のサンプリング周波数と第２のサンプリング周波数との比に基づいて決定される周波数制御情報ｙを加える、という操作の繰り返しにより行われる。この操作は、伝送制御装置１００Ａにより行われるものであるが、詳細は後述する。
【００１１】
図１における伝送制御装置１００Ａは、以上説明した補間部２００Ａから第２のサンプリング周波数のデータ列を受け取って保存し、これをインタフェース３００Ａからの読み出し要求信号ＲＲに同期したタイミングで出力する装置である。インタフェース３００Ａは、後段の装置からのワードクロックＬＲＣＫに応じて、読み出し要求ＲＲを伝送制御装置１００Ａに出力し、これに応じて伝送制御装置１００Ａから出力されるデータを受け取る。そして、受け取ったデータをシリアルなビット列ＳＤＯに変換し、ビット列ＳＤＯの各ビットを後段の装置から供給されるビットクロックＢＣＬＫに同期して出力する。ワードクロックＬＲＣＫは、第２のサンプリング周波数と同じ周波数の信号である。後段の装置は、サンプリング周波数変換装置を介して受け取るデータのサンプリング周波数を変更する場合には、それに合わせてワードクロックＬＲＣＫの周波数を変更する。
【００１２】
次に、伝送制御装置１００Ａの構成について説明する。
ＦＩＦＯ１０は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などにより構成される先入れ先出し形式のバッファであり、本実施形態のものは所定ビット数の入力データを最大８個記憶することができる。ＦＩＦＯ１０は、補間部２００Ａから供給されるデータＰｋを順次保存し、古いものから順にインタフェース３００Ａに出力する。書き込み制御部３０は、メインクロックφがＡＮＤゲート１０１を通過して書き込み要求信号ＷＲとして与えられたとき書き込みアドレスおよび書き込み要求信号ＷＥを生成し、ＦＩＦＯ１０に供給する。ＦＩＦＯ１０に供給される入力データＰｋは、書き込み要求信号ＷＥにより、ＦＩＦＯ１０内の書き込みアドレスによって指定されるエリアに書き込まれる。読み出し制御部４０は、インタフェース３００Ａからの読み出し要求信号ＲＲに応じて、読み出しアドレスおよび読み出し要求信号ＲＥを生成し、ＦＩＦＯ１０へ供給する。ここで、読み出しアドレスは、ＦＩＦＯ１０内に残存している読み出し未了の入力データのうち最も古いものを指定するように制御される。この読み出しアドレスにより指定された入力データは、読み出し要求信号ＲＥによりＦＩＦＯ１０から読み出され、インタフェース３００Ａに供給される。
【００１３】
残存データ量検出部５０は、ＡＮＤゲート１０２を介してメインクロックφが与えられたとき、書き込み制御部３０が発生している書き込みアドレスと読み出し制御部４０が発生している読み出しアドレスとの差分、すなわち、現時点においてＦＩＦＯ１０に残存する読み出し未了の入力データの個数である残存データ量ΔＳを検出する回路である。ベクトル検出回路５１は、残存データ量検出部５０から出力される残存データ量ΔＳの時間的変化を表すベクトルを検出する回路である。
【００１４】
ここで、ベクトル検出回路５１は、３個のポインタＶａｌｉｄ＿０、Ｖａｌｉｄ＿１およびＶａｌｉｄ＿ｐｔｒを有している。ポインタＶａｌｉｄ＿ｐｔｒには、現在の残存データ量ΔＳが格納される。このポインタＶａｌｉｄ＿ｐｔｒの値は、ポインタＶａｌｉｄ＿０と異なる値になると、ポインタＶａｌｉｄ＿０に代入され、それまでのポインタＶａｌｉｄ＿０の値はポインタＶａｌｉｄ＿１に代入される。
【００１５】
従って、一般的には、Ｖａｌｉｄ＿０＞Ｖａｌｉｄ＿１の関係にあれば、ＦＩＦＯ１０の残存データ量ΔＳは増加中であり、Ｖａｌｉｄ＿０＜Ｖａｌｉｄ＿１であれば、ＦＩＦＯ１０の残存データ量ΔＳは減少中であるといえる。しかし、残存データ量ΔＳが増加状態から減少状態に転じたり、減少状態から増加状態に転じたりすることがあり、そのような変化は、ポインタＶａｌｉｄ＿０およびＶａｌｉｄ＿１のみから判断することはできない。そこで、本実施形態において、ベクトル検出回路５１は、３個のポインタＶａｌｉｄ＿０、Ｖａｌｉｄ＿１およびＶａｌｉｄ＿ｐｔｒを参照し、残存データ量ΔＳの時間的変化の態様を示すベクトルを検出するようにしている。
【００１６】
残存データ量検出部５０から出力される残存データ量ΔＳは、ＦＩＦＯ１０内のデータの残存データ量を示すと同時に、最後に書き込まれたデータＰｋと、読み出し要求信号ＲＲによって最後に読み出されたデータＰｋとの位相差を示している。そして、上述した読み出し制御部４０と、書き込み制御部３０と、残存データ量検出部５０と、ベクトル検出回路５１と、周波数制御部６０と、可変周波数発振部７０は、この位相差を適正値に収束させるＰＬＬ８０を構成している。
【００１７】
周波数制御部６０は、変換部６１、全加算器６２、セレクタ６３およびラッチ回路６４から構成されている。変換部６１は、残存データ量ΔＳを修正量ΔＴに変換するテーブルを有している。変換部６１は、このテーブルとベクトル検出回路５１からの指示に基づき、残存データ量検出部５０から出力される現在の残存データ量ΔＳを修正量ΔＴに変換する。図４は、このベクトル検出回路５１と変換部６１とにより行われる変換内容を示している。また、図５（ａ）〜（ｄ）は、「０」以外の修正量ΔＴが変換部６１から出力される場合の残存データ量ΔＳの変化の態様を示している。
【００１８】
図５（ａ）に示すように、残存データ量ΔＳが増加中（Ｖａｌｉｄ＿１＜Ｖａｌｉｄ＿０＜Ｖａｌｉｄ＿ｐｔｒ）であり、かつ、残存データ量ΔＳの現在値であるポインタＶａｌｉｄ＿ｐｔｒの値が適正値である「４」を越えている場合（図４に示す例ではＶａｌｉｄ＿ｐｔｒ＝５および６）、ベクトル検出回路５１は、周波数制御情報を増加させる修正量ΔＴの出力指示を変換部６１に送る。この結果、変換部６１は、現在の残存データ量ΔＳと適正値「４」との差分に相当する大きさを有する正の修正量ΔＴを出力する。また、図５（ｃ）に示すように、現在の残存データ量ΔＳが上限である「７」に達している場合には、その時点までの残存データ量ΔＳの変化の態様とは無関係に、変換部６１は、現在の残存データ量ΔＳと適正値「４」との差分に相当する大きさを有する正の修正量ΔＴ（この例の場合、ΔＴ＝＋３）を出力する。従って、残存データ量ΔＳとして上限値「７」が検出されて正の修正量ΔＴ＝＋３が出力された後、再び上限値「７」が検出された場合には、残存データ量ΔＳは増加中であるとはいえないが、残存データ量ΔＳが上限値「７」であることのみをもって、正の修正量ΔＴ＝＋３が再び出力される。
【００１９】
一方、図５（ｂ）に示すように、残存データ量ΔＳが減少中（Ｖａｌｉｄ＿１＞Ｖａｌｉｄ＿０＞Ｖａｌｉｄ＿ｐｔｒ）であり、かつ、残存データ量ΔＳの現在値であるポインタＶａｌｉｄ＿ｐｔｒの値が適正値である「４」より少ない場合（図４に示す例ではＶａｌｉｄ＿ｐｔｒ＝３、２および１）、ベクトル検出回路５１は、周波数制御情報を減少させる修正量ΔＴの出力指示を変換部６１に送る。この結果、変換部６１は、現在の残存データ量ΔＳと適正値「４」との差分に相当する大きさを有する負の修正量ΔＴを出力する。また、図５（ｄ）に示すように、現在の残存データ量ΔＳが下限である「０」に達している場合には、その時点までの残存データ量ΔＳの変化の態様とは無関係に、変換部６１は、負の修正量ΔＴ（この例の場合、ΔＴ＝−３）を出力する。
【００２０】
そして、残存データ量ΔＳが以上の挙動以外の挙動を示している場合、ベクトル検出回路５１は、周波数制御情報の現状維持を変換部６１に指示する。この場合、変換部６１は、修正量ΔＴとして「０」を出力する。
以上が残存データ量検出部５０、ベクトル検出回路５１および変換部６１によって行われる処理の詳細である。
【００２１】
全加算器６２、セレクタ６３およびラッチ回路６４は、周波数制御情報ｙを更新する手段を構成している。ここで、ラッチ回路６４は、現在における周波数制御情報ｙを保持する手段である。全加算器６２は、現在の周波数制御情報ｙと変換部６１から供給される修正量ΔＴとに基づき、下記式（１）に示す演算を行う。
ｙ←ｙ＋ΔＴ・・・・・（１）
セレクタ６３は、入力端Ａと入力端Ｂと選択信号入力端Ｓを有している。入力端Ａには全加算器６２の出力信号が入力される。また、入力端Ｂには、後述する周波数制御情報発生部４０２から出力される周波数制御情報ｙａが入力される。第２のサンプリング周波数に変更がない通常の動作においては、選択信号入力端Ｓに対し、入力端Ａの入力信号の選択を指示する選択信号ＳＥＬが与えられる。このため、セレクタ６３は、入力端Ａに与えられる全加算器６２の出力情報を選択し、ラッチ回路６４に供給する。このセレクタ６３を介して与えられる情報は、ＡＮＤゲート１０３を介してメインクロックφがラッチ回路６４に与えられるとき、ラッチ回路６４によりラッチされ、周波数制御情報ｙとして可変周波数発振部７０に供給される。
【００２２】
ラッチ回路６４は、初期設定が可能な構成となっている。このサンプリング周波数変換装置が動作を開始するとき、ラッチ回路６４には、周波数制御情報の初期値ｙとして次式で示される値が設定される。
ｙ＝定数×（ｆ１／ｆ２）      ・・・・・（２）
ここで、ｆ１はサンプリング周波数変換前の第１のサンプリング周波数、ｆ２は後段の装置が要求するサンプリング周波数変換後の第２のサンプリング周波数である。
【００２３】
可変周波数発振部７０は、全加算器７１と、ラッチ回路７２と、ＡＮＤゲート７３と、ダウンカウンタ７４と、イネーブル信号発生回路７５と、ラッチ回路７６とにより構成されている。全加算器７１は、周波数制御部６０から出力される周波数制御情報ｙとラッチ回路７２の出力データの小数部である補間比Δｔとを加算して出力する。この周波数制御情報ｙと補間比Δｔとの加算により、上述した「補間演算により求めるデータの位相を逐次進める操作」が行われる。
【００２４】
ラッチ回路７２は、ＡＮＤゲート７３を介してメインクロックφが与えられたとき、全加算器７１の出力データをラッチして出力する。ダウンカウンタ７４には、このラッチ回路７２の出力データの整数部から「１」を減じた値がプリセットデータとして与えられる。ダウンカウンタ７４は、後述するイネーブル信号ＥＮがアサートされているとき、メインクロックφに同期して、このプリセットデータをカウント値として取り込み、以後、メインクロックφによるダウンカウントを行う。
【００２５】
イネーブル信号発生回路７５は、例えばラッチ回路により構成されており、ダウンカウンタ７４のカウント値が「０」になったとき、メインクロックφに同期してイネーブル信号ＥＮをアサートする。なお、イネーブル信号発生回路７５は、上述したラッチ回路６４の初期設定が行われるときに同時に初期設定され、この初期設定の際にはダウンカウンタ７４のカウント値の如何に拘わらずイネーブル信号ＥＮをアサートするように構成されている。
【００２６】
イネーブル信号ＥＮがアサートされることにより、ラッチ回路７６は、ラッチ回路７２の出力データの小数部をラッチして補間比Δｔとして補間部２００Ａに出力する。また、イネーブル信号ＥＮがアサートされているとき、ＡＮＤゲート１０１は、メインクロックφを書き込み要求信号ＷＲとして書き込み制御部３０に出力し、ＡＮＤゲート１０４はメインクロックφをデータ入力許可信号ＩＥとして補間部２００Ａに出力する。さらにＡＮＤゲート７３、１０２および１０３は、イネーブル信号ＥＮがアサートされているときに、ラッチ回路７２、残存データ量検出部５０およびラッチ回路６４にメインクロックφを供給する。ＡＮＤゲート７３を介してラッチ回路７２にメインクロックφが与えられたとき、ラッチ回路７２に格納されるデータの整数部が２以上増加する場合がある。これは、図３を参照して説明したように、この次に補間部２００Ａにおいて求めるべきデータの位相が、現在、シフトレジスタ２０１に保持されているデータＤｍの位相よりも進んでいることを意味する。従って、その場合にはダウンカウンタ７４により数クロックのカウントダウンが行われた後、補間部２００Ａでは補間演算に必要な新たなデータを前段の装置からシフトレジスタ２０１に取り込む動作が行われる。
【００２７】
ところで、本実施形態では、インタフェース３００Ａに接続された後段の装置が第２のサンプリング周波数ｆ２を変更する場合がある。この場合、後段の装置は、ワードクロックＬＲＣＫの周波数を変更後のサンプリング周波数ｆ２と同じ周波数に変更する。本実施形態におけるサンプリング周波数変換装置には、このようなサンプリング周波数ｆ２の変更があった場合に、上述した周波数制御情報ｙを変更後のサンプリング周波数ｆ２に合った適正値に置き換えるための装置が設けられている。以下、その構成を説明する。
【００２８】
まず、周波数測定部４０１は、ワードクロックＬＲＣＫに基づいて第２のサンプリング周波数ｆ２を測定する装置である。この周波数測定部４０１は、例えばワードクロックＬＲＣＫの１周期の間に発生する所定周波数のクロックのカウントを行うカウンタと、このカウンタのカウント値からワードクロックＬＲＣＫの周波数である第２のサンプリング周波数を演算する演算回路とにより構成されている。
【００２９】
周波数制御情報発生部４０２は、周波数測定部４０１により測定された第２のサンプリング周波数と、固定値である第１のサンプリング周波数ｆ１とに基づいて周波数制御情報ｙａを算出して出力する装置である。第１のサンプリング周波数ｆ１および第２のサンプリング周波数ｆ２から周波数制御情報ｙａを求めるための演算式は、周波数制御情報ｙの初期値を求めるための演算式（前掲式（２）参照）と同様である。周波数制御情報発生部４０２から出力された周波数制御情報ｙａは、周波数制御部６０におけるセレクタ６３の入力端Ｂに与えられるとともに、減算器４０３に与えられる。この減算器４０３と、絶対値回路４０４と、比較器４０５は、周波数制御情報生成部４０２により生成された周波数制御情報ｙａと可変周波数発振部７０に与えられている周波数制御情報ｙとの間に所定の限度を越える差がある場合に、可変周波数発振部７０に与えられる周波数制御情報ｙを周波数制御情報生成部４０２により生成された周波数制御情報ｙａに置き換える周波数制御情報適正化手段を構成している。
【００３０】
さらに詳述すると、減算器４０３は、周波数制御部６０から出力された周波数制御情報ｙと周波数制御情報発生部４０２から出力された周波数制御情報ｙａとの差分ｙ−ｙａを出力する。絶対値回路４０４は、この差分の絶対値｜ｙ−ｙａ｜を出力する。そして、比較器４０５は、差分の絶対値｜ｙ−ｙａ｜を所定の閾値ｔｈと比較し、｜ｙ−ｙａ｜≦ｔｈであるときは全加算器６２の出力情報の選択を指示する選択信号ＳＥＬをセレクタ６３に与える一方、｜ｙ−ｙａ｜＞ｔｈであるときは周波数制御情報ｙａの選択を指示する選択信号ＳＥＬをセレクタ６３に与え、セレクタ６３を介してラッチ回路６４に周波数制御情報ｙａを与えるのである。
以上が本実施形態におけるサンプリング周波数変換装置の構成の詳細である。
【００３１】
次に本実施形態の動作を説明する。
このサンプリング周波数変換装置の動作が開始されるとき、初期設定動作が行われる。この初期設定動作では、伝送制御装置１００Ａ内のラッチ回路６４に前掲式（２）により与えられる周波数制御情報の初期値ｙが書き込まれる。また、初期設定動作では、イネーブル信号発生回路７５によってイネーブル信号ＥＮがアサートされる。このため、ラッチ回路６４に書き込まれた周波数制御情報ｙは、全加算器７１を介してラッチ回路７２に書き込まれ、このラッチ回路７２に書き込まれた周波数制御情報ｙの整数部は、ダウンカウンタ７４にプリセットされる。その後、ダウンカウンタ７４では、メインクロックφに基づくダウンカウントが行われる。そして、ダウンカウンタ７４のカウント値が「０」になると、イネーブル信号発生回路７５によってイネーブル信号ＥＮがアサートされる。この結果、メインクロックφがＡＮＤゲート７３を介してラッチ回路７２に供給され、その時点における全加算器７１の出力データ、すなわち、周波数制御部６０から出力される周波数制御情報とラッチ回路７２の出力データの小数部との加算結果がラッチ回路７２に書き込まれる。そして、ラッチ回路７２の出力データの整数部はダウンカウンタ７４にプリセットされ、小数部は補間比Δｔとしてラッチ回路７６に書き込まれる。このような動作が繰り返される結果、周波数制御情報に応じた平均的な時間密度でイネーブル信号ＥＮが発生されるとともに周波数制御情報に応じた速度で変化する補間比Δｔが発生される。
【００３２】
メインクロックφは、イネーブル信号ＥＮが発生される度に、ＡＮＤゲート１０１および１０４を各々通過し、書き込み要求信号ＷＲおよびデータ入力許可信号ＩＥとして書き込み制御部３０および補間部２００Ａに各々与えられる。また、メインクロックφは、イネーブル信号ＥＮが発生される度に、ＡＮＤゲート１０２〜１０３を通過し、残存データ量検出部５０およびラッチ回路６４に与えられる。
【００３３】
補間部２００Ａでは、データ入力許可信号ＩＥが与えられたとき、その時点において記憶されている過去ｎ個の入力データに補間比Δｔに応じた補間係数列が畳み込まれ、この補間演算の結果は、第２のサンプリング周波数のデータＰｋとして出力される。
【００３４】
書き込み制御部３０は、書き込み要求信号ＷＲが与えられたとき、書き込みアドレスをインクリメントして、書き込み要求信号ＷＥをＦＩＦＯ１０に供給する。この結果、補間部２００Ａの出力データがＦＩＦＯ１０における書き込みアドレスにより指定されるエリアに書き込まれる。
【００３５】
一方、インタフェース３００Ａは、後段の装置からワードクロックＬＲＣＫが供給されるのに応じて、読み出し要求信号ＲＲを出力する。読み出し制御部４０は、この読み出し要求信号ＲＲに応じて、ＦＩＦＯ１０に記憶された最も古いデータを指定する読み出しアドレスを読み出し要求信号ＲＥとともにＦＩＦＯ１０に供給する。この結果、最も古いデータがＦＩＦＯ１０から読み出され、インタフェース３００Ａに供給される。
【００３６】
残存データ量検出部５０は、イネーブル信号ＥＮがアサートされ、ＡＮＤゲート１０２を介してメインクロックφが与えられたとき、その時点においてＦＩＦＯ１０に最後に供給された書き込みアドレスと読み出しアドレスとの差分を残存データ量ΔＳとして求める。この残存データ量ΔＳを求める動作は、イネーブル信号ＥＮがアサートされる度に行われる。残存データ量検出部５０により求められた残存データ量ΔＳは、ポインタＶａｌｉｄ＿ｐｔｒに格納される。そして、ポインタＶａｌｉｄ＿ｐｔｒの値がポインタＶａｌｉｄ＿０と異なる値になると、ポインタＶａｌｉｄ＿ｐｔｒの値がポインタＶａｌｉｄ＿０に代入され、それまでのポインタＶａｌｉｄ＿０の値はポインタＶａｌｉｄ＿１に代入される。
【００３７】
ベクトル検出回路５１は、ポインタＶａｌｉｄ＿ｐｔｒ、Ｖａｌｉｄ＿０およびＶａｉｌｄ＿１に基づき、周波数制御情報を増加させるか減少させるか現状値を維持させるかの指示を変換部６１に送る。変換部６１は、この指示に従い、残存データ量検出部５０から供給される残存データ量ΔＳ（＝Ｖａｌｉｄ＿ｐｔｒ）を修正量ΔＴに変換する。この結果、次のような修正量ΔＴが出力される。まず、残存データ量ΔＳが増加中であり、かつ、残存データ量ΔＳの現在値が適正値「４」を越えている場合には、現在の残存データ量ΔＳと適正値「４」との差分に相当する大きさを有する正の修正量ΔＴが出力される。また、残存データ量ΔＳが上限値「７」である場合には、正の修正量「３」が出力される。一方、残存データ量ΔＳが減少中であり、かつ、残存データ量ΔＳの現在値が適正値「４」より少ない場合には、現在の残存データ量ΔＳと適正値「４」との差分に相当する大きさを有する負の修正量ΔＴが出力される。また、残存データ量ΔＳが下限値「０」である場合には、負の修正量「−３」が出力される。そして、これら以外の場合には修正量ΔＴとして「０」が出力される。
【００３８】
このようにして出力される修正量ΔＴとラッチ回路６４に記憶された現在の周波数制御情報ｙとが全加算器６２により加算され、ＡＮＤゲート１０３からのメインクロックφにより、新たな周波数制御情報ｙとしてラッチ回路６４に書き込まれる。この結果、正の修正量ΔＴが出力されているときには周波数制御情報ｙが増加し、負の修正量ΔＴが出力されているときには周波数制御情報ｙが減少し、修正量ΔＴとして「０」が出力されているときには周波数制御情報ｙは現状値を維持する。
【００３９】
周波数制御部６０では、このように修正量ΔＴに基づく周波数制御情報ｙの増減の調整が行われ、可変周波数発振部７０では、このような調整を経た周波数制御情報ｙに基づきイネーブル信号ＥＮが出力される。ここで、周波数制御情報ｙが増加する場合には、ダウンカウンタ７４がプリセットされてからカウント値が「０」になるまでに必要な平均的なメインクロックφの個数が増加し、イネーブル信号ＥＮの平均的な時間密度が減少する。このため、ＦＩＦＯ１０に対するデータの書き込み速度が低下する。逆に、周波数制御情報ｙが減少する場合には、イネーブル信号ＥＮの平均的な時間密度が増加するため、ＦＩＦＯ１０に対するデータの書き込み速度が上昇する。
【００４０】
そして、ＦＩＦＯ１０におけるデータの書き込み速度（すなわち、イネーブル信号ＥＮの周波数）が読み出し速度（すなわち、読み出し要求信号ＲＲの周波数）よりも低い場合には残存データ量ΔＳが減少し、この減少過程において負の修正量ΔＴが発生されると、周波数制御情報ｙが減少し、データの書き込み速度は上昇することとなる。逆にＦＩＦＯ１０におけるデータの書き込み速度が読み出し速度よりも高い場合には残存データ量ΔＳが増加し、この増加過程において正の修正量ΔＴが発生されると、周波数制御情報ｙが増加し、データの書き込み速度は低下することとなる。このように残存データ量ΔＳの増減に応じたＰＬＬ制御が行われる結果、ＦＩＦＯ１０における書き込み速度は読み出し速度に追従し、ＦＩＦＯ１０内の残存データ量ΔＳは適正値「４」に収束することとなる。
【００４１】
本実施形態では、以上のような処理がサンプリング周波数変換装置により行われている期間に、後段の装置が第２のサンプリング周波数ｆ２を変更する場合がある。その場合、ワードクロックＬＲＣＫの周波数が新たな第２のサンプリング周波数ｆ２と同じ周波数に切り換えられる。この結果、周波数測定部４０１では、変更後の新たな第２のサンプリング周波数ｆ２が求められ、制御情報発生部４０２では、この新たな第２のサンプリングｆ２に対応した周波数制御情報ｙａが出力される。
【００４２】
そして、現状における周波数制御情報ｙと新たなサンプリング周波数ｆ２に対応した周波数制御情報ｙａとの差分の絶対値｜ｙ−ｙａ｜が閾値ｔｈを越えている場合には、周波数制御情報ｙａの選択を指示する選択信号ＳＥＬがセレクタ６３に与えられる。この結果、周波数制御情報ｙａがセレクタ６３によって選択され、ラッチ回路６４に与えられる。この周波数制御情報ｙａは、その後、ＡＮＤゲート１０３を介してメインクロックφがラッチ回路６４に与えられたときに、新たな周波数制御情報ｙとしてラッチ回路６４に書き込まれる。このようにしてｙ＝ｙａとなると、｜ｙ−ｙａ｜＝０となることから、比較器４０５は、全加算器６２の出力情報の選択を指示する選択信号ＳＥＬをセレクタ６３に与える。この結果、周波数制御部６０では、修正量ΔＴに基づいて周波数制御情報ｙを修正する動作が再開される。
【００４３】
周波数制御部６０から出力される周波数制御情報ｙが新たなサンプリング周波数ｆ２に対応した値になると、可変周波数発振部７０では、この周波数制御情報ｙに基づいてイネーブル信号ＥＮおよび補間比Δｔを発生する処理が行われる。この結果、補間器２００Ａでは、変更後の新たなサンプリング周波数ｆ２のデータが補間演算により求められて出力される。このデータは、その後、ＦＩＦＯ１０およびインタフェース３００Ａを介して後段の装置に供給される。
【００４４】
以上のように、本実施形態によれば、第２のサンプリング周波数ｆ２が後段の装置によって変更された場合、周波数制御情報ｙが変更後のサンプリング周波数ｆ２に適した周波数制御情報ｙａに置き換えられ、この新たな周波数制御情報ｙ＝ｙａに基づいてイネーブル信号ＥＮおよび補間比Δｔを発生する動作が直ちに開始される。従って、第２のサンプリング周波数ｆ２が変更される場合においても、ＦＩＦＯ１０にオーバフローまたはアンダフローを発生させることなくサンプリング周波数変換を行うことができる。
【００４５】
＜第２実施形態＞
図６は、この発明の第２実施形態であるサンプリング周波数変換装置の構成を示すブロック図である。本実施形態では、伝送制御装置１００Ｂの前段にインタフェース３００Ｂが、後段に補間部２００Ｂが設けられている。インタフェース３００Ｂには、前段の装置から第１のサンプリング周波数ｆ１と同じ周波数のワードクロックＬＲＣＫが与えられるとともに、ワードクロックＬＲＣＫの１周期の間にビットクロックＢＣＬＫとこれに同期したシリアルビット列ＳＤＩとが与えられる。インタフェース３００Ｂは、ワードクロックＬＲＣＫが与えられる都度、ビットクロックＢＣＬＫによりシリアルビット列ＳＤＩを取り込み、パラレルデータであるデータＤｉｎに変換し、書き込み要求信号ＷＲとともに伝送制御装置１００Ｂに供給する。
【００４６】
補間部２００Ｂは、第１実施形態における補間部２００Ａと同様な構成を有する。この補間部２００Ｂは、内蔵のシフトレジスタにＦＩＦＯ１０から取り込んだ過去一定個数のデータ列を保持し、上記第１実施形態と同様、ラッチ回路７６から供給される補間比Δｔに応じた補間用係数列をこのデータ列に畳み込み、この畳み込み演算の結果である出力データＰｋを、第２のサンプリング周波数を有する出力クロックＣＫｏｕｔに同期したタイミングで出力する。
【００４７】
伝送制御装置１００Ｂの構成は、次の点において第１実施形態に係る伝送制御装置１００Ａと異なる。まず、書き込み制御部３０には、インタフェース３００Ｂから第１のサンプリング周波数と同一周波数の書き込み要求信号ＷＲが直接供給される。また、第１実施形態におけるＡＮＤゲート１０１および１０４に代えて、読み出し要求信号ＲＲを発生する読み出し要求信号発生部１０５が設けられており、イネーブル信号発生回路７５から出力されるイネーブル信号ＥＮがこの読み出し要求信号発生部１０５と補間部２００Ｂに供給される。ここで、補間部２００Ｂに供給されるイネーブル信号ＥＮは、第２のサンプリング周波数のデータの補間演算および出力を許可するデータ出力許可信号としての役割を果たす。
【００４８】
また、上記第１実施形態では、後段の装置が第２のサンプリング周波数ｆ２を変更したのに対し、本実施形態では、前段の装置が第１のサンプリング周波数ｆ１を変更する。このため、本実施形態において、周波数測定部４０１は、インタフェース３００Ｂに与えられるワードクロックＬＲＣＫに基づき、第１のサンプリング周波数ｆ１を測定する。そして、周波数制御情報発生部４０２は、この周波数測定部４０１により測定される第１のサンプリング周波数ｆ１と、固定の値である第２のサンプリング周波数ｆ２に基づいて周波数制御情報ｙａを演算する。
【００４９】
伝送制御装置１００Ｂでは、第２のサンプリング周波数と同一周波数のメインクロックφに同期して、残存データ量ΔＳを安定化するためのＰＬＬ制御が行われ、この制御の過程において、メインクロックφに同期し、かつ、第１のサンプリング周波数に対応した時間密度でイネーブル信号ＥＮがアサートされる。補間部２００Ｂは、イネーブル信号ＥＮがアサートされた場合に、出力クロックＣＫｏｕｔに同期したタイミングで読み出し要求許可信号ＲＲＥを出力する。読み出し要求信号発生部１０５は、イネーブル信号ＥＮがアサートされた後、読み出し要求許可信号ＲＲＥが出力された場合に、読み出し要求信号ＲＲを読み出し制御部４０に出力する。これにより、読み出し制御部４０は、読み出しアドレスを「１」だけ増加させて、読み出し要求信号ＲＥを出力する。この結果、ＦＩＦＯ１０における読み出し未了のデータのうち最も古いものが読み出され、補間部２００Ｂに供給される。補間部２００Ｂでは、このようにしてＦＩＦＯ１０から供給されるデータがシフトレジスタの初段に書き込まれ、シフトレジスタ内の既存のデータは順次後段にシフトされ、最終段のデータは廃棄される。そして、出力クロックＣＫｏｕｔの発生に合わせて、シフトレジスタに保持されたデータ列と補間比Δｔに応じた補間係数列とを用いた補間演算が行われ、演算結果である第２のサンプリング周波数のデータが出力クロックＣＫｏｕｔに同期して出力される。
【００５０】
上記第１実施形態では、サンプリング周波数変換の過程において、ＦＩＦＯ１０におけるデータ入力速度をデータ出力速度に追従させるためのＰＬＬ制御が行われたが、本実施形態ではＦＩＦＯ１０におけるデータ出力速度をデータ入力速度に追従させるためのＰＬＬ制御が行われる。このＰＬＬ制御は、上記第１実施形態と同様な方法により行われる。そして、前段の装置によって第１のサンプリング周波数ｆ１が変更された場合には、上記第１実施形態と同様、変更後の新たなサンプリング周波数ｆ１に適した周波数制御情報ｙａが周波数制御情報発生部４０２から出力され、現状の周波数制御情報ｙがこの周波数制御情報ｙａによって置き換えられる。そして、新たな周波数制御情報ｙ＝ｙａを用いて、新たな第１のサンプリング周波数ｆ１に対応したサンプリング周波数変換が開始される。従って、本実施形態においても上記第１実施形態と同様な効果が得られる。
【図面の簡単な説明】
【００５１】
【図１】この発明の第１実施形態であるサンプリング周波数変換装置の構成を示すブロック図である。
【図２】同実施形態における補間部の構成例を示すブロック図である。
【図３】同補間部の動作を説明する波形図である。
【図４】同実施形態における修正量の発生方法を示す図である。
【図５】同実施形態において修正量として「０」以外の値が発生される場合を示す図である。
【図６】この発明の第２実施形態であるサンプリング周波数変換装置の構成を示すブロック図である。
【符号の説明】
【００５２】
１００Ａ，１００Ｂ…伝送制御装置、２００Ａ，２００Ｂ…補間部、２０１…シフトレジスタ、２０２…補間係数発生部、２０１…畳み込み演算部、３００Ａ，３００Ｂ…インタフェース、１０…ＦＩＦＯ、３０…書き込み制御部、４０…読み出し制御部、５０…残存データ量検出部、５１…ベクトル検出回路、６０…周波数制御部、７０…可変周波数発振部、８０…ＰＬＬ（位相同期ループ）。４０１…周波数測定部、４０２…周波数制御情報発生部、４０３…減算器、４０４…絶対値回路、４０５…比較器。
【図１】
0004735268.tif 000002
【図２】
0004735268.tif 000003
【図３】
0004735268.tif 000004
【図４】
0004735268.tif 000005
【図５】
0004735268.tif 000006
【図６】
0004735268.tif 000007