(57)【要約】      （修正有）【課題】低密度パリティ検査コードを使用する移動通信システムにおける順方向エラー訂正符号を復号する方法及び装置を提供する。【解決手段】検査ノードプロセッサーは、受信情報を複数の検査ノードで受信し、受信された情報に関する検査ノードプロセッシングを遂行し、累算器は、検査ノードプロセッサーからの検査ノード出力値を以前の累算値と累算する。エッジメモリは、検査ノード出力値を記憶し、複数の累算メモリは、累算器からの累算値と以前の累算値とを記憶する。減算器は、累算器の累算値からエッジメモリから読み出された検査ノード出力値を減算し、硬判定部は、受信情報及び減算器の出力値に対する硬判定を遂行する。ビットバッファは、硬判定の結果を記憶し、パリティ検査部は、硬判定の結果に対するパリティ検査を遂行して反復復号を終了するか否かを決定する。【選択図】図７
2006121686.tif 000002
【特許請求の範囲】
【請求項１】
低密度パリティ検査コードを使用する移動通信システムにおける順方向エラー訂正符号を復号する装置であって、
受信情報を複数の検査ノードで受信し、前記受信された情報に関する検査ノードプロセッシングを遂行する検査ノードプロセッサーと、
前記検査ノードプロセッサーからの検査ノード出力値を以前の累算値と累算する累算器と、
前記検査ノード出力値を記憶するエッジメモリと、
前記累算器からの累算値と前記以前の累算値とを記憶する複数の累算メモリと、
前記累算器の累算値から前記エッジメモリから読み出された前記検査ノード出力値を減算する減算器と、
前記受信情報及び前記減算器の出力値に対する硬判定を遂行する硬判定部と、
前記硬判定の結果を記憶するビットバッファと、
前記硬判定の結果に対するパリティ検査を遂行して反復復号を終了するか否かを決定するパリティ検査部と、
前記減算器からの減算結果値を反復復号のために検査ノードプロセッサーへ伝達すると同時に、硬判定部へ伝達する多重化器と
を具備することを特徴とする装置。
【請求項２】
前記パリティ検査部は、
前記硬判定の結果に対するパリティ検査を遂行して、パリティ検査結果が良好であれば、前記反復復号を中止して前記硬判定の結果を出力するように構成されることを特徴とする請求項１記載の装置。
【請求項３】
前記エッジメモリは、
複数の検査ノードプロセッサーにそれぞれ対応するサブメトリックブロックに分割されることを特徴とする請求項１記載の装置。
【請求項４】
前記分割されたサブメトリックブロックは、
前記複数の検査ノードに対応し、前記受信情報及び前記検査ノード出力値のうちの少なくとも１つを該当サブメトリックブロックに記憶するように構成されることを特徴とする請求項３記載の装置。
【請求項５】
前記受信情報は、
前記サブメトリックブロックの数に対応するワード単位に分割されることを特徴とする請求項４記載の装置。
【請求項６】
低密度パリティ検査コードを使用する移動通信システムにおける順方向エラー訂正符号を復号する方法であって、
受信情報を複数の検査ノードから行の単位で受信し、前記受信情報の検査ノードプロセッシングを遂行するステップと、
前記検査ノードプロセッシングの結果値を以前の累算値と累算するステップと、
前記検査ノードプロセッシングの結果値を記憶するステップと、
前記累算値と前記以前の累算値とを区分して記憶するステップと、
前記累算値から前記検査ノードプロセッシングの結果値を減算するステップと、
前記受信情報及び前記減算結果値に対して硬判定を遂行するステップと、
前記硬判定の結果を記憶し、前記硬判定の結果に対するパリティ検査を遂行して反復復号を終了するか否かを決定するステップと、
前記減算結果値を反復復号のために記憶すると同時に、硬判定部へ伝達するステップと
を具備することを特徴とする方法。
【請求項７】
前記決定するステップは、
前記硬判定の結果に対するパリティ検査を遂行して、前記パリティ検査結果が良好であれば、前記反復復号を中止して前記硬判定の結果を出力することを特徴とする請求項６記載の方法。
【請求項８】
前記検査ノードプロセッシングの結果値は、
複数の検査ノードにそれぞれ対応するサブメトリックブロックに記憶されることを特徴とする請求項６記載の方法。
【請求項９】
前記受信情報は、
前記サブメトリックブロックの数に対応するワード単位に分割されることを特徴とする請求項８記載の方法。
【請求項１０】
低密度パリティ検査コードを使用する移動通信システムにおいて、コンピュータで読出し可能な媒体に備えられ、順方向エラー訂正符号を復号するためのコンピュータプログラムであって、
複数の検査ノードから情報を受信し、前記受信された情報に対して検査ノードプロセッシングを遂行する第１の命令セットと、 
前記検査ノードプロセッシングの結果値を以前の累算値に累算する第２の命令セットと、 
前記検査ノードプロセッシングの結果値を貯蔵し、前記累算値と前記以前の累算値とを区別して貯蔵する第３の命令セットと、
前記検査ノードプロセッシングの結果値を前記累算値から減算して、前記受信された情報と前記減算結果値に対する硬判定を遂行する第４の命令セットと、
前記硬判定の結果を貯蔵し、前記硬判定の結果に対するパリティ検査を遂行して反復復号を終了するか否かを決定する第５の命令セットと、
前記反復復号の間に実質的に同一の時点で前記減算結果値を貯蔵し、前記減算結果値を硬判定部へ伝達する第６の命令セットと
を含むことを特徴とする方法。 
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エラー訂正復号化装置及びその方法に関し、特に、低密度パリティ検査コード（Low Density Parity check Code；以下、‘ＬＤＰＣ’と称する）の復号複雑度を減少させることによって、復号化性能を向上させる復号化装置及び方法に関する。
【背景技術】
【０００２】
通常、デジタル通信システムは、伝送路で発生した雑音によってエラーが発生し、上記発生したエラーを除去するために、多様なアルゴリズムでエラーを訂正している。最近では、標準化が進行中である３ＧＰＰ（3rd Generation Partnership Project）又は３ＧＰＰ２（3rd Generation Partnership Project 2）を適用する無線通信システムにおいて、音声及び制御信号の送信のために、畳込みコード（Convolutional code）及びターボコードの使用が提案されている。高速の送信のためのターボコード（turbo code）は、低い信号対雑音比で非常に低いビットエラー率（bit error rate）を得ることができる、という長所を有する。しかしながら、上記ターボコードは、符号語間の最小の距離が比較的短い。結果的に、ターボコードで符号化された信号を復号する場合に、望まれるビットエラーポイントで、エラーフロア（error floor）が発生することがあり、復号する間に、エラーが発生した符号語に対する検出失敗の確率が比較的高い。従って、最近では、上記ターボコードと類似しているか、又は優れる性能を有するＬＤＰＣが新たに脚光を浴びている。
【０００３】
上記ＬＤＰＣは、同一な長さを有するターボコードに比べて、最小の距離が大きく、結果的に、エラーフロアがターボコードに比べて非常に低いビットエラー率で発生し、欠陥ある符号語に対する検出失敗の確率が非常に低くて、実験的に‘０’に近い。また、上記ＬＤＰＣは、並列構成で実現することができ、復号時間を画期的に短縮させることができ、反復復号ごとに遂行されるパリティ検査を介して付加されたＣＲＣ（cyclic redundancy check）ビットのようなオーバーヘッド又は復号停止アルゴリズムなしに、効率的な復号停止が可能である。
【０００４】
図１は、ＬＤＰＣ復号構造を示す図である。
図１を参照すると、上記ＬＤＰＣは、コードを定義するパリティ検査行列（Parity check matrix）の各行及び列に、‘１’の数が非常に少ない符号であって、検査ノード（check node）１００と、変数ノード（variable node）１１０と、検査ノード１００を変数ノード１１０に接続するエッジ（edge）１１５とから構成されたファクターグラフ（factor graph）によってその構成を定義することができる。検査ノード１００から検査ノードプロセッシングを行った後に、変数ノード１１０へ伝達された値は、検査ノードメッセージ１１５ａとなり、変数ノード１１０から変数ノードプロセッシングを行った後に、検査ノード１００へ伝達された値は、変数ノードメッセージ１１５ｂとなる。
上記ＬＤＰＣコードの復号過程は、‘サムプロダクト（sum-product）’アルゴリズムに基づく反復復号（iterative decoding）によってなされる。このとき、最適のサムプロダクトアルゴリズムは、比較的複雑な計算式を含んでいる。従って、上記サムプロダクトアルゴリズムを使用する場合に、復号過程で多くの計算量を必要とし、ハードウェアの複雑度を増加させる、という短所がある。
【０００５】
以下、図２を参照して、ＬＤＰＣについてさらに詳細に説明する。
図２は、ファクターグラフ及びパリティ検査行列に従うＬＤＰＣの構造の一例を示す図である。ここで、ＬＤＰＣの構造は、最も一般的に使用されるファクターグラフによって定義することができる。上記ファクターグラフは、多変数の全体関数が局所関数の積で因数分解されることを示す二分グラフである。
図２を参照すると、ＬＤＰＣのファクターグラフは、サムプロダクトアルゴリズムを介したツリー構造を有する。具体的に、あらかじめ決定されたＬＤＰＣのパリティ検査式を示す４個の検査ノード２００と、各シンボルを示す８個の変数ノード２１０と、これらの間の関連性を示すエッジ２２０の構造を決定する。エッジ２２０は、検査ノード２００が示したパリティ検査式に含まれたコードシンボルに該当する変数ノード２１０に各検査ノード２００を接続させる。このとき、すべての検査ノード２００のそれぞれに接続された変数ノード２１０の数が６つで一定であり、すべての変数ノード２１０のそれぞれに接続された検査ノードの数が３つで一定であるので、正規のＬＤＰＣを例に挙げたが、図示していないが、各々の検査ノード２００及び変数ノード２１０に接続されたエッジの数が一定でない非正規のＬＤＰＣもある。
【０００６】
また、上記パリティ検査コードに対するパリティ検査行列（Ｈ）２３０が示されている。これは、パリティ検査コードのグラフィック表現と類似している。パリティ検査行列２３０の各列及び各行には、同一の個数の１がある。すなわち、パリティ検査行列２３０の各列は、各変数ノード２１０と検査ノード２００との接続に従って３個の１を有し、各行は、各検査ノード２００及び変数ノード２１０の接続に従って６個の１を有する。
【０００７】
上記ＬＤＰＣを復号化する過程は、ファクターグラフ上の変数ノード及び検査ノードが各ノード別に生成されて更新されたメッセージを交換する過程を反復してなされる。このとき、各ノードは、サムプロダクトアルゴリズムを用いて上記メッセージを更新する。上述した復号化過程に基づくＬＤＰＣコードの反復復号の過程について、さらに詳細に説明する。
【０００８】
図３は、一般的なＬＤＰＣの全体のブロック図を示す。
図３を参照すると、ＬＤＰＣ復号化装置は、受信情報を記憶しているメモリブロック３００と、変数ノードに関連した演算を遂行する変数ノードプロセッサー３４０と、検査ノードに関連した演算を遂行する検査ノードプロセッサー３２０と、検査ノードでエラーがすべて訂正されたか否かを検査することによって、反復復号を遂行するか否かを決定するパリティ検査ブロック３３０と、効率的であり、高速のメモリアクセスを遂行するためのメモリアクセスコントローラー３１０とから構成される。
【０００９】
ＬＤＰＣの概略的な復号順序は、次の通りである。
一番目に、受信されたシンボルが変数ノードの初期値としてメモリブロック３００に貯蔵される。
二番目に、検査ノードプロセッサー３２０がメモリブロック３００に貯蔵されている変数ノード値を読み出して、パリティチェックブロック３３０は、上記読み出された変数ノード値のパリティ検査を遂行し、検査ノードプロセッサー３２０は、上記読み出された変数ノード値の０及び１に対する送信遷移確率（transmission path transition probability）を計算し、上記計算された確率値をメモリブロック３００の変数ノード値として上書きする（overwrite）。
三番目に、変数ノードプロセッサー３４０は、メモリブロック３００に上書きされた変数ノード値を読み出し、上記読み出された変数ノード値を使用して尤度比（Log Likelihood Ratio；ＬＬＲ）を計算する。
四番目に、パリティチェックブロック３３０がパリティチェックに成功し、反復復号の終了を決定するときまで、二番目及び三番目の過程を反復して信頼度を高める。
ここで、変数ノードプロセッサー３４０及び検査ノードプロセッサー３２０は、それぞれのパリティ検査行列の列及び行で１の位置に該当するメモリ領域から値を読み出して計算した後に、上記計算された値を同一のメモリ領域に上書きする。
【００１０】
上述したように、検査ノードプロセッシングと変数ノードプロセッシングとを別途に遂行する演算アルゴリズムは、多くのメモリの容量を使用する。すなわち、メモリブロック３００は、エッジ（edge）に関する情報のすべてを記憶しなければならないし、検査ノードプロセッサー３２０及び変数ノードプロセッサー３４０の各々は、メモリブロック３００から必要な値を読み出して、該当演算を遂行してＬＬＲ値を求める。このとき、上記アルゴリズムは、すべてのエッジに対して検査ノードプロセッシングを遂行した後に、変数ノードプロセッシングを遂行する。結果的に、変数ノードプロセッサー３４０は、上記アルゴリズムが検査ノードプロセッシングをすべて遂行する間には、アイドルモードで動作する。上記アルゴリズムが変数ノードプロセッシングを遂行する場合に、検査ノードプロセッサー３２０も上記アイドルモードで動作する。すなわち、１つのメモリブロックから多様なタイプのデータを読み出さなければならないので、メモリアクセスの遅延を引き起こす、という短所があった。 
【発明の開示】
【発明が解決しようとする課題】
【００１１】
上記背景に鑑みて、本発明の目的は、ＬＤＰＣ復号器の効率的な実現のための復号アルゴリズム及びそれに適合した復号器の構造を提供することにある。
本発明の他の目的は、ＬＤＰＣ復号器の効率的な実現のためのメモリ構造及びそれに従う効率的な復号アルゴリズムを提供することにある。
本発明のまた他の目的は、ＬＤＰＣ復号器のメモリ分割を最小にし、検査ノードプロセッシング及び変数ノードプロセッシングを同時に遂行する方法及び装置を提供することにある。
【課題を解決するための手段】
【００１２】
このような目的を達成するために、本発明の１つの特徴によれば、低密度パリティ検査コードを使用する移動通信システムにおける順方向エラー訂正符号を復号する装置は、受信情報を複数の検査ノードで受信し、上記受信された情報に関する検査ノードプロセッシングを遂行する検査ノードプロセッサーと、上記検査ノードプロセッサーからの検査ノード出力値を以前の累算値と累算する累算器と、上記検査ノード出力値を記憶するエッジメモリと、上記累算器からの累算値と上記以前の累算値とを記憶する複数の累算メモリと、上記累算器の累算値から上記エッジメモリから読み出された上記検査ノード出力値を減算する減算器と、上記受信情報及び上記減算器の出力値に対する硬判定を遂行する硬判定部と、上記硬判定の結果を記憶するビットバッファと、上記硬判定の結果に対するパリティ検査を遂行して反復復号を終了するか否かを決定するパリティ検査部と、上記減算器からの減算結果値を反復復号のために検査ノードプロセッサーへ伝達すると同時に、硬判定部へ伝達する多重化器とを具備することを特徴とする。
【００１３】
本発明の他の１つの特徴によれば、低密度パリティ検査コードを使用する移動通信システムにおける順方向エラー訂正符号を復号する方法は、受信情報を複数の検査ノードから行の単位で受信し、上記受信情報の検査ノードプロセッシングを遂行するステップと、上記検査ノードプロセッシングの結果値を以前の累算値と累算するステップと、上記検査ノードプロセッシングの結果値を記憶するステップと、上記累算値と上記以前の累算値とを区分して記憶するステップと、上記累算値から上記検査ノードプロセッシングの結果値を減算するステップと、上記受信情報及び上記減算結果値に対して硬判定を遂行するステップと、上記硬判定の結果を記憶し、上記硬判定の結果に対するパリティ検査を遂行して反復復号を終了するか否かを決定するステップと、上記減算結果値を反復復号のために記憶すると同時に、硬判定部へ伝達するステップとを具備することを特徴とする。
【発明の効果】
【００１４】
本発明は、ＬＤＰＣの非効率的なメモリ分割及び復号アルゴリズムを改善し、検査ノードプロセッシングと変数ノードプロセッシングとを同時に遂行することによって、処理量を向上させることができる、という効果がある。また、単純なメモリ分割及びノードプロセッサーの単純化を経たハードウェアの複雑度を減少させることができる、という効果がある。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の好適な一実施形態を添付図面を参照しつつ詳細に説明する。なお、下記の説明において、本発明の要旨のみを明瞭にする目的で、関連した公知の機能又は構成に関する具体的な説明は省略する。そして、下記に説明する用語は、本発明での機能を考慮して定義されたもので、これは、設計者の意図及び慣例などに従って変更することができる。従って、その用語は、本明細書の全般にわたった内容に基づいて定義することができる。
【００１６】
図４は、一般的な復号過程に従うメモリ分割を示す図である。
図４を参照すると、パリティ検査行列のためのメモリ及び単位行列（identity matrix）のためのメモリが備えられ、上記メモリは、検査ノードプロセッサー及び変数ノードプロセッサーのノード数だけのサブメトリックブロックに分割される。すなわち、上記メモリの行は、検査ノードと並列に接続され、上記メモリの列から分割されたサブメトリックブロックは、変数ノードと並列に連結される。影付けの小さいブロックは、受信信号‘１’を貯蔵しているサブメトリックブロックを示す。
ステップ１で、各メモリのサブメトリックブロックに受信情報が入力される。
ステップ２で、検査ノードプロセッシング部４１０は、各列から分割されたサブメトリックブロックの値のそれぞれに対して、検査ノードプロセッシング及びパリティ検査を遂行した後に、上記検査ノードプロセッシングの結果値を上記サブメトリックブロックにさらに貯蔵して検査ノードメッセージを更新する。
ステップ３で、変数ノードプロセッシング部４２０は、各行のサブメトリックブロックに更新された値を読み出して変数ノード演算を遂行し、硬判定及びＬＬＲを遂行した後に、上記サブメトリックブロックに上記結果値をさらに記憶することによって、変数ノードメッセージを更新する。上記メモリのサブメトリックブロックのサイズは、変数ノード及び検査ノードプロセッサーの個数に従って決定される。従って、上記変数ノード及び検査ノードプロセッサーの個数が増加するほど、メモリから分割されたサブメトリックブロックの個数を増加させるので、ハードウェアの複雑度を増加させる。しかしながら、上記変数ノード及び検査ノードプロセッサーの数が減少されて、メモリから分割されたサブメトリックブロックの数が減少されると、メモリアクセスの速度及びそれに従う処理量が低減される。
【００１７】
図５は、一般的なＬＤＰＣ復号アルゴリズムのフローチャートである。
図５を参照すると、検査ノードプロセッシングプロセス５８０及び変数ノードプロセッシングプロセス５９０は、順次に接続され、１つの演算過程は、他の演算過程が終了した後に遂行される。２つの演算過程は、上記アルゴリズムがパリティチェックに成功するときまで反復（iteration）される。
ステップ５００で、検査ノードプロセッサーは、受信情報を読み出してメモリに記憶する。このような過程を“ＬＤＰＣ復号の初期化”と称する。
ステップ５１０で、検査ノードプロセッサーは、上記メモリのサブメトリックブロックに記憶された情報ビットを読み出して、ステップ５２０で、検査ノードプロセッシングを遂行すると同時に、ステップ５２５で、上記情報ビットのパリティをチェックする。このとき、パリティチェック結果が‘良好’であれば、上記検査ノードプロセッサーは、反復復号を中止する。一方、ステップ５３０で、上記検査ノードプロセッサーは、上記検査ノードプロセッシング結果値を使用して、上記メモリに変数ノード値を更新し、これによって、検査ノードメッセージを更新する。上記検査ノードメッセージの更新（check node massage update）過程を遂行した後に、変数ノードプロセッシング過程５９０へ進行する。
ステップ５４０で、変数ノードプロセッサーは、上記メモリのサブメトリックブロックから上記検査ノードメッセージに従って更新された変数ノード値を読み出す。ステップ５５０で、変数ノードプロセッサーは、上記更新された変数ノード値を加算し、ステップ５６０で、上記加算結果値から該当行の変数ノード値を減算した後に、ステップ５６５で、上記減算結果値の硬判定（hard decision）を遂行する。ステップ５７０で、上記減算結果値を変数ノード値として、上記メモリのサブメトリックブロックに記憶した後に、ステップ５１０へ戻る。
【００１８】
上述したように、一般的なＬＤＰＣ復号アルゴリズムは、すべての情報ビットに対して、検査ノードプロセッシングを遂行した後に、順次的に変数ノードプロセッシングを遂行する。このような一般的なアルゴリズムに比べて、下記で説明する本発明の実施形態によるアルゴリズムは、それぞれ変数ノードプロセッサーを備えず、検査ノードプロセッサーのみを使用して検査ノードプロセッシング及び変数ノードプロセッシングを並列に実現して処理量を増加させる。
【００１９】
図６は、本発明の実施形態によるメモリの構成を示す図である。
図６を参照すると、メモリ６００は、検査ノードプロセッサーの数（D）だけのサブメトリックブロックに分割され、１つのサブメトリックブロックは、１つの検査ノードプロセッサーにマッピングすることができる。上記サブメトリックブロックのサイズ（Ｓｓｕｂ＿ｍｅｔｒｉｃ）は、設計者が定義したパリティ検査行列の各行にある１の個数に従って決定される。
具体的に、メモリ６００の入力情報は、上記サブメトリックブロックの数（D）、すなわち、検査ノードプロセッサーの数（D）だけの行の単位に分割されて、それぞれのサブメトリックブロックに同時に入力される。ここで、上記入力情報の行の単位を“１ワード（word）”と称する。
Nｓｕｂ＿ｂｌｏｃｋ＃は、１つのサブメトリックブロックに対応する検査ノードの個数であって、１つの行に記憶された１の個数と同一である。Ｓｓｕｂ＿ｂｌｏｃｋ＿ｓｉｚｅ＃は、サブメトリックブロックの大きさを示し、該当サブメトリックブロックの検査ノードに記憶されている１の個数と同一である。
サブメトリックブロックに入力されたデータがワード（word）として形成されるので、メモリ６００の入力データは、比較的広いビット幅（bitwidth）を有する。従って、上記情報は、上記サブメトリックブロックに対応した検査ノードに同時に入力され、検査ノードの出力値は、メモリ６００にさらに入力され、これによって、上記検査ノードに対する並列性（Parallelism）を保証する。
【００２０】
図７は、本発明の実施形態によるＬＤＰＣ復号器の構成を示す図である。
図７を参照すると、ＬＤＰＣ復号器は、検査ノードプロセッサー７６０の検査ノードに対応するエッジメモリ（edge memory）７１０と、２つの累算メモリ７３０ａ及び７３０ｂとを備える。エッジメモリ７１０は、別途の硬判定値を記憶するための別途のメモリ空間を有せず、図６に示したようなメモリの構成を有する。硬判定部７７０の復号結果は、ビットバッファ７８０に記憶される。
【００２１】
検査ノードプロセッサー７６０は、受信情報を記憶するための受信バッファで、各サブメトリックブロックから受信された行の単位の情報に対して、検査ノードプロセッシングを遂行した後に、上記検査ノードプロセッシングの結果値を使用して、エッジメモリ７１０に検査ノード値を更新する。
また、検査ノードプロセッサー７６０から出力された値は、累算器（accumulator）７２０に接続されて、第１の累算メモリ７３０ａに記憶されている以前の検査ノード値に加算された後に、第２の累算メモリ７３０ｂに記憶される。すなわち、第１の累算メモリ７３０ａは、現在の検査ノードプロセッシングを遂行する以前の検査ノード値を記憶し、第２の累算メモリ７３０ｂは、第１の累算メモリ７３０ａの以前の検査ノード値に現在の検査ノード値を加算することによって累算された値を記憶する。
減算器７４０は、第２の累算メモリ７３０ｂの累算値からエッジメモリ７１０に記憶されている値のうち、該当サブメトリックブロックのメモリ値を減算し、多重化器（ＭＵＸ）７５０を介して上記減算結果を検査ノードプロセッサー７６０及び硬判定部７７０のすべてに提供する。硬判定部７７０は、上記減算結果を使用して硬判定を遂行することによって０及び１のうちの１つを選択する。
ビットバッファ７８０は、硬判定部７７０からの硬判定値を記憶し、パリティチェックブロック７９０は、上記硬判定値のパリティ検査を遂行する。パリティチェックブロック７９０のパリティチェック結果が‘良好’であれば、ＬＤＰＣ復号器は、反復復号を終了してビットバッファ７８０の硬判定値を復号結果として出力する。しかしながら、上記パリティ検査の結果が‘不良’であれば、ＬＤＰＣ復号器は、上記受信バッファの次のサブメトリックブロックの受信情報を読み出す。
【００２２】
図７に示すように、本発明の実施形態によるＬＤＰＣ復号器は、各サブメトリックブロックに対して、以前の反復検査ノード値と、現在の反復までの検査ノード値とを累算することによって生成された合計値をすべて記憶するために、２つの累算メモリ７３０ａ及び７３０ｂを使用し、変数ノードプロセッサーは使用しない。従来のＬＤＰＣ復号器で使用された変数ノードプロセッサーの全体の大きさは、検査ノードプロセッサーの大きさと類似している。従って、本発明の実施形態によるＬＤＰＣ復号器は、メモリ容量を増加させるが、変数ノードによるメモリ分割を減少させ、変数ノードプロセッサーを使用しない。これによって、メモリの入出力ポートの増加による複雑度を減少させ、処理量を増加させる。
【００２３】
以下、図４及び図８を参照して、本発明の実施形態による復号アルゴリズムを説明する。
図８は、本発明の実施形態による復号アルゴリズムを示す概念図である。
図４のステップ２及びステップ３を順次に遂行して一回の反復を遂行しなければならない従来の復号アルゴリズムに比べて、本発明の実施形態による復号アルゴリズムは、図８のステップ２のみで復号を遂行する。
具体的に、図８を参照すると、メモリ８００の各行は、検査ノードプロセッサーの数だけサブメトリックブロックに分割され、影付けの小さいブロックの各々は、受信情報の‘１’の値を記憶する。
ステップ１において、メモリ８００のサブメトリックブロックのそれぞれに受信情報が行の単位で入力される。
ステップ２において、ブロック８４０で、上記復号アルゴリズムは、上記サブメトリックブロックのメモリ値を読み出し、上記読み出されたメモリ値の検査ノードプロセッシング及びパリティ検査を遂行する。ブロック８４０で、上記検査ノードプロセッシングの結果値は、サブメトリックブロックのメモリ値に累算される。上記復号アルゴリズムは、上記累算された値から上記検査ノードプロセッシングの結果値を減算することによって、変数ノード値を計算する。上記変数ノード値は、メモリ値としてサブメトリックブロックにさらに記憶される。上記変数ノード値のパリティ検査を遂行した後に、上記パリティ検査結果が‘良好’であれば、上記復号アルゴリズムは、反復を中止する。しかしながら、上記パリティ検査結果が‘不良’であれば、上記復号アルゴリズムは、継続して反復復号を遂行する。
【００２４】
図９は、本発明の実施形態による復号アルゴリズムのフローチャートである。
図９を参照すると、ステップ９０２で、ＬＤＰＣ復号器は、受信バッファのサブメトリックブロックから受信された情報を読み出す。ステップ９０４で、上記受信情報は、累算メモリに記憶され、ステップ９０６で、上記受信情報に対して検査ノードプロセッシングが遂行され、検査ノード出力値が生成される。ステップ９０８で、エッジメモリ内のメモリ値は、上記検査ノード出力値に更新されると同時に、ステップ９１０で、上記検査ノード出力値は、以前の反復検査ノード出力値と累算されて、変数ノードメッセージを生成する。ステップ９１４で、上記生成された変数ノードメッセージは、該当サブメトリックブロックの累算値を更新するのに使用される。
すべての受信データに対する検査ノードプロセッシングが終了すると、上記復号器は、上記検査ノード出力値の累算を中止させる。その後に、次の反復のために、ステップ９１８で、上記復号器は、上記サブメトリックブロックから上記更新された累算値を読み出して、ステップ９１２で、上記更新されたエッジメモリ値、すなわち、上記更新された検査ノード出力値を読み出す。ステップ９１６で、上記復号器は、上記累算メモリに累算された上記更新された検査ノード出力値から上記エッジメモリの更新された検査ノード出力値を減算する。ステップ９２０乃至ステップ９２２で、上記復号器は、上記減算結果値、すなわち、上記検査ノード入力値の硬判定及びパリティ検査をそれぞれ遂行する。上記パリティ検査の結果が‘良好’であれば、上記復号器は、反復復号を中止し、上記硬判定値を出力する。
ステップ９０６乃至ステップ９１０で、検査ノード及び累算器は、入力値を並列に受信して、メモリアクセスのプロセスを非常に簡素化させる。
【００２５】
以上、本発明の詳細について具体的な実施の形態に基づき説明してきたが、本発明の範囲を逸脱しない限り、各種の変形が可能なのは明らかである。従って、本発明の範囲は、上記実施の形態に限定されるものではなく、特許請求の範囲の記載及び該記載と同等なものにより定められるべきである。
【図面の簡単な説明】
【００２６】
【図１】ＬＤＰＣ復号構成の一例を示す図である。
【図２】ファクターグラフ及びパリティ検査行列を示す図である。
【図３】一般的なＬＤＰＣのブロックを示す図である。
【図４】従来のメモリ分割に従う復号過程を示す図である。
【図５】従来の復号アルゴリズムのフローチャートである。
【図６】本発明の実施形態によるメモリの構成を示す図である。
【図７】本発明の実施形態によるＬＤＰＣ復号器の構成を示す図である。
【図８】本発明の実施形態による復号アルゴリズムを示す概念図である。
【図９】本発明の実施形態による復号アルゴリズムを示すフローチャートである。
【符号の説明】
【００２７】
６００、８００  メモリ
７１０  エッジメモリ
７２０  累算器
７３０ａ、７３０ｂ  累算メモリ
７４０  減算器
７５０  多重化器
７６０  検査ノードプロセッサー
７７０  硬判定部
７８０  ビットバッファ
７９０  パリティチェックブロック
８４０  ブロック
【図１】
2006121686.tif 000003
【図２】
2006121686.tif 000004
【図３】
2006121686.tif 000005
【図４】
2006121686.tif 000006
【図５】
2006121686.tif 000007
【図６】
2006121686.tif 000008
【図７】
2006121686.tif 000009
【図８】
2006121686.tif 000010
【図９】
2006121686.tif 000011
【外国語明細書】
2006121686.tif 000012
2006121686.tif 000013
2006121686.tif 000014
2006121686.tif 000015
2006121686.tif 000016
2006121686.tif 000017
2006121686.tif 000018
2006121686.tif 000019
2006121686.tif 000020
2006121686.tif 000021
2006121686.tif 000022
2006121686.tif 000023
2006121686.tif 000024
2006121686.tif 000025
2006121686.tif 000026
2006121686.tif 000027
2006121686.tif 000028
2006121686.tif 000029
2006121686.tif 000030
2006121686.tif 000031
2006121686.tif 000032
2006121686.tif 000033
2006121686.tif 000034