JP2005217664A - サンプリングレート変換装置及びサンプリングレート変換方法 - Google Patents

サンプリングレート変換装置及びサンプリングレート変換方法 Download PDF

Info

Publication number
JP2005217664A
JP2005217664A JP2004020496A JP2004020496A JP2005217664A JP 2005217664 A JP2005217664 A JP 2005217664A JP 2004020496 A JP2004020496 A JP 2004020496A JP 2004020496 A JP2004020496 A JP 2004020496A JP 2005217664 A JP2005217664 A JP 2005217664A
Authority
JP
Japan
Prior art keywords
current
sampling rate
data
clock frequency
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2004020496A
Other languages
English (en)
Other versions
JP4548767B2 (ja
Inventor
Eiji Sudo
英司 須藤
Yasushi Oi
康 大井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Electronics Corp
Original Assignee
NEC Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Electronics Corp filed Critical NEC Electronics Corp
Priority to JP2004020496A priority Critical patent/JP4548767B2/ja
Priority to US11/041,239 priority patent/US7602875B2/en
Publication of JP2005217664A publication Critical patent/JP2005217664A/ja
Application granted granted Critical
Publication of JP4548767B2 publication Critical patent/JP4548767B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • H03H17/06Non-recursive filters
    • H03H17/0621Non-recursive filters with input-sampling frequency and output-delivery frequency which differ, e.g. extrapolation; Anti-aliasing
    • H03H17/0628Non-recursive filters with input-sampling frequency and output-delivery frequency which differ, e.g. extrapolation; Anti-aliasing the input and output signals being derived from two separate clocks, i.e. asynchronous sample rate conversion
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • H03H17/0219Compensation of undesirable effects, e.g. quantisation noise, overflow

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Transmission Systems Not Characterized By The Medium Used For Transmission (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

【課題】異なる二つのクロックのサンプリングレート間で高精度で変換を行うサンプリングレート変換装置および方法を提供する。
【解決手段】第1クロック信号で第1データを格納、第2クロック信号で第1データを第2データとして出力のFIFOは、直前に書込の第1データをライト制御信号で格納し、リード制御信号で第2データを出力。第1クロック信号の現在期間での計測で第1現在クロック周波数値を、第1現在クロック周波数値と前回予測クロック周波数値から現在予測クロック周波数値を生成、現在予測クロック周波数値を次回期間で前回予測クロック周波数値として使用の周波数検出部を備え、第1データを入力してFIFOに出力、第2クロック信号を現在期間での計測で生成の第2現在クロック周波数値と、現在予測クロック周波数値とからライト制御信号とリード制御信号を生成してFIFOに出力の演算部を備えるサンプリングレート変換装置で実行。
【選択図】図2

Description

本発明は、サンプリングレート変換装置に関し、特に、周波数も発生源も異なる二つのクロックを用いるサンプリングレート間におけるサンプリングレート変換を行う装置及びその方法に関する。
アナログ信号である音声データをデジタル信号へ変換(AD変換)する場合に、所定の時間に所定回数のサンプリングを行うことにより、その音声データをデジタル化する技術が知られている。音声信号の場合、サンプリング周波数が高いほど高い音の記録が可能となり、サンプリングレートの半分にあたる周波数成分までなら完全に元のアナログ信号に復元することができる。
サンプリングレートが低いほど、データ量を低減することが可能になるので、採取元のアナログ信号によっては、低いサンプリングレートでその音源からの信号をデジタルデータとして記録することが有効である場合が存在する。あるサンプリングレートでデジタル化された音声信号を、そのサンプリングレートに対応しない装置で再生しようとする場合、サンプリングレートが異なるために再生が不可能な場合が存在する。そのような不具合を解消するために、あるサンプリングレートでデジタル化された音声信号を異なるサンプリングレートのデジタル音声信号に変換する技術が知られている(例えば、特許文献1参照)。
図1は、特許文献1に記載されているサンプリングレート変換装置の構成を示すブロック図である。図1記載のクロック周波数が異なる2つのクロック間のサンプリングレート変換では、温度ドリフトや発振子のジッタ特性に依存してそれぞれのクロック周波数がダイナミックに変動する。このサンプリングレート変換装置は、周波数比検出部J2により入力用クロックと出力用クロックの周波数比Rを算出し、その結果をもとにfs変換演算部J1によりサンプリングレート変換を行っている。
周波数比Rは、出力クロックを基準として入力クロックの立ち上がりエッジのカウント値に基づいて、つまり実測値に基づいて求められる。
この周波数比検出部J2だけでは入力用クロック周波数の緩やかな変化に対応できずに誤差が蓄積し、その結果FIFOJ3においてアンダーランやオーバーランが発生してしまう可能性がある。そこで余裕度検出部J6を設けてFIFOJ3の状態をfs変換演算部J1にフィードバックすることで、FIFOJ3におけるアンダーランやオーバーランを防止している。
特許文献1に記載の技術は、周波数比発生部J2と余裕度検出部J6の2箇所から補正部J5に対して制御が行われる。また、図1に示される構成は、余裕度検出部6からfs変換演算部1への制御はフィードバックループとなっている。このような構成は回路の動作が不安定になることがある。また、補正データ発生部J4、補正部J5、余裕度検出部J6などの回路ブロックが必要となるため、装置の規模が大きくなってしまう。
FIFOJ3におけるアンダーランやオーバーランを防止しつつ構造が簡易で、且つ、精度が高いサンプリングレート変換装置が望まれる。
特開平11−112440号公報
本発明が解決しようとする課題は、周波数も発生源も異なる二つのクロックに基づくサンプリングレート間で高い精度で変換を行うサンプリングレート変換装置およびサンプリングレート変換方法を提供することにある。
本発明が解決しようとする他の課題は、簡易な回路で構成されたサンプリングレート変換装置を提供することにある。
以下に、[発明を実施するための最良の形態]で使用される符号または用語を用いて、課題を解決するための手段を説明する。これらの符号または用語は、[特許請求の範囲]の記載と[発明を実施するための最良の形態]との対応関係を明らかにするために付加されたものである。ただし、それらの符号または用語を、[特許請求の範囲]に記載されている発明の技術的範囲の解釈に用いてはならない。
第1のサンプリングレートによりサンプリングされた第1データを第2のサンプリングレートによりサンプリングされた第2データに変換するサンプリングレート変換装置において
第1クロック信号(clk1)に応答して、第1データを格納し、第2クロック信号(clk2)に応答して、前記第1データを第2データとして出力するFIFO(3)と、前記FIFO(3)は、直前に書込まれた前記第1データを前記第1データに更新するべきか否かを示すライト制御信号(disableフラグ)に基づいて前記第1データを格納し、読み出された第2データが次回期間にも読み出されるべきか否かを示すリード制御信号(holdフラグ)に基づいて読み出された第2データを出力し、
前記第1データを入力して前記FIFO(3)に出力し、現在期間に対する第2現在クロック周波数値と現在予測クロック周波数値(f(i))とから前記ライト制御信号(disableフラグ)と前記リード制御信号(holdフラグ)を生成して前記FIFO(3)に出力する演算部(1)とを具備し、
前記第2現在クロック周波数値は、前記現在期間における前記第2クロック信号(clk2)の周波数の計測値であり、前記現在予測クロック周波数値(f(i))は、現在期間における前記第1クロック信号(clk1)の周波数の予測値を表すサンプリングレート変換装置を使用してサンプリングレート変換を行う。
第1のサンプリングレートによりサンプリングされた第1データを第2のサンプリングレートによりサンプリングされた第2データに変換するサンプリングレート変換装置において
第1クロック信号(clk1)に応答して、第1データを格納し、第2クロック信号(clk2)に応答して、前記第1データを第2データとして出力するFIFO(3)と、前記FIFO(3)は、直前に書込まれた前記第1データを前記第1データに更新するべきか否かを示すライト制御信号(disableフラグ)に基づいて前記第1データを格納し、読み出された第2データが次回期間にも読み出されるべきか否かを示すリード制御信号(holdフラグ)に基づいて読み出された第2データを出力し、
前記第1データを入力して前記FIFO(3)に出力し、前記第1クロック信号(clk1)を現在期間において計測して第1現在クロック周波数値(g(i))を生成し、前記第1現在クロック周波数値(g(i))と前回予測クロック周波数値(f(i−1))から現在予測クロック周波数値(f(i))を生成し、前記現在予測クロック周波数値(f(i))を次回期間において前記前回予測クロック周波数値(f(i−1))として使用する周波数検出部(2)と、
前記第2クロック信号(clk2)を前記現在期間において計測することによって生成された第2現在クロック周波数値と、前記現在予測クロック周波数値(f(i))とから前記ライト制御信号(disableフラグ)と前記リード制御信号(holdフラグ)を生成して前記FIFO(3)に出力する演算部(1)とを具備するサンプリングレート変換装置を使用してサンプリングレート変換を行う。
そのサンプリングレート変換装置において、前記周波数検出部(2)は、前記第1クロック信号(clk1)に変えて前記第2クロック信号(clk2)を前記現在期間において計測して前記第1現在クロック周波数値(g(i))を生成し、前記演算部(1)は前記第2クロック信号(clk2)に変えて前記第1クロック信号(clk1)を前記現在期間において計測して前記第2現在クロック周波数値を生成するサンプリングレート変換装置を使用してサンプリングレート変換を行う。
これによって、一定期間測定したクロック数から周波数の変動をリアルタイムに検出することが可能になる。また前回算出した予測周波数と今回実際に計測した周波数との累積誤差を算出することが可能になり、累積誤差が0に近づくように予測周波数値を算出することで、長時間装置を動作させた場合でも正確な周波数比を用いたサンプリングレート変換が可能になる。
そのサンプリングレート変換装置において、前記FIFO(3)は、ライトポインタとリードポインタを有し、前記第1データが前記ライトポインタにより指定された領域に格納されたとき、前記ライトポインタはインクリメントされ、前記第2データが前記リードポインタにより指定された領域から読み出されたとき、前記リードポインタはインクリメントされ、前記ライト制御信号(disableフラグ)は、前記ライトポインタのインクリメントの禁止を制御し、前記リード制御信号(holdフラグ)は、前記リードポインタのインクリメントの禁止を制御するサンプリングレート変換装置を使用してサンプリングレート変換を行う。
そのサンプリングレート変換装置において、周波数測定期間である前記現在期間の時間間隔は、変動の度合いが激しいと予想される前記第1クロック信号に対しては短く、変動の度合いが激しくないと予想される前記第1クロック信号に対しては長いサンプリングレート変換装置を使用してサンプリングレート変換を行う。
そのサンプリングレート変換装置において、前記周波数検出部(2)は、前記前回予測クロック周波数値(f(i−1))と前記第1現在クロック周波数値(g(i))との差と、前回累積誤差Δ(i−1)に基づいて現在までの累積誤差である現在累積誤差Δ(i)を決定し、前回累積誤差Δ(i−1)を、決定したその現在累積誤差Δ(i)に更新し、前記現在累積誤差Δ(i)は次回期間において前記前回累積誤差Δ(i−1)として使用されるサンプリングレート変換装置を使用してサンプリングレート変換を行う。
そのサンプリングレート変換装置において、前記周波数検出部(2)は、前記第1現在クロック周波数値(g(i))と前記現在累積誤差Δ(i)のk倍(0<k≦1)した値とに基づいて前記現在予測クロック周波数値(f(i))を決定するサンプリングレート変換装置を使用してサンプリングレート変換を行う。
そのサンプリングレート変換装置において、前記kは、前記現在予測クロック周波数値(f(i))が前記第1現在クロック周波数値(g(i))に近づく速度を制御するためのパラメータであり、前記周波数検出部(2)は、クロック周波数の変動の度合いに基づいて前記kの値を決定するサンプリングレート変換装置を使用してサンプリングレート変換を行う。
このような値(k)を用いることで、例えば実際のクロックの周波数値が振動しているような場合には予測周波数の振動を抑えるようにkの値を小さく設定することで、予測周波数を安定させることができる。また、実際のクロックの周波数値が急に大きく変動してしまうような場合には、予測周波数が実測周波数の変動に追従できるようにkの値を大きく設定することで、予測周波数を安定させることができる。
第1のサンプリングレートによりサンプリングされた第1データを第2のサンプリングレートによりサンプリングされた第2データに変換するサンプリングレート変換方法において、
第1クロック信号(clk1)に応答して、第1データを格納するステップと、
第2クロック信号(clk2)に応答して、前記第1データを第2データとして出力するステップと、
直前に書込まれた前記第1データを前記第1データに更新するべきか否かを示すライト制御信号(disableフラグ)に基づいて前記第1データを格納するステップと、
読み出された第2データが次回期間にも読み出されるべきか否かを示すリード制御信号(holdフラグ)に基づいて第2データを読み出すステップと、
現在期間に対する前記第2クロック信号(clk2)の周波数の計測値である第2現在クロック周波数値と、前記第1クロック信号(clk1)のクロック信号の周波数の予測値を表す現在予測クロック周波数値(f(i))とから前記ライト制御信号(disableフラグ)と前記リード制御信号(holdフラグ)を生成して出力するステップ
を具備するサンプリングレート変換方法を使用してサンプリングレート変換を行う。
第1のサンプリングレートによりサンプリングされた第1データを第2のサンプリングレートによりサンプリングされた第2データに変換するサンプリングレート変換方法において、
第1クロック信号(clk1)に応答して、第1データを格納するステップと、
第2クロック信号(clk2)に応答して、前記第1データを第2データとして出力するステップと、直前に書込まれた前記第1データを前記第1データに更新するべきか否かを示すライト制御信号(disableフラグ)に基づいて前記第1データを格納するステップと、
読み出された第2データが次回期間にも読み出されるべきか否かを示すリード制御信号(holdフラグ)に基づいて読み出された第2データを出力するステップと、
前記第1クロック信号(clk1)を現在期間において計測して第1現在クロック周波数値(g(i))を生成するステップと、
前記第1現在クロック周波数値(g(i))と前回予測クロック周波数値(f(i−1))から現在予測クロック周波数値(f(i))を生成するステップと、
前記現在予測クロック周波数値(f(i))を次回期間において前記前回予測クロック周波数値(f(i−1))として使用するステップと、
前記第2クロック信号(clk2)を前記現在期間において計測することによって生成された第2現在クロック周波数値と、前記現在予測クロック周波数値(f(i))とから前記ライト制御信号(disableフラグ)と前記リード制御信号(holdフラグ)を生成するステップ
を具備するサンプリングレート変換方法を使用してサンプリングレート変換を行う。
そのサンプリングレート変換方法において、
前記第1クロック信号(clk1)に変えて前記第2クロック信号(clk2)を前記現在期間して前記第1現在クロック周波数値(g(i))を生成するステップと、
前記第2クロック信号(clk2)に変えて前記第1クロック信号(clk1)を前記現在期間において計測して前記第2クロック周波数値を生成するステップ
を具備するサンプリングレート変換方法を使用してサンプリングレート変換を行う。
そのサンプリングレート変換方法において、
前記第1データがライトポインタにより指定された領域に格納されたとき、前記ライトポインタがインクリメントされるステップと、
前記第2データがリードポインタにより指定された領域から読み出されたとき、前記リードポインタがインクリメントされるステップと、
前記ライト制御信号(disableフラグ)により、前記ライトポインタのインクリメントの禁止を制御するステップと、
前記リード制御信号(holdフラグ)により、前記リードポインタのインクリメントの禁止を制御するステップ
を具備するサンプリングレート変換方法を使用してサンプリングレート変換を行う。
そのサンプリングレート変換方法において、
周波数測定期間である前記現在期間の時間間隔は、変動の度合いが激しいと予想される前記第1クロック信号に対しては短く、変動の度合いが激しくないと予想される前記第1クロック信号に対しては長い
サンプリングレート変換方法を使用してサンプリングレート変換を行う。
そのサンプリングレート変換方法において、
前記前回予測クロック周波数値(f(i−1))と前記第1現在クロック周波数値(g(i))との差と前回累積誤差Δ(i−1)に基づいて現在までの累積誤差である現在累積誤差Δ(i)を決定し、前回累積誤差Δ(i−1)を、決定したその現在累積誤差Δ(i)に更新するステップと、
前記現在累積誤差Δ(i)は次回期間において前記前回累積誤差Δ(i−1)として使用されるステップ
を具備するサンプリングレート変換方法を使用してサンプリングレート変換を行う。
そのサンプリングレート変換方法において、
前記第1現在クロック周波数値(g(i))と前記現在累積誤差Δ(i)のk倍(0<k≦1)した値とに基づいて前記現在予測クロック周波数値(f(i))を決定するサンプリングレート変換方法を使用してサンプリングレート変換を行う。
そのサンプリングレート変換方法において、前記kは、前記現在予測クロック周波数値f(i)が前記第1現在クロック周波数値g(i)に近づく速度を制御するためのパラメータであり、
クロック周波数の変動の度合いに基づいて決定されるサンプリングレート変換方法を使用してサンプリングレート変換を行う。
また、上記の解決手段を別の表現で述べるならば、第1クロック信号(clk1)と第2クロック信号(clk2)とが入力され、前記第1クロック信号(clk1)を現在期間において計測し、前記計測により算出された第1現在クロック周波数値(g(i))と、予め予測された前回予測クロック周波数値(f(i−1))と、前回累積誤差(Δ(i−1))とに基づいて現在累積誤差(Δ(i))を算出する周波数検出手段(2)と、前記周波数検出手段(2)は前回予測クロック周波数値(f(i−1))と第2クロック信号(clk2)を前記現在期間において計測することによって生成された第2現在クロック周波数値を出力し、
第1サンプリングレートでデジタル化された第1データを第2サンプリングレートに対応する第2データに変換するための演算を行う演算手段(1)と、前記演算手段(1)は前記前回予測クロック周波数値(f(i−1))と前記第2現在クロック周波数値を入力し、前記前回予測クロック周波数値(f(i−1))と前記第2現在クロック周波数値とに対応して前記演算を実行し、
前記第1クロック信号(clk1)に同期して入力された前記第1データを、前記演算手段(1)の出力に基づいて前記第2クロック信号(clk2)に同期して出力するFIFO(3)とを備え、
前記周波数検出手段(2)は、前記現在期間の経過に応答して前記現在累積誤差(Δ(i))と前記第1現在クロック周波数値(g(i))に対応する現在予測クロック周波数値を算出し、前記現在予測クロック周波数値f(i)を次回期間において前記前回予測クロック周波数値(f(i−1))として使用するサンプリングレート変換装置を使用してサンプリングレート変換を行う。
そのサンプリングレート変換装置において、前記周波数検出手段(2)は、0より大きく1以下の範囲の任意の乗算値を設定され、前記現在累積誤差(Δ(i))に前記乗算値を乗算した値に前記第1現在クロック周波数値(g(i))を加算し、前記加算結果を前記現在予測クロック周波数値f(i)とするサンプリングレート変換装置を使用してサンプリングレート変換を行う。
そのサンプリングレート変換装置において、前記演算手段(1)は前記第1クロック信号(clk1)の周波数変動度合いを検知し、検出結果に基づいて前記乗算値の値を決定するサンプリングレート変換装置を使用してサンプリングレート変換を行う。
予測クロック周波数値と第2クロック周波数値とが入力され、第1クロック信号(clk1)に同期して前記予測クロック周波数値を累積加算した値を保持する第1累積加算部と、
前記第1クロック信号(clk1)に同期して前記第2クロック周波数値を累積加算した値を保持する第2累積加算部と、前記第1累積加算部出力と前記第2累積加算部出力を比較し、前記第1累積加算部出力が前記第2累積加算部出力より小さい場合に保持フラグをアクティブにする第1比較部とを備える演算手段(1)と、
前記第1クロック信号(clk1)に同期して入力された第1データを、前記第1比較部出力に基づいて前記第2クロック信号(clk2)に同期して出力するFIFO(3)とを具備する、サンプリングレート変換装置を使用してサンプリングレート変換を行う。
そのサンプリングレート変換装置において、前記演算手段(1)は前記第1累積加算部出力と前記第2累積加算部出力を比較し、前記第2累積加算部出力が前記第1累積加算部出力より小さい場合に待機フラグをアクティブにする第2比較部を備え、前記FIFO(3)は前記第1比較部出力と前記第2比較部出力に基づいて前記第1データを前記第2クロック信号(clk2)に同期して出力するサンプリングレート変換装置を使用してサンプリングレート変換を行う。
そのサンプリングレート変換装置において、前記演算手段(1)は、前記第1クロック信号(clk1)に同期して前記予測クロック周波数値を累積加算した値を保持する第1レジスタと、前記第1クロック信号(clk1)に同期して前記第2クロック周波数値を累積加算した値を保持する第2レジスタと、前記第1レジスタ出力と前記第2レジスタ出力を比較する第1比較器を備え、前記第1比較器は、前記第1レジスタ出力より大きい前記第2レジスタ出力の検出に応答して保持フラグをアクティブにし、前記第2レジスタは、前記保持フラグを入力され前記保持フラグに対応して、累積加算動作を保留し、前記第2レジスタ出力値を保持し、前記FIFO(3)は前記第1比較器出力に基づいて前記第1データを前記第2クロック信号(clk2)に同期して出力するサンプリングレート変換装置を使用してサンプリングレート変換を行う。
そのサンプリングレート変換装置において、前記演算手段(1)は、前記第1クロック信号(clk1)に同期して前記予測クロック周波数値を累積加算した値を保持する第1レジスタと、前記第1クロック信号(clk1)に同期して前記第2クロック周波数値を累積加算した値を保持する第2レジスタと、前記第1レジスタ出力と前記第2レジスタ出力を比較する第2比較器を備え、
前記第2比較器は、前記第2レジスタ出力より大きい前記第1レジスタ出力の検出に応答して待機フラグをアクティブにし、前記第1レジスタは、前記待機フラグを入力され前記待機フラグに対応して、累積加算動作を保留し、前記第1レジスタ出力値を保持し、前記FIFO(3)は前記第1比較器出力と前記第2比較器出力とに基づいて前記第1データを前記第2クロック信号(clk2)に同期して出力するサンプリングレート変換装置を使用してサンプリングレート変換を行う。
そのサンプリングレート変換装置において、前記FIFO(3)は、前記第1クロック信号(clk1)に同期して前記第1データに前記保持フラグを追加したデータが書込まれるメモリと、前記メモリにデータを書込むためのライトポインタをインクリメントするレジスタとを備え、
前記レジスタは、前記待機フラグを入力され、前記待機フラグに応答して前記データを上書きするためにライトポインタのインクリメントを禁止するサンプリングレート変換装置を使用してサンプリングレート変換を行う。
そのサンプリングレート変換装置において、前記FIFO(3)は前記メモリからデータを読み出すためのリードポインタをインクリメントするレジスタを備え、前記メモリは、前記第2クロック信号(clk2)に応答して前記データの読出しを行い、前記レジスタは、読み出された前記データに追加された保持フラグに応答して、前記リードポインタのインクリメントを禁止するサンプリングレート変換装置を使用してサンプリングレート変換を行う。
第1クロック信号(clk1)と第2クロック信号(clk2)とが入力され、入力された前記第1クロック信号(clk1)を現在期間において計測し、前記計測により算出された第1現在クロック周波数値(g(i))と予め予測された前回予測クロック周波数値(f(i−1))と、前回累積誤差(Δ(i−1))とに基づいて現在累積誤差(Δ(i))を算出するステップと、
第2クロック信号(clk2)を前記現在期間において計測して第2現在クロック周波数値を生成するステップと、
第1サンプリングレートでデジタル化された第1データを第2サンプリングレートに対応する第2データに変換するため、前記前回予測クロック周波数値(f(i−1))と前記第2現在クロック周波数値とに対応して演算を実行するステップと、
前記第2現在クロック周波数値と前記前回予測クロック周波数値(f(i−1))とを出力するステップと、
前記現在期間の経過に応答して前記現在累積誤差(Δ(i))と前記第1現在クロック周波数値(g(i))に対応する現在予測クロック周波数値f(i)を算出するステップと、
前記現在予測クロック周波数値f(i)を次回期間において前記前回予測クロック周波数値(f(i−1))として使用するステップ
を具備するサンプリングレート変換方法でサンプリングレート変換を行う。
そのサンプリングレート変換方法において、
0より大きく1以下の範囲の任意の乗算値を設定され、前記現在累積誤差(Δ(i))に前記乗算値を乗算した値に前記第1現在クロック周波数値(g(i))を加算し、前記加算結果を前記現在予測クロック周波数値f(i)とするステップ
を具備するサンプリングレート変換方法でサンプリングレート変換を行う。
そのサンプリングレート変換方法において、
前記第1クロック信号(clk1)の周波数変動度合いを検知するステップと、検出結果に基づいて前記乗算値の値を決定するステップ
を具備するサンプリングレート変換方法でサンプリングレート変換を行う。
第1クロック信号(clk1)に同期して前記予測クロック周波数値を累積加算した第1累積加算値を保持するステップと、
前記第1クロック信号(clk1)に同期して前記第2クロック周波数値を累積加算した第2累積加算値を保持するステップと、
前記第1累積加算値と前記第2累積加算値を比較するステップと、
前記第1累積加算値より大きい前記第2累積加算値の検出に応答して保持フラグをアクティブにするステップと、
前記保持フラグに基づいて前記第1データを前記第2クロック信号(clk2)に同期して出力するステップ
を具備するサンプリングレート変換方法でサンプリングレート変換を行う。
そのサンプリングレート変換方法において、
前記第1累積加算値と前記第2累積加算値を比較するステップと、
前記第2累積加算値より大きい前記第1累積加算値の検出に応答して待機フラグをアクティブにするステップと、
前記保持フラグと前記待機フラグとに基づいて前記第1データを前記第2クロック信号(clk2)に同期して出力するステップ
を具備するサンプリングレート変換方法でサンプリングレート変換を行う。
そのサンプリングレート変換方法において、
前記第1クロック信号(clk1)に同期して前記予測クロック周波数値を累積加算した値を第1レジスタに保持するステップと、
前記第1クロック信号(clk1)に同期して前記第2クロック周波数値を累積加算した値を第2レジスタに保持するステップと、
前記第1レジスタ出力と前記第2レジスタ出力を比較するステップと、
前記第1レジスタ出力より大きい前記第2レジスタ出力の検出に応答して保持フラグをアクティブにするステップと、
前記第2レジスタが前記保持フラグを入力され前記保持フラグに対応して、累積加算動作を保留し、前記第2レジスタ出力値を保持するステップと、
前記第1比較器出力に基づいて前記第1データを前記第2クロック信号(clk2)に同期して出力するステップ
を具備するサンプリングレート変換方法でサンプリングレート変換を行う。
そのサンプリングレート変換方法において、
前記第1レジスタ出力と前記第2レジスタ出力を比較するステップと、
前記第2レジスタ出力より大きい前記第1レジスタ出力の検出に応答して待機フラグをアクティブにするステップと、
前記第1レジスタが前記待機フラグを入力され前記待機フラグに対応して、累積加算動作を保留し、前記第1レジスタ出力値を保持するステップと、
前記第1比較器出力と前記第2比較器出力に基づいて前記第1データを前記第2クロック信号(clk2)に同期して出力するステップ
を具備するサンプリングレート変換方法でサンプリングレート変換を行う。
そのサンプリングレート変換方法において、
前記第1クロック信号(clk1)に同期して前記第1データに前記保持フラグを追加したデータをメモリに書込むステップと、
前記メモリにデータを書込むためのライトポインタをインクリメントするステップと、
前記待機フラグを入力され、前記待機フラグに応答してメモリにデータを書込むライトポインタのインクリメントを保留するステップ
を具備するサンプリングレート変換方法でサンプリングレート変換を行う。
そのサンプリングレート変換方法において、
前記メモリからデータを読み出すためのリードポインタをインクリメントするステップと、
前記第2クロック信号(clk2)に同期して前記データの読出しをするステップと、
読み出された前記データに追加された保持フラグに応答して、前記リードポインタのインクリメントを保留するステップ
を具備するサンプリングレート変換方法でサンプリングレート変換を行う。
本発明は、周波数も発生源も異なる二つのクロック信号に基づくサンプリングレート間で高い精度で変換された出力信号を生成するサンプリングレート変換装置、およびサンプリングレート変換方法を提供することが可能になるという効果がある。
本発明はさらに、簡易な回路で構成された高精度のサンプリングレート変換装置を提供することが可能になるという効果がある。
以下に図面を用いて本発明を実施するための最良の形態について述べる。
図2は、本発明を実施するための最良の形態におけるサンプリングレート変換装置の構成を示すブロック図である。以下の説明において入力側クロック信号clk1の予測周波数を算出する場合を例に述べるが、出力側クロックclk2の予測周波数を算出してサンプリングレート変換を行う場合でも、同様の動作で本発明におけるサンプリングレート変換を実現することが可能である。図2を参照すると、本実施の形態に述べるサンプリングレート変換装置はfs変換演算部1と周波数比検出部2とFIFO3とで構成される。
fs変換演算部1は、周波数比検出部2から出力された予測周波数と実測周波数と更新通知信号に基づいてサンプリングレート変換の為に必要な演算処理を行う演算機能ブロックである。
周波数比検出部2は、入力側クロック信号clk1と出力側クロック信号clk2と測定期間設定信号に基づいてサンプリングレート変換に必要な周波数値を算出する周波数比検出機能ブロックである。周波数比検出部2は入力クロック信号clk1の周波数がダイナミックに変動することを予測し、その変動に対応して予測周波数を求める。実測周波数は、周波数比検出部2に入力された出力側クロック信号clk2を周波数比検出部2が備えるカウンタが測定期間設定信号によって設定された期間カウントした値である。
FIFO3はfs変換演算部1から出力された音声データを、fs変換演算部1から出力されたholdフラグとdisableフラグに基づいて、出力側クロック信号clk2に同期して新たな音声データとして出力することによってサンプリングレートの変換を行う。
図3は周波数比検出部2が予測周波数を算出する動作を示すフローチャートである。図3に示される実測周波数g(i)は、周波数比検出部2に備えられたカウンタが入力側クロック信号clk1を実際にカウントして得た周波数を示す。“i”は誤差補正回数を表し、一定時間毎にインクリメントされる。
実測周波数f(i)は、周波数比検出部2が予測する周波数を示し、
f(i)={g(i)+kΔ(i)} … [1]
で示される値をとる。
また、累積誤差Δ(i)は予測周波数f(i−1)と実測周波数g(i)と累積誤差Δ(i−1)から算出される累積誤差を示し、
Δ(i)=g(i)−{f(i−1)−Δ(i−1)} … [2]
(または、Δ(i+1)=g(i+1)−{f(i)−Δ(i)} … [2]’)
で示される値をとる。
ここで表すkは収束速度制御用パラメータであり、0<k≦1の範囲の任意の値を取る。kの値を温度ドリフトやジッタ特性に応じて設定することで、装置に合わせて予測周波数f(i)の収束速度を変化させることができる。例えば、実際の入力側クロック信号clk1の実測周波数g(i)が振動しているように変化する場合に、kの値を大きく設定してしまうと、予測周波数f(i)も振動してしまう。このような場合にはkの値を小さく設定すれば、予測周波数f(i)の振動を抑え、予測周波数f(i)を安定させることができる。また、入力側クロック信号clk1の実測周波数g(i)が急に大きく変動してしまうような場合に、kの値を小さく設定してしまうと、予測周波数f(i)の変化はゆるやかになってしまうため、実測周波数の変動に追従することができない。このような場合にはkの値を大きく設定すれば、予測周波数f(i)は実測周波数g(i)の変動に追従することができるようになる。
図3を参照すると、周波数比検出部2の動作は本実施の形態におけるサンプリングレート変換装置の動作開始時(例えばサンプリングレート変換装置の電源投入時やリセット時など)に対応して開始する。
ステップS101において、周波数比検出部2は予め設定されレジスタに格納された初期値の読み込みを行う。ステップS102において、出力側クロック信号clk2を基準としてクロック数を測定する。例えば入力側クロック信号clk1の立ち上がりエッジをカウントするカウンタを用意し、出力側クロック信号clk2で動作するタイマーを用いて一定時間毎にそのカウンタの値を取り込むことにより実現する。
ステップS103において、周波数比検出部2は測定期間設定信号で設定された測定期間が経過したかどうかの監視を行い、測定期間が経過した場合ステップS104に進み、設定された測定期間が経過していない場合、クロック数のカウントを継続する。測定期間の設定は、入力側クロック信号clk1の実際の周波数と予測周波数の誤差が大きいことが予想される場合や、変動が激しい場合などは短い期間を設定する。また、入力側クロック信号clk1の実際の周波数と予測周波数の誤差が小さいことが予想される場合は、長い期間を設定する。このように設定することで安定した動作を実現することができる。通常動作の場合、動作開始時には測定期間を長めに設定しておき、算出された累積誤差に対応して、測定期間を設定し直すことが望ましい。
ステップS104において、周波数比検出部2は一定時間にカウントされたクロック数より実測周波数g(i)を計測し、ステップS105において、実測周波数g(i)の計測完了に応答して累積誤差Δ(i)を算出する。ステップS106において、周波数比検出部2は計測した実測周波数g(i)と累積誤差Δ(i)から予測周波数f(i)を算出する。実測周波数g(i)、累積誤差Δ(i)、予測周波数f(i)の各々の算出が完了した周波数比検出部2は、ステップS107においてサンプリングレート変換装置の動作を終了させる信号が入力されたかどうかの判断を行う。その判断の結果、終了信号を受信した場合には処理を終了する。そのような信号を受信していない場合、ステップS102の処理に戻って、ステップ102〜ステップ107の処理を続ける。この動作によって、予測周波数f(i)は測定期間設定信号で設定された時間毎に更新される。
以下に具体的な周波数を使用して本実施の形態の動作を述べる。図4は、予測周波数f(i)、入力側クロック信号clk1の実測周波数g(i)、及び累積誤差Δ(i)が時間経過で移り変わる動作を示す図である。図4には、入力される音声データのサンプリングレートが38000Hz付近であり、期間設定信号で設定された測定期間が1秒間の場合を例に示すが、これは本発明の入力音声データのサンプリングレートや測定期間を限定するものではない。また、図4はk=1の場合の動作を示す。
図4を参照するとi=0の時、初期設定予測周波数f(0)、初期設定累積誤差Δ(0)が
f(i)=f(0)=38000
Δ(i)=Δ(0)=0
に設定されていた場合を示している。測定期間の経過に応答して周波数比検出部2は実測周波数g(i)を計測する。測定期間が1秒間なので発振子の精度が非常に高ければ、i=1における実測周波数g(1)=38000になる。図4を参照すると、周波数比検出部2が実際に計測したi=1における実測周波数g(1)は、
g(1)=38008
である。
ここで周波数比検出部2は、初期設定予測周波数f(0)、初期設定累積誤差Δ(0)及び実測周波数g(1)から累積誤差Δ(1)を算出する。[2]式より周波数比検出部2は、
Δ(1)=g(1)−{f(0)−Δ(0)}=38008−(38000−0)
=8
を算出する。周波数比検出部2は、この値を新たな累積誤差Δ(1)として記憶する。さらに周波数比検出部2は、その累積誤差Δ(1)と実測周波数g(1)とを用いて予測周波数f(1)を算出する。今、k=1なので[1]式より周波数比検出部2は、
f(1)={g(1)+Δ(1)}=38008+8
=38016
を算出する。周波数比検出部2はこの“38016”を新たな予測周波数f(1)として記憶する。
更に時間が経過し、i=2になった場合、周波数比検出部2はi=2における実測周波数g(2)を計測する。図4を参照すると周波数比検出部2が実際に計測したi=2における実測周波数g(i)は
g(2)=38012
である。ここで周波数比検出部2は、i=1で記憶した予測周波数f(1)と累積誤差Δ(1)よりi=2における累積誤差Δ(2)を算出する。[2]式より周波数比検出部2は、
Δ(2)=g(2)−{f(1)−Δ(1)}=38012−(38016−8)
=4
を算出する。ここでi=1の場合と同様に周波数比検出部2はこの値を新たな累積誤差Δ(2)として記憶する。更に周波数比検出部2は、その累積誤差Δ(2)と実測周波数g(2)を用いて予測周波数f(2)を算出する。やはり、k=1なので[1]式より
f(2)={g(2)+Δ(2)}=38012+4
=38016
となる。同様の動作を終了信号(例えば、電源断を示す信号)を受信するまで実行する。周波数比検出部2は、iの値をインクリメントしながら、図3に示すフローチャートの動作を繰り返すことで、予測周波数f(i)を一定期間毎に算出する。
今回計測された実測周波数g(i+1)から新たな累積誤差Δ(i+1)を算出する場合、新たな累積誤差Δ(i+1)は、今回計測された実測周波数g(i+1)と前期間において予測された予測周波数f(i)と前期間に算出された累積誤差Δ(i)とに基づいて算出される。前期間において予測された予測周波数f(i)が、更にその前の期間に予測された予測周波数f(i−1)よりも実測周波数g(i+1)に近づいているならば、新たな累積誤差Δ(i+1)は前回の累積誤差Δ(i)よりも絶対値が小さくなる。その新たな累積誤差Δ(i+1)に基づいて新たな予測周波数f(i+1)が算出されるため、iの値をインクリメントしながら予測周波数を算出することで、実測周波数が緩やかに変動する場合に精度の高い予測周波数の算出が可能になる。
図5は、図4と同様に予測周波数f(i)、入力側クロック信号clk1の実測周波数g(i)、及び累積誤差Δ(i)が時間経過で移り変わる動作を示す図である。図5には、入力される音声データのサンプリングレートが38000Hz付近であり、測定期間が1秒間の場合を例に示すが、これは本発明の入力音声データのサンプリングレートや測定期間を限定するものではない。また、図5はk=0.5の場合の動作を示す。
図5を参照すると、i=0のとき、初期設定予測周波数f(0)、初期設定累積誤差Δ(0)が
f(i)=f(0)=38000
Δ(i)=Δ(0)=0
に設定されていた場合を示している。測定期間の経過に応答して周波数比検出部2は実測周波数g(i)を計測する。設定期間が1秒間なので発振子の精度が非常に高ければ、i=1における実測周波数g(1)=38000になる。図5を参照すると、周波数比検出部2が実際に計測したi=1における実測周波数g(1)は
g(1)=38008
である。
ここで周波数比検出部2は初期設定予測周波数f(0)、初期設定累積誤差Δ(0)及び実測周波数g(1)から累積誤差Δ(1)を算出する。[2]式より周波数比検出部2は、
Δ(1)=g(1)−{f(0)−Δ(0)}=38008−(38000−0)
=8
を算出する。周波数比検出部2はこの値を新たな累積誤差Δ(1)として記憶する。さらに周波数比検出部2はその累積誤差Δ(1)と実測周波数g(1)とを用いて予測周波数f(1)を算出する。今、k=0.5なので[1]式より周波数比検出部2は、
f(1)={g(1)+0.5・Δ(1)}=38008+4
=38012
を算出する。周波数比検出部2はこの“38012”を新たな予測周波数f(1)として記憶する。
更に時間が経過し、i=2になった場合、周波数比検出部2はi=2における実測周波数g(2)を計測する。図5を参照すると周波数比検出部2が実際に計測したi=2における実測周波数g(i)は
g(2)=38012
である。ここで周波数比検出部2はi=1で記憶した予測周波数f(1)と累積誤差Δ(1)よりi=2における累積誤差Δ(2)を算出する。[2]式より周波数比検出部2は、
Δ(2)=g(2)−{f(1)−Δ(1)}=38012−(38012−8)
=8
を算出する。ここでi=1の場合と同様に周波数比検出部2はこの値を新たな累積誤差Δ(2)として記憶する。更に周波数比検出部2は、その累積誤差Δ(2)と実測周波数g(2)を用いて予測周波数f(2)を算出する。やはり、k=0.5なので[1]式より、
f(2)={g(2)+0.5・Δ(2)}=38012+4
=38016
となる。同様の動作を終了信号(例えば、電源断を示す信号)を受信するまで実行する。周波数比検出部2は、iの値をインクリメントしながら、図3に示すフローチャートの動作を繰り返すことで、予測周波数f(i)を一定期間毎に算出する。
今回計測された実測周波数g(i+1)から新たな累積誤差Δ(i+1)を算出する場合、新たな累積誤差Δ(i+1)は、今回計測された実測周波数g(i+1)と前期間において予測された予測周波数f(i)と前期間に算出された累積誤差Δ(i)とに基づいて算出される。前期間において予測された予測周波数f(i)が、更にその前の期間に予測された予測周波数f(i−1)よりも実測周波数g(i+1)に近づいているならば、新たな累積誤差Δ(i+1)は前回の累積誤差Δ(i)よりも絶対値が小さくなる。その新たな累積誤差Δ(i+1)に基づいて新たな予測周波数f(i+1)が算出されるため、iの値をインクリメントしながら予測周波数を算出することで、実測周波数が緩やかに変動する場合に精度の高い予測周波数の算出が可能になる。
これによって、予測周波数f(i)を求めるときに、実測周波数g(i)だけでなく累積誤差Δ(i)の値も加味することにより、サンプリングレート変換装置を長時間動作させたとしても誤差の影響でバッファあふれやデータの欠損が発生することなくサンプリングレート変換を行うことができる。すなわち、周波数比検出部2が累積誤差Δ(i)が0に近づくように動作するため、誤差の影響によるバッファあふれが発生しない。したがって、FIFO3の余裕度を監視する必要も無くなり、結果として装置の規模を小さくすることができる。
図6は予測周波数f(i)、入力側クロック信号clk1の実測周波数g(i)が時間経過で移り変わる動作を示すグラフである。図6は、実測周波数g(i)がi=1、2、3、4のときにそれぞれ、実測周波数g(1)=38008、実測周波数g(2)=38012、実測周波数g(3)=38014、実測周波数g(4)=38016の値を取った場合のk=1における予測周波数f(i)とk=0.5における予測周波数f(i)を示している。上述のようにkは収束速度を制御するためのパラメータであり、kを0<k≦1の任意の値に設定することで予測周波数f(i)が実測周波数g(i)に近づく速度を制御することができる。図6を参照すると、kの値が0に近いほど収束速度は遅いが、収束するまでの予測周波数f(i)の変動は小さくなる。逆にkの値が1に近いほど収束速度は速いが、収束するまでの予測周波数f(i)の変動は大きくなる。したがって、kの値を温度ドリフトやジッタ特性に応じて設定することで、装置に合わせて予測周波数f(i)の収束速度を変化させることができる。
図7はfs変換演算部1の具体的な回路構成の一例を示す図である。図7を参照すると、fs変換演算部1は、レジスタ101とコンパレータ102、103、112、113とレジスタ104、105と加算器106、107とセレクタ108、109とレジスタ110、111とANDゲート114、115とで構成される。
レジスタ101は入力音声データを一時的に保持するレジスタである。入力音声データs102を一時的に保持し、FIFO3に対して音声データs103として出力する。コンパレータ102、112とANDゲート115によって2つの入力信号の大小を比較する第1比較機能ブロックが構成される。第1比較機能ブロックは、予測周波数の累積加算値と出力側クロック信号clk2の周波数の累積加算値とを比較し、出力側クロック信号clk2の周波数の累積加算値が予測周波数の累積加算値に比較して大きいときにholdフラグをアクティブにする。また、コンパレータ103、113とANDゲート114によって第1比較機能ブロックと同様の2つの入力信号の大小を比較する第2比較機能ブロックが構成される。第2比較機能ブロックは予測周波数の累積加算値と出力側クロック信号clk2の周波数の累積加算値とを比較し、出力側クロック信号clk2の周波数の累積加算値が予測周波数の累積加算値に比較して小さいときにdisableフラグをアクティブにする。
レジスタ104は予測周波数を累積加算するためのレジスタである。加算器106から出力された信号s108が入力され、入力された値を保持する。加算器106は、2つの入力信号の値を加算する加算器である。レジスタ104出力s107とセレクタ108出力s110とを加算し、信号s108を出力する。セレクタ108は、2入力1出力のセレクタである。ANDゲート114から出力されたセレクト信号であるs105が1のときはs113の値が出力され、s105が0のときはs112の値が出力され、出力された信号s110は加算器106に入力される。
レジスタ105は出力側クロック信号clk2の実測周波数を累積加算するためのレジスタである。加算器107から出力された信号s109が入力され、入力された値を保持する。加算器107は加算器106と同様の、2つの入力信号の値を加算する加算器である。レジスタ105出力s106とセレクタ109出力s111とを加算し、信号s109を出力する。セレクタ109はセレクタ108と同様の2入力1出力のセレクタである。ANDゲート115から出力されたセレクト信号であるs104が1のときはs115の値が出力され、s104が0のときはs114の値が出力され、出力された信号s111は加算器107に入力される。
レジスタ110は予測周波数を格納するレジスタである。更新通知信号s116が1のときに、予測周波数を示す信号s117の値を取り込む。レジスタ111は、出力側クロック信号clk2の実測周波数を格納するレジスタである。更新通知信号s116が1のときに出力側クロック信号clk2の実測周波数を示す信号s118の値を取り込む。
図8は周波数比検出部2の具体的な回路構成の一例を示す図である。図8を参照すると、周波数比検出部2はレジスタ201、204、207、209、210、211、214、215と加算器202、205、206と乗算回路203とカウンタ208、216とクロック同期回路212と比較回路213とで構成される。
レジスタ201は予測周波数を保持するレジスタである。レジスタ210から出力された信号s207がアクティブのときに加算器202から出力された信号s204の値を取り込む。加算器202は2つの入力信号の値を加算する加算器である。加算器202は乗算回路203からの出力s205とレジスタ207からの出力s206を加算する。乗算回路203はレジスタ204から出力された信号s211をk倍した信号であるs205を出力する。kの値は0<k≦1の範囲内で任意に変更可能である。また、設定により入力されるクロック信号の周波数変動度合いに適した値になるように自動で変更するようにすることも可能である。このようなkを用いることで、例えば、入力されるクロック信号が周波数変動の激しいクロックであった場合、周波数比検出手段2はkの値を1に近い値に設定することで、予測周波数が収束する速度を早め、激しい周波数変動に対応することが可能になる。
レジスタ204は累積誤差の値を保持するレジスタである。レジスタ211から出力された信号s208がアクティブのときに、加算器205から出力された信号s209の値を取り込む。加算器205は2つの入力信号の値を加算する加算器である。加算器205はレジスタ204からの出力であるs211と加算器206からの出力であるs210を加算する。加算器206は2つの入力信号の値を加算する加算器である。加算器206はレジスタ201からの出力s201の2の補数をとり、レジスタ207からの出力s206に加算する。
レジスタ207は入力側クロックclk1の実測周波数値を保持するレジスタである。クロック同期回路212から出力された信号s212がアクティブのときに、カウンタ208から出力される信号s213の値を取り込む。カウンタ208は入力側クロック信号clk1であるs214の立ち上がりエッジに同期して、値を1ずつインクリメントするカウンタである。クロック同期回路212からの信号s212がアクティブになった時に、値を1に戻す。
レジスタ209は更新通知信号s202を出力するレジスタである。レジスタ210はレジスタ201の更新タイミング信号s207を作り出すためのレジスタである。レジスタ211はレジスタ204の更新タイミング信号s208を作り出すためのレジスタである。
次に、クロック同期回路212について説明する。出力側クロック信号clk2であるs219に同期した信号s216が入力されると、クロック乗せ換え動作を行い、入力側クロックに同期した信号s212を出力する。比較回路213は入力された2つの信号の値を比較し、同じ値かどうかの判定をする回路である。比較回路213による信号比較の結果、入力された2つの信号が同じ値である場合には出力信号s216の値をアクティブにする。比較回路213の出力信号であるs216は、例えば、レジスタ214に取りこまれたs218の値が44100で、出力側クロック信号clk2の周波数が44100Hzである場合には、1秒間に一回アクティブになる。
レジスタ214は測定期間設定信号s218を取り込むレジスタである。レジスタ215は出力側クロック信号clk2の周波数値を保持するレジスタである。レジスタ215は比較回路213から出力された信号s216がアクティブのときに、カウンタ216から出力される信号s217の値を取り込む。またレジスタ215は取り込んだ値を
実測周波数s203としてfs変換演算部1に出力する。カウンタ216は出力側クロック信号clk2であるs219の立ち上がりエッジに同期して値を1ずつインクリメントするカウンタである。比較回路213から出力される信号s216がアクティブになった時に、値を1に戻す。
図9はFIFO3の具体的な回路構成の一例を示す図である。図9を参照すると、FIFO3はRAM301とレジスタ302と加算器303とインバータ304とレジスタ305と加算器306とインバータ307とで構成される。
RAM301はデータ格納用のRAM(Random Access Memory)である。RAM301には周波数比検出部2から出力された音声データs301のMSB(Most Significant Bit)側にholdフラグs303を1bit追加した信号であるs302が入力される。したがってデータビット幅は音声データ信号より1bit分だけ大きくなる。
レジスタ302はライトポインタ保持用のレジスタである。加算器303の出力s307の値を取り込みライトポインタ信号s305を出力する。加算器303は2つの入力信号の値を加算する加算器である。インバータ304の出力信号s306とレジスタ302の出力s305を加算する。
インバータ304は信号の値を反転するインバータである。周波数比検出部2から出力されたdisableフラグs304が入力され、そのdisableフラグが反転された信号であるs304を出力する。
レジスタ305はリードポインタ保持用のレジスタである。加算器306の出力s312の値を取り込みリードポインタ信号s310を出力する。
加算器306は2つの入力信号の値を加算する加算器である。加算器306はRAM301からの出力信号s308のMSB部分の信号、つまり、RAMを通ってきたholdフラグである信号s311が反転された信号s313と、レジスタ305の出力s310を加算し、信号s312を出力する。
インバータ307は信号の値を反転するインバータである。RAMを通ってきたholdフラグである信号s311を反転した信号s313を出力する。
図10は図7に示す回路の動作を表すタイミングチャートである。図10(a)は、入力側クロック信号clk1であるs101の変化の様子を示す図である。図10(b)は、更新通知信号s116の変化の様子を示す図である。図10(c)は、レジスタ110から出力される予測周波数s112の変化の様子を示す図である。図10(d)は、レジスタ111から出力される信号s114の変化の様子を示す図である。図10(e)は、レジスタ104からの出力s107の変化の様子を示す図である。図10(f)は、レジスタ105からの出力s106の変化の様子を示す図である。図10(g)は、ANDゲート115から出力されるholdフラグs104の変化の様子を示す図である。図10(h)は、ANDゲート114から出力されるdisableフラグs105の変化の様子を示す図である。
また、t100からt110の各々は入力側クロック信号clk1であるs101の立ち上りエッジを示し、T101からT111の各々は一つの立ち上りエッジから次の立ち上りエッジまでの期間を示す。以下、図10(a)から図10(h)に示すタイミングチャートは入力側クロック信号clk1の周波数が38000Hz付近、出力側クロック信号clk2の周波数が44100Hz、図10における期間T101のタイミングt100で更新通知信号s116がアクティブになった場合を例に述べる。
図10(b)に示す更新通知信号s116が期間T102のクロック信号立ち上がり時(t101)にアクティブであるので、レジスタ110は予測周波数s117の値を取り込む。レジスタ110は周波数比検出部2から出力された予測周波数s117が“38000”であるので、レジスタ110には“38000”が値として保持される(図10(c))。同様に、レジスタ111は、出力側クロック信号clk2の実測周波数s118の値を取り込む。周波数比検出部2から出力された出力側クロック信号clk2の実測周波数s118の値が“44100”であるので、レジスタ111には“44100”が値として保持される(図10(d))。
期間T103において、セレクタ108は入力された2つの信号のうちs112を選択してその値をs110に出力する。加算器106には、セレクタ108からの出力である信号s110の値が入力され、レジスタ104は、加算器106からの出力を累積加算値として取り込む。また、レジスタ105はレジスタ104と同様に、加算器107からの出力を累積加算値として取り込む。このタイミングで、
レジスタ104出力s107<レジスタ105出力s106
という関係が成り立つ(図10(e)、図10(f))。ここでANDゲート115から出力されるholdフラグs104がアクティブになる(図10(g))。
期間T104のt103のタイミングでholdフラグs104がアクティブであったため、セレクタ109は信号s115を選択しており、その結果累積加算レジスタ105の出力s106はT103のときと同じ値になる。またレジスタ104は加算器106出力s108の値を取り込む。期間T105から期間T109において、レジスタ104、レジスタ105はそれぞれ加算器106出力s108、加算器107出力s109の値を取り込む。
期間T110において、このタイミングで再び
レジスタ104出力s107<レジスタ105出力s106
という関係が成り立つ(図10(e)、図10(f))。したがってこのときにANDゲート115から出力されるholdフラグs104がアクティブになる(図10(g))。
期間T110のt109のタイミングでholdフラグs104がアクティブであったため、セレクタ109は信号s115を選択しており、その結果累積加算レジスタ105の出力s106はT110のときと同じ値になる。またレジスタ104は加算器106出力s108をの値を取り込む。期間T111以降、holdフラグs104またはdisableフラグs105がアクティブになるまで、レジスタ104、レジスタ105はそれぞれ加算器106出力s108、加算器107出力s109の値を取り込む。以降、この動作を繰り返す。
このようなfs変換演算部1を構成し、回路を動作させることによって、周波数比検出部2から出力された予測周波数と出力側クロック信号clk2を実測した実測周波数に基づいて、入力側のサンプリングレートから出力側のサンプリングレートに変換するのに適切なタイミングでアクティブになるようなholdフラグ(またはdisableフラグ)を生成することができる。生成されたholdフラグ(またはdisableフラグ)はFIFO3に出力され、FIFO3はそのholdフラグ(またはdisableフラグ)に基づいて、入力されるデータの読み出し/書き込みを実行することで高精度のサンプリングレート変換が可能になる。
図11、及び図12は図8に示す回路の動作を表すタイミングチャートである。図11(a)は、出力側クロック信号clk2の変化の様子を示す図である。図11(b)は、カウンタ216からの出力s217の変化の様子を示す図である。図11(c)は、レジスタ215からの出力s203の変化の様子を示す図である。図11(d)は、比較回路213から出力される一致検出信号s216の変化の様子を示す図である。
また、t200からt210の各々は出力側クロック信号clk2であるs219の立ち上りエッジを示し、T201からT211の各々は一つの立ち上りエッジから次の立ち上りエッジまでの期間を示す。以下、図11(a)から図11(d)に示すタイミングチャートは入力側クロック信号clk1の周波数が38000Hz付近、出力側クロック信号clk2の周波数が44100Hz、測定期間設定信号s218の値とレジスタ214が保持している値が44100である場合を例に述べる。
期間T201から期間T202において、カウンタ216の出力であるカウンタ出力s217は、クロック信号の立ち上がりエッジt200、t201で1ずつインクリメントされる。期間T203において、カウンタ出力s217はインクリメントされ、その値は44100になる。これによりレジスタ214の出力信号s215と、カウンタ出力s217の値(図11(b))が一致するので、一致検出信号s216がアクティブになる(図11(d))。
期間T204のt203のタイミングで一致検出信号s216がアクティブであったので、カウンタ出力s217の値は1に戻る。また、カウンタ出力s217の値(44100)が、レジスタ215に取り込まれる。期間T205以降、カウンタ出力s217は、その値がs215の値と一致するまでクロック信号の立ち上がりエッジで1ずつインクリメントされる。以降、この動作を繰り返す。
図12(a)は、入力側クロック信号clk1の変化の様子を示す図である。図12(b)は、カウンタ208から出力されるカウンタ出力s213の変化の様子を示す図である。図12(c)は、レジスタ207からの出力s206の変化の様子を示す図である。図12(d)は、クロック同期回路212から出力される一致検出信号s212の変化の様子を示す図である。図12(e)は、レジスタ204からの出力s211の変化の様子を示す図である。図12(f)は、レジスタ201からの出力s201の変化の様子を示す図である。図12(g)は、レジスタ209からの出力s202の変化の様子を示す図である。
また、t220からt227の各々は入力側クロック信号clk1であるs214の立ち上りエッジを示し、T221からT228の各々は一つの立ち上りエッジから次の立ち上りエッジまでの期間を示す。以下、図12(a)から図12(g)に示すタイミングチャートは入力側クロック信号clk1の周波数が38000Hz付近、出力側クロック信号clk2の周波数が44100Hz、測定期間設定信号s218の値とレジスタ214が保持している値が44100である場合を例に述べる。
期間T221から期間T223において、カウンタ208から出力されるカウンタ出力s213は、クロック信号の立ち上がりエッジt220からt222で1ずつインクリメントされる(図12(b))。期間T224において、入力側クロック信号clk1に同期した一致検出信号s212(図12(d))がt223のタイミングでアクティブになる。このときカウンタ出力s213はインクリメントされ、その値は38004になる(図12(b))。
期間T225のt224のタイミングで入力側クロック信号clk1に同期した一致検出信号s212がアクティブであったため、カウンタ出力s213の値は1に戻る(図12(b))。また、カウンタ出力s213の値(38004)がレジスタ207に取り込まれる(図12(c))。期間T226において、累積誤差の算出値がレジスタ204に格納され、レジスタ204の出力信号s211は新しい累積誤差の値(4)を示す(図12(e))。このタイミングでも、カウンタ出力s213はインクリメントされる。
期間T227において、期間T226で更新された累積誤差の値から、予測周波数s201の値(38008)が算出される(図12(f))。また、同じタイミングで変更通知信号s202がアクティブになる(図12(g))。このタイミングでも、カウンタ出力s213はインクリメントされる。期間T228から以降、カウンタ出力s213は、クロック信号の立ち上がりエッジで1ずつインクリメントされる。このような周波数比検出部2を構成し、回路を動作させることによって、周波数比検出部2は実測周波数から算出された予測周波数を生成する。予測周波数は、出力側クロック信号の周波数と入力側クロック信号の周波数が温度ドリフトや発振子のジッタ特性に依存してダイナミックに変動する場合における変動後の周波数を、それまでの累積誤差の値も加味して算出したものである。周波数比検出部2はその予測周波数をfs変換演算部1に出力し、fs変換演算部1はその予測周波数と、出力側クロック信号clk2を実測した実測周波数に基づいてサンプリングレート変換のための演算を実行する。累積誤差が徐々に0に近づいていき、予測周波数が実測周波数に近づくことで、高精度のサンプリングレート変換を実行することが可能になる。
図13、及び図14は、図9に示す回路の動作を表すタイミングチャートである。図13(a)から図13(d)はRAM301にデータを書込む場合の動作を表す。図13(a)は、入力側クロック信号clk1の変化の様子を表す図である。図13(b)は、disableフラグs304の変化の様子を表す図である。図13(c)は、レジスタ302から出力されるライトポインタs305の変化の様子を表す図である。図13(d)は、音声データs301の変化の様子を表す図である。
また、t300からt307の各々は入力側クロック信号clk1であるs314の立ち上りエッジを示し、T301からT308の各々は一つの立ち上りエッジから次の立ち上りエッジまでの期間を示す。以下、図13(a)から図13(d)に示すタイミングチャートは入力側クロック信号clk1の周波数が38000Hz付近、出力側クロック信号clk2の周波数が44100Hzである場合を例に述べる。更に、図9に示すRAM301が、ライト時にはライトアドレスとライトデータを同じタイミングで入力され、リード時にはリードアドレスを入力された1クロック後にリードデータを出力するようなタイプのメモリである場合を例に述べる。
期間T301から期間T303において、ライトポインタs305が、入力側クロック信号clk1に同期してインクリメントされる。音声データs301は毎クロック変化し、ライトポインタs305で示されるアドレスに音声データが書込まれる(図13(c)、図13(d))。データ書込みの際には、holdフラグs303を音声データs301のMSB側に追加した信号s302をRAM301に書込む。
期間T304のt303のタイミングでdisableフラグs304がアクティブになる場合を例に述べる。このタイミングでも、ライトポインタs305はインクリメントされ、音声データs301は前の期間T304のときの値から変化する。具体的に述べると、音声データCがライトポインタs305に示されるアドレス2に書込まれ、音声データDがライトポインタs305に示されるアドレス3に書込まれる。
期間T305において、立ち上りエッジt304でdisableフラグs304がアクティブであるため、ライトポインタs305はインクリメントされず、T304のときと同じ値を出力する。ここでRAM301へのライトが実行され、ライトポインタs305がインクリメントされていないため、T304でライトされた音声データDと同じアドレスに音声データEが上書きされる。
T306からT308において、ライトポインタs305が、入力側クロック信号clk1に同期してインクリメントされる。音声データs301は毎クロック変化し、ライトポインタs305で示されるアドレスに音声データが書込まれる(図13(c)、図13(d))。データ書込みの際には、holdフラグs303を音声データs301のMSB側に追加したものをRAM301に書込む。以降、同様の動作を繰り返し実行する。
図14(a)から図14(d)は、RAM301からデータを読み出す場合の動作を表す。図14(a)は、出力側クロック信号clk2の変化の様子を表す図である。図14(b)は、RAM301から出力されたholdフラグs311の変化の様子を表す図である。図14(c)は、レジスタ305から出力されるリードポインタs310の変化の様子を表す図である。図14(d)は、RAM301から出力された音声データs309の変化の様子を表す図である。
また、t320からt329の各々は出力側クロック信号clk2であるs315の立ち上りエッジを示し、T321からT330の各々は一つの立ち上りエッジから次の立ち上りエッジまでの期間を示す。以下、図14(a)から図14(d)に示すタイミングチャートは入力側クロック信号clk1の周波数が38000Hz付近、出力側クロック信号clk2の周波数が44100Hzである場合を例に述べる。更に、図9に示すRAM301は、ライト時にはライトアドレスとライトデータを同じタイミングで入力され、リード時にはリードアドレスを入力された1クロック後にリードデータを出力するようなタイプのメモリである場合を例に述べる。
期間T321において、リードポインタs310がインクリメントされる(図14(c))。RAM301からは、1クロック前のリードポインタが指し示すアドレスに格納されているデータがs308として出力される(図14(d))。T322において、リードポインタs310はインクリメントされ、データ信号s308にも新しいデータが出力される。図14(b)はこの期間(T322)で、RAM301から出力されたデータ信号s308のMSB部分の信号s311が1である場合を示している。
期間T323のt322のタイミングで信号s311が1であったため、リードポインタs310はインクリメントされない(図14(c))。期間T324において、期間T323でリードポインタs310がインクリメントされなかったので、音声出力データs309は期間T323で出力されていた値と同じになる(図14(d))。
期間T325から期間T327において、リードポインタs310がインクリメントされる。RAM301からは、1クロック前のリードポインタが指し示すアドレスに格納されているデータがs308として出力される。期間T328において、リードポインタs310はインクリメントされ、RAM301からは新しいデータがs308として出力される。図14(b)は期間T328で、RAM301から出力されたデータ信号s308のMSB部分の信号s311が再び1であった場合を示している。
期間T329のt328のタイミングで信号s311が1であるため、リードポインタはインクリメントされない(図14(c))。T330において、期間T329でリードポインタs310がインクリメントされなかったので、出力データs309は期間T329で出力されていた値と同じになる(図14(d))。以降、同様の動作を繰り返し実行する。FIFO3は上記の動作で、fs変換演算部1から出力されたholdフラグ(またはdisableフラグ)に基づいて入力されるデータの読み出し/書き込みを実行する。そのholdフラグ(またはdisableフラグ)は、周波数比検出部2から出力された予測周波数に基づいて、fs変換演算部1によって生成されている。予測周波数は、出力側クロック信号の周波数と入力側クロック信号の周波数が温度ドリフトや発振子のジッタ特性に依存してダイナミックに変動する場合における変動後の周波数を、それまでの累積誤差の値も加味して算出したものであるため、出力側クロック信号や、入力側クロック信号がこのように変動する場合でも高精度のサンプリングレート変換を実行することが可能になる。
図15は、本発明を実施するための最良の形態におけるサンプリングレート変換装置の他の構成を示すブロック図である。図15を参照すると、本実施の形態に述べるサンプリングレート変換装置はfs変換演算部1と周波数比検出部2とFIFO3とオーバーサンプリング回路4とダウンサンプリング回路5とDSP6とで構成される。図15に示すサンプリングレート変換装置は、図2に示す回路を含み、更に音質のよいレート変換を行う為に、オーバーサンプリング回路4(インターポレータ)とダウンサンプリング回路5(デシメータ)を備えている。更にダウンサンプリング回路5の出力はDSP6(Digital Signal Processor)に入力される。
fs変換演算部1と周波数比検出部2とFIFO3は図2に示す構成と同様の構成を備えているため説明を省略する。オーバーサンプリング回路4は、デジタル信号のサンプリングポイントを増やすことでデジタル信号をアナログ信号に近づけ、サンプリングレート変換による音声品質の劣化を軽減するための回路である。入力された音声データのサンプリングレートに対して、予め設定された倍数の周波数でサンプリングを実行する。設定される倍数は任意に変更可能である。ダウンサンプリング回路5は、高い周波数でサンプリングされた音声データを、出力側クロック信号clk4を分周して作られる低い周波数でサンプリングし直すデシメータである。このようなサンプリングレート変換装置を構成することにより、音声品質の劣化がより少ないサンプリングレート変換を実行することが可能になる。
図1は、従来のサンプリングレート変換装置を示すブロック図である。 図2は、本発明のサンプリングレート変換装置を示すブロック図である。 図3は、本発明のサンプリングレート変換装置及び変換方法の動作を示すフローチャートである。 図4は、予測周波数f(i)、入力側クロック信号clk1の実測周波数g(i)、累積誤差Δ(i)が時間経過で移り変わる動作を示す図である。 図5は、予測周波数f(i)、入力側クロック信号clk1の実測周波数g(i)、累積誤差Δ(i)が時間経過で移り変わる動作を示す図である。 図6は、予測周波数f(i)、入力側クロック信号clk1の実測周波数g(i)が時間経過で移り変わる動作を示すグラフである。 図7は、fs変換演算部の具体的な回路構成の一例を示す図である。 図8は、周波数比検出部の具体的な回路構成の一例を示す図である。 図9は、FIFOの具体的な回路構成の一例を示す図である。 図10は、fs変換演算部の動作を表すタイミングチャートである。 図11は、周波数比検出部の動作を表すタイミングチャートである。 図12は、周波数比検出部の動作を表すタイミングチャートである。 図13は、FIFOの動作を表すタイミングチャートである。 図14は、FIFOの動作を表すタイミングチャートである。 図15は、本発明を実施するための最良の形態におけるサンプリングレート変換装置の他の構成を示すブロック図である。
符号の説明
1…fs変換演算部
2…周波数比検出部
3…FIFO
4…オーバーサンプリング回路
5…ダウンサンプリング回路
6…DSP
clk1、clk3…入力側クロック信号
clk2、clk4…出力側クロック信号
101…レジスタ
102、103…コンパレータ
104、105…レジスタ
106、107…加算器
108、109…セレクタ
110、111…レジスタ
112、113…コンパレータ
114、115…ANDゲート
201…レジスタ
202…加算器
203…乗算実行回路
204…レジスタ
205、206…加算器
207、…レジスタ
208…カウンタ
209〜211…レジスタ
212…クロック同期回路
213…比較器
214、215…レジスタ
216…カウンタ
301…RAM
302…レジスタ
303…加算器
304…インバータ
305…レジスタ
306…加算器
307…インバータ

Claims (18)

  1. 第1のサンプリングレートによりサンプリングされた第1データを第2のサンプリングレートによりサンプリングされた第2データに変換するサンプリングレート変換装置において、
    第1クロック信号に応答して、第1データを格納し、
    第2クロック信号に応答して、前記第1データを第2データとして出力するFIFOと、前記FIFOは、直前に書込まれた前記第1データを前記第1データに更新するべきか否かを示すライト制御信号に基づいて前記第1データを格納し、読み出された第2データが次回期間にも読み出されるべきか否かを示すリード制御信号に基づいて読み出された第2データを出力し、
    現在期間に対する第2現在クロック周波数値と現在予測クロック周波数値とから前記ライト制御信号と前記リード制御信号を生成して前記FIFOに出力する演算部とを具備し、
    前記第2現在クロック周波数値は、前記現在期間における前記第2クロック信号の周波数の計測値であり、
    前記現在予測クロック周波数値は、現在期間における前記第1クロック信号の周波数の予測値を表すサンプリングレート変換装置。
  2. 第1のサンプリングレートによりサンプリングされた第1データを第2のサンプリングレートによりサンプリングされた第2データに変換するサンプリングレート変換装置において、
    第1クロック信号に応答して、第1データを格納し、
    第2クロック信号に応答して、前記第1データを第2データとして出力するFIFOと、前記FIFOは、直前に書込まれた前記第1データを前記第1データに更新するべきか否かを示すライト制御信号に基づいて前記第1データを格納し、読み出された第2データが次回期間にも読み出されるべきか否かを示すリード制御信号に基づいて読み出された第2データを出力し、
    前記第1クロック信号を現在期間において計測して第1現在クロック周波数値を生成し、前記第1現在クロック周波数値と前回予測クロック周波数値から現在予測クロック周波数値を生成し、前記現在予測クロック周波数値を次回期間において前記前回予測クロック周波数値として使用する周波数検出部と、
    前記第2クロック信号を前記現在期間において計測することによって生成された第2現在クロック周波数値と、前記現在予測クロック周波数値とから前記ライト制御信号と前記リード制御信号を生成して前記FIFOに出力する演算部
    を具備する、
    サンプリングレート変換装置。
  3. 請求項1または2に記載のサンプリングレート変換装置において、
    第1現在クロック周波数値は、前記第1クロック信号に変えて前記第2クロック信号を前記現在期間において計測することによって生成され、前記第1現在クロック周波数値と前回予測クロック周波数値から現在予測クロック周波数値を生成し、前記現在予測クロック周波数値を次回期間において前記前回予測クロック周波数値とし、
    前記演算部は、前記第2クロック信号に変えて前記第1クロック信号を前記現在期間において計測することによって生成された第2現在クロック周波数値と、前記現在予測クロック周波数値とから前記ライト制御信号と前記リード制御信号を生成して前記FIFOに出力する
    サンプリングレート変換装置。
  4. 請求項1乃至3の何れか1項に記載のサンプリングレート変換装置において、
    前記FIFOは、ライトポインタとリードポインタを有し、
    前記第1データが前記ライトポインタにより指定された領域に格納されたとき、前記ライトポインタはインクリメントされ、前記第2データが前記リードポインタにより指定された領域から読み出されたとき、前記リードポインタはインクリメントされ、
    前記ライト制御信号は、前記ライトポインタのインクリメントの禁止を制御し、
    前記リード制御信号は、前記リードポインタのインクリメントの禁止を制御する
    サンプリングレート変換装置。
  5. 請求項1乃至4の何れか1項に記載のサンプリングレート変換装置において、
    周波数測定期間である前記現在期間の時間間隔が、所定値よりも大きいと予想される前記第1クロック信号に対しては短く、前記所定値よりも小さいと予想される前記第1クロック信号に対しては長い
    サンプリングレート変換装置。
  6. 請求項2乃至5の何れか1項に記載のサンプリングレート変換装置において、
    前記周波数検出部は、前記前回予測クロック周波数値と前記第1現在クロック周波数値との差と、前回累積誤差とに基づいて、現在までの累積誤差である現在累積誤差を決定する
    サンプリングレート変換装置。
  7. 請求項6に記載のサンプリングレート変換装置において、
    前記周波数検出部は、前記現在期間において、前記前回累積誤差を前記現在累積誤差に更新し、
    前記現在累積誤差は次回期間において前記前回累積誤差として使用される
    サンプリングレート変換装置。
  8. 請求項2乃至7の何れか1項に記載のサンプリングレート変換装置において、
    前記周波数検出部は、前記第1現在クロック周波数値と前記現在累積誤差をk倍(0<k≦1)した値とに基づいて前記現在予測クロック周波数値を決定する
    サンプリングレート変換装置。
  9. 請求項8に記載のサンプリングレート変換装置において、
    前記kは、前記現在予測クロック周波数値が前記第1現在クロック周波数値に近づく速度を制御するためのパラメータであり、
    前記周波数検出部は、クロック周波数の変動の度合いに基づいて前記kの値を決定する
    サンプリングレート変換装置。
  10. 第1のサンプリングレートによりサンプリングされた第1データを第2のサンプリングレートによりサンプリングされた第2データに変換するサンプリングレート変換方法において、
    第1クロック信号に応答して、第1データを格納するステップと、
    第2クロック信号に応答して、前記第1データを第2データとして出力するステップと、
    直前に書込まれた前記第1データを前記第1データに更新するべきか否かを示すライト制御信号に基づいて前記第1データを格納するステップと、
    読み出された第2データが次回期間にも読み出されるべきか否かを示すリード制御信号に基づいて第2データを読み出すステップと、
    現在期間に対する前記第2クロック信号の周波数の計測値である第2現在クロック周波数値と、前記第1クロック信号の周波数の予測値を表す現在予測クロック周波数値とから前記ライト制御信号と前記リード制御信号を生成して出力するステップ
    を具備するサンプリングレート変換方法。
  11. 第1のサンプリングレートによりサンプリングされた第1データを第2のサンプリングレートによりサンプリングされた第2データに変換するサンプリングレート変換方法において、
    第1クロック信号に応答して、第1データを格納するステップと、
    第2クロック信号に応答して、前記第1データを第2データとして出力するステップと、直前に書込まれた前記第1データを前記第1データに更新するべきか否かを示すライト制御信号に基づいて前記第1データを格納するステップと、
    読み出された第2データが次回期間にも読み出されるべきか否かを示すリード制御信号に基づいて読み出された第2データを出力するステップと、
    前記第1クロック信号を現在期間において計測して第1現在クロック周波数値を生成するステップと、
    前記第1現在クロック周波数値と前回予測クロック周波数値から現在予測クロック周波数値を生成するステップと、
    前記現在予測クロック周波数値を次回期間において前記前回予測クロック周波数値として使用するステップと、
    前記第2クロック信号を前記現在期間において計測することによって生成された第2現在クロック周波数値と、前記現在予測クロック周波数値とから前記ライト制御信号と前記リード制御信号を生成するステップ
    を具備するサンプリングレート変換方法。
  12. 請求項10または11に記載のサンプリングレート変換方法において、
    前記第1クロック信号に変えて前記第2クロック信号を前記現在期間において計測して第1現在クロック周波数値を生成するステップと、
    前記第1現在クロック周波数値と前回予測クロック周波数値から現在予測クロック周波数値を生成するステップと、
    前記現在予測クロック周波数値を次回期間において前記前回予測クロック周波数値とするステップと、
    前記第2クロック信号に変えて前記第1クロック信号を前記現在期間において計測することによって生成された第2現在クロック周波数値と、前記現在予測クロック周波数値とから前記ライト制御信号と前記リード制御信号を生成して出力するステップ
    を具備するサンプリングレート変換方法。
  13. 請求項10乃至12の何れか1項に記載のサンプリングレート変換方法において、
    前記第1データがライトポインタにより指定された領域に格納されたとき、前記ライトポインタがインクリメントされるステップと、
    前記第2データがリードポインタにより指定された領域から読み出されたとき、前記リードポインタがインクリメントされるステップと、
    前記ライト制御信号により、前記ライトポインタのインクリメントの禁止を制御するステップと、
    前記リード制御信号により、前記リードポインタのインクリメントの禁止を制御するステップ
    を具備するサンプリングレート変換方法。
  14. 請求項10乃至13の何れか1項に記載のサンプリングレート変換方法において、
    周波数測定期間である前記現在期間の時間間隔が、所定値よりも大きいと予想される前記第1クロック信号に対しては短く、前記所定値よりも小さいと予想される前記第1クロック信号に対しては長い
    サンプリングレート変換方法。
  15. 請求10乃至14の何れか1項に記載のサンプリングレート変換方法において、
    前記前回予測クロック周波数値と前記第1現在クロック周波数値との差と、前回累積誤差とに基づいて現在までの累積誤差である現在累積誤差を決定するステップ
    を具備するサンプリングレート変換方法。
  16. 請求項15に記載のサンプリングレート変換方法において、
    前記現在期間において、前記前回累積誤差を前記現在累積誤差に更新するステップと、
    前記現在累積誤差は次回期間において前記前回累積誤差として使用されるステップ
    を具備するサンプリングレート変換方法。
  17. 請求項10乃至16に記載のサンプリングレート変換方法において、
    前記第1現在クロック周波数値と前記現在累積誤差をk倍(0<k≦1)した値とに基づいて前記現在予測クロック周波数値を決定する
    サンプリングレート変換方法。
  18. 請求項17に記載のサンプリングレート変換方法において、
    前記kは、前記現在予測クロック周波数値が前記第1現在クロック周波数値に近づく速度を制御するためのパラメータであり、
    クロック周波数の変動の度合いに基づいて決定される
    サンプリングレート変換方法。
JP2004020496A 2004-01-28 2004-01-28 サンプリングレート変換装置及びサンプリングレート変換方法 Expired - Fee Related JP4548767B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004020496A JP4548767B2 (ja) 2004-01-28 2004-01-28 サンプリングレート変換装置及びサンプリングレート変換方法
US11/041,239 US7602875B2 (en) 2004-01-28 2005-01-25 Sampling rate conversion method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004020496A JP4548767B2 (ja) 2004-01-28 2004-01-28 サンプリングレート変換装置及びサンプリングレート変換方法

Publications (2)

Publication Number Publication Date
JP2005217664A true JP2005217664A (ja) 2005-08-11
JP4548767B2 JP4548767B2 (ja) 2010-09-22

Family

ID=34792615

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004020496A Expired - Fee Related JP4548767B2 (ja) 2004-01-28 2004-01-28 サンプリングレート変換装置及びサンプリングレート変換方法

Country Status (2)

Country Link
US (1) US7602875B2 (ja)
JP (1) JP4548767B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7061409B1 (en) * 2005-02-07 2006-06-13 Nokia Corporation Techniques for sample rate conversion
JP4669039B2 (ja) * 2006-02-24 2011-04-13 富士通株式会社 データ受信装置及びデータ伝送システム
WO2008022226A2 (en) * 2006-08-15 2008-02-21 Ess Technology, Inc. Asynchronous sample rate converter
JP4643551B2 (ja) * 2006-12-20 2011-03-02 富士通株式会社 周波数自動監視回路、電子装置、周波数自動監視方法および周波数自動監視プログラム
EP2524429B1 (en) * 2010-01-15 2014-05-07 ST-Ericsson SA Sampling rate converter data flow control mechanism
JP2012049954A (ja) * 2010-08-30 2012-03-08 Yamaha Corp サンプリング周波数変換装置
US20130066451A1 (en) * 2011-09-14 2013-03-14 Aravind Na Ganesan System and method for mitigating frequency mismatch in a receiver system
US8848849B1 (en) 2013-03-13 2014-09-30 Avnera Corporation SPDIF clock and data recovery with sample rate converter
US9621336B1 (en) 2013-03-13 2017-04-11 Avnera Corporation SPDIF clock and data recovery with sample rate converter
US10247621B1 (en) * 2015-09-13 2019-04-02 Sitime Corporation High resolution temperature sensor
CN113439159A (zh) * 2018-12-21 2021-09-24 维斯塔斯风力系统集团公司 基于优化和非优化控制器例程的风力涡轮机控制

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07221598A (ja) * 1994-01-28 1995-08-18 Sony Corp 標本化周波数変換装置
JPH1155075A (ja) * 1997-07-31 1999-02-26 Yamaha Corp 非同期信号入力装置およびサンプリング周波数変換装置
JPH11112440A (ja) * 1997-10-07 1999-04-23 Matsushita Electric Ind Co Ltd サンプリングレートコンバータ

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR910001743B1 (ko) * 1986-11-28 1991-03-22 미쓰비시덴기 가부시기가이샤 데이타 멀티 플렉스 전송 장치
JP2600496B2 (ja) * 1990-12-20 1997-04-16 日本電気株式会社 セル位相乗換回路
JP3398155B2 (ja) * 1995-03-08 2003-04-21 松下電器産業株式会社 ディスク用再生装置
JPH098781A (ja) * 1995-06-26 1997-01-10 Oki Electric Ind Co Ltd 伝送速度変換装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07221598A (ja) * 1994-01-28 1995-08-18 Sony Corp 標本化周波数変換装置
JPH1155075A (ja) * 1997-07-31 1999-02-26 Yamaha Corp 非同期信号入力装置およびサンプリング周波数変換装置
JPH11112440A (ja) * 1997-10-07 1999-04-23 Matsushita Electric Ind Co Ltd サンプリングレートコンバータ

Also Published As

Publication number Publication date
US20050163276A1 (en) 2005-07-28
US7602875B2 (en) 2009-10-13
JP4548767B2 (ja) 2010-09-22

Similar Documents

Publication Publication Date Title
US7602875B2 (en) Sampling rate conversion method and apparatus
CN100504806C (zh) 用于具有不同处理器频率的自适应跟踪的方法及设备
CN102084318B (zh) 功率管理器和用于管理功率的方法
US5771180A (en) Real time clock and method for providing same
US9214952B2 (en) Sensor time
EP2313827B1 (en) Method and system for measuring task load
JP2007047160A (ja) 調節可能な時間アキュムレータ
US6092126A (en) Asynchronous sample rate tracker with multiple tracking modes
JP4661284B2 (ja) 伝送制御装置
US8569911B2 (en) Method and system for power management
JP2007232380A (ja) 周波数計測方法および装置
JP6977597B2 (ja) 記録装置及び記録方法
JP2003091923A (ja) 再標本化アドレスジェネレータ回路
Bencina PortAudio and media synchronisation-it’s all in the timing
JPH11149326A (ja) データ処理装置
JP2000074962A (ja) 周期計測装置および周期計測方法、並びに記録媒体
US11907143B2 (en) Method and device for timestamping and synchronization with high-accuracy timestamps in low-power sensor systems
JP3561939B2 (ja) 波形メモリ音源
US8629702B2 (en) Digital clock regenerator
JP2010044765A (ja) アプリケーション管理システム及びその管理方法
JP2006050384A (ja) サンプルレート変換装置
CN116263865A (zh) 信号平均值计算装置及其方法
JPH06317603A (ja) 周波数変換装置
JP3990331B2 (ja) 時刻補正制御回路と時刻補正制御方法および時刻補正制御用プログラム
CN117707825A (zh) 一种高效精准定时方法、系统、电子设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061207

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100402

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100702

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100702

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130716

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees