(57)【特許請求の範囲】
【請求項１】
先頭にプリアンブルが付与されたデジタル信号を受信して、当該デジタル信号を復元する受信データ復元装置であって、
下記の数１に基づいて、前記プリアンブルの受信期間中の前記受信データ復元装置のクロックカウント数、および前記プリアンブルの長さから、前記受信データ復元装置のオーバーサンプリング率を算出するβ演算器と、
前記オーバーサンプリング率に基づいて、復元対象となる１ビットのデータを抽出するための時間幅であるサンプリング窓時間を算出する窓時間演算器と、を具備し、
前記窓時間演算器は、前記デジタル信号に遷移が検出された場合の前記サンプリング窓時間を、下記の数５に基づいて算出し、前記デジタル信号に遷移が検出されない場合の前記サンプリング窓時間を、下記の数６に基づいて算出する、
受信データ復元装置。
【数１】
0006333166.tif 000021
【数５】
0006333166.tif 000022
【数６】
0006333166.tif 000023
【請求項２】
先頭にプリアンブルが付与されたデジタル信号を受信して、当該デジタル信号を復元する受信データ復元装置であって、
下記の数１に基づいて、前記プリアンブルの受信期間中の前記受信データ復元装置のクロックカウント数、および前記プリアンブルの長さから、前記受信データ復元装置のオーバーサンプリング率を算出するβ演算器と、
前記オーバーサンプリング率に基づいて、復元対象となる１ビットのデータを抽出するための時間幅であるサンプリング窓時間を算出する窓時間演算器と、を具備し、
前記窓時間演算器は、前記デジタル信号に遷移が検出された場合の前記サンプリング窓時間を、下記の数５に基づいて算出し、前記デジタル信号に遷移が検出されない場合の前記サンプリング窓時間を、下記の数７に基づいて算出する、
受信データ復元装置。
【数１】
0006333166.tif 000024
【数５】
0006333166.tif 000025
【数７】
0006333166.tif 000026
【請求項３】
前記窓時間演算器は、４Ｂ５Ｂ符号化が行われた前記デジタル信号に遷移が検出された場合の前記サンプリング窓時間を、下記の数２に基づいて算出し、前記デジタル信号に遷移が検出されない場合の前記サンプリング窓時間を、下記の数３および数４に基づいて算出する、
ことを特徴とする請求項１または請求項２に記載の受信データ復元装置。
【数２】
0006333166.tif 000027
【数３】
0006333166.tif 000028
【数４】
0006333166.tif 000029
【請求項４】
前記プリアンブルの遷移数は、２ｎ＋１である、
ことを特徴とする請求項１乃至請求項３のいずれか一項に記載の受信データ復元装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタル信号を受信し、受信したデジタル信号を復元する受信データ復元装置に関する。
【背景技術】
【０００２】
デジタル信号の送受信において、受信側では、受信したビットを正しいタイミングで、１か０かを判定する必要がある。そのための最も簡潔な方法は、タイミング情報であるクロックを受信側に送信するための伝送路を設けることである。
しかしながら、このような方法は、配線が増えることによって、コストが増加する点で不利である。
【０００３】
上記以外の方法としては、送信データにクロックを重畳する方法が広く知られている（例えば、特許文献１参照）。この方法を用いる場合、受信側でクロックの抽出、つまり、クロック・データ・リカバリ（Ｃｌｏｃｋ  ａｎｄ  Ｄａｔａ  Ｒｅｃｏｖｅｒｙ：ＣＤＲ）を行う必要がある。
【０００４】
ＣＤＲに用いられる回路は、主に、位相同期回路（Ｐｈａｓｅ−Ｌｏｃｋｅｄ  Ｌｏｏｐ：ＰＬＬ）と、位相補間回路（インターポレータ）とが広く知られている。
【０００５】
ＰＬＬは、位相比較器、ローパスフィルタ、電圧制御型発振器（Ｖｏｌｔａｇｅ−Ｃｏｎｔｒｏｌｌｅｄ  Ｏｓｃｉｌｌａｔｏｒ：ＶＣＯ）および分周器を具備する。ＰＬＬは、受信データのエッジを検出し、内部の基準クロックの位相と比較して調整することでクロックを抽出する。これにより、受信したデータとクロックとの間のスキュー（歪み）を抑制することができる。
しかしながら、ＰＬＬにおいては、ＶＣＯからのノイズ、ＶＣＯに起因するジッタ（振幅変動、ジッタ・トラック波形の変動）、およびＶＣＯへの供給電圧波形の変動などが生じるおそれがある。
【０００６】
位相補間回路は、基準クロックから多相のクロックを生成し、受信データのエッジと比較することにより、最適なクロック相を選択する。位相補間回路は、ＶＣＯを用いずに、高精度な基準クロックを利用するため、抽出したクロックのジッタを低減することができる。
しかしながら、位相補間回路は、位相補間の精度を向上させるために、回路規模および消費電力が増加する点で不利である。
【０００７】
以上のように、ＣＤＲに用いられる従来の回路は、ノイズの影響を受けたり、高精度のクロックを必要とするなどの問題がある。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００４−２５３９４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本発明は、ノイズの影響を受けず、高精度のクロックが不要な受信データ復元装置を提供することを課題とする。
【課題を解決するための手段】
【００１０】
本発明に係る受信データ復元装置は、先頭にプリアンブルが付与されたデジタル信号を受信して、当該デジタル信号を復元する受信データ復元装置であって、下記の数１に基づいて、前記プリアンブルの受信期間中の前記受信データ復元装置のクロックカウント数、および前記プリアンブルの長さから、前記受信データ復元装置のオーバーサンプリング率を算出するβ演算器と、前記オーバーサンプリング率に基づいて、復元対象となる１ビットのデータを抽出するための時間幅であるサンプリング窓時間を算出する窓時間演算器と、を具備する。
【数１】
0006333166.tif 000002
【００１１】
本発明に係る受信データ復元装置において、前記窓時間演算器は、前記デジタル信号に遷移が検出された場合の前記サンプリング窓時間を、下記の数５に基づいて算出し、前記デジタル信号に遷移が検出されない場合の前記サンプリング窓時間を、下記の数６に基づいて算出することが好ましい。なお、数５および数６における「ｆｌｏｏｒ」は、引数の小数点以下を切り捨てる関数である。
【数５】
0006333166.tif 000003
【数６】
0006333166.tif 000004
【００１２】
本発明に係る受信データ復元装置において、前記窓時間演算器は、前記デジタル信号に遷移が検出された場合の前記サンプリング窓時間を、下記の数５に基づいて算出し、前記デジタル信号に遷移が検出されない場合の前記サンプリング窓時間を、下記の数７に基づいて算出することが好ましい。
【数５】
0006333166.tif 000005
【数７】
0006333166.tif 000006
【００１３】
本発明に係る受信データ復元装置において、前記窓時間演算器は、４Ｂ５Ｂ符号化が行われた前記デジタル信号に遷移が検出された場合の前記サンプリング窓時間を、下記の数２に基づいて算出し、前記デジタル信号に遷移が検出されない場合の前記サンプリング窓時間を、下記の数３および数４に基づいて算出する。
【数２】
0006333166.tif 000007
【数３】
0006333166.tif 000008
【数４】
0006333166.tif 000009
【００１４】
本発明に係る受信データ復元装置において、前記プリアンブルの遷移数は、２ｎ＋１である。
【発明の効果】
【００１５】
本発明によれば、ノイズの影響を受けず、高精度のクロックを用いることなく、受信したデジタル信号を復元できる。
【図面の簡単な説明】
【００１６】
【図１】本発明に係る受信データ復元装置の一実施形態である受信機、および送信機を示す図。
【図２】本発明に係る受信データ復元装置が処理するデジタル信号を示す図。
【図３】受信機の構造を示すブロック図。
【図４】遷移検出器の回路図。
【図５】遷移カウンタおよびβ演算器の回路図。
【図６】ステートマシン、シフトレジスタおよび復号器の回路図。
【図７】プリアンブル受信期間中の、遷移カウンタおよびβ演算器の動作を示すタイミングチャート。
【図８】プリアンブル受信期間中の、遷移カウンタおよびβ演算器の動作を示すフローチャート。
【図９】経過時間と、１ビット分の受信データの検出確率との関係を示すグラフ。
【図１０】窓時間演算器の回路図。
【図１１】窓時間カウンタの回路図。
【図１２】４Ｂ５Ｂの変換テーブルを示す図。
【図１３】プリアンブル受信期間後の、窓時間カウンタ、シフトレジスタおよび復号器の動作を示すタイミングチャート。
【図１４】プリアンブル受信期間後の、窓時間カウンタ、シフトレジスタおよび復号器の動作を示すフローチャート。
【発明を実施するための形態】
【００１７】
以下では、図面を参照して、本発明に係る受信データ復元装置の一実施形態である受信機１について説明する。
【００１８】
図１に示すように、受信機１は、伝送路３を介して送信機２に接続されており、伝送路３を介して送信機２から受信機１にデジタル信号が伝送される。
【００１９】
送信機２は、デジタル信号をシリアルデータとして、受信機１に送信する装置である。
図２に示すように、本実施形態におけるデジタル信号は、プリアンブル、データ、および終端記号から構成されている。
プリアンブルは、「１」、「０」の繰り返しからなり、「１」から開始されるビット列であり、デジタル信号の先頭に付与される。プリアンブルの長さは、２ｎビットであることが好ましい。なお、本実施形態において、プリアンブルは、８ビットのビット列である。つまり、本実施形態において、プリアンブルは、「１０１０１０１０」である。プリアンブルの最終ビットは、０であるが、プリアンブルの終了判定のために、プリアンブルの最後には、立ち上がりエッジが付与される。前述のように、プリアンブルは、「１」、「０」の繰り返しであるため、プリアンブルの長さが２ｎビットの場合、プリアンブルの遷移数（ビットの反転数）は、２ｎ＋１となる。したがって、プリアンブルの遷移数は、２ｎ＋１であることが好ましい。なお、本実施形態において、プリアンブルの遷移数は、９である。
データは、所定の意味を有するビット列である。
終端記号は、デジタル信号の終了を示す、予め定められたビット列である。
なお、プリアンブルの後に、所定のスタートビット列を付与することも可能である。
また、スタートビット列を付与した場合に、プリアンブルの長さを、受信機１および送信機２の安定性に応じて可変とし、受信機１によってスタートビット列を検出することにより、プリアンブルの長さを算出することも可能である。これにより、受信機１によるプリアンブルの検出精度を向上させることができる。
また、プリアンブルとスタートビット列とを１つのプリアンブルとみなすことも可能である。これにより、プリアンブルの有効ビット数が増加し、受信機１によるプリアンブルの検出精度を向上させることができる。
【００２０】
送信機２は、受信機１に送信するデジタル信号に対して、４Ｂ５Ｂ符号化、およびＮＲＺＩ（Ｎｏｎ  Ｒｅｔｕｒｎ  ｔｏ  Ｚｅｒｏ  Ｉｎｖｅｒｓｉｏｎ）を行う。
４Ｂ５Ｂ符号化は、所定の規則に基づいて、４ビットのデータを５ビットのシンボルで表現する手法である。本実施形態においては、デジタル信号中に、「０」が３個以上連続しないように４Ｂ５Ｂ符号化を行っている。
ＮＲＺＩは、デジタル信号に遷移が有る場合を「１」とし、遷移が無い場合を「０」とする、デジタル信号の変換法である。ＮＲＺＩを行うことにより、高調波成分を少なくすることができ、伝送帯域幅を小さくすることができる。
なお、必ずしも、受信機１に送信するデジタル信号に対して、４Ｂ５Ｂ符号化およびＮＲＺＩを行う必要はなく、いずれか一方のみを行ってもよいし、双方共に行わなくともよい。
また、４Ｂ５Ｂ符号化に代えて、８Ｂ６Ｔ符号化、５Ｂ６Ｂ符号化、または８Ｂ１０Ｂ符号化などを行うことも可能である。
【００２１】
受信機１は、送信機２から送信されたデジタル信号を受信し、それを復元する装置である。
受信機１のクロック周波数Ｆｒは、送信機２のクロック周波数Ｆｔ以上に設定される。好ましくは、受信機１のクロック周波数Ｆｒは、送信機２のクロック周波数Ｆｔの２倍以上に設定される（Ｆｒ≧２＊Ｆｔ）。
【００２２】
図３に示すように、受信機１は、遷移検出器１１と、遷移カウンタ１２と、ステートマシン１３と、β演算器１４と、窓時間演算器１５と、窓時間カウンタ１６と、シフトレジスタ１７と、復号器１８とを具備する。
【００２３】
図４に示すように、遷移検出器１１は、３つのＤ型フリップフロップであるＤ−ＦＦ１１０・１１１・１１２と、ＸＯＲゲート１１３とから構成されている。
図４において、Ｄ型フリップフロップの中心に記載された文字列は、Ｄ型フリップフロップの変数名を示している。これは、以下、図５などにおいても同様である。
【００２４】
受信機１によって受信されたデジタル信号（以下、「受信データ」と記す）は、Ｄ−ＦＦ１１０に入力される。なお、図４における「ｓｅｒｉａｌ」は、受信機１によって受信された１ビット分の受信データを示す変数である。
Ｄ−ＦＦ１１０の出力は、Ｄ−ＦＦ１１１の入力に接続され、Ｄ−ＦＦ１１１の出力は、Ｄ−ＦＦ１１２の入力に接続されている。さらに、Ｄ−ＦＦ１１２の出力は、ＸＯＲゲート１１３の一方の入力に接続されると共に、Ｄ−ＦＦ１１１の出力は、ＸＯＲゲート１１３の他方の入力に接続されている。
ＸＯＲゲート１１３においては、現在の１ビット分の受信データと、１つ前の１ビット分の受信データとのＸＯＲ演算が行われ、その結果が「ｓｅｒｉａｌ＿ｅｄｇｅ」として出力される。つまり、「ｓｅｒｉａｌ＿ｅｄｇｅ」は、受信データ中で遷移が検出された場合に「１」となり、遷移が検出されない場合に「０」となる変数である。
なお、Ｄ−ＦＦ１１０およびＤ−ＦＦ１１１は、メタステーブルを抑制するためのシンクロナイザとして構成されている。しかしながら、Ｄ−ＦＦ１１０およびＤ−ＦＦ１１１の双方を設けずに、それらの少なくとも一方を設ける構成とすることも可能である。
【００２５】
このように、遷移検出器１１においては、「ｓｅｒｉａｌ」に基づいて、「ｓｅｒｉａｌ＿ｅｄｇｅ」が出力される。
前述のように、送信機２から送信されて受信機１によって受信されるデジタル信号には、ＮＲＺＩが掛けられているため、「ｓｅｒｉａｌ＿ｅｄｇｅ」の上記の特性から、「ｓｅｒｉａｌ＿ｅｄｇｅ」は、ＮＲＺＩが解除された「ｓｅｒｉａｌ」とみなすことができる。
また、「ｓｅｒｉａｌ＿ｅｄｇｅ」は、所定のタイミングで間欠的に、シフトレジスタ１７に入力され、５ビットのシンボルがパラレルデータとしてシフトレジスタ１７から出力される。シフトレジスタ１７から出力された５ビットのシンボルは、復号器１８によって４Ｂ５Ｂ復号化が行われ、４ビットのデータとして復号されることとなる（図３参照）。
【００２６】
図５に示すように、遷移カウンタ１２は、４つのマルチプレクサであるＭＵＸ１２０・１２１・１２２・１２３と、Ｄ型フリップフロップであるＤ−ＦＦ１２４と、加算器１２５と、３つの比較器１２６・１２７・１２８と、ＡＮＤゲート１２９とから構成されている。なお、遷移カウンタ１２の構成要素の間で入出力されるデータの長さは、５ビットである。
【００２７】
ＭＵＸ１２０の選択制御入力には、「ｓｅｒｉａｌ＿ｅｄｇｅ」が入力され、ＭＵＸ１２０の出力は、ＭＵＸ１２３の「０」側の入力に接続されている。
ＭＵＸ１２１の選択制御入力には、「ｂｉｔ＿ｒｅａｄｙ」が入力され、ＭＵＸ１２１の出力は、ＭＵＸ１２２の「０」側の入力に接続されている。「ｂｉｔ＿ｒｅａｄｙ」は、シフトレジスタ１７（図６参照）に「ｓｅｒｉａｌ＿ｅｄｇｅ」が入力される際に「１」となり、それ以外は「０」となる変数である。
ＭＵＸ１２２の「１」側の入力には、０が入力されている。ＭＵＸ１２２の選択制御入力には、「ｓｙｍｂｏｌ＿ｒｅａｄｙ」が入力され、ＭＵＸ１２２の出力は、ＭＵＸ１２３の「１」側の入力に接続されている。「ｓｙｍｂｏｌ＿ｒｅａｄｙ」は、５ビットのシンボルが４ビットのデータとして復号された際に「１」となり、それ以外は「０」となる変数である。
ＭＵＸ１２３の選択制御入力には、「ｓｔａｔｅ」が入力され、ＭＵＸ１２３の出力は、Ｄ−ＦＦ１２４の入力に接続されている。「ｓｔａｔｅ」は、後述のステートマシン１３のＤ−ＦＦ１３２の変数である。「ｓｔａｔｅ」は、プリアンブルの受信期間中には「０」となり、プリアンブルの受信が終了した場合には「１」となる。
Ｄ−ＦＦ１２４の出力は、加算器１２５の「Ａ」側の入力、比較器１２６・１２７・１２８の「Ａ」側の入力、ＭＵＸ１２０の「０」側の入力、およびＭＵＸ１２１の「１」側の入力に接続されている。
加算器１２５の「Ｂ」側の入力には、１が入力され、加算器１２５の出力は、ＭＵＸ１２０の「１」側の入力、およびＭＵＸ１２１の「０」側の入力に接続されている。加算器１２５は、「Ａ」側の入力値と、「Ｂ」側の入力値との合計（Ａ＋Ｂ）を出力する。
比較器１２６の「Ｂ」側の入力には、０が入力され、比較器１２６の出力は、後述のβ演算器１４のＡＮＤゲート１４０の一方の入力に接続されている。比較器１２６は、「Ａ」側の入力値が「Ｂ」側の入力値（０）よりも大きい場合（Ａ＞Ｂ）に１を出力し、それ以外の場合に０を出力する。
比較器１２７の「Ｂ」側の入力には、８が入力され、比較器１２７の出力は、後述のステートマシン１３のＭＵＸ１４１の「０」側の入力に接続されている（図６参照）。比較器１２７は、「Ａ」側の入力値と、「Ｂ」側の入力値（８）とが等しい場合（Ａ＝Ｂ）に１を出力し、それ以外の場合に０を出力する。比較器１２７は、プリアンブルの終了を判定するために設けられている。したがって、比較器１２７の「Ｂ」側の入力値は、プリアンブルの長さである。
比較器１２８の「Ｂ」側の入力には、４が入力され、比較器１２８の出力は、ＡＮＤゲート１２９の一方の入力に接続されている。比較器１２８は、「Ａ」側の入力値と、「Ｂ」側の入力値（４）とが等しい場合（Ａ＝Ｂ）に１を出力し、それ以外の場合に０を出力する。
ＡＮＤゲート１２９の他方の入力には、「ｓｔａｔｅ」が入力され、ＡＮＤゲート１２９の出力は、後述の復号器１８のデータ変換部１８１の「Ｅｎａｂｌｅ」入力に接続されている（図６参照）。
【００２８】
以上のように構成された遷移カウンタ１２は、プリアンブル受信期間中において、受信データの遷移数を算出する。遷移カウンタ１２においては、Ｄ−ＦＦ１２４の変数である「ｅｄｇｅ＿ｃｏｕｎｔ」が、受信データの遷移数を示す変数として扱われる。
なお、本実施形態においては、受信データの遷移数を算出する際には、立ち上がりエッジおよび立ち下りエッジの両方がカウントされる。しかしながら、立ち上がりエッジおよび立ち下りエッジのいずれか一方のみをカウントする構成としてもよい。
【００２９】
図６に示すように、ステートマシン１３は、マルチプレクサであるＭＵＸ１３１と、Ｄ型フリップフロップであるＤ−ＦＦ１３２とから構成されている。
【００３０】
ＭＵＸ１３１の「０」側の入力には、遷移カウンタ１２の比較器１２７の出力が接続され（図５参照）、ＭＵＸ１３１の「１」側の入力には、後述の復号器１８のＮＯＲゲート１８６の出力が接続されている。ＭＵＸ１３１の出力は、Ｄ−ＦＦ１３２の入力に接続されている。
Ｄ−ＦＦ１３２の出力は、ＭＵＸ１３１の選択制御入力に接続されている。
【００３１】
以上のように構成されたステートマシン１３においては、遷移カウンタ１２の比較器１２７の出力が０の場合（ｅｄｇｅ＿ｃｏｕｎｔ≠８）、つまり、プリアンブルを受信中である場合は、Ｄ−ＦＦ１３２の変数である「ｓｔａｔｅ」が０を維持し、遷移カウンタ１２の比較器１２７の出力が１となった場合（ｅｄｇｅ＿ｃｏｕｎｔ＝８）、つまり、プリアンブルの受信が完了した場合に、Ｄ−ＦＦ１３２の変数である「ｓｔａｔｅ」が１となる。
【００３２】
図５に示すように、β演算器１４は、ＡＮＤゲート１４０と、２つのマルチプレクサであるＭＵＸ１４１・１４２と、Ｄ型フリップフロップであるＤ−ＦＦ１４３と、加算器１４４と、比較器１４５とから構成されている。なお、β演算器１４の構成要素の間で入出力されるデータの長さは、６ビットである。
【００３３】
ＡＮＤゲート１４０の出力は、ＭＵＸ１４１の選択制御入力に接続されている。
ＭＵＸ１４１の出力は、ＭＵＸ１４２の「０」側の入力に接続されている。
ＭＵＸ１４２の選択制御入力には、「ｓｔａｔｅ」が入力され、ＭＵＸ１４２の出力は、Ｄ−ＦＦ１４３の入力に接続されている。さらに、ＭＵＸ１４２の出力は、後述の窓時間演算器１５のシフト演算器１５０１・１５０２・１５０３の入力、および加算器１５０４・１５０５の「Ａ」側の入力に接続されている（図１０参照）。
Ｄ−ＦＦ１４３の出力は、加算器１４４の「Ｂ」側の入力、比較器１４５の「Ａ」側の入力、ＭＵＸ１４２の「１」側の入力、およびＭＵＸ１４１の「０」側の入力に接続されている。
加算器１４４の「Ａ」側の入力には、１が入力され、加算器１４４の出力は、ＭＵＸ１４１の「１」側の入力に接続されている。加算器１４４は、「Ａ」側の入力値と、「Ｂ」側の入力値との合計（Ａ＋Ｂ）を出力する。
比較器１４５の「Ｂ」側の入力には、６３が入力され、比較器１４５の出力は、ＡＮＤゲート１４０の他方の入力に接続されている。比較器１４５は、「Ａ」側の入力値が「Ｂ」側の入力値（６３）よりも小さい場合（Ａ＜Ｂ）に１を出力し、それ以外の場合に０を出力する。
【００３４】
以上のように構成されたβ演算器１４は、プリアンブル受信期間中の受信機１のクロックカウント数を算出する。β演算器１４においては、Ｄ−ＦＦ１４３の変数である「ｂｅｔａ＿ｃｏｕｎｔ」が、プリアンブル受信期間中の受信機１のクロックカウント数を示す変数として扱われる。
ここで、受信機１（受信データ復元装置）のオーバーサンプリング率βを、「ｂｅｔａ＿ｃｏｕｎｔ」を用いて数式で表すと、下記の数１のように表すことができる。
【００３５】
【数１】
0006333166.tif 000010
【００３６】
数１における「ｐｒｅ＿ｌｅｎｇｔｈ」は、プリアンブルの長さである。
本実施形態において、「ｐｒｅ＿ｌｅｎｇｔｈ」は、予め設定された定数であり、８が入力されている。
【００３７】
数１に示すように、オーバーサンプリング率βは、プリアンブル受信期間中の受信機１のクロックカウント数を、プリアンブルの長さで除することによって算出される。
なお、プリアンブルの長さが２ｎビット（本実施形態においては、８）である場合には、プリアンブル受信期間中の受信機１のクロックカウント数（２進数）を、ｎビット右シフトすることによってオーバーサンプリング率βが算出可能である。そのため、プリアンブルの長さを２ｎビットとすることにより、受信機１の構造を簡略化できる。
【００３８】
上記の数１を変換すると、「ｂｅｔａ＿ｃｏｕｎｔ」は、オーバーサンプリング率βに、「ｐｒｅ＿ｌｅｎｇｔｈ」を乗じたものとなる。本実施形態において、「ｐｒｅ＿ｌｅｎｇｔｈ」は、８であるため、「ｂｅｔａ＿ｃｏｕｎｔ」は、８βとなる。
プリアンブルの受信が完了したら、「ｓｔａｔｅ」が０から１に切り替わるので（図６参照）、β演算器１４が停止する。そして、８βが窓時間演算器１５（図１０参照）に入力される。換言すれば、β演算器１４がオーバーサンプリング率βを算出することとなる。
なお、本実施形態において、プリアンブル受信期間中の受信機１のクロックカウント数は、２４となっている（ｂｅｔａ＿ｃｏｕｎｔ＝２４、β＝３）。
【００３９】
図７に、本実施形態における、プリアンブル受信期間中の、遷移カウンタ１２およびβ演算器１４の動作を示すタイミングチャートを示す。
なお、図７における「ＣＬＫ」は、受信機１のクロックを示している。
【００４０】
以下では、図８を参照して、プリアンブル受信期間中の、遷移カウンタ１２およびβ演算器１４の動作態様を説明する。
図８は、プリアンブル受信期間中の、遷移カウンタ１２およびβ演算器１４の動作を示すフローチャートである。
【００４１】
図８に示すように、まず、ステップＳ１において、「ｂｅｔａ＿ｃｏｕｎｔ」および「ｅｄｇｅ＿ｃｏｕｎｔ」の初期化、つまり、「ｂｅｔａ＿ｃｏｕｎｔ」および「ｅｄｇｅ＿ｃｏｕｎｔ」への０の代入が行われる（ｂｅｔａ＿ｃｏｕｎｔ＝０、ｅｄｇｅ＿ｃｏｕｎｔ＝０）。
ステップＳ１の後は、ステップＳ２が行われる。
【００４２】
ステップＳ２においては、受信機１のクロックが立ち上がったか否かが判定される。
受信機１のクロックの立ち上がりが検出されるまで、ステップＳ２を繰り返し、受信機１のクロックの立ち上がりが検出された場合には、ステップＳ３が行われる。
【００４３】
ステップＳ３においては、「ｅｄｇｅ＿ｃｏｕｎｔ」が０より大きいか否かが判定される。「ｅｄｇｅ＿ｃｏｕｎｔ」が０より大きいことは、受信データ中で最初に遷移が生じたこと、つまり、プリアンブルの先頭ビットの１が受信されたことを意味する。
「ｅｄｇｅ＿ｃｏｕｎｔ」が０より大きい場合（ｅｄｇｅ＿ｃｏｕｎｔ＞０）は、ステップＳ４が行われ、それ以外の場合には、ステップＳ５が行われる。
【００４４】
ステップＳ４においては、「ｂｅｔａ＿ｃｏｕｎｔ」のインクリメントが行われる（ｂｅｔａ＿ｃｏｕｎｔ＝ｂｅｔａ＿ｃｏｕｎｔ＋１）。つまり、受信機１のクロックカウント数がカウントアップされる。
ステップＳ４の後は、ステップＳ５が行われる。
【００４５】
ステップＳ５においては、受信データ中でエッジが検出されたか否かが判定される。
受信データ中でエッジが検出された場合は、ステップＳ６が行われ、検出されなかった場合には、ステップＳ２に戻る。
【００４６】
ステップＳ６においては、「ｅｄｇｅ＿ｃｏｕｎｔ」のインクリメントが行われる（ｅｄｇｅ＿ｃｏｕｎｔ＝ｅｄｇｅ＿ｃｏｕｎｔ＋１）。つまり、受信データの遷移数がカウントアップされる。
ステップＳ６の後は、ステップＳ７が行われる。
【００４７】
ステップＳ７においては、受信データの遷移数を示す「ｅｄｇｅ＿ｃｏｕｎｔ」が、プリアンブルの遷移数を示す「ｐｒｅ＿ｃｏｕｎｔ」と等しいか否かが判定される。
ここで、「ｐｒｅ＿ｃｏｕｎｔ」は、「ｐｒｅ＿ｌｅｎｇｔｈ」と同様に、予め設定される定数である。前述のように、本実施形態において、プリアンブルの遷移数は、９である（ｐｒｅ＿ｃｏｕｎｔ＝９）。
【００４８】
上記のように、ステップＳ７においては、受信データの遷移数を示す「ｅｄｇｅ＿ｃｏｕｎｔ」が、プリアンブルの遷移数を示す「ｐｒｅ＿ｃｏｕｎｔ」と等しいか否かが判定されるが、これは、プリアンブルの受信が完了したか否かを判定しているのである。
「ｅｄｇｅ＿ｃｏｕｎｔ」が「ｐｒｅ＿ｃｏｕｎｔ」と等しい場合（ｅｄｇｅ＿ｃｏｕｎｔ＝ｐｒｅ＿ｃｏｕｎｔ）は、ステップＳ８が行われ、それ以外の場合には、ステップＳ２に戻る。
【００４９】
ステップＳ８においては、前記の数１に基づいて、オーバーサンプリング率βが算出される。
【００５０】
以上のように、プリアンブル受信期間において、遷移カウンタ１２およびβ演算器１４が動作する。
【００５１】
前述のように、β演算器１４から出力された８βは、窓時間演算器１５に入力される（図５および図１０参照）。
以下では、窓時間演算器１５について説明する。
窓時間演算器１５は、β演算器１４の出力（８β）に基づいて、サンプリング窓時間Ｔ０・Ｔ１・Ｔ２を算出する装置である。
ここで、「サンプリング窓時間」とは、復元対象となる１ビットのデータを抽出するための時間幅である。換言すれば、シフトレジスタ１７（図６参照）に入力される「ｓｅｒｉａｌ＿ｅｄｇｅ」の値が確定される時間幅である。
【００５２】
サンプリング窓時間Ｔ０・Ｔ１・Ｔ２は、受信データの遷移の有無に応じて選択される。
受信データに遷移が検出された場合は、そのビットを抽出するためのサンプリング窓時間Ｔ０が選択される。そして、次のビットで遷移が検出されなかった場合は、当該ビットを抽出するためのサンプリング窓時間Ｔ１が選択され、さらに次のビットで遷移が検出されなかった場合は、当該ビットを抽出するためのサンプリング窓時間Ｔ２が選択される。
このように、受信データに遷移が検出された場合に選択されるサンプリング窓時間Ｔ０を基準として、遷移が検出されない場合は、サンプリング窓時間Ｔ１、サンプリング窓時間Ｔ２と、順に選択されることとなる。
なお、本実施形態においては、受信データ中に「０」が３個以上連続しないように４Ｂ５Ｂ符号化が行われているため、３つのサンプリング窓時間Ｔ０・Ｔ１・Ｔ２が存在することとなる。
【００５３】
ここでは、サンプリング窓時間の算出方法について説明する。
受信機１において、受信された１ビットのデータは、オーバーサンプリング率βのクロック間隔で現れるといえる。
図９は、経過時間と、受信された１ビットのデータの検出確率との関係を示すグラフである。
図９に示すように、正規分布を仮定すると、受信データに遷移が検出された場合（「ｓｅｒｉａｌ＿ｅｄｇｅ」が１の場合）、次のビットは、遷移から１．５βクロック後（βと２βとの中間点）には、確実に現れるとみなせる。なお、説明の便宜上、遷移が検出されたビットを「１番目のビット」、次のビットを「２番目のビット」、さらに次のビットを「３番目のビット」と記す。
したがって、１番目のビットを抽出するためのサンプリング窓時間Ｔ０は、下記の数２のように表すことができる。
なお、プリアンブルは「１」から始まるため、受信データは立ち上がりで開始、つまり、遷移から開始される。
【００５４】
【数２】
0006333166.tif 000011
【００５５】
数２における「ｆｌｏｏｒ」は、引数の小数点以下を切り捨てる関数である。
クロック数は整数であるため、ｆｌｏｏｒ関数を使用している。
【００５６】
２番目のビットで遷移が検出されない場合（「ｓｅｒｉａｌ＿ｅｄｇｅ」が１、０と続いた場合）、２番目のビットを抽出するためのサンプリング窓時間の終点は、２βと３βとの中間点である２．５βであればよい。
したがって、２番目のビットを抽出するためのサンプリング窓時間Ｔ１は、下記の数３のように表すことができる。
【００５７】
【数３】
0006333166.tif 000012
【００５８】
なお、２番目のビットで遷移が検出された場合（「ｓｅｒｉａｌ＿ｅｄｇｅ」が１、１と続いた場合）は、２番目のビットを１番目のビットとみなして以下同様の処理を行う。つまり、サンプリング窓時間が、Ｔ０、Ｔ０の順で選択される。この場合、１番目のビットを抽出するためのサンプリング窓時間の終点は、２番目のビットを抽出するためのサンプリング窓時間の始点に設定される。
【００５９】
２番目のビットで遷移が検出されず、３番目のビットでも遷移が検出されない場合（「ｓｅｒｉａｌ＿ｅｄｇｅ」が１、０、０と続いた場合）、３番目のビットを抽出するためのサンプリング窓時間の終点は、３βと４βとの中間点である３．５βであればよい。
したがって、３番目のビットを抽出するためのサンプリング窓時間Ｔ２は、下記の数４のように表すことができる。
【００６０】
【数４】
0006333166.tif 000013
【００６１】
なお、２番目のビットで遷移が検出されず、３番目のビットで遷移が検出された場合（「ｓｅｒｉａｌ＿ｅｄｇｅ」が１、０、１と続いた場合）は、３番目のビットを１番目のビットとみなして以下同様の処理を行う。つまり、サンプリング窓時間が、Ｔ０、Ｔ１、Ｔ０の順で選択される。この場合、２番目のビットを抽出するためのサンプリング窓時間の終点は、３番目のビットを抽出するためのサンプリング窓時間の始点に設定される。
【００６２】
前述のように、本実施形態においては、受信データ中に「０」が３個以上連続しないように４Ｂ５Ｂ符号化が行われているため、３つのサンプリング窓時間Ｔ０・Ｔ１・Ｔ２が設定される。しかしながら、このような４Ｂ５Ｂ符号化が行われない場合、または他の符号化が行われる場合には、受信データ中に「０」が３個以上連続する可能性があるため、サンプリング窓時間を３つ以上設定する必要がある。
このような事情を考慮すると、サンプリング窓時間は、下記の数５および数６のように表すことができる。
【００６３】
【数５】
0006333166.tif 000014
【数６】
0006333166.tif 000015
【００６４】
数５および数６における「ａ」は、上記のように正規分布を仮定した場合、０である。「ａ」は、受信機１のクロック、および送信機２のクロックのばらつき分布により、−０．２〜＋０．２の範囲内で適宜調整すればよい。
【００６５】
また、サンプリング窓時間Ｔｐの算出には、上記の数６に代えて、下記の数７を用いることも可能である。
なお、数６を用いたサンプリング窓時間Ｔｐの算出結果、および数７を用いたサンプリング窓時間Ｔｐの算出結果は同一である。
【００６６】
【数７】
0006333166.tif 000016
【００６７】
なお、本実施形態においては、サンプリング窓時間を算出する式に、引数の小数点以下を切り捨てるｆｌｏｏｒ関数を用いているが、引数の小数点以下を切り上げるｃｅｉｌ関数を、ｆｌｏｏｒ関数に代えて用いることも可能である。
例えば、受信データ中に「０」が３個以上連続しないように４Ｂ５Ｂ符号化を行った場合に、下記の数８のようにサンプリング窓時間Ｔ０・Ｔ１・Ｔ２を算出することも可能である。
【数８】
0006333166.tif 000017
【００６８】
図１０に示すように、窓時間演算器１５は、３つのシフト演算器１５０１・１５０２・１５０３と、３つの加算器１５０４・１５０５・１５０６と、２つのシフト演算器１５０７・１５０８と、３つの減算器１５０９・１５１０・１５１１と、２つのシフト演算器１５１２・１５１３とから構成されている。なお、窓時間演算器１５の構成要素の間で入出力されるデータの長さは、８ビットである。
【００６９】
β演算器１４の出力（８β）は、シフト演算器１５０１・１５０２・１５０３、および加算器１５０４・１５０５の「Ａ」側の入力に入力される。
シフト演算器１５０１の出力は、加算器１５０４の「Ｂ」側の入力に接続されている。シフト演算器１５０１は、入力値を１ビット右シフトした値を出力する。
シフト演算器１５０２の出力は、加算器１５０５の「Ｂ」側の入力に接続されている。シフト演算器１５０２は、入力値を２ビット右シフトした値を出力する。
シフト演算器１５０３の出力は、加算器１５０６の「Ａ」側の入力に接続されている。シフト演算器１５０３は、入力値を１ビット右シフトした値を出力する。
加算器１５０４の出力は、シフト演算器１５０７の入力に接続されている。加算器１５０４は、「Ａ」側の入力値と、「Ｂ」側の入力値との合計（Ａ＋Ｂ）を出力する。
加算器１５０５の出力は、減算器１５０９の「Ａ」側の入力、および加算器１５０６の「Ｂ」側の入力に接続されている。加算器１５０５は、「Ａ」側の入力値と、「Ｂ」側の入力値との合計（Ａ＋Ｂ）を出力する。
加算器１５０６の出力は、減算器１５１０の「Ａ」側の入力に接続されている。加算器１５０６は、「Ａ」側の入力値と、「Ｂ」側の入力値との合計（Ａ＋Ｂ）を出力する。
シフト演算器１５０７の出力は、シフト演算器１５０８の入力に接続されている。シフト演算器１５０７は、入力値を３ビット右シフトした値を出力する。シフト演算器１５０７の出力値は、サンプリング窓時間Ｔ０である。
シフト演算器１５０８の出力は、減算器１５０９・１５１０の「Ｂ」側の入力に接続されている。シフト演算器１５０８は、入力値を２ビット左シフトした値を出力する。
減算器１５０９の出力は、シフト演算器１５１２の入力、および減算器１５１１の「Ｂ」側の入力に接続されている。減算器１５０９は、「Ａ」側の入力値から「Ｂ」側の入力値を引いた値（Ａ−Ｂ）を出力する。
減算器１５１０の出力は、減算器１５１１の「Ａ」側の入力に接続されている。減算器１５１０は、「Ａ」側の入力値から「Ｂ」側の入力値を引いた値（Ａ−Ｂ）を出力する。
減算器１５１１の出力は、シフト演算器１５１３の入力に接続されている。減算器１５１１は、「Ａ」側の入力値から「Ｂ」側の入力値を引いた値（Ａ−Ｂ）を出力する。
シフト演算器１５１２は、入力値を２ビット右シフトした値を出力する。シフト演算器１５１２の出力値は、サンプリング窓時間Ｔ１である。
シフト演算器１５１３は、入力値を２ビット右シフトした値を出力する。シフト演算器１５１３の出力値は、サンプリング窓時間Ｔ２である。
【００７０】
以上のように構成された窓時間演算器１５は、サンプリング窓時間Ｔ０・Ｔ１・Ｔ２を算出可能となっている。
サンプリング窓時間Ｔ０・Ｔ１・Ｔ２を算出するための式が示された上記の数２〜数４は、下記の数９〜数１１の如く、窓時間演算器１５の入力値である８βを用いた式に変換することができる。
窓時間演算器１５は、下記の数９〜数１１における下段の式を実現するように構成されているのである。
【００７１】
【数９】
0006333166.tif 000018
【数１０】
0006333166.tif 000019
【数１１】
0006333166.tif 000020
【００７２】
なお、窓時間演算器１５は、受信データの処理が行われる度に、サンプリング窓時間Ｔ０・Ｔ１・Ｔ２を算出するように構成してもよいし、予めサンプリング窓時間Ｔ０・Ｔ１・Ｔ２を算出しておき、以後その算出値を参照できるように構成してもよい。
【００７３】
図１１に示すように、窓時間カウンタ１６は、４つのマルチプレクサであるＭＵＸ１６１・１６２・１６３・１６４と、減算器１６５と、Ｄ型フリップフロップであるＤ−ＦＦ１６６と、比較器１６７と、ＮＯＲゲート１６８とから構成されている。なお、窓時間カウンタ１６の構成要素の間で入出力されるデータの長さは、８ビットである。
【００７４】
ＭＵＸ１６１の「１」側の入力には、サンプリング窓時間Ｔ１が入力され、ＭＵＸ１６１の「０」側の入力には、サンプリング窓時間Ｔ２が入力される。ＭＵＸ１６１の選択制御入力には、「ｃｏｄｅｄ＿ｓｙｍｂｏｌ［０］」が入力され、ＭＵＸ１６１の出力は、ＭＵＸ１６２の「１」側の入力に接続されている。「ｃｏｄｅｄ＿ｓｙｍｂｏｌ」は、シフトレジスタ１７の変数である（図６参照）。シフトレジスタ１７は、５つのＤ型フリップフロップを有し、直列入力並列出力形（Ｓｅｒｉａｌ−Ｉｎ  Ｐａｒａｌｌｅｌ−Ｏｕｔ：ＳＩＰＯ）のシフトレジスタとして構成されている。シフトレジスタ１７の５つのＤ型フリップフロップの変数は、上流側から「ｃｏｄｅｄ＿ｓｙｍｂｏｌ［０］」、「ｃｏｄｅｄ＿ｓｙｍｂｏｌ［１］」、「ｃｏｄｅｄ＿ｓｙｍｂｏｌ［２］」、「ｃｏｄｅｄ＿ｓｙｍｂｏｌ［３］」、および「ｃｏｄｅｄ＿ｓｙｍｂｏｌ［４］」と定義されている。
シフトレジスタ１７に入力される「ｓｅｒｉａｌ＿ｅｄｇｅ」は、「ｃｏｄｅｄ＿ｓｙｍｂｏｌ［０］」、「ｃｏｄｅｄ＿ｓｙｍｂｏｌ［１］」、「ｃｏｄｅｄ＿ｓｙｍｂｏｌ［２］」、「ｃｏｄｅｄ＿ｓｙｍｂｏｌ［３］」、および「ｃｏｄｅｄ＿ｓｙｍｂｏｌ［４］」を、順にシフトしていくこととなる。
そのため、「ｃｏｄｅｄ＿ｓｙｍｂｏｌ［０］」の値は、１つ前の「ｓｅｒｉａｌ＿ｅｄｇｅ」の値である。
さらに、「ｃｏｄｅｄ＿ｓｙｍｂｏｌ［１］」の値は、２つ前の「ｓｅｒｉａｌ＿ｅｄｇｅ」の値であり、「ｃｏｄｅｄ＿ｓｙｍｂｏｌ［２］」の値は、３つ前の「ｓｅｒｉａｌ＿ｅｄｇｅ」の値であり、「ｃｏｄｅｄ＿ｓｙｍｂｏｌ［３］」の値は、４つ前の「ｓｅｒｉａｌ＿ｅｄｇｅ」の値であり、「ｃｏｄｅｄ＿ｓｙｍｂｏｌ［４］」の値は、５つ前の「ｓｅｒｉａｌ＿ｅｄｇｅ」の値である。
【００７５】
ＭＵＸ１６２の選択制御入力には、「ｂｉｔ＿ｅｘｐｉｒｅｄ」が入力され、ＭＵＸ１６２の出力は、ＭＵＸ１６３の「０」側の入力に接続されている。
ＭＵＸ１６３の「１」側の入力には、サンプリング窓時間Ｔ０が入力されている。ＭＵＸ１６３の選択制御入力には、「ｓｅｒｉａｌ＿ｅｄｇｅ」が入力され、ＭＵＸ１６３の出力は、ＭＵＸ１６４の「１」側の入力に接続されている。
ＭＵＸ１６４の「０」側の入力には、サンプリング窓時間Ｔ０が入力されている。ＭＵＸ１６４の選択制御入力には、「ｓｔａｔｅ」が入力され、ＭＵＸ１６４の出力は、減算器１６５の「Ａ」側の入力に接続されている。
減算器１６５の「Ｂ」側の入力には、１が入力され、減算器１６５の出力は、Ｄ−ＦＦ１６６の入力に接続されている。減算器１６５は、「Ａ」側の入力値から「Ｂ」側の入力値を引いた値（Ａ−Ｂ）を出力する。
Ｄ−ＦＦ１６６の出力は、ＭＵＸ１６２の「０」側の入力、および比較器１６７の「Ａ」側の入力に接続されている。
比較器１６７の「Ｂ」側の入力には、０が入力され、比較器１６７の出力は、ＮＯＲゲート１６８の一方の入力に接続されている。比較器１６７は、「Ａ」側の入力値と、「Ｂ」側の入力値（０）とが等しい場合（Ａ＝Ｂ）に１を出力し、それ以外の場合に０を出力する。比較器１６７の出力値は、「ｂｉｔ＿ｅｘｐｉｒｅｄ」とされる。
ＮＯＲゲート１６８の他方の入力には、「ｂｉｔ＿ｅｘｐｉｒｅｄ」が入力され、ＮＯＲゲート１６８の出力は、「ｂｉｔ＿ｒｅａｄｙ」とされる。
「ｂｉｔ＿ｒｅａｄｙ」は、シフトレジスタ１７の「Ｅｎａｂｌｅ」入力に入力されており（図６参照）、「ｂｉｔ＿ｒｅａｄｙ」が「１」となった場合に、シフトレジスタ１７に「ｓｅｒｉａｌ＿ｅｄｇｅ」が入力されることとなる。
【００７６】
以上のように構成された窓時間カウンタ１６においては、Ｄ−ＦＦ１６６の変数である「ｔｉｍｅｒ」が、サンプリング窓時間を示す変数として扱われる。
【００７７】
前述のように、シフトレジスタ１７には、「ｓｅｒｉａｌ＿ｅｄｇｅ」が、サンプリング窓時間Ｔ０・Ｔ１・Ｔ２に応じたタイミングで間欠的に入力され、「ｃｏｄｅｄ＿ｓｙｍｂｏｌ［０］」、「ｃｏｄｅｄ＿ｓｙｍｂｏｌ［１］」、「ｃｏｄｅｄ＿ｓｙｍｂｏｌ［２］」、「ｃｏｄｅｄ＿ｓｙｍｂｏｌ［３］」、および「ｃｏｄｅｄ＿ｓｙｍｂｏｌ［４］」を、順にシフトしていく。
したがって、シフトレジスタ１７の「ｃｏｄｅｄ＿ｓｙｍｂｏｌ［４］」、「ｃｏｄｅｄ＿ｓｙｍｂｏｌ［３］」、「ｃｏｄｅｄ＿ｓｙｍｂｏｌ［２］」、「ｃｏｄｅｄ＿ｓｙｍｂｏｌ［１］」、「ｃｏｄｅｄ＿ｓｙｍｂｏｌ［０］」の値を順に並べたものが、復号器１８によって復号される５ビットのシンボルである。
【００７８】
図６に示すように、復号器１８は、データ変換部１８１と、４つのＤ型フリップフロップであるＤ−ＦＦ１８２・１８３・１８４・１８５と、ＮＯＲゲート１８６とから構成されている。
【００７９】
データ変換部１８１は、シフトレジスタ１７と電気的に接続されており、「ｃｏｄｅｄ＿ｓｙｍｂｏｌ［４］」〜「ｃｏｄｅｄ＿ｓｙｍｂｏｌ［０］」が入力される。
本実施形態において、データ変換部１８１は、図１２に示す変換テーブルに基づいて、シフトレジスタ１７内の５ビットのシンボル、つまり、「ｃｏｄｅｄ＿ｓｙｍｂｏｌ［４］」〜「ｃｏｄｅｄ＿ｓｙｍｂｏｌ［０］」を４ビットのデータとして復号する。
【００８０】
図６に示すように、データ変換部１８１は、復号した４ビットのデータをＤ−ＦＦ１８２に出力する。Ｄ−ＦＦ１８２の変数である「ｄｅｃｏｄｅｄ＿ｓｙｍｂｏｌ」は、復号された４ビットのデータを示す変数である。
また、データ変換部１８１は、復号終了後に、１をＤ−ＦＦ１８３に出力する。Ｄ−ＦＦ１８３の変数は、復号終了後に「１」となり、それ以外は「０」となる「ｓｙｍｂｏｌ＿ｒｅａｄｙ」である。
また、データ変換部１８１は、復号したデータが終端記号であった場合、ＮＯＲゲート１６８の一方の入力、およびＤ−ＦＦ１８４に、１を出力し、それ以外は、０を出力する。
また、データ変換部１８１は、復号したデータが無効であった場合、ＮＯＲゲート１６８の他方の入力、およびＤ−ＦＦ１８５に、１を出力し、それ以外は、０を出力する。
なお、復号したデータが無効であるか否かの判定は、ＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）などの誤り検出、ＮＺＲＩ逆変換、または４Ｂ５Ｂ逆変換などによって実現可能である。また、復号したデータが４Ｂ５Ｂの変換テーブルに存在しない場合、復号したデータの終端記号が異なる場合、所定の時間信号が途絶えた場合、または所定の時間経過しても終端記号が検出できない場合などに、復号したデータが無効であると判定してもよい。
【００８１】
図１３に、本実施形態における、プリアンブル受信期間後の、窓時間カウンタ１６、シフトレジスタ１７、および復号器１８の動作を示すタイミングチャートを示す。
図１３には、５ビットのシンボルである「０１００１」および「０１１１１」が、図１２に示す変換テーブルに基づいて、４ビットのデータである「１１１１」（１６進数表記では、「Ｆ」）および「１０００」（１６進数表記では、「８」）に復号される様子が示されている。
なお、図１３における「ＣＬＫ」は、受信機１のクロックを示している。
【００８２】
以下では、図１４を参照して、プリアンブル受信期間後の、窓時間カウンタ１６、シフトレジスタ１７、および復号器１８の動作態様を説明する。
図１４は、プリアンブル受信期間後の、窓時間カウンタ１６、シフトレジスタ１７、および復号器１８の動作を示すフローチャートである。
【００８３】
図１４に示すように、まず、ステップＳ１１において、「ｐ」および「ｅｄｇｅ＿ｃｏｕｎｔ」の初期化、つまり、「ｐ」および「ｅｄｇｅ＿ｃｏｕｎｔ」への０の代入が行われる（ｐ＝０、ｅｄｇｅ＿ｃｏｕｎｔ＝０）。
ステップＳ１１の後は、ステップＳ１２が行われる。
【００８４】
ステップＳ１２においては、「ｔｉｍｅｒ」に、サンプリング窓時間である「Ｔｐ」が代入される。
ステップＳ１２の後は、ステップＳ１３が行われる。
【００８５】
ステップＳ１３においては、「ｔｉｍｅｒ」のデクリメントが行われる（ｔｉｍｅｒ＝ｔｉｍｅｒ−１）。
ステップＳ１３の後は、ステップＳ１４が行われる。
【００８６】
ステップＳ１４においては、受信機１のクロックが立ち上がるまで待機する。
ステップＳ１４の後は、ステップＳ１５が行われる。
【００８７】
ステップＳ１５においては、受信データ中でエッジが検出されたか否かが判定される。
受信データ中でエッジが検出された場合は、ステップＳ１６が行われ、検出されなかった場合には、ステップＳ１７が行われる。
【００８８】
ステップＳ１６においては、「ｐ」に０が代入される（ｐ＝０）。
ステップＳ１６の後は、ステップＳ１９が行われる。
【００８９】
ステップＳ１７においては、「ｔｉｍｅｒ」が０であるか否かが判定される。
「ｔｉｍｅｒ」が０である場合は、ステップＳ１８が行われ、０でない場合には、ステップＳ１３に戻る。
【００９０】
ステップＳ１８においては、「ｐ」のインクリメントが行われる（ｐ＝ｐ＋１）。なお、本実施形態においては、３つのサンプリング窓時間Ｔ０・Ｔ１・Ｔ２のみが存在するため、ｐが２を上回る場合の処理は行われない。
ステップＳ１８の後は、ステップＳ１９が行われる。
【００９１】
ステップＳ１９においては、「ｓｅｒｉａｌ＿ｅｄｇｅ」がシフトレジスタ１７に入力される。
ステップＳ１９の後は、ステップＳ２０が行われる。
【００９２】
ステップＳ２０においては、シフトレジスタ１７に入力された５ビットのシンボルが有効であるか否かが判定される。換言すれば、シフトレジスタ１７の「ｃｏｄｅｄ＿ｓｙｍｂｏｌ［４］」〜「ｃｏｄｅｄ＿ｓｙｍｂｏｌ［０］」に値が正常に格納されているか否かが判定される。
５ビットのシンボルが有効である場合には、ステップＳ２１が行われ、無効である場合には、ステップＳ２２が行われる。
【００９３】
ステップＳ２１においては、「ｅｄｇｅ＿ｃｏｕｎｔ」に０が代入される（ｅｄｇｅ＿ｃｏｕｎｔ＝０）。
ステップＳ２１の後は、ステップＳ２３が行われる。
【００９４】
ステップＳ２２においては、「ｅｄｇｅ＿ｃｏｕｎｔ」のインクリメントが行われる（ｅｄｇｅ＿ｃｏｕｎｔ＝ｅｄｇｅ＿ｃｏｕｎｔ＋１）。
ステップＳ２２の後は、ステップＳ１２に戻る。
【００９５】
ステップＳ２３においては、５ビットのシンボルが復号器１８によって４ビットのデータに復号される。
ステップＳ２３の後は、ステップＳ２４が行われる。
【００９６】
ステップＳ２４においては、復号されたデータが終端記号であるか否かが判定される。
復号されたデータが終端記号である場合には、復号処理が終了し、終端記号ではない場合には、ステップＳ１２に戻る。
【００９７】
以上のように構成された受信機１は、位相同期回路を有しないため、ＶＣＯからのノイズを受けることがない。さらに、受信機１は、位相補間回路を有しないため、高精度のクロックが不要である。
【符号の説明】
【００９８】
１    受信機（受信データ復元装置）
２    送信機
１１  遷移検出器
１２  遷移カウンタ
１３  ステートマシン
１４  β演算器
１５  窓時間演算器
１６  窓時間カウンタ
１７  シフトレジスタ
１８  復号器
【図１】
0006333166.tif 000030
【図２】
0006333166.tif 000031
【図３】
0006333166.tif 000032
【図４】
0006333166.tif 000033
【図５】
0006333166.tif 000034
【図６】
0006333166.tif 000035
【図７】
0006333166.tif 000036
【図８】
0006333166.tif 000037
【図９】
0006333166.tif 000038
【図１０】
0006333166.tif 000039
【図１１】
0006333166.tif 000040
【図１２】
0006333166.tif 000041
【図１３】
0006333166.tif 000042
【図１４】
0006333166.tif 000043