(第1の実施形態)
図4は、第1の実施形態による通信システムの構成例を示す図である。通信システムは、高速インターフェースの送信回路101及び受信回路103を有する。送信回路101及び受信回路103は、プリント基板等の伝送線路102を介して接続される。送信回路101は、ドライバ111を有する。受信回路103は、第1のアナログディジタル変換器121、第2のアナログディジタル変換器122、位相ロックループ(PLL)回路123、クロックデータリカバリ(CDR)回路124、デューティサイクルディストーション(DCD)検出回路401及びディジタル補正回路402を有する。
図1(B)は、通信システムの動作を説明するための信号波形図である。送信回路101は、伝送線路102を介して、自己の発振器のクロック信号に同期したデータINを送信する。データINは、クロック信号が重畳された0又は1のディジタルデータである。1ユニットインターバル(1UI)は、データINの1データビットの継続時間であり、ビットクロックの1周期である。1UIの境界は、データの変化点である。送信されたデータINは、伝送線路102を通過するとき信号劣化の影響を受ける。
位相ロックループ回路123は、サンプリングクロック信号CLKを生成する。第1のアナログディジタル変換器121は、サンプリングクロック信号CLKの立ち上がりエッジに同期して、アナログデータINの電圧レベルをサンプリングして複数ビットのディジタルデータAを出力する第1のサンプリング回路である。第2のアナログディジタル変換器122は、サンプリングクロック信号CLKの立ち下がりエッジに同期して、アナログデータINの電圧レベルをサンプリングして複数ビットのディジタルデータBを出力する第2のサンプリング回路である。図1(B)では、ディジタルデータAを白丸(○)で示し、ディジタルデータBを黒丸(●)で示す。他の図も同様である。「−4」のディジタルデータA及びBは「0」のデータINに対応し、「+4」のディジタルデータA及びBは「1」のデータINに対応する。アナログディジタル変換器121及び122は、インターリーブ方式で、データINに対して2倍のオーバーサンプリングをしていることになる。
送信回路101と受信回路103は、非同期で動作しており、規格が同じであっても微小な周波数ずれが存在する。入力データINは送信回路101の発振器に同期しており、サンプリングクロック信号CLKは受信回路103の位相ロックループ回路123により生成されるので、入力データIN及びサンプリングクロック信号CLKの周波数は必ずしも一致していない。1UIの境界付近の入力データINは変化点であるために不定値であり、1UIのセンタ付近のデータは安定したデータである。
DCD検出回路401は、第1のアナログディジタル変換器121によりサンプリングされたデータA及び第2のアナログディジタル変換器122によりサンプリングされたデータBを基にサンプリングクロック信号CLKのデューティ比のずれ量を示すデューティサイクルディストーション量(DCD量)Dcを検出する。
ディジタル補正回路402は、DCD検出回路401により検出されたDCD量Dcを基に、第2のアナログディジタル変換器122によりサンプリングされたデータBを補正し、補正データCを出力する。
クロックデータリカバリ回路124は、第1のアナログディジタル変換器121によりサンプリングされたデータA及びディジタル補正回路402により補正されたデータCのうちの1UIのセンタに近い方のデータを選択してデータOUTを復元する。
具体的には、クロックデータリカバリ回路124は、ディジタルデータA及びCを基に、入力データINの電圧レベルが0になる位相を1UIの境界として推定する。このように、「0」と「1」のデータの閾値電圧(0V)を跨ぐ瞬間の位相を、以下、0クロス位相という。入力データINは中長期的にはランダム性を有するので、複数周期の1UIを処理することにより、1UIの境界を推定することができる。そして、クロックデータリカバリ回路124は、1UI毎に、ディジタルデータA及びCのうちで、1UIのセンタに近い方のデータを選択してデータを復元する。具体的には、クロックデータリカバリ回路124は、選択したディジタルデータA又はCが0より大きいときには「1」の1ビットデータOUTを復元し、選択したディジタルデータA又はCが0より小さいときには「0」の1ビットデータOUTを復元する。本実施形態のディジタル補正回路402は、フィードフォワードにより補正を行う。これにより、DCDによる復元データOUTの誤差を抑制することができる。
なお、ディジタル補正回路402は、DCD検出回路401により検出されたDCD量Dcを基に、第1のアナログディジタル変換器121によりサンプリングされたデータA又は第2のアナログディジタル変換器122によりサンプリングされたデータBを補正するものであればよい。その場合、クロックデータリカバリ回路124は、ディジタル補正回路402により補正された第1のアナログディジタル変換器121によりサンプリングされたデータ及び第2のアナログディジタル変換器122によりサンプリングされたデータのうちの1UIのセンタに近い方のデータを選択してデータOUTを復元する。
図6は、図4のDCD検出回路401の構成例を示す図である。アナログディジタル変換器121及び122は、それぞれディジタルデータA及びBを出力する。ディジタルデータA及びBは、−N〜+Nの量子化範囲のデータである。ここで、Nは、正の整数である。第1の検知回路601は、サンプリングクロック信号CLKに同期して、第1のアナログディジタル変換器121によりサンプリングされたディジタルデータAが−M〜+Mの範囲内にあるときには、アップパルス信号を第1のカウンタCNTaに出力する。ここで、Mは、Nより小さい正の整数である。第2の検知回路602は、サンプリングクロック信号CLKに同期して、第2のアナログディジタル変換器122によりサンプリングされたディジタルデータBが−M〜+Mの範囲内にあるときには、アップパルス信号を第2のカウンタCNTbに出力する。
m分周回路603は、周期監視制御回路605によりmが指示され、サンプリングクロック信号CLKをm分周し、クロック信号CLK1を出力する。n進カウンタ604は、クロック信号CLK1のパルス数をn進カウントし、カウント数CNTを出力する。
第1のカウンタCNTaは、n+1個のカウンタ0〜nを有し、第1の検知回路601からアップパルス信号を入力すると、その時のカウント数CNTに対応するカウンタのカウント数をインクリメントする。例えば、カウント数CNTが1であれば、カウンタ1のカウント数をインクリメントする。
第2のカウンタCNTbは、n+1個のカウンタ0〜nを有し、第2の検知回路602からアップパルス信号を入力すると、その時のカウント数CNTに対応するカウンタのカウント数をインクリメントする。例えば、カウント数CNTが2であれば、カウンタ2のカウント数をインクリメントする。
周期監視制御回路605は、第1のカウンタCNTa及び第2のカウンタCNTbのカウント数を入力し、図2の入力データIN及びサンプリングクロック信号CLKの関係における1周期201を検出し、カウンタCNTa及びCNTbが1周期201分のカウントを行うようにm分周回路603のmを決定する。また、周期監視制御回路605は、n進カウンタ604及びカウンタCNTa,CNTbのカウント数をリセット可能である。また、周期監視制御回路605は、カウンタCNTa及びCTNbのカウント数がオーバーフローしないように、そのカウント数が1/2になるように制御することができる。
第1のカウンタCNTaは、第1のアナログディジタル変換器121によりサンプリングされたデータAの値が−M〜+Mの閾値範囲内であるときの1周期201内の位相に対応するカウンタのカウントを行う。
第2のカウンタCNTbは、第2のアナログディジタル変換器122によりサンプリングされたデータBの値が−M〜+Mの閾値範囲内であるときの1周期201内の位相に対応するカウンタのカウントを行う。
平均値導出回路606は、第1のカウンタCNTaのn+1個のカウンタ0〜nのカウント数を基に、そのカウンタに対応する位相の平均値を導出する。同様に、平均値導出回路606は、第2のカウンタCNTbのn+1個のカウンタ0〜nのカウント数を基に、そのカウンタに対応する位相の平均値を導出する。
引算回路607は、平均値導出回路606により導出された第2のカウンタCNTbの−M〜+Mの閾値範囲内の位相の平均値から第1のカウンタCNTaの−M〜+Mの閾値範囲内の位相の平均値を引算し、その引算の結果から1周期201の半分の位相を引算して出力する。ローパスフィルタ608は、引算回路607の出力信号をローパスフィルタリングし、DCD量Dcを出力する。DCD量Dcの瞬時変動により、ディジタル補正回路402の補正データCが瞬時的に変化しないように、DCD量Dcはローパスフィルタ608で平滑化されたものをDCD検出回路401の出力とする。ローパスフィルタ608はなくてもよい。
図7は、図6のDCD検出回路401の動作を説明するための図である。時系列番号は、データBに対応するサンプリングクロック信号CLKの周期単位の番号である。第1の検知回路601は、データAの値が−M〜+Mの閾値範囲内であるときにアップパルス信号を出力する。アップパルス信号が出力される時系列番号は、「0」、「1」、「9」、「10」、「18」及び「19」である。この場合、9サイクルが1周期となる。すなわち、入力信号IN及びサンプリングクロック信号CLKの関係における1周期201は、9サイクルである。9サイクルとは、サンプリングクロック信号CLKの9周期分を意味する。したがって、カウンタCNTa及びCNTbは9個のカウンタが必要である。すなわち、カウンタCNTa及びCTNbは、n=8であり、9個のカウンタ0〜8を備えればよい。後述する図9では、n=8のカウント数CNTを示す。
DCD検出回路401は、入力データIN及びサンプリングクロック信号CLKの周波数のずれを利用し、DCD量Dcを算出するため、この周波数のずれを正確に見積もる必要がある。無限個のカウンタがあれば、この処理は不要である。実際の周波数のずれは100ppm以下である。図7では、周波数のずれが10%の場合の例を示す。
図8(A)〜(C)は、図6の周期監視制御回路605の動作を説明するための図であり、入力データIN、n進カウンタ604のカウント数CNT、及び第1のカウンタCNTaの関係を示す。n進カウンタ604はn進カウントを行い、第1のカウンタCNTaはn+1個のカウンタを有する。ここで、n=7の場合を例に示す。n進カウンタ604は、「0〜7」のカウント数CNTを巡回してカウントし、カウント数CNTは破線の矢印が「0」のカウント数を示す。第1のカウンタCNTaは、n+1=8個のカウンタを有する。
図8(A)に示すように、カウント数CNTのカウント周期が短いときには、第1のカウンタCNTaの8個のすべてのカウンタのカウント数がオーバーフローする。これは、カウンタの個数が不足していることを意味する。その場合、周期監視制御回路605は、m分周回路603のmの値を増やす。
次に、周期監視制御回路605がmの値を増やすと、図8(B)に示すように、カウント数CNTのカウント周期が長くなる。周期監視制御回路605は、図8(B)に示すように、第1のカウンタCNTaに2周期分のカウント数がカウントされるまで、mの値を増やす。
次に、周期監視制御回路605がmの値を減らすと、図8(C)に示すように、カウント数CNTのカウント周期が短くなる。周期監視制御回路605は、図8(C)に示すように、第1のカウンタCNTaに1周期分のカウント数がカウントされるまで、mの値を減らす。この状態になったら、周期監視制御回路605は、mの値を固定する。n進カウンタ604が0からnまでカウントする間に、入力データINとサンプリングクロック信号CLKの関係が1周する場合、カウンタCNTa,CNTbは最小数のカウンタ数で構成可能である。
図9は、DCDがない場合の図6のDCD検出回路401の動作を説明するための図である。ここでは、nの値が8、入力データIN及びサンプリングクロック信号CLKの周波数のずれが10%、カウンタCNTa,CNTbがn+1=9個のカウンタ0〜8を有する場合を例に説明する。カウンタ数CNTは、図7の時系列番号に対応する。
第1の検知回路601は、データAの値が−M〜+Mの閾値範囲内であるときに第1のカウンタCNTaのカウント数をインクリメントする。例えば、カウント数CNTが1回目の「0」のとき、第1のカウンタCNTaのカウンタ0(左から1番目のカウンタ)のカウント数が「1」にインクリメントされる。次に、カウント数CNTが1回目の「1」のとき、第1のカウンタCNTaのカウンタ1(左から2番目のカウンタ)のカウント数が「1」にインクリメントされる。次に、カウント数CNTが2回目の「0」のとき、第1のカウンタCNTaのカウンタ0のカウント数が「2」にインクリメントされる。次に、カウント数CNTが2回目の「1」のとき、第1のカウンタCNTaのカウンタ1のカウント数が「2」にインクリメントされる。次に、カウント数CNTが3回目の「0」のとき、第1のカウンタCNTaのカウンタ0のカウント数が「3」にインクリメントされる。次に、カウント数CNTが3回目の「1」のとき、第1のカウンタCNTaのカウンタ1のカウント数が「3」にインクリメントされる。
第2の検知回路602は、データBの値が−M〜+Mの閾値範囲内であるときに第2のカウンタCNTbのカウント数をインクリメントする。例えば、カウント数CNTが1回目の「5」のとき、第2のカウンタCNTbのカウンタ5(左から6番目のカウンタ)のカウント数が「1」にインクリメントされる。次に、カウント数CNTが1回目の「6」のとき、第2のカウンタCNTbのカウンタ6(左から7番目のカウンタ)のカウント数が「1」にインクリメントされる。次に、カウント数CNTが2回目の「5」のとき、第2のカウンタCNTbのカウンタ5のカウント数が「2」にインクリメントされる。次に、カウント数CNTが2回目の「6」のとき、第2のカウンタCNTbのカウンタ6のカウント数が「2」にインクリメントされる。
平均値導出回路606は、第1のカウンタCNTaのカウンタ0〜8のカウンタ数を基にデータAの位相の平均値を導出する。カウンタ0及び1のカウント数が3であり、カウンタ2〜8のカウント数が0である。したがって、データAの位相の平均値は、(0+1)/2=0.5である。
また、平均値導出回路606は、第2のカウンタCNTbのカウンタ0〜8のカウンタ数を基にデータBの位相の平均値を導出する。カウンタ5及び6のカウント数が2であり、カウンタ0〜4,7,8のカウント数が0である。したがって、データBの位相の平均値は、(5+6)/2=5.5である。
引算回路607は、データBの位相の平均値からデータAの位相平均値を引算する。例えば、引算の結果は、5.5−0.5=5であり、データAとデータBの位相の差である。
DCDがない場合、理想的には、データAとデータBの位相の差は、カウンタ数/2+オフセットで表わされる。この場合、カウンタ数は9であり、オフセットは0.5である。したがって、データAとデータBの位相の差の理想値は、9/2+0.5=5である。
引算回路607は、上記の引算の結果の「5」から理想値の「5」を引算し、「0」のDCD量を出力する。このように、DCDがない場合には、DCD量が0になる。
図10は、図9に対応し、DCDがある場合の図6のDCD検出回路401の動作を説明するための図である。DCD量は図10の1マス分である場合を例に説明する。
第1の検知回路601は、データAの値が−M〜+Mの閾値範囲内であるときに第1のカウンタCNTaのカウント数をインクリメントする。例えば、カウント数CNTが1回目の「0」のとき、第1のカウンタCNTaのカウンタ0のカウント数が「1」にインクリメントされる。次に、カウント数CNTが1回目の「1」のとき、第1のカウンタCNTaのカウンタ1のカウント数が「1」にインクリメントされる。次に、カウント数CNTが2回目の「0」のとき、第1のカウンタCNTaのカウンタ0のカウント数が「2」にインクリメントされる。次に、カウント数CNTが2回目の「1」のとき、第1のカウンタCNTaのカウンタ1のカウント数が「2」にインクリメントされる。次に、カウント数CNTが3回目の「0」のとき、第1のカウンタCNTaのカウンタ0のカウント数が「3」にインクリメントされる。次に、カウント数CNTが3回目の「1」のとき、第1のカウンタCNTaのカウンタ1のカウント数が「3」にインクリメントされる。
第2の検知回路602は、データBの値が−M〜+Mの閾値範囲内であるときに第2のカウンタCNTbのカウント数をインクリメントする。例えば、カウント数CNTが1回目の「6」のとき、第2のカウンタCNTbのカウンタ6(左から7番目のカウンタ)のカウント数が「1」にインクリメントされる。次に、カウント数CNTが1回目の「7」のとき、第2のカウンタCNTbのカウンタ7(左から8番目のカウンタ)のカウント数が「1」にインクリメントされる。次に、カウント数CNTが2回目の「6」のとき、第2のカウンタCNTbのカウンタ6のカウント数が「2」にインクリメントされる。次に、カウント数CNTが2回目の「7」のとき、第2のカウンタCNTbのカウンタ7のカウント数が「2」にインクリメントされる。
平均値導出回路606は、第1のカウンタCNTaのカウンタ0〜8のカウンタ数を基にデータAの位相の平均値を導出する。カウンタ0及び1のカウント数が3であり、カウンタ2〜8のカウント数が0である。したがって、データAの位相の平均値は、(0+1)/2=0.5である。
また、平均値導出回路606は、第2のカウンタCNTbのカウンタ0〜8のカウンタ数を基にデータBの位相の平均値を導出する。カウンタ6及び7のカウント数が2であり、カウンタ0〜5,8のカウント数が0である。したがって、データBの位相の平均値は、(6+7)/2=6.5である。
引算回路607は、データBの位相の平均値からデータAの位相平均値を引算する。例えば、引算の結果は、6.5−0.5=6であり、データAとデータBの位相の差である。
また、引算回路607は、上記の引算の結果の「6」から理想値の「5」を引算し、「+1」のDCD量を出力する。このように、DCD量が「+1」の場合には、サンプリングクロック信号CLKのデューティ比が小さく、ハイレベル期間が短いDCDの発生を意味する。すなわち、データAとその次のデータBの間隔が0.4UIであり、データBとその次のデータAの間隔が0.6UIとなるDCDが発生している。
以上のように、周期監視制御回路605は、入力データIN及びサンプリングクロック信号CLKの関係における1周期201を検出する。引算回路607は、第1のアナログディジタル変換器121によりサンプリングされたデータAの値が−M〜+Mの閾値範囲内であるときの1周期201内の位相と第2のアナログディジタル変換器122によりサンプリングされたデータBの値が−M〜+Mの閾値範囲内であるときの1周期201内の位相との差を検出し、1周期201の半分の位相に対する上記の差のずれ量をDCD量として検出する。
(第2の実施形態)
図11は、第2の実施形態によるDCD検出回路401の構成例を示す図である。以下、本実施形態が第1の実施形態と異なる点を説明する。図11のDCD検出回路401は、図6のDCD検出回路401に対して、カウンタCNTa及びCNTbの代わりにメモリMEMa及びMEMbを設けたものである。メモリMEMa及びMEMbは、例えばファーストインファーストアウト(FIFO)である。検知回路601及び602は、アップパルス信号の代わりにライト信号を出力する。第1のメモリMEMaは、第1の検知回路601からライト信号を入力すると、その時のカウント数CNTを書き込む。第2のメモリMEMbは、第2の検知回路602からライト信号を入力すると、その時のカウント数CNTを書き込む。その他の点については、本実施形態は、第1の実施形態と同様である。
図12は、本実施形態のDCD検出回路401の動作を説明するための図である。第1の検知回路601は、データAの値が−M〜+Mの閾値範囲内であるときに第1のメモリMEMaにカウント数CNTを書き込む。例えば、カウント数CNTが1回目の「0」のとき、第1のメモリMEMaに「0」が書き込まれる。次に、カウント数CNTが1回目の「1」のとき、第1のメモリMEMaに「1」が書き込まれる。次に、カウント数CNTが2回目の「0」のとき、第1のメモリMEMaに「0」が書き込まれる。次に、カウント数CNTが2回目の「1」のとき、第1のメモリMEMaに「1」が書き込まれる。次に、カウント数CNTが3回目の「0」のとき、第1のメモリMEMaに「0」が書き込まれる。次に、カウント数CNTが3回目の「1」のとき、第1のメモリMEMaに「1」が書き込まれる。
第2の検知回路602は、データBの値が−M〜+Mの閾値範囲内であるときに第2のメモリMEMbにカウント数CNTを書き込む。例えば、カウント数CNTが1回目の「6」のとき、第2のメモリMEMbに「6」が書き込まれる。次に、カウント数CNTが1回目の「7」のとき、第2のメモリMEMbに「7」が書き込まれる。次に、カウント数CNTが2回目の「6」のとき、第2のメモリMEMbに「6」が書き込まれる。次に、カウント数CNTが2回目の「7」のとき、第2のメモリMEMbに「7」が書き込まれる。
平均値導出回路606は、第1の実施形態と同様に、メモリMEMa及びMEMbに記憶されているカウント数を基に位相の平均値を導出する。本実施形態は、第1の実施形態と同様の動作を行うことができる。
(第3の実施形態)
図14(A)〜(C)は、第3の実施形態による0クロス位相の推定方法を説明するための図である。図14(A)において、0クロス位相1402は、入力データINの値が0点をクロスする時の位相であり、入力データINの変化点の位相である。例えば、データAは、0クロス位相1402に対して「−1.5」の位相差を有する。データBは、0クロス位相1402に対して「+2」の位相差を有する。本実施形態では、データA及びBを基に、データAに対する0クロス位相1402のずれ位相1401を演算する。ずれ位相1401は、1UIを基準とした位相である。
図14(B)は、データAとその次のデータBとの間に0クロス位相がある例を示す。データAと0クロス位相との位相差は「1.5」、データBと0クロス位相との位相差は「2」である。データAの値は、−1.5であって、絶対値が「1.5」である。データBの値は、+2であって、絶対値が「2」である。データA及びBの間隔は0.5UIであり、データAの位相は0UIであり、データBの位相は0.5UIである。したがって、図14(A)のずれ位相1401は、0.5×1.5/(1.5+2)である。
図14(C)は、データBとその次のデータAとの間に0クロス位相がある例を示す。データBと0クロス位相との位相差は「1.5」、データAと0クロス位相との位相差は「2」である。データBの値は、−1.5であって、絶対値が「1.5」である。データAの値は、+2であって、絶対値が「2」である。データA及びBの間隔は0.5UIであり、データAの位相は0UIであり、データBの位相は0.5UIである。したがって、図14(A)のずれ位相1401は、0.5+0.5×1.5/(1.5+2)である。
図13は、本実施形態によるDCD検出回路401の構成例を示す図である。以下、本実施形態が第1の実施形態と異なる点を説明する。第1のアナログディジタル変換器121は、データAを出力する。第2のアナログディジタル変換器122は、データBを出力する。遅延回路1341は、データAを遅延し、データAdを出力する。
DCD検出回路401は、0クロス推定回路1301を有する。0クロス推定回路1301は、第1の推定回路1303及び第2の推定回路1302を有する。第1の推定回路1303は、図14(B)に対応する演算を行い、データAdとその次のデータBとの間の0クロス位相を推定する。加算回路1321は、|Ad|+|B|の加算を行う。乗算回路1322は、加算回路1311の出力値を入力し、0.5×|Ad|/(|Ad|+|B|)の演算を行う。排他的論理和回路1323は、データAdの正負符号とデータBの正負符号とが異なるときに、データAdとその次のデータBとの間に0クロス位相が存在するので、値更新パルスを出力する。
第2の推定回路1302は、図14(C)に対応する演算を行い、データBとその次のデータAとの間の0クロス位相を推定する。加算回路1311は、|A|+|B|の加算を行う。乗算回路1312は、加算回路1311の出力値を入力し、0.5×|B|/(|A|+|B|)の演算を行う。加算回路1304は、乗算回路1312の出力値を入力し、0.5+0.5×|B|/(|A|+|B|)の演算を行う。排他的論理和回路1313は、データBの正負符号とデータAの正負符号とが異なるときに、データBとその次のデータAとの間に0クロス位相が存在するので、値更新パルスを出力する。
選択回路1305は、排他的論理和回路1323が値更新パルスを出力しているときには乗算回路1322の出力値を選択し、排他的論理和回路1313が値更新パルスを出力しているときには加算回路1304の出力値を選択する。フリップフロップ回路1306は、排他的論理和回路1313又は1323が出力する値更新パルスに同期して、選択回路1305が選択した信号を保持し、それを0クロス位相の推定値として出力する。0クロス推定回路1301は、0クロス位相を推定し、0クロス位相の推定値を出力することができる。
ローパスフィルタ1332は、フリップフロップ回路1306の出力信号をローパスフィルタリングすることにより、0クロス位相の平均値Pavgを出力する。判定回路1333は、平均値Pavgが0.5より大きくかつ0.8より小さいときには、0クロス位相がサンプリングクロック信号CLKの1周期(1UI)の後半に存在するので、有効信号をカウンタ1336に出力して有効化する。判定回路1334は、平均値Pavgが0.2より大きくかつ0.5より小さいときには、0クロス位相がサンプリングクロック信号CLKの1周期(1UI)の前半に存在するので、有効信号をカウンタ1337に出力して有効化する。判定回路1335は、平均値Pavgが0.8より大きい又は0.2より小さいときには、0クロス位相がサンプリングクロック信号CLKの1周期(1UI)の境界付近に存在するので、リセット信号をカウンタ1336及び1337に出力し、タイミング信号を演算回路1339に出力する。なお、上記の「0.8」、「0.5」、「0.2」の値は例であり、別の値を用いてもよい。
検知回路1331は、データBが−M〜+Mの閾値範囲内であるときには、例えば0.1UI単位でパルス信号を出力する。第1のカウンタ1337は、判定回路1334から有効信号を入力している間、検知回路1331のパルス信号を第1のカウント数N1としてインクリメントし、すなわち0クロス位相がサンプリングクロック信号CLKの1周期(1UI)の前半に存在する数を第1のカウント数N1としてカウントする。
第2のカウンタ1336は、判定回路1333から有効信号を入力している間、検知回路1331のパルス信号を第2のカウント数N2としてインクリメントし、すなわち0クロス位相がサンプリングクロック信号CLKの1周期(1UI)の後半に存在する数を第2のカウント数N2としてカウントする。
オーバーフロー予測回路1338は、カウンタ1336及び1337のカウント数N1,N2がオーバーフローしそうであることを予測すると、カウンタ1336及び1337のカウント数N1,N2を1/2に減らし、オーバーフローを防止する。演算回路1339は、判定回路1335からタイミング信号を入力すると、第1のカウント数N1及び第2のカウント数N2を基に次式の演算を行い、DCD量を出力する。
(N2−N1)/(|N1|+|N2|)
すなわち、演算回路1339は、サンプリングクロック信号CLKの1周期(1UI)の境界付近のタイミングで上式の演算を行う。DCDがないときには、第1のカウント数N1と第2のカウント数N2が同じになり、演算回路1339が出力するDCD量は0になる。ローパスフィルタ1340は、演算回路1339の出力信号をローパスフィルタリングし、DCD量Dcを出力する。多くのDCD量をローパスフィルタ1340により平均化することで、DCD量Dcの推定誤差を軽減できる。
図15(A)及び(B)は、DCDがない場合の図13のDCD検出回路401の動作を説明するための図である。データA及びBのサンプリング間隔が0.5UIであり、DCDがない場合である。
図15(A)は、図13の第2のカウンタ1336がカウントする期間を示す。データAの位相を0UIとすると、0クロス位相は0.8UIであるので、判定回路1333が有効信号の出力を開始する。期間1501は、0クロス位相が0.8UIから0.5UIまで変化する期間であり、判定回路1333が有効信号を出力する期間である。第2のカウンタ1336は、期間1501でカウントを行う。
図15(B)は、図13の第1のカウンタ1337がカウントする期間を示す。データAの位相を0UIとすると、0クロス位相は0.5UIであるので、判定回路1334が有効信号の出力を開始する。期間1502は、0クロス位相が0.5UIから0.2UIまで変化する期間であり、判定回路1334が有効信号を出力する期間である。第1のカウンタ1337は、期間1502でカウントを行う。
第2のカウンタ1336のカウント期間1501と第1のカウンタ1337のカウント期間1502は同じであるので、第2のカウンタ1336のカウント数と第1のカウンタ1337のカウント数は同じになる。その結果、DCD量Dcは0になる。
図15(C)及び(D)は、DCDがある場合の図13のDCD検出回路401の動作を説明するための図である。データA及びBのサンプリング間隔が0.6UIであり、DCDがある場合である。
図15(C)は、図13の第2のカウンタ1336がカウントする期間を示す。データAの位相を0UIとすると、0クロス位相は0.8UIであるので、判定回路1333が有効信号の出力を開始する。期間1503は、0クロス位相が0.8UIから0.5UIまで変化する期間であり、判定回路1333が有効信号を出力する期間である。第2のカウンタ1336は、期間1503でカウントを行う。
図15(D)は、図13の第1のカウンタ1337がカウントする期間を示す。データAの位相を0UIとすると、0クロス位相は0.5UIであるので、判定回路1334が有効信号の出力を開始する。期間1505は、0クロス位相が0.5UIから0.2UIまで変化する期間であり、判定回路1334が有効信号を出力する期間である。期間1504は、期間1505内においてデータBが−M〜+Mの閾値範囲内に存在する期間であり、期間1505より短い。第1のカウンタ1337は、期間1504でカウントを行う。
第1のカウンタ1337のカウント期間1504は、第2のカウンタ1336のカウント期間1503より短いので、第1のカウンタ1337のカウント数は第2のカウンタ1336のカウント数より小さくなる。その結果、DCD量Dcは0より大きくなる。
図16(B)は、図15(A)及び(B)に対応し、DCDがない場合の図13のDCD検出回路401の動作を説明するための図である。データA及びBのサンプリング間隔が0.5UIであり、DCDがない場合である。
まず、0クロス位相がデータAの位相に対して0.8UIであり、データBが−M〜+Mの範囲外であるので、第2のカウンタ1336及び第1のカウンタ1337はカウント数をインクリメントせず、カウント数は「0」のままである。
次に、0クロス位相がデータAの位相に対して0.7UIであり、データBが−M〜+Mの範囲内であるので、第2のカウンタ1336はカウント数をインクリメントし、カウント数を「1」とする。
次に、0クロス位相がデータAの位相に対して0.6UIであり、データBが−M〜+Mの範囲内であるので、第2のカウンタ1336はカウント数をインクリメントし、カウント数を「2」とする。
次に、0クロス位相がデータAの位相に対して0.5UIであり、データBが−M〜+Mの範囲内であるので、第2のカウンタ1336はカウント数をインクリメントし、カウント数を「3」とし、第1のカウンタ1337はカウント数をインクリメントし、カウント数を「1」とする。ここでは、0クロス位相が0.5UIの場合には、判定回路1333及び1334の両方が有効信号を出力する場合を例に説明する。
次に、0クロス位相がデータAの位相に対して0.4UIであり、データBが−M〜+Mの範囲内であるので、第1のカウンタ1337はカウント数をインクリメントし、カウント数を「2」とする。
次に、0クロス位相がデータAの位相に対して0.3UIであり、データBが−M〜+Mの範囲内であるので、第1のカウンタ1337はカウント数をインクリメントし、カウント数を「3」とする。
次に、0クロス位相がデータAの位相に対して0.2UIであり、データBが−M〜+Mの範囲外であるので、第2のカウンタ1336及び第1のカウンタ1337はカウント数をインクリメントしない。
第2のカウンタ1336のカウント数は3であり、第1のカウンタ1337のカウント数は3であり、両方のカウント数は同じである。その結果、DCD量Dcは0になる。
図16(A)は、図15(C)及び(D)に対応し、DCDがある場合の図13のDCD検出回路401の動作を説明するための図である。データA及びBのサンプリング間隔が0.6UIであり、DCDがある場合である。
まず、0クロス位相がデータAの位相に対して0.8UIであり、データBが−M〜+Mの範囲内であるので、第2のカウンタ1336はカウント数をインクリメントし、カウント数を「1」とする。
次に、0クロス位相がデータAの位相に対して0.7UIであり、データBが−M〜+Mの範囲内であるので、第2のカウンタ1336はカウント数をインクリメントし、カウント数を「2」とする。
次に、0クロス位相がデータAの位相に対して0.6UIであり、データBが−M〜+Mの範囲内であるので、第2のカウンタ1336はカウント数をインクリメントし、カウント数を「3」とする。
次に、0クロス位相がデータAの位相に対して0.5UIであり、データBが−M〜+Mの範囲内であるので、第2のカウンタ1336はカウント数をインクリメントし、カウント数を「4」とし、第1のカウンタ1337はカウント数をインクリメントし、カウント数を「1」とする。
次に、0クロス位相がデータAの位相に対して0.4UIであり、データBが−M〜+Mの範囲内であるので、第1のカウンタ1337はカウント数をインクリメントし、カウント数を「2」とする。
次に、0クロス位相がデータAの位相に対して0.3UIであり、データBが−M〜+Mの範囲外であるので、第2のカウンタ1336及び第1のカウンタ1337はカウント数をインクリメントしない。
次に、0クロス位相がデータAの位相に対して0.2UIであり、データBが−M〜+Mの範囲外であるので、第2のカウンタ1336及び第1のカウンタ1337はカウント数をインクリメントしない。
第2のカウンタ1336のカウント数は4であり、第1のカウンタ1337のカウント数は2であり、両方のカウント数は異なる。その結果、DCD量Dcは正値になる。
なお、図13のDCD検出回路401は、データBを基準とし、その直前のデータAd及びその直後のデータAを用いて、DCD量Dcを検出する例を説明したが、これに限定されず、同様に、データAを基準として、その直前のデータB及びその直後のデータBを用いて、DCD量Dcを検出するようにしてもよい。その場合、DCD検出回路401は、第1のアナログディジタル変換器121によりサンプリングされたデータAとその直前に第2のアナログディジタル変換器122によりサンプリングされたデータBとの間に0クロス位相が存在する数を第1のカウント数N1としてカウントし、第1のアナログディジタル変換器121によりサンプリングされたデータAとその直後に第2のアナログディジタル変換器122によりサンプリングされたデータBとの間に0クロス位相が存在する数を第2のカウント数N2としてカウントし、第1のカウント数N1及び第2のカウント数N2を基にDCD量Dcを検出する。
(第4の実施形態)
図17は、第4の実施形態によるDCD検出回路401の構成例を示す図である。以下、本実施形態が第3の実施形態と異なる点を説明する。第1のアナログディジタル変換器121は、データAを出力する。第2のアナログディジタル変換器122は、データBを出力する。DCD検出回路401は、第1の0クロス検知回路1702及び第2の0クロス検知回路1701を有する。
第1の0クロス検知回路1702は、遅延回路1712及び排他的論理和回路1713を有する。遅延回路1712は、データAを遅延し、データAdを出力する。排他的論理和回路1713は、データAdの正負符号とデータBの正負符号とが異なるときに、データAdとその次のデータBとの間に0クロス位相が存在するので、例えば0.1UI単位で検知パルスを出力する。第1のカウンタ1337は、排他的論理和回路1713が出力する検知パルスを第1のカウント数N1としてカウントする。すなわち、第1のカウンタ1337は、第2のサンプリング回路122によりサンプリングされたデータBとその直前に第1のサンプリング回路121によりサンプリングされたデータAdとの間に0クロス位相が存在する数を第1のカウント数N1としてカウントする。
第2の0クロス検知回路1701は、排他的論理和回路1711を有する。排他的論理和回路1711は、データBの正負符号とデータAの正負符号とが異なるときに、データBとその次のデータAとの間に0クロス位相が存在するので、例えば0.1UI単位で検知パルスを出力する。第2のカウンタ1336は、排他的論理和回路1711が出力する検知パルスを第2のカウント数N2としてカウントする。すなわち、第2のカウンタ1336は、第2のサンプリング回路122によりサンプリングされたデータBとその直後に第1のサンプリング回路121によりサンプリングされたデータAとの間に0クロス位相が存在する数を第2のカウント数N2としてカウントする。
オーバーフロー予測回路1338は、カウンタ1336及び1337のカウント数N1及びN2がオーバーフローしそうであることを予測すると、カウンタ1336及び1337のカウント数N1及びN2を1/2に減らし、オーバーフローを防止する。演算回路1339は、第1のカウント数N1及び第2のカウント数N2を基に次式の演算を行い、DCD量を出力する。
(N2−N1)/(|N1|+|N2|)
ローパスフィルタ1340は、演算回路1339の出力信号をローパスフィルタリングし、DCD量Dcを出力する。
図18(A)及び(B)は、DCDがない場合の図17のDCD検出回路401の動作を説明するための図である。データA及びBのサンプリング間隔が0.5UIであり、DCDがない場合である。
図18(A)は、図17の第1のカウンタ1337がカウントする期間を示す。データA及びその直後のデータBとの間隔は0.5UIであるので、データAの正負符号が負であってその直後のデータBの正負符号が正である期間は0.5UIである。したがって、第1のカウンタ1337がカウントする期間は0.5UIである。
図18(B)は、図17の第2のカウンタ1336がカウントする期間を示す。データB及びその直後のデータAとの間隔は0.5UIであるので、データBの正負符号が負であってその直後のデータAの正負符号が正である期間は0.5UIである。したがって、第2のカウンタ1336がカウントする期間は0.5UIである。
第2のカウンタ1336のカウント期間(0.5UI)と第1のカウンタ1337のカウント期間(0.5UI)は同じであるので、第2のカウンタ1336の第2のカウント数N2と第1のカウンタ1337の第1のカウント数N1は同じになる。その結果、DCD量Dcは0になる。
図18(C)及び(D)は、DCDがある場合の図17のDCD検出回路401の動作を説明するための図である。データA及びBのサンプリング間隔が0.3UIであり、DCDがある場合である。
図18(C)は、図17の第1のカウンタ1337がカウントする期間を示す。データA及びその直後のデータBとの間隔は0.3UIであるので、データAの正負符号が負であってその直後のデータBの正負符号が正である期間は0.3UIである。したがって、第1のカウンタ1337がカウントする期間は0.3UIである。
図18(D)は、図17の第2のカウンタ1336がカウントする期間を示す。データB及びその直後のデータAとの間隔は0.7UIであるので、データBの正負符号が負であってその直後のデータAの正負符号が正である期間は0.7UIである。したがって、第2のカウンタ1336がカウントする期間は0.7UIである。
第2のカウンタ1336のカウント期間(0.7UI)は、第1のカウンタ1337のカウント期間(0.3)より長いので、第2のカウンタ1336のカウント数N2は第1のカウンタ1337のカウント数N1より大きくなる。その結果、DCD量Dcは0より大きくなる。
図19(B)は、図18(A)及び(B)に対応し、DCDがない場合の図17のDCD検出回路401の動作を説明するための図である。データA及びBのサンプリング間隔が0.5UIであり、DCDがない場合である。
まず、0クロス位相がデータAの位相に対して0.9UIであり、データBとその直後のデータAの間に0クロス位相1402が存在するので、第2のカウンタ1336はカウント数をインクリメントし、カウント数を「1」とする。
次に、0クロス位相がデータAの位相に対して0.8UIであり、データBとその直後のデータAの間に0クロス位相1402が存在するので、第2のカウンタ1336はカウント数をインクリメントし、カウント数を「2」とする。
次に、0クロス位相がデータAの位相に対して0.7UIであり、データBとその直後のデータAの間に0クロス位相1402が存在するので、第2のカウンタ1336はカウント数をインクリメントし、カウント数を「3」とする。
次に、0クロス位相がデータAの位相に対して0.6UIであり、データBとその直後のデータAの間に0クロス位相1402が存在するので、第2のカウンタ1336はカウント数をインクリメントし、カウント数を「4」とする。
次に、0クロス位相がデータAの位相に対して0.5UIであり、0クロス位相1402がデータBの位相と同じであるので、第2のカウンタ1336はカウント数をインクリメントし、カウント数を「5」とし、第1のカウンタ1337はカウント数をインクリメントし、カウント数を「1」とする。
次に、0クロス位相がデータAの位相に対して0.4UIであり、データAとその直後のデータBの間に0クロス位相1402が存在するので、第1のカウンタ1337はカウント数をインクリメントし、カウント数を「2」とする。
次に、0クロス位相がデータAの位相に対して0.3UIであり、データAとその直後のデータBの間に0クロス位相1402が存在するので、第1のカウンタ1337はカウント数をインクリメントし、カウント数を「3」とする。
次に、0クロス位相がデータAの位相に対して0.2UIであり、データAとその直後のデータBの間に0クロス位相1402が存在するので、第1のカウンタ1337はカウント数をインクリメントし、カウント数を「4」とする。
次に、0クロス位相がデータAの位相に対して0.1UIであり、データAとその直後のデータBの間に0クロス位相1402が存在するので、第1のカウンタ1337はカウント数をインクリメントし、カウント数を「5」とする。
次に、0クロス位相がデータAの位相に対して0UIであり、0クロス位相1402がデータAの位相と同じであるので、第1のカウンタ1337はカウント数をインクリメントし、カウント数を「6」とし、第2のカウンタ1336はカウント数をインクリメントし、カウント数を「6」とする。
第2のカウンタ1336のカウント数は6であり、第1のカウンタ1337のカウント数は6であり、両方のカウント数は同じである。その結果、DCD量Dcは0になる。
図19(A)は、図18(C)及び(D)に対応し、DCDがある場合の図17のDCD検出回路401の動作を説明するための図である。データA及びBのサンプリング間隔が0.6UIであり、DCDがある場合である。
まず、0クロス位相がデータAの位相に対して0.9UIであり、データBとその直後のデータAの間に0クロス位相1402が存在するので、第2のカウンタ1336はカウント数をインクリメントし、カウント数を「1」とする。
次に、0クロス位相がデータAの位相に対して0.8UIであり、データBとその直後のデータAの間に0クロス位相1402が存在するので、第2のカウンタ1336はカウント数をインクリメントし、カウント数を「2」とする。
次に、0クロス位相がデータAの位相に対して0.7UIであり、データBとその直後のデータAの間に0クロス位相1402が存在するので、第2のカウンタ1336はカウント数をインクリメントし、カウント数を「3」とする。
次に、0クロス位相がデータAの位相に対して0.6UIであり、0クロス位相1402がデータBの位相と同じであるので、第2のカウンタ1336はカウント数をインクリメントし、カウント数を「4」とし、第1のカウンタ1337はカウント数をインクリメントし、カウント数を「1」とする。
次に、0クロス位相がデータAの位相に対して0.5UIであり、データAとその直後のデータBの間に0クロス位相1402が存在するので、第1のカウンタ1337はカウント数をインクリメントし、カウント数を「2」とする。
次に、0クロス位相がデータAの位相に対して0.4UIであり、データAとその直後のデータBの間に0クロス位相1402が存在するので、第1のカウンタ1337はカウント数をインクリメントし、カウント数を「3」とする。
次に、0クロス位相がデータAの位相に対して0.3UIであり、データAとその直後のデータBの間に0クロス位相1402が存在するので、第1のカウンタ1337はカウント数をインクリメントし、カウント数を「4」とする。
次に、0クロス位相がデータAの位相に対して0.2UIであり、データAとその直後のデータBの間に0クロス位相1402が存在するので、第1のカウンタ1337はカウント数をインクリメントし、カウント数を「5」とする。
次に、0クロス位相がデータAの位相に対して0.1UIであり、データAとその直後のデータBの間に0クロス位相1402が存在するので、第1のカウンタ1337はカウント数をインクリメントし、カウント数を「6」とする。
次に、0クロス位相がデータAの位相に対して0UIであり、0クロス位相1402がデータAの位相と同じであるので、第1のカウンタ1337はカウント数をインクリメントし、カウント数を「7」とし、第2のカウンタ1336はカウント数をインクリメントし、カウント数を「5」とする。
第2のカウンタ1336のカウント数は5であり、第1のカウンタ1337のカウント数は7であり、両方のカウント数は異なる。その結果、DCD量Dcは正値になる。
(第5の実施形態)
図20(A)は第5の実施形態による図4のディジタル補正回路402の構成例を示す図であり、図20(B)はディジタル補正回路402の動作を説明するための図である。ディジタル補正回路402は、引算回路2001、乗算回路2002及び加算回路2003を有する。引算回路2001は、データBからデータAを引算し、B−A=kで表わされる傾きkを出力する。乗算回路2002は、傾きk及びDCD量Dcを乗算し、k×Dc=Eaで表わされる補正量Eaを出力する。加算回路2003は、データB及び補正量Eaを加算し、B+Ea=Cで表わされるデータCを出力する。ディジタル補正回路402は、DCD量Dcに応じてデータBを補正し、データCを出力する。DCDがない場合には、DCD量Dcが0になり、補正量Eaが0になり、補正後のデータCは補正前のデータBと同じになる。補正後のデータCは、DCDがないと仮定した場合のデータである。
なお、ディジタル補正回路402は、データAを補正し、データCを出力することもできる。その場合、引算回路2001は、k=A−Bの引算により傾きkを出力し、加算回路2003は、C=A+Eaの加算によりデータCを出力すればよい。
以上のように、ディジタル補正回路402は、第1のアナログディジタル変換器121によりサンプリングされたデータA及び第2のアナログディジタル変換器122によりサンプリングされたデータの差分kを演算し、差分kに対してDCD検出回路401により検出されたDCD量Dcを乗算し、乗算の積Eaに対して第1のアナログディジタル変換器121によりサンプリングされたデータA又は第2のアナログディジタル変換器122によりサンプリングされたデータBを加算する。
また、アナログディジタル変換器121及び122の分解能が3ビット程度である場合、乗算回路2002は、傾きkが正値であるときにはk=+1とし、傾きkが負値であるときにはk=−1とし、DCD量Dcが正値であるときにはDc=+1とし、DCD量Dcが負値であるときにはDc=−1とし、Ea=k×Dcの乗算を行う。補正量Eaは、DCDがある場合には+1又は−1になり、DCDがない場合には0になる。これにより、回路の単純化を図ることができる。
(第6の実施形態)
図5は、第6の実施形態による通信システムの構成例を示す図である。図5の通信システムは、図4の通信システムに対して、DCD検出回路401の接続位置が異なる。以下、本実施形態が第1の実施形態と異なる点を説明する。図4のDCD検出回路401及びディジタル補正回路402はフィードフォワードにより補正を行い、図5のDCD検出回路401及びディジタル補正回路402はフィードバックにより補正を行う。本実施形態では、ディジタル補正回路402は、DCD量Dc及びデータAに応じて、データBを補正し、データCを出力する。DCD検出回路401は、データA及びデータCを基にDCD量Dcを検出し、ディジタル補正回路402に出力する。すなわち、DCD検出回路401は、第1のアナログディジタル変換器121によりサンプリングされたデータA及びディジタル補正回路402により補正された第2のアナログディジタル変換器122によりサンプリングされたデータCを基に、DCD量Dcを検出する。
なお、ディジタル補正回路402は、データAを補正し、データCを出力してもよい。その場合、DCD検出回路401は、第2のアナログディジタル変換器122によりサンプリングされたデータB及びディジタル補正回路402により補正された第1のアナログディジタル変換器121によりサンプリングされたデータCを基に、DCD量Dcを検出する。
(第7の実施形態)
図21は、第7の実施形態による図5のDCD検出回路401及びディジタル補正回路402の構成例を示す図である。以下、本実施形態が第6の実施形態と異なる点を説明する。ディジタル補正回路402は、図20(A)のディジタル補正回路402と同じ構成を有し、データA、データB及びDCD量Dcを入力し、データCを出力する。
DCD検出回路401は、第1のアナログディジタル変換器121が出力するデータA及びディジタル補正回路402が出力するデータCを入力し、DCD量Dcを出力する。図21のDCD検出回路401は、図13のDCD検出回路401に対して、判定回路1335、カウンタ1336,1337、オーバーフロー予測回路1338及び演算回路1339を削除し、アップ/ダウンカウンタ2101を追加したものである。以下、図21のDCD検出回路401が図13のDCD検出回路401と異なる点を説明する。図13のDCD検出回路401はデータBを入力して処理したが、図21のDCD検出回路401は、データBの代わりにデータCを入力して処理する。判定回路1333は、平均値Pavgが0.5より大きくかつ0.8より小さいときには、アップ信号UPをアップ/ダウンカウンタ2101に出力する。判定回路1334は、平均値Pavgが0.2より大きくかつ0.5より小さいときには、ダウン信号DNをアップ/ダウンカウンタ2101に出力する。検知回路1331は、データCが−M〜+Mの閾値範囲内であるときには、例えば0.01UI単位でパルス信号を出力する。アップ/ダウンカウンタ2101は、判定回路1333からアップ信号UPを入力している間に検知回路1331のパルス信号を入力するとカウント数をアップカウントし、判定回路1334からダウン信号DNを入力している間に検知回路1331のパルス信号を入力するとカウント数をダウンカウントする。アップ/ダウンカウンタ2101のカウント数は、例えば0.01単位で−1〜+1の範囲内である。ローパスフィルタ1340は、アップ/ダウンカウンタ2101の出力信号をローパスフィルタリングし、DCD量Dcをディジタル補正回路402内の乗算回路2002に出力する。
フィードバック構成にすることにより、2つのカウンタ1336,1337を1つのアップ/ダウンカウンタ2101に簡略化することができる。
(第8の実施形態)
図22は、第8の実施形態による図5のDCD検出回路401及びディジタル補正回路402の構成例を示す図である。以下、本実施形態が第7の実施形態と異なる点を説明する。DCD検出回路401は、第1のアナログディジタル変換器121が出力するデータA及びディジタル補正回路402が出力するデータCを入力し、DCD量Dcを出力する。図22のDCD検出回路401は、図17のDCD検出回路401に対して、カウンタ1336,1337、オーバーフロー予測回路1338及び演算回路1339を削除し、アップ/ダウンカウンタ2201を追加したものである。以下、図22のDCD検出回路401が図17のDCD検出回路401と異なる点を説明する。
排他的論理和回路1711は、データCの正負符号とデータAの正負符号とが異なるときに、例えば0.01UI単位でアップパルスUPを出力する。排他的論理和回路1713は、データAdの正負符号とデータCの正負符号とが異なるときに、例えば0.01UI単位でダウンパルスDNを出力する。アップ/ダウンカウンタ2201は、アップパルスUPを入力するとカウント数をアップカウントし、ダウンパルスDNを入力するとカウント数をダウンカウントする。アップ/ダウンカウンタ2201のカウント数は、例えば0.01単位で−1〜+1の範囲内である。ローパスフィルタ1340は、アップ/ダウンカウンタ2201の出力信号をローパスフィルタリングし、DCD量Dcをディジタル補正回路402内の乗算回路2002に出力する。
フィードバック構成にすることにより、2つのカウンタ1336,1337を1つのアップ/ダウンカウンタ2201に簡略化することができる。
図23は、第1〜第8の実施形態による受信回路103の補正方法を説明するための図である。入力データINは、1UI単位でデータが変化可能である。1UIの境界は、0クロス位相として推定可能である。サンプリングクロック信号CLKは、例えば、ハイレベル期間がローレベル期間よりも短く、DCDが発生している。データAは、サンプリングクロック信号CLKの立ち上がりエッジに同期してサンプリングされたデータである。データBは、サンプリングクロック信号CLKの立ち下がりエッジに同期してサンプリングされたデータである。データCは、ディジタル補正回路402がデータBを補正したデータであり、デューティ比が50%のサンプリングクロック信号CLKの立ち下がりエッジによりサンプリングされるデータの推定値である。これにより、データAとその直後のデータCのサンプリング間隔は0.5UIであり、データCとその直後のデータAのサンプリング間隔も0.5UIであり、両者のサンプリング間隔は同じになる。すなわち、データA及びデータCは、デューティ比が50%のサンプリングクロック信号CLKによりサンプリングされたDCDのないデータになる。クロックデータリカバリ回路124は、補正されたデータA及びCのうちの1UIのセンタ付近のデータを選択して復元するので、復元データのエラーレートを低減することができる。1UIのセンタ付近のデータが0より大きければデータ「1」が復元され、1UIのセンタ付近のデータが0より小さければデータ「0」が復元される。
以上のように、DCD補正を行うことにより、DCDがあった場合でも、DCDがない場合のデータに補正することができる。プロセス、温度又は電源電圧の影響によりDCDが発生した場合でも、受信回路103の後段のフリップフロップ回路に対して最適なクロック信号とデータを供給可能であるため、歩留りが向上する。また、受信回路103をICに内蔵することにより自動制御が可能となるため、温度、電源電圧の動的な変動に対応可能である。
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。上記の複数の実施形態は、種々の組み合わせが可能である。