(57)【要約】【課題】ＬＤＰＣデコーダのエラーフロア特性を改善すること。【解決手段】ＬＤＰＣデコーダは、コントローラと、ＣＮＵとを有する。ＣＮＵは、スケーリングｍｉｎ−ｓｕｍアルゴリズム、オフセットｍｉｎ−ｓｕｍアルゴリズム、またはスケーリングおよびオフセットｍｉｎ−ｓｕｍアルゴリズムを用いて、チェックノード・メッセージを発生する。最初にコントローラは、スケールファクタとオフセット値を選択する。スケールファクタはスケーリングなしの場合に１に、オフセット値はオフセットなしの場合にゼロに設定することができる。デコーダが符号語を正しく復号できない場合は、（ｉ）コントローラは、新しいスケーリングおよび／またはオフセット値を選択し、（ｉｉ）デコーダは、新しいスケーリングおよび／またはオフセット値を用いて、符号語を正しく復号するように試みる。【選択図】図３
2014027704.tif 000002
【特許請求の範囲】
【請求項１】
正しい符号語を復元するように誤り訂正（ＥＣ）符号化された符号語を復号するＥＣデコーダを備える装置であって、
前記デコーダは、上位プロセッサによって発生された初期値の初期セットに基づいて、メッセージの第１のセットを発生するように適合され、
前記初期セットは、前記ＥＣ符号化された符号語に対応し、
前記初期セット内の各初期値は、前記ＥＣ符号化された符号語の異なるビットに対応し、
前記デコーダは、
スケールファクタおよびオフセット値に基づいて、メッセージの前記第１のセットをスケーリングおよびオフセットされたメッセージに変換するように適合された１つまたは複数のブロックと、
前記スケールファクタおよび前記オフセット値を選択するように適合されたコントローラとを備え、
前記コントローラは、（ｉ）初期スケールファクタおよび初期オフセット値を選択し、かつ（ｉｉ）その後に前記初期スケールファクタおよび前記初期オフセット値の少なくとも１つを変更するように適合され、
前記ＥＣデコーダがトラッピング・セットに直面したことを前記コントローラが判断した後、前記コントローラは、前記初期スケールファクタおよび前記初期オフセット値の少なくとも１つを変更する、
装置。
【請求項２】
前記ＥＣデコーダは、変数ノード・メッセージを発生するように適合された変数ノードユニットを備え、
メッセージの前記第１のセットは、前記変数ノード・メッセージであり、
前記１つまたは複数のブロック（たとえば、３１０）は、前記スケールファクタおよび前記オフセット値に基づいて、前記変数ノード・メッセージをスケーリングおよびオフセットされた変数ノード・メッセージに変換するように適合された、請求項１に記載の装置。
【請求項３】
前記ＥＣデコーダは、チェックノード・メッセージを発生するように適合されたチェックノード・ユニットを備え、
メッセージの前記第１のセットは、前記チェックノード・メッセージであり、
前記１つまたは複数のブロック（たとえば、３４６）は、前記スケールファクタおよび前記オフセット値に基づいて、前記チェックノード・メッセージをスケーリングおよびオフセットされたチェックノード・メッセージに変換するように適合された、請求項１に記載の装置。
【請求項４】
前記ＥＣデコーダは、ｍｉｎ−ｓｕｍアルゴリズムを実装し、
前記ＥＣデコーダは、ｍｉｎ−ｓｕｍアルゴリズムの第１の最小および第２の最小絶対値を発生するように適合されたチェックノード・ユニットを備え、
メッセージの前記第１のセットは、前記第１の最小および第２の最小絶対値であり、
前記１つまたは複数のブロック（たとえば、３３４）は、前記スケールファクタおよび前記オフセット値に基づいて、前記第１の最小および第２の最小絶対値をスケーリングおよびオフセットされた第１の最小および第２の最小絶対値に変換するように適合された、請求項１に記載の装置。
【請求項５】
前記コントローラは、１のスケールファクタを設定することができ、
前記コントローラは、０のオフセット値を設定することができる、請求項１に記載の装置。
【請求項６】
前記１つまたは複数のブロックは、スケーリングおよびオフセットの両方を行うスケーリングおよびオフセットブロックを備える、請求項１に記載の装置。
【請求項７】
前記デコーダは、低密度パリティチェック（ＬＤＰＣ）デコーダであり、
前記上位プロセッサから受け取られた前記値は、ハード決定ビットと１つまたは複数の信頼値ビットとを有するソフト出力値である、請求項１に記載の装置。
【請求項８】
前記コントローラが、
（ａ）（ｉ）前記初期スケールファクタを１に、前記初期オフセット値を０よりも大きい値に設定し、（ｉｉ）その後に前記初期スケールファクタを０から１の間に、前記初期オフセット値を０に変更すること、及び
（ｂ）（ｉ）前記初期スケールファクタを０から１の間に、前記初期オフセット値を０に設定し、（ｉｉ）その後に前記初期スケールファクタを１になるように、前記初期オフセット値を０よりも大きい値になるように変更すること、
から少なくとも１つを選択するように適合された、請求項１に記載の装置。
【請求項９】
前記デコーダは、前記初期スケールファクタおよび前記初期オフセット値の少なくとも１つを変更すると、さらに前記ＥＣ符号化された符号語の復号を実行する、請求項１に記載の装置。
【請求項１０】
正しい符号語を復元するように誤り訂正（ＥＣ）符号化された符号語を復号する方法であって、
（ａ）初期スケールファクタおよび初期オフセット値を選択し、
（ｂ）上位プロセッサから初期値の初期セットを受け取ることを含み、前記初期セットは、前記ＥＣ符号化された符号語に対応し、前記初期セット内の各初期値は、前記ＥＣ符号化された符号語の異なるビットに対応するものであり、さらに、
（ｃ）初期値の前記初期セットに基づいて、メッセージの第１のセットを発生し、
（ｄ）前記初期スケールファクタおよび前記初期オフセット値に基づいて、メッセージの前記第１のセットをスケーリングおよびオフセットされたメッセージに変換し、そして、
（ｅ）その後に、復号がトラッピング・セットに直面したことを判断した後、前記初期スケールファクタおよび前記初期オフセット値の少なくとも１つを変更する、ことを含む方法。
【請求項１１】
正しい符号語を復元するように誤り訂正（ＥＣ）符号化された符号語を復号する方法であって、
（ａ）前記ＥＣ符号化された符号語の復号のために、初期スケールファクタおよび初期オフセット値を選択し、
（ｂ）上位プロセッサから初期値の初期セットを受け取ることを含み、前記初期セットは、前記ＥＣ符号化された符号語に対応し、前記初期セット内の各初期値は、前記ＥＣ符号化された符号語の異なるビットに対応するものであり、さらに、
（ｃ）初期値の前記初期セットに基づいて、メッセージの第１のセットを発生し、
（ｄ）前記初期スケールファクタおよび前記初期オフセット値に基づいて、メッセージの前記第１のセットをスケーリングおよびオフセットされたメッセージに変換し、そして、
（ｅ）その後に、前記ＥＣ符号化された符号語の復号のために、前記初期スケールファクタおよび前記初期オフセット値の少なくとも１つを変更する、ことを含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、信号処理に関し、具体的には低密度パリティチェック（ＬＤＰＣ）符号化および復号などの誤り訂正符号化および復号に関する。
【０００２】
関連出願の相互参照
本出願は、２００８年８月１５日に出願した米国仮出願第６１／０８９，２９７号（整理番号０８−０２４１）の出願日の利益を主張するものであり、それらのすべての教示はそれらの全体が参照により本明細書に組み込まれる。
【０００３】
本出願の主題は、２００８年５月１日に出願した米国特許出願第１２／１１３，７２９号、２００８年５月１日に出願した米国特許出願第１２／１１３，７５５号、２００８年１１月２６日に出願した米国特許出願第１２／３２３，６２６号、２００９年３月１０日に出願した米国特許出願第１２／４０１，１１６号、２００８年１２月１２日に出願した国際出願ＰＣＴ／ＵＳ０８／８６５２３号、２００８年１２月１２日に出願した国際出願ＰＣＴ／ＵＳ０８／８６５３７号に関連し、それらのすべての教示はそれらの全体が参照により本明細書に組み込まれる。
【背景技術】
【０００４】
符号語（ｃｏｄｅｗｏｒｄ）の復号において、低密度パリティチェック（ＬＤＰＣ）デコーダは、デコーダが符号語を正しく復号するのを妨げる１つまたは複数のトラッピング・セットに直面することがある。ＬＤＰＣ符号のタナーグラフ内の部分グラフを表すトラッピング・セットは、トラッピング・セットがデコーダを正しくない結果に収束させ得るので、通常はＬＤＰＣ符号のエラーフロア特性に対して強い影響を有する。エラーフロア特性を改善するために、ＬＤＰＣデコーダは、主要なトラッピング・セット（すなわち通常、エラーフロア特性に最も大きな影響を有するトラッピング・セット）を無効にするための様々な技術を使用することができる。これらの主要なトラッピング・セットは、デコーダ・アルファベット、デコーダ・アルゴリズム、デコーダ・チェックノード・ユニット更新、チャネル状態、および信号状態など、デコーダの動作状態に基づいて大きく変化する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許出願第１２／１１３，７２９号
【特許文献２】米国特許出願第１２／１１３，７５５号
【特許文献３】米国特許出願第１２／３２３，６２６号
【特許文献４】米国特許出願第１２／４０１，１１６号
【特許文献５】国際出願ＰＣＴ／ＵＳ０８／８６５２３号
【特許文献６】国際出願ＰＣＴ／ＵＳ０８／８６５３７号
【発明の概要】
【課題を解決するための手段】
【０００６】
一実施形態では本発明は、正しい符号語を復元するように誤り訂正（ＥＣ）符号化された符号語を復号する方法である。この方法は、スケールファクタおよびオフセット値を選択し、上位プロセッサから初期値の初期セットを受け取る。初期値の初期セットはＥＣ符号化された符号語に対応し、初期セット内の各初期値はＥＣ符号化された符号語の異なるビットに対応する。メッセージの第１のセットは初期値の初期セットに基づいて発生され、メッセージの第１のセットはスケールファクタおよびオフセット値に基づいて、スケーリングおよびオフセットされたメッセージに変換される。
【０００７】
もう１つの実施形態では本発明は、上述の方法を実行するための装置である。この装置は、正しい符号語を復元するようにＥＣ符号化された符号語を復号するための誤り訂正（ＥＣ）デコーダを備える。デコーダはメッセージの第１のセットを発生し、（ｉ）メッセージの第１のセットをスケールファクタおよびオフセット値に基づいて、スケーリングおよびオフセットされたメッセージに変換するように適合された１つまたは複数のブロックと、（ｉｉ）スケールファクタおよびオフセット値を選択するように適合されたコントローラとを備える。
【０００８】
本発明の他の態様、特徴、および利点は、以下の詳細な説明、添付の特許請求の範囲、および同じ参照番号は同様なまたは同一の要素を示す添付の図面から、より完全に明らかとなろう。
【図面の簡単な説明】
【０００９】
【図１】正則な、準巡回（ＱＣ）低密度パリティチェック（ＬＤＰＣ）符号を実施するために用いることができる、パリティチェックＨ行列の一実装形態を示す図である。
【図２】図１のＨ行列などのＨ行列を用いて符号化された信号を復号するために用いることができる、本発明の一実施形態によるＬＤＰＣデコーダの簡略化したブロック図である。
【図３】図２のＬＤＰＣデコーダの各チェックノード・ユニット（ＣＮＵ）を実施するために用いることができる、ＣＮＵの一実装形態の簡略化したブロック図である。
【発明を実施するための形態】
【００１０】
本明細書において「一実施形態」に対する言及は、その実施形態に関連して説明される特定の特徴、構造、または特性が、本発明の少なくとも１つの実施形態に含み得ることを意味する。本明細書内の様々な場所で現れる「一実施形態では」という語句は、必ずしもすべてが同じ実施形態を指すものではなく、必ずしも他の実施形態と互いに排他的な別のまたは代替の実施形態を指すものでもない。「実装形態」という用語にも同じことが当てはまる。
【００１１】
ＬＤＰＣデコーダのエラーフロア特性は、ＬＤＰＣデコーダによって使用されるチェックノード・アルゴリズムを変更することによって改善することができる。通常、ある特定のチェックノード・アルゴリズムを用いた結果生じるトラッピング・セットは、他のチェックノード・アルゴリズムを用いた結果生じるものとは異なる。したがって、たとえばチェックノード・アルゴリズムを、オフセットｍｉｎ−ｓｕｍアルゴリズムからスケーリングｍｉｎ−ｓｕｍアルゴリズムに変更することによって異なるトラッピング・セットを得ることができる。異なるトラッピング・セットは、オフセットｍｉｎ−ｓｕｍアルゴリズムによって使用されるオフセット値を変更することにより、またはスケーリングｍｉｎ−ｓｕｍアルゴリズムによって使用されるスケールファクタを変更することによっても得ることができる。
【００１２】
図１は、正則な、準巡回（ＱＣ）ＬＤＰＣ符号を実施するための用いることができる、パリティチェック行列１００の一実装形態を示す。一般にＨ行列と呼ばれるパリティチェック行列１００は、ｒ＝４行の巡回行列（すなわちブロック行）ただしｊ＝１、・・・、ｒと、ｃ＝１０列の巡回行列（すなわちブロック列）ただしｋ＝１、・・・、ｃとに配置された４０個の巡回行列Ｂｊ，ｋを含む。巡回行列は、単位行列である部分行列であるか、または単位行列を巡回的にシフトすることによって得られる部分行列であり、準巡回ＬＤＰＣ符号は、すべての部分行列が巡回行列であるＬＤＰＣ符号である。Ｈ行列１００では各巡回行列Ｂｊ，ｋは、単一のｐ×ｐの単位行列を巡回的にシフトして得られるｐ×ｐの部分行列である。この考察では、ｐ＝７２であり、それによりＨ行列１００は、ｐ×ｒ＝７２×４＝２８８の総行数と、ｐ×ｃ＝７２×１０＝７２０の総列数とを有することになると仮定する。各巡回行列Ｂｊ，ｋは、単位行列を置換したものであるので、巡回行列内の各列のハミング重み（すなわち、１の値を有する項目の数）と、巡回行列内の各行のハミング重みは、共に１に等しい。したがって、Ｈ行列１００の各行に対するハミング重みの合計ｗｒは、１×ｃ＝１×１０＝１０に等しく、Ｈ行列１００の各列に対するハミング重みの合計ｗｃは、１×ｒ＝１×４＝４に等しい。Ｈ行列１００の２８８個の行のそれぞれは、ｍ番目のチェックノードに対応し、ただしｍは０〜２８７の範囲であり、７２０個の列のそれぞれは、ｎ番目の変数ノード（ビットノードとも呼ばれる）に対応し、ただしｎは０〜７１９の範囲である。さらに、各チェックノードは、行内の１が示すようにｗｒ＝１０個の変数ノードに接続され、各変数ノードは、列内の１が示すようにｗｃ＝４個のチェックノードに接続される。Ｈ行列１００のすべての行は同じハミング重みｗｒを有し、Ｈ行列１００のすべての列は同じハミング重みｗｃを有するので、Ｈ行列１００は正則なＬＤＰＣ符号と呼ぶことができる。
【００１３】
図２は、図１のＨ行列１００などのＨ行列を用いて符号化された符号語を復号するために用いることができる、本発明の一実施形態によるＬＤＰＣデコーダ２００の簡略化したブロック図を示す。受け取った各符号語に対して、ＬＤＰＣデコーダ２００は、（ｉ）たとえば無線周波数処理、アナログ／デジタル変換、等化、ビタビ検出などのチャネル検出、またはソフト出力値を発生するための適当な他の処理を行うことができる上位プロセッサから、７２０個のソフト値（たとえば、対数尤度比（ＬＬＲ））Ｌｎ（０）を受け取り、（ｉｉ）これらのソフト値Ｌｎ（０）をソフト値メモリ２０２に記憶する。上位プロセッサによって行われる処理は、ＬＤＰＣデコーダ２００が実装される特定の用途に依存する。各ソフト値Ｌｎ（０）は符号語の１ビットに対応し、各符号語はメッセージパッシング・アルゴリズムを用いて反復的に復号される。この考察では、各ソフト値Ｌｎ（０）は、１つのハード決定ビットと４ビットの信頼値とを含む、５ビットを有すると仮定する。
【００１４】
全般的にＬＤＰＣデコーダ２００は、ブロックシリアル・メッセージパッシング・スケジュールを用いて、７２０個のソフト値Ｌｎ（０）（すなわちメッセージ）を復号する。メッセージは、（ｉ）各チェックノード・ユニット（ＣＮＵ）２１０はＨ行列１００の１つの行（すなわち、ｍ番目のチェックノード）に対するチェックノード更新を行う、２８８個のＣＮＵ２１０と、（ｉｉ）各変数ノードユニット（ＶＮＵ）２０４はＨ行列１００の１０個の列（すなわち、ｎ番目の変数ノード）に対する変数ノード更新を行う、７２個の５ビットＶＮＵ２０４とを用いて更新される。ＣＮＵ２１０（０）、・・・、ＣＮＵ２１０（２８７）は、１ブロック列ずつ、Ｈ行列１００の２８８個の行に対するチェックノード（すなわち、行）更新を行い、それにより第１のブロック列（すなわち、巡回行列Ｂ１，１、Ｂ２，１、Ｂ３，１、およびＢ４，１）に対するチェックノード更新が行われ、その後に第２のブロック列（すなわち、巡回行列Ｂ１，２、Ｂ２，２、Ｂ３，２、およびＢ４，２）に対するチェックノード更新が続き、その後に第３のブロック列（すなわち、巡回行列Ｂ１，３、Ｂ２，３、Ｂ３，３、およびＢ４，３）に対するチェックノード更新が続き、以下同様となる。次いでＶＮＵ２０４（０）、・・・、２０４（７１）は、１ブロック列ずつ、Ｈ行列１００の７２０個の列に対する変数ノード（すなわち、列）更新を行い、それにより第１のブロック列（すなわち、巡回行列Ｂ１，１、Ｂ２，１、Ｂ３，１、およびＢ４，１）に対する変数ノード更新が行われ、その後に第２のブロック列（すなわち、巡回行列Ｂ１，２、Ｂ２，２、Ｂ３，２、およびＢ４，２）に対する変数ノード更新が続き、その後に第３のブロック列（すなわち、巡回行列Ｂ１，３、Ｂ２，３、Ｂ３，３、およびＢ４，３）に対する変数ノード更新が続き、以下同様となる。ＬＤＰＣデコーダ２００の反復（すなわち、ローカル反復）は、すべてのチェックノード更新と変数ノード更新が行われた後に完了する。
【００１５】
最初に７２０個の５ビット・ソフト値Ｌｎ（０）は、クロックサイクル当たり７２個のソフト値Ｌｎ（０）の速度で４つのマルチプレクサ２０６（０），・・・，２０６（３）に供給され、それにより各マルチプレクサ２０６はセット内の７２個すべてのソフト値Ｌｎ（０）を受け取るようになる。各マルチプレクサ２０６はまた、以下で詳しく述べるようにして発生される７２個の５ビット変数ノード・メッセージ（ここではＱメッセージと呼ぶ）をＶＮＵ２０４（０）、・・・、２０４（７１）から受け取る。ＬＤＰＣデコーダ２００の第１の反復時には、マルチプレクサ２０６（０），・・・，２０６（３）は、それらが受け取る７２個の５ビット・ソフト値Ｌｎ（０）のセットを選択して、それぞれ７２通りの巡回シフタ２０８（０）、・・・、２０８（３）に出力する。初期Ｑメッセージは、選択されず、先に考慮された符号語のために発生されたＱメッセージとすることができる。ＬＤＰＣデコーダ２００の後続の反復時には、マルチプレクサ２０６（０），・・・，２０６（３）は、それらがＶＮＵ２０４（０）、・・・、２０４（７１）から受け取る７２個の５ビットＱメッセージのセットを選択して、それぞれ７２通りの巡回シフタ２０８（０）、・・・、２０８（３）に出力する。以下の考察では、Ｑメッセージに対する言及は、ＬＤＰＣデコーダ２００の第１の反復時にはソフト値Ｌｎ（０）に当てはまることを理解されたい。
【００１６】
巡回シフタ２０８（０）、・・・、２０８（３）は、それらが受け取る７２個の５ビットＱメッセージのセットを、それらがたとえばコントローラ２１４から受け取ることができる巡回シフト信号に基づいて巡回的にシフトする。巡回シフト信号は、図１のＨ行列１００の巡回行列の巡回シフトファクタに対応する。たとえば、ＬＤＰＣデコーダ２００の反復の第１のクロックサイクルの間は、巡回シフタ２０８（０）、・・・、２０８（３）は、それらのそれぞれの７２個の５ビットＱメッセージのセットを、それぞれ図１のＨ行列１００の巡回行列Ｂ１，１、Ｂ２，１、Ｂ３，１、およびＢ４，１のシフトファクタに基づいてシフトすることができる。ＬＤＰＣデコーダ２００の反復の第２のクロックサイクルの間は、巡回シフタ２０８（０）、・・・、２０８（３）はそれらのそれぞれの７２個の５ビットＱメッセージのセットを、それぞれ巡回行列Ｂ１，２、Ｂ２，２、Ｂ３，２、およびＢ４，２のシフトファクタに基づいてシフトする。次いで巡回シフタ２０８（０）、・・・、２０８（３）は、それらのそれぞれの７２個の巡回的にシフトされた５ビットＱメッセージをＣＮＵ２１０（０）、・・・、ＣＮＵ２１０（２８７）に供給し、それにより各ＣＮＵ２１０はＱメッセージのうちの異なる１つを受け取るようになる。
【００１７】
各ＣＮＵ２１０は、（ｉ）クロックサイクル当たり１つのＱメッセージの速度で、Ｈ行列１００の行のハミング重みｗｒ（たとえば、１０）に等しいいくつかの５ビットＱメッセージを受け取り、（ｉｉ）ｗｒ個の５ビットのチェックノード・メッセージ（ここでは、Ｒメッセージと呼ぶ）を発生する。各ＣＮＵ２１０は、（ｉ）オフセットｍｉｎ−ｓｕｍチェックノード・アルゴリズム、（ｉｉ）スケーリングｍｉｎ−ｓｕｍチェックノード・アルゴリズム、または（ｉｉｉ）オフセットとスケーリングの両方を適用するｍｉｎ−ｓｕｍチェックノード・アルゴリズムを用いて、Ｒメッセージを発生するように選択的に構成可能である。各Ｒメッセージは、次に示す式（１）、（２）、および（３）として表すことができる。
【数１】
2014027704.tif 000003
【数２】
2014027704.tif 000004
【数３】
2014027704.tif 000005
ただし、（ｉ）Ｒ（ｉ）ｍｎはＬＤＰＣデコーダ２００のｉ番目の反復に対する、図１のＨ行列１００のｍ番目のチェックノード（すなわち、行）とｎ番目の変数ノード（すなわち、列）に対応するＲメッセージを表し、（ｉｉ）Ｑ（ｉ−１）ｎｍは（ｉ−１）番目の反復に対する、Ｈ行列１００のｎ番目の変数ノードとｍ番目のチェックノードに対応するＱメッセージを表し、（ｉｉｉ）αは０から１の範囲のスケールファクタを表し、（ｉｖ）βは０から１５の範囲のオフセット値を表し、（ｖ）関数ｓｉｇｎは、乗算演算子（すなわち、Π）がＱ（ｉ−１）ｎｍ個のメッセージの符号に対して行われることを示す。ｎ’は、ｎ番目の変数ノードを除くｍ番目のチェックノードに接続されたすべての変数ノードの集合Ｎ（ｍ）／ｎ内の１つの変数ノードである（すなわち、ｎ’∈Ｎ（ｍ）／ｎ）とする。ｍ番目のチェックノード（すなわち、行）に対応するＣＮＵ２１０は、前の（ｉ−１）番目の反復時に集合Ｎ（ｍ）／ｎから受け取ったすべてのＱメッセージに基づいて、メッセージ
Ｒ（ｉ）ｍｎを発生する。したがって図２の実施形態では、各Ｒメッセージは、Ｎ（ｍ）／ｎ＝９（すなわち、ｗｒ−１＝１０−１）個のＱメッセージに基づいて発生される。式（２）および（３）において、第１の反復の場合は、ソフト値メモリ２０２から受け取ったソフト値Ｌｎ（０）が、前の反復に対するＱメッセージの代わりに用いられることに留意されたい（すなわち、Ｑ（０）ｎ’ｍ＝Ｌ（０）ｎ’ｍ）。
【００１８】
各ＣＮＵ２１０によって用いられる特定のアルゴリズムは、たとえばコントローラ２１４によって選択することができる。たとえば、スケーリングなしのオフセットｍｉｎ−ｓｕｍチェックノード・アルゴリズムを実施するためには、コントローラ２１４は１のスケールファクタαを選択することができ、それによりＣＮＵ２１０はスケーリングなしで、０以外のオフセット値βを実行するようになる。オフセットなしのスケーリングｍｉｎ−ｓｕｍチェックノード・アルゴリズムを実施するためには、コントローラ２１４は０のオフセット値βを選択することができ、それによりＣＮＵ２１０はオフセットなしで、１以外のスケールファクタαを実行するようになる。スケーリングとオフセットの両方を実行するｍｉｎ−ｓｕｍチェックノード・アルゴリズムを実施するためには、コントローラ２１４は０以外のオフセット値βと、１以外のスケールファクタαとを選択することができる。最初にコントローラ２１４は、所望のオフセットとスケールファクタとを選択する。次いでコントローラ２１４は、たとえばＬＤＰＣデコーダ２００の１つの反復（すなわち、１つのローカル反復）から次へ、ＬＤＰＣ符号の１つの階層から次へ、１つの符号語から次へ、１つのグローバル反復（以下でさらに述べる）から次へと、オフセットとスケールファクタとを変化させることができる。
【００１９】
図３は、図２のＬＤＰＣデコーダ２００の各ＣＮＵ２１０を実装するために用いることができる、本発明の一実施形態によるＣＮＵ３００の簡略化したブロック図を示す。全般的にＣＮＵ３００は１０個の５ビットＲメッセージを発生し、各５ビットＲメッセージは、Ｎ（ｍ）／ｎ＝９個（１つのメッセージは上述のように除外される）のＱメッセージの集合を用いて発生される。これら１０個の５ビットＲメッセージのうち９つに対しては、式（２）を用いて発生されるＱメッセージの最小絶対値は同じである。上述のようにＱメッセージの最小絶対値は計算から除外されるので、これらのＲメッセージの１つに対して、Ｑメッセージの最小絶対値は、Ｑメッセージの２番目に最も小さい絶対値となる。式（２）を１０回実行するのではなく、１０個の５ビットＲメッセージのそれぞれに対して１回はＣＮＵ３００は値再利用技術を実施し、ＣＮＵ３００は（ｉ）Ｍ１＿Ｍ２検出器３０２を用いて最も小さい絶対値と２番目に最も小さい絶対値とを有するメッセージを決定し、（ｉｉ）最も小さい絶対値と２番目に最も小さい絶対値とに基づいて１０個の５ビットＲメッセージを発生する。
【００２０】
最初の１０クロックサイクルのそれぞれの間に、Ｍ１＿Ｍ２検出器３０２は、２の補数形式の５ビットＱメッセージを受け取る。５ビットＱメッセージは、スケーリングおよびオフセット論理ブロック３１０を用いてスケーリングおよび／またはオフセットすることができる。スケーリングおよび／またはオフセットは、ＣＮＵ３００の様々な場所で適用することができる。たとえばスケーリングおよび／またはオフセットは、スケーリングおよびオフセット論理ブロック３１０によって行われるスケーリングおよび／またはオフセットの代わりに、スケーリングおよびオフセット論理ブロック３３４または３４６によって適用することができる。あるいはスケーリングおよび／またはオフセットは、２つ以上のスケーリングおよびオフセット論理ブロック３１０、３３４、および３４６によって適用することができる。スケールファクタ（たとえば、α１、α２、α３）および／またはオフセット値（たとえば、β１、β２、β３）は、たとえば図２のコントローラ２１４によって供給することができる。２つ以上のスケーリングおよびオフセット論理ブロック３１０、３３４、および３４６が使用されるときは、スケールファクタおよびオフセット値は、１つのスケーリングおよびオフセット論理ブロックと、次とで、異なるようにすることができる。さらに他の別法として、スケーリングをオフセットとは別の場所で適用してもよい。スケーリングおよびオフセットが異なる場所で異なるブロックによって行われるときは、異なるブロックがメッセージを、１つのスケールファクタと１つのオフセット値に基づいて、スケーリングおよびオフセットされたメッセージに変換すると言うことができる。たとえばブロック３１０がスケーリングを行い、ブロック３４６がオフセットを行う場合は、ブロック３１０と３４６が、Ｑメッセージを、スケーリングおよびオフセットされたＲメッセージに変換すると言うことができる。
【００２１】
Ｍ１＿Ｍ２検出器３０２は、それぞれの場合によりスケーリングおよび／またはオフセットされたＱメッセージを、２の補数／符号絶対値（２ＴＳＭ）変換器３１２を用いて２の補数形式から５ビット符号絶対値に変換する。符号絶対値の符号ビット３２６は、符号処理ロジック３２８に供給され、この符号処理ロジックは（ｉ）１０個すべてのＱメッセージの符号ビット３２６の積を発生し、（ｉｉ）その積を符号ビット３２６のそれぞれに乗算して、１０個のＲメッセージのそれぞれに対して異なる符号ビット３３２を発生する。５ビット符号絶対値Ｑ［４：０］の４ビット絶対値｜Ｑ｜［３：０］は、それぞれ部分状態メモリ３０４の部分状態レジスタ３３０（０）および３３０（１）に記憶された４ビット最小絶対値Ｍ１および４ビットの第２の最小絶対値Ｍ２と共に、マルチプレクサ（ＭＵＸ）３２０に供給される。さらに４ビット絶対値｜Ｑ｜［３：０］は、フリップフロップ（ＦＦ）３１４に供給され、このフリップフロップはＣＮＵ３００のタイミングをＬＤＰＣデコーダ２００のクロック信号と同期させる。
【００２２】
最小値演算器３１６（０）は、絶対値｜Ｑ｜をレジスタ３３０（０）に記憶された最小絶対値Ｍ１と比較する。絶対値｜Ｑ｜が最小絶対値Ｍ１より小さい場合は、最小値演算器３１６（０）は制御信号３１８（０）をアサート（すなわち、３１８（０）を１にセット）する。そうでない場合は、最小値演算器３１６（０）は制御信号３１８（０）をデアサート（すなわち、３１８（０）を０にセット）する。同様に最小値演算器３１６（１）は、絶対値｜Ｑ｜をレジスタ３３０（１）に記憶された第２の最小絶対値Ｍ２と比較する。絶対値｜Ｑ｜がＭ２より小さい場合は、制御信号３１８（１）はアサートされる。そうでない場合は、制御信号３１８（１）はデアサートされる。本出願の目的のために、最小絶対値Ｍ１および第２の最小絶対値Ｍ２は、メッセージとみなされることに留意されたい。ＭＵＸ３２０の動作をさらに理解するために、絶対値｜Ｑ｜に対する表Ｉの論理表を考察する。
【表１】
2014027704.tif 000006
【００２３】
表１は、制御信号３１８（０）と３１８（１）が共にデアサートされた場合（すなわち、｜Ｑ｜≧Ｍ１およびＭ２）は、絶対値｜Ｑ｜は廃棄され、前に記憶された最小および第２の最小絶対値Ｍ１およびＭ２は、それぞれＭ１レジスタ３３０（０）およびＭ２レジスタ３３０（１）に記憶されることを示す。制御信号３１８（０）がデアサートされ、制御信号３１８（１）がアサートされた場合（すなわち、Ｍ２＞｜Ｑ｜≧Ｍ１）は、（ｉ）最小絶対値Ｍ１はＭ１レジスタ３３０（０）に記憶され、（ｉｉ）絶対値｜Ｑ｜はＭ２レジスタ３３０（１）に記憶され、（ｉｉｉ）前に記憶された第２の最小絶対値Ｍ２は廃棄される。制御信号３１８（０）と３１８（１）が共にアサートされた場合（すなわち、｜Ｑ｜＜Ｍ１およびＭ２）は、（ｉ）絶対値｜Ｑ｜はＭ１レジスタ３３０（０）に記憶され、（ｉｉ）前に記憶された最小値Ｍ１はＭ２レジスタ３３０（１）に記憶され、（ｉｉｉ）第２の最小値Ｍ２は廃棄される。絶対値｜Ｑ｜をＭ１レジスタ３３０（０）に記憶することに加えて、Ｍ１インデックス・レジスタ３３０（２）はイネーブルされ、新しい最小値Ｍ１に対応する、（カウンタ３２２によって発生された）カウンタ値３２４はＭ１インデックス・レジスタ３３０（２）に記憶され、Ｍ１インデックス・レジスタ３３０（２）に前に記憶されたカウンタ値は廃棄される。制御信号３１８（０）がアサートされかつ制御信号３１８（１）がデアサートされることは、これは絶対値｜Ｑ｜が最小絶対値Ｍ１より小さいが、第２の最小絶対値Ｍ２より大きいことを示すので、不可能であることに留意されたい。また最初のクロックサイクルの前に、最小および第２の最小絶対値Ｍ１およびＭ２は適当に大きな値（たとえば、２進１１１１）に初期化され、Ｍ１インデックスは０に初期化される。
【００２４】
１０個すべてのＱメッセージが考慮された後、最小絶対値Ｍ１および第２の最小絶対値Ｍ２は、スケーリングおよびオフセット論理ブロック３３４によってスケーリングおよび／またはオフセットすることができる。符号絶対値／２の補数（ＳＭＴ２）変換器３３８は、場合によりスケーリングおよびオフセットされた４ビット最小絶対値Ｍ１’を、４ビット値Ｍ１’に正の符号ビットを付加することによって５ビットの正の２の補数値に変換し、５ビットの結果（＋Ｍ１’）を最終状態プロセッサ３０６のレジスタ３３６（０）に記憶する。ＳＭＴ２変換器３３８はまた、場合によりスケーリングおよび／またはオフセットされた４ビットオフセット最小絶対値Ｍ１’を、４ビット値Ｍ１’に負の符号ビットを付加することによって５ビットの負の２の補数値に変換し、５ビットの結果（−Ｍ１’）をレジスタ３３６（１）に記憶する。さらに、符号処理ロジック３２８からの符号ビット３３２が正の符号ビット（０）である場合は、ＳＭＴ２変換器３３８は場合によりスケーリングおよび／またはオフセットされた４ビットの第２の最小絶対値Ｍ２’を、５ビットの正の２の補数値（＋Ｍ２’）に変換してレジスタ３３６（２）に記憶する。符号処理ロジック３２８からの符号ビット３３２が負の符号ビット（１）である場合は、ＳＭＴ２変換器３３８は場合によりスケーリングおよび／またはオフセットされた４ビットの第２の最小絶対値Ｍ２’を５ビットの負の２の補数値（−Ｍ２’）に変換してレジスタ３３６（２）に記憶する。最終状態プロセッサ３０６のレジスタ３３６（３）は、Ｍ１インデックス・レジスタ３３０（２）からのカウンタ値Ｍ１＿ＩＮＤＥＸを記憶する。
【００２５】
次の１０クロックサイクルのそれぞれの間は、Ｒ選択器３０８のＭＵＸ３４４は、５ビットＲメッセージを、（１）正の値（＋Ｍ１’）と、（２）負の値（−Ｍ１’）と、（３）正または負の値（±Ｍ２’）と、（４）比較演算器３４０からの比較ビット３４２と、（５）符号処理ロジック３２８に記憶された対応する符号ビット３２６とに基づいて出力する。各比較ビット３４２は、現在のカウンタ値３２４を、レジスタ３３６（３）に記憶されたＭ１インデックス値と比較することによって発生される。これら２つが等しいときは比較ビット３４２はアサートされ、これら２つが等しくないときは比較ビット３４２はデアサートされる。各符号ビット３３２は、式（３）を用いてδ（ｉ）ｍｎとして発生することができ、または別法として、符号処理ロジック３２８がＦＩＦＯを用いて実装された場合は、記憶された符号ビット３２６はＦＩＦＯからの出力であるので、符号ビット３２６に、符号処理ロジック３２８に記憶されたすべての符号ビット３２６の積を乗算することによって発生することができる。ＲメッセージがどのようにしてＭＵＸ３４４から出力されるかをさらに理解するために、表ＩＩの論理表を考察する。
【表２】
2014027704.tif 000007
【００２６】
表ＩＩは、比較ビット３４２と符号ビット３３２が共にデアサートされた場合は、レジスタ３３６（０）に記憶された正の値（＋Ｍ１’）が５ビットＲメッセージとして出力されることを示している。比較ビット３４２がデアサートされ、符号ビット３３２がアサートされた場合は、レジスタ３３６（１）に記憶された負の値（−Ｍ１’）が５ビットＲメッセージとして出力される。比較ビット３４２がアサートされ、符号ビット３３２がデアサートされた場合は、レジスタ３３６（２）には正の値（＋Ｍ２’）が記憶されており、ここで５ビットＲメッセージとして出力される。比較ビット３４２と符号ビット３３２が共にアサートされた場合は、レジスタ３３６（３）には負の値（−Ｍ２’）が記憶されており、ここで５ビットＲメッセージとして出力される。次いでＲメッセージは、スケーリングおよびオフセット・ロジック３４６によってスケーリングまたはオフセットすることができる。
【００２７】
図２に戻ると、巡回シフタ２１２（０）、・・・、２１２（３）は、それらのそれぞれのＣＮＵ２１０から７２個の５ビットＲメッセージのセットを受け取り、図１のＨ行列１００の巡回行列Ｂｊ，ｋの巡回シフトに従って、７２個の５ビットＲメッセージのセットを巡回的にシフトする。基本的に、巡回シフタ２１２（０）、・・・、２１２（３）は、巡回シフタ２０８（０）、・・・、２０８（３）の巡回シフトを逆にする。たとえば、巡回シフタ２０８（０）、・・・、２０８（３）が巡回的アップシフトを行う場合は、巡回シフタ２１２（０）、・・・、２１２（３）は巡回的ダウンシフトを行うことができる。
【００２８】
巡回シフタ２１２（０）、・・・、２１２（３）は、４×７２個の巡回的にシフトされた５ビットＲメッセージを、ＶＮＵ２０４（０）、・・・、２０４（７１）に供給し、それにより各ＶＮＵ２０４は、４つのＲメッセージを、各巡回シフタ２１２から１つずつ受け取るようになる。各ＶＮＵ２０４は、式（４）に示されるように、それが発生する４つの５ビットＱメッセージのそれぞれを更新する。
【数４】
2014027704.tif 000008
ただし、ｍ’は、ｍ番目のチェックノードを除く、ｎ番目の変数ノードに接続されたすべてのチェックノードの集合Ｍ（ｎ）／ｍ内の１つのチェックノード（すなわち、ｍ’∈Ｍ（ｎ）／ｍ）である。ｎ番目の変数ノードは、メッセージＱ（ｉ）ｎｍを、（ｉ）前の（ｉ−１）番目の反復時に集合Ｍ（ｎ）／ｍから受け取ったすべてのＲメッセージと、（ｉｉ）ｎ番目の変数ノードに対応する、ソフト値メモリ２０２から受け取った初期ソフト値Ｌｎ（０）とに基づいて発生する。加算器回路を用いて実装することができる各ＶＮＵ２０４は、それが発生する４つの更新された５ビットＱメッセージを出力し、それにより４つのメッセージのうちの異なる１つが対応する異なるＭＵＸ２０６に供給されるようになる。
【００２９】
４つの更新された５ビットＱメッセージを出力することに加えて、各ＶＮＵ２０４は、（ｉ）７ビット外部ＬＬＲ値と、（ｉｉ）ハード決定出力ビットと、（ｉｉｉ）８ビットＰ値とを出力する。各７ビット外部ＬＬＲ値は、式（５）に示されるように表すことができる。
【数５】
2014027704.tif 000009
ただしｍは、ｎ番目の変数ノードに接続されたすべてのチェックノードの集合Ｍ（ｎ）内のチェックノード（すなわち、ｍ∈Ｍ（ｎ））である。各８ビットＰ値は、次のように式（６）を用いて発生することができる。
【数６】
2014027704.tif 000010
各ハード決定ビットｘｎ＾は、次のように式（７）および（８）に基づいて発生することができる。
【数７】
2014027704.tif 000011
【数８】
2014027704.tif 000012
Ｐｎは各変数ノードに対して、式（５）からの外部値を、ｎ番目の変数ノードに対応する、ソフト値メモリ２０２から受け取った初期ソフト値Ｌｎ（０）に加算することによって決定される。Ｐｎがゼロ以上の場合は、式（７）に示されるようにハード決定ビットｘｎ＾はゼロに等しい。Ｐｎがゼロ未満の場合は、式（８）に示されるようにハード決定ビットｘｎ＾は１に等しい。
【００３０】
次いで、たとえばコントローラ２１４によって、ＬＤＰＣデコーダ２００が有効な符号語に収束したかどうかを判定するために、ハード決定値を用いてパリティチェックが行われる。具体的には、１０クロックサイクルの間にＶＮＵ２０４（０）、・・・、２０４（７１）から出力された７２０個のハード決定ビットｘｎ＾から形成された７２０要素のベクトルｘ＾に、図１のＨ行列１００の転置ＨＴが乗算されて２８８ビットベクトルが発生され、この２８８ビットベクトルの各ビットは、Ｈ行列１００の２８８個のチェックノード（すなわち、行）の１つに対応する。結果としての２８８ビットベクトルの各要素がゼロに等しい（すなわち、ｘ＾ＨＴ＝０）場合は、ＬＤＰＣデコーダ２００は有効な符号語に収束している。一方、結果としての２８８ビットベクトルの１つまたは複数の要素が１に等しい（すなわち、ｘ＾ＨＴ≠０）場合は、ＬＤＰＣデコーダ２００は有効な符号語に収束していない。２８８ビットベクトルの１の値を有する各要素は、満足されないチェックノードとみなされる。ＬＤＰＣデコーダ２００が有効な符号語に収束するときは、たとえばコントローラ２１４によって巡回冗長検査（ＣＲＣ）を実行することができる。ＣＲＣが成功した場合は、ＬＤＰＣデコーダ２００は有効で正しい符号語に収束している。ＣＲＣが不成功の場合は、ＬＤＰＣデコーダ２００は有効であるが正しくない符号語に収束している。
【００３１】
ＬＤＰＣデコーダ２００が有効な符号語に収束しないか、または有効であるが正しくない符号語に収束する場合は、正しい符号語を正しく復元するためにさらなる処置が必要となる。たとえば、有効で正しい符号語に収束するように、その後にＬＤＰＣデコーダ２００のローカル反復を行うことができる。もう１つの実施例としてグローバル反復を実行することができ、それによって（ｉ）外部ＬＬＲ値が上位プロセッサにフィードバックされ、（ｉｉ）検出器は７２０個の５ビット・ソフト値Ｌｎ（０）の新しいセットを発生し、（ｉｉｉ）ＬＤＰＣデコーダ２００は、この７２０個の５ビット・ソフト値Ｌｎ（０）の新しいセットから正しい符号語を復元するように試みる。ＬＤＰＣデコーダ２００が、ローカルおよび／またはグローバル反復の所定の回数以内に有効で正しい符号語に収束しない場合は、受信器および／またはＬＤＰＣデコーダは、トラッピング・セットを無効にするように設計された他の方法を実行するなど、有効な符号語を復元するためのさらなる処置をとることができる。一部の場合にはＬＤＰＣデコーダ２００は、正しい符号語を復元することができなくなり得る。他の実施例として、ＬＤＰＣデコーダ２００がその中に存在する受信器は、データの送信を要求することができる。
【００３２】
符号語を復号するためのそれぞれの後続する試み（たとえば、それぞれの後続するローカル反復、後続するグローバル反復、または再送信）に対して、コントローラ２１４は、１つまたは複数の異なるスケールファクタα、１つまたは複数の異なるオフセット値β、または１つまたは複数の異なるスケールファクタαおよび１つまたは複数の異なるオフセット値βの両方を選択することができる。スケールファクタαおよびオフセット値βは、任意の適当な方法を用いて選択することができる。たとえばスケールファクタαおよびオフセット値βは、パリティチェック時に特定された満足されないチェックノードの数に基づいて選択することができる。満足されないチェックノードの数が比較的少ない場合は、チェックノード・メッセージに比較的小さな変化を誘起するように、１に比較的近いスケールファクタαと、ゼロに比較的近いオフセット値βを選択することができる。満足されないチェックノードの数が比較的多い場合は、チェックノード・メッセージに比較的大きな変化を誘起するように、より小さなスケールファクタαおよび／またはより大きなオフセット値βを選択することができる。スケールファクタαが１から減少するにつれて、およびオフセット値βがゼロから増加するにつれて、チェックノード・メッセージへの変化は大きくなる。
【００３３】
他の実施例として、スケールファクタαおよびオフセット値βは、所定の反復回数の後にインクリメントすることができる。スケールファクタαはたとえば、０．２の増分値で調整することができ、オフセット値βはたとえば、１の増分値で調整することができる。
【００３４】
スケールファクタαおよび／またはオフセット値βを変化させることにより、本発明のＬＤＰＣデコーダは、固定スケールファクタのみを実装するまたはスケールファクタを実装しない、あるいは固定オフセットファクタのみを実装するまたはオフセットファクタを実装しないＬＤＰＣデコーダと比べて、エラーフロア特性を改善することができる。本発明のＬＤＰＣデコーダがトラッピング・セットに直面したときは、トラッピング・セットを無効にするように試みるために、１つまたは複数のスケールファクタαおよび／または１つまたは複数のオフセット値βを変化させることができ、それによりＬＤＰＣデコーダは、符号語を正しく復号するための別の機会をもつようになる。
【００３５】
本発明について、図２の特定の非階層化ＬＤＰＣデコーダ構成２００に対して説明してきたが、本発明はそのように限定されない。メッセージパッシングを使用する他のＬＤＰＣデコーダ構造に対しても、本発明の様々な実施形態を構想することができる。たとえば本発明は、他の非階層化または階層化デコーダ構造に、およびブロックシリアル・メッセージパッシング・スケジュール以外のメッセージパッシング・スケジュールを用いるデコーダに実施することができる。他の実施例として本発明のＬＤＰＣデコーダは、巡回シフトを用いずに実施することができる。このような実施形態ではメッセージは、ＣＮＵとＶＮＵの間で直接接続により、または非巡回シフトを行う置換器を用いて渡すことができる。
【００３６】
様々な実施形態により本発明は、ｍｉｎ−ｓｕｍアルゴリズム以外のチェックノード・アルゴリズムを用いて実施することができる。このような実施形態では、それぞれスケーリングおよびオフセット論理ブロック３４６および３１０のものと同様に、スケーリングおよび／またはオフセットをチェックノード・メッセージおよび／または変数ノード・メッセージに適用することができる。さらに、スケーリングおよびオフセット論理ブロック３３４のものと同様に、チェックノード・メッセージが発生される前に、スケーリングおよび／またはオフセットをチェックノード・アルゴリズムによって適用することができる。
【００３７】
本発明について、図１の特定のＨ行列１００に対して述べられたが、本発明はそのように限定されない。本発明は、図１のＨ行列１００と同じ大きさまたは異なる大きさの、様々なＨ行列に対して実施することができる。たとえば本発明は、列、ブロック列、行、ブロック行、階層（１つの階層のみを有する実装形態を含む）、クロックサイクル当たりに処理されるメッセージの数、部分行列の大きさ、階層の大きさ、および／または列および／または行のハミング重みが、Ｈ行列１００のものとは異なるＨ行列に対して実施することができる。このようなＨ行列はたとえば、巡回、準巡回、非巡回、正則、または非正則のＨ行列とすることができる。さらにこのようなＨ行列は、零行列を含む、巡回行列以外の部分行列を含んでもよい。Ｈ行列の特性により、ＶＮＵ、バレルシフタ、および／またはＣＮＵの数は変わり得ることに留意されたい。
【００３８】
さらに当業者には、添付の特許請求の範囲に表された本発明の範囲から逸脱することなく、本発明の本質を説明するために述べられ図示された諸部分の詳細、材料、および構成において、様々な変更を行うことができることが理解されよう。たとえばスケーリングおよびオフセット論理ブロックは、マルチプレクサ３２０の絶対値｜Ｑ｜入力端、またはＳＭＴ２変換器３３８と最終状態レジスタ３３６（０）、・・・、３３６（２）の間など、図３に示された３つの場所以外（たとえば、３１０、３３４、３４６以外）の場所に実装することができる。またスケーリングおよびオフセット論理ブロック３１０は、ＣＮＵ３００の一部としてではなくＶＮＵ（または、変数ノード・メッセージを発生する加算器）の出力端に配置することができ、またスケーリングおよびオフセット論理ブロック３４６は、ＣＮＵ３００の一部としてではなくＶＮＵ（または、変数ノード・メッセージを発生する加算器）の入力端に配置することができる。他の実施例としてＣＮＵ３００は、２の補数形式にてＱメッセージを受け取り、Ｒメッセージを出力するのではなく、符号絶対値形式などの他の形式にてメッセージを受け取り、出力することができる。また２の補数／符号絶対値変換は、たとえばＶＮＵによって行うことができる。他の実施例として本発明のＬＤＰＣデコーダは、５ビット以外の大きさのメッセージを処理することができる。
【００３９】
本発明の実施形態について、ＬＤＰＣ符号との関連において述べてきたが、本発明はそのように限定されない。グラフにより定義された符号はトラッピング・セットの影響を受けるので、本発明の実施形態は、グラフによって定義された任意の符号、たとえばトルネード符号および構造化ＩＲＡ符号に対して実施することもできる。
【００４０】
本発明の例示的実施形態について、単一の集積回路、複数チップ・モジュール、単一カード、または複数カード回路パックとしての可能な実装形態を含む、回路のプロセスに関連して述べてきたが、本発明はそのように限定されない。当業者には明らかなように、回路要素の様々な機能は、ソフトウェアプログラム内の処理ブロックとして実施することもできる。このようなソフトウェアは、たとえばデジタル信号プロセッサ、マイクロコントローラ、または汎用コンピュータにて使用することができる。
【００４１】
本発明はまた、対数尤度比を受け取り、処理することに限定されない。尤度比またはハードビット決定などが処理される、本発明の様々な実施形態を構想することができる。
【００４２】
本明細書および特許請求の範囲で用いられる「インクリメント」という用語は、値が増加される場合と、値が減少される場合とを含むことが理解されるべきである。たとえば指定されたスケールファクタ増分値だけスケールファクタをインクリメントすることは、指定されたスケールファクタ増分値だけスケールファクタが増加される場合と、指定されたスケールファクタ増分値だけスケールファクタが減少される場合とを含む。
【００４３】
本明細書および特許請求の範囲で用いられるものとして、第１と第２の値の間で中間値が発生されても、第２の値は第１の値「に基づいて」発生されると言うことができる。たとえば、ソフト値Ｌｎ（０）の受け取りとチェックノード・メッセージの発生の間にチェックノード・メッセージが発生されても、変数ノード・メッセージは、デコーダによって受け取られたソフト値Ｌｎ（０）「に基づいて」発生されると言うことができる。他の例としてソフト値Ｌｎ（０）の受け取りと、第２のローカル反復のためのチェックノード・メッセージの発生の間に、変数ノード・メッセージと他のチェックノード・メッセージが発生されても、ＬＤＰＣデコーダの第２のローカル反復時に発生されるチェックノード・メッセージは、第１のローカル反復時に受け取られたソフト値Ｌｎ（０）「に基づく」と言うことができる。
【００４４】
本発明は、方法、およびそれらの方法を実施するための装置の形で実施することができる。本発明はまた、磁気記録媒体、光記録媒体、固体記憶装置、フロッピディスク、ＣＤ−ＲＯＭ、ハードディスク、またはその他の機械可読記憶媒体などの、有形媒体内に具体化されたプログラム・コードの形で実施することもでき、プログラム・コードがコンピュータなどの機械にロードされて実行されるときは、その機械が本発明を実施する装置となる。本発明は、たとえば記憶媒体内に記憶され、機械にロードされかつ／または実行され、または電線またはケーブル上に、または光ファイバを通して、または電磁放射を通じてなど、何らかの伝送媒体またはキャリア上を伝送される、プログラム・コードの形で実施することもでき、プログラム・コードがコンピュータなどの機械にロードされて実行されるときは、その機械が本発明を実施する装置となる。汎用プロセッサ上で実施される場合はプログラム・コード・セグメントは、プロセッサと組み合わせて、特定の論理回路と同じように動作するユニークなデバイスをもたらす。本発明はまた、媒体を通じて電気的または光学的に伝送され、磁気記録媒体などに磁界変化として記憶され、本発明の方法および／または装置によって発生される、ビットストリームまたは他の信号値のシーケンスの形で実施することができる。
【００４５】
明示的に記載されていない限り、各数値および範囲は、値または範囲の前に「約」または「ほぼ」の語句がある場合のように、近似であると理解されるべきである。
【００４６】
特許請求の範囲における図番および／または図の参照番号の使用は、特許請求の範囲の理解を容易にするために、請求された主題の１つまたは複数の可能な実施形態を識別するためのものである。このような使用は、必ずしもそれらの特許請求の範囲を、対応する図に示された実施形態に限定するものと解釈されるべきではない。
【００４７】
本明細書に記載された例示の方法のステップは、必ずしも説明された順序で実行される必要があるものと理解されるべきではなく、そのような方法のステップの順序は例示のみであることが理解されるべきである。同様に、そのような方法に追加のステップを含めることができ、本発明の様々な実施形態に一致する方法において、一部のステップを省略または組み合わせることができる。
【００４８】
添付の特許請求の範囲に方法の請求項がある場合に、諸要素は対応するラベルと共に特定のシーケンスで記載されるが、請求項の記載がそれらの要素の一部またはすべてを実施するための特定のシーケンスを示唆していない限り、それらの要素は、必ずしもその特定のシーケンスにて実施されるように限定されるものではない。
【図１】
2014027704.tif 000013
【図２】
2014027704.tif 000014
【図３】
2014027704.tif 000015