(54)【発明の名称】プラスチック光ファイバを介して伝送されるようデジタルデータを符号化するための方法、2レベル剰余類コーダで符号化されプラスチック光ファイバを介して受信されたデジタル信号を復号するための方法、プラスチック光ファイバを介して伝送されるようデジタルデータを符号化するための装置、2レベル剰余類コーダで符号化されプラスチック光ファイバを介して受信されたデジタル信号を復号するための装置、および集積回路
【氏名又は名称原語表記】KNOWLEDGE DEVELOPMENT FOR PLASTIC OPTICAL FIBERS,SOCIEDAD LIMITADA
【文献】
Pedro Reviriego et al.,Introducing Energy Efficiency in the VDE 0885-763 Standard for High Speed Communication over Plastic Optical Fibers,IEEE Communications Magazine,2013年 8月,pp.97-102
【文献】
Yixuan Wang et al.,3Gbit/s Transmission over Plastic Optical Fiber with Adaptive Tomlinson-Harashima Precoded Systems,2013 IEEE International Conference on Consumer Electronics(ICCE),2013年,pp.629-632
(58)【調査した分野】(Int.Cl.,DB名)
前記第1の予め規定されたマルチレベル直交振幅変調配置は、グレーマッピングされた16−QAMであるのに対して、前記第2の予め規定されたマルチレベル直交振幅変調配置は、RZ2格子マッピングされた8−QAMである、請求項1に記載の方法。
前記第1段格子変換は、シンボルの転換、スケーリングおよび/もしくは回転を含み、ならびに/または、前記第2段格子変換は、配置の回転、および/または、配置シンボルを第1の2D象限における正方形領域に制限するためのモジュロ演算、および/または、センタリングおよびスケーリングを含む、請求項1または2に記載の方法。
前記第1の予め規定されたマルチレベル直交振幅変調配置は、グレーマッピングされた16−QAMであるのに対して、前記第2の予め規定されたマルチレベル直交振幅変調配置は、RZ2格子マッピングされた8−QAMである、請求項8に記載の装置。
前記第1段格子変換は、シンボルの転換、スケーリングおよび/もしくは回転を含み、ならびに/または、前記第2段格子変換は、配置の回転、および/または、配置シンボルを第1の2D象限における正方形領域に制限するためのモジュロ演算、および/または、センタリングおよびスケーリングを含む、請求項8または9に記載の装置。
【発明を実施するための形態】
【0028】
詳細な説明
本発明の課題は、光ガラスファイバで一般に用いられる技術が、プラスチック光ファイバを介するデータ伝送を有効に行なうには十分ではないという観察に基づいている。ガラス光ファイバ、無線または銅チャネルと比べたプラスチック光ファイバチャネルの特性間の差により、このようなチャネル向けに開発および採用された技術はプラスチック光ファイバに直接適用可能ではない。本発明の1つの狙いは、POFを介した高スペクトル効率のデータ通信を可能にすることである。さらに、より高度な方策は、しばしばより高いレイテンシに関連付けられる。
【0029】
通信システムを設計するための一般的な基準のうち1つは、チャネルの容量を最大限にすることである。チャネル容量限界は、チャネルの入力および出力での確率変数の最大相互情報として規定されるレートにシャノン限界を用いて、情報理論に従い計算することができる。しかし実際にはこのような理論的限界を達成するのは難しい。特にこれは実際に用いられるエレメントが一般に理想的特性を有さないことによるものである。通信システムを設計する際の他の重要なファクタは、実施複雑度の面における効率であり、これはプロダクトのコストおよび実現可能性ならびにその待ち時間に直接影響する。
【0030】
図2Aは、M−PAM変調を有するTHPの既知の採用を示す。トムリンソン−ハラシマプリコーダは、DFE(Decision Feedback Equalization:判断フィードバック等価)構造のフィードバックフィルタ230を送信装置に移し、モジュロ演算子310と結合させて、ポストカーソルISI補正信号を対応するM−PAM配置のプリコーディングボロノイ領域に減少させる。フィードフォワードフィルタ340は、カーソルおよびプリカーソルISIを補償し、かつノイズを白色にするために、受信装置に残る。送信装置側のモジュロ演算子310に類似したモジュロ演算子220は、伝送されたシンボルを回復するために必要である。THPは、中程度および高いスペクトル効率変調について、誤り伝搬なく理想的なDFEの性能に近づくことができる。
【0031】
等価線形離散時間チャネルモデルは連続時間光チャネルをサンプリングすることによって構築することができる。受信機におけるチャネルおよびフィードフォワード等化の入力におけるTHPを追加して、ISIを補償してノイズを白色にする。
【0032】
THPプラスFFEによってISIが十分に補償可能であり、FFEがチャネルノイズを完全に白色にするという仮定(チャネルモデル)の下では、等価チャネルは付加白色ガウス雑音(AWGN:additive white Gaussian noise)のあるメモリレスチャネルとなる。
【0033】
受信機におけるモジュロ演算は、有利には、シンボルフリッピングを回避するためにM−PAMデコーダに埋込まれてもよい。
【0034】
送信装置で用いられるTHPは、現行のチャネル応答を得るためには受信装置からのフィードバックを必要とする。このようなわずかな実施の欠点にも関わらず、THPは意図されるPOF用途の普及している部分に対して適切である。たとえば、THPはスタートポロジー、デイジーチェーントポロジー、またはツリートポロジーのいずれにも適する。スタートポロジーにおいて、各ノードはそれぞれの2方向に対して2本のファイバを有するデュプレックスPOFによって、パケットスイッチを介してネットワークに接続される。デイジーチェーントポロジーにおいて、一部のノードはパケット切換機能を有し、2つ以上のデュプレックスインターフェイスを有する。ノードはネットワークに接続され、同時に相互接続されている異なるネットワーク領域間のブリッジとして働く。ツリートポロジーはデイジーチェーントポロジーを進化させたものであり、一部のノードは3つ以上のデュプレックスPOFインターフェイスを有する。これら3つのトポロジーは一般にどの種類のビデオベースセンサ用途または媒体分散にも適し、特に家庭でのネットワークアプリケーション、産業の工場または自動車の用途、特にカメラおよびスクリーンの相互接続に適する。
【0035】
図5Aおよび
図5Bはエンコーダ500aおよびデコーダ500bをそれぞれ示し、これは
図1に示される送信装置デジタル回路110および受信装置デジタル回路190の一部をなす。特に、エンコーダ500aにはデジタルビットシーケンスが入力され、これはマルチレベル剰余類符号化(MLCC:multi-level coset coding)510によって符号化される。符号化されたMLCCシンボルはM変数パルス振幅変調(M−PAM:M-ary pulse amplitude modulation)のような時間ドメイン変調によって変調され、これはここではMLCCコーダ510の一部であると考えられ、PAMシンボルはさらにプリコーダ530によってプリコードされる。デコーダ500bは、受信信号を復調するための時間ドメインデモジュレータ580と、復調されたシンボルを復号するための多段デコーダ590とを含む。THPが適用されないのなら、FFE570は等化器として用いることができる。THPが適用された場合、FFEはチャネルインパルス応答のカーソルおよびポストカーソルを等化し、さらに、ノイズを白色にする。このような場合、570はTHP構造のフィードフォワードフィルタ340である。
【0036】
チャネルのための符号化を設計する際、スペクトル効率およびボーレートが選択されることとなる。シャノン容量分析は、最適なスキームが、THPのためにMが8から16でありコードレートが0.8であるM−PAMであることを示唆している。シンボル周波数Fsに依存するMのさまざまな値に対するdBmの対応する感度が
図3Aに示される。ボーレートは300MHz〜400MHzでなければならない。発明者の研究に従うと、300MHzに近いボーレートでは、チャネル等化のためのDSP電力消費がより少なくなり、DACおよびADCの消費設計がより単純かつより低価格になる傾向がある。
【0037】
最適なスペクトル効率およびボーレートを選択することは複雑なタスクであって、解決策を得るためにいくつかのファクタを考慮に入れることが必要となる。いくつかのファクタとは、たとえば、レイテンシと符号化利得との間のトレードオフ、FECおよびDSPの実施複雑さ、メモリ要件、エラーがFECの出力において如何に生成されるかについての統計的解析、補正されたエラーに加えてFECのエラー検出能力、実現可能なコードの離散的な設計空間、スクランブラなどの重要要素を考慮に入れるための全体論的アプローチ、伝送構造、タイミングが如何に回復されるか、等価されたチャネルなどを含む。さらに、MAC(たとえばGMII)を有するデータインターフェイスのクロック基準およびクロック速度が考慮に入れられなければならない。
【0038】
図3Bは、ビットエラーレートBER<1e−10についてマイクロ秒での物理層GMIIとGMIIとの間のレイテンシに関する相対的なリンクパワーバジェットをdBoで示し、
図3CはBER<1e−14に関する。BERがより低い場合、パワーバジェットは、より低いレイテンシのために、より速やかに減少する。特に、低レイテンシFECのためのリンクバジェットは、BER規格によって大きく影響を受ける。というのも、「より短い」コード(すなわち、コードワードがより短く、このためレイテンシがより短いコード)が提供する誤り訂正能力がより低下し、デコーダのSNRに応じてBERがより高くなるからである。「より長い」コード(高レイテンシ)の場合、BERの関数としてのリンクバジェット変動がほぼ一定になる。これらのコードは苛酷なBER対SNR性能曲線を示す。
【0039】
二重丸でマークされたコードは、曲線における有利な位置を表わす。というのも、レイテンシが比較的低く(約6マイクロ秒)、リンクバジェット性能が、VDE標準に従って実現された現在のICの場合と同じであるからである。さらに、このようなコードはまた、実施複雑さの低下および電力消費の低下をもたらし、無思慮な減損および/または実施損失に対して非常にロバストである。さらに、MTTFPA(mean time to false packet acceptance:偽のパケット受領に対する平均時間)は高い。
【0040】
コードのこれらの特徴を研究した結果、対応するコード、すなわち、2000ビット付近のコードワード長さを有する2レベル剰余類コード、が選択された。以下においては、1つのこのような実現可能なコードの具体的な実施形態が詳細に示される。
【0041】
マルチレベル剰余類符号化は、球面限界容量達成符号化技術である。MLCCの理論的説明および設計は、G.D.Forney他による「球面限界達成剰余類コードおよびマルチレベル剰余類コード(Sphere-bound-achieving coset codes and multilevel coset codes)」(情報理論についての電気学会論文誌、第46巻、第3号、2000年5月、820〜850頁)が引用によりこの明細書中に援用されている。特に章V.E、V.FおよびVII.Bを参照されたい。本発明の実施形態に従ったZ
2格子およびRZ
2格子に基づいた2レベルマルチレベル剰余類符号化(MLCC:Multilevel Coset Coding)は、低複雑性バイナリ成分符号でスペクトル効率を正確に調整することができる。配置は、ノイズによって破損する可能性が高いビットがバイナリコードによって保護され、さほど破損しなかったビットが保護されないような態様で分割される。
【0042】
理論的規則は、成分コードのコードレート、分割チャネル機能および多段デコーダ(MSD:Multi-Stage Decoder)復号を想定した各復号レベルに存在するモジュロ−エイリアスノイズの観点から作成されている。しかし、数学的理論は「実世界」での実現、たとえばハードウェアまたはソフトウェアの実施に適切であるバイナリ成分コードの特定の特性を扱っていない。上記の文献では、低密度パリティチェックコード(LDPC:Low Density Parity Check Codes)はMLCC用の可能な成分コードとして研究されている。しかし、LDPCコードは復号のためにはいくらか高い演算的複雑度を必要とし、他方で、ハードウェアの実施においてはより広い面積を必要とし、より高い電力消費を引起す。光学リンクパワーバジェットの観点では、BCHとは関係なくLDPCを用いることによる改良点は、ごく僅かなようである。さらに、LDPCコードでは潜在的なエラーフロアがあり、その補正にはさらなる代数的外部コードを用いる必要があるだろう。
【0043】
Bose,Chaudhuri,Hocquenghem(BCH)バイナリコードは、コードワード間の最小ハミング距離の点ではほとんど申し分のない代数的コードである。BCHコードは、硬判定符号化が適用された場合、エラーフロアを有さない。BCHコードはさらにたとえば集積回路で容易に組込むことができる簡単な実施という利点を有する。高いコードレートの場合、BCHコードは高い符号化利得を提供するが、他方では、中程度またはより低いコードレートでは減少する。
【0044】
図4は、本発明に従い、
図5Aに示されるMLCCエンコーダ510の代わりに用いることができるMLCCエンコーダ400を示す。バイナリ入力ストリームはα
MLCCビットのブロックにセグメント化される。エンコーダ400には伝送されるべき1つのMLCCコードワードに属する長さα
MLCCのビットシーケンスの情報が入力される。ビットの数α
MLCCは、チャネル品質について所望のスペクトル効率に従って選択することができる。MLCCコードワードとして符号化される情報ビットは、MLCCデマルチプレクサ410においてまず2つのMLCCレベルに分割される。特に、α
MLCCビットを有する情報の部分は、それぞれk
c(1)およびk
c(2)のビットを有する部分に分割され、各々は対応するMLCCレベルに入力され、ここでは、α
MLCC=k
c(1)+k
c(2)となる。
【0045】
分割は、有利には、特に、入力デジタルデータから、各々が所定のビット数を有するデータの第1の部分および第2の部分を分離することによって、インターリーブの態様で行われる。第1の所定のビット数n
b,demux(1)を第1の部分に、第2の所定のビット数n
b,demux(2)を第2の部分に周期的に割当てることを含む。
【0046】
分割が
図6に示される。特に、ビット順序付けは、エンコーダおよび多段デコーダ(MSD)の最小レイテンシを達成するために確立される。現実的に分割に符号付けするために、i番目のレベルの場合(2レベル符号化の場合、i=1または2)、n
b,demux(i)=2・n
b(i)ビットを規定する。ここで、n
b(i)は、i番目のレベルについて次元当たりの符号化されたビットの数である。このパラメータは配置を指定する。入力情報は、k
c(1)ビットが第1のレベルに割当てられるまで、n
b,demux(1)ビットを第1のレベルに、かつn
b,demux(2)ビットを第2のレベルに周期的に割当てることによって、2レベル間で分割される。第1のレベルがフルになると、第2のレベルが完全にk
c(2)ビットを達成するまで、残りの入力ビットが第2のレベルに割当てられる(この例示的な場合、第1のレベルよりも第2のレベルに多くのビットが存在するので、そうでない場合には、第2のレベルが第1のレベルと同様にフルになり、残りのビットが第1のレベルに割当てられることとなるだろう)。「フル(full)」という語は、特別なレベルiとして指定された入力コードワードのビット数k
c(i)が達成されているという事実を指す。
図6においては、i=00..416を有する4倍ビットa
iと、i=0..493を有する3倍ビットb
iとは、それぞれの部分が第1のレベルおよび第2のレベルに割当てられている。さらに「4b」は4ビットに相当するのに対して、「3b」は3ビットに相当する。数値416および493は選択された長さk
c(1)およびk
c(2)に起因する。すなわち、n
b,demux(1)=4によって分割されるk
c(1)=1668ビットは結果として417になる。同様に、n
b,demux(2)=3によって分割されるk
c(2)=1482ビットは結果として494になる。
【0047】
図4におけるFIFO1およびFIFO2は、それぞれの2レベルに位置するタイプファーストイン、ファーストアウトのバッファを表わす。FIFO1およびFIFO2は、エンコーダの入力および出力の両方において一定のデータフローを提供するために存在しており、また、レートマッチングのために必要とされる。これらのFIFOの所要のサイズによって、MLCCエンコーダのレイテンシが決定される。なぜなら、残りのブロックはレイテンシを考慮に入れなくてもよいからである。上述のMLCC多重化パターンは、FIFOのメモリ要件、さらにはエンコーダおよびデコーダ両方のレイテンシを最小限にするように選択された。1コードワード当たり3150ビットがMLCCに対して入力され、988PAMシンボルがエンコーダから出力されるこの例の場合、周波数が325MHzであると想定すると、入力レートは、最適には、3150/988=3.1883ビット/サイクルに相当する。
図18Aおよび
図18Bは、それぞれ、FIFO1およびFIFO2についてのエンコーダレイテンシを示す。図から分かるように、エンコーダレイテンシは低く、わずか90サイクルであり、これはFs=325MHzの場合には0,27マイクロ秒に相当する。メモリ要件はFIFO1の場合には164ビットであり、FIFO2の場合には135ビットである。
【0048】
2レベルMLCCエンコーダの第1のレベルは、順方向誤り訂正符号化420を含む。第2のレベルは符号化されていない。順方向誤り訂正コーダ420はk
c(1)ビットをn
c(1)の符号化されたビットに符号化する。符号化されていない第2のレベルでは、同様に、n
c(2)=k
c(2)となる。特に、MLCC順方向誤り訂正成分コードとして、BCHコードが選択された。第1のレベルのために特定のバイナリBCHコードを選択することは、性能を保証し、かつMLCCスキームのエラーフロアを回避するために重要である。
【0049】
バイナリBCHコードは、低複雑性および訂正能力によりこの応用例に特に適している。
【0050】
受信機において誤り訂正能力のためにBCHコードによって導入されるパリティは、デコーダが、エラーを検出するために、受信されたコードワードを訂正することができない場合に、復号の失敗を表明するのにも用いることができる。たとえば、イーサネット(登録商標)プロトコルスタックのPHY(physical layer:物理層)によって復号失敗の表明を用いることができ、これにより、GMII RX_ER信号を用いることによってイーサネットフレームが破損したことをMACに対して示し、そして、正確に受信されたイーサネットパケットにわたる誤り伝播、送信されなかった余分なパケットの生成、または、パケットオーバーラッピングのうちいずれかをもたらす可能性のある不良パケットデリミッタ検出を回避することができる。ここで、GMII(Gigabit Medium Independent Interface)はギガビット媒体非依存インターフェイスを指しており、物理層の上方部分に配置され、その後、MAC(Medium Access Control:媒体アクセス制御)が続く。他方で、物理層の下方部分は媒体依存インターフェイス(MDI:medium dependent interface)を含む。
【0051】
図示されるように、FCS(frame check sequence:フレームチェックシーケンス)は偽パケット受領に対する平均時間(MTTFPA)を十分に提供するには不十分である。したがって、FECの一部としてBCHコードを検出する能力が必要になる。以下において、BCHコードの未検出誤り確率を正確に演算するための方法が示される。
【0052】
バイナリBCHコード(たとえば、Berlekampアルゴリズム)の有界距離復号に関する未検出誤り確率は、それらバイナリBCHコードがクロスオーバ確率pでバイナリ対称チャネル(BSC:binary symmetric channel)上でエラー訂正および検出の両方のために用いられる場合に、推定されるはずである。この分析のために、等化器はデコーダ入力にAWGNチャネルを供給し、デマッパ出力においてBSCを備えて、シンボル硬検出が実現されるものと想定される。また、有界距離デコーダが、最小距離d
minでt−誤り訂正(n,k)BCHコードCとともに用いられる、この場合、以下のとおりである。
【0054】
Cについての重み分布{A
j}が既知であれば、デコーダのエラーおよび障害の確率に関して正確な式を得ることができる。デコーダエラーの確率は未検出誤り確率に対応する。有界距離デコーダのための未検出誤り確率(M.G.キムおよびJ.H.リーによる「エラー訂正および検出のためのバイナリプリミティブBCHコードの未検出誤り確率(Undetected error probabilities of binary primitive BCH codes for both error correction and detection)」(通信に関するIEEEトランザクション(IEEE Transactions on Communications)、第44巻、第5号、575〜580頁(1996年5月))は、以下において[1]として参照される。
【0056】
この場合φ(w)は、受信されたワードが重みwを有する確率を示す。
【0058】
P
E(w)は、全体のベクトル空間における重みwを有するワードの数に対するコードワードからの距離tの範囲内にある重みwを有するワードの数の比率として規定されるデコーダエラー確率を示す。
【0060】
文献に記載される有界距離デコーダに関する未検出誤り確率についての別の式(S.B.ウィッカーによる「デジタル通信および格納のための誤り制御方式(Error Control Systems for Digital Communication and Storage)」(Englewood Cliffs, NJ:Prentice Hall;1995))が、以下において[2]として参照される。
【0062】
この場合、受信されたワードが、正確に、重み−jバイナリコードワードからのハミング距離kである確率P
kjが、以下によって与えられる:
【0064】
ほとんどのBCHコードについての重み分布は分かっていない。その2
kコードワードまたはデュアルコードの2
n−kコードワードのいずれかを調べることが必要である。この場合、n、kおよびn−kが大きくなるのに応じて演算が実際に不可能になる。しかしながら、考慮すべき有用な結果がごくわずかに存在する。すべての2重および3重誤り訂正バイナリプリミティブBCHコードについての重み分布が発見された。
【0065】
BCHコードの重み分布を推定する際に助けとなるいくつかのさまざまな定理がある。最も重要な定理は、ピーターソン(Peterson)の重み推定であって、これは、上限または下限ではないが概算となり(R.Micheloni、A.MarelliおよびK.Eshghiによる「ソリッドステートドライブ内部(Inside Solid State Drives (SSDs))」;高度な超小型電子技術におけるスプリンガーシリーズ37(Springer Series in Advanced Microelectronics 37))、以下において[3]として参照される。ピーターソン推定:長さnおよび誤り訂正能力tのプリミティブBCHコードの重みAjは、以下のとおり近似させることができる。
【0067】
推定された重みを用いることにより、ここで、バイナリプリミティブプリミティブBCHコードの未検出誤り確率の推定を得ることができる。しかしながら、m>10(バイナリプリミティブBCHコードの場合、n=2
m−1)であれば、MATLABにおけるピーターソン推定によって無限値となり、また、Pueを計算することができなくなる。
【0068】
[1]においては、コードの重み分布が二項式様であれば、バイナリ線形コードの未検出誤り確率を極めて簡易化および定量化できることが示される。バイナリプリミティブBCHコードの大型サブクラスは概算の二項式様の重み分布を有する。それらのBCHコードの場合、未検出誤り確率のための以下の式が以下のように導き出される:
【0070】
上述の式を用いることにより、m>10で、バイナリプリミティブBCHコードについてのPueを計算することができる。後続の式を適用していくつかのバイナリプリミティブBCHコードの未検出誤り確率を計算し、次いで、Pueについての推定値を、代替方法を用いることによって得られた結果と比較することによって、後続の式の妥当性を証明することとする。
【0071】
図20は、いくつかのBCHコードについての上述の確率計算が比較されている表を示す。バイナリプリミティブBCHコードがバイナリ対称チャネル上でのエラー訂正および検出の両方のために用いられる場合に二項式様の重み分布を有するこれらバイナリプリミティブBCHコードを復号する有界距離についての未検出誤り確率の正確な概算が示された(式(4))。式4は、大きいBCHコードに対して数的に安定しているため、MTTFPA分析のためにBCHのPueを計算する方法が提供される。
【0072】
本発明の実施形態に従ったMLCCは短縮されたBCHコードに基づいている。ここで、(n
c,k
c)短縮されたBCHコードは、l
cゼロをkc情報ビットの前に付加し、対応するプリミティブコードを用いて、結果として得られるk−ビット情報ブロックを符号化し、最終的に、得られたn−ビットコードワードからl
c先行ゼロを除去することによって、得られる。これは、そこから生成されたプリミティブBCHコードのコードワードのサブセットで構成されており、そのため、プリミティブBCHコードのエラー訂正および検出特性が、対応する短縮済みコードのために保証される。
【0075】
ガロア域の演算の必要性を最小限にするために、GF(2
11):1+x
2+x
11にわたる最低重みの既約多項式を原始多項式として選択する。生成多項式が以下のとおり与えられる:
【0077】
この場合、g(i)は値0または1を取る。このBCHコードについてのG(x)のオーダは308である。G(x)係数が以下によって与えられる:
h0014_B624_90DF_0781_4D88_99E9_B9DB_6267_00D3_7A90_49DB_C0C4_484A_D6C5_49AB_AE7E_6F58_A406_CF86_C0BD。
【0078】
しかしながら、このコードが単に325MHzのための特に有利なコードの一例に過ぎないことに留意されたい。
【0079】
また、(2016,1829)などの他の組合せも実現可能である。このようなコードおよびFs=312,5MHzでの1Gbps動作モードの場合、以下のさらなるパラメータが得られるはずである:MLCCα
MLCC=3341ビットに入力されるコードワード当たりのビット数、出力シンボルN
MLCC=1008シンボルの数、1つのコードワードk
c(1)1829=ビットおよびk
c(2)=1512ビットについての第1のレベルおよび第2のレベルにおけるビット数、BCHコードワードn
c(1)=2016ビットの長さ、2つのレベルn
b(1)=2およびn
b(2)=1,5ビット/次元における1レベル当たりの1次元当たりのビット数。
【0080】
残りの符号化は、上述のMLCCと同様に機能する。特に、分割は、レベルiの場合にはn
b,demux(i)=2n
b(i)で実行され、結果として、kc(1)ビットが第1のレベルに割当てられるまで、第1のレベルおよび第2のレベルにおいて、周期的にn
b,demux(1)=4およびn
b,demux(2)=3となる。次いで、残りの入力ビットが第2のレベルに割当てられる。この場合と同様に、k
c(1)が複数のn
b,demux(1)でない場合、rem(k
c(1),n
b,demux(1))ビットだけが、実用的に実施される際のそのレベルについてのビットの最後の割当て時に第1のレベルに割当てられる。しかしながら、これは一例に過ぎず、remもまた、第1の割当または別の割当の際に割当てられてもよい。
【0081】
3341/1008=3.3145ビット/サイクルの一定のビットレートは、その出力における1シンボル/サイクルのシンボルレートを一定にするために、このMLCCエンコーダの入力にあるものと想定される。次いで、MLCCデマルチプレクサのインターリーブされた動作モードを考慮に入れて、1008の期間における第1のx1クロックサイクル中に、第1のレベルおよび第2のレベルにおけるFIFOに対する書込みビットレートが以下によって与えられる:
【0083】
x1クロックサイクルの後、第1のレベルがフルになり、クロックサイクルx2=1008になるまで、FIFOに対する書込みビットレートが以下によって与えられる:
【0085】
当該プロセスが繰返される。最悪の場合のレイテンシが上述のMLCCコードと同様に推定されてもよく、結果として、第1のレベルにおいて51クロックサイクルとなり、第2のレベルにおいて54クロックサイクルとなり、最小FIFO深さが、それぞれ、102ビットおよび81ビットとなる。デコーダに関して、推定された最悪の場合のレイテンシは1388クロックサイクルであり、FIFOのサイズはFIFO1,2=1136シンボル、FIFO1=97ビット、およびFIFO2=77ビットである。
【0086】
概して、(BCH)コードは、達成されるべき目標ビットレートおよび選択されたボーレートに基づき、このため、MLCCコードの両方のスペクトル効率に応じて、選択される。コードの長さは、基本的には、
図3に関連付けて上に説明されたように、チャネル特性および符号化利得対計算複雑さのトレードオフに依存する。
【0087】
図7はBCH系統的エンコーダを示す。パリティは情報メッセージM(x)の後に送信される。エンコーダはパリティを2ステップで計算する。第1のステップはx
n−kに対するM(x)の乗算である。第2のステップは、M(x)・x
n−kをG(x)で除算した残余としてパリティ部分D(x)を規定することである。遅延素子S
0,S
1,..S
p−1は、符号化前に0にまで初期化されるものとする。情報メッセージM(x)を構成するkビットをすべて用いて、スイッチが接続されている(設定されたBCHgen位置)を用いてパリティD(x)を計算する。すべてのkビットが連続的に処理された後、切断されたスイッチ(設定されたBCHout位置)およびpの格納値S
0,S
1,..S
p−1は、パリティビットD(x)となる。次いで、パリティビットはS
p−1からS
0の順で送信される。
【0088】
次いで、BCH符号化に起因するn
c(1)ビットを有するコードワードが、次元n
b(1)=2ビット/次元当たりに符号化されたビットの数でマッピングする16−QAMグレーマッパ430によってマッピングされる。第2のレベルは、符号化されないままであり、k
c(2)ビットは、n
b(2)=1,5ビット/次元となる8−QAM格子配置へと直接マッピングされる(450)。
【0089】
上述のマッピングの後、2レベルの各々は、2次元当たり同じ数のシンボルN
MLCC/2を生成する。格子変換440および460は、剰余類分割を実現するように規定される。第1段格子変換440および460に続いて追加した後、シンボルはZ
2に含まれている。さらに、次の格子変換470は、結果として、RZ
2格子上において最終的なゼロ平均2次元平方配置をもたらす。最後に、PAMモジュレータ480は、2次元平方配置に基づいてPAMシンボルを生成する。
【0090】
以下において、本発明の実施形態に従い、上述のマッパおよび格子変換をより詳細に説明する。以下のアーキテクチャはたとえば集積回路において効率的に実現されるという利点をもたらすが、本発明はこれに限定されず、これらの機能の代替的な実現例を用いることができることに留意されたい。
【0091】
図8は、16−QAMグレーマッパ430の詳細を示す。マッパは、予め規定された配置のポイント上に符号化されたビットをマッピングする。i番目のレベル(i=1および2)の場合、2次元当たりk
QAM=2・n
b(i)ビットとなる。特に、この場合、k
QAM=4およびマッパが以下のように機能する。
【0092】
d
in=n
c(1)ビットを有する入力ビットストリームが2つのサブストリームに逆多重化される。一方のサブストリームは、2次元配置の同相(l)成分にマッピングされ、他方のサブストリームは配置の直交(Q)成分にマッピングされる。同相成分は、複合シンボルの実数部に対応し、直交部は複合シンボルの虚数部に対応する。連続する入力ビットd
inは、インターリーブされた態様で、ビット状にそれぞれの成分に割当てられる。
【0093】
たとえば、
図8に示されるように、各々の偶数ビット(b0、b2、b4、b6...)は、第1のサブストリームに割当てられ、各々の奇数のビット(b1、b3、b5...)は第2のサブストリームに割当てられる。デマルチプレクサ810は、同じ入力ビットレートでクロックされた0〜k
QAM−1をカウントするフリーカウンタ815の最下位ビット(LSB:least significant bit)によって制御される。カウンタのリセット状態は0であるべきである。 カウンタがk
QAMビットの各セットごとにリセットされるので、各々の新しいコードワードに関して、常にゼロで開始される。
【0094】
k
QAMが偶数であるので、同数のビットが、この場合には各々の成分に割当てられる。各々の成分に割当てられる次元当たりのビット数は以下のとおりである:
【0096】
2つのサブストリームにおいて、ビットは直並列(S/P)から、それぞれ同相成分および直交成分におけるk
Iビットおよびk
Qビットのシンボルに変換される。図に示されるS/Pは、kビットのグループに属する入力における第1の受信ビットが、並行出力のLSBに割当てられ、グループのうち最後に受信されたビットがMSBに割当てられ、すなわち、右側のビットが最上位ビットとなるように実行される直列−並列変換である。
【0098】
グレー・バイナリ変換に起因するバイナリバスは、符号なしのバイナリ−デシマルコンバータ(B2D)によって
図8においてさらに示されるように処理される。[x(0)..x(k−1)]をパラレル入力とする。この場合、x(i)はバスの各ビットについての値であり、x(0)はLSBであり、x(k−1)はMSBである。次いで、B2Dの整数出力は、
d=2
x(0)+2
x(1)+...+2
x(k−1)
となるように規定される。
【0099】
K
I=K
Qである配置の場合、両方のブランチ(I成分およびQ成分)に対して実行される算術演算は同じである。これは、たとえば、平方グレー直交振幅変調(QAM:Quadrature Amplitude Modulation)配置の場合に該当する。項「x2」は2による乗算を意味する。
【0100】
第2のレベルについての8−QAM RZ
2格子マッパ450を
図9に示す。i番目のレベル(i=1,2)の場合、2次元当たりk
QAM=2・n
b(i)ビットとなる。特に、本件に関して、k
QAM=3であり、マッパが以下のように機能する。
【0101】
上述のマッパ430と同様に、d
in=n
c(1)ビットである入力ビットストリームは2つのサブストリームに逆多重化される。サブストリームのうち一方が2次元配置の同相(I)成分上にマッピングされ、他方のサブストリームが配置の直交(Q)成分上にマッピングされる。同相成分は複合シンボルの実数部に対応し、直交部は複合シンボルの虚数部に対応する。連続する入力ビットd
inは、インターリーブされた態様で、ビット状にそれぞれの成分に割当てられる。
【0102】
図9に示されるように、入力ビットは、1ビットを第2のサブストリームに、2ビットを第1のサブストリームにおいて周期的に割当てることによってビット状に分割される。特に、図から分かるように、第1のサブストリームはビットb0、b2、b3、b5、b6などを含むのに対して、第2のサブストリームはビットb1、b4、b7などを含む。デマルチプレクサは、同じ入力ビットレートで計測される0からk
QAM−1をカウントするカウンタの最下位ビット(LSB:least significant bit)によって制御される。ここで、k
QAMは奇数であるので、同相成分が直交成分よりも多くのビットを受信する。これにより、各々の成分に割当てられた1次元当たりのビット数は以下のとおりである:
【0104】
2つのサブストリームにおいて、ビットはさらに、直列から並列(S/P)に変換されて、同相成分および直交成分においてそれぞれK
IビットおよびK
Qビットを有するシンボルとなる。
【0105】
同相成分においてG2Bから出力される最下位ビット(LSB)b
0出力を用いて、最後の加算器の入力に1または−1を設定するマルチプレクサを制御する。K
I>K
Qの場合、Qブランチは、回転させたほとんどのグレーQAM RZ
2配置を生成するように変換されるが、これは、2次元当たりビットの奇数をマッピングするために必要とされる。
【0106】
マッピングの後、2つのMLCCレベルの各々におけるそれぞれのマッパから出力されるシンボルは、さらに、格子変換によって変換され、これが、剰余類分割を実行する。格子変換全体は3つの副演算からなる:
1)格子を転換して、配置が最初の2次元象限に含まれるようにする;
2)格子をスケーリングして、他のレベルの配置とのベクトル加算によって剰余類分割を可能にする;
3)2次元当たり奇数ビットを有する配置について、ベクトル加算の前に格子は45度回転させる。すなわち、nRZ
2の(副)セットとなる。
【0108】
第1のレベルの格子変換440は、n
b(1)=2ビット/次元なので、回転を含まない。対応する格子変換アーキテクチャを
図10に示す。各成分ブランチの入力信号および出力信号は整数であると考えられ、算術演算は自然バス幅増加に応じて定義される。マッパの出力であるシンボルS
IおよびS
Qは格子変換器440に入力される。
【0109】
第2のレベルのために、格子変換460が実行される。n
b(2)=1,5ビット/次元であるので、回転が実行される。なぜなら、対応する2D配置が2次元当たり3ビット(奇数)をマッピングするからである。第2のレベルの格子変換460はまた、剰余類分割を実施するためにスケーリングを含む。第2のレベルの格子変換アーキテクチャを
図11に示す。
【0111】
1)−45度の回転;
2)第1の2D象限内における正方形領域に配置ポイントを制限するモジュロ演算;
および、
3)(0平均を達成するための)センタリングおよびスケーリング。
【0113】
RZ
2によってPAMマルチプレクサ480に対して実行される多重化演算を
図15に示す。0から1までのフリーカウンタは、1Dシンボルレートで計測され(Fsはシンボルレート、すなわちボーレートを表わす)、同相入力シンボルおよび直交入力シンボルを交互に取るようにマルチプレクサの入力を制御する。16−PAMシンボルはセット{−15,−13,...,13,15}に属する。
【0115】
以下において、シンボル配置に対するマッピングおよび格子変換効果が
図16Aおよび
図16Bにおいて視覚化される。特に、
図16Aの左側には、マッパ430後の第1のレベルの配置が示されるのに対して、
図16Aの右側には、マッパ450後の第2のレベルの配置が示される。
図16Bは、それぞれの格子変換440および460後、ならびにベクトル加算後および第2段格子変換470後の配置を示し、結果として、回転した128−QAMが得られている。
【0116】
2D配置には128ポイントあり、結果として、log
2(128)=7ビット/2Dシンボルが得られることとなる。これらの7ビットは、4ビットの第1のMLCCレベルおよび3ビットの第2のMLCCレベルによって構成される。各々の2DシンボルはFs/2のレートで伝送される。1D(すなわちLEDの輝度変調)を越えて送信するために、システムは、ダブルレート、すなわちFsで2D配置の両方の座標のインターリービングの時間を計る。各々の2Dポイントは、{−15,−13,...,13,15}ごとに16個のさまざまな値をとることができる2つの座標によって表わすことができる。これは16−PAMであるが、通常通り4ビットではなく3.5ビット/1Dシンボル(すなわち7ビット/2D)によって符号化される。というのも、1D配置が奇数ビットの2D配置から生成されているからである。ここで、3.5の3.1883ビットは情報ビットであり、残りはエラー訂正のためのパリティである。
【0117】
したがって、α
MLLC=3150ビットを有する1つのコードワードが、上に例示されるようにBCH(1976,1668)を用いる場合に、
図4に示されるような2レベルコーダによってN
MLCC=988PAMシンボルに符号化される。
【0118】
さらに、Fsは、有利には、325MHzに等しく、η=3.31883ビット/s/Hz/次元、およびξ=3,5ビット/次元である。
【0119】
図17は、上述のとおり符号化された信号を復号するために用いられ得る例示的な多段デコーダ1700を示す。初めに、コードワードおよびボーレートFs当たりの長さN
MLCCを有する符号化されたデジタル信号(16−PAM)が復調および逆多重化(1710)されて、長さN
MLCC/2およびFs/2を有する2次元シンボルコードワードが得られる。次いで、復調されたシンボルは、(エンコーダの第2段格子変換470に一致する)逆の第2段格子変換1720によって変換され、2段デコーダで復号される。2段デコーダは、第1のレベルにおいて(エンコーダにおける格子変換440に一致する)別の逆の第1段格子変換1730および硬判定1735を適用し、次いで、1740のモジュロ演算(mod−Λ
1)を復調されたシンボルに適用することによって、変換されたシンボルコードワードの第1の部分を抽出する。次いで、さらに第1のレベルにおいて、抽出された第1の部分がデマップ(1745)されて(16−QAMを有するエンコーダにおけるマッピング430に一致する)、n
c(1)ビット長のBCHコードワードが得られ、これが、(エンコーダにおけるBCHコーダ420に一致した)BCHデコーダで復号されて、kc(1)情報ビットが得られる。
【0120】
n
c(1)ビットを有する第1の部分の復号されたコードワードが第1の剰余類を選択する。第1の部分の復号されたコードワードは430と同様にマッピングバックされ、440に対応する格子変換によって変換される。結果としてもたらされる第1レベルの剰余類は、受信されたシンボルコードワードから減算(1750)され、第2の部分は、逆格子変換1760および硬判定1765の後、モジュロ演算(mod−Λ
2)を施す(1770)ことにより第2段で得られ、これらは第1段で記載した機能ブロックと同様である。第2の部分はデマッピング1775(エンコーダにおけるマッピング450に対応)されて、n
c(2)=k
c(2)ビット長の符号化されていないコードワードを得る。コードワードは、2デコーダレベルで得られた復号された2部分を多重化(MLCCmux)する(1780)ことによって最終的に復号されて、長さα
MLCCの復号されたワードを得る。
【0121】
図17に示されるようなデコーダは3つのFIFO、すなわちFIFO1,2;FIFO1およびFIFO2を含む。デコーダの入力レートはサイクルに対して1シンボル(16−PAM)であるのに対して、出力レートは、325MHzでのサイクル当たり、エンコーダ3150/988=3.1883=ビットの入力レートに対応している。レイテンシは、主にFIFOおよびBCHデコーダによって導入される。残りのブロックは、ほぼレイテンシなしで、より単純に実施される。
【0122】
第1のレベルまたは第2のレベルのいずれのBERにも影響を与えることなくFIFO1,2のサイズを最小限にするために、復号失敗の照合を待つことなくエラー訂正が実行される(Berlekamp,Chien)と直ちに、BCHデコーダからの出力が有利に第2段にフィードバックされる。Chienの探索は、出力と平行にエラーロケータ多項式(ELP:Error Locator Polynomial)のルートの計算を実行して、その位置によってELPを評価しているビットを0にフリッピングする。すべてのELPルートが計算された後、BCHデコーダは、ELP度合についてのCheinの探索中に発見されたルートの数を比較する。場合によっては、障害の復号がアサートされて、デコーダの誤り訂正能力を超過したことを示す。8個の並列なChienの探索アーキテクチャを用いて、このプロセスを促進して、レイテンシをさらに小さくする。
【0123】
FIFO1,2は2つの復号レベル(段)の間に配置されて、第1のレベル復号を待機しているチャネルから、受信されるシンボルを格納する。FIFO1,2のサイズは、シンボル数では、エラー訂正のためにBCHデコーダの遅延(サイクル数)によって決定される。これにより、FIFO1,2は一定のファイリングレベルで実行されるが、この一定のファイリングレベルは、起動後、サイクルごとに0,5の2Dシンボルの定常状態では出力レートに等しい入力レートである。
【0124】
FIFO1およびFIFO2は、多段デコーダの入力と出力との両方の間においてレートを一致させることに関与している。BCH復号障害検出にとって必要な処理遅延は、FIFO1によってサポートされることとなる。こうして、FIFO1における余分なストックが実現されて、第1のレベルの復号情報データを、障害フラグを確認するBCHデコーダによるエラー検出処理の終端と同期させる。デコーダにおけるFIFO1およびFIFO2のレイテンシがそれぞれ
図19Aおよび
図19Bに示される。これらの図から分かるように、デコーダレイテンシは、Fs=325MHzの場合、4.43マイクロ秒(us)に対応する1440サイクルである。メモリ要件は、FIFO1の場合599ビットであり、FIFO2の場合493ビットであり、FIFO1,2の場合1193シンボルである。THPによって生成される配置拡張を割当てなければならないことを考慮に入れて、1シンボルごとに8ビットが存在することが考慮されてもよい。このような仮定では、FIFO1,2のために9544ビットが必要となる。
【0125】
要約すると、符号化された16−PAM MLCCエンコーダのレイテンシは0,278usであるのに対して、対応するデコーダのレイテンシは4,43usである。総レイテンシは4,71usである。物理層(伝送構造、等化器など)の残りのレイテンシは、<1,3usとして計算される。したがって、PHY GMII−GMIIレイテンシは6us未満のままとなる。上述に基づいて、エンコーダのためのメモリ要件は約300ビットであるのに対して、デコーダのためのメモリ要件は約10,6kbitである。これらの数はFIFOだけを考慮に入れたものである。BCHデコーダの内部メモリは考慮に入れられないが、それらのサイズはFIFOよりも約1桁小さく推定される。上述から分かるように、FIFO1,2はデコーダのブロックを要求するメモリの大部分をなす。
【0126】
BCH(1976,1668)を用いる上述のMLCCの性能が
図21に示される。これは、MLCCによって達成される信号対雑音比(SNR:signal to noise ratio)を上回るビットエラーレート(BER:Bit Error Rate)を示す。ビットエラーレートは、受信された誤り情報ビットの数と、受信された情報ビット(正確なビットおよび誤りビット)の総数の平均との比である。図から分かるように、10e−12のBERの場合、MLSSによって達成される符号化利得は6,35dBであり、このため幾らか高くなる。
【0127】
図22は、BERの関数としてリンクバジェット、MTTFPAおよびMTBE(Mean Time Between Errors:平均誤り時間)を示す。MTEBは、ラボにおいて測定可能な規模に対応するバースト間の平均時間としてFECを有するシステムのために規定される。
【0128】
なお、硬判定が各々の復号レベルでシンボルを検出するために実現され得ることに留意されたい。各レベルに対応する受信情報を分離するために、G.D.Forney他による「球面限界達成剰余類コードおよびマルチレベル剰余類コード(Sphere-bound-achieving coset codes and multilevel coset codes)」、情報理論についてのIEEEトランザクション(IEEE Trans. on Information Theory)、第46巻、第3号、2000年5月、820〜850頁に規定されているような、モジュロ演算が行なわれてもよい。Berlekamp−Masseyアルゴリズム(BMA)のような限界距離復号が、BCH復号のために用いられる。BMAはハードウェア実現例でのBCH復号に広く用いられる。
【0129】
POFチャネルのために設計されたBCH(1976,1668)を有する上述のMLCCは、レイテンシがいくぶん少ないという利点を提供する。なぜなら、特に、マルチプレクサがインターリーブされており、かつレベル数が低い(わずか2である)おかげで、システムが送信器および受信機において必要とするFIFOがより小さくなるからである。さらに、LDPCではなくBCHを利用することで符号化および復号が簡略化され、また、実施のために必要な電力消費およびシリコン面積が削減される。さらに、BCHコードは、典型的にはLDPCのような確率論的コードによって生成されるエラーフロアがない。偽パケット受領に対する平均時間(MTTFPA)を提供するためのBCHの(補正に加えて)エラー検出能力は当該技術において十分に理解されている。
【0130】
要約すると、本発明は、プラスチック光ファイバを介して低レイテンシでデジタルデータを伝送するための効率的な符号化および変調システムに関する。特に、デジタル信号は、2レベル剰余類符号化によって符号化される。第1のレベルは、バイナリ短縮型BCH符号化をデジタルデータに適用し、配置マッピングおよび格子変換によって剰余類分割を実行する。第2のレベルは符号化されていないが、マッピングおよび格子変換される。2レベルの追加後、第2段格子変換が実行されて、ゼロ平均配置が得られる。このような3レベル剰余類コーダから出力されるシンボルがさらに変調される。
【0131】
本発明の別の実施形態は、ハードウェアおよびソフトウェアを用いる上述のさまざまな実施形態の実現例に関する。本発明のさまざまな実施形態が演算装置(プロセッサ)を用いて実現または実行され得ることが認識される。演算装置またはプロセッサは、たとえば、汎用プロセッサ、デジタル信号プロセッサ(DSP:digital signal processor)、特定用途向け集積回路(ASIC:application specific integrated circuit)、フィールドプログラマブルゲートアレイ(FPGA:field programmable gate array)または他のプログラマブルロジックデバイスなどである。本発明のさまざまな実施形態も、これらのデバイスの組合せによって実行または具体化され得る。
【0132】
さらに、本発明のさまざまな実施形態がまた、プロセッサによって、またはハードウェアにおいて直接、実行されるソフトウェアモジュールによって実現されてもよい。また、ソフトウェアモジュールとハードウェア実現例との組合せが実現可能であり得る。ソフトウェアモジュールは、如何なる種類のコンピュータ読取り可能記憶媒体、たとえば、RAM、EPROM、EEPROM、フラッシュメモリ、レジスタ、ハードディスク、CD−ROM、DVDなどに格納されてもよい。