(57)【特許請求の範囲】
【請求項１】
データ符号化の方法であって、
１組の情報ビットを受信することと、
コードワードを生成するために、リフトされた低密度パリティ検査（ＬＤＰＣ）符号化演算を前記１組の情報ビットに実行することと、
前記ＬＤＰＣ符号化演算で使用される基礎ＬＤＰＣ符号の１つまたは複数のパンクチャされた基礎ビットに対応する前記コードワードのすべてのリフトされたビットをパンクチャすることと、ここにおいて、
前記１つまたは複数のパンクチャされた基礎ビットが、それぞれ前記基礎ＬＤＰＣ符号の１つまたは複数のパンクチャされた基礎ノードに対応するものであり、
前記基礎ＬＤＰＣ符号がノード対間の多重エッジを有しておらず、
ここにおいて、前記１つまたは複数のパンクチャされた基礎ノードが、前記基礎ＬＤＰＣ符号の少なくとも１つの最高次数の変数ノード、および、１つまたは複数の次数２の変数ノードを備え、前記１つまたは複数の次数２の変数ノードは、基礎ＬＤＰＣ符号から前記多重エッジを除去するために使用される、
を備える、方法。
【請求項２】
前記１つまたは複数のパンクチャされた基礎ノードが、前記基礎ＬＤＰＣ符号の検査ノードの数に等しいかまたはそれより１少ない次数を有する１つまたは複数の変数ノードに対応する、請求項１に記載の方法。
【請求項３】
前記１つまたは複数のパンクチャされた基礎ノードが、各々別の変数ノードに接続されている１つまたは複数のそれぞれの検査ノードを分割し、その他の変数ノードの各々が、エッジによって、前記対応する分割された検査ノードの両方の要素に接続される、請求項１に記載の方法。
【請求項４】
疑似巡回リフティングが前記基礎ＬＤＰＣ符号に適用され、前記疑似巡回リフティングのエッジクラスタの置換が巡回置換である、請求項１に記載の方法。
【請求項５】
先行する請求項１〜４のいずれか一項にしたがった方法をコンピュータに実施させるための命令を記録した、コンピュータ読み取り可能な記録媒体。
【請求項６】
データ復号化の方法であって、
ＬＤＰＣコードワードを受信することと、
基礎ＬＤＰＣ符号の１つまたは複数のパンクチャされたベースドビットに対応する前記ＬＤＰＣコードワードのすべてのリフトされたビットを識別することと、ここにおいて、前記１つまたは複数のパンクチャされた基礎ビットが、それぞれ前記基礎ＬＤＰＣ符号の１つまたは複数のパンクチャされた基礎ノードに対応するものであり、
前記基礎ＬＤＰＣ符号がノード対間の多重エッジを有していない、
１組の情報ビットを回復するために前記受信されたコードワードにＬＤＰＣ復号化演算を実行することと、ここにおいて、前記識別されたリフトされたビットが、復号化の目的では消去されているとして扱われ、
ここにおいて、前記１つまたは複数のパンクチャされた基礎ノードが、前記基礎ＬＤＰＣ符号の少なくとも１つの最高次数の変数ノード、および、１つまたは複数の次数２の変数ノードを備え、前記１つまたは複数の次数２の変数ノードは、基礎ＬＤＰＣ符号から前記多重エッジを除去するために使用される、
を備える、方法。
【請求項７】
前記１つまたは複数のパンクチャされた基礎ノードが、前記基礎ＬＤＰＣ符号の検査ノードの数に等しいかまたはそれより１少ない次数を有する１つまたは複数の変数ノードに対応する、請求項６に記載の方法。
【請求項８】
前記１つまたは複数のパンクチャされた基礎ノードが、各々別の変数ノードに接続されている１つまたは複数のそれぞれの検査ノードを分割し、その他の変数ノードの各々が、エッジによって、前記対応する分割された検査ノードの両方の要素に接続される、請求項６に記載の方法。
【請求項９】
疑似巡回リフティングが前記基礎ＬＤＰＣ符号に適用され、前記疑似巡回リフティングのエッジクラスタの置換が巡回置換である、請求項６に記載の方法。
【請求項１０】
先行する請求項６〜９のいずれか一項にしたがった方法をコンピュータに実施させるための命令を記録した、コンピュータ読み取り可能な記録媒体。
【請求項１１】
１組の情報ビットを受信するための手段と、
コードワードを生成するために、前記１組の情報ビットにＬＤＰＣ符号化演算を実行するための手段と、
前記ＬＤＰＣ符号化演算で使用される基礎ＬＤＰＣ符号の１つまたは複数のパンクチャされた基礎ビットに対応する前記コードワードのすべてのリフトされたビットをパンクチャするための手段と、ここにおいて、
前記１つまたは複数のパンクチャされた基礎ビットが、それぞれ前記基礎ＬＤＰＣ符号の１つまたは複数のパンクチャされた基礎ノードに対応するものであり、
前記基礎ＬＤＰＣ符号がノード対間の多重エッジを有しておらず、
ここにおいて、前記１つまたは複数のパンクチャされた基礎ノードが、前記基礎ＬＤＰＣ符号の少なくとも１つの最高次数の変数ノード、および、１つまたは複数の次数２の変数ノードを備え、前記１つまたは複数の次数２の変数ノードは、基礎ＬＤＰＣ符号から前記多重エッジを除去するために使用される、
を備える、符号器。
【請求項１２】
ＬＤＰＣコードワードを受信するための手段と、
基礎ＬＤＰＣ符号の１つまたは複数のパンクチャされたベースドビットに対応する前記ＬＤＰＣコードワードのすべてのリフトされたビットを識別するための手段と、ここにおいて、
前記１つまたは複数のパンクチャされた基礎ビットが、それぞれ前記基礎ＬＤＰＣ符号の１つまたは複数のパンクチャされた基礎ノードに対応するものであり、
前記基礎ＬＤＰＣ符号がノード対間の多重エッジを有していない、
１組の情報ビットを回復するために前記受信されたコードワードにＬＤＰＣ復号化演算を実行するための手段と、ここにおいて、前記識別されたリフトされたビットが、復号化の目的では消去されているとして扱われ、
ここにおいて、前記１つまたは複数のパンクチャされた基礎ノードが、前記基礎ＬＤＰＣ符号の少なくとも１つの最高次数の変数ノード、および、１つまたは複数の次数２の変数ノードを備え、前記１つまたは複数の次数２の変数ノードは、基礎ＬＤＰＣ符号から前記多重エッジを除去するために使用される、
を備える、復号器。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]本実施形態は、一般に、通信およびデータ記憶システムに関し、詳細には、ＬＤＰＣ符号を使用する通信およびデータ記憶システムに関する。
【背景技術】
【０００２】
[0002]多くの通信システムは誤り訂正符号を使用する。詳細には、誤り訂正符号は、データストリームに冗長性を導入することによってこれらのシステムへの情報転送の本質的な不信頼性を補償する。低密度パリティ検査（ＬＤＰＣ）符号は、反復符号化システムを使用する特定のタイプの誤り訂正符号であるＬＤＰＣ符号は、二部グラフ（しばしば「タナーグラフ」と呼ばれる）によって表すことができ、１組の変数ノードが、コードワードのビットに対応し、１組の検査ノードが、符号を定義する１組のパリティ検査制約に対応する。変数ノードおよび検査ノードがグラフのエッジで接続される場合、それらは「隣接しているもの」と見なされる。検査ノードごとに、すべての隣接する変数ノードに関連するビットが合計されて、０モジュロ２になる（すなわち、それらは偶数個の１を含む）ときおよびそのときに限って、変数ノードシーケンスと１対１に関連付けられたビットシーケンスは、有効なコードワードである。
【０００３】
[0003]たとえば、図１Ａは、例示的なＬＤＰＣ符号を表す二部グラフ１００を示す。二部グラフ１００は、４つの検査ノード１２０（正方形で表された）に接続された１組の５つの変数ノード１１０（円で表された）を含む。グラフ１００のエッジは、変数ノード１１０を検査ノード１２０に接続する。図１Ｂは、二部グラフ１００の行列表現１５０を示す。行列表現１５０は、パリティ検査行列Ｈとコードワードベクトルｘとを含み、ここで、ｘ１〜ｘ５はコードワードｘのビットを表す。より詳細には、コードワードベクトルｘは、Ｈｘ＝０のときおよびそのときに限って、有効なコードワードを表す。図２は、たとえば、本願の譲受人が所有する米国特許第７，５５２，０９７号に説明されているように、図１Ａのグラフの３つのコピーを作る効果をグラフ式に示す。３つのコピーは、コピーの間の同様なエッジを置換することによって相互接続され得る。置換が巡回置換に制限される場合、結果として生じるグラフは、リフティングＺ＝３による疑似巡回ＬＤＰＣに対応する。３つのコピーが作られたオリジナルのグラフは、本明細書では基礎グラフ（ｂａｓｅ  ｇｒａｐｈ）と呼ばれる。
【０００４】
[0004]受信されたＬＤＰＣコードワードを復号して、オリジナルのコードワードの再構築されたバージョンを生成することができる。誤りがない場合、または訂正可能な誤りの場合、復号化を使用して、符号化されたオリジナルのデータユニットを回復することができる。ＬＤＰＣ復号器は、一般に、エッジに沿って、二部グラフ１００内でメッセージを交換し、入来メッセージに基づいてノードで計算を実行することによりこれらのメッセージを更新することによって動作する。たとえば、グラフ１００の各変数ノード１１０は、最初に、通信チャネルからの観察によって決定されるような関連するビット値の推定を示す「ソフトビット」（たとえば、コードワードの受信されたビットを表す）が供給され得る。これらのソフトビットを使用して、ＬＤＰＣ復号器は、メモリからメッセージまたはその一部分を反復して読み出し、更新されたメッセージまたはその一部分をメモリに戻して書き込むことによってメッセージを更新することができる。更新演算は、一般に、対応するＬＤＰＣ符号のパリティ検査制約に基づく。リフトされたＬＤＰＣ符号のための実施態様では、同様のエッジ上のメッセージは、多くの場合、並列に処理される。
【０００５】
[0005]高速用途のために設計されたＬＤＰＣ符号は、多くの場合、符号化および復号化演算における高並列性をサポートするために、大きいリフティング係数および比較的小さい基礎グラフをもつ疑似巡回構成を使用する。より高い符号化率（たとえば、コードワード長Ｎに対するメッセージ長Ｋの比）をもつＬＤＰＣ符号は、比較的少ないパリティ検査を有する傾向がある。基礎パリティ検査の数が変数ノードの次数（たとえば、変数ノードに接続されたエッジの数）よりも少ない場合、基礎グラフにおいて、その変数ノードは、２つ以上のエッジによって基礎パリティ検査のうちの少なくとも１つに接続される（たとえば、変数ノードは「二重エッジ」を有することがある）。ベースド変数ノードおよび基礎検査ノードを２つ以上のエッジによって接続させるのは、一般に、並列ハードウェア実施目的では望ましくない。たとえば、そのような二重エッジは、同じメモリ場所に多数の同時読取りおよび書込み演算をもたらすことがあり、その結果として、データコヒーレンシ問題を引き起こすことがある。並列メッセージ更新のパイプライン処理は、二重エッジの存在によって悪影響を受けることがある。
【発明の概要】
【０００６】
[0006]本概要は、発明を実施するための形態において以下でさらに説明する概念の選択を簡略化された形で紹介するために与えるものである。本概要は、請求する主題の主要な特徴または本質的特徴を識別するものではなく、請求する主題の範囲を限定するものでもない。
【０００７】
[0007]低密度パリティ検査（ＬＤＰＣ）コードワードの符号化および／または復号化を支援することができるデバイスおよび演算の方法が開示される。パンクチャされた変数ノード（状態変数ノードとしても知られている）の基礎グラフ設計への追加は、符号のレートパラメータ（ｋおよびｎ）を変更することなく、グラフにおける検査の数を１つだけ効果的に増加させることができることに留意されたい。いくつかの実施形態では、符号器は、１組の情報ビットを受信し、コードワードを生成するために、ＬＤＰＣ符号化演算を情報ビットに実行することができる。次に、デバイスは、ＬＤＰＣ符号化演算に使用されるリフトされたＬＤＰＣ符号に基づいて、１つまたは複数の基礎変数ノードに対応する１組のリフトされたコードワードビットをパンクチャすることができ、パンクチャされたビットは、それぞれ基礎ＬＤＰＣグラフの１つまたは複数のパンクチャされた基礎変数ノードに対応する。符号のグラフ式記述におけるパンクチャされた変数ノードは、検査ノードが、リフトされたパリティ検査行列に演算するプロセスを組み合わせることによって記述から除去され得ることが理解される。したがって、１つまたは複数のパンクチャされた基礎ノードのうちの少なくとも１つは、パンクチャされた変数ノードの除去が多重エッジをもたらす場合、リフトされたＬＤＰＣ符号の基礎グラフのノード対間の多重エッジを除去することが理解される。
【０００８】
[0008]いくつかの実施形態では、１つまたは複数のパンクチャされたノードは、ＬＤＰＣ符号の検査ノードの数に等しいかまたはそれよりも１少ない次数を有する変数ノードを含むことができる。たとえば、パンクチャされたノードのうちの少なくとも１つは、ＬＤＰＣ符号の最高次数の変数ノードとすることができる。そのような実施形態では、ノードの高い次数は、多くの場合、符号の性能の強化にとって望ましい。たとえば、パンクチュアリングにより、基礎グラフの二重エッジを避けながらより高い変数ノード次数が可能になる。グラフにパンクチャされた変数ノードが存在すると、普通なら、同じサイズおよびレートの符号の基礎グラフに存在することになる検査ノードの数が効果的に増加する。他の実施形態では、パンクチャされたノードのうちの少なくとも１つは、普通なら２つ以上のエッジによってＬＤＰＣ符号の変数ノードに接続されることになる検査ノードを分割するのに使用される次数２の変数ノードとすることができる。パンクチャされた次数２のノードは、それが接続される２つのパリティ検査を追加することによって記述から除去され得る。それにより、少なくとも１つのパンクチャされた基礎の次数２の変数ノードは、基礎ＬＤＰＣグラフの二重エッジを除去するために使用され得る。同様に、高い次数のパンクチャされたノードは、変数ノードの次数を１まで効果的に減少させるために、除去プロセスが制約ノードを合計することによってパリティ検査行列表現から除去され得る。次数１のパンクチャされたノードは、符号を変えることなく、その隣接する検査ノードとともにグラフから除去され得る。そのような除去プロセスは、表現に二重エッジまたは多重エッジを導入する可能性があり、それは、復号化の並列実施にとって望ましくない。
【０００９】
[0009]基礎ＬＤＰＣグラフから二重（または多重）エッジを除去するかまたは減少させることによって、本実施形態は、ＬＤＰＣ復号化演算を並列に実行するハードウェアの複雑さを減少させ、それによって、リフトされたＬＤＰＣ符号を実施するＬＤＰＣ復号器の処理効率を向上させることができる。これは、さらに、メモリで実行される読出しおよび／または書込み操作を簡単化し、読出しおよび書込み操作が、順序が乱れて、実行されないことを保証する。二重エッジを避けながら、より大きい変数ノード次数を可能にすることによって、本実施形態は、さらに、ＬＤＰＣ符号化システムの誤り訂正性能を改善することができる。
【００１０】
[0010]本実施形態は例として示されており、添付図面の図によって限定されるものではない。
【図面の簡単な説明】
【００１１】
【図１Ａ】[0011]例示のＬＤＰＣ符号のグラフ表示の図。
【図１Ｂ】例示のＬＤＰＣ符号の行列表示の図。
【図２】[0012]図１Ａのグラフの３つのコピーを作る効果をグラフ式に示す図。
【図３】[0013]いくつかの実施形態による通信システムを示す図。
【図４】[0014]いくつかの実施形態による通信デバイスのブロック図。
【図５】[0015]いくつかの実施形態によるＬＤＰＣ符号化演算を示す例示的な流れ図。
【図６】[0016]いくつかの実施形態によるＬＤＰＣ復号化演算を示す例示的な流れ図。
【図７】[0017]レートｒ＝２７／３０をもつＬＤＰＣ符号に関連する例示のパリティ検査行列を示す図。
【図８】[0018]レートｒ＝１３／１５をもつＬＤＰＣ符号に関連する例示のパリティ検査行列を示す図。
【図９】[0019]レートｒ＝２１／２８をもつＬＤＰＣ符号に関連する例示のパリティ検査行列を示す図。
【図１０】[0020]いくつかの実施形態による通信デバイスのブロック図。
【発明を実施するための形態】
【００１２】
[0021]以下の説明では、本開示の十分な理解を提供するために、特定の構成要素、回路、およびプロセスの例などの多数の特定の細部が記載されている。本明細書で使用する「結合された」という用語は、直接接続されていること、または１つまたは複数の介在する構成要素もしくは回路を通して接続されていることを意味する。さらに、以下の記述においておよび説明のために、特定の命名法が、本実施形態の十分な理解を提供するために記載されている。しかしながら、これらの特定の細部は本実施形態を実践するのに必要とされないことがあることが当業者には明白であろう。他の場合には、よく知られている回路およびデバイスは、本開示を不明瞭にしないためにブロック図の形態で示される。本明細書で説明する様々なバスにより供給される信号のいずれも他の信号と時分割多重され、１つまたは複数の共通バスにより供給され得る。追加として、回路要素間またはソフトウェアブロック間の相互接続は、バスとして、または単一の信号ラインとして示されることがある。バスの各々は、代替として、単一の信号ラインとすることができ、単一の信号ラインの各々は、代替として、バスとすることができ、単一のラインまたはバスは、構成要素間の通信のための無数の物理的または論理的機構のうちの任意の１つまたは複数を表すことができる。本実施形態は、本明細書に記載された具体的な例に限定されると見なされるものではなく、むしろ、添付された特許請求の範囲によって定義されたすべての実施形態を、それらの範囲内に含むものである。
【００１３】
[0022]図３は、いくつかの実施形態による通信システム３００を示す。送信機３１０はチャネル３２０に信号を送信し、受信機３３０はチャネル３２０から信号を受信する。送信機３１０および受信機３３０は、たとえば、コンピュータ、スイッチ、ルータ、ハブ、ゲートウェイ、および／または同様のデバイスであり得る。ある実施形態では、チャネル３２０はワイヤレスである。他の実施形態では、チャネル３２０は、有線リンク（たとえば、同軸ケーブルまたは他の物理的接続）である。
【００１４】
[0023]通信システム３００の様々な構成要素の欠陥は、信号障害の原因になり、それにより、信号劣化を引き起こすことがある。たとえば、チャネル３２０の欠陥はチャネル歪みを導入することがあり、チャネル歪みは、直線歪み、マルチパス効果、および／または付加白色ガウス雑音（ＡＷＧＮ）を含むことがある。潜在的な信号劣化と戦うために、送信機３１０および受信機３３０は、ＬＤＰＣ符号器と復号器とを含むことができる。詳細には、送信機３１０は送出データにＬＤＰＣ符号化を実行して、オリジナルのデータの回復するために受信機３３０で後に復号され得る（たとえば、ＬＤＰＣ復号化演算によって）コードワードを生成することができる。いくつかの実施形態では、送信機３１０は、１つまたは複数の「パンクチャされた」ビットをもつＬＤＰＣ符号化コードワードを、たとえば、１つまたは複数のパンクチャされた変数ノードをもつＬＤＰＣ符号に基づいて、送信することができる。
【００１５】
[0024]「リフティング」により、ＬＤＰＣ符号は、並列符号化および／または復号化実施を使用するとともに、さらに、大きいＬＤＰＣ符号に一般に関連する複雑さを低減して、実施できるようになる。より詳細には、リフティングは、より小さい基礎符号の多数のコピーから比較的大きいＬＤＰＣ符号を発生させるための技法である。たとえば、リフトされたＬＤＰＣ符号は、基礎グラフのいくつか（Ｚ個）の並列コピーを生成し、次に、基礎グラフの各コピーのエッジクラスタの置換により並列コピーを相互接続することによって発生され得る。リフトされたＬＤＰＣ符号のより詳細な議論は、たとえば、２００８年３月１７日に出版された、Ｔｏｍ  Ｒｉｃｈａｒｄｓｏｎおよび  Ｒｕｅｄｉｇｅｒ  Ｕｒｂａｎｋｅによる「Ｍｏｄｅｒｎ  Ｃｏｄｉｎｇ  Ｔｈｅｏｒｙ」という書名の書籍で見いだすことができ、その全体が参照により明細書に組み込まれる。
【００１６】
[0025]たとえば、リフティングサイズＺをもつコードワードを処理する場合、ＬＤＰＣ復号器は、Ｚ個の処理要素を利用して、リフトされたグラフのすべてのＺ個のエッジに対してパリティ検査演算または変数ノード演算を同時に実行することができる。詳細には、各パリティ検査演算は、対応するソフトビット値をメモリから読み出すことと、ソフトビット値を検査ノードに関連した他のソフトビット値と組み合わせることと、検査ノード演算に由来するソフトビットをメモリに戻して書き込むこととを含むことができる。基礎グラフ中の二重エッジは、同じソフトビット値の並列読出しを、メモリ場所において、単一の並列パリティ検査更新の間に２回トリガすることがある。それにより、付加回路は、両方の更新を適切に組み込むために、メモリに戻して書き込まれるソフトビット値を組み合わせることが必要であることがある。基礎グラフ中の二重エッジを除去するのは、この余分な複雑さを避けるのに役立つ。
【００１７】
[0026]基礎ＬＤＰＣ符号から二重（および／または多重）エッジを除去するかまたは減少させることによって、パンクチュアリングは、並列検査ノードまたは変数ノード演算を実行するハードウェアの複雑さを減少させ、それによって、対応するＬＤＰＣ復号器の並列処理効率を向上させることができる。これは、さらに、メモリで実行される読出しおよび／または書込み操作を簡単化し、読出しおよび書込み操作が、順序が乱れて、実行されないことを保証する。
【００１８】
[0027]パンクチュアリングは、コードワードからビットを除去して、より短いコードワードをもたらすための動作である。それにより、パンクチャされた変数ノードは、実際に送信されないコードワードビットに対応する。ＬＤＰＣ符号の変数ノードをパンクチャすると、短縮された符号（たとえば、ビットの除去に起因して）が造り出されるとともに、さらに、検査ノードが効率的に除去される。詳細には、パンクチャされ得るビットを含むＬＤＰＣ符号の行列表現では、パンクチャされ得る変数ノードは１の次数を有している（符号が適切ならば、そのような表現が列組合せにより可能であり得る）場合、変数ノードのパンクチャリングは、符号から関連するビットを除去し、その単一の隣接する検査ノードをグラフから効率よく除去する。その結果として、グラフの検査ノードの数は１つだけ減少する。基礎送信ブロック長がｎ−ｐであり、ここで、ｐがパンクチャされた列の数であり、基礎パリティ検査の数がｍである場合、レートは（ｎ−ｍ）／（ｎ−ｐ）である。２値情報ブロックサイズは（ｎ−ｍ）×Ｚであり、送信ブロックサイズは（ｎ−ｐ）×Ｚである。ｎおよびｐを１だけ増加させた場合、ｍを１だけ増加させ、レートおよびブロックサイズを変更しないままとすることができることに留意されたい。
【００１９】
[0028]一例として、基礎ブロック長が３０であるレート０．９符号を考える。パンクチュアリングなしでは、基礎符号を定義するために使用されることになる検査ノードの数は３であり、これは、（２７，３０）符号（たとえば、Ｋ＝２７メッセージビット、Ｎ＝３０コードワードビット）をもたらす。そのような符号は、少なくとも１つの検査ノードを変数ノードに接続する二重（またはより多くの）エッジを有する可能性がある（たとえば、すべての変数ノードが３の最大次数を有していない限り）。しかしながら、たとえば、深いエラーフロアを保証するにはより大きい次数の変数ノード（たとえば、次数≧４）を有することが望ましいことがある。パンクチャされた変数ノードが、ＬＤＰＣ符号に導入され、それによって、変数ノードの総数を３１に増加させる場合、基礎検査ノードの数は４に増加する。今では、基礎グラフに二重エッジなしに、次数４の基礎変数ノードを有することが可能である。しかしながら、そのようなＬＤＰＣ符号は依然として（２７，３０）符号であることに留意されたい。
【００２０】
[0029]ＬＤＰＣ符号の二部グラフ表現において、パンクチャされた次数２の変数ノードは、その２つの隣接する検査ノードを単一の検査ノードに効率よくマージする。パンクチャされた次数２の変数ノードは、事実上、その２つの隣接する検査ノードが、次数２のノードがないので、同じパリティを有することを示す。それゆえに、パンクチャされた次数２の変数ノードを使用して、検査ノードを「分割する」ことができ、それによって、検査ノードの総数を増加させたように見える。したがって、この機構を使用して、ＬＤＰＣ符号から多重エッジを除去することができる。一般に、変数ノードの次数が基礎グラフの検査ノードの総数（Ｎ）よりも多い場合、変数ノードは２つ以上のエッジによって少なくとも１つの検査ノードに接続される。それにより、基礎グラフの多重エッジは、１つまたは複数の次数２の変数ノードを導入することによって避けられ得るおよび／または除去され得る（すなわち、基礎グラフの少なくとも１つの変数ノードがＮよりも大きい次数を有すると仮定して）。
【００２１】
[0030]ＬＤＰＣ符号の高い次数の基礎変数ノードをパンクチャすると、さらに、検査ノードの数を増加させることができる。加えて、高い次数の検査ノードが、高性能ＬＤＰＣ設計では望ましいことがある。たとえば、最高次数の変数ノードは、基礎グラフの検査ノードの総数に等しい（または１少ない）次数を有する変数ノードに対応することができる。そのような高い次数の変数ノードは、いかなる二重エッジもなしに基礎グラフに確かに存在することができる。以下でさらに詳細に説明するように、パンクチャされた変数ノードは、復号化において「消去されている」として扱われる。それにより、低い誤り率を目標とする符号では、そのようなノードが、エラーフロア事象を引き起こす組合せ構造（たとえば、トラッピングセット、またはニアコードワード）に参加しないようにすることが望ましいことがある。高い次数を有すると、一般に、ノードがエラーフロア事象の一因になる可能性が少なくなる。
【００２２】
[0031]さらに、グラフ中の高い次数のパンクチャされた変数ノードは、符号の性能を改善することができる。グラフ中のパンクチャされたノードは、符号構造のいわゆる反復閾値を改善できることが知られている。標準の非正則ＬＤＰＣ設計（すなわち、パンクチャされた変数ノードのない）では、二部グラフの平均次数を増加させ、それにより、変数ノードおよび検査ノードの次数を増加させることによって、閾値は改善され得る。パンクチャされた変数ノードを用いて、同じ効果が、より低い平均次数で達成され、それによって、ＬＤＰＣ符号の複雑さを低減することができる。さらに、より低い平均次数を有するＬＤＰＣ符号構造は、より小さいグラフでより良好に機能することができる。それにより、高次数の変数ノードをパンクチャすると、検査ノードの数を増加させる（それにより、より高い次数を可能にする）ことと、限られた最大変数ノード次数で符号の性能を改善することの両方が可能になる。
【００２３】
[0032]図４は、いくつかの実施形態による通信デバイス４００のブロック図である。通信デバイス４００は、符号器４１０と、復号器４２０と、通信チャネルを介してＬＤＰＣ符号化コードワードを送信および／または受信するトランシーバ４３０とを含む。符号器４１０は、メモリ４１２とＬＤＰＣ符号器４１４とを含む。メモリ４１２は、ＬＤＰＣ符号器４１４で符号化されるべきデータ（すなわち、情報ビット）を記憶するのに使用され得る。ＬＤＰＣ符号器４１４は、別のデバイスに送信されるべき、ＬＤＰＣ符号に基づく、コードワードを発生させることによって、メモリ４１２に記憶された情報ビットを処理する。
【００２４】
[0033]いくつかの実施形態では、ＬＤＰＣ符号は、リフトされたＬＤＰＣ符号とすることができる。さらに、いくつかの実施形態では、基礎ＬＤＰＣ符号は、１つまたは複数のパンクチャされたノードを含むことができる。それにより、ＬＤＰＣ符号器４１４は、基礎ＬＤＰＣ符号のそれぞれのパンクチャされたノードに対応するコードワードの１つまたは複数のビットをパンクチャすることができる。これらのパンクチャされたコードワードビットはトランシーバ４３０によって送信されない。いくつかの実施形態では、パンクチャされたノードは、ＬＤＰＣ符号の検査ノードの数に等しいかまたはそれよりも１少ない次数を有する基礎変数ノードを含むことができる。たとえば、パンクチャされたノードのうちの少なくとも１つは、ＬＤＰＣ符号の最高次数の変数ノードとすることができる。他の実施形態では、パンクチャされたノードのうちの少なくとも１つは、２つ以上のエッジによってＬＤＰＣ符号の変数ノードに接続されている検査ノードを分割するのに使用され得る。そのようなパンクチャされたノードは、リフトされたＬＤＰＣ符号に対して基礎グラフ中の二重エッジを除去するのに使用され得る。
【００２５】
[0034]復号器４２０は、メモリ４２２とＬＤＰＣ復号器４２４とを含む。メモリ４２２は、トランシーバ４３０を介して受信され、ＬＤＰＣ復号器４２４によって復号されるべきコードワードを記憶する。ＬＤＰＣ復号器４２４は、メモリ４２４に記憶されたコードワードを、ＬＤＰＣ符号を使用してパリティ検査演算を反復して実行し、誤りが発生している状態で受信されたいかなるビットも訂正を試みることによって処理する。いくつかの実施形態では、ＬＤＰＣ符号は、リフトされたＬＤＰＣ符号とすることができる。さらに、いくつかの実施形態では、受信されたコードワードは、たとえば、対応するＬＤＰＣ符号の１組のパンクチャされたノードに基づいて決定されたような１つまたは複数のパンクチャビットを含むことができる。図３を参照しながら上述したように、パンクチャされるノードは、ＬＤＰＣ符号の変数ノードの次数に基づいて決定され得る。それにより、ＬＤＰＣ復号器４２４は、これらのパンクチャされたノードを復号化の目的では消去されているとして扱うことができる。たとえば、ＬＤＰＣ復号器４２４は、パンクチャされたノードの対数尤度比（ＬＬＲ）を初期化でゼロに設定することができる。
【００２６】
[0035]いくつかの実施形態では、ＬＤＰＣ復号器４２４は、パリティ検査または変数ノード演算を並列に実行するために複数の処理要素を含むことができる。たとえば、リフティングサイズＺをもつコードワードを処理する場合、ＬＤＰＣ復号器４２４は、いくつか（Ｚ個）の処理要素を利用して、リフトされたグラフのすべてのＺ個のエッジに対してパリティ検査演算を同時に実行することができる。詳細には、各パリティ検査演算は、対応するソフトビット値をメモリ４２２から読み出すことと、ソフトビット値を検査ノードに関連した他のソフトビット値と組み合わせることと、検査ノード演算に由来するソフトビットをメモリ４２２に戻して書き込むこととを含むことができる。基礎ＬＤＰＣ中の二重エッジは、同じソフトビット値メモリ場所の並列読出しを、単一の並列パリティ検査更新の間に２回トリガすることがある。それにより、付加回路は、一般に、両方の更新を適切に組み込むために、メモリに戻して書き込まれるソフトビット値を組み合わせることが必要である。しかしながら、たとえば図３に関して上述したように、ＬＤＰＣ符号中の二重エッジを除去するのは、この余分な複雑さを避けるのに役立つ。
【００２７】
[0036]図５は、いくつかの実施形態によるＬＤＰＣ符号化演算５００を示す例示的な流れ図である。たとえば図４を参照すると、符号器４１０は、最初に、符号化されるべき１組の情報ビットを受信する（５１０）。情報ビットは、通信チャネルまたはネットワークを通して別のデバイス（たとえば、受信デバイス）に送信されるように意図されたデータに対応することができる。たとえば、情報ビットは、中央処理装置（ＣＰＵ）から受信され、メモリ４１２に記憶され得る。
【００２８】
[0037]次に、符号器４１０は、ＬＤＰＣコードワードを生成するために情報ビットにＬＤＰＣ符号化演算を実行することができる（５２０）。いくつかの実施形態では、ＬＤＰＣ符号器４１４は、符号器４１０および対応する復号器（たとえば、受信デバイスの）によって共有されるＬＤＰＣ符号に基づいて、情報ビットをＬＤＰＣコードワードに符号化することができる。各コードワードは、オリジナルの情報ビットまたはその一部分ならびにオリジナル情報ビットにパリティ検査演算を実行するおよび／またはオリジナルの情報ビットを回復するために使用され得る（たとえば、復号器によって）１組のパリティビットを含むことができる。
【００２９】
符号器４１０は、ＬＤＰＣ符号の基礎被パンクチャ変数ノード（ｂａｓｅ  ｐｕｎｃｔｕｒｅｄ  ｖａｒｉａｂｌｅ  ｎｏｄｅ）に基づいてＬＤＰＣコードワードの１つまたは複数のビットをさらにパンクチャすることができる（５３０）。たとえば、１つまたは複数のパンクチャされたコードワードビットは、それぞれ基礎ＬＤＰＣ符号の１つまたは複数の基礎変数被パンクチャノードに対応することができる。詳細には、パンクチャされたノードのうちの少なくともいくつかは、リフトされたＬＤＰＣ符号の基礎グラフ中のノード対間の多重エッジを除去するように設定される。いくつかの実施形態では、パンクチャされたノードは、ＬＤＰＣ符号の検査ノードの数に等しいかまたはそれよりも１少ない次数を有する変数ノードを含むことができる。他の実施形態では、パンクチャされたノードのうちの少なくとも１つは、次数２の変数ノードとすることができる。たとえば、次数２の変数ノードは、普通なら２つ以上のエッジによってＬＤＰＣ符号の別の変数ノードに接続されることになる検査ノードを分割するのに使用され得る。いくつかの実施形態では、両方が生じることがあり、詳細には、高い次数のパンクチャされた変数ノードと次数２のパンクチャされたノードの両方が基礎グラフに生じることがある。いくつかの実施形態では、ＬＤＰＣ符号は、リフトされたＬＤＰＣ符号とすることができる。その上さらに、ＬＤＰＣ符号は、疑似巡回リフティングに基づくことができ、エッジクラスタの置換は巡回置換である。
【００３０】
[0038]図６は、いくつかの実施形態によるＬＤＰＣ復号化演算６００を示す例示的な流れ図である。たとえば図４を参照すると、復号器４２０は、最初に、復号されるべきＬＤＰＣコードワードを受信する（６１０）。ＬＤＰＣコードワードは、送信デバイスから、たとえば、直交振幅変調（ＱＡＭ）データ信号の形態で受信され得る。それゆえに、ＬＤＰＣコードワードは、デマップされたＱＡＭデータ信号のラベル付けするビットのサブセットに対応することができる。
【００３１】
[0039]復号器４２０は、ＬＤＰＣコードワードの１つまたは複数のパンクチャされたビットを、ＬＤＰＣ符号の基礎被パンクチャノードに基づいて、識別することができる（６２０）。たとえば、１つまたは複数のパンクチャされたコードワードビットは、それぞれＬＤＰＣ符号の１つまたは複数の基礎被パンクチャノードに対応することができる。上述のように、基礎被パンクチャノードのうちの少なくともいくつかは、リフトされたＬＤＰＣ符号の基礎グラフ中のノード対間の多重エッジを除去するように設定される。いくつかの実施形態では、パンクチャされたノードは、ＬＤＰＣ符号の検査ノードの数に等しいかまたはそれよりも１少ない次数を有する変数ノードを含むことができる。他の実施形態では、パンクチャされたノードのうちの少なくとも１つは、次数２の変数ノードとすることができる。上述のように、次数２の変数ノードは、普通なら２つ以上のエッジによってＬＤＰＣ符号の別の変数ノードに接続されることになる検査ノードを分割するのに使用され得る。いくつかの実施形態では、ＬＤＰＣ符号は、リフトされたＬＤＰＣ符号とすることができる（たとえば、疑似巡回リフティングに基づいて）。
【００３２】
[0040]次に、復号器４２０は、受信されたコードワードにＬＤＰＣ復号化演算を実行して、オリジナルの情報ビットを回復することができる（６３０）。たとえば、ＬＤＰＣ復号器４２４は、ＬＤＰＣ符号を使用してパリティ検査演算を反復して実行し、誤りが発生している状態で受信されたいかなるビットも訂正するように試みることによってコードワードを処理することができる。いくつかの実施形態では、ＬＤＰＣ復号器４２４は、パンクチャされたコードワードビットを、たとえばパンクチャされたノードのＬＬＲを初期化でゼロに設定することによって、復号化演算の間消去されているとして扱うことができる。
【００３３】
[0041]本実施形態では、ＬＤＰＣ符号の各々は、サイズＺ×ｎの２次元２値アレイと見られ得る、ここで、ｎは基礎（送信）ブロック長である。いくつかの実施形態では、提案するダウンストリーム符号は、Ｚ＝３６０のように定義される．コンステレーションごとに、ｋビットが、一度に次元当たり取られ得る（たとえば、１０２４ＱＡＭでは、ｋ＝５）。さらに、ｋは３６０の約数（ｆａｃｔｏｒ）であり、ｋビットが一度に列方向に取られ、それにより、３６０／ｋ次元、または列当たり１８０／ｋシンボルを発生させることができる。それにより、注目する場合において、集合ｋ∈｛１，２，３，４，５，６｝では、ｋは６０の約数であることに留意されたい。
【００３４】
[0042]図７、図８、および図９は、いくつかの実施形態による、それぞれ、例示のパリティ検査行列７００、８００、および９００を示す。パリティ検査行列７００、８００、および９００の各々において一番上の行は、Ｈの列を指し示す。２番目の行は、情報（１）およびパリティ（０）列を示す。３番目の行は、送信された列（１）およびパンクチャされた列（０）を示す。
【００３５】
[0043]それぞれ、レートｒ＝２７／３０およびｒ＝１３／１５をもつＬＤＰＣ符号に関連するパリティ検査行列７００および８００は、システマティックであることに留意されたい。しかしながら、レートｒ＝２１／２８をもつＬＤＰＣ符号に関連するパリティ検査行列９００は、パンクチャされた情報列を有しており、したがって、完全にはシステマティックでない。
【００３６】
[0044]さらに、パリティ検査行列７００は、パンクチャされた次数２の変数ノード（指標０）を有する。そのようなノードは、単一のパリティ検査を２つに分割することができる。これは、基礎行列が二重エッジを有しておらず、本明細書で説明する実施形態のうちのいくつかを容易にすることを保証する。等価符号表示は、２つのパリティ検査をマージし、パンクチャされた次数２の変数ノードを除去することによって構築され得る。その上、そのような等価表示は、基礎グラフに二重エッジまたは多重エッジを有するであろう。
【００３７】
[0045]図１０は、いくつかの実施形態による通信デバイス１０００のブロック図である。通信デバイス１０００は、トランシーバ１０１０と、プロセッサ１０２０と、メモリ１０３０とを含む。トランシーバ１０１０は、通信デバイス１０００へのおよび／または通信デバイス１０００からのデータの通信のために使用され得るたとえば、トランシーバ１０１０は、通信デバイス１０００とＣＰＵとの間で情報ビットを受信および／または送信することができる。符号器インターフェース１０１０は、通信デバイス１０００とネットワーク中の別の通信デバイスとの間でＬＤＰＣコードワードを出力および／または受信することもできる。
【００３８】
[0046]メモリ１０３０は、受信された情報ビットおよび／またはコードワードを記憶するためにローカルキャッシュとして使用され得るデータストア１０３２を含むことができる。さらに、メモリ１０３０は、以下のソフトウェアモジュールを記憶することができる非一時的コンピュータ可読な記憶媒体（たとえば、ＥＰＲＯＭ、ＥＥＰＲＯＭ（登録商標）、フラッシュメモリ、ハードドライブなどのような１つまたは複数の不揮発性メモリ要素）をさらに含むことができる。
【００３９】
・コードワードを生成するために、ＬＤＰＣ符号を使用して、１組の情報ビットを符号化するためのＬＤＰＣ符号化モジュール１０３４、
・ＬＤＰＣ符号を使用してＬＤＰＣコードワードを復号するためのＬＤＰＣ復号化モジュール１０３６。
【００４０】
各ソフトウェアモジュールには、プロセッサ１０２０によって実行されると、対応する機能を符号器１０００に実行させることができる命令が含まれ得る。それにより、メモリ１０３０の非一時的コンピュータ可読記憶媒体は、図５〜図６に関して上述した演算のすべてまたは一部を実行するための命令を含むことができる。モジュール１０３４〜１０３６がメモリ１０３０中にソフトウェアとして示されているが、モジュールのいずれも、ハードウェア、ソフトウェア、ファームウェア、または前述のものの組合せで実装され得ることに留意されたい。
【００４１】
[0047]符号器インターフェース１０１０とメモリ１０３０との間に結合されるプロセッサ１０２０は、復号器１０００に（たとえば、メモリ１０３０内に）記憶された１つまたは複数のソフトウェアプログラムの命令のスクリプトを実行することができる任意の好適なプロセッサとすることができる。たとえば、プロセッサ１０２０は、ＬＤＰＣ符号化モジュール１０３４および／またはＬＤＰＣ復号化モジュール１０３６を実行することができる。
【００４２】
[0048]ＬＤＰＣ符号化モジュール１０３４は、プロセッサ１０２０によって実行されて、ＬＤＰＣ符号の使用により情報ビットを符号化して、コードワードを生成することができる。たとえば、プロセッサ１０２０は、ＬＤＰＣ符号化モジュール１０３４を実行する際に、ＬＤＰＣ符号化モジュール１０３４、および対応する受信デバイスの復号化モジュールによって共有されるＬＤＰＣ符号に基づいて、情報ビットにＬＤＰＣ符号化演算を実行することができる。各コードワードは、オリジナルの情報ビット、ならびにオリジナル情報ビットにパリティ検査を実行するおよび／またはオリジナルの情報ビットを回復するために使用され得る１組のパリティビットを含むことができる。いくつかの実施形態では、ＬＤＰＣ符号は、リフトされたＬＤＰＣ符号とすることができる（たとえば、疑似巡回リフティングに基づいて）。
【００４３】
[0049]プロセッサ１０２０は、ＬＤＰＣ符号化モジュール１０３４を実行する際に、コードワードの１つまたは複数のビットを、対応するＬＤＰＣ符号に基づいてさらにパンクチャすることができる。たとえば、１つまたは複数のパンクチャされたコードワードビットは、それぞれＬＤＰＣ符号の１つまたは複数のパンクチャされたノードに対応することができる。上述のように、パンクチャされたノードのうちの少なくともいくつかは、リフトされたＬＤＰＣ符号の基礎グラフ中のノード対間の多重エッジを除去するように設定される。いくつかの実施形態では、パンクチャされたノードは、ＬＤＰＣ符号の検査ノードの数に等しいかまたはそれよりも１少ない次数を有する変数ノードを含むことができる。他の実施形態では、パンクチャされたノードのうちの少なくとも１つは、次数２の変数ノード（たとえば、普通なら２つ以上のエッジによってＬＤＰＣ符号の別の変数ノードに接続されることになる検査ノードを分割するのに使用される）とすることができる。
【００４４】
[0050]ＬＤＰＣ復号化モジュール１０３６は、ＬＤＰＣ符号を使用してＬＤＰＣコードワードを復号するためにプロセッサ１０２０によって実行され得る。いくつかの実施形態では、プロセッサ１０２０は、ＬＤＰＣ復号化モジュール１０３６を実行する際に、最初に、受信されたコードワードの１つまたは複数のパンクチャされたビットをＬＤＰＣ符号に基づいて識別することができる。次に、プロセッサ１０２０は、受信されたコードワードにＬＤＰＣ復号化演算を実行するとともに、パンクチャされたコードワードビットを消去されているとして扱うことができる。たとえば、ＬＤＰＣ復号化モジュール１０３６は、プロセッサ１０２０によって実行されるとき、パンクチャされたノードのＬＬＲを初期化でゼロに設定することができる。いくつかの実施形態では、ＬＤＰＣ符号は、リフトされたＬＤＰＣ符号とすることができる（たとえば、疑似巡回リフティングに基づいて）。
【００４５】
[0051]上述のように、パンクチャされたコードワードビットは、ＬＤＰＣ符号のそれぞれのパンクチャされたノードに対応することができ、パンクチャされたノードのうちの少なくともいくつかは、リフトされたＬＤＰＣ符号の基礎グラフ中のノード対間の多重エッジを除去するように設定される。いくつかの実施形態では、パンクチャされたノードは、ＬＤＰＣ符号の検査ノードの数に等しいかまたはそれよりも１少ない次数を有する変数ノードを含むことができる。他の実施形態では、パンクチャされたノードのうちの少なくとも１つは、次数２の変数ノード（たとえば、普通なら２つ以上のエッジによってＬＤＰＣ符号の別の変数ノードに接続されることになる検査ノードを分割するのに使用される）とすることができる。
【００４６】
[0052]前述の明細書において、本実施形態は、本発明の特定の例示の実施形態を参照して説明された。しかしながら、添付の特許請求の範囲に記載された本開示のより広い範囲から逸脱することなく、様々な改変および変更がそれに行われ得ることは明らかであろう。それゆえに、明細書および図面は、限定の意味ではなく例示の意味と見なされるべきである。たとえば、図５〜図６の流れ図に示された方法ステップは、他の好適な順序で実行されてもよく、多数のステップは単一のステップに組み合わされてもよく、および／またはいくつかのステップは省略されてもよい。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
データ符号化の方法であって、
１組の情報ビットを受信することと、
コードワードを生成するために、リフトされた低密度パリティ検査（ＬＤＰＣ）符号化演算を前記１組の情報ビットに実行することと、
前記ＬＤＰＣ符号化演算で使用される基礎ＬＤＰＣ符号の１つまたは複数のパンクチャされた基礎ビットに対応する前記コードワードのすべてのリフトされたビットをパンクチャすることと、ここにおいて、
前記１つまたは複数のパンクチャされた基礎ビットが、それぞれ前記基礎ＬＤＰＣ符号の１つまたは複数のパンクチャされた基礎ノードに対応するものであり、
前記基礎ＬＤＰＣ符号が多重エッジを有していない、
を備える、方法。
［Ｃ２］
前記１つまたは複数のパンクチャされた基礎ノードが、前記基礎ＬＤＰＣ符号の検査ノードの数に等しいかまたはそれより１少ない次数を有する１つまたは複数の変数ノードに対応する、Ｃ１に記載の方法。
［Ｃ３］
前記１つまたは複数のパンクチャされた基礎ノードのうちの少なくとも１つが、前記基礎ＬＤＰＣ符号の最高次数の変数ノードに対応する、Ｃ１に記載の方法。
［Ｃ４］
前記１つまたは複数のパンクチャされた基礎ノードが、１つまたは複数の次数２の変数ノードに対応する、Ｃ１に記載の方法。
［Ｃ５］
前記１つまたは複数のパンクチャされた基礎ノードが、各々別の変数ノードに接続されている１つまたは複数のそれぞれの検査ノードを分割し、他の変数ノードの各々が、エッジによって、前記対応する分割された検査ノードの両方の要素に接続される、Ｃ４に記載の方法。
［Ｃ６］
前記１つまたは複数のパンクチャされた基礎ノードが、前記基礎ＬＤＰＣ符号における二重エッジを除去する、Ｃ４に記載の方法。
［Ｃ７］
疑似巡回リフティングが前記基礎ＬＤＰＣ符号に適用され、前記疑似巡回リフティングのエッジクラスタの置換が巡回置換である、Ｃ１に記載の方法。
［Ｃ８］
データ復号化の方法であって、
ＬＤＰＣコードワードを受信することと、
基礎ＬＤＰＣ符号の１つまたは複数のパンクチャされたベースドビットに対応する前記ＬＤＰＣコードワードのすべてのリフトされたビットを識別することと、ここにおいて、
前記１つまたは複数のパンクチャされた基礎ビットが、それぞれ前記基礎ＬＤＰＣ符号の１つまたは複数のパンクチャされた基礎ノードに対応するものであり、
前記基礎ＬＤＰＣ符号が多重エッジを有していない、
１組の情報ビットを回復するために前記受信されたコードワードにＬＤＰＣ復号化演算を実行することと、ここにおいて、前記識別されたリフト済みビットが、復号化の目的では消去されているとして扱われる、
を備える、方法。
［Ｃ９］
前記１つまたは複数のパンクチャされた基礎ノードが、前記基礎ＬＤＰＣ符号の検査ノードの数に等しいかまたはそれより１少ない次数を有する１つまたは複数の変数ノードに対応する、Ｃ８に記載の方法。
［Ｃ１０］
前記１つまたは複数のパンクチャされた基礎ノードのうちの少なくとも１つが、前記基礎ＬＤＰＣ符号の最高次数の変数ノードに対応する、Ｃ８に記載の方法。
［Ｃ１１］
前記１つまたは複数のパンクチャされた基礎ノードが、１つまたは複数の次数２の変数ノードに対応する、Ｃ８に記載の方法。
［Ｃ１２］
前記１つまたは複数のパンクチャされた基礎ノードが、各々別の変数ノードに接続されている１つまたは複数のそれぞれの検査ノードを分割し、他の変数ノードの各々が、エッジによって、前記対応する分割された検査ノードの両方の要素に接続される、Ｃ１１に記載の方法。
［Ｃ１３］
前記１つまたは複数のパンクチャされた基礎ノードが、前記基礎ＬＤＰＣ符号における二重エッジを除去する、Ｃ１１に記載の方法。
［Ｃ１４］
疑似巡回リフティングが前記基礎ＬＤＰＣ符号に適用され、前記疑似巡回リフティングのエッジクラスタの置換が巡回置換である、Ｃ８に記載の方法。
［Ｃ１５］
プログラム命令を含むコンピュータ可読記憶媒体であって、前記プログラム命令が、通信デバイス内に設けられたプロセッサによって実行されたとき、前記プログラム命令により、前記デバイスが、
１組の情報ビットを受信し、
コードワードを生成するために、リフトされたＬＤＰＣ符号化演算を前記１組の情報ビットに実行し、
前記ＬＤＰＣ符号化演算で使用される基礎ＬＤＰＣ符号の１つまたは複数のパンクチャされた基礎ビットに対応する前記コードワードのすべてのリフトされたビットをパンクチャする、ここにおいて、
前記１つまたは複数のパンクチャされた基礎ビットが、それぞれ前記基礎ＬＤＰＣ符号の１つまたは複数のパンクチャされた基礎ノードに対応するものであり、
前記基礎ＬＤＰＣ符号が多重エッジを有していない、コンピュータ可読記憶媒体。
［Ｃ１６］
前記１つまたは複数のパンクチャされた基礎ノードが、前記基礎ＬＤＰＣ符号の検査ノードの数に等しいかまたはそれより１少ない次数を有する１つまたは複数の変数ノードに対応する、Ｃ１５に記載のコンピュータ可読記憶媒体。
［Ｃ１７］
前記１つまたは複数のパンクチャされた基礎ノードのうちの少なくとも１つが、前記基礎ＬＤＰＣ符号の最高次数の変数ノードに対応する、Ｃ１５に記載のコンピュータ可読記憶媒体。
［Ｃ１８］
前記１つまたは複数のパンクチャされた基礎ノードが、１つまたは複数の次数２の変数ノードに対応する、Ｃ１５に記載のコンピュータ可読記憶媒体。
［Ｃ１９］
前記１つまたは複数のパンクチャされた基礎ノードが、各々別の変数ノードに接続されている１つまたは複数のそれぞれの検査ノードを分割し、他の変数ノードの各々が、エッジによって、前記対応する分割された検査ノードの両方の要素に接続される、Ｃ１８に記載のコンピュータ可読記憶媒体。
［Ｃ２０］
前記１つまたは複数のパンクチャされた基礎ノードが、前記基礎ＬＤＰＣ符号における二重エッジを除去する、Ｃ１８に記載のコンピュータ可読記憶媒体。
［Ｃ２１］
疑似巡回リフティングが前記基礎ＬＤＰＣ符号に適用され、前記疑似巡回リフティングのエッジクラスタの置換が巡回置換である、Ｃ１５に記載のコンピュータ可読記憶媒体。
［Ｃ２２］
プログラム命令を含むコンピュータ可読記憶媒体であって、前記プログラム命令が、通信デバイス内に設けられたプロセッサによって実行されたとき、前記プログラム命令により、前記デバイスが、
ＬＤＰＣコードワードを受信し、
基礎ＬＤＰＣ符号の１つまたは複数のパンクチャされたベースドビットに対応する前記ＬＤＰＣコードワードのすべてのリフトされたビットを識別し、ここにおいて、
前記１つまたは複数のパンクチャされた基礎ビットが、それぞれ前記基礎ＬＤＰＣ符号の１つまたは複数のパンクチャされた基礎ノードに対応するものであり、
前記基礎ＬＤＰＣ符号が多重エッジを有していない、
１組の情報ビットを回復するために前記受信されたコードワードにＬＤＰＣ復号化演算を実行する、ここにおいて、前記識別されたリフト済みビットが、復号化の目的では消去されているとして扱われる、コンピュータ可読記憶媒体。
［Ｃ２３］
前記１つまたは複数のパンクチャされた基礎ノードが、前記基礎ＬＤＰＣ符号の検査ノードの数に等しいかまたはそれより１少ない次数を有する１つまたは複数の変数ノードに対応する、Ｃ２２に記載のコンピュータ可読記憶媒体。
［Ｃ２４］
前記１つまたは複数のパンクチャされた基礎ノードのうちの少なくとも１つが、前記基礎ＬＤＰＣ符号の最高次数の変数ノードに対応する、Ｃ２２に記載のコンピュータ可読記憶媒体。
［Ｃ２５］
前記１つまたは複数のパンクチャされた基礎ノードが、１つまたは複数の次数２の変数ノードに対応する、Ｃ２２に記載のコンピュータ可読記憶媒体。
［Ｃ２６］
前記１つまたは複数のパンクチャされた基礎ノードが、各々別の変数ノードに接続されている１つまたは複数のそれぞれの検査ノードを分割し、他の変数ノードの各々が、エッジによって、前記対応する分割された検査ノードの両方の要素に接続される、Ｃ２５に記載のコンピュータ可読記憶媒体。
［Ｃ２７］
前記１つまたは複数のパンクチャされた基礎ノードが、前記基礎ＬＤＰＣ符号における二重エッジを除去する、Ｃ２５に記載のコンピュータ可読記憶媒体。
［Ｃ２８］
疑似巡回リフティングが前記基礎ＬＤＰＣ符号に適用され、前記疑似巡回リフティングのエッジクラスタの置換が巡回置換である、Ｃ２２に記載のコンピュータ可読記憶媒体。
［Ｃ２９］
１組の情報ビットを記憶するメモリと、
符号器と、ここにおいて、前記符号器が、
コードワードを生成するために、リフトされたＬＤＰＣ符号化演算を前記１組の情報ビットに実行し、
前記ＬＤＰＣ符号化演算で使用される基礎ＬＤＰＣ符号の１つまたは複数のパンクチャされた基礎ビットに対応する前記コードワードのすべてのリフトされたビットをパンクチャする、ここにおいて、
前記１つまたは複数のパンクチャされた基礎ビットが、それぞれ前記基礎ＬＤＰＣ符号の１つまたは複数のパンクチャされた基礎ノードに対応するものであり、
前記基礎ＬＤＰＣ符号が多重エッジを有していない、
を備える通信デバイス。
［Ｃ３０］
前記１つまたは複数のパンクチャされた基礎ノードが、前記基礎ＬＤＰＣ符号の検査ノードの数に等しいかまたはそれより１少ない次数を有する１つまたは複数の変数ノードに対応する、Ｃ２９に記載のデバイス。
［Ｃ３１］
前記１つまたは複数のパンクチャされた基礎ノードのうちの少なくとも１つが、前記基礎ＬＤＰＣ符号の最高次数の変数ノードに対応する、Ｃ２９に記載のデバイス。
［Ｃ３２］
前記１つまたは複数のパンクチャされた基礎ノードが、１つまたは複数の次数２の変数ノードに対応する、Ｃ２９に記載のデバイス。
［Ｃ３３］
前記１つまたは複数のパンクチャされた基礎ノードが、各々別の変数ノードに接続されている１つまたは複数のそれぞれの検査ノードを分割し、他の変数ノードの各々が、エッジによって、前記対応する分割された検査ノードの両方の要素に接続される、Ｃ３２に記載のデバイス。
［Ｃ３４］
前記１つまたは複数のパンクチャされた基礎ノードが、前記基礎ＬＤＰＣ符号における二重エッジを除去する、Ｃ３２に記載のデバイス。
［Ｃ３５］
疑似巡回リフティングが前記基礎ＬＤＰＣ符号に適用され、前記疑似巡回リフティングのエッジクラスタの置換が巡回置換である、Ｃ２９に記載のデバイス。
［Ｃ３６］
ＬＤＰＣコードワードを記憶するメモリと、
復号器と、ここにおいて、前記復号器が、
基礎ＬＤＰＣ符号の１つまたは複数のパンクチャされたベースドビットに対応する前記ＬＤＰＣコードワードのすべてのリフトされたビットを識別し、ここにおいて、
前記１つまたは複数のパンクチャされた基礎ビットが、それぞれ前記基礎ＬＤＰＣ符号の１つまたは複数のパンクチャされた基礎ノードに対応するものであり、
前記基礎ＬＤＰＣ符号が多重エッジを有していない、
１組の情報ビットを回復するために前記受信されたコードワードにＬＤＰＣ復号化演算を実行する、ここにおいて、前記識別されたリフト済みビットが、復号化の目的では消去されているとして扱われる、
を備える通信デバイス。
［Ｃ３７］
前記１つまたは複数のパンクチャされた基礎ノードが、前記基礎ＬＤＰＣ符号の検査ノードの数に等しいかまたはそれより１少ない次数を有する１つまたは複数の変数ノードに対応する、Ｃ３６に記載のデバイス。
［Ｃ３８］
前記１つまたは複数のパンクチャされた基礎ノードのうちの少なくとも１つが、前記基礎ＬＤＰＣ符号の最高次数の変数ノードに対応する、Ｃ３６に記載のデバイス。
［Ｃ３９］
前記１つまたは複数のパンクチャされた基礎ノードが、１つまたは複数の次数２の変数ノードに対応する、Ｃ３６に記載のデバイス。
［Ｃ４０］
前記１つまたは複数のパンクチャされた基礎ノードが、各々別の変数ノードに接続されている１つまたは複数のそれぞれの検査ノードを分割し、他の変数ノードの各々が、エッジによって、前記対応する分割された検査ノードの両方の要素に接続される、Ｃ３９に記載のデバイス。
［Ｃ４１］
前記１つまたは複数のパンクチャされた基礎ノードが、前記基礎ＬＤＰＣ符号における二重エッジを除去する、Ｃ３９に記載のデバイス。
［Ｃ４２］
疑似巡回リフティングが前記基礎ＬＤＰＣ符号に適用され、前記疑似巡回リフティングのエッジクラスタの置換が巡回置換である、Ｃ３６に記載のデバイス。
［Ｃ４３］
１組の情報ビットを受信するための手段と、
コードワードを生成するために、前記１組の情報ビットにＬＤＰＣ符号化演算を実行するための手段と、
前記ＬＤＰＣ符号化演算で使用される基礎ＬＤＰＣ符号の１つまたは複数のパンクチャされた基礎ビットに対応する前記コードワードのすべてのリフトされたビットをパンクチャするための手段と、ここにおいて、
前記１つまたは複数のパンクチャされた基礎ビットが、それぞれ前記基礎ＬＤＰＣ符号の１つまたは複数のパンクチャされた基礎ノードに対応するものであり、
前記基礎ＬＤＰＣ符号が多重エッジを有していない、
を備える符号器。
［Ｃ４４］
ＬＤＰＣコードワードを受信するための手段と、
基礎ＬＤＰＣ符号の１つまたは複数のパンクチャされたベースドビットに対応する前記ＬＤＰＣコードワードのすべてのリフトされたビットを識別するための手段と、ここにおいて、
前記１つまたは複数のパンクチャされた基礎ビットが、それぞれ前記基礎ＬＤＰＣ符号の１つまたは複数のパンクチャされた基礎ノードに対応するものであり、
前記基礎ＬＤＰＣ符号が多重エッジを有していない、
１組の情報ビットを回復するために前記受信されたコードワードにＬＤＰＣ復号化演算を実行するための手段と、ここにおいて、前記識別されたリフト済みビットが、復号化の目的では消去されているとして扱われる、
を備える復号器。
【図１Ａ】
0006542132.tif 000002
【図１Ｂ】
0006542132.tif 000003
【図２】
0006542132.tif 000004
【図３】
0006542132.tif 000005
【図４】
0006542132.tif 000006
【図５】
0006542132.tif 000007
【図６】
0006542132.tif 000008
【図７】
0006542132.tif 000009
【図８】
0006542132.tif 000010
【図９】
0006542132.tif 000011
【図１０】
0006542132.tif 000012