(57)【要約】【課題】送信または受信側でデータを符号化または復号化するときに性能を向上できるＬＰＤＣコードを用いた符号化及び復号化方法を提供する。【解決手段】送信側からパリティ検査行列を用いて符号化された信号を受信する段階と、前記受信信号を前記パリティ検査行列を用いて復号化する段階と、を含み、前記パリティ検査行列は、複数のレイヤーからなり、前記各レイヤー間には、列方向に非ゼロ構成要素が互いに重畳しないことを特徴とし、一つのレイヤーは、少なくとも一つ以上の行を含むことを特徴とするチャネルコードを用いた復号化方法を構成する。【選択図】図２Ａ
2008526086.tif 000002
【特許請求の範囲】
【請求項１】
送信側からパリティ検査行列を用いて符号化された信号を受信する段階と、
前記受信信号を前記パリティ検査行列を用いて復号化する段階と、を含み、
前記パリティ検査行列は、複数のレイヤーからなり、前記各レイヤー間には、列方向に非ゼロ構成要素が互いに重畳しないことを特徴とし、
一つのレイヤーは、少なくとも一つ以上の行を含むことを特徴とするチャネルコードを用いた復号化方法。
【請求項２】
前記パリティ検査行列は、隣接する各レイヤー間の重畳しない基本行列から拡張されて生成されることを特徴とする請求項１に記載のチャネルコードを用いた復号化方法。
【請求項３】
前記パリティ検査行列は、互いに隣接する各レイヤー間の列の方向に非ゼロ構成要素が互いに重畳しないことを特徴とする請求項１に記載のチャネルコードを用いた復号化方法。
【請求項４】
前記パリティ検査行列は、前記特定個数のレイヤーにおいて、各レイヤーの重みの存在する位置が列方向に互いに異なることを特徴とする請求項１に記載のチャネルコードを用いた復号化方法。
【請求項５】
前記パリティ検査行列は、前記行列の行の順序が調整され、同一のコードワードを生成する別個のパリティ検査行列に変換されることを特徴とする請求項１に記載のチャネルコードを用いた復号化方法。
【請求項６】
パリティ検査行列を用いて符号化された信号を受信する段階と、
複数のレイヤーを含み、前記各レイヤー間の列方向に非ゼロ構成要素が互いに重畳しないように構成されたパリティ検査行列を用いて、互いに重畳しない特定個数のレイヤー単位で前記受信信号を復号化する段階と、を含み、
一つのレイヤーは、少なくとも一つ以上の行を含むことを特徴とするチャネルコードを用いた復号化方法。
【請求項７】
前記パリティ検査行列は、隣接する各レイヤー間の重畳しない基本行列から拡張されて生成されることを特徴とする請求項６に記載のチャネルコードを用いた復号化方法。
【請求項８】
前記復号化されたコードワードが真値であるか否かを検査する段階をさらに含むことを特徴とする請求項６に記載のチャネルコードを用いた復号化方法。
【請求項９】
前記復号化する段階は、
前記受信信号に相応するデータを任意のレイヤーに入力し、前記任意のレイヤーに入力されたデータを更新する段階を含んで構成されることを特徴とする請求項６に記載のチャネルコードを用いた復号化方法。
【請求項１０】
前記レイヤーに入力された確率値を更新する段階は、
前記任意のレイヤーに対して検査ノードからビットノードにデータを更新する段階と、
前記任意のレイヤーに対して前記ビットノードから前記検査ノードにデータを更新する段階と、を含むことを特徴とする請求項９に記載のチャネルコードを用いた復号化方法。
【請求項１１】
前記入力されたデータは、前記データ更新段階を通して更新されたデータであることを特徴とする請求項９に記載のチャネルコードを用いた復号化方法。
【請求項１２】
前記パリティ検査行列は、前記行列の行の順序が調整され、同一のコードワードを生成する別個のパリティ検査行列に変換されることを特徴とする請求項６に記載のチャネルコードを用いた復号化方法。
【請求項１３】
前記パリティ検査行列は、前記行列の行の順序が調整され、同一のコードワードを生成する別個のパリティ検査行列に変換されることを特徴とする請求項６に記載のチャネルコードを用いた復号化方法。
【請求項１４】
パリティ検査行列を用いて符号化された信号を受信する受信モジュールと、
複数のレイヤーを含み、前記各レイヤー間の列方向に非ゼロ構成要素が互いに重畳しないように構成されたパリティ検査行列の情報を保存するメモリと、
前記メモリから得た前記パリティ検査行列の情報を用いて、互いに重畳しない特定個数のレイヤー単位で受信信号を復号化する復号化モジュールと、を含み、
一つのレイヤーは、少なくとも一つ以上の行を含むことを特徴とするチャネルコードを用いた復号化装置。
【請求項１５】
前記パリティ検査行列は、隣接する各レイヤー間の重畳しない基本行列から拡張されて生成されることを特徴とする請求項１４に記載のチャネルコードを用いた復号化装置。
【請求項１６】
前記復号化モジュールは、前記復号化されたコードワードが真値であるか否かを検査する検査モジュールを含むことを特徴とする請求項１４に記載のチャネルコードを用いた復号化装置。
【請求項１７】
前記復号化モジュールは、
任意のレイヤーに入力されたデータを更新するもので、前記受信信号に相応するデータを検査ノードからビットノードに更新する少なくとも一つ以上の検査ノード更新ユニットと、
前記任意のレイヤーに入力された、前記受信信号に相応するデータを前記ビットノードから前記検査ノードに更新する少なくとも一つ以上のビットノード更新ユニットと、を含むことを特徴とする請求項１４に記載のチャネルコードを用いた復号化装置。
【請求項１８】
前記入力されたデータは、前記検査ノード更新ユニットまたはビットノード更新ユニットによって既に更新されたデータであることを特徴とする請求項１７に記載のチャネルコードを用いた復号化装置。
【請求項１９】
前記検査ノード更新ユニットの個数は、前記重畳しないレイヤーに含まれた行の個数によって決定されることを特徴とする請求項１７に記載のチャネルコードを用いた復号化装置。
【請求項２０】
前記パリティ検査行列は、互いに隣接する各レイヤー間の列方向に非ゼロ構成要素が互いに重畳しないことを特徴とする請求項１４に記載のチャネルコードを用いた復号化装置。
【請求項２１】
前記パリティ検査行列は、前記行列の行の順序が調整され、同一のコードワードを生成する別個のパリティ検査行列に変換されることを特徴とする請求項１４に記載のチャネルコードを用いた復号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化及び復号化方法に関するものである。一層具体的には、メモリ容量を多く占めずにも性能を向上できるとともに、具現時におけるハードウェアの複雑度を減少させて符号化及び復号化の性能を向上できる低密度パリティ検査（Ｌｏｗ  Ｄｅｎｓｉｔｙ  Ｐａｒｉｔｙ  Ｃｈｅｃｋ：以下、ＬＤＰＣという）コードを用いた符号化、復号化方法及びその装置に関するものである。
【背景技術】
【０００２】
最近、ＬＤＰＣコードを用いた符号化方法が浮き彫りになっている。ＬＤＰＣコードは、パリティ検査行列Ｈのほとんどの元素が０であるので、低密度の線形ブロック符号として１９６２年にＧａｌｌａｇｅｒによって提案された。ＬＤＰＣ符号は、非常に複雑であって、提案当時の技術では具現不可能であったが、１９９５年に再び発見され、非常に優れた性能が立証されて以来、最近まで活発に研究されている。（参考文献：［１］非特許文献１（Ｒｏｂｅｒｔ  Ｇ．Ｇａｌｌａｇｅｒ、”Ｌｏｗ―Ｄｅｎｓｉｔｙ  Ｐａｒｉｔｙ―Ｃｈｅｃｋ  Ｃｏｄｅｓ”、Ｔｈｅ  ＭＩＴ  Ｐｒｅｓｓ、Ｓｅｐｔｅｍｂｅｒ  １５、１９６３）；［２］非特許文献２（Ｄ．Ｊ．Ｃ．Ｍａｃｋａｙ、Ｇｏｏｄ  ｅｒｒｏｒ―ｃｏｒｒｅｃｔｉｎｇ  ｃｏｄｅｓ  ｂａｓｅｄ  ｏｎ  ｖｅｒｙ  ｓｐａｒｓｅ  ｍａｔｒｉｃｅｓ、ＩＥＥＥ  Ｔｒａｎｓ．Ｉｎｆｏｒｍ．Ｔｈｅｏｒｙ、ＩＴ―４５、ｐｐ．３９９―４３１（１９９９）））。
【０００３】
ＬＤＰＣコードのパリティ検査行列は、１の個数が非常に少ないので、非常に大きいブロック大きさでも反復復号を通して復号可能であり、ブロック大きさが非常に大きくなると、ターボコードのようにＳｈａｎｎｏｎのチャネル容量限界に近接する性能を示す。前記パリティ検査行列において、行または列に含まれた１の個数を重み（ｗｅｉｇｈｔ）という。
【０００４】
ＬＤＰＣコードは、（ｎ−ｋ）×ｎパリティ検査行列Ｈによって説明される。前記パリティ検査行列Ｈに対応する生成行列Ｇは、次の数学式１によって求められる。
［数学式１］
Ｈ・Ｇ＝０
ＬＤＰＣコードを用いた符号化及び復号化方法において、送信側では、前記パリティ検査行列Ｈと数学式１の関係にある前記生成行列Ｇを用いた数学式２によって入力データを符号化することができる。
［数学式２］
ｃ＝Ｇ・ｘ（ここで、ｃは、コードワードで、ｘは、情報ビットである）
以下、従来技術に係る前記Ｈ行列を用いる復号化方法を説明する。
【０００５】
受信側のデコーダーは、送信側の符号化結果であるコードワードｃから情報ビットｘを求めるべきであるが、Ｈｃ＝０の条件を用いて情報ビットを決定する。すなわち、受信されたコードワードをｃ’としたとき、Ｈｃ’の値を計算し、Ｈｃ’の計算結果が０である場合、ｃ’の前にあるｋ個のビットを、デコーディングされた情報ビットと決定する。Ｈｃ’の値が０でない場合、グラフを通したｓｕｍ−ｐｒｏｄｕｃｔアルゴリズム、信頼度伝播（ｂｅｌｉｅｆ  ｐｒｏｐａｇａｔｉｏｎ）アルゴリズムなどを用いて、Ｈｃ’＝０を満足するｃ’を探してｘを復旧する。前記検査式Ｈｃ’＝０は、前記情報ビットと前記Ｇ行列との関係によってｃ’ＨＴ＝０に変わり得るので、前記検査式は、前記情報ビットと前記Ｇ行列との関係によって変わる。
【０００６】
図１は、パリティ検査行列Ｈを二部グラフ（Ｂｉｐａｒｔｉｔｅ  ｇｒａｐｈ）を通して示した図である。図１において、ＣＮＵ（Ｃｈｅｃｋ  Ｎｏｄｅ  ｕｎｉｔ）は、検査ノードユニットを示し、ＶＮＵ（ｖａｒｉａｂｌｅ  ｎｏｄｅ  ｕｎｉｔ）は、ビットノードユニットを示す。二部グラフにアルゴリズムを適用して復号化する過程は、大きく三つの過程に分けられる。
１．検査ノードからビットノードへの確率値更新
２．ビットノードから検査ノードへの確率値更新
３．ビットノードの確率を通した復号値決定
まず、前記第１過程を行うために、チャネルから受信された確率値が入力される初期化段階を経て、前記検査ノードの更新を行う。前記第１過程を終了した後、前記ビットノードから検査ノードへの確率値が更新されると、第２過程を行う。前記第１及び第２過程を終了した後、前記チャネルから受信された確率値と、前記第１及び第２過程を通して更新された確率値を用いて復号値を決定する。
【０００７】
復号化過程は、第１及び第２過程を経た後、第３過程で前記決定された復号値ｃ’が検査式Ｈｃ’＝０を満足する場合、前記値ｃ’を正確に受信された復号値と決定し、そうでないと、前記検査式を満足するまで前記第１及び第２過程を所定回数だけ繰り返す。前記第１及び第２過程で行われる確率値の更新過程では、パリティ検査行列の各行または列に属する非ゼロ（ｎｏｎｚｅｒｏ）成分の個数、すなわち、１の個数だけ各更新過程を繰り返す。すなわち、前記パリティ検査行列Ｈの重みに該当する位置で、前記第１過程の更新及び前記第２過程の更新が行われる。前記第１及び第２過程を繰り返すほど、検査ノードとビットノードとの間の確率値の信頼度が高くなり、その結果、求めようとするコードワードの真値に近接するようになる。
【０００８】
最近は、ＬＤＰＣ符号化において、前記生成行列Ｇによらず、前記パリティ検査行列Ｈを用いて入力データを符号化する方法が一般的に用いられている。したがって、上述したように、ＬＤＰＣコードを用いた符号化方法では、前記パリティ検査行列Ｈが最も重要な要素と言える。前記パリティ検査行列Ｈは、約１０００×２０００以上の大きさを有するので、符号化及び復号化過程で多くの演算が要求され、具現が非常に複雑であり、多くの保存空間が要求されるという問題点がある。
【非特許文献１】Ｒｏｂｅｒｔ  Ｇ．Ｇａｌｌａｇｅｒ、”Ｌｏｗ―Ｄｅｎｓｉｔｙ  Ｐａｒｉｔｙ―Ｃｈｅｃｋ  Ｃｏｄｅｓ”、Ｔｈｅ  ＭＩＴ  Ｐｒｅｓｓ、Ｓｅｐｔｅｍｂｅｒ  １５、１９６３．
【非特許文献２】Ｄ．Ｊ．Ｃ．Ｍａｃｋａｙ、Ｇｏｏｄ  ｅｒｒｏｒ―ｃｏｒｒｅｃｔｉｎｇ  ｃｏｄｅｓ  ｂａｓｅｄ  ｏｎ  ｖｅｒｙ  ｓｐａｒｓｅ  ｍａｔｒｉｃｅｓ、ＩＥＥＥ  Ｔｒａｎｓ．Ｉｎｆｏｒｍ．Ｔｈｅｏｒｙ、ＩＴ―４５、ｐｐ．３９９―４３１（１９９９）
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明は、上記の問題点を解決するためのもので、その目的は、送信または受信側でデータを符号化または復号化するときに性能を向上できるＬＰＤＣコードを用いた符号化及び復号化方法を提供することにある。
【課題を解決するための手段】
【００１０】
本発明の実施例に係る復号化方法は、送信側からパリティ検査行列を用いて符号化された信号を受信する段階と、前記受信信号を前記パリティ検査行列を用いて復号化する段階と、を含み、前記パリティ検査行列は、複数のレイヤーからなり、前記各レイヤー間には、列方向に非ゼロ構成要素が互いに重畳しないことを特徴とし、一つのレイヤーは、少なくとも一つ以上の行を含むことを特徴とする。
【００１１】
本発明の実施例に係る復号化方法の他の一例は、パリティ検査行列を用いて符号化された信号を受信する段階と、複数のレイヤーを含み、前記各レイヤー間の列方向に非ゼロ構成要素が互いに重畳しないように構成されたパリティ検査行列を用いて、互いに重畳しない特定個数のレイヤー単位で前記受信信号を復号化する段階と、を含み、一つのレイヤーは、少なくとも一つ以上の行を含むことを特徴とする。
【００１２】
本発明の実施例に係る復号化装置は、パリティ検査行列を用いて符号化された信号を受信する受信モジュールと、複数のレイヤーを含み、前記各レイヤー間の列方向に非ゼロ構成要素が互いに重畳しないように構成されたパリティ検査行列の情報を保存するメモリと、前記メモリから得た前記パリティ検査行列の情報を用いて、互いに重畳しない特定個数のレイヤー単位で受信信号を復号化する復号化モジュールと、を含み、一つのレイヤーは、少なくとも一つ以上の行を含むことを特徴とする。
【産業上の利用可能性】
【００１３】
本発明は、符号化及び復号化を必要とする通信システムに適用されるとともに、符号化及び復号化が必要な多様な装置に適用される。
【００１４】
本発明に係るＬＰＤＣコードを用いた符号化及び復号化方法によると、送信または受信側でデータを符号化または復号化するときに性能を向上できるという効果がある。
【発明を実施するための最良の形態】
【００１５】
以下、本発明に係るＬＤＰＣコードを用いた符号化方法の好適な実施例を、添付の図面に基づいて説明する。図２Ａは、本発明の好適な一実施例を説明するための図で、本発明の技術的特徴が無線通信システムに適用された一例である。以下で説明される実施例は、本発明の特徴を説明するための例示に過ぎなく、当業者であれば、本発明の技術的特徴を符号化が必要な全ての分野に適用可能であることを理解できるだろう。
【００１６】
図２Ａに示すように、送信機１０と受信機３０は、無線チャネル２０を介して通信を行う。前記送信機１０では、データソース１１から出力されたｋビットのソースデータｕが、ＬＤＰＣ符号化モジュール１３でＬＤＰＣ符号化されてｎビットのコードワードｃになる。コードワードｃは、変調モジュール１５によって無線変調されてアンテナ１７を通して送信され、無線チャネル２０を通して前記受信機３０のアンテナ３１に受信される。前記受信機３０では、前記送信機１０で起きた過程の逆過程を経る。すなわち、受信されたデータが復調モジュール３３によって復調され、ＬＤＰＣ復号化モジュール３５によって復号されることで、最終的にソースデータｕを得られる。上述したデータ送受信過程は、本発明の特徴を説明するために必要な最小限の範囲内で説明されたもので、当業者であれば、この他にもデータ伝送のために必要な多くの過程があることを理解できるだろう。
【００１７】
前記ＬＤＰＣ符号化モジュールで入力ソースデータを符号化するために用いられる前記パリティ検査行列Ｈは、（ｎ−ｋ）×ｎ次元を有する。前記ｋは、前記ＬＤＰＣ符号化モジュール１３に入力されるソースデータの長さ（ビット単位）を意味し、前記ｎは、符号化されたコードワードｃの長さ（ビット単位）を意味する。前記パリティ検査行列Ｈは、図３に示すように、ｚ×ｚ次元の多数のパーミュテーション行列またはゼロ行列によって構成される。すなわち、図３において、Ｐｉ，ｊは、ｚ×ｚ次元のパーミュテーション行列またはゼロ行列を意味する。
【００１８】
前記多数のパーミュテーション行列は、少なくとも一つ以上の基本パーミュテーション行列から所定規則によって変形して形成されたものである。前記基本パーミュテーション行列は、単位行列であることが好ましい。また、前記一つ以上の基本パーミュテーション行列を含む前記多数のパーミュテーション行列は、行と列の重みが１であることが好ましい。すなわち、前記多数のパーミュテーション行列の全ての行及び全ての列の元素のうち、一つの元素のみが１で、残りの元素は０であることが好ましい。
【００１９】
本発明において、前記少なくとも一つ以上の基本パーミュテーション行列を所定規則で変形し、前記多数のパーミュテーション行列を形成する方法は、前記基本パーミュテーション行列の全ての行（または列）を所定間隔だけシフトさせる方法を含む。図４Ａ及び図４Ｂは、その一例を説明するための図である。すなわち、図４Ａの基本パーミュテーション行列の全ての行を下方に５行だけ（ｎｓ＝５）（または全ての列を右側に３列だけ）シフトさせ、図４Ｂのパーミュテーション行列を形成した。この方法によると、ｚ×ｚ次元の基本パーミュテーション行列に対してシフトされる行（または列）の間隔によって（ｚ−１）個のパーミュテーション行列を形成することができる。したがって、基本パーミュテーション行列を含むｚ個のパーミュテーション行列が形成される。前記基本パーミュテーション行列が与えられると、前記基本パーミュテーション行列を含む前記ｚ個のパーミュテーション行列は、それぞれ一つの整数で表現される。例えば、基本パーミュテーション行列を０で表現し、前記基本パーミュテーション行列の全ての行を１行だけシフトさせたパーミュテーション行列を１で表現し、前記基本パーミュテーション行列の全ての行を２行だけシフトさせたパーミュテーション行列を２で表現する方法によって全てのパーミュテーション行列を一つの整数で表現する。
【００２０】
上述したように、前記基本パーミュテーション行列から形成された多数のパーミュテーション行列のタイプは、シフトされた行（または列）の個数によって一つの整数で単純に表現される。前記多数のパーミュテーション行列のタイプを一つの整数で表現する方法は、例示的なものに過ぎなく、前記多数のパーミュテーション行列のタイプを他の方法によって表現することもできる。
【００２１】
本発明は、パリティ検査行列Ｈを用いて符号化または復号化を行うにおいて、前記少なくとも一つ以上の基本パーミュテーション行列と、前記少なくとも一つ以上の基本パーミュテーション行列の各行（または列）を所定間隔だけシフトさせて形成された多数のパーミュテーション行列のタイプを基本行列Ｈｂに保存した状態で、前記送信側または受信側で符号化または復号化が必要な時ごとに、前記少なくとも一つ以上の基本パーミュテーション行列及び前記基本行列Ｈｂを用いてパリティ検査行列Ｈを生成し、前記生成されたパリティ検査行列を用いて符号化または復号化を行うことを基本的な特徴とする。図２Ｂに示すように、本発明に係るＬＤＰＣコードを用いた符号化装置の好適な一実施例は、メモリモジュール１３１、パリティ検査行列生成モジュール１３２及び符号化モジュール１３４を含んで構成される。前記メモリモジュール１３１は、前記基本パーミュテーション行列及び前記基本行列を保存する。前記基本行列生成モジュール１３２は、前記メモリモジュール１３１に保存された前記基本パーミュテーション行列及び前記基本行列を用いて前記パリティ検査行列を生成する。前記符号化モジュール１３４は、前記パリティ検査行列生成モジュール１３２によって生成された前記パリティ検査行列を用いて入力ソースデータを符号化する。前記パリティ検査行列生成モジュール１３２及び前記符号化モジュール１３４が各機能によってソフトウェアまたはハードウェアで具現されることは、当業者にとって自明な事項である。
【００２２】
前記基本行列Ｈｂを［Ｈｄ｜Ｈｐ］の構造を有するＨｄ及びＨｐの二つの部分に分割して考慮すると、前記Ｈｐ部分には、一般的にブロック二重対角行列を用いることが好ましいが、これに限定されることはない。ブロック二重対角行列は、主対角及びこの主対角の真下または上側の対角が全て単位行列であり、残りが全てゼロ行列であることを意味する。前記Ｈｐ部分をブロック二重対角行列の形態にする場合、前記Ｈｐ部分には列重みが１である列が発生するが、これを避けるために、一つまたは二つ程度のゼロ行列を単位行列に取り替えることが好ましい。
【００２３】
前記基本行列ＨｂのＨｄ部分は、前記基本パーミュテーション行列と、前記基本パーミュテーション行列の各行を所定間隔だけシフトさせて形成した多数のパーミュテーション行列と、ゼロ行列の組み合わせによって構成されるが、前記三つの種類の行列を組み合わせて前記基本行列Ｈｂを構成するとき、次のような事項を考慮すると符号化または復号化の性能面で好ましい。
【００２４】
第一に、前記基本行列Ｈｂ全体に対して前記多数のパーミュテーション行列のタイプのうち任意の何れか二つのタイプが占める個数の差は、既に設定された第１臨界値以下でなければならない。すなわち、前記基本行列Ｈｂ全体に対して、各パーミュテーション行列の個数を同一にまたは類似にすることが好ましい。前記第１臨界値は、少ないほど好ましいが、３〜７範囲までは許容される。
【００２５】
第二に、前記パリティ検査行列Ｈ全体において、４−サイクルや６−サイクルを発生させないか、４−サイクルや６−サイクルの数を最小化することが好ましい。特に、前記パリティ検査行列は、４−サイクルを持たないことが好ましい。また、前記パリティ検査行列Ｈは、既に設定された第２臨界値ＣｍａＸ以下の６−サイクルを有することが好ましい。４−サイクルとは、パリティ検査行列Ｈの任意の二つの行が二つの地点に同時に１を有する場合を意味する。６−サイクルとは、前記パリティ検査行列Ｈの任意の三つの行から選択された全ての組み合わせ可能な二つの行が同一の地点に１を有する場合を意味する。
【００２６】
第三に、前記パリティ検査行列Ｈ全体に対して、列重み及び／または行重みが規則性を有するべきである。前記基本パーミュテーション行列としてｚ×ｚの単位行列を用いると、前記パリティ検査行列Ｈ全体に対して列重み及び／または行重みが規則性を有するようになる。
【００２７】
第四に、全てのコードレート及び全てのコードワード大きさに対して良好な符号化または復号化性能を有するように、前記三つの種類の行列を組み合わせて前記基本行列Ｈｂを構成すべきである。最近、移動通信システムでは、可変的なコードレート及びコードワード大きさが適用されるので、前記基本行列Ｈｂを前記基本パーミュテーション行列と、前記基本パーミュテーション行列の各行を所定間隔だけシフトさせて形成した多数のパーミュテーション行列と、ゼロ行列の組み合わせによって構成するとき、全てのコードレート及び全てのコードワード大きさに対して良好な性能を有するように最適化されるべきである。
【００２８】
図５Ａ乃至図５Ｆは、上記のような特性を有する前記基本行列Ｈｂの好適な実施例を示した図である。図５Ａ乃至図５Ｆに示した例は、コードレートが３／４である場合の基本行列で、‘０’はｚ×ｚ次元の単位行列を意味し、‘−１’はｚ×ｚ次元のゼロ行列を意味し、１以上の整数は、前記ｚ×ｚ次元の単位行列の各行を前記整数だけシフトさせて形成したパーミュテーション行列を意味する。
【００２９】
コードレートが１／２である場合の基本行列Ｈｂは、図６に示すように、前記コードレートが３／４である場合の基本行列の大きさを減少させて形成することができる。
【００３０】
図７は、上記のような特性を有する前記基本行列Ｈｂの他の例を示した図である。図７に示した例は、コードレートが２／３である場合の基本行列で、‘０’、‘−１’及びその他の１以上の整数の意味は、図５Ａ乃至図５Ｆに示した例と同一である。
【００３１】
前記基本パーミュテーション行列は、コードワード長さの変動によって異なった次元（すなわち、ｚ値）を有するべきであるが、全ての次元の基本パーミュテーション行列に対して基本行列を設け、これら全てを保存して符号化に用いることはメモリ節約側面で好ましくない。そのため、最も大きい次元ｚｍａＸを有する第１基本パーミュテーション行列に対する第１基本行列のみを保存し、他の次元ｚを有する第２基本パーミュテーション行列に対する基本行列は、符号化または復号化に必要な時ごとに前記第１基本行列を用いて生成することが好ましい。
【００３２】
この場合、前記第１基本行列は、その元素として二つ以上のパーミュテーション行列のタイプを有する。すなわち、変動される前記基本パーミュテーション行列の次元ｚの全体範囲を二つ以上の範囲に分割し、各範囲に最適化されたパーミュテーション行列のタイプを設定する。例えば、変動されるｚの全体範囲が１０〜９６である場合、前記全体範囲を１０〜５３までの範囲と５４〜９６までの範囲とに分け、各範囲に最適化された第１基本行列を構成する。このように構成すると、前記第１基本行列が二つになるが、それぞれを別途に保存せずに一つの第１基本行列の各元素として二つの値を保存することで、符号化または復号化性能を高めると同時に、メモリを節約することができる。
【００３３】
図８は、コードレートが３／４である場合の前記基本行列の他の実施例である。図８に示した基本行列は、４サイクル及び６サイクルの数を最小化し、各列の重みに規則性を持たせ、前記基本行列の各元素が全てのコードレート及びコードワード大きさに対して良好な性能を有するように、前記基本パーミュテーション行列をシフトさせることに特徴がある。図８に示した例は、図５Ａ乃至図５Ｆに示した例と比較するとき、シミュレーション結果、その大きさが図５Ａ乃至図５Ｆに示した例の１／４に減少しながらも、同一の性能を発揮した。
【００３４】
以下、上記のような基本行列Ｈｂを用いてＬＤＰＣ符号を復号化する方法を説明する。従来のＬＤＰＣ符号の復号は、主にパリティ検査行列の他の表現である二部グラフ上で、検査ノードとビットノードとの間の確率値更新で信頼度を高める過程を繰り返して行われる。パリティ検査行列の他の表現である二部グラフを用いて復号化する方法は、更新された確率値を通してコードワードを決定するので、コードワードを決定する確率値の更新過程が復号器の性能に直接的な影響を及ぼす。
【００３５】
信頼度の更新過程は、検査ノードからビットノードへの確率値更新過程と、ビットノードから検査ノードへの確率値更新過程とに分けられる。前記検査ノードからビットノードへの確率値更新過程や、前記ビットノードから検査ノードへの確率値更新過程を行うとき、更新される自身の確率値を除いた同一列の確率値や同一行の確率値を用いて、自身の確率値を更新する。このときに用いる確率値は、多く更新されるほど、一層信頼度の高い結果（一層肯定的な影響）を復号器に与えるようになる。
【００３６】
以下、復号化方法に一層肯定的な影響を及ぼすＬＤＰＣ復号化方法を説明する。本発明の一実施例は、ＬＤＰＣ符号化された受信信号を前記パリティ検査行列を用いて復号する場合、前記パリティ検査行列の行のグループであるレイヤー単位で受信信号を復号化する方法（以下、レイヤードデコーディング（Ｌａｙｅｒｅｄ  ｄｅｃｏｄｉｎｇ）と称する）を用いる。前記レイヤードデコーディングは、ビットノードから検査ノードへの確率値を更新する場合、パリティ検査行列の同一列に既に更新された値があるとき、その更新された値を用いて確率値を更新するという特徴がある。
【００３７】
前記レイヤードデコーディングは、ＬＤＰＣ符号の符号化及び復号化に用いるパリティ検査行列の行を複数のレイヤー単位で分けて反復復号する方法である。前記レイヤーは、前記パリティ検査行列の行をグループ化して区分する場合、各行のグループを示す。すなわち、パリティ検査行列の行を幾つかのグループに分けたとき、一つのグループがレイヤーになる。前記レイヤーは、一つの行でもある。
【００３８】
図９は、レイヤー単位で区分された基本行列を示す図である。図９に示した基本行列は、前記レイヤードデコーディング方法を説明するための一つの例で、ここに示した数字は、前記基本パーミュテーション行列から形成された多数のパーミュテーション行列のタイプをシフト数で示したものである。
【００３９】
前記レイヤードデコーディングは、パリティ検査行列Ｈの同一行での信頼度更新において、全ての同じ程度の更新過程を経た確率値を用いて信頼度を更新する。すなわち、従来のＬＤＰＣ復号方法と同様に、二部グラフ上で検査ノードとビットノードとの間の確率値更新を行う。しかし、ビットノードから検査ノードへの確率値更新過程（すなわち、前記パリティ検査行列Ｈの列の確率値更新過程）においては、レイヤー単位で確率値が更新され、特定のレイヤーに含まれた確率値を更新する場合、既に更新されたレイヤーに含まれた確率値を用いるという特徴がある。前記レイヤードデコーディングは、レイヤー単位で復号化を行い、前記パリティ検査行列に含まれたレイヤー全部に対して確率値が更新されると、ＬＤＰＣ復号化のための一回の反復を行う。前記レイヤードデコーディングは、既に一つのレイヤーに対して確率値更新のための演算を行い、次のレイヤーに対して確率値更新のための演算を行う場合、前記一つのレイヤーで演算された結果、すなわち、信頼度の更新されたメッセージ結果を前記次のレイヤーの演算に用いることで、一層信頼度の高いメッセージを復号過程（すなわち、確率値更新過程）に用いる。その結果、上記のような確率値更新が繰り返される場合、一層信頼度の高いメッセージが確率値更新に用いられるので、検査ノードとビットノードとの間の確率値の信頼度が高くなり、復号器の性能が良好になる。図９に示した行列は、一般的な基本行列である。図９に示した行列は、レイヤードデコーディング方法によって各レイヤーを順次復号することができ、例えば、Ｌａｙｅｒ１→Ｌａｙｅｒ２→Ｌａｙｅｒ３→Ｌａｙｅｒ４→Ｌａｙｅｒ５→Ｌａｙｅｒ６→Ｌａｙｅｒ７→Ｌａｙｅｒ８の順に復号を行う。
【００４０】
以下、本発明で用いる並列処理の基本概念と、レイヤードデコーディングを並列処理方式で行うための前提条件を説明する。
【００４１】
図１０Ａは、並列処理の概念を図式化して示した図である。並列処理は、一つの作業を行うにおいて、一つの演算装置が処理していた作業を複数の演算装置が分けて処理することを意味する。並列処理の結果、一つの作業を行うために必要な時間が、並列処理に用いた演算ブロックの数に比例して減少するという肯定的な効果が発生する。ただし、並列処理を行う場合、メモリ衝突及び並列処理されるデータ間の依存性などの問題が発生し、本発明によってレイヤードデコーディングを並列処理するためには、上記のような問題を解決しなければならない。
【００４２】
以下、上述したレイヤードデコーディングの並列処理によって生じる問題点と、本発明による問題点の解決方法を説明する。
【００４３】
図１０Ｂは、並列処理によるメモリ衝突の概念を示す図である。直列処理方法の場合、一つの演算ユニットがメモリブロックを用いるので、演算する値を読み出すか、演算結果を保存するにおいて問題が発生しない。しかし、多数個の演算ユニットが同時に作動する並列処理方法においては、二つ以上の演算ユニットが同時に同一位置のメモリブロックに接近する場合、メモリ衝突が起きる。ＬＤＰＣ復号のための確率値更新ユニットが同時に同一位置のメモリに接近する場合、前記メモリ衝突が発生しうる。
【００４４】
ＬＤＰＣ復号化に並列処理方法を適用するためには、メモリブロックに対する同時接近のみならず、同時に処理しようとするデータ間の依存性などの問題をなくすべきである。すなわち、複数個の演算ブロックのうち何れか一つの演算ブロックの出力値が、同時に他の演算ブロックの入力値になるべきであれば、同時に処理せずに、その依存性によって順次演算しなければならない。
【００４５】
本発明に係るＬＤＰＣ復号化方法の一実施例は、前記パリティ検査行列をレイヤー単位で区分して各レイヤーを特定の順に処理し、特定のレイヤーに対しては、上述したメモリ衝突及び並列処理するデータ間の依存性などの問題を解決して前記特定のレイヤーを並列処理方式で復号するという特徴がある。本発明の一実施例は、前記特定のレイヤーに対して並列処理方式でデータ処理を行うために、特定のレイヤー間に重畳部分のないパリティ検査行列を提供する。本発明の一実施例に係るパリティ検査行列において、前記パリティ検査行列の特定のレイヤーの非ゼロ元素は、列方向に互いに異なる位置に存在する。すなわち、特定のレイヤーに対しては、前記パリティ検査行列の重みの存在する位置が列方向に互いに異なっている。
【００４６】
上述したように、一般的なＬＤＰＣ符号の復号方法では、Ｈ行列の全ての行内での確率値更新が行われ、引き続いて、全ての列に対して確率値更新が行われる。その反面、前記レイヤードデコーディングは、各行の確率値を更新するとき、予め分けておいたグループ単位（すなわち、レイヤー単位）で確率値を更新する。この復号方法は、二番目以後のグループに該当する確率値を更新するとき、以前のグループで既に更新された一層信頼度の高い確率値を用いて計算することで、復号性能が良好になる。前記レイヤードデコーディングには上記のような利点があるが、従来のパリティ検査行列を特定のレイヤー単位で区分し、前記特定のレイヤーに対して並列処理方式でデータを処理すると、前記特定のレイヤーの並列処理過程で上述したメモリ衝突及び並列処理するデータ間の依存性などの問題点などを避けるために、同時に一つのレイヤーのみを処理すべきであって、復号に遅延が発生する。しかし、本実施例で提案するように、特定のレイヤー間に列重みの存在する位置が重畳しないように前記パリティ検査行列を設計する場合、同時に多数個のレイヤーに対する並列処理を行える。
【００４７】
以下、本発明の一実施例によって、特定のレイヤーに対して重畳されないパリティ検査行列を用いてレイヤードデコーディングを並列処理する方法を説明する。
【００４８】
図１１は、コードレートが１／２である場合の前記基本行列の他の実施例である。前記実施例は、図１１の基本行列によって生成されるパリティ検査行列の行を、前記基本行列に対する基本パーミュテーション行列の大きさによって一つのレイヤーにグループ化する。すなわち、前記実施例は、図１１に示した基本行列と前記基本パーミュテーションを用いて生成されるパリティ検査行列のレイヤーが、前記基本パーミュテーション行列の行の個数だけの行からなる場合の一例である。結果的に、図１１において一つのレイヤーに含まれる行の個数は、図１１に示した基本行列による基本パーミュテーション行列の行の個数と同一である。図１１に示した基本行列は、効果的な並列処理のために提案されたものである。レイヤードデコーディングにおいて、図１１に示した基本行列の行の順序を１→７→２→８→３→９→４→１０→５→１１→６→１２と決定した場合、前記基本行列の任意の二つの行（例えば、１番目行と７番目行）に対して、非ゼロ成分は任意の列方向に互いに重畳しない。前記基本行列では、任意の二つの行（例えば、１番目行と７番目行）に対して、０以上のシフト数を有する成分が列方向に重畳しない。例えば、８番目行は、２番目行または３番目行と比較したとき、任意の列方向に０以上のシフト数を有する成分が互いに重畳しないことが分かる。また、図１１に示した基本行列によって生成されるパリティ検査行列を基準にして説明すると、前記基本行列の一つの行は、前記生成されたパリティ検査行列の一つのレイヤーを示すが、前記生成されたパリティ検査行列の各レイヤー間の重みの存在する位置は列方向に重畳しない。
【００４９】
図１２は、コードレートが１／２である場合の前記基本行列の他の実施例である。図１２に示した基本行列は、一層効果的な並列処理のために提案されたものである。図１２に示した基本行列は、次のような二つの行のペア（１，７）、（２，８）、（３，９）、（４，１０）、（５，１１）、（６，１２）に対して、０以上のシフト数を有する成分が任意の列方向に重畳しないようにデザインされた。図１１及び図１２の実施例によると、レイヤードデコーディングのための具現過程で、効率的な並列処理が可能であるという特徴を有する。
【００５０】
以下、本発明の他の一実施例によって、特定のレイヤー間に重畳部分のない基本行列のレイヤーの順序を調整し、前記調整された基本行列によって生成されるパリティ検査行列を用いてレイヤードデコーディングを並列処理する方法を説明する。
【００５１】
図１３Ａは、本発明の一実施例に係るレイヤードデコーディングのための基本行列の一実施例を示す図である。前記基本行列において、‘−１’は、ゼロ行列を示し、‘＃’は、基本パーミュテーション行列を０以上の任意の整数だけ行または列方向にシフトさせて形成する任意のパーミュテーション行列を示す。前記実施例は、図１３Ａに示した基本行列によって生成されるパリティ検査行列の行を、前記基本行列に対する基本パーミュテーション行列の大きさによって一つのレイヤーにグループ化する。すなわち、各レイヤーに含まれる行の個数は、図１３Ａに示した基本行列による基本パーミュテーション行列の行の個数と同一である。したがって、前記基本行列によって生成されるパリティ検査行列の一つのレイヤーは、前記基本行列の一つの行に対応する。以下、パリティ検査行列の隣接したレイヤー間の重みの存在する位置が重畳しないように、前記基本行列の行の順序を調整して新しいパリティ検査行列を設計する方法を説明する。前記基本行列には二重対角部分が存在するので、ＬＤＰＣ復号性能に影響を与えない行の順序を変え、本発明の一実施例に係るパリティ検査行列を設計することができる。図１３Ｂは、図１３Ａの特定の行間に０以上のシフト数を有する成分が互いに重畳しないように、すなわち、特定の行に対して列重みが１以下になるように行の順序を調整した基本行列の一例である。図１３Ｂの場合、Ｌａｙｅｒ０とＬａｙｅｒ３は、如何なる列に対しても列重みの存在する位置が重畳しない。図１３Ｃは、図１３Ｂに示した基本行列を、並列処理可能なレイヤー単位で表示した図である。図１３Ｂも、図１３Ｃに示した基本行列によって生成されるパリティ検査行列を用いてＬＤＰＣ復号化を行う場合、２個のレイヤー（例えば、Ｌａｙｅｒ０とＬａｙｅｒ３）に対して同時に演算を行える。すなわち、図１３Ｄに示すように、Ｌａｙｅｒ０、６、４、２とＬａｙｅｒ３、１、７、５を互いに並列処理して各レイヤーを同時に処理することができる。その結果、本発明の一実施例に係るパリティ検査行列を用いてＬＤＰＣ復号化を行う場合、二つの演算ユニットを通して二つのＬＤＰＣ符号を一度に復号化するときと同一の効果を得られ、復号時間が最大５０％にまで減少するという効果を得られる。
【００５２】
図１４は、コードレートが２／３である場合の前記基本行列の他の実施例を示した図である。前記基本行列において、‘−１’は、ゼロ行列を示し、任意の整数は、基本パーミュテーション行列を０以上の任意の整数だけ行または列方向にシフトさせて形成する任意のパーミュテーション行列を示す。図１４に示した基本行列において、‘Ｘ’は、０から９５までの任意の整数を意味する値で、８６、８９、９５のうち何れか一つの値にすることが好ましい。最も好ましくは、Ｘ＝９５である。図１４に示した基本行列は、並列処理特徴を有し、高い性能を有するように提案された。前記並列処理特徴は、本願発明によってレイヤードデコーディングを並列処理する復号化方法が適用されることを意味する。前記実施例は、図１４に示した基本行列によって生成されるパリティ検査行列の行を、前記基本行列に対する基本パーミュテーション行列の大きさによって一つのレイヤーにグループ化する。すなわち、図１４において各レイヤーに含まれる行の個数は、図１４に示した基本行列による基本パーミュテーション行列の行の個数と同一である。前記基本行列の行を１、２、３、４、５、６、７、８のインデックスによって区分する場合、前記各行を互いに交換して生成される基本行列は、互いに隣接する行間に０以上のシフト数を有する成分が互いに重畳しない。例えば、最初の行は、４番目行と比較したとき、任意の列方向にも０以上のシフト数を有する成分が互いに重畳しないことが分かる。また、図１４に示した基本行列によって生成されるパリティ検査行列を基準にして説明すると、前記基本行列の一つの行は、前記生成されたパリティ検査行列の一つのレイヤーを示すが、前記生成されたパリティ検査行列の各レイヤー間の重みの存在する位置が列方向に重畳しない。
【００５３】
図１５は、図１４に示した前記基本行列において、上述した条件を満足する行の交換によって設けられる基本行列の多様な例の一つである。図１５に示した基本行列は、図１４に示した基本行列のインデックスを１−４−７−２−５−８−３−６の順に交換した一例である。図１５は、１−４−７−２−５−８−３−６のインデックス順序からなる基本行列の最後の行と最初の行を容易に比較するために、前記最初の行を追加（すなわち、１−４−７−２−５−８−３−６−（１））して示した。
【００５４】
図１５に示した基本行列の行を互いに交換して発生する全ての基本行列は、図１４に示した基本行列が定義するＬＤＰＣコードと同一のＬＤＰＣコードを定義する。したがって、デコーディングびエンコーディングにおいて行が互いに交換された基本行列を用いる場合も、図８に示した基本行列と同一の性能を発揮するデコーディング及びエンコーディングを行える。
【００５５】
以上の説明において高い性能を発揮することは、例えば、フレームエラー率（Ｆｒａｍｅ  Ｅｒｒｏｒ  Ｒａｔｅ：ＦＥＲ）が良好であることを意味する。また、同一の性能を発揮するデコーディングは、同一の復号化性能を示すデコーディング方法を意味し、同一の性能を発揮するエンコーディングは、同一のコードワードを生成することを意味する。
【００５６】
以下、本発明で提案した多様な基本行列を用いてＬＤＰＣ復号化作業を行うＬＤＰＣ復号器を説明する。図１６は、本発明に係るＬＤＰＣ復号器の一実施例を示すブロック図である。前記ＬＤＰＣ復号器１０００は、ＣＮＵ（Ｃｈｅｃｋ  Ｎｏｄｅ  Ｕｐｄａｔｅ  Ｕｎｉｔ）ブロック１１００、制御ブロック１２００、ＶＮＵ（Ｖａｒｉａｂｌｅ  Ｎｏｄｅ  Ｕｐｄａｔｅ  Ｕｎｉｔ）ブロック１３００及びメモリブロック１４００を含んで構成される。前記ＣＮＵブロック１１００は、検査ノードの確率値更新を行い、少なくとも一つ以上のＣＮＵ１１１０を備える。前記ＣＮＵ１１１０は、前記検査ノードの確率値更新を行う演算ユニットである。前記制御ブロック１２００は、前記復号器１０００の各ユニットに対する動作を制御する制御ユニット１２１０と、パリティ検査行列の構造によって前記ＣＮＵブロック１１００及び前記メモリブロック１４００を制御するＣＮＵルーティングネットワーク１２２０と、前記ＶＮＵブロック１３００と前記メモリブロック１４００を制御するＶＮＵルーティングネットワーク１２３０と、パリティ検査行列の構造に関する情報などを保存するパリティ検査行列インデックス保存部１２４０と、更新された確率値を用いて復号値を決定し、決定された復号値を検査する硬判定部（Ｈａｒｄ  ｄｅｃｉｓｉｏｎ  ｕｎｉｔ）１２５０と、を含む。前記ＶＮＵブロック１１００は、ビットノードの確率値更新を行い、少なくとも一つ以上のＶＮＵ１３１０を備える。前記ＶＮＵ１３１０は、前記検査ノードの確率値更新を行う演算ユニットである。前記制御ブロック１２００によって制御されるＣＮＵ１１１０とＶＮＵ１３１０は、前記Ｈ行列の非ゼロ成分に対して確率値を計算して更新するが、前記計算された確率値は、前記メモリ部１４００に保存される。前記メモリ部１４００は、検査ノードからビットノードへの確率値更新のために計算された確率値を保存するＲ−メモリ１４１０と、ビットノードから検査ノードへの確率値更新のために計算された確率値（例えば、無線チャネルから受信されるＬｏｇ  Ｌｉｋｅｌｉｈｏｏｄ  Ｒａｔｉｏ値）を保存する受信ＬＬＲメモリ１４２０と、ビットノードから検査ノードへの確率値更新のために計算された確率値を保存するＱ−メモリ１４３０と、を含む。
【００５７】
以下、前記各ユニットを説明する。前記受信ＬＬＲメモリ１４２０は、復号すべき受信信号に対する確率値、例えば、受信信号のコードワードに対するＬＬＲ値を保存するためのメモリである。また、前記Ｒ−メモリ１４１０は、特定の検査ノードでの確率値更新の結果Ｒｍｊを保存し、前記Ｑ−メモリ１４３０は、特定のビットノードでの確率値更新の結果Ｌ（ｑｍｊ）を保存する。前記制御ユニット１２１０は、各ユニットの動作順序及び各ユニットの動作タイミングを制御し、前記パリティ検査行列インデックス保存部１２４０は、前記パリティ検査行列の重みの位置などに関する情報を保存する。また、前記ＣＮＵルーティングネットワーク１２２０は、前記パリティ検査行列インデックス保存部１２４０から前記パリティ検査行列に関する情報を獲得し、前記ＣＮＵ１１１０と前記メモリ部１４００のメモリとを適切に連結する。また、前記ＶＮＵルーティングネットワーク１２３０は、前記パリティ検査行列インデックス保存部１２４０から前記パリティ検査行列に関する情報を獲得し、前記ＶＮＵ１３１０と前記メモリ部１４００のメモリとを適切に連結する。前記硬判定部１２５０は、前記Ｑ−メモリ１４３０を用いて復号値を決定し、前記決定された復号値ｃ’を検査するユニットで、前記復号値ｃ’がＨｃ’＝０の検査式を満足する場合、前記復号値ｃ’を真値として出力し、前記検査式を満足しない場合、所定の最大反復復号回数以内で復号を反復する。
【００５８】
図１６に示した復号器１０００は、別途のメモリ（図示せず）または前記パリティ検査行列インデックス保存部１２４０に保存されたパリティ検査行列を用いて受信信号を復号化するか、基本行列及び基本パーミュテーション行列を通して生成されたパリティ検査行列を用いて受信信号を復号化することができる。前記基本行列及び基本パーミュテーション行列を通してパリティ検査行列を生成する場合、前記復号器１０００は、前記基本行列と基本パーミュテーション行列を保存する保存部（図示せず）と、前記基本行列及び基本パーミュテーション行列を用いて前記パリティ検査行列を生成するパリティ検査行列生成部（図示せず）を含むことが好ましい。また、図１６に示した復号器１０００は、パリティ検査行列の行の順序（例えば、レイヤーの順序）を調整し、新しいパリティ検査行列を生成することができる。この場合、前記復号器１０００は、パリティ検査行列の行の順序を調整するパリティ検査行列調整部（図示せず）を含むことが好ましい。
【００５９】
以下、前記ＬＤＰＣ復号器１０００の動作を説明する。前記ＬＤＰＣ復号器１０００は、ＬＤＰＣ復号アルゴリズムの一つであるＬｏｇ  ＢＰ（Ｌｏｇ  Ｂｅｌｉｅｆ  Ｐｒｏｐａｇａｔｉｏｎ）アルゴリズムを用いて復号を行える。前記復号器１０００は、初期化段階、検査ノード更新段階、ビットノード更新段階及び硬判定段階によって動作を行う。前記初期化段階は、送信側から伝送される受信信号に対する確率値を前記受信ＬＬＲメモリ１４２０に保存し、前記受信ＬＬＲメモリ１４２０に保存された確率値を、前記パリティ検査行列インデックス保存部１２４０に保存されたパリティ検査行列の重みに関する情報を用いて前記Ｑ−メモリ１４３０の特定位置に保存する段階を含む。前記検査ノード更新段階は、前記Ｑ−メモリ１４３０に保存された確率値を用いて検査ノード更新、すなわち、検査ノードからビットノードへの更新を行い、その結果を前記Ｒ−メモリ１４１０に保存する段階を含む。前記ビットノード更新段階は、前記Ｒ−メモリ１４１０に保存された確率値を用いてビットノード更新、すなわち、ビットノードから検査ノードへの更新を行い、その結果を前記Ｑ−メモリ１４３０に保存する段階を含む。前記硬判定段階は、前記Ｑ−メモリ１４３０に保存された確率値を用いて臨時的に復号値ｃ’を決定し、前記決定された復号値ｃ’を検査し、検査結果によって前記復号値ｃ’が真値である場合に前記真値を出力し、前記復号値ｃ’が真値でない場合、特定の反復復号回数以内で前記検査ノード更新段階及びビットノード更新段階を反復する段階を含む。
［数学式３］
【００６０】
【数３】
2008526086.tif 000003
前記復号器１０００で用いるパリティ検査行列Ｈが前記数学式３と同一であるとき、前記Ｒ−メモリ１４１０と前記Ｑ−メモリ１４３０は、前記パリティ検査行列の非ゼロ成分、すなわち、１が存在する成分の位置の値を保存する役割をする。したがって、前記Ｒ−メモリ１４１０と前記Ｑ−メモリ１４３０は、次のような位置の値を保存する役割をする。
【００６１】
【数３−１】
2008526086.tif 000004
ただし、前記Ｒ−メモリ１４１０及び前記Ｑ−メモリ１４３０は、前記非ゼロ成分の位置に該当する値のみを保存すればよいので、図１７のような構造で前記確率値更新のための演算結果を保存することができる。したがって、ＬＤＰＣ復号化のために必要なメモリは、Ｈ行列の重みに比例する。図１７に示したパリティ検査行列の重みに関する位置情報は、前記パリティ検査行列インデックス保存部１２４０に保存される。上述したように、前記復号器１０００は、基本行列及び基本パーミュテーション行列を用いてパリティ検査行列を生成して復号化作業を行うか、特定のメモリに保存されたパリティ検査行列を用いて復号化作業を行うか、任意の方法によって生成されたパリティ検査行列を用いて復号化作業を行う。以下で説明されるパリティ検査行列は、基本行列でない実際のパリティ検査行列を意味する。前記パリティ検査行列は、基本行列及び基本パーミュテーション行列を用いて生成されるか、特定のメモリや外部装置に保存されたパリティ検査行列を獲得して生成されるが、これらに限定されることはない。
【００６２】
図１８は、前記数学式３のＨ行列を用いて復号化を行う復号器のＣＮＵ、ＶＮＵ及びメモリの連結形態の一例を示す図である。図１８に示した復号器は、４個のＣＮＵと、８個のＶＮＵとを備えた場合の一例である。図１９Ａ乃至図１９Ｈは、図１８に示した復号器を用いて復号化を行う場合、受信信号に対する確率値が入力される初期化過程から、一回の反復復号を行う過程までを示す図である。図１９Ａ乃至図１９Ｈの前記Ｒ−メモリ１４１０及び前記Ｑ−メモリ１４３０に表示された座標は、前記メモリを図１７に示した形態にしたときのメモリアドレスを示す。
【００６３】
図１９Ａは、ＬＤＰＣ復号において初期化段階を示す図である。図１９Ａに示した成分は、Ｈ行列の非ゼロ成分を示すが、送信側から受信された確率値が前記非ゼロ成分に該当するメモリアドレスに入力される。
【００６４】
図１９Ａ乃至図１９Ｅは、検査ノードからビットノードへの確率値更新を示す図である。前記特定位置の確率値更新は、特定の行において自身の成分を除いた残りの成分を用いて自身の成分を更新する作業である。図１９Ｆ乃至１９Ｈは、ビットノードから検査ノードへの確率値更新を示す図である。前記特定位置の確率値更新は、特定の列において自身の成分を除いた残りの成分を用いて自身の成分を更新する作業である。
【００６５】
図１９Ｈまでの過程を行った後、前記Ｑ−メモリ１４３０を参照してコードワードを臨時的に決定し、臨時的に決定されたコードワードｃ’が検査式Ｈｃ’＝０を満足するかどうかを確認する。前記検査式を満足しない場合、図１９Ｂ乃至図１９Ｈの過程を反復するようになる。既に設定された回数だけの反復があるか、前記検査式を満足するコードワードを得た場合、前記過程が終了される。
【００６６】
以下、並列処理が適用されたレイヤードデコーディングを並列処理するＬＤＰＣ復号器１０００の動作を説明する。
【００６７】
本発明の一実施例によって、前記ＬＤＰＣ復号器１０００のＣＮＵ１１１０及びＶＮＵ１３１０は、下記の数学式４のような演算を通して確率値を更新する。下記の数学式４は、一回の反復復号を行うときに用いられる数式である。
［数学式４］
【００６８】
【数４】
2008526086.tif 000005
上記の数学式で用いられる変数は、次の通りである。
【００６９】
【数４−１】
2008526086.tif 000006
Ｌ（ｑｍｊ）：ｍ番目のビットノードからｊ番目の検査ノードに連結されたＬＬＲ（Ｌｏｇ  Ｌｉｋｅｌｉｈｏｏｄ  Ｒａｔｉｏ）値
Ｌ（ｑｊ）：ｊ番目のビットノードの事後ＬＬＲ値（ａ  ｐｏｓｔｅｒｉｏｒ  ＬＬＲ  ｖａｌｕｅ）
Ｒｍｊ：ｊ番目の検査ノードからｍ番目のビットノードに連結されたＬＬＲ値
Ａｍｊ：ｊ番目の検査ノードからｍ番目のビットノードに連結されたＬＬＲ値を計算するための中間変数（ｄｕｍｍｙ  ｖａｒｉａｂｌｅ）
Ｓｍｊ：ｊ番目の検査ノードからｍ番目のビットノードに連結されたＬＬＲ値の符号を計算するための中間変数。
【００７０】
ｍ：パリティ検査行列の検査ノードインデックス
ｊ：パリティ検査行列のビットノードインデックス
下記の数学式５は、受信信号のＬＬＲの一例で、下記の数学式６は、本発明の一実施例に係る復号器１０００が用いるパリティ検査行列の一例である。
［数学式５］
【００７１】
【数５】
2008526086.tif 000007
［数学式６］
【００７２】
【数６】
2008526086.tif 000008
上記の数学式６の行列は、本発明の一実施例による復号器１０００で用いるパリティ検査行列の一例である。前記行列において、前記パリティ検査行列の一つの行は、一つのレイヤーを示す。前記各レイヤーは、互いに隣接するレイヤーと重畳しない。前記復号器１０００のＣＮＵ１１１０及びＶＮＵ１３１０の個数は、前記パリティ検査行列の構造によって決定することが好ましい。また、重畳しないレイヤーは、並列処理されるが、前記ＣＮＵ１１１０の個数は、並列処理されるレイヤーに含まれる行の個数であることが一層好ましく、前記ＶＮＵ１３１０の個数は、前記パリティ検査行列の列の個数であることが一層好ましい。したがって、上記の数学式６を用いる前記復号器１０００のＣＮＵ１１１０は、２個であることが好ましく、ＶＮＵ１３１０は、２４個であることが好ましい。
【００７３】
図２０Ａ乃至図２０Ｉは、本発明のＬＤＰＣ復号方法で復号化を行う場合、一回の反復復号を行う過程を示す図である。前記図２０Ａ乃至図２０ＩのＱとＲは、上記の数学式４のｑｍｊ、Ｒｍｊ値を保存するメモリの状態を示し、‘＃＃＃’は、未だに特定の値に設定されていない任意の値を示す。図２０Ａ乃至図２０ＩのＱ−メモリ１４３０及びＲ−メモリ１４１０は、図１７に示した形態のように、非ゼロ成分の位置に該当する演算値のみを保存することができる。
【００７４】
図２０Ａは、本発明の一実施例に係るＬＤＰＣ復号において初期化段階を示す図である。チャネルから受信された確率値（例えば、ＬＬＲ値）は、前記受信ＬＬＲメモリ１４２０に保存され、前記受信された確率値は、前記パリティ検査行列インデックス保存部１２４０に保存されたパリティ検査行列の重みに関する位置情報によって、前記Ｑ−メモリ１４３０に入力される。図２０Ａは、前記初期化段階を通してＱ−メモリに入力された確率値を示す。
【００７５】
図２０Ｂは、前記Ｈ行列のＬａｙｅｒ０及びＬａｙｅｒ３に対する検査ノードからビットノードへの確率値更新過程を示す。前記ＣＮＵ１１１０は、前記Ｈ行列のＬａｙｅｒ０及びＬａｙｅｒ３に対して検査ノードからビットノードへの確率値を更新する演算を行う。上述したように、前記ＣＮＵ１１１０は、２個備わって動作するが、２個のＣＮＵ１１１０は、前記Ｌａｙｅｒ０及び３に対する検査ノード更新過程を行う。前記演算結果は、前記Ｒ−メモリ１４１０に保存される。
【００７６】
図２０Ｃは、前記Ｈ行列のＬａｙｅｒ０及びＬａｙｅｒ３に対するビットノードから検査ノードへの確率値更新過程を示す。前記ビットノードから検査ノードへの確率値更新過程は、従来のＬＤＰＣ復号化過程と異なって、同一の反復段階で既に更新されたレイヤーの確率値を用いて現在のレイヤーの確率値を更新する。前記Ｌａｙｅｒ０及びＬａｙｅｒ３は互いに重畳しないので、並列処理によるメモリ衝突や並列処理するデータ間の依存性などの問題が発生しない。したがって、前記Ｌａｙｅｒ０に対するビットノードから検査ノードへの確率値更新過程と、Ｌａｙｅｒ３に対するビットノードから検査ノードへの確率値更新過程とが並列処理される。上述したように、前記復号器は、２４個のＶＮＵ１３１０を用いて前記Ｌａｙｅｒ０及びＬａｙｅｒ３に対する演算を行う。図２０Ｃは、前記Ｌａｙｅｒ０及びＬａｙｅｒ３に対してビットノードから検査ノードへの確率値更新が行われた結果と、Ｌａｙｅｒ６及びＬａｙｅｒ１に対する検査ノードからビットノードへの確率値更新のための確率値が入力される設定段階が行われた結果を示す。
【００７７】
図２０Ｄは、前記Ｈ行列のＬａｙｅｒ６及びＬａｙｅｒ１に対する検査ノードからビットノードへの確率値更新過程を示し、図２０Ｅは、前記Ｈ行列のＬａｙｅｒ６及びＬａｙｅｒ１に対するビットノードから検査ノードへの確率値更新過程を示し、図２０Ｆは、前記Ｈ行列のＬａｙｅｒ４及びＬａｙｅｒ７に対する検査ノードからビットノードへの確率値更新過程を示し、図２０Ｇは、前記Ｈ行列のＬａｙｅｒ４及びＬａｙｅｒ７に対するビットノードから検査ノードへの確率値更新過程を示し、図２０Ｈは、前記Ｈ行列のＬａｙｅｒ２及びＬａｙｅｒ５に対する検査ノードからビットノードへの確率値更新過程を示し、図２０Ｉは、前記Ｈ行列のＬａｙｅｒ２及びＬａｙｅｒ５に対するビットノードから検査ノードへの確率値更新過程を示す。前記Ｑ−メモリ１４３０に保存された値は、１回の反復を通して得た演算値である。前記硬判定部１２５０は、図２０Ｉまでの過程を行った後、前記Ｑ−メモリ１４３０を参照して臨時的にコードワードｃ’を決定し、前記コードワードｃ’が検査式Ｈｃ’＝０を満足するかどうかを確認する。前記検査式を満足しない場合、前記復号器は、図２０Ｂ乃至図２０Ｉの過程を反復するようになる。最大反復回数だけの反復があるか、前記検査式を満足するコードワードを得た場合、前記過程が終了され、前記コードワードｃ’が外部に出力される。
【００７８】
図２０に示した復号化方法は、図１９に示した復号化方法と比べたとき、次のような差がある。すなわち、図１９に示した復号化方法は、パリティ検査行列の大きさによって最大限のＣＮＵ及びＶＮＵを用いて一回の検査ノード更新及びビットノード更新を行うが、図２０に示した復号化方法は、データ依存性のないレイヤーの数、すなわち、パリティ検査行列で互いに重畳しないレイヤーの個数だけのＣＮＵを備えて、前記データ依存性のないレイヤーの個数によって前記検査ノード更新過程を並列処理することができる。
【００７９】
また、図１９に示した復号化方法は、受信信号に対する確率値を用いてＱ−メモリ１４３０の全領域を初期化する反面、図２０に示した復号化方法は、同時に並列処理可能なレイヤーに対する初期化を行い、これらレイヤーに対する結果値を次のレイヤーに対する初期値として用いる。
【００８０】
本発明の精神及び必須的な特徴を逸脱しない範囲で、本発明が他の特定の形態で具体化されることは、当業者にとって自明である。したがって、上記の詳細な説明は、全ての面で制約的に解析されてはならなく、例示的なものとして考慮されるべきである。本発明の範囲は、添付の特許請求の範囲の合理的な解析によって決定されるべきであり、本発明の等価的範囲内での全ての変更は、本発明の範囲に含まれるものである。
【図面の簡単な説明】
【００８１】
【図１】パリティ検査行列Ｈを二部グラフを通して示した図である。
【図２Ａ】本発明の技術的特徴が無線通信システムに適用された一例である。
【図２Ｂ】本発明の技術的特徴が符号化装置に適用された一例である。
【図３】基本行列がｚ×ｚ次元の多数のパーミュテーション行列またはゼロ行列によって構成されることを示す図である。
【図４】本発明によって基本パーミュテーション行列の全ての行（または列）を所定間隔だけシフトさせる方法を示す図である。
【図５Ａ】本発明の一実施例に係る基本行列を示す図である。
【図５Ｂ】本発明の一実施例に係る基本行列を示す図である。
【図５Ｃ】本発明の一実施例に係る基本行列を示す図である。
【図５Ｄ】本発明の一実施例に係る基本行列を示す図である。
【図５Ｅ】本発明の一実施例に係る基本行列を示す図である。
【図５Ｆ】本発明の一実施例に係る基本行列を示す図である。
【図６】コードレートが３／４である場合の基本行列の大きさを減少させて形成した、コードレートが１／２である場合の基本行列を示す図である。
【図７】本発明の一実施例に係る他の基本行列を示す図である。
【図８】コードレートが３／４である場合の前記基本行列の他の実施例である。
【図９】レイヤー単位で区分されたパリティ検査行列の例を示す図である。
【図１０Ａ】並列処理の概念を示す図である。
【図１０Ｂ】並列処理によるメモリ衝突の概念を示す図である。
【図１１】コードレートが１／２である場合の基本行列の他の実施例である。
【図１２】コードレートが１／２である場合の前記基本行列の他の実施例である。
【図１３Ａ】本発明によって並列処理可能なパリティ検査行列の一例を示す図である。
【図１３Ｂ】本発明によって並列処理可能なパリティ検査行列の一例を示す図である。
【図１３Ｃ】本発明によって並列処理可能なパリティ検査行列の一例を示す図である。
【図１３Ｄ】本発明によって並列処理可能なパリティ検査行列の一例を示す図である。
【図１４】コードレートが２／３である場合の前記基本行列の他の実施例を示す図である。
【図１５】本発明で提案された基本行列の行を交換して得た基本行列を示す図である。
【図１６】本発明の一実施例に係るＬＤＰＣ復号器の一実施例を示すブロック図である。
【図１７】本発明の一実施例に係るＬＤＰＣ復号器のメモリ構造を示す図である。
【図１８】本発明の一実施例に係るＬＤＰＣ復号器のハードウェア間の連結形態を示す図である。
【図１９Ａ】ＬＤＰＣ復号化を行う場合、初期化過程で一回の反復復号を行う過程を示す図である。
【図１９Ｂ】ＬＤＰＣ復号化を行う場合、初期化過程で一回の反復復号を行う過程を示す図である。
【図１９Ｃ】ＬＤＰＣ復号化を行う場合、初期化過程で一回の反復復号を行う過程を示す図である。
【図１９Ｄ】ＬＤＰＣ復号化を行う場合、初期化過程で一回の反復復号を行う過程を示す図である。
【図１９Ｅ】ＬＤＰＣ復号化を行う場合、初期化過程で一回の反復復号を行う過程を示す図である。
【図１９Ｆ】ＬＤＰＣ復号化を行う場合、初期化過程で一回の反復復号を行う過程を示す図である。
【図１９Ｇ】ＬＤＰＣ復号化を行う場合、初期化過程で一回の反復復号を行う過程を示す図である。
【図１９Ｈ】ＬＤＰＣ復号化を行う場合、初期化過程で一回の反復復号を行う過程を示す図である。
【図２０Ａ】並列処理を適用したＬＤＰＣ復号化を行う場合、初期化過程で一回の反復復号を行う過程を示す図である。
【図２０Ｂ】並列処理を適用したＬＤＰＣ復号化を行う場合、初期化過程で一回の反復復号を行う過程を示す図である。
【図２０Ｃ】並列処理を適用したＬＤＰＣ復号化を行う場合、初期化過程で一回の反復復号を行う過程を示す図である。
【図２０Ｄ】並列処理を適用したＬＤＰＣ復号化を行う場合、初期化過程で一回の反復復号を行う過程を示す図である。
【図２０Ｅ】並列処理を適用したＬＤＰＣ復号化を行う場合、初期化過程で一回の反復復号を行う過程を示す図である。
【図２０Ｆ】並列処理を適用したＬＤＰＣ復号化を行う場合、初期化過程で一回の反復復号を行う過程を示す図である。
【図２０Ｇ】並列処理を適用したＬＤＰＣ復号化を行う場合、初期化過程で一回の反復復号を行う過程を示す図である。
【図２０Ｈ】並列処理を適用したＬＤＰＣ復号化を行う場合、初期化過程で一回の反復復号を行う過程を示す図である。
【図２０Ｉ】並列処理を適用したＬＤＰＣ復号化を行う場合、初期化過程で一回の反復復号を行う過程を示す図である。
【符号の説明】
【００８２】
１０  送信機
１１  データソース
１３  ＬＤＰＣ符号化モジュール
１５  変調モジュール
１７，３１  アンテナ
２０  無線チャネル
３０  受信機
３３  復調モジュール
３５  ＬＤＰＣ復号化モジュール
【図１】
2008526086.tif 000009
【図２Ａ】
2008526086.tif 000010
【図２Ｂ】
2008526086.tif 000011
【図３】
2008526086.tif 000012
【図４】
2008526086.tif 000013
【図５Ａ】
2008526086.tif 000014
【図５Ｂ】
2008526086.tif 000015
【図５Ｃ】
2008526086.tif 000016
【図５Ｄ】
2008526086.tif 000017
【図５Ｅ】
2008526086.tif 000018
【図５Ｆ】
2008526086.tif 000019
【図６】
2008526086.tif 000020
【図７】
2008526086.tif 000021
【図８】
2008526086.tif 000022
【図９】
2008526086.tif 000023
【図１０Ａ】
2008526086.tif 000024
【図１０Ｂ】
2008526086.tif 000025
【図１１】
2008526086.tif 000026
【図１２】
2008526086.tif 000027
【図１３Ａ】
2008526086.tif 000028
【図１３Ｂ】
2008526086.tif 000029
【図１３Ｃ】
2008526086.tif 000030
【図１３Ｄ】
2008526086.tif 000031
【図１４】
2008526086.tif 000032
【図１５】
2008526086.tif 000033
【図１６】
2008526086.tif 000034
【図１７】
2008526086.tif 000035
【図１８】
2008526086.tif 000036
【図１９Ａ】
2008526086.tif 000037
【図１９Ｂ】
2008526086.tif 000038
【図１９Ｃ】
2008526086.tif 000039
【図１９Ｄ】
2008526086.tif 000040
【図１９Ｅ】
2008526086.tif 000041
【図１９Ｆ】
2008526086.tif 000042
【図１９Ｇ】
2008526086.tif 000043
【図１９Ｈ】
2008526086.tif 000044
【図２０Ａ】
2008526086.tif 000045
【図２０Ｂ】
2008526086.tif 000046
【図２０Ｃ】
2008526086.tif 000047
【図２０Ｄ】
2008526086.tif 000048
【図２０Ｅ】
2008526086.tif 000049
【図２０Ｆ】
2008526086.tif 000050
【図２０Ｇ】
2008526086.tif 000051
【図２０Ｈ】
2008526086.tif 000052
【図２０Ｉ】
2008526086.tif 000053
【国際調査報告】
2008526086.tif 000054
2008526086.tif 000055