以下、実施形態を図面を用いて説明する。
図1は、一実施形態における量子化装置の例を示している。量子化装置は、例えば、ΔΣ変調を実施し、nビット(nは3以上の整数)の入力信号VINをmビット(mはnより小さい2以上の整数)の量子化信号VOUTに量子化する。例えば、量子化装置は、8ビットの入力信号VINを2ビットの量子化信号VOUTに量子化する。なお、量子化装置は、ΔΣ変調以外の変調を実施し、入力信号VINを量子化信号VOUTに量子化してもよい。
量子化装置は、例えば、信号処理部10および量子化部30を有している。信号処理部10は、例えば、クロックCLK1の1周期前の量子化信号VOUTに基づく量子化誤差と入力信号VINとに基づいて、信号VSIGを生成する。量子化部30は、信号VSIGを信号処理部10から受ける。そして、量子化部30は、信号処理部10から受けた信号VSIGを量子化して、量子化信号VOUTを生成する。例えば、量子化部30は、クロックCLK1より高速のクロックCLK2に同期して動作し、信号VSIGをクロックCLK1の1周期以内に量子化する。そして、量子化部30は、信号VSIGを量子化した量子化信号VOUTを出力する。なお、クロックCLK1、CLK2は、互いに同期している。
信号処理部10は、例えば、加算部12、減算部14、遅延部16、18および量子化値選択部20を有している。加算部12は、入力信号VINと遅延部16から出力される遅延信号DSIGとを受ける。そして、加算部12は、入力信号VINと遅延信号DSIGとの加算結果を減算部14に出力する。
減算部14は、入力信号VINと遅延信号DSIGとの加算結果(加算部12の出力)と、遅延部18から出力される遅延信号DQVとを受ける。そして、減算部14は、入力信号VINと遅延信号DSIGとの加算結果から遅延信号DQVを減算する。また、減算部14は、減算結果を示す信号VSIGを、遅延部16および量子化部30に出力する。
遅延部16は、減算部14から出力される信号VSIGを遅延させて、遅延させた信号VSIGを遅延信号DSIGとして加算部12に出力する。例えば、遅延部16は、クロックCLK1に同期して動作し、信号VSIGをクロックCLK1の1周期分だけ遅延させて遅延信号DSIGを生成する。遅延部16は、例えば、クロックCLK1に同期して動作するDフリップフロップである。
量子化値選択部20は、量子化部30から出力される量子化信号VOUTを受け、受けた量子化信号VOUTに対応する量子化値QVを遅延部18に出力する。例えば、量子化値QVが“32”、“64”、“96”および“128”の4レベルのとき、量子化値選択部20は、量子化部30から出力される量子化信号VOUTに基づいて、“32”、“64”、“96”、“128”のいずれかを選択し、選択した量子化値QVを遅延部18に出力する。なお、量子化値選択部20は、量子化信号VOUTに対応付けされた複数の量子化値QVを外部から受けてもよい。あるいは、量子化信号VOUTに対応付けされた複数の量子化値QVは、量子化値選択部20内で生成されてもよい。
遅延部18は、量子化値選択部20により選択された量子化値QVを遅延させて、遅延させた量子化値QVを遅延信号DQVとして減算部14に出力する。例えば、遅延部18は、クロックCLK1に同期して動作し、量子化値QVをクロックCLK1の1周期分だけ遅延させて遅延信号DQVを生成する。遅延部18は、例えば、クロックCLK1に同期して動作するDフリップフロップである。
ここで、量子化信号VOUTに対応する量子化値QVは、量子化誤差をQとしたとき、式(2)で表される。また、信号VSIGは、遅延部16、18の伝達関数Z−1を用いて、式(3)で表される。そして、式(2)を式(3)に代入することにより、量子化値QVは、式(4)で表される。
QV=VSIG+Q ・・・(2)
VSIG=VIN+(VSIG・Z−1)−(QV・Z−1) ・・・(3)
QV=VIN+(1−Z−1)・Q ・・・(4)
例えば、式(3)は、クロックCLK1の1周期前の量子化信号VOUTに基づく量子化誤差Qと入力信号VINとに基づいて信号VSIGが生成されることを示している。例えば、量子化部30は、量子化誤差Qをフィードバックする際の遅延時間(クロックCLK1の周期)より短い周期のクロックCLK2で比較処理を順次実施し、信号VSIGをクロックCLK1の1周期以内に量子化する。比較処理は、例えば、信号VSIGと各量子化値QVとを比較する処理である。
なお、信号処理部10の構成は、この例に限定されない。例えば、加算部12と減算部14とは、互いに逆に配置されてもよい。すなわち、減算部14は、入力信号VINから遅延信号DQVを減算し、減算結果を加算部12に出力してもよい。そして、加算部12は、入力信号VINから遅延信号DQVを減算した結果と遅延信号DSIGとを加算し、信号VSIGを生成してもよい。このときにも、信号VSIGは、式(3)で表される。あるいは、信号処理部10は、信号VSIGから量子化値QVを減算した結果を遅延させて、遅延させた減算結果を入力信号VINに加算してもよい。
図2は、図1に示した量子化装置の動作の一例を示している。なお、図2は、クロックCLK1の1番目から10番目のクロックに対する各信号VIN、DSIG、VSIG、VOUT、DQV、QVを示している。例えば、量子化値QVは、“32”、“64”、“96”および“128”の4レベルである。そして、量子化装置は、例えば、“32”から“100”までの範囲の入力信号VINを受ける。図2の例では、入力信号VINの値は、“100”である。なお、図2では、量子化信号VOUTを2進数で示し、その他の信号を10進数で示している。
また、図2の備考には、量子化の際の条件の一例を示している。例えば、量子化部30は、信号VSIGが0以上で32以下のとき(0≦VSIG≦32)、“00”の量子化信号VOUTを出力する。また、量子化部30は、信号VSIGが33以上で64以下のとき(33≦VSIG≦64)、“01”の量子化信号VOUTを出力する。また、量子化部30は、信号VSIGが65以上で96以下のとき(65≦VSIG≦96)、“10”の量子化信号VOUTを出力する。そして、量子化部30は、信号VSIGが97以上で128以下のとき(97≦VSIG≦128)、“11”の量子化信号VOUTを出力する。
なお、“00”、“01”、“10”および“11”の量子化信号VOUTは、量子化値QVがそれぞれ“32”、“64”、“96”および“128”であることを示している。このように、量子化値QVは、量子化信号VOUTに対応付けされている。
ΔΣ変調では、例えば、所定時間内の量子化値QVを平均することにより、入力信号VINを復調できる。図2の例では、10クロック中に“10”および“11”の量子化信号VOUTがそれぞれ8個および2個存在している。したがって、図2の例では、量子化値QVの平均値QVaveは、式(5)で表される。
QVave=(96×8+128×2)/10=102.4 ・・・(5)
このように、この実施形態では、入力信号VIN(例えば、“100”)を2ビットの量子化信号VOUTで表すことができる。
図3は、図1に示した量子化部30の一例を示している。なお、図中の符号QTW1・・・QTWiは、量子化幅に基づく参照値を示している。例えば、参照値QTW1・・・QTWiは、量子化部30内で生成される。なお、量子化部30は、参照値QTW1・・・QTWiを外部から受けてもよい。参照値QTW1・・・QTWiは、例えば、量子化幅を整数倍した値である。例えば、量子化幅が“32”で、量子化値QVが“32”、“64”、“96”および“128”の4レベルのとき、参照値QTW1・・・QTWiは、量子化幅(“32”)を1倍した“32”と、量子化幅(“32”)を2倍した“64”との2つである。
量子化部30は、例えば、入力選択部32、演算部34、遅延部36、動作制御部38および出力部40を有している。
入力選択部32は、例えば、図1に示した信号処理部10で生成される信号VSIGと、遅延部36から出力される遅延信号DCV2と、動作制御部38から出力される制御信号CNT2と、クロックCLK2とを受ける。そして、入力選択部32は、クロックCLK1の各周期でのクロックCLK2の最初の周期に、信号VSIGを演算信号CV1として選択する。なお、クロックCLK1の各周期でのクロックCLK2の最初の周期以外では、遅延信号DCV2が演算信号CV1として選択される。
すなわち、入力選択部32は、信号VSIGおよび遅延信号DCV2のいずれかを演算信号CV1として選択する。例えば、入力選択部32は、信号VSIGおよび遅延信号DCV2のいずれかを制御信号CNT2に基づいて選択し、選択した信号(演算信号CV1)を出力する。
演算部34は、演算信号CV1、制御信号CNT1および複数の参照値QTW(QTW1・・・QTWi)を受ける。なお、参照値QTWは、演算部34内で生成されてもよい。そして、演算部34は、量子化幅に基づく複数の参照値QTW、演算信号CV1および制御信号CNT1に基づいて、演算信号CV2を生成する。例えば、演算部34は、レベル選択部42および減算部44を有している。
レベル選択部42は、例えば、動作制御部38から出力される制御信号CNT1を受け、参照値RFVをクロックCLK2に同期して出力する。例えば、レベル選択部42は、複数の参照値QTWから1つの参照値QTWを値の大きい方から順に選択し、選択した参照値QTWの符号を制御信号CNT1に応じて正および負のいずれかに設定する。そして、レベル選択部42は、符号が設定された参照値QTWを、参照値RFVとしてクロックCLK2に同期して出力する。すなわち、レベル選択部42は、参照値QTWを値の大きい方から順にクロックCLK2に同期して出力し、出力する参照値QTWの符号を制御信号CNT1に応じて正および負のいずれかに設定する。
減算部44は、レベル選択部42から出力される参照値RFVを演算信号CV1から減算して演算信号CV2を生成する。そして、減算部44は、演算信号CV2を遅延部36および動作制御部38に出力する。なお、減算部44は、例えば、参照値RFVの符号が負のとき、参照値RFVの絶対値と演算信号CV1とを加算して演算信号CV2を生成する。
すなわち、減算部44は、参照値RFVおよび演算信号CV1を受ける。そして、減算部44は、参照値RFVの絶対値を演算信号CV1から減算する減算処理および参照値RFVの絶対値を演算信号CV1に加算する加算処理のいずれかを参照値RFVの符号に基づいて実施することにより、演算信号CV2を生成する。なお、参照値RFVの絶対値は、レベル選択部42により選択された参照値QTWである。
したがって、演算部34は、複数の参照値QTWから1つの参照値QTWを選択し、選択した参照値QTWを演算信号CV1から減算する減算処理および選択した参照値QTWを演算信号CV1に加算する加算処理のいずれかを制御信号CNT1に基づいて実施することにより、演算信号CV2を生成する。
遅延部36は、減算部44から出力される演算信号CV2を遅延させて、遅延させた演算信号CV2を遅延信号DCV2として入力選択部32に出力する。例えば、遅延部36は、クロックCLK2に同期して動作し、演算信号CV2をクロックCLK2の1周期分だけ遅延させて遅延信号DCV2を生成する。遅延部36は、例えば、クロックCLK2に同期して動作するDフリップフロップである。
動作制御部38は、演算信号CV2を受け、クロックCLK2に同期して信号COUTを出力する。また、動作制御部38は、制御信号CNT1、CNT2を生成し、生成した制御信号CNT1、CNT2をレベル選択部42および入力選択部32にそれぞれ出力する。
例えば、動作制御部38は、演算信号CV2が所定の閾値以下のとき、レベル選択部42から出力される参照値RFVの符号を負にするための制御信号CNT1を生成する。すなわち、動作制御部38は、演算信号CV2が所定の閾値以下のとき、演算信号CV2の値を大きくするための制御信号CNT1を生成する。なお、例えば、閾値は、図2の備考に示した条件で量子化するときには、“0”である。
また、例えば、動作制御部38は、演算信号CV2が所定の閾値より大きいとき、レベル選択部42から出力される参照値RFVの符号を正にするための制御信号CNT1を生成する。すなわち、動作制御部38は、演算信号CV2が所定の閾値より大きいとき、演算信号CV2の値を小さくするための制御信号CNT1を生成する。
制御信号CNT2の生成では、例えば、高レベルの制御信号CNT2が信号VSIGを演算信号CV1として選択することを示すとき、動作制御部38は、クロックCLK1の各周期でのクロックCLK2の最初の周期に、制御信号CNT2を高レベルに設定する。そして、動作制御部38は、クロックCLK1の各周期でのクロックCLK2の最初の周期以外に、制御信号CNT2を低レベルに設定する。
また、信号COUTの生成では、例えば、動作制御部38は、クロックCLK1の各周期において、演算信号CV2と所定の閾値との比較を実施する度に、比較結果に基づいて信号COUTを更新する。そして、出力部40は、信号COUTを動作制御部38から受け、信号COUTに基づく量子化信号VOUTをクロックCLK2に同期して出力する。すなわち、動作制御部38および出力部40は、クロックCLK1の各周期での所定の閾値と演算信号CV2との複数回の比較結果に基づいて量子化信号VOUTを生成する制御部として機能する。なお、出力部40は、動作制御部38内に設けられてもよい。
量子化部30の構成は、この例に限定されない。例えば、量子化部30は、参照値RFVを演算信号CV1に加算して演算信号CV2を生成する加算部を、減算部44の代わりに有してもよい。減算部44の代わりに加算部を有する量子化部30では、例えば、演算信号CV2が所定の閾値より大きいとき、レベル選択部42から出力される参照値RFVの符号を負にするための制御信号CNT1が生成される。すなわち、動作制御部38は、演算信号CV2が所定の閾値より大きいとき、演算信号CV2の値を小さくするための制御信号CNT1を生成する。
また、動作制御部38は、制御信号CNT1を減算部44に出力してもよい。例えば、レベル選択部42は、参照値QTWを値の大きい方から順にクロックCLK2に同期して出力してもよい。そして、減算部44は、例えば、減算処理および加算処理のいずれかを制御信号CNT1に基づいて実施してもよい。
図4は、図3に示した量子化部30の動作の一例を示している。図4の動作は、ハードウエアのみで実現されてもよく、ハードウエハをソフトウエアにより制御することにより実現されてもよい。図4では、量子化信号VOUTを2進数で示し、その他の信号を10進数で示している。
なお、図4は、図2の備考に示した条件で量子化するときの量子化部30の動作の一例を示している。例えば、図4の動作では、量子化装置は、8ビットの入力信号VINを2ビットの量子化信号VOUTに量子化する。例えば、0以上で32以下の信号VSIGは、“32”に量子化される。33以上で64以下の信号VSIGは、“64”に量子化される。65以上で96以下の信号VSIGは、“96”に量子化される。97以上で128以下の信号VSIGは、“128”に量子化される。例えば、“32”、“64”、“96”および“128”の量子化値QVは、それぞれ“00”、“01”、“10”および“11”の量子化信号VOUTに対応付けされている。
図4の例では、量子化幅は、“32”であり、参照値QTWは、“32”および“64”の2つである。また、クロックCLK2の周波数は、例えば、クロックCLK1の周波数の2倍である。すなわち、クロックCLK1の1周期でのクロックCLK2のクロック数は、例えば、量子化信号VOUTのビット数と同じである。例えば、処理S100−S104、S118は、クロックCLK1の各周期におけるクロックCLK2の最初の周期に実施される。また、例えば、処理S106−S116、S120−S130は、クロックCLK1の各周期におけるクロックCLK2の2番目の周期に実施される。
処理S100では、入力選択部32は、信号VSIGを演算信号CV1として選択する。また、レベル選択部42は、参照値RFVとして“64”を出力する。したがって、減算部44は、信号VSIGから“64”を減算して演算信号CV2を生成する。
処理S102では、動作制御部38は、演算信号CV2が“0”(所定の閾値)以下か否かを判定する。すなわち、動作制御部38は、信号VSIGが“64”以下か否かを判定する。演算信号CV2が“0”以下のとき(処理S102のYes)、量子化部30の動作は、処理S104に移る。すなわち、信号VSIGが“64”以下のとき、量子化部30の動作は、処理S104に移る。一方、演算信号CV2が“0”より大きいとき(処理S102のNo)、量子化部30の動作は、処理S118に移る。すなわち、信号VSIGが“64”より大きいとき、量子化部30の動作は、処理S118に移る。
処理S104では、動作制御部38は、信号COUTの値を“0”に設定する。また、動作制御部38は、例えば、レベル選択部42から出力される参照値RFVの符号を負にするための制御信号CNT1を生成する。すなわち、動作制御部38は、演算信号CV2が“0”以下のとき、演算信号CV2の値を大きくするための制御信号CNT1を生成する。
処理S106では、入力選択部32は、遅延信号DCV2を演算信号CV1として選択する。また、レベル選択部42は、参照値RFVとして“−32”を出力する。したがって、減算部44は、遅延信号DCV2から“−32”を減算して演算信号CV2を生成する。すなわち、減算部44は、遅延信号DCV2に“32”を加算して演算信号CV2を生成する。
処理S108では、動作制御部38は、演算信号CV2が“0”(所定の閾値)以下か否かを判定する。すなわち、動作制御部38は、信号VSIGが“32”(64から32を減算した値)以下か否かを判定する。演算信号CV2が“0”以下のとき(処理S108のYes)、量子化部30の動作は、処理S110に移る。すなわち、信号VSIGが“32”以下のとき、量子化部30の動作は、処理S110に移る。一方、演算信号CV2が“0”より大きいとき(処理S108のNo)、量子化部30の動作は、処理S114に移る。すなわち、信号VSIGが“32”より大きく“64”以下のとき、量子化部30の動作は、処理S114に移る。
処理S110では、動作制御部38は、信号COUTの値を“0”に維持する。処理S112では、出力部40は、“0”の信号COUTに対応する“00”の量子化信号VOUTを出力する。このように、量子化部30は、例えば、信号VSIGが32以下のとき(VSIG≦32)、“00”の量子化信号VOUTを出力する。
処理S114では、動作制御部38は、信号COUTの値に“1”を加算する。すなわち、信号VSIGが“32”より大きく“64”以下のとき、動作制御部38は、信号COUTの値を“1”に設定する。処理S116では、出力部40は、“1”の信号COUTに対応する“01”の量子化信号VOUTを出力する。このように、量子化部30は、例えば、信号VSIGが33以上で64以下のとき(33≦VSIG≦64)、“01”の量子化信号VOUTを出力する。
処理S118では、動作制御部38は、信号COUTの値を“2”に設定する。すなわち、信号VSIGが“64”より大きいとき、動作制御部38は、信号COUTの値を“2”に設定する。また、動作制御部38は、例えば、レベル選択部42から出力される参照値RFVの符号を正にするための制御信号CNT1を生成する。すなわち、動作制御部38は、演算信号CV2が“0”より大きいとき、演算信号CV2の値を小さくするための制御信号CNT1を生成する。
処理S120では、入力選択部32は、遅延信号DCV2を演算信号CV1として選択する。また、レベル選択部42は、参照値RFVとして“32”を出力する。したがって、減算部44は、遅延信号DCV2から“32”を減算して演算信号CV2を生成する。
処理S122では、動作制御部38は、演算信号CV2が“0”以下か否かを判定する。すなわち、動作制御部38は、信号VSIGが“96”(64に32を加算した値)以下か否かを判定する。演算信号CV2が“0”以下のとき(処理S122のYes)、量子化部30の動作は、処理S124に移る。すなわち、信号VSIGが“64”より大きく“96”以下のとき、量子化部30の動作は、処理S124に移る。一方、演算信号CV2が“0”より大きいとき(処理S122のNo)、量子化部30の動作は、処理S128に移る。すなわち、信号VSIGが“96”より大きいとき、量子化部30の動作は、処理S128に移る。
処理S124では、動作制御部38は、信号COUTの値を“2”に維持する。処理S126では、出力部40は、“2”の信号COUTに対応する“10”の量子化信号VOUTを出力する。このように、量子化部30は、例えば、信号VSIGが65以上で96以下のとき(65≦VSIG≦96)、“10”の量子化信号VOUTを出力する。
処理S128では、動作制御部38は、信号COUTの値に“1”を加算する。すなわち、信号VSIGが“96”より大きいとき、動作制御部38は、信号COUTの値を“3”に設定する。処理S130では、出力部40は、“3”の信号COUTに対応する“11”の量子化信号VOUTを出力する。このように、量子化部30は、例えば、信号VSIGが97以上のとき(97≦VSIG)、“11”の量子化信号VOUTを出力する。
なお、量子化部30の動作は、この例に限定されない。例えば、量子化のレベルは、3でもよいし、5以上でもよい。参照値QTWの数および選択順は、例えば、量子化のレベルに基づいて設定される。そして、量子化信号VOUTは、例えば、クロックCLK1の各周期での演算信号CV2の時系列変化に基づいて生成される。すなわち、量子化信号VOUTは、クロックCLK1の各周期での所定の閾値と演算信号CV2との複数回の比較結果に基づいて生成される。
例えば、量子化幅が“16”で、量子化値QVが“16”から“128”までの8レベルのとき、量子化幅に基づく参照値QTWは、“64”、“32”および“16”の3つである。また、クロックCLK2の周波数は、例えば、クロックCLK1の周波数の3倍である。例えば、動作制御部38は、処理S118において、信号COUTの値を“4”に設定する。そして、例えば、処理S110と処理S112との間に、処理S106−S110、S114に対応する処理が追加される。なお、処理S106に対応する処理では、参照値RFVは、“−16”である。
また、例えば、処理S114と処理S116との間に追加される処理では、参照値RFVは、“16”である。なお、例えば、処理S124と処理S126との間に追加される処理では、参照値RFVは、“−16”である。そして、例えば、処理S128と処理S130との間に追加される処理では、参照値RFVは、“16”である。そして、出力部40は、信号COUTの値に基づく量子化信号VOUTを出力する。これにより、信号VSIGは、例えば、“16”、“32”、“48”、“64”、“80”、“96”、“112”および“128”の8レベルに量子化される。
図5は、図3に示した量子化部30の動作タイミングの一例を示している。なお、図5は、図4に示した動作の各信号の一例を示している。図5では、量子化信号VOUT等の信号を10進数で示している。また、例えば、高レベルの制御信号CNT1は、参照値RFVの符号を負にすることを示している。そして、高レベルの制御信号CNT2は、信号VSIGを演算信号CV1として選択することを示している。なお、図5の例では、期間T10、T11、T12、T13の信号VSIGは、“100”、“10”、“50”および“80”である。期間T10、T11、T12、T13は、クロックCLK1の周期に対応している。また、期間T21、T22は、クロックCLK2の周期に対応している。
期間T10のクロックCLK2の最初の周期T21では、演算信号CV1として、“100”(信号VSIG)が選択される。また、参照値RFVとして、“64”が出力される。したがって、演算信号CV2は、“100”から“64”を減算した“36”である。演算信号CV2が“0”より大きいため、信号COUTは、“2”に設定される。
期間T10のクロックCLK2の2番目の周期T22では、遅延信号DCV2として、期間T21の演算信号CV2が出力される。したがって、遅延信号DCV2は、“36”である。また、演算信号CV1として、“36”(遅延信号DCV2)が選択され、参照値RFVとして、“32”が出力される。したがって、演算信号CV2は、“36”から“32”を減算した“4”である。演算信号CV2が“0”より大きいため、信号COUTは、“2”に“1”を加算した“3”に設定される。このため、量子化信号VOUTとして、“3”が出力される。なお、“3”の量子化信号VOUTは、“128”の量子化値に対応している。すなわち、期間T10では、“100”の信号VSIGが“128”に量子化される。
期間T11のクロックCLK2の最初の周期T21では、演算信号CV1として、“10”(信号VSIG)が選択される。また、参照値RFVとして、“64”が出力される。したがって、演算信号CV2は、“10”から“64”を減算した“−54”である。演算信号CV2が0以下のため、信号COUTは、“0”に設定される。
期間T11のクロックCLK2の2番目の周期T22では、遅延信号DCV2として、期間T21の演算信号CV2が出力される。したがって、遅延信号DCV2は、“−54”である。また、演算信号CV1として、“−54”(遅延信号DCV2)が選択される。なお、期間T22では、期間T21の演算信号CV2が0以下のため、制御信号CNT1は、高レベルに変化する。したがって、参照値RFVとして、“−32”が出力される。
このため、演算信号CV2は、“−54”から“−32”を減算した“−22”である。演算信号CV2が0以下のため、信号COUTは、“0”に維持される。このため、量子化信号VOUTとして、“0”が出力される。なお、“0”の量子化信号VOUTは、“32”の量子化値に対応している。すなわち、期間T11では、“10”の信号VSIGが“32”に量子化される。
期間T12のクロックCLK2の最初の周期T21では、演算信号CV1として、“50”(信号VSIG)が選択される。また、参照値RFVとして、“64”が出力される。したがって、演算信号CV2は、“50”から“64”を減算した“−14”である。演算信号CV2が0以下のため、信号COUTは、“0”に設定される。
期間T12のクロックCLK2の2番目の周期T22では、遅延信号DCV2として、期間T21の演算信号CV2が出力される。したがって、遅延信号DCV2は、“−14”である。また、演算信号CV1として、“−14”(遅延信号DCV2)が選択される。なお、期間T22では、期間T21の演算信号CV2が0以下のため、制御信号CNT1は、高レベルに変化する。したがって、参照値RFVとして、“−32”が出力される。
このため、演算信号CV2は、“−14”から“−32”を減算した“18”である。演算信号CV2が“0”より大きいため、信号COUTは、“0”に“1”を加算した“1”に設定される。このため、量子化信号VOUTとして、“1”が出力される。なお、“1”の量子化信号VOUTは、“64”の量子化値に対応している。すなわち、期間T12では、“50”の信号VSIGが“64”に量子化される。
期間T13のクロックCLK2の最初の周期T21では、演算信号CV1として、“80”(信号VSIG)が選択される。また、参照値RFVとして、“64”が出力される。したがって、演算信号CV2は、“80”から“64”を減算した“16”である。演算信号CV2が“0”より大きいため、信号COUTは、“2”に設定される。
期間T13のクロックCLK2の2番目の周期T22では、遅延信号DCV2として、期間T21の演算信号CV2が出力される。したがって、遅延信号DCV2は、“16”である。また、演算信号CV1として、“16”(遅延信号DCV2)が選択され、参照値RFVとして、“32”が出力される。
このため、演算信号CV2は、“16”から“32”を減算した“−16”である。演算信号CV2が0以下のため、信号COUTは、“2”に維持される。このため、量子化信号VOUTとして、“2”が出力される。なお、“2”の量子化信号VOUTは、“96”の量子化値に対応している。すなわち、期間T13では、“80”の信号VSIGが“96”に量子化される。
このように、量子化部30は、例えば、クロックCLK1の1周期の期間(例えば、期間T10)をクロックCLK2で時分割し、時分割した期間(クロックCLK2の周期)に、信号VSIGが含まれる量子化値QV間の範囲を判定する。これにより、この実施形態では、信号VSIGをクロックCLK1の1周期(例えば、期間T10)以内に量子化できる。すなわち、この実施形態では、例えば、クロックCLK2の2周期(2クロック)で、信号VSIGを2ビットの量子化信号VOUTに量子化できる。
ここで、量子化装置の信号対雑音比(以下、SNRとも称する)は、例えば、量子化ビット数(量子化信号VOUTのビット数)を1ビット上げることにより、約6dB改善される。また、SNRは、オーバーサンプリング比(信号周波数に対するサンプリング周波数の比)を2倍にすることにより、約3dB改善される。したがって、この実施形態では、クロックCLK1で1ビットに量子化する量子化装置に比べて、SNRを約6dB改善できる。これは、サンプリング周波数を4倍にしたときと同等の改善効果である。
すなわち、この実施形態では、量子化部30の動作周波数(クロックCLK2の周波数)をクロックCLK1の周波数の2倍にすることにより、1ビットに量子化する量子化装置の動作周波数(クロックCLK1の周波数)を4倍にしたときと同等のSNRの改善効果が得られる。このため、この実施形態では、消費電流の増加を抑制できる。また、この実施形態では、量子化装置の量子化部30以外(信号処理部10)を高速動作させる必要がないため、量子化装置全体を高速動作させるときに比べて、タイミング調整を容易にできる。
以上、この実施形態では、量子化装置は、信号VSIGをクロックCLK1の1周期以内に複数ビットの量子化信号VOUTに量子化する量子化部30を有している。量子化部30は、信号VSIGと量子化ビットで表される量子化値QVとを比較する比較器(例えば、減算部44)の数を増加させる代わりに、クロックCLK1より高速のクロックCLK2に同期して動作する。これにより、この実施形態では、複数ビットの量子化信号VOUTに量子化する量子化部30の回路規模が増加することを抑制できる。すなわち、この実施形態では、回路規模の増加を抑制しつつ、複数ビットの量子化信号VOUTを生成できる。
図6は、別の実施形態における量子化部30Aの一例を示している。上述した実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。この実施形態の量子化装置は、量子化部30の代わりに量子化部30Aを有することを除いて、上述した実施形態と同じである。なお、図中の符号QTV1・・・QTViは、量子化の際の境界値に対応する量子化値を示している。例えば、量子化値QTV1・・・QTViは、量子化部30A内で生成される。なお、量子化部30Aは、量子化値QTV1・・・QTViを外部から受けてもよい。例えば、量子化値QTV1・・・QTViは、図2の備考に示した条件で量子化するとき、“32”、“64”および“96”の3つである。
量子化部30Aは、例えば、レベル選択部42A、比較部46、動作制御部38Aおよび出力部40を有している。
レベル選択部42Aは、制御信号CNT3および複数の量子化値QTV(QTV1・・・QTVi)を受ける。なお、量子化値QTVは、レベル選択部42A内で生成されてもよい。そして、レベル選択部42Aは、複数の量子化値QTVから1つの量子化値QTVを制御信号CNT3に基づいて選択し、選択した量子化値QTVを示す参照信号RFVをクロックCLK2に同期して出力する。
比較部46は、信号VSIGおよび参照信号RFVを受け、信号VSIGと参照信号RFVとを比較する。例えば、比較部46は、信号VSIGの値から参照信号RFVの値を減算し、減算結果に基づいて、比較結果を示す信号CSIG(以下、比較結果CSIGとも称する)を出力する。
動作制御部38Aは、比較結果CSIGを受け、クロックCLK2に同期して信号COUTを出力する。また、動作制御部38Aは、制御信号CNT3を生成し、生成した制御信号CNT3をレベル選択部42Aに出力する。
例えば、動作制御部38Aは、参照信号RFVの値が信号VSIGの値以上のとき、参照信号RFVの値を小さくするための制御信号CNT3を生成する。また、例えば、動作制御部38Aは、参照信号RFVの値が信号VSIGの値より小さいとき、参照信号RFVの値を大きくするための制御信号CNT3を生成する。さらに、クロックCLK1の各周期において、動作制御部38Aは、例えば、比較部46から比較結果CSIGを受ける度に、比較結果CSIGに基づいて信号COUTを更新する。
そして、出力部40は、信号COUTを動作制御部38Aから受け、信号COUTに基づく量子化信号VOUTをクロックCLK2に同期して出力する。すなわち、動作制御部38Aおよび出力部40は、比較部46の比較結果CSIGに基づいて量子化信号VOUTを生成する制御部として機能する。なお、量子化部30Aの構成は、この例に限定されない。例えば、出力部40は、動作制御部38A内に設けられてもよい。
図7は、図6に示した量子化部30Aの動作の一例を示している。図7の動作は、ハードウエアのみで実現されてもよく、ハードウエハをソフトウエアにより制御することにより実現されてもよい。図7では、量子化信号VOUTを2進数で示し、その他の信号を10進数で示している。なお、図7は、量子化値QVが“32”、“64”、“96”および“128”の4レベルのときの量子化部30Aの動作の一例を示している。すなわち、図7の動作では、量子化部30Aは、信号VSIGを、図2の備考に示した条件で量子化する。
例えば、図7の動作では、量子化装置は、8ビットの入力信号VINを2ビットの量子化信号VOUTに量子化する。例えば、0以上で32以下の信号VSIGは、“32”に量子化される。33以上で64以下の信号VSIGは、“64”に量子化される。65以上で96以下の信号VSIGは、“96”に量子化される。97以上で128以下の信号VSIGは、“128”に量子化される。例えば、“32”、“64”、“96”および“128”の量子化値QVは、それぞれ“00”、“01”、“10”および“11”の量子化信号VOUTに対応付けされている。
図7の例では、量子値QTVは、“32”、“64”および“96”の3つである。また、クロックCLK2の周波数は、例えば、クロックCLK1の周波数の2倍である。すなわち、クロックCLK1の1周期でのクロックCLK2のクロック数は、例えば、量子化信号VOUTのビット数と同じである。例えば、処理S200−S204、S218は、クロックCLK1の各周期におけるクロックCLK2の最初の周期に実施される。また、例えば、処理S206−S216、S220−S230は、クロックCLK1の各周期におけるクロックCLK2の2番目の周期に実施される。
処理S200では、レベル選択部42Aは、“32”、“64”および“96”の量子値QTVのうち、中央付近の値である“64”の量子化値QTVを選択する。そして、レベル選択部42Aは、選択した“64”を示す参照信号RFVを出力する。したがって、処理S202において、比較部46は、信号VSIGと“64”とを比較する。
処理S202では、比較部46は、信号VSIGが“64”以下か否かを判定する。信号VSIGが“64”以下のとき(処理S202のYes)、量子化部30Aの動作は、処理S204に移る。すなわち、参照信号RFVの値(“64”)が信号VSIGの値以上のとき、量子化部30Aの動作は、処理S204に移る。一方、信号VSIGが“64”より大きいとき(処理S202のNo)、量子化部30Aの動作は、処理S218に移る。すなわち、参照信号RFVの値(“64”)が信号VSIGの値より小さいとき、量子化部30Aの動作は、処理S218に移る。
処理S204では、動作制御部38Aは、信号COUTの値を“0”に設定する。また、動作制御部38Aは、例えば、参照信号RFVの値を小さくするための制御信号CNT3を生成する。すなわち、動作制御部38Aは、参照信号RFVの値が信号VSIGの値以上のとき、参照信号RFVの値を小さくするための制御信号CNT3を生成する。
処理S206では、レベル選択部42Aは、“32”、“64”および“96”の量子値QTVのうち、“64”より小さい“32”の量子化値QTVを選択する。そして、レベル選択部42Aは、選択した“32”を示す参照信号RFVを出力する。したがって、処理S208において、比較部46は、信号VSIGと“32”とを比較する。
処理S208では、比較部46は、信号VSIGが“32”以下か否かを判定する。信号VSIGが“32”以下のとき(処理S208のYes)、量子化部30Aの動作は、処理S210に移る。すなわち、参照信号RFVの値(“32”)が信号VSIGの値以上のとき、量子化部30Aの動作は、処理S210に移る。一方、信号VSIGが“32”より大きいとき(処理S208のNo)、量子化部30Aの動作は、処理S214に移る。すなわち、参照信号RFVの値(“32”)が信号VSIGの値より小さいとき、量子化部30Aの動作は、処理S214に移る。
処理S210では、動作制御部38Aは、信号COUTの値を“0”に維持する。処理S212では、出力部40は、“0”の信号COUTに対応する“00”の量子化信号VOUTを出力する。このように、量子化部30Aは、例えば、信号VSIGが32以下のとき(VSIG≦32)、“00”の量子化信号VOUTを出力する。
処理S214では、動作制御部38Aは、信号COUTの値に“1”を加算する。すなわち、信号VSIGが“32”より大きく“64”以下のとき、動作制御部38Aは、信号COUTの値を“1”に設定する。処理S216では、出力部40は、“1”の信号COUTに対応する“01”の量子化信号VOUTを出力する。このように、量子化部30Aは、例えば、信号VSIGが33以上で64以下のとき(33≦VSIG≦64)、“01”の量子化信号VOUTを出力する。
処理S218では、動作制御部38Aは、信号COUTの値を“2”に設定する。すなわち、信号VSIGが“64”より大きいとき、動作制御部38Aは、信号COUTの値を“2”に設定する。また、動作制御部38Aは、例えば、参照信号RFVの値を大きくするための制御信号CNT3を生成する。すなわち、動作制御部38Aは、参照信号RFVの値が信号VSIGの値より小さいとき、参照信号RFVの値を大きくするための制御信号CNT3を生成する。
処理S220では、レベル選択部42Aは、“32”、“64”および“96”の量子値QTVのうち、“64”より大きい“96”の量子化値QTVを選択する。そして、レベル選択部42Aは、選択した“96”を示す参照信号RFVを出力する。したがって、処理S222において、比較部46は、信号VSIGと“96”とを比較する。
処理S222では、比較部46は、信号VSIGが“96”以下か否かを判定する。信号VSIGが“96”以下のとき(処理S222のYes)、量子化部30Aの動作は、処理S224に移る。すなわち、参照信号RFVの値(“96”)が信号VSIGの値以上のとき、量子化部30Aの動作は、処理S224に移る。一方、信号VSIGが“96”より大きいとき(処理S222のNo)、量子化部30Aの動作は、処理S228に移る。すなわち、参照信号RFVの値(“96”)が信号VSIGの値より小さいとき、量子化部30Aの動作は、処理S228に移る。
処理S224では、動作制御部38Aは、信号COUTの値を“2”に維持する。処理S226では、出力部40は、“2”の信号COUTに対応する“10”の量子化信号VOUTを出力する。このように、量子化部30Aは、例えば、信号VSIGが65以上で96以下のとき(65≦VSIG≦96)、“10”の量子化信号VOUTを出力する。
処理S228では、動作制御部38Aは、信号COUTの値に“1”を加算する。すなわち、信号VSIGが“96”より大きいとき、動作制御部38Aは、信号COUTの値を“3”に設定する。処理S230では、出力部40は、“3”の信号COUTに対応する“11”の量子化信号VOUTを出力する。このように、量子化部30Aは、例えば、信号VSIGが97以上のとき(97≦VSIG)、“11”の量子化信号VOUTを出力する。
図8は、図6に示した量子化部30Aの動作タイミングの一例を示している。なお、図8は、図7に示した動作の各信号の一例を示している。図8では、量子化信号VOUT等の信号を10進数で示している。また、例えば、高レベルの制御信号CNT3は、参照信号RFVの値を小さくすることを示している。そして、比較結果CSIGは、“1”のとき、参照信号RFVの値が信号VSIGの値より小さいことを示している。なお、図8の例では、期間T10、T11、T12、T13の信号VSIGは、“100”、“10”、“50”および“80”である。期間T10、T11、T12、T13は、クロックCLK1の周期に対応している。また、期間T21、T22は、クロックCLK2の周期に対応している。
期間T10のクロックCLK2の最初の周期T21では、参照信号RFVとして、“64”の量子化値QTVが選択される。参照信号RFVの値(“64”)が信号VSIGの値(“100”)より小さいため、比較結果CSIGは、“1”である。したがって、信号COUTは、“2”に設定される。
期間T10のクロックCLK2の2番目の周期T22では、期間T21の比較結果CSIGが“1”であるため、制御信号CNT3は、低レベルに維持される。したがって、“64”より大きい“96”の量子化値QTVが参照信号RFVとして選択される。参照信号RFVの値(“96”)が信号VSIGの値(“100”)より小さいため、比較結果CSIGは、“1”である。したがって、信号COUTは、“2”に“1”を加算した“3”に設定される。このため、量子化信号VOUTとして、“3”が出力される。なお、“3”の量子化信号VOUTは、“128”の量子化値に対応している。すなわち、期間T10では、“100”の信号VSIGが“128”に量子化される。
期間T11のクロックCLK2の最初の周期T21では、参照信号RFVとして、“64”の量子化値QTVが選択される。参照信号RFVの値(“64”)が信号VSIGの値(“10”)以上のため、比較結果CSIGは、“0”である。したがって、信号COUTは、“0”に設定される。
期間T11のクロックCLK2の2番目の周期T22では、期間T21の比較結果CSIGが“0”であるため、制御信号CNT3は、高レベルに変化する。したがって、“64”より小さい“32”の量子化値QTVが参照信号RFVとして選択される。参照信号RFVの値(“32”)が信号VSIGの値(“10”)以上のため、比較結果CSIGは、“0”である。したがって、信号COUTは、“0”に維持される。このため、量子化信号VOUTとして、“0”が出力される。なお、“0”の量子化信号VOUTは、“32”の量子化値に対応している。すなわち、期間T11では、“10”の信号VSIGが“32”に量子化される。
期間T12のクロックCLK2の最初の周期T21では、参照信号RFVとして、“64”の量子化値QTVが選択される。参照信号RFVの値(“64”)が信号VSIGの値(“50”)以上のため、比較結果CSIGは、“0”である。したがって、信号COUTは、“0”に設定される。
期間T12のクロックCLK2の2番目の周期T22では、期間T21の比較結果CSIGが“0”であるため、制御信号CNT3は、高レベルに変化する。したがって、“64”より小さい“32”の量子化値QTVが参照信号RFVとして選択される。参照信号RFVの値(“32”)が信号VSIGの値(“50”)より小さいため、比較結果CSIGは、“1”である。したがって、信号COUTは、“0”に“1”を加算した“1”に設定される。このため、量子化信号VOUTとして、“1”が出力される。なお、“1”の量子化信号VOUTは、“64”の量子化値に対応している。すなわち、期間T12では、“50”の信号VSIGが“64”に量子化される。
期間T13のクロックCLK2の最初の周期T21では、参照信号RFVとして、“64”の量子化値QTVが選択される。参照信号RFVの値(“64”)が信号VSIGの値(“80”)より小さいため、比較結果CSIGは、“1”である。したがって、信号COUTは、“2”に設定される。
期間T13のクロックCLK2の2番目の周期T22では、期間T21の比較結果CSIGが“1”であるため、制御信号CNT3は、低レベルに維持される。したがって、“64”より大きい“96”の量子化値QTVが参照信号RFVとして選択される。参照信号RFVの値(“96”)が信号VSIGの値(“80”)以上のため、比較結果CSIGは、“0”である。したがって、信号COUTは、“2”に維持される。このため、量子化信号VOUTとして、“2”が出力される。なお、“2”の量子化信号VOUTは、“96”の量子化値に対応している。すなわち、期間T13では、“80”の信号VSIGが“96”に量子化される。
図9は、図6に示した量子化部30Aの動作の別の例を示している。図9の動作は、ハードウエアのみで実現されてもよく、ハードウエハをソフトウエアにより制御することにより実現されてもよい。図9では、量子化信号VOUTを2進数で示し、その他の信号を10進数で示している。なお、図9は、量子化値QVが“43”、“86”および“128”の3レベルのときの量子化部30Aの動作の一例を示している。
例えば、図9の動作では、量子化装置は、8ビットの入力信号VINを2ビットの量子化信号VOUTに量子化する。例えば、0以上で43以下の信号VSIGは、“43”に量子化される。44以上で86以下の信号VSIGは、“86”に量子化される。87以上で128以下の信号VSIGは、“128”に量子化される。例えば、“43”、“86”および“128”の量子化値QVは、それぞれ“00”、“01”および“10”の量子化信号VOUTに対応付けされている。
図9の例では、量子値QTVは、“43”および“96”の2つである。また、クロックCLK2の周波数は、例えば、クロックCLK1の周波数の2倍である。すなわち、クロックCLK1の1周期でのクロックCLK2のクロック数は、例えば、量子化信号VOUTのビット数と同じである。例えば、処理S300−S304、S308は、クロックCLK1の各周期におけるクロックCLK2の最初の周期に実施される。また、例えば、処理S306、S310−S320は、クロックCLK1の各周期におけるクロックCLK2の2番目の周期に実施される。
処理S300では、レベル選択部42Aは、“43”および“86”の量子値QTVのうち、“43”の量子化値QTVを選択する。そして、レベル選択部42Aは、選択した“43”を示す参照信号RFVを出力する。したがって、処理S302において、比較部46は、信号VSIGと“43”とを比較する。
処理S302では、比較部46は、信号VSIGが“43”以下か否かを判定する。信号VSIGが“43”以下のとき(処理S302のYes)、量子化部30Aの動作は、処理S304に移る。一方、信号VSIGが“43”より大きいとき(処理S302のNo)、量子化部30Aの動作は、処理S308に移る。
処理S304では、動作制御部38Aは、信号COUTの値を“0”に設定する。処理S306では、出力部40は、“0”の信号COUTに対応する“00”の量子化信号VOUTを出力する。このように、量子化部30Aは、例えば、信号VSIGが43以下のとき(VSIG≦43)、“00”の量子化信号VOUTを出力する。
処理S308では、動作制御部38Aは、信号COUTの値を“1”に設定する。すなわち、信号VSIGが“43”より大きいとき、動作制御部38Aは、信号COUTの値を“1”に設定する。また、動作制御部38Aは、例えば、参照信号RFVの値を大きくするための制御信号CNT3を生成する。
処理S310では、レベル選択部42Aは、“43”および“86”の量子値QTVのうち、“43”より大きい“86”の量子化値QTVを選択する。そして、レベル選択部42Aは、選択した“86”を示す参照信号RFVを出力する。したがって、処理S312において、比較部46は、信号VSIGと“86”とを比較する。
処理S312では、比較部46は、信号VSIGが“86”以下か否かを判定する。信号VSIGが“86”以下のとき(処理S312のYes)、量子化部30Aの動作は、処理S314に移る。一方、信号VSIGが“86”より大きいとき(処理S312のNo)、量子化部30Aの動作は、処理S318に移る。
処理S314では、動作制御部38Aは、信号COUTの値を“1”に維持する。処理S316では、出力部40は、“1”の信号COUTに対応する“01”の量子化信号VOUTを出力する。このように、量子化部30Aは、例えば、信号VSIGが44以上で86以下のとき(44≦VSIG≦86)、“01”の量子化信号VOUTを出力する。
処理S318では、動作制御部38Aは、信号COUTの値に“1”を加算する。すなわち、信号VSIGが“86”より大きいとき、動作制御部38Aは、信号COUTの値を“2”に設定する。処理S320では、出力部40は、“2”の信号COUTに対応する“10”の量子化信号VOUTを出力する。このように、量子化部30Aは、例えば、信号VSIGが87以上のとき(87≦VSIG)、“10”の量子化信号VOUTを出力する。
なお、量子化値QVが“43”、“86”および“128”の3レベルのときの量子化部30Aの動作は、この例に限定されない。例えば、レベル選択部42Aは、“43”の量子化値QTVより先に、“86”の量子化値QTVを選択してもよい。
図10は、図6に示した量子化部30Aの動作タイミングの別の例を示している。なお、図10は、図9に示した動作の各信号の一例を示している。図10では、量子化信号VOUT等の信号を10進数で示している。また、例えば、高レベルの制御信号CNT3は、参照信号RFVの値を小さくすることを示している。そして、比較結果CSIGは、“1”のとき、参照信号RFVの値が信号VSIGの値より小さいことを示している。なお、図10の例では、期間T10、T11、T12、T13の信号VSIGは、“100”、“10”、“50”および“80”である。期間T10、T11、T12、T13は、クロックCLK1の周期に対応している。また、期間T21、T22は、クロックCLK2の周期に対応している。
期間T10のクロックCLK2の最初の周期T21では、参照信号RFVとして、“43”の量子化値QTVが選択される。参照信号RFVの値(“43”)が信号VSIGの値(“100”)より小さいため、比較結果CSIGは、“1”である。したがって、信号COUTは、“1”に設定される。
期間T10のクロックCLK2の2番目の周期T22では、期間T21の比較結果CSIGが“1”であるため、制御信号CNT3は、低レベルに維持される。したがって、“43”より大きい“86”の量子化値QTVが参照信号RFVとして選択される。参照信号RFVの値(“86”)が信号VSIGの値(“100”)より小さいため、比較結果CSIGは、“1”である。したがって、信号COUTは、“1”に“1”を加算した“2”に設定される。このため、量子化信号VOUTとして、“2”が出力される。なお、“2”の量子化信号VOUTは、“128”の量子化値に対応している。すなわち、期間T10では、“100”の信号VSIGが“128”に量子化される。
期間T11のクロックCLK2の最初の周期T21では、参照信号RFVとして、“43”の量子化値QTVが選択される。参照信号RFVの値(“43”)が信号VSIGの値(“10”)以上のため、比較結果CSIGは、“0”である。したがって、信号COUTは、“0”に設定される。
期間T11のクロックCLK2の2番目の周期T22では、期間T21の比較結果CSIGが“0”であるため、制御信号CNT3は、高レベルに変化する。“43”の量子化値QTVが最小の量子化値QTVであるため、参照信号RFV、比較結果CSIGおよび信号COUTは、期間T21の状態に維持される。例えば、信号COUTは、“0”に維持される。このため、量子化信号VOUTとして、“0”が出力される。なお、“0”の量子化信号VOUTは、“43”の量子化値に対応している。すなわち、期間T11では、“10”の信号VSIGが“43”に量子化される。
期間T12のクロックCLK2の最初の周期T21では、参照信号RFVとして、“43”の量子化値QTVが選択される。参照信号RFVの値(“43”)が信号VSIGの値(“50”)より小さいため、比較結果CSIGは、“1”である。したがって、信号COUTは、“1”に設定される。
期間T12のクロックCLK2の2番目の周期T22では、期間T21の比較結果CSIGが“1”であるため、制御信号CNT3は、低レベルに維持される。したがって、“43”より大きい“86”の量子化値QTVが参照信号RFVとして選択される。参照信号RFVの値(“86”)が信号VSIGの値(“50”)以上のため、比較結果CSIGは、“0”である。したがって、信号COUTは、“1”に維持される。このため、量子化信号VOUTとして、“1”が出力される。なお、“1”の量子化信号VOUTは、“86”の量子化値に対応している。すなわち、期間T12では、“50”の信号VSIGが“86”に量子化される。
期間T13では、期間T12と同様の動作により、量子化信号VOUTとして、“1”が出力される。すなわち、期間T13では、“80”の信号VSIGが“86”に量子化される。
図11は、図6に示した量子化部30Aの動作の別の例を示している。図11の動作は、ハードウエアのみで実現されてもよく、ハードウエハをソフトウエアにより制御することにより実現されてもよい。図11では、量子化信号VOUTを2進数で示し、その他の信号を10進数で示している。なお、図11は、量子化値QVが“21”、“42”、“63”、“84”、“105”および“128”の6レベルのときの量子化部30Aの動作の一例を示している。
例えば、図11の動作では、量子化装置は、8ビットの入力信号VINを3ビットの量子化信号VOUTに量子化する。例えば、0以上で21以下の信号VSIGは、“21”に量子化される。22以上で42以下の信号VSIGは、“42”に量子化される。43以上で63以下の信号VSIGは、“63”に量子化される。64以上で84以下の信号VSIGは、“84”に量子化される。85以上で105以下の信号VSIGは、“105”に量子化される。106以上で128以下の信号VSIGは、“128”に量子化される。例えば、“21”、“42”、“63”、“84”、“105”および“128”の量子化値QVは、それぞれ“000”、“001”、“010”、“011”、“100”および“101”の量子化信号VOUTに対応付けされている。
図11の例では、量子値QTVは、“21”、“42”、“63”、“84”および“105”の5つである。また、クロックCLK2の周波数は、例えば、クロックCLK1の周波数の3倍である。すなわち、クロックCLK1の1周期でのクロックCLK2のクロック数は、例えば、量子化信号VOUTのビット数と同じである。例えば、処理S400−S404、S428は、クロックCLK1の各周期におけるクロックCLK2の最初の周期に実施される。また、例えば、処理S406−S410、S414、S430−S434、S438は、クロックCLK1の各周期におけるクロックCLK2の2番目の周期に実施される。そして、例えば、処理S412、S416−S426、S436、S440−S450は、クロックCLK1の各周期におけるクロックCLK2の3番目の周期に実施される。
処理S400では、レベル選択部42Aは、“21”、“42”、“63”、“84”および“105”の量子値QTVのうち、中央付近の値である“63”の量子化値QTVを選択する。そして、レベル選択部42Aは、選択した“63”を示す参照信号RFVを出力する。したがって、処理S402において、比較部46は、信号VSIGと“63”とを比較する。
処理S402では、比較部46は、信号VSIGが“63”以下か否かを判定する。信号VSIGが“63”以下のとき(処理S402のYes)、量子化部30Aの動作は、処理S404に移る。一方、信号VSIGが“63”より大きいとき(処理S402のNo)、量子化部30Aの動作は、処理S428に移る。
処理S404では、動作制御部38Aは、信号COUTの値を“0”に設定する。また、動作制御部38Aは、例えば、参照信号RFVの値を小さくするための制御信号CNT3を生成する。
処理S406では、レベル選択部42Aは、“21”、“42”、“63”、“84”および“105”の量子値QTVのうち、“63”より小さい“21”の量子化値QTVを選択する。そして、レベル選択部42Aは、選択した“21”を示す参照信号RFVを出力する。したがって、処理S408において、比較部46は、信号VSIGと“21”とを比較する。
処理S408では、比較部46は、信号VSIGが“21”以下か否かを判定する。信号VSIGが“21”以下のとき(処理S408のYes)、量子化部30Aの動作は、処理S410に移る。一方、信号VSIGが“21”より大きいとき(処理S408のNo)、量子化部30Aの動作は、処理S414に移る。
処理S410では、動作制御部38Aは、信号COUTの値を“0”に維持する。処理S412では、出力部40は、“0”の信号COUTに対応する“000”の量子化信号VOUTを出力する。このように、量子化部30Aは、例えば、信号VSIGが21以下のとき(VSIG≦21)、“000”の量子化信号VOUTを出力する。
処理S414では、動作制御部38Aは、信号COUTの値に“1”を加算する。すなわち、信号VSIGが“21”より大きいとき、動作制御部38Aは、信号COUTの値を“1”に設定する。また、動作制御部38Aは、例えば、参照信号RFVの値を大きくするための制御信号CNT3を生成する。
処理S416では、レベル選択部42Aは、“21”、“42”、“63”、“84”および“105”の量子値QTVのうち、“21”より大きい“42”の量子化値QTVを選択する。そして、レベル選択部42Aは、選択した“42”を示す参照信号RFVを出力する。したがって、処理S418において、比較部46は、信号VSIGと“42”とを比較する。
処理S418では、比較部46は、信号VSIGが“42”以下か否かを判定する。信号VSIGが“42”以下のとき(処理S418のYes)、量子化部30Aの動作は、処理S420に移る。一方、信号VSIGが“42”より大きいとき(処理S418のNo)、量子化部30Aの動作は、処理S424に移る。
処理S420では、動作制御部38Aは、信号COUTの値を“1”に維持する。処理S422では、出力部40は、“1”の信号COUTに対応する“001”の量子化信号VOUTを出力する。このように、量子化部30Aは、例えば、信号VSIGが22以上で42以下のとき(22≦VSIG≦42)、“001”の量子化信号VOUTを出力する。
処理S424では、動作制御部38Aは、信号COUTの値に“1”を加算する。すなわち、信号VSIGが“42”より大きいとき、動作制御部38Aは、信号COUTの値を“2”に設定する。処理S426では、出力部40は、“2”の信号COUTに対応する“010”の量子化信号VOUTを出力する。このように、量子化部30Aは、例えば、信号VSIGが43以上で63以下のとき(43≦VSIG≦63)、“010”の量子化信号VOUTを出力する。
処理S428では、動作制御部38Aは、信号COUTの値を“3”に設定する。すなわち、信号VSIGが“63”より大きいとき、動作制御部38Aは、信号COUTの値を“3”に設定する。また、動作制御部38Aは、例えば、参照信号RFVの値を大きくするための制御信号CNT3を生成する。
処理S430では、レベル選択部42Aは、“21”、“42”、“63”、“84”および“105”の量子値QTVのうち、“63”より大きい“84”の量子化値QTVを選択する。そして、レベル選択部42Aは、選択した“84”を示す参照信号RFVを出力する。したがって、処理S432において、比較部46は、信号VSIGと“84”とを比較する。
処理S432では、比較部46は、信号VSIGが“84”以下か否かを判定する。信号VSIGが“84”以下のとき(処理S432のYes)、量子化部30Aの動作は、処理S434に移る。一方、信号VSIGが“84”より大きいとき(処理S432のNo)、量子化部30Aの動作は、処理S438に移る。
処理S434では、動作制御部38Aは、信号COUTの値を“3”に維持する。処理S436では、出力部40は、“3”の信号COUTに対応する“011”の量子化信号VOUTを出力する。このように、量子化部30Aは、例えば、信号VSIGが64以上で84以下のとき(64≦VSIG≦84)、“011”の量子化信号VOUTを出力する。
処理S438では、動作制御部38Aは、信号COUTの値に“1”を加算する。すなわち、信号VSIGが“84”より大きいとき、動作制御部38Aは、信号COUTの値を“4”に設定する。また、動作制御部38Aは、例えば、参照信号RFVの値を大きくするための制御信号CNT3を生成する。
処理S440では、レベル選択部42Aは、“21”、“42”、“63”、“84”および“105”の量子値QTVのうち、“84”より大きい“105”の量子化値QTVを選択する。そして、レベル選択部42Aは、選択した“105”を示す参照信号RFVを出力する。したがって、処理S442において、比較部46は、信号VSIGと“105”とを比較する。
処理S442では、比較部46は、信号VSIGが“105”以下か否かを判定する。信号VSIGが“105”以下のとき(処理S442のYes)、量子化部30Aの動作は、処理S444に移る。一方、信号VSIGが“105”より大きいとき(処理S442のNo)、量子化部30Aの動作は、処理S448に移る。
処理S444では、動作制御部38Aは、信号COUTの値を“4”に維持する。処理S446では、出力部40は、“4”の信号COUTに対応する“100”の量子化信号VOUTを出力する。このように、量子化部30Aは、例えば、信号VSIGが85以上で105以下のとき(85≦VSIG≦105)、“100”の量子化信号VOUTを出力する。
処理S448では、動作制御部38Aは、信号COUTの値に“1”を加算する。すなわち、信号VSIGが“105”より大きいとき、動作制御部38Aは、信号COUTの値を“5”に設定する。処理S450では、出力部40は、“5”の信号COUTに対応する“101”の量子化信号VOUTを出力する。このように、量子化部30Aは、例えば、信号VSIGが106以上のとき(106≦VSIG)、“101”の量子化信号VOUTを出力する。
なお、量子化部30Aの動作は、この例に限定されない。例えば、量子化のレベルは、5でもよいし、7以上でもよい。量子化値QVのレベル数Lとクロック数CNUM(クロックCLK1の各周期でのクロックCLK2のクロック数)の関係は、例えば、式(6)、(7)で表される。式中のKは、素数であり、a、b、c、jは、整数である。
L=2a×3b/2×5c/4・・・×2j/(K−1) ・・・(6)
CNUM=a+b+c+・・・j ・・・(7)
例えば、a=1、b=2のとき、L=6、CNUM=3が式(6)、(7)よりそれぞれ算出される。したがって、例えば、量子化値QVが6レベルのとき、クロックCLK1の各周期でのクロックCLK2のクロック数は、3に設定される。また、クロック数CNUMと最大のレベル数Lmaxとの関係は、式(8)で表される。
Lmax=2CNUM ・・・(8)
例えば、クロックCLK1の各周期でのクロックCLK2のクロック数が3のとき、信号VSIGを8レベルに量子化できる。例えば、量子化幅が“16”で、量子化値QVが“16”から“128”までの8レベルのとき、量子化値QTVは、“16”、“32”、“48”、“64”、“80”、“96”および“112”の7つである。そして、量子化値QTVの選択順は、例えば、4通りである。例えば、信号VSIGが“16”および“32”のいずれかに量子化されるとき、量子化値QTVは、“64”、“32”、“16”の順に選択される。また、例えば、信号VSIGが“48”および“64”のいずれかに量子化されるとき、量子化値QTVは、“64”、“32”、“48”の順に選択される。そして、例えば、信号VSIGが“80”および“96”のいずれかに量子化されるとき、量子化値QTVは、“64”、“96”、“80”の順に選択される。例えば、信号VSIGが“112”および“128”のいずれかに量子化されるとき、量子化値QTVは、“64”、“96”、“105”の順に選択される。
図12は、図6に示した量子化部30Aの動作タイミングの別の例を示している。なお、図12は、図11に示した動作の各信号の一例を示している。図12では、量子化信号VOUT等の信号を10進数で示している。また、例えば、高レベルの制御信号CNT3は、参照信号RFVの値を小さくすることを示している。そして、比較結果CSIGは、“1”のとき、参照信号RFVの値が信号VSIGの値より小さいことを示している。なお、図12の例では、期間T10、T11、T12の信号VSIGは、“100”、“10”、“50”である。期間T10、T11、T12は、クロックCLK1の周期に対応している。また、期間T21、T22、T23は、クロックCLK2の周期に対応している。
期間T10のクロックCLK2の最初の周期T21では、参照信号RFVとして、“63”の量子化値QTVが選択される。参照信号RFVの値(“63”)が信号VSIGの値(“100”)より小さいため、比較結果CSIGは、“1”である。したがって、信号COUTは、“3”に設定される。
期間T10のクロックCLK2の2番目の周期T22では、期間T21の比較結果CSIGが“1”であるため、制御信号CNT3は、低レベルに維持される。したがって、“63”より大きい“84”の量子化値QTVが参照信号RFVとして選択される。参照信号RFVの値(“84”)が信号VSIGの値(“100”)より小さいため、比較結果CSIGは、“1”である。したがって、信号COUTは、“3”に“1”を加算した“4”に設定される。
期間T10のクロックCLK2の3番目の周期T23では、期間T22の比較結果CSIGが“1”であるため、制御信号CNT3は、低レベルに維持される。したがって、“84”より大きい“105”の量子化値QTVが参照信号RFVとして選択される。参照信号RFVの値(“105”)が信号VSIGの値(“100”)以上のため、比較結果CSIGは、“0”である。したがって、信号COUTは、“4”に維持される。このため、量子化信号VOUTとして、“4”が出力される。なお、“4”の量子化信号VOUTは、“105”の量子化値に対応している。すなわち、期間T10では、“100”の信号VSIGが“105”に量子化される。
期間T11のクロックCLK2の最初の周期T21では、参照信号RFVとして、“63”の量子化値QTVが選択される。参照信号RFVの値(“63”)が信号VSIGの値(“10”)以上のため、比較結果CSIGは、“0”である。したがって、信号COUTは、“0”に設定される。
期間T11のクロックCLK2の2番目の周期T22では、期間T21の比較結果CSIGが“0”であるため、制御信号CNT3は、高レベルに変化する。したがって、“63”より小さい“21”の量子化値QTVが参照信号RFVとして選択される。参照信号RFVの値(“21”)が信号VSIGの値(“10”)以上のため、比較結果CSIGは、“0”である。したがって、信号COUTは、“0”に維持される。
期間T11のクロックCLK2の3番目の周期T23では、期間T22の比較結果CSIGが“0”であるため、制御信号CNT3は、高レベルに維持される。“21”の量子化値QTVが最小の量子化値QTVであるため、参照信号RFV、比較結果CSIGおよび信号COUTは、期間T22の状態に維持される。例えば、信号COUTは、“0”に維持される。このため、量子化信号VOUTとして、“0”が出力される。なお、“0”の量子化信号VOUTは、“21”の量子化値に対応している。すなわち、期間T11では、“10”の信号VSIGが“21”に量子化される。
期間T12のクロックCLK2の最初の周期T21では、参照信号RFVとして、“63”の量子化値QTVが選択される。参照信号RFVの値(“63”)が信号VSIGの値(“50”)以上のため、比較結果CSIGは、“0”である。したがって、信号COUTは、“0”に設定される。
期間T12のクロックCLK2の2番目の周期T22では、期間T21の比較結果CSIGが“0”であるため、制御信号CNT3は、高レベルに変化する。したがって、“63”より小さい“21”の量子化値QTVが参照信号RFVとして選択される。参照信号RFVの値(“21”)が信号VSIGの値(“50”)より小さいため、比較結果CSIGは、“1”である。したがって、信号COUTは、“0”に“1”を加算した“1”に設定される。
期間T12のクロックCLK2の3番目の周期T23では、期間T22の比較結果CSIGが“1”であるため、制御信号CNT3は、低レベルに変化する。したがって、“21”より大きい“42”の量子化値QTVが参照信号RFVとして選択される。参照信号RFVの値(“42”)が信号VSIGの値(“50”)より小さいため、比較結果CSIGは、“1”である。したがって、信号COUTは、“1”に“1”を加算した“2”に設定される。このため、量子化信号VOUTとして、“2”が出力される。なお、“2”の量子化信号VOUTは、“63”の量子化値に対応している。すなわち、期間T12では、“50”の信号VSIGが“63”に量子化される。
このように、この実施形態では、信号VSIGをクロックCLK1の1周期(例えば、期間T10)以内に量子化できる。例えば、この実施形態では、クロックCLK1の各周期でのクロックCLK2のクロック数と同じ数のビット数の量子化信号VOUTに、信号VSIGを量子化できる。以上、この実施形態においても、上述した実施形態と同様の効果を得ることができる。
図13は、別の実施形態における量子化部30Bの一例を示している。上述した実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。この実施形態の量子化装置は、量子化部30の代わりに量子化部30Bを有することを除いて、上述した実施形態と同じである。また、量子化部30Bでは、図3に示した演算部34のレベル選択部42が省かれ、動作制御部38の代わりに動作制御部38Bが設けられている。量子化部30Bのその他の構成は、図3に示した量子化部30と同じである。なお、図中の符号QTWは、量子化幅を示している。例えば、量子化幅QTWは、量子化部30B内で生成される。なお、量子化部30Bは、量子化幅QTWを外部から受けてもよい。例えば、量子化幅QTWは、図2の備考に示した条件で量子化するとき、“32”である。
量子化部30Bは、例えば、入力選択部32、減算部44、遅延部36、動作制御部38Bおよび出力部40を有している。
入力選択部32は、例えば、図1に示した信号処理部10で生成される信号VSIGと、遅延部36から出力される遅延信号DCV2と、動作制御部38Bから出力される制御信号CNT2と、クロックCLK2とを受ける。そして、入力選択部32は、クロックCLK1の各周期でのクロックCLK2の最初の周期に、信号VSIGを演算信号CV1として選択する。なお、クロックCLK1の各周期でのクロックCLK2の最初の周期以外では、遅延信号DCV2が演算信号CV1として選択される。
減算部44は、量子化幅QTWおよび演算信号CV1を受ける。なお、量子化幅QTWは、減算部44内で生成されてもよい。そして、減算部44は、量子化幅QTWを演算信号CV1から減算して演算信号CV2を生成する。減算部44は、演算信号CV2を遅延部36および動作制御部38Bに出力する。
遅延部36は、例えば、演算信号CV2をクロックCLK2の1周期分だけ遅延させて遅延信号DCV2を生成する。そして、遅延部36は、遅延信号DCV2を入力選択部32に出力する。
動作制御部38Bは、演算信号CV2を受け、クロックCLK2に同期して信号COUTを出力する。例えば、動作制御部38Bは、クロックCLK1の各周期において、演算信号CV2が所定の閾値以下になるまでのクロックCLK2のクロック数をカウントする。そして、動作制御部38Bは、カウント値を示す信号COUTを出力部40に出力する。なお、例えば、閾値は、図2の備考に示した条件で量子化するときには、“0”である。
また、動作制御部38Bは、制御信号CNT2を生成し、生成した制御信号CNT2を入力選択部32に出力する。例えば、高レベルの制御信号CNT2が信号VSIGを演算信号CV1として選択することを示すとき、動作制御部38Bは、クロックCLK1の各周期において、クロックCLK2の最初の周期に、制御信号CNT2を高レベルに設定する。そして、動作制御部38Bは、クロックCLK1の各周期において、クロックCLK2の最初の周期以外に、制御信号CNT2を低レベルに設定する。
出力部40は、信号COUTを動作制御部38Bから受け、信号COUTに基づく量子化信号VOUTをクロックCLK2に同期して出力する。すなわち、動作制御部38Bおよび出力部40は、演算信号CV2が所定の閾値以下になるまでのクロックCLK2のクロック数をカウントし、クロック数に基づいて量子化信号VOUTを生成する制御部として機能する。なお、出力部40は、動作制御部38B内に設けられてもよい。
図14は、図13に示した量子化部30Bの動作タイミングの一例を示している。なお、図14では、量子化信号VOUT等の信号を10進数で示している。また、例えば、高レベルの制御信号CNT2は、信号VSIGを演算信号CV1として選択することを示している。図14の動作では、例えば、量子化部30Bを有する量子化装置は、8ビットの入力信号VINを2ビットの量子化信号VOUTに量子化する。
例えば、量子化部30Bは、信号VSIGを、図2の備考に示した条件で量子化する。したがって、量子化幅QTWは、“32”である。例えば、0以上で32以下の信号VSIGは、“32”に量子化される。33以上で64以下の信号VSIGは、“64”に量子化される。65以上で96以下の信号VSIGは、“96”に量子化される。97以上で128以下の信号VSIGは、“128”に量子化される。例えば、“32”、“64”、“96”および“128”の量子化値QVは、それぞれ“0”、“1”、“2”および“3”の量子化信号VOUTに対応付けされている。
量子化値QVが“32”、“64”、“96”および“128”の4レベルのとき、例えば、クロックCLK2の周波数は、クロックCLK1の周波数の4倍である。すなわち、クロックCLK1の1周期でのクロックCLK2のクロック数は、例えば、量子化信号VOUTに対応付けされている量子化値QVの数と同じである。図14の例では、期間T10、T11、T12の信号VSIGは、“100”、“10”および“50”である。期間T10、T11、T12は、クロックCLK1の周期に対応している。また、期間T21、T22、T23、T24は、クロックCLK2の周期に対応している。
期間T10のクロックCLK2の最初の周期T21では、演算信号CV1として、“100”(信号VSIG)が選択される。したがって、演算信号CV2は、“100”から“32”(量子化幅QTW)を減算した“68”である。信号COUTは、“0”に設定される。演算信号CV2が“0”より大きいため、期間T21の次の期間T22でも、クロックCLK2のクロック数のカウントは、継続される。
期間T10のクロックCLK2の2番目の周期T22では、遅延信号DCV2として、期間T21の演算信号CV2が出力される。したがって、遅延信号DCV2は、“68”である。また、演算信号CV1として、“68”(遅延信号DCV2)が選択される。したがって、演算信号CV2は、“68”から“32”を減算した“36”である。信号COUTは、“0”に“1”を加算した“1”に設定される。演算信号CV2が“0”より大きいため、期間T22の次の期間T23でも、クロックCLK2のクロック数のカウントは、継続される。
期間T10のクロックCLK2の3番目の周期T23では、遅延信号DCV2として、期間T22の演算信号CV2が出力される。したがって、遅延信号DCV2は、“36”である。また、演算信号CV1として、“36”(遅延信号DCV2)が選択される。したがって、演算信号CV2は、“36”から“32”を減算した“4”である。信号COUTは、“1”に“1”を加算した“2”に設定される。演算信号CV2が“0”より大きいため、期間T23の次の期間T24でも、クロックCLK2のクロック数のカウントは、継続される。
期間T10のクロックCLK2の4番目の周期T24では、遅延信号DCV2として、期間T23の演算信号CV2が出力される。したがって、遅延信号DCV2は、“4”である。また、演算信号CV1として、“4”(遅延信号DCV2)が選択される。したがって、演算信号CV2は、“4”から“32”を減算した“−28”である。信号COUTは、“2”に“1”を加算した“3”に設定される。このため、量子化信号VOUTとして、“3”が出力される。なお、“3”の量子化信号VOUTは、“128”の量子化値に対応している。すなわち、期間T10では、“100”の信号VSIGが“128”に量子化される。
期間T11のクロックCLK2の最初の周期T21では、演算信号CV1として、“10”(信号VSIG)が選択される。したがって、演算信号CV2は、“10”から“32”(量子化幅QTW)を減算した“−22”である。信号COUTは、“0”に設定される。演算信号CV2が“0”以下のため、期間T22−T24では、クロックCLK2のクロック数のカウントは、実施されない。したがって、期間T10のクロックCLK2の4番目の周期T24まで、信号COUTは、“0”に維持される。このため、期間T24に、“0”が量子化信号VOUTとして出力される。なお、“0”の量子化信号VOUTは、“32”の量子化値に対応している。すなわち、期間T11では、“10”の信号VSIGが“32”に量子化される。
期間T12のクロックCLK2の最初の周期T21では、演算信号CV1として、“50”(信号VSIG)が選択される。したがって、演算信号CV2は、“50”から“32”(量子化幅QTW)を減算した“18”である。信号COUTは、“0”に設定される。演算信号CV2が“0”より大きいため、期間T21の次の期間T22でも、クロックCLK2のクロック数のカウントは、継続される。
期間T12のクロックCLK2の2番目の周期T22では、遅延信号DCV2として、期間T21の演算信号CV2が出力される。したがって、遅延信号DCV2は、“18”である。また、演算信号CV1として、“18”(遅延信号DCV2)が選択される。したがって、演算信号CV2は、“18”から“32”を減算した“−14”である。信号COUTは、“0”に“1”を加算した“1”に設定される。
演算信号CV2が“0”以下のため、期間T23、T24では、クロックCLK2のクロック数のカウントは、実施されない。したがって、期間T12のクロックCLK2の4番目の周期T24まで、信号COUTは、“1”に維持される。このため、期間T24に、“1”が量子化信号VOUTとして出力される。なお、“1”の量子化信号VOUTは、“64”の量子化値に対応している。すなわち、期間T12では、“50”の信号VSIGが“64”に量子化される。
このように、量子化部30Bは、演算信号CV1から量子化幅QTWを減算する減算処理を、減算結果が“0”以下になるまで繰り返す。そして、量子化部30Bは、減算結果が“0”以下になるまで繰り返された演算の回数を、クロックCLK1の各周期でのクロックCLK2の最終クロック(例えば、期間T24)に、量子化結果(量子化信号VOUT)として出力する。
なお、量子化部30Bの動作は、この例に限定されない。例えば、量子化のレベルは、3でもよいし、5以上でもよい。また、例えば、量子化値QVが“32”、“64”、“96”および“128”の4レベルのとき、クロックCLK2の周波数は、クロックCLK1の周波数の3倍でもよい。したがって、クロックCLK1の1周期でのクロックCLK2のクロック数は、例えば、量子化の際の境界値の数と同じでもよい。すなわち、クロックCLK1の1周期でのクロックCLK2のクロック数は、例えば、量子化信号VOUTに対応付けされている量子化値QVの数から1を減算した数と同じでもよい。
例えば、動作制御部38Bは、演算信号CV2が“0”より大きい期間のクロックCLK2のクロック数を、クロックCLK1の周期毎にカウントする。そして、動作制御部38Bは、カウント値を示す信号COUTを出力部40に出力する。例えば、図14の期間T10の期間T21−T23では、演算信号CV2が“0”より大きい期間のクロックCLK2のクロック数は、“3”である。また、例えば、図14の期間T11の期間T21−T23では、演算信号CV2が“0”より大きい期間が存在しないため、演算信号CV2が“0”より大きい期間のクロックCLK2のクロック数は、“0”である。そして、例えば、図14の期間T12の期間T21−T23では、演算信号CV2が“0”より大きい期間のクロックCLK2のクロック数は、“1”である。
なお、この実施形態においても、量子化装置の量子化部30B以外(信号処理部10)を高速動作させる必要がない。以上、この実施形態においても、上述した実施形態と同様の効果を得ることができる。
図15は、別の実施形態における量子化部30Cの一例を示している。上述した実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。この実施形態の量子化装置は、量子化部30の代わりに量子化部30Cを有することを除いて、上述した実施形態と同じである。また、量子化部30Cは、図6に示したレベル選択部42Aおよび動作制御部38Aの代わりに、レベル選択部42Bおよび動作制御部38Cを有している。量子化部30Cのその他の構成は、図6に示した量子化部30Aと同じである。
なお、図中の符号QTV1・・・QTViは、量子化信号VOUTに対応付けされている量子化値を示している。例えば、量子化値QTV1・・・QTViは、量子化部30C内で生成される。なお、量子化部30Cは、量子化値QTV1・・・QTViを外部から受けてもよい。例えば、量子化値QTV1・・・QTViは、図2の備考に示した条件で量子化するとき、“32”、“64”、“96”および“128”の4つである。このときには、例えば、クロックCLK2の周波数は、クロックCLK1の周波数の4倍である。すなわち、クロックCLK1の1周期でのクロックCLK2のクロック数は、例えば、量子化信号VOUTに対応付けされている量子化値QVの数と同じである。
量子化部30Cは、例えば、レベル選択部42B、比較部46、動作制御部38Cおよび出力部40を有している。
レベル選択部42Bは、制御信号CNT4および複数の量子化値QTV(QTV1・・・QTVi)を受ける。なお、量子化値QTVは、レベル選択部42B内で生成されてもよい。そして、レベル選択部42Bは、例えば、量子化値QTVを値の大きさの順に選択し、選択した量子化値QTVを示す参照信号RFVをクロックCLK2に同期して出力する。すなわち、レベル選択部42Bは、量子化値QTVを値の大きさの順にクロックCLK2に同期して出力する。例えば、レベル選択部42Bは、量子化値QTVを値の小さい方から順にクロックCLK2に同期して出力する。あるいは、レベル選択部42Bは、量子化値QTVを値の大きい方から順にクロックCLK2に同期して出力する。
比較部46は、信号VSIGおよび参照信号RFVを受け、信号VSIGと参照信号RFVとを比較する。例えば、比較部46は、信号VSIGの値から参照信号RFVの値を減算し、減算結果に基づいて、比較結果CSIGを出力する。
動作制御部38Cは、比較結果CSIGを受け、クロックCLK2に同期して信号COUTを出力する。例えば、動作制御部38Cは、参照信号RFVの値(量子化値QTV)が信号VSIGの値以上になるまでのクロックCLK2のクロック数を、比較結果CSIGに基づいてカウントする。そして、動作制御部38Cは、カウント値を示す信号COUTを出力部40に出力する。
また、動作制御部38Cは、制御信号CNT4を生成し、生成した制御信号CNT4をレベル選択部42Bに出力する。例えば、動作制御部38Cは、参照信号RFVの値が信号VSIGの値以上のとき、参照信号RFVの更新を停止するための制御信号CNT4を生成する。なお、動作制御部38Cは、制御信号CNT4を生成しなくてもよい。
出力部40は、信号COUTを動作制御部38Cから受け、信号COUTに基づく量子化信号VOUTをクロックCLK2に同期して出力する。すなわち、動作制御部38Cおよび出力部40は、比較部46の比較結果CSIGに基づいて量子化信号VOUTを生成する制御部として機能する。なお、出力部40は、動作制御部38C内に設けられてもよい。
また、量子化部30Cの構成は、この例に限定されない。例えば、レベル選択部42Bは、量子化の際の境界値に対応する量子化値QTVを、値の大きさの順にクロックCLK2に同期して出力してもよい。例えば、量子化値QTVは、図2の備考に示した条件で量子化するとき、“32”、“64”および“96”の3つでもよい。このときには、例えば、クロックCLK2の周波数は、クロックCLK1の周波数の3倍である。したがって、クロックCLK1の1周期でのクロックCLK2のクロック数は、例えば、量子化の際の境界値の数と同じである。すなわち、クロックCLK1の1周期でのクロックCLK2のクロック数は、例えば、量子化信号VOUTに対応付けされている量子化値QVの数から1を減算した数と同じである。
図16は、図15に示した量子化部30Cの動作タイミングの一例を示している。なお、図16では、量子化信号VOUT等の信号を10進数で示している。また、例えば、高レベルの制御信号CNT4は、参照信号RFVの更新を停止することを示している。そして、比較結果CSIGは、“1”のとき、参照信号RFVの値が信号VSIGの値より小さいことを示している。図16の動作では、例えば、量子化部30Cを有する量子化装置は、8ビットの入力信号VINを2ビットの量子化信号VOUTに量子化する。
例えば、量子化部30Cは、信号VSIGを、図2の備考に示した条件で量子化する。したがって、量子化値QTVは、“32”、“64”、“96”および“128”の4つである。例えば、0以上で32以下の信号VSIGは、“32”に量子化される。33以上で64以下の信号VSIGは、“64”に量子化される。65以上で96以下の信号VSIGは、“96”に量子化される。97以上で128以下の信号VSIGは、“128”に量子化される。例えば、“32”、“64”、“96”および“128”の量子化値QVは、それぞれ“0”、“1”、“2”および“3”の量子化信号VOUTに対応付けされている。
図16の例では、期間T10、T11、T12の信号VSIGは、“100”、“10”および“50”である。期間T10、T11、T12は、クロックCLK1の周期に対応している。また、期間T21、T22、T23、T24は、クロックCLK2の周期に対応している。
期間T10のクロックCLK2の最初の周期T21では、参照信号RFVとして、最小値(“32”)の量子化値QTVが選択される。また、信号COUTは、“0”に設定される。なお、参照信号RFVの値(“32”)が信号VSIGの値(“100”)より小さいため、比較結果CSIGは、“1”である。このため、期間T21の次の期間T22でも、クロックCLK2のクロック数のカウントは、継続される。
期間T10のクロックCLK2の2番目の周期T22では、期間T21の比較結果CSIGが“1”であるため、制御信号CNT4は、低レベルに維持される。したがって、“32”の次に大きい値(“64”)の量子化値QTVが参照信号RFVとして選択される。また、信号COUTは、“0”に“1”を加算した“1”に設定される。なお、参照信号RFVの値(“64”)が信号VSIGの値(“100”)より小さいため、比較結果CSIGは、“1”である。このため、期間T22の次の期間T23でも、クロックCLK2のクロック数のカウントは、継続される。
期間T10のクロックCLK2の3番目の周期T23では、期間T22の比較結果CSIGが“1”であるため、制御信号CNT4は、低レベルに維持される。したがって、“64”の次に大きい値(“96”)の量子化値QTVが参照信号RFVとして選択される。また、信号COUTは、“1”に“1”を加算した“2”に設定される。なお、参照信号RFVの値(“96”)が信号VSIGの値(“100”)より小さいため、比較結果CSIGは、“1”である。このため、期間T23の次の期間T24でも、クロックCLK2のクロック数のカウントは、継続される。
期間T10のクロックCLK2の4番目の周期T24では、期間T23の比較結果CSIGが“1”であるため、制御信号CNT4は、低レベルに維持される。したがって、“96”の次に大きい値(“128”)の量子化値QTVが参照信号RFVとして選択される。また、信号COUTは、“2”に“1”を加算した“3”に設定される。このため、量子化信号VOUTとして、“3”が出力される。なお、“3”の量子化信号VOUTは、“128”の量子化値に対応している。すなわち、期間T10では、“100”の信号VSIGが“128”に量子化される。
期間T11のクロックCLK2の最初の周期T21では、参照信号RFVとして、最小値(“32”)の量子化値QTVが選択される。また、信号COUTは、“0”に設定される。なお、参照信号RFVの値(“32”)が信号VSIGの値(“10”)以上のため、比較結果CSIGは、“0”である。このため、期間T22−T24では、クロックCLK2のクロック数のカウントは、実施されない。したがって、期間T10のクロックCLK2の4番目の周期T24まで、信号COUTは、“0”に維持される。このため、期間T24に、“0”が量子化信号VOUTとして出力される。なお、“0”の量子化信号VOUTは、“32”の量子化値に対応している。すなわち、期間T11では、“10”の信号VSIGが“32”に量子化される。
期間T12のクロックCLK2の最初の周期T21では、参照信号RFVとして、最小値(“32”)の量子化値QTVが選択される。また、信号COUTは、“0”に設定される。なお、参照信号RFVの値(“32”)が信号VSIGの値(“50”)より小さいため、比較結果CSIGは、“1”である。このため、期間T21の次の期間T22でも、クロックCLK2のクロック数のカウントは、継続される。
期間T12のクロックCLK2の2番目の周期T22では、期間T21の比較結果CSIGが“1”であるため、制御信号CNT4は、低レベルに維持される。したがって、“32”の次に大きい値(“64”)の量子化値QTVが参照信号RFVとして選択される。また、信号COUTは、“0”に“1”を加算した“1”に設定される。なお、参照信号RFVの値(“64”)が信号VSIGの値(“50”)以上のため、比較結果CSIGは、“0”である。このため、期間T23、T24では、クロックCLK2のクロック数のカウントは、実施されない。
したがって、期間T12のクロックCLK2の4番目の周期T24まで、信号COUTは、“1”に維持される。このため、期間T24に、“1”が量子化信号VOUTとして出力される。なお、“1”の量子化信号VOUTは、“64”の量子化値に対応している。すなわち、期間T12では、“50”の信号VSIGが“64”に量子化される。
このように、量子化部30Cは、例えば、量子化値QTVと信号VSIGの値との比較を小さい値の量子化値QTVから順次実施し、量子化値QTVが信号VSIGの値以上になるまでのクロックCLK2のクロック数をカウントする。そして、量子化部30Cは、カウントしたクロック数に基づいて量子化信号VOUTを生成する。
なお、量子化部30Cの動作は、この例に限定されない。例えば、量子化のレベルは、3でもよいし、5以上でもよい。また、例えば、量子化値QVが“32”、“64”、“96”および“128”の4レベルのとき、量子化値QTVは、“32”、“64”および“96”の3つでもよい。このときには、クロックCLK2の周波数は、例えば、クロックCLK1の周波数の3倍である。
例えば、レベル選択部42Bは、量子化の際の境界値に対応する量子化値QTVを、値の小さい方から順にクロックCLK2に同期して出力する。あるいは、レベル選択部42Bは、量子化の際の境界値に対応する量子化値QTVを、値の大きい方から順にクロックCLK2に同期して出力する。そして、動作制御部38Cは、参照信号RFVの値(量子化値QTV)が信号VSIGの値より小さい期間のクロックCLK2のクロック数を、クロックCLK1の周期毎にカウントする。例えば、動作制御部38Cは、比較結果CSIGが“1”である回数をカウントする。そして、動作制御部38Cは、カウント値を示す信号COUTを出力部40に出力する。
例えば、図16の期間T10の期間T21−T23では、比較結果CSIGが“1”である回数は、“3”である。また、例えば、図16の期間T11の期間T21−T23では、比較結果CSIGが“1”である回数は、“0”である。そして、例えば、図16の期間T12の期間T21−T23では、比較結果CSIGが“1”である回数は、“1”である。
なお、この実施形態においても、量子化装置の量子化部30C以外(信号処理部10)を高速動作させる必要がない。以上、この実施形態においても、上述した実施形態と同様の効果を得ることができる。
以上の実施形態において説明した発明を整理して、付記として開示する。
(付記1)
第1信号を複数ビットの量子化信号に量子化する量子化装置において、
第1クロックの1周期前の前記量子化信号に基づく量子化誤差と前記第1信号とに基づいて、第2信号を生成する信号処理部と、
前記第1クロックより高速の第2クロックに同期して動作し、前記第2信号を前記第1クロックの1周期以内に量子化し、前記量子化信号を生成する量子化部と、
を備えていることを特徴とする量子化装置。
(付記2)
前記第1クロックの1周期での前記第2クロックのクロック数は、前記量子化信号のビット数に等しいこと
を特徴とする付記1記載の量子化装置。
(付記3)
前記量子化部は、
前記第2信号および遅延信号を受け、前記第2信号および前記遅延信号のいずれかを第1演算信号として選択する第1選択部と、
前記第1演算信号および制御信号を受け、量子化幅に基づく複数の参照値、前記第1演算信号および前記制御信号に基づいて第2演算信号を生成する演算部と、
前記第2クロックに同期して動作し、前記第2演算信号を前記第2クロックの1周期分だけ遅延させて前記遅延信号を生成する遅延部と、
前記第2演算信号が所定の閾値以下のとき、前記第2演算信号の値を大きくするための前記制御信号を生成し、前記第2演算信号が前記閾値より大きいとき、前記第2演算信号の値を小さくするための前記制御信号を生成し、前記第1クロックの各周期での前記閾値と前記第2演算信号との複数回の比較結果に基づいて前記量子化信号を生成する制御部とを備えていること
を特徴とする付記2記載の量子化装置。
(付記4)
前記演算部は、前記複数の参照値から1つの参照値を選択し、選択した前記参照値を前記第1演算信号から減算する減算処理および選択した前記参照値を前記第1演算信号に加算する加算処理のいずれかを前記制御信号に基づいて実施することにより、前記第2演算信号を生成すること
を特徴とする付記3記載の量子化装置。
(付記5)
前記量子化部は、
制御信号を受け、複数の量子化値から1つの量子化値を前記制御信号に基づいて選択し、選択した前記量子化値を示す参照信号を前記第2クロックに同期して出力する選択部と、
前記参照信号と前記第2信号とを比較する比較部と、
前記参照信号の値が前記第2信号の値以上のとき、前記参照信号の値を小さくするための前記制御信号を生成し、前記参照信号の値が前記第2信号の値より小さいとき、前記参照信号の値を大きくするための前記制御信号を生成し、前記比較部の比較結果に基づいて前記量子化信号を生成する制御部とを備えていること
を特徴とする付記2記載の量子化装置。
(付記6)
前記第1クロックの1周期での前記第2クロックのクロック数は、前記量子化信号に対応付けされている量子化値の数に等しいこと
を特徴とする付記1記載の量子化装置。
(付記7)
前記量子化部は、
前記第2信号および遅延信号を受け、前記第2信号および前記遅延信号のいずれかを第1演算信号として選択する選択部と、
量子化幅を前記第1演算信号から減算して第2演算信号を生成する減算部と、
前記第2クロックに同期して動作し、前記第2演算信号を前記第2クロックの1周期分だけ遅延させて前記遅延信号を生成する遅延部と、
前記第2演算信号が所定の閾値以下になるまでの前記第2クロックのクロック数をカウントし、前記クロック数に基づいて前記量子化信号を生成する制御部とを備えていること
を特徴とする付記6記載の量子化装置。
(付記8)
前記量子化部は、
前記量子化値を値の大きさの順に前記第2クロックに同期して出力する選択部と、
前記第2信号と前記選択部から出力される前記量子化値とを比較する比較部と、
前記比較部の比較結果に基づいて前記量子化信号を生成する制御部とを備えていること
を特徴とする付記6記載の量子化装置。
(付記9)
前記第1クロックの1周期での前記第2クロックのクロック数は、前記量子化信号に対応付けされている量子化値の数から1を減算した数に等しいこと
を特徴とする付記1記載の量子化装置。
(付記10)
前記量子化部は、
前記第2信号および遅延信号を受け、前記第2信号および前記遅延信号のいずれかを第1演算信号として選択する選択部と、
量子化幅を前記第1演算信号から減算して第2演算信号を生成する減算部と、
前記第2クロックに同期して動作し、前記第2演算信号を前記第2クロックの1周期分だけ遅延させて前記遅延信号を生成する遅延部と、
前記第2演算信号が所定の閾値より大きい期間の前記第2クロックのクロック数を前記第1クロックの周期毎にカウントし、前記クロック数に基づいて前記量子化信号を生成する制御部とを備えていること
を特徴とする付記9記載の量子化装置。
(付記11)
前記量子化部は、
量子化の際の境界値に対応する前記量子化値を値の大きさの順に前記第2クロックに同期して出力する選択部と、
前記第2信号と前記選択部から出力される前記量子化値とを比較する比較部と、
前記比較部の比較結果に基づいて前記量子化信号を生成する制御部とを備えていること
を特徴とする付記9記載の量子化装置。
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずであり、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。