(57)【要約】      （修正有）【課題】ＬＤＰＣを用いた誤り訂正において、複雑性および所要時間の低減。【解決手段】min-Sumアルゴリズムを半並列で実施し、次の手段を持つ。多重チャネルからチャネル値を抽出するチャネル値抽出手段、チャネル値を尤度値を含むデータに変換する変換装置手段、尤度値を再配置する可変ノードバンク手段、データからブロックを選ぶバンク・セレクタ手段、データからサブブロックを選ぶロケーション・ポインタ手段、可変ノード計算手段、検査ノード計算手段、上記の手段の間のパラメータと一緒にアイテムを転送する切替ネットワーク、検査ノード手段および可変ノード手段の計算エンジン、計算ノード手段および可変ノード手段の比較手段、可変ノードバンク手段から復号データを受信器に移動する移送手段。【選択図】図３
2007295564.tif 000002
【特許請求の範囲】
【請求項１】
多重チャネルにおいて伝達されたデータを復号化するための誤り訂正システムであって、前記システムは：
ｉ．前記多重チャンネルで伝達されたデータからチャネル値を抽出し、前記チャネル値を中継するためのチャネル値抽出手段；
ｉｉ．前記チャネル値を受容し、尤度比値を含むデータに前記チャネル値を変換するための変換装置手段；
ｉｉｉ．前記変換装置手段から一組の尤度比値を受容し、第２のデータを形成するため、別々に番号をつけられたブロックおよびサブブロックにおいて指定されたパラメータを有するアイテムとして前記値を再配置するように適応する可変ノードバンク手段；
ｉｖ．所定の方法で、前記第２のデータからブロックを選ぶように適応するバンク・セレクタ手段、
ｖ．所定の方法で、前記第２のデータからサブブロックを選ぶように適応するロケーション・ポインタ手段；
ｖｉ．格納手段および計算エンジンを有する可変ノード計算手段；
ｖｉｉ．格納手段および計算エンジンを有する検査ノード計算手段；
ｖｉｉｉ．所定の方法で、可変ノードバンク手段、可変ノード計算手段、検査ノード計算手段および検査ノードバンク手段間の、それらのパラメータと一緒に一組のアイテムを転送するように適応する切替ネットワーク手段；
ｉｘ．前記選択されたアイテムおよび指定されたパラメータを受容するのに適応し、所定の方法で、第１の計算されたパラメータを有する一組の第１の計算されたアイテムを含む第１の計算された出力を計算するためにさらに適応する検査ノード計算手段の前記計算エンジン；
ｘ．所定の方法で、一組の結果として生じるアイテムを有する結果として生じる出力を提供するため、指定されたパラメータに関する第１の計算されたパラメータと前記検査ノード計算手段に格納するため、結果として生じるパラメータとを比較するための第１の比較手段；
ｘｉ．所定の方法で、第２の計算されたパラメータを有する一組の第２の計算されたアイテムを有する第２の計算された出力を計算するため、結果として生じるパラメータを有する結果として生じるアイテムの前記集合を受容するために適応する可変ノード計算手段の前記計算エンジン；
ｘｉｉ．所定の方法で、第２の計算されたパラメータおよび指定されたパラメータ間の誤りを比較し、誤差のない復号化データを形成するため、前記可変ノード計算手段から前記可変ノードバンク手段への誤りのないアイテムの通過を選択的に許容するように適応する第２の比較手段；
ｘｉｉｉ．前記可変ノードバンク手段から誤りのない復号化データを受信器へ移動する移送手段、からなるシステム。
【請求項２】
請求項１に記載の誤り訂正システムであって、ロード手段は、可変ノードバンク手段に前記尤度比値を連続的にロードするために提供されるシステム。
【請求項３】
請求項１に記載の誤り訂正システムであって、同期手段は、１つの場所から他の場所に時限式にアイテムを集合的に移動するために提供されるシステム。
【請求項４】
請求項１に記載の誤り訂正システムであって、反復的な手段が、誤りのない復号化データを得るため、計算の全体の集合を反復するように適応するシステム。
【請求項５】
請求項１に記載の誤り訂正システムであって、前記切替ネットワークが前記アイテムを１つの場所から他の場所へ並列に移動するように適応するシステム。
【請求項６】
請求項１に記載の誤り訂正システムであって、前記切替ネットワークは、所定の方法で、１つのクロックサイクルにおいて前記可変ノードバンク手段から前記可変ノード計算手段までアイテムを移動するように適応するシステム。
【請求項７】
請求項１に記載の誤り訂正システムであって、前記切替ネットワークは、所定の方法で、１つのクロックサイクルにおいて前記可変ノード計算手段から前記検査ノード計算手段までアイテムを移動するように適応するシステム。
【請求項８】
請求項１に記載の誤り訂正システムであって、前記切替ネットワークは、所定の方法で、複数のクロックサイクルにおいて前記検査ノード計算手段から前記検査ノードバンク手段までアイテムを移動するように適応するシステム。
【請求項９】
請求項１に記載の誤り訂正システムであって、前記切替ネットワークは、所定の方法で、複数のクロックサイクルにおいて前記検査ノードバンク手段から前記可変ノード計算手段までアイテムを移動するように適応するシステム。
【請求項１０】
請求項１に記載の誤り訂正システムであって、前記指定されたパラメータは、アイテムのアドレスを含むシステム。
【請求項１１】
請求項１に記載の誤り訂正システムであって、切替ネットワークが、前記ブロックおよびサブブロックの範囲内の前記第２のデータの前記第１の集合をすべてのサイクルにおいて検査ノード計算手段に移動するように適応するシステム。
【請求項１２】
請求項１に記載の誤り訂正システムであって、アイテムの前記結果として生じるパラメータは：
ｉ）第１の最小のデータ値；
ｉｉ）第２の最小のデータ値；
ｉｉｉ）第１の最小のデータ値のアドレス；
ｉｖ）すべてのデータ値の符号；
ｖ）すべてのデータ値の符号の積；
ｖｉ）第１の最小のデータ値の符号；
ｖｉｉ）第２の最小のデータ値の符号からなるシステム。
【請求項１３】
請求項１２に記載の誤り訂正システムであって、前記可変ノード計算手段の前記計算エンジンが、前記結果として生じるパラメータを受容するために適応し、前記第２の計算されたパラメータの部分を形成する前記第２の計算されたアイテムの各々の符号を計算するためにさらに適応するシステム。
【請求項１４】
請求項１に記載の誤り訂正システムであって、前記可変ノード計算手段の前記計算エンジンが、前記結果として生じるパラメータを受容するために適応し、前記第２の計算されたパラメータの部分を形成する前記第２の計算されたアイテムの各々の絶対値を計算するためにさらに適応するシステム。
【請求項１５】
請求項１に記載の誤り訂正システムであって、前記ブロックおよび前記サブブロックは、それぞれフレームおよびサブフレームであるシステム。
【請求項１６】
多重チャネルにおいて伝達されたデータを復号化するための誤り訂正の方法であって、以下のステップ：ｉ．多重チャンネルの伝達されたデータからのチャネル値の抽出；
ｉｉ．尤度比値を含むデータへの前記チャネル値の変換；
ｉｉｉ．格納手段への前記尤度比値のロード；
ｉｖ．指定されたパラメータを有するアイテムを形成するため、前記尤度比値の再配置、および、第２のデータを形成するため別々に番号をつけられたブロックおよびサブブロックにおける指定されたパラメータを有する前記アイテムの格納；
ｖ．前記第２のデータのブロックの特定のサブブロックにおける所定の方法でのアイテムおよびそれらの指定されたパラメータの選択；
ｖｉ．第１の計算されたパラメータを有する一組の第１の計算されたアイテムを含む第１の計算された出力を提供するため、前記アイテムおよびそれらの指定されたパラメータを用いた所定の方法での演算；
ｖｉｉ．結果として生じるパラメータを有する一組の結果として生じるアイテムを有する結果として生じる出力を提供するため、前記指定されたパラメータと前記第１の計算されたパラメータとの所定の方法での比較；
ｖｉｉｉ．第２の計算されたパラメータを有する一組の第２の計算されたアイテムを有する第２の計算された出力を提供するため、結果として生じるアイテムおよび結果として生じるパラメータを用いた所定の方法での演算；
ｉｘ．一組の誤りのない復号化データを提供するため、前記指定されたパラメータと前記第２の計算された出力の前記第２の計算されたパラメータとの所定の方法での比較；
ｘ．誤りのない復号化データの受信器への通過の選択的な許容からなる方法。
【請求項１７】
請求項１６に記載の誤り訂正の方法であって、前記尤度比値は、前記可変ノードバンク手段に連続的に移動される方法。
【請求項１８】
請求項１６に記載の誤り訂正の方法であって、前記アイテムは、前記誤り訂正システムにおいて１つの場所から他の場所へ並列に移動される方法。
【請求項１９】
請求項１６に記載の誤り訂正の方法であって、ブロックの前記選択は、式
2007295564.tif 000023
を用いて実行され：
ここで、Ｉは前記可変ノードバンク手段のアイテムのアドレスであり、ｚは前記可変ノードバンク手段のブロックの数である方法。
【請求項２０】
請求項１６に記載の誤り訂正の方法であって、サブブロックの前記選択は、式
2007295564.tif 000024
を用いて実行され：
Ｃは、前記検査ノードバンク手段のアイテムの終点アドレスであり、ｚは前記可変ノードバンク手段のブロックの数である方法。
【請求項２１】
請求項１６に記載の誤り訂正の方法であって、前記第２の計算された出力は、ｍｉｎ‐ｓｕｍ式に従って計算される方法。
【請求項２２】
請求項１６に記載の誤り訂正の方法であって、前記第２の計算された出力は、０．７５の重量でｍｉｎ‐ｓｕｍ式に従って計算される方法。
【請求項２３】
添付の図面に関して本願明細書において記載される多重チャネルにおいて伝達されたデータを復号化するための誤り訂正システム。
【請求項２４】
添付の図面に関して本願明細書において記載される多重チャネルにおいて伝達されたデータを復号化するための誤り訂正の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報の復号化のためのシステムに関する。
特に、本発明は低密度のパリティ検査コードを用いた復号化システムに関する。
【背景技術】
【０００２】
コンピュータ・ネットワークの使用および実施がきわめて一般に普及するようになった。例えばローカル・エリア・ネットワーク（ＬＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、ワイヤレスＬＡＮ（ＷＬＡＮ）などのネットワークは、データにアクセスするために広く実行されている。このようなネットワークの使用により、例えばＷｉ‐ＦｉおよびＷｉＭＡＸのような通信の分野において様々な国際標準の開発に至った。
【０００３】
ＷｉＭＡＸは、ワイヤレスのメトロポリタン・エリア・ネットワーク（ＭＡＮ）技術である。それは、Ｗｉ−Ｆｉホットスポットを互いに、および、インターネットの別の部分に連結し、ケーブルおよびＤＳＬのワイヤレス代替物を提供することができる。ＷｉＭＡＸは、最高５０ｋｍ（３１マイル）の直線のサービスエリア範囲を提供し、直接の見通しなしでのユーザ間の接続性を許容する。技術は、ＷｉＭＡＸ支持者によれば、１Ｍｂｉｔ／秒のＤＳＬ‐レベル接続性で同時に６０以上の企業および１０００以上の家庭をサポートするのに十分な帯域幅である最高７０Ｍｂｉｔ／秒の共有データ速度を提供することが要求されてきた。現実の世界での試験は、しかしながら、提供された現場の状態次第で５００ｋｂｉｔ／秒および２Ｍｂｉｔ／秒間の実用的な最大データ速度を示す。
【０００４】
またＷｉＭＡＸはＶｏＩＰ、ビデオおよびインターネット接続の同時的なブロードバンド・サービス供給のための相互浸透を可能にする。既存の物理的なケーブルまたは電話網のない領域でさえも、ＷｉＭＡＸは、互いに範囲内であるネットワーク間のアクセスを可能にする。ＷｉＭＡＸアンテナは、すでにその場所にあるセル配列の機能を損なわずにセル塔を共有する。ＷｉＭＡＸアンテナはまた、光ファイバ光学ケーブルまたは方向的なマイクロ波リンクを経てインターネット・バックボーンに連結される可能性がある。ＷｉＭＡＸは、様々なデータ集中的な用途のための帯域幅の増加も容易にする。
【０００５】
ＷｉＭＡＸは、固定およびモバイルＭＡＮ（メトロポリタン・エリア・ネットワーク）ブロードバンド・ワイヤレス・アクセス（ＢＷＡ）のための出現した規格であるＩＥＥＥ ８０２.１６の規格系統と同義になった。本来の８０２.１６および続いて修正された８０２.１６a規格は両方、固定されたＢＷＡのために使用される。ＢＷＡがますます住居の用途を満たし、後者は見通しなし（ＮＬＯＳ）用途の要求を満たす。最新の８０２.１６e修正は、ＷｉＭＡＸシステムの移動性（約１２０ｋｍ／時での乗物の速度での移動性）を支える。８０２.１６e規格は、Ｗｉ‐Ｆｉ（ワイファイ）ホットスポットの外にローミングしつつ、ユーザのハードウェア（ノート、パーソナル携帯情報機器（ＰＤＡ））が高速インターネットにアクセスするのを可能にする。８０２.１６の規格は、様々なチャネル符号化オプションで高速のデータ速度（約７０Ｍｂｐｓまで）を支える。必須の方式は、畳み込み符号である。回旋状のターボ・コード、ターボ製品コードおよびＬＤＰＣコードは、任意である。これらの任意のコードは、極端に弱まるチャネルの堅固性を保証するために使用することができる。
【０００６】
ＬＤＰＣコードは、１９６０年代初期にギャラガーによって元々提案された直線のブロック・コードである。それらのパリティ検査マトリクスは、希薄であり、低い密度を有する。本来のコードは、均一の縦列およびパリティ検査マトリクスの低い重さを有する規則的なコードであった。近年これらのコードは、容量接近性能を有して、ターボ・コードの競争者として出現した。ＬＤＰＣコードのより良好な性能は、符号および復号化信号処理の適当な選択によって達成される。アルゴリズムを復号化している普及しているＬＤＰＣは、また、ｓｕｍ−ｐｒｏｄｕｃｔアルゴリズムと称する信念伝播アルゴリズムである。ｓｕｍ−ｐｒｏｄｕｃｔアルゴリズムは、パリティ検査マトリクスを表わす二部に分かれたグラフであり、可変ノードおよび検査ノードから構成されるタナー・グラフで機能するメッセージ通過アルゴリズムである。二部に分かれたグラフは特別なグラフであり、ここで、頂点の集合は、同じ集合の２つの頂点が決して端を共有しないで、２つの共通の要素をもたない集合に分割されることができる。
【従来技術】
【０００７】
ＬＤＰＣ符号復号器ハードウェア実施の主な挑戦は、反復的な信念伝播（ＢＰ）復号化の間、効果的にメッセージを通過させることである。復号化のシステムおよび装置は、通常３つの方式を使用する：（１）並列、（２）直列、および、（３）半分並列。
【０００８】
完全に並列の復号器は、ハードウェアにＬＤＰＣ符号の二部に分かれたグラフのインスタンスを直接生成する。各々の個別的な可変ノードまたは検査ノードは、ノードの機能単位として物理的に実行され、すべての単位体は、二部に分かれたグラフ接続性を反映している相互接続ネットワークで連結される。中心の記憶ブロックがメッセージを格納する必要性はない。それらは、処理ユニット近くにラッチされることができる。このような完全に並列の復号器は、ビット／秒に関してきわめて高い復号化スループットを達成することができる。しかしながら、すべての処理ユニットおよび相互接続ルート割当て物理的な実施に起因する実施の領域により、大きいブロック長のためのこの方法が実行不可能になる。さらに、並列のハードウェア設計は、特定のパリティ検査マトリクスに固定する。これは、符号のブロック長または率が変化する場合に必要とされる再構成可能性を禁止する。
【０００９】
１つの可変ノードの計算の単位（ＶＣＵ）および１つの検査ノードの計算の単位（ＣＣＵ）のみを有するのに十分であるので、完全に直列のアーキテクチャはより小さい領域を有する。完全に直列の方法は、ほんの少数の機能単位だけが使用のために得られるデジタル・シグナル・プロセッサのために適切である。しかしながら、復号化の速度は、直列復号器においてきわめて低い。
【００１０】
ｓｕｍ−ｐｒｏｄｕｃｔアルゴリズムを使用する従来技術システムまたは装置は、タナー・グラフを使用するように適応する手段を組み込む。装置は初期化および手段のためのメカニズムを有し、ここで、各々の繰り返しメッセージ通過は、反復の前半において各々の検査ノードからすべての隣接した可変ノードまで発生し、反復の後半において各々の可変ノードからその隣接した検査ノードまで発生する。装置はまた、いくつかの停止基準を有してメッセージの繰り返しの反復がグラフの端に沿って通過するメカニズムを有する。
【００１１】
ｓｕｍ−ｐｒｏｄｕｃｔアルゴリズムの実施に関与するステップは、以下において符号の大きさの処理形状のために提供される：
初期設定：  Ｔ（０）ｎ，ｍ = Ｉｎ； Ｅ（０）ｎ，ｍ = ０                            
反復：
反復カウンタ：  ｌ＝１, ２, …… ｌｍａｘ，
検査ノードの改訂規定：
2007295564.tif 000003
【００１２】
可変ノードの改訂規定：
2007295564.tif 000004
最新の可変ノードの改訂規定：
2007295564.tif 000005
【００１３】
上記の式において、Ｔｎ，ｍは、可変ノードｎによってその連結された検査ノードｍに送られた情報である。Ｅｎ，ｍは、検査ノードｍから連結された可変ノードｎまで通されるメッセージ（ビットｎ上のパリティ検査ｍによって提供される情報）である。Ｍ（ｎ）は、可変ノードｎに連結される検査ノードの集合である。Ｎ（ｍ）は、ｘ＞０で、
2007295564.tif 000006
において検査ノードｍに連結される可変部分ノードの集合である。
【００１４】
Ｉｎは、チャネル尤度比であり、チャネルに従って得ることができる（例えば加算性ホワイトガウスノイズ（ＡＷＧＮ））。「＼」は、通常の排除符号である。「ｌ」は、反復の数であるｌｍａｘを有する反復数を示す。検査ノードの計算過程はより複雑であることが観察される。非線形関数
2007295564.tif 000007
は、ルックアップ・テーブル（ＬＵＴ）を使用して実行される。
【００１５】
しかしながら、復号化するための和積ステップを用いた従来技術装置の使用は、以下に要約されることができる多くの不都合を有する：
（ｉ） 反復するごとに、装置はルックアップ・テーブルの参照を必要とする。
（ｉｉ） 反復するごとに、装置は尤度比を計算する必要がある。
（ｉｉｉ） 装置は、尤度比の計算ための計算手段を必要とする。
（ｉｖ） 装置は、計算されるすべての尤度比に関する値を格納するための格納手段を必要とする。
（ｖ） 装置は、すべての反復に関連があるノイズ相違値を計算する他の計算手段を必要とする。
上述した不都合のため、ＬＤＰＣコード復号化のために必要とされる複雑性および時間は相当に増加する。
【００１６】
米国特許第７，１３７，０６０号は、低密度のパリティ検査マトリクスにより生じた符号化ビットを複合化する順方向誤り訂正の方法を開示している。方法は、各々の符号化ビットの尤度比値への変換および変換された値の可変ノードへの適用；可変ノードに適用されるメッセージの検査ノードへの供給、メッセージの中の最小値を有するメッセージの点検、および最小値を有するメッセージの符号の決定；検査ノードにおける更新されたメッセージの受容、受容したメッセージの符号および初期のメッセージの符号の加算、すべての符号が同一の場合、１の重み係数の適用、および、すべての符号が同一でない場合、重み係数を適用することによる可変ノードのメッセージの更新；初期の入力値のＬＬＲ値の決定；および可変ノードの値の明確な決定、明確な決定値上でのパリティ検査の実行、および、誤りが発生しない場合、復号化の停止からなる。本出願において必要とされる処理時間は、関係する計算の複雑性および数のため、より長い。
【００１７】
本発明は、従来技術の制限を克服する目的を有する。
【発明の開示】
【発明が解決しようとする課題】
【００１８】
本発明の目的は、ＷｉＭＡＸのためのＬＤＰＣコードの復号化するための半並列処理方法を用いて復号化装置およびシステムを提供することである。
【００１９】
本発明の他の目的は、８０２．１６／８０２．１６ａ規格において提案されるように、異なるブロック長および異なるコード率のために使われることができる再構成可能な構成を得ることである。
【００２０】
他の目的は、順番にタナー・グラフ接続性を達成するのを助けることができる「ロケーション・ポインタ」および「バンク・セレクタ」のための入力を得る手段を提供することである。
【００２１】
本発明の別の目的は、ビット誤り率およびフレーム誤り率を減少するシステムを提供することである。
【００２２】
本発明の別の目的は、ルックアップ・テーブルの使用を取り除き、したがってメモリ必要条件を減少させるシステムを提供することである。
【課題を解決するための手段】
【００２３】
本発明は、多重チャネルにおいて復号化伝達されたデータのための誤り訂正システムを認識する。
【００２４】
本発明によれば、多重チャネルにおいて復号化伝達されたデータのためのシステムのための誤り訂正システムが提供される。
【００２５】
一般的に、チャネル値抽出手段は、前記多重チャンネルで伝達されたデータからチャネル値を抽出し、前記チャネル値を中継するために提供される。
【００２６】
一般的に、変換装置手段は、前記チャネル値を受容し、前記チャネル値を尤度比値を含むデータへ変換するために提供される。
【００２７】
一般的に、可変ノードバンク手段は、前記変換装置手段から一組の尤度比値を受容し、第２のデータを形成する別々に番号をつけられたブロックおよびサブブロックにおいて指定されたパラメータを有するアイテムとして前記値を再配置するように適応する。
【００２８】
一般的に、バンク・セレクタ手段は、所定の方法で前記第２のデータからブロックを選ぶように適応する。
【００２９】
一般的に、ロケーション・ポインタ手段は、所定の方法で前記第２のデータからサブブロックを選ぶように適応する。
【００３０】
一般的に、可変ノードの計算手段は、格納手段および計算エンジンを有して提供される。
一般的に、検査ノード計算手段は、格納手段および計算過程エンジンを有して提供される。
一般的に、切替ネットワーク手段は、所定の方法で、可変ノードバンク手段、可変ノード計算手段、検査ノード計算手段、および、検査ノードバンク手段間で、それらのパラメータと共に一組のアイテムを転送するように適応する。
【００３１】
一般的に、検査ノード計算手段の前記計算エンジンは、前記選択されたアイテムおよび指定されたパラメータを受容するように適応し、さらに所定の方法で第１の計算されたパラメータを有する一組の第１の計算されたアイテムを含む第１の計算された出力を計算するように適応する。
【００３２】
一般的に、第１の比較手段は、所定の方法で、一組の結果として生じるアイテムを有する結果として生じる出力を提供するため、指定されたパラメータに関する第１の計算されたパラメータと前記検査ノード計算手段での格納のため結果として生じるパラメータを比較するために提供される。
【００３３】
一般的に、可変ノード計算手段の前記計算エンジンは、第２の計算されたパラメータを有する第２の計算されたアイテムの集合を有する第２の計算された出力を所定の方法で計算するため、結果として生じるパラメータを有する結果として生じるアイテムの前記集合を受容するように適応する。
【００３４】
一般的に、第２の比較手段は、所定の方法で、第２の計算されたパラメータおよび指定されたパラメータ間の誤りを比較し、誤りのない復号化データを形成するため、前記可変ノード計算手段から前記可変ノードバンク手段へのアイテムの誤りのない通過を選択的に許容するように適応する。
【００３５】
一般的に、移送手段は、前記可変ノードバンク手段から誤りのない修正データを受信器へ移動するために提供される。
【００３６】
一般的に、ロード手段は、可変ノードバンク手段に連続的に前記尤度比値をロードするために提供される。
【００３７】
一般的に、同期手段は、データを１つの場所から時限式に他の場所まで集合的に移動するために提供される。
【００３８】
一般的に、反復手段は、誤りのない復号化データを得るために計算の全体の集合を反復するように適応する。
【００３９】
一般的に、切替ネットワークは、前記アイテムを１つの場所から他の場所まで並列に移動するように適応する。
【００４０】
一般的に、切替ネットワークは、所定の方法で、１つのクロックサイクルにおいて可変ノードバンク手段から可変ノード計算手段までアイテムを移動するように適応する。
【００４１】
一般的に、切替ネットワークは、所定の方法で、１つのクロックサイクルにおいて可変ノード計算手段から検査ノード計算手段までアイテムを移動するように適応する。
【００４２】
一般的に、切替ネットワークは、所定の方法で、複数クロックサイクルにおいて検査ノード計算手段から検査ノードバンク手段までアイテムを移動するように適応する。
【００４３】
一般的に、切替ネットワークは、所定の方法で、複数クロックサイクルにおいて検査ノードバンク手段から可変ノード計算手段までアイテムを移動するように適応する。
【００４４】
一般的に、指定されたパラメータは、アイテムのアドレスを含む。
【００４５】
一般的に、切替ネットワークは、すべてのサイクルにおいてブロックおよびサブブロック内の前記第２のデータの第１の集合を検査ノード計算手段に移動するように適応する。
【００４６】
一般的に、アイテムの結果として生じるパラメータは、次の構成からなる：
ｉ．第１の最小データ値；
ｉｉ．第２の最小データ値；
ｉｉｉ．第１の最小データ値のアドレス；
ｉｖ．すべてのデータ値の符号；
ｖ．すべてのデータ値の符号の積；
ｖｉ． 第１の最小データ値の符号；
ｖｉｉ．第２の最小データ値の符号。
【００４７】
一般的に、可変ノード計算手段の前記計算エンジンは、結果として生じるパラメータを受容するように適応し、第２の計算されたパラメータの部分を形成する各々の第２の計算されたアイテムの符号を計算するようにさらに適応する。
【００４８】
一般的に、可変ノード計算手段の前記計算エンジンは、結果として生じるパラメータを受容するように適応し、第２の計算されたパラメータの部分を形成する各々の第２の計算されたアイテムの大きさを計算するようにさらに適応する。
【００４９】
一般的に、ブロックおよびサブブロックは、それぞれフレームおよびサブフレームである。
【００５０】
一般的に、音声データはブロックおよびサブブロックにおいて伝達され、ビデオ・データはフレームおよびサブフレームにおいて伝達される。
【００５１】
一般的に、伝達の間、データの損失を妨げるための誤り訂正システムのための方法は、次のステップからなる：
ｉ．多重チャンネル伝達データからのチャネル値の抽出；
ｉｉ．前記チャネル値の尤度比値を含むデータへの変換；
ｉｉｉ．格納手段への前記尤度比値のロード；
ｉｖ．指定されたパラメータを有するアイテムを形成するため、一組の尤度チャネル値の再配置、および、第２のデータを形成するため、別々に番号をつけられたブロックおよびサブブロックにおける指定されたパラメータを有する前記アイテムの格納；
ｖ．前記第２のデータブロックの特定のサブブロックにおけるアイテムおよびそれらの指定されたパラメータの所定の方法での選択；
ｖｉ．第１の計算されたパラメータを有する一組の第１の計算されたアイテムを含む第１の計算された出力を提供するため、前記アイテムおよびそれらの指定されたパラメータを用いた所定の方法での演算；
ｖｉｉ．結果として生じるパラメータを有する一組の結果として生じるアイテムを有する結果として生じる出力を提供するため、指定されたパラメータと第１の計算されたパラメータとの所定の方法での比較；
ｖｉｉｉ．第２の計算されたパラメータを有する第２の計算されたアイテムの集合を有する第２の計算された出力を提供するため、結果として生じるアイテムおよび結果として生じるパラメータを用いた所定の方法での演算；
ｉｘ．一組の誤りのない復号化データを提供するため、第２の計算された出力の第２の計算されたパラメータと指定されたパラメータとの所定の方法での比較；
ｘ．誤りのない復号化データの受信器への通過の選択的な許容。
【００５２】
一般的に、尤度比値は、前記可変ノードバンク手段に連続的に移動する。
【００５３】
一般的に、前記アイテムは、前記誤り訂正システムにおいて、１つの場所から他の場所まで並列に移動する。
【００５４】
一般的に、前記ブロックの選択は、次の式を用いて実行される：
2007295564.tif 000008
【００５５】
ここで、Ｉは前記可変ノードバンク手段におけるアイテムのアドレスであり、ｚは前記可変ノードバンク手段のブロックの数である。
【００５６】
一般的に、前記サブブロックの選択は、次の式を用いて実行される：
2007295564.tif 000009
【００５７】
Ｃは前記検査ノードバンク手段のアイテムの終点アドレスであり、ｚは前記可変ノードバンク手段のブロックの数である。
【００５８】
一般的に、第１の計算されたパラメータを有する第１の計算された出力は、次の式によって計算される：
2007295564.tif 000010
【００５９】
ここで、Ｅｎ，ｍは、ブロックから通される第１の計算された出力であり、ｍはブロックのための検査ノードバンク手段であり、ｎは連結された可変ノードバンク手段である。Ｔｎ，ｍはブロックから送られるアイテムであり、ｎはブロックのための可変ノードバンク手段であり、ｍは次の式によって得られるその連結された検査ノードバンク手段である：
2007295564.tif 000011
【００６０】
および、
2007295564.tif 000012
【００６１】
ここで、
Ｉｎは、チャネル尤度比値である。
【００６２】
一般的に、第２の計算された出力の符号は、次の式を用いて算出される：
2007295564.tif 000013
【００６３】
ここで、Ｅｎ，ｍは、ブロックから通される第１の計算された出力であり、ｍはブロックのための検査ノードバンク手段であり、ｎは連結された可変ノードバンク手段である。Ｔｎ，ｍはブロックから送られるアイテムであり、ｎはブロックのための可変ノードバンク手段であり、ｍは次の式によって得られるその連結された検査ノードバンク手段である：
2007295564.tif 000014
【００６４】
および
2007295564.tif 000015
【００６５】
Ｉｎは、チャネル尤度比値である。
【００６６】
一般的に、第２の計算された手段は、ｍｉｎ‐ｓｕｍ式に従って計算される。
【００６７】
一般的に、第２の計算された手段は、０．７５の重量の割合を有するｍｉｎ‐ｓｕｍ式に従って計算される。
【発明を実施するための最良の形態】
【００６８】
添付の図面の図１は、一般の送受信システムを図示する。伝送器（Ｔ）の符号器は、伝達される情報をコード化する。この情報は、復号化手段が情報を復号化する受信器（Ｒ）に通信経路を経て通される。誤り訂正手段（Ｃ）は、伝達された情報が受容された情報と同じであるかどうか、および、データの損失がないかを検査する。検査手段は、伝達されたデータを受容するための入力手段、データのいかなる損失または変化があったかどうか検査するためにデータを処理する処理手段（Ｐ）、および、受信器（Ｒ）にデータを通過させるための出力手段（Ｏ）からなる。
【００６９】
添付の図面の図２は、本発明による誤り訂正システムのブロック図を図示する。可変ノードバンク手段（ＶＮＢＭ）は、尤度比値の形で入力データを受容し、処理の前に指定されたパラメータを有する第２のデータを形成するため、別々に番号をつけられたブロックおよびサブブロックにそれを格納する。バンク・セレクタ手段（ＢＳＭ）は、指定されたパラメータでデータのアイテムを選ぶためにサブブロックを選ぶブロックおよびロケーション・ポインタ手段（ＬＰＭ）を選ぶ。可変ノード計算手段（ＶＮＣＭ）は、可変ノードバンク手段（ＶＮＢＭ）からデータのクロックサイクルの選択されたアイテムを並列に受容する。可変ノード計算手段（ＶＮＣＭ）は、データの一時的な格納のための格納手段（ＳＭ）、結果として生じるデータの結果として生じるパラメータを得るための計算エンジン（ＣＥ）、可変ノードバンク手段（ＶＮＢＭ）への選択的なデータの通過を可能にするため、指定されたパラメータと結果として生じるデータの特定のパラメータを比較する比較手段（ＣＭ）からなる。同様に、検査ノード計算手段（ＣＮＣＭ）は、データの一時的な格納のための格納手段（ＳＭ）、結果として生じるデータの結果として生じるパラメータを得るための計算エンジン（ＣＥ）、検査ノードバンク手段（ＣＮＢＭ）へのデータの通過を可能にするため、指定されたパラメータと結果として生じるデータの特定のパラメータを比較する比較手段（ＣＭ）からなる。切替ネットワークは、データを１つの場所から他の場所まで移動する。同期化手段（ＳＮＣＭ）は、システムにおいて１つの場所から他の場所へのデータ転送を集合的に計時するように提供される。
【００７０】
添付の図面の図３は、本発明による誤り訂正システムのための構成を図示する;
示される復号器は、レート１/２およびブロック長２３０４において一般的である。
復号器は：
（ｉ） 可変ノードバンク手段（１０）；
（ｉｉ） 検査ノードバンク手段（１２）；
（ｉｉｉ）置換／切替ネットワーク手段（１４）；
（ｉｖ） バンク・セレクタ手段（１６）；
（ｖ） ロケーション・ポインタ手段（１８）；
（ｖｉ） 検査ノード計算手段（２０）；
（ｖｉｉ） 可変ノード計算手段（２２）からなる。
【００７１】
設計は、コードの周期的動作に基づいてある。
【００７２】
メモリバンクの数および各々のバンクに格納されるアドレスの数は、異なる長さおよび異なるレートのためにアドレス指定が行われる再構成可能性が出る間、必要とされる。
【００７３】
検査ノードおよび可変ノードの隣のアドレスは、レートに依存した因子「ｚ」に関連がある。一般的に、Ｎ=２３０４およびレート１/２のため、値９６を有するレートに依存した因子が選ばれる。０番目のノードから始まりz-１ノードまでの一組のｚノードの始動において連結される対応したノードにおける増加が存在し、ｚ検査ノードのすべての集合のため、可変ノードのアドレス値は、１増加する。同様にすべてのｚ可変ノードのための可変ノードでは、検査ノードのアドレスは、１増加する。一般的に、レート１/２のために、第０のノードから第９５のノードへの９６の検査ノードの第１の集合において、第１のノードのための可変ノードのアドレスは、第０のノードのそれの増加した値である。得られたアドレスが９６である場合、それはゼロになり、アドレスが１９２である場合、それは９６などになる。すなわち、９６の減分が存在する。この観察に基づいて、それは、直並列構成において、問題周辺の配慮をする接続メカニズムでＶＮ（可変ノード）およびＣＮ（検査ノード）処理のためそれぞれ９６の要素を使用すると決定される。
【００７４】
メモリバンクにおいて示されるエントリは、可変ノードの手段（１０）および検査ノード（１２）におけるアイテムのアドレスである。一般的に、９６の処理ユニットは、並列に作用し、選択されたバンク／ブロック内でサブブロックの場所を提案するバンク／ブロックおよびロケーション・ポインタ手段（１８）を選ぶバンク・セレクタ手段（１６）において提供されるエントリに基づいて、入力を１つずつ引き出す。ブロックのアドレスの数は、レートに依存する。
【００７５】
添付の図面の図３は、レート１／２およびブロック長２３０４に一般的であるアドレスを示す。したがって、一般的に、２３０４の可変ノードおよび１１５２の検査ノードが存在する。ロケーション・ポインタ手段（１８）およびレートの依存から離れたバンク・セレクタ手段（１６）のエントリの数は、反復手順の間、変化する。示されるエントリは、最初の９６の検査ノードの処理動作のものである；この集合の検査ノードは図３に示すように、０、１、２、…９５である。次の９６（９６、９７、…、１９１）のためには、異なるエントリが、これらのレジスタにロードされることを必要とする。さらに反復手順を念入りに仕上げるため、２３０４の受容された値の全体のブロックは、適切な尤度比値（ＬＬＲｓ）を得るために測定され、およびアドレスによって提案されるように、バンクまたはブロックに格納されると仮定される。検査ノードの計算手段（２０）ユニットは、それから処理を始める。検査ノード計算手段（２０）は、順番に６または７の値を得る。例えば、検査ノード０のための６値は、第９４のバンクの第１の場所、第７３のバンクの第２の場所などから得られる。９６の検査ノード計算手段（２０）は、この方法で値を得ることができる。処理が完了されるならば、検査ノード計算ユニット（２０）は入力と同じ出力数を生成し、出力は、それぞれのアドレスにおける検査ノード手段（１２）のメモリバンクに配置される。次の９６の検査ノードのための処理は、バンク・セレクタおよびロケーション・ポインタに異なる関連したエントリをロードすることによってそれから始められることができる。
【００７６】
バンク・セレクタおよびロケーション・ポインタの入力は、次のタイプの式から得られる：
2007295564.tif 000016
【００７７】
ここで、Ｉは、特定のパリティ検査ノードに連結される可変ノードのアドレスである。エントリは、群のいかなるパリティ検査ノードを選ぶことによって計算される。さらに、上記の式は、ブロック・セレクタ値を提供する。
【００７８】
すべての検査ノードの処理が完了されるならば、９６の可変ノードの処理を開始する可変ノードは一度に処理され、可変ノード・メモリバンクから値を引き出す。演算ロケーション・ポインタ値のための式は次の通りである：
2007295564.tif 000017
【００７９】
ここで、Ｃは検査ノードのアドレスであり、
2007295564.tif 000018
【００８０】
はブロック・セレクタ値である。これは、復号器構成設計を完了させ、実施において、制御装置は、すべてのユニットが同期することを確認するために必要とされる。
【００８１】
ＬＬＲを得るためにメモリ要求およびＬＵＴ計算を減少するため、ｍｉｎ‐Ｓｕｍアルゴリズムは、普及している選択である。一般的に、このアルゴリズムで検査ノードの（１２）だけが、以下に表現される規則的なｓｕｍ−ｐｒｏｄｕｃｔアルゴリズムと異なる法則を更新する。
検査ノードの更新法則：
2007295564.tif 000019
【００８２】
ｍｉｎ‐Ｓｕｍアルゴリズムは、次の特性を有し、有用である：
（ａ）検査ノードの（１２）更新は、最小入力値の選択によって置き換えられる。
（ｂ）それぞれのパリティ検査式のために２つの絶対値のみがセーブされることが必要とされる。
（ｃ）固有の情報を計算するためにノイズ相違を推定する必要がない。
【００８３】
Ｍｉｎ‐Ｓｕｍの単純性は、ビット誤り率に関してパフォーマンスに不利な条件と関連している。性能に不利な条件は、（通常の和積と比較して）外部情報のオーバーエスティメーションのためであることが公知であり、およびしたがって、減算（相殺）または乗算（正常化）に関する補正が提案される。本発明により実行される広範囲なシミュレーション調査に基づいて、可変ノードの０.７５の乗算の因子は、通常のｓｕｍ−ｐｒｏｄｕｃｔアルゴリズムのそれに近い（補正された）ｍｉｎ‐ｓｕｍアルゴリズムの性能の結果を出力することが明らかになった。この因子は、ＶＣＵ（２２）において、出力に０．５および０．２５を（両方ともシフト動作である）逓倍し、補正された値を得るために計算結果を加えることによって、単純に実行されることができる。
【００８４】
提案された復号器におけるｍｉｎ‐Ｓｕｍアルゴリズムの半並列での実施は、次のステップからなる：
ステップ１：チャネル値抽出手段は、多重チャンネル伝達データからチャネル値を抽出し、変換装置手段にチャネル値を中継する。変換装置手段は、尤度比値を含んでいるデータに前記チャネル値を変換する。可変ノードバンク手段（１０）は、前記変換装置手段から一組の尤度比値を受容するために適応し、第２のデータを形成するため、別々に番号をつけられたブロックおよびサブブロックにおいて指定されたパラメータを有するアイテムとして前記値を再配置する。このステップは、連続的な処理である。
【００８５】
ステップ２：バンク・セレクタ手段（１６）は、所定の方法で、前記第２のデータからブロックを選択するために適応し、ロケーション・ポインタ手段（１８）は、所定の方法で、更新される検査ノード・メモリバンク手段（１２）に連結される可変ノード・メモリバンク手段（１０）に存在する前記第２のデータからサブブロックを選択するために適応する。一般的に９６の分離したメモリバンクが存在するので、並列な９６値が引き出され、切替ネットワーク（１４）に入力として提供される。
【００８６】
ステップ３：切替ネットワーク（１４）は、すべての９６の可変ノード・メモリバンク（１０）から値を取り、更新される検査ノード（１２）に連結される可変ノード（１０）のアドレスに依存して適当なシフト動作を実行する。切替えは、９６の入力値で並列にクロックサイクルの範囲内で実行され、その入力値のシフトされた別方式を提供する。切替ネットワーク（１４）の出力（９６の入力値のシフトされた別方式である９６値）は、９６の検査ノード演算器（２０）に提供される。
【００８７】
ステップ４：検査ノード計算手段（２０）の計算エンジンは、選択されたアイテムおよび指定されたパラメータを受容するのに適応し、所定の方法で、第１の計算されたパラメータを有する一組の第１の計算されたアイテムを含む第１の計算された出力計算するためにさらに適応する。第１の比較手段は、所定の方法で、一組の結果として生じるアイテムを有する結果として生じる出力を提供するため指定されたパラメータに関する第１の計算されたパラメータと前記検査ノード計算手段（１２）における格納のため、結果として生じるパラメータとを比較するために提供される。
【００８８】
それぞれの検査ノードの演算器（２０）は、すべてのクロックサイクルで１つの入力値を取り、計算を実行する。更新される検査ノードの（１２）の等級が「ｋ」である場合、検査ノードの演算器（２０）は、その出力を提供するために「ｋ」クロックサイクルを取る。個別的な演算器のためのそれぞれの入力値は、順番に提供される。９６の演算器が得られるので、すべての演算器の９６の出力が「ｋ」クロックサイクルにおいて得ることができる。それぞれの演算器の出力は、その入力の中の第１の最小値、その入力の中の第２の最小値、第１の最小のアドレス、すべての入力値の符号、および、すべての入力値の符号の積から構成される。
【００８９】
検査ノード計算手段（２０）は、それぞれのクロックサイクルにおいて順番に同時に１つの入力を取る。それぞれの値は、Ｔｎである。それぞれの検査ノード計算手段（２０）は、可変ノード（１０）メモリバンク（それぞれの１つのクロックサイクルにおいて）および、第１の最小値（ｍｉｎ１）、第２最小値（ｍｉｎ２）第１の最小アドレス（ｍｉｎ１ａｄｄｒｅｓｓ）、すべての入力値の符号、およびすべての入力値の符号の積から構成される１つの全体の関連した検査ノードの（１２）値からＴｎ値のｋ数を引き出す。これらは、次のようにＥｎ，ｍ値を生成するために使用することができる。
【００９０】
検査ノード計算のユニット（２０）は、ｍｉｎ１ａｄｄｒｅｓｓを現在のＴｎ値が引き出される可変ノード（１０）アドレスと比較する。それが適合する場合、ｍｉｎ２はＥｎ，ｍの実際の絶対値であり、他の点では、ｍｉｎ１は実際の絶対値と考えられる。それの符号は、先の反復の符号情報で全体の符号を逓倍することによって得られる。これにより、＋ｍｉｎ１または‐ｍｉｎ１、または＋ｍｉｎ２または‐ｍｉｎ２に達する。すべての検査ノード（１２）で開始するため、メモリバンク値はゼロ（ゼロは、正符号に対応する）に初期化される。分離したバスは、可変ノード（１０）および検査ノードの（１２）メモリバンクからそれぞれＴｎおよびＥｎ，ｍ値を引き出すため、検査ノードの演算器（２０）に提供される。それで、ＴｎおよびＥｎ，ｍの両方は、並列に引き出されることができる。それぞれのクロックサイクルで、Ｅｎ，ｍ値は、Ｔｎ，ｍを得るためにＴｎから減じられる：
2007295564.tif 000020
【００９１】
ステップ５：すべての９６の演算器の出力は、９６の検査ノードの（１２）メモリバンクに並列に書き込まれる。これは、９６の検査ノードの（１２）の１つの集合の更新を完了する。これらの９６の検査ノードの演算器（２０）は、９６の検査ノード（１２＊９６＝１１５２）の１２の集合の更新を完了するため、１２回繰り返し作動され、検査ノードの（１２）処理（最初の半分の反復）を完了する。それは、多くともｋ＊１２クロックサイクルを必要とする。
【００９２】
ステップ６：検査ノードの（１２）処理の完了の後、次のステップは、可変ノード（１０）処理のために必要とされる検査ノードの（１２）メモリバンクから値を引き出すことである。
【００９３】
可変ノード計算手段（２２）の計算エンジンは、所定の方法で、第２の計算されたパラメータを持つ一組の第２の計算されたアイテムを有する第２の計算された出力を計算するため、結果として生じるパラメータを有する一組の結果として生じるアイテムを受容するために適応する。第２の比較手段は、所定の方法で、第２の計算されたパラメータおよび指定されたパラメータ間の誤りを比較し、誤りのない復号化データを形成するため、前記可変ノード計算手段（２２）から前記可変ノードバンク手段（１０）へのアイテムの誤りのない選択的な通過を許容するために適応する。
【００９４】
検査ノード（１２）処理に類似して、可変ノード（１０）の処理においても、９６値は、９６の検査ノードのメモリ（１２）バンクから、並列に引き出され、切替ネットワーク手段（１４）に提供される。
【００９５】
ステップ７：切替ネットワーク（１４）（入力値のシフトされた別方式）の出力は、可変ノード演算器（２２）に提供される。
【００９６】
ステップ８：それぞれの個別の可変ノード演算器（２２）は、順番にそれぞれ入力し、計算を実行し、「ｘ」が更新される可変ノードの度合いである場合、クロックサイクルの「ｘ」数において出力を提供する。
【００９７】
可変ノード演算器（２２）は、検査ノードの（１２）メモリバンクから「ｘ」数の入力値を順番に（１つずつ）取る。それは、検査ノードの（１２）処理で説明されたのと同じ方法で、＋ｍｉｎ１または‐ｍｉｎ１、または、＋ｍｉｎ２または−ｍｉｎ２を検査ノードの（１２）メモリ値から導く。すなわち、可変ノード（１０）プロセッサは、ｍｉｎ１ａｄｄｒを更新される可変ノード（１０）アドレスと比較する。それが適合する場合、Ｅｎ，ｍの絶対値がｍｉｎ２、別の方法ではｍｉｎ１と考えられる。Ｅｎ，ｍの符号は、検査ノード（１２）メモリにおけるその関連した個別の符号情報で全体の符号を逓倍することによって得られる。
【００９８】
得られた値Ｅｎ，ｍは、その可変ノード（１０）の固有の情報によって蓄積され、結果は可変ノード（１０）メモリバンクに格納される。対応している可変ノード（１０）メモリロケーションへの可変ノード演算器（２２）の結果の書き込みは、その特定の可変ノード（１０）の更新を表す。
【００９９】
ステップ９：９６のこのような演算器が構成に存在するので、すべての９６の可変ノード演算器（２２）の出力は、に９６の可変ノード（１０）メモリバンクに並列書き込まれる。
【０１００】
ステップ１０：これらの９６の演算器は、可変ノード（１０）処理（後半の反復）を完了するために２４回一般的に作動される。
【０１０１】
ステップ１１：この検査ノードの（１２）処理および可変ノード（１０）処理は、最大数の反復のために繰り返される。
【０１０２】
図４から図１７は、一組のシミュレーション結果を視覚的に図示する。
【０１０３】
シミュレーション調査は、レート１／２、２／３および３／４に関してと同様、ブロック長５７６、１４４０および２３０４（規格うちの最低、中間および最大）で実行された。典型的ないくつかのシミュレーション結果は、ビット誤り率（ＢＥＲ）およびフレーム誤り率（ＦＥＲ）の両方がビットあたりのエネルギＥｂ／Ｎ０に対してプロットされることを示している。ＡＷＧＮの場合では、結果はオールゼロ符号語のためのものであった。
【０１０４】
この結果は、フレーム長が提供されたレートおよび提供された長さ増加すると性能は改善し、性能はレートの減少で改善するという事実を確認した。λ‐Ｍｉｎアルゴリズムのために、λの値は３が選ばれる。λ‐ｍｉｎおよびΑ‐ｍｉｎアルゴリズムの両方は、通常のｓｕｍ‐ｐｒｏｄｕｃｔアルゴリズムのように実行されるが、ｍｉｎ‐ｓｕｍより多くの複雑性を有することが観察された。ｍｉｎ‐ｓｕｍアルゴリズムは、約０．５ｄＢのいくつかのパフォーマンスに不利な条件を有した。上述したように、０.７５の補正因子が使用される場合、ｍｉｎ‐ｓｕｍアルゴリズムの性能は、添付の図面の図１３、１４、１５、１６に示すように、通常のＢＰアルゴリズムにより近くに導かれることができる。類似した結果は、ランダムに生成された符号語によって観察された。
【０１０５】
図４は、ビット誤り率（ＢＥＲ）Ｖｓ  ｄＢのビットあたりのエネルギ（Ｅｂ／Ｎｏ）、ブロック長ｎ＝［２３０４／１４４０／５７６］および、レートｒ＝１／２（一般的にメガビット／秒）のグラフを図示する；
図５は、ビット誤り率（ＢＥＲ）Ｖｓ  ｄＢのビットあたりのエネルギ（Ｅｂ／Ｎｏ）、ブロック長ｎ＝［２３０４／１４４０／５７６］および、レートｒ＝２／３Ａ（一般的にメガビット／秒）のグラフを図示する；ここで、Ａは第１の重み係数である；
図６は、ビット誤り率（ＢＥＲ）Ｖｓ  ｄＢのビットあたりのエネルギ（Ｅｂ／Ｎｏ）、ブロック長ｎ＝［２３０４／１４４０／５７６］および、レートｒ＝２／３Ｂ（一般的にメガビット／秒）のグラフを図示する；ここで、Ｂは第２の重み係数である；
図７は、ビット誤り率（ＢＥＲ）Ｖｓ  ｄＢのビットあたりのエネルギ（Ｅｂ／Ｎｏ）、ブロック長ｎ＝［２３０４／１４４０／５７６］および、レートｒ＝３／４Ａ（一般的にメガビット／秒）のグラフを図示する；ここで、Ａは第１の重み係数である；
図８は、ビット誤り率（ＢＥＲ）Ｖｓ  ｄＢのビットあたりのエネルギ（Ｅｂ／Ｎｏ）、ブロック長ｎ＝［２３０４／１４４０／５７６］および、レートｒ＝３／４Ｂ（一般的にメガビット／秒）のグラフを図示する；ここで、Ｂは第２の重み係数である；
図９は、フレーム誤り率（ＦＥＲ）Ｖｓ  ｄＢのビットあたりのエネルギ（Ｅｂ／Ｎｏ）、ブロック長ｎ＝［２３０４／１４４０／５７６］および、レートｒ＝１／２（一般的にメガビット／秒）のグラフを図示する；
図１０は、フレーム誤り率（ＦＥＲ）Ｖｓ  ｄＢのビットあたりのエネルギ（Ｅｂ／Ｎｏ）、ブロック長ｎ＝［２３０４／１４４０／５７６］および、レートｒ＝２／３Ａ（一般的にメガビット／秒）のグラフを図示する；ここで、Ａは第１の重み係数である；
図１１は、フレーム誤り率（ＦＥＲ）Ｖｓ  ｄＢのビットあたりのエネルギ（Ｅｂ／Ｎｏ）、ブロック長ｎ＝［２３０４／１４４０／５７６］および、レートｒ＝２／３Ｂ（一般的にメガビット／秒）のグラフを図示する；ここで、Ｂは第２の重み係数である；
図１２は、フレーム誤り率（ＦＥＲ）Ｖｓ  ｄＢのビットあたりのエネルギ（Ｅｂ／Ｎｏ）、ブロック長ｎ＝［２３０４／１４４０／５７６］および、レートｒ＝３／４Ａ（一般的にメガビット／秒）のグラフを図示する；ここで、Ａは第１の重み係数である；
図１３は、フレーム誤り率（ＦＥＲ）Ｖｓ  ｄＢのビットあたりのエネルギ（Ｅｂ／Ｎｏ）、ブロック長ｎ＝［２３０４／１４４０／５７６］および、レートｒ＝３／４Ｂ（一般的にメガビット／秒）のグラフを図示する；ここで、Ｂは第２の重み係数である；
図１４は、ビット誤り率（ＢＥＲ）Ｖｓ  ｄＢのビットあたりのエネルギ（Ｅｂ／Ｎｏ）、ブロック長ｎ＝［２３０４／１４４０／５７６］および、レートｒ＝１／２（一般的にメガビット／秒）のグラフを図示する；
図１５は、ビット誤り率（ＢＥＲ）Ｖｓ  ｄＢのビットあたりのエネルギ（Ｅｂ／Ｎｏ）、ブロック長ｎ＝［２３０４］および、レートｒ＝１／２およびｒ＝２／３Ａ（一般的にメガビット／秒）のグラフを図示する；ここで、Ａは第１の重み係数である；
図１６は、フレーム誤り率（ＦＥＲ）Ｖｓ  ｄＢのビットあたりのエネルギ（Ｅｂ／Ｎｏ）、ブロック長ｎ＝［２３０４／１４４０／５７６］および、レートｒ＝１／２（一般的にメガビット／秒）のグラフを図示する；
図１７は、フレーム誤り率（ＦＥＲ）Ｖｓ  ｄＢのビットあたりのエネルギ（Ｅｂ／Ｎｏ）、ブロック長ｎ＝［２３０４］および、レートｒ＝１／２および２／３Ａ（一般的にメガビット／秒）のグラフを図示する；ここで、Ａは第１の重み係数である；
添付の図面の図１８および１９は、新規な構成のフィールドプログラマブル・ゲート・アレイ（ＦＰＧＡ）の実施例を図示する。機能的な確認シミュレーションに関連する波形は、図１８および図１９において示され、ここにおいて、図１８は入力波形を図示し、図１９は出力波形（１０の反復の後）を図示する。波形は、１６ビット量子化で３．５ｄＢのＥｂ／Ｎ０のためのものである（１符号ビット、４整数ビットおよび１１分数ビット）。
【０１０６】
新規な構成のＦＰＧＡの実施例は、フレーム長５７６および符号レート１/２で実行される。使用された復号化アルゴリズムは、補正されたｍｉｎ‐Ｓｕｍアルゴリズムであった。次の表は、研究所において使われたターゲット装置（ＦＰＧＡ）の詳細を提供する。
2007295564.tif 000021
【０１０７】
復号器の検査ノードの部分の構成は、検査ノードのＲＡＭおよび検査ノードプロセッサ（計算ユニット）からなる。同様に、可変ノード部分は、可変ノードＲＡＭおよび可変ノードプロセッサからなる。
【０１０８】
検査ノードプロセッサによって更新される検査ノードの値は、検査ノードのＲＡＭに格納される。この記憶ブロックは、検査ノードの値（例えばｍｉｎ１、ｍｉｎ２、ｍｉｎ１ａｄｄｒおよび符号ビット）についての情報を格納する。検査ノードのＲＡＭもまた、その深さが符号レートに次第であるメモリバンクから構成される。検査ノードプロセッサは、可変ノード・メモリバンクから並行してそれらの入力値を引き出し、それら上での動作を実行する。すべてのこれらのプロセッサの結果は、検査ノードのＲＡＭに並行して格納される。ロケーション・ポインタおよびバンク・セレクタ値は、その値が計算の間使われるいずれのプロセッサにも提供される。実施例におけるその主な構成要素がバレル・シフターである切替ネットワークは、ＲＡＭおよび処理要素間の接続の配慮をする。ロケーション・ポインタ・エントリ（アドレス）は、メモリバンクから値を引き出すために使われ、それらの引き出された値は切替ネットワークに入力として提供される。バンク・セレクタのコンテンツは、バレル・シフターのマルチプレクサの選択ビットに、入力として提供される。バレル・シフターの選択ビットに提供されるアドレスに従って、シフト動作はしたがって実行され、バレル・シフターのシフトされた入力情報の結果は切替ネットワークの出力ラッチに格納される。
【０１０９】
可変ノードＲＡＭは、その深さがコード・ブロック長次第であるメモリバンクから構成される。各々のバンクからのポート・バスは、切替ネットワークに連結される。個別のメモリバンクから引き出されるデータは、ロケーション・ポインタ値に依存している。復号化工程の開始の前に、メモリバンクは、チャネル値がロードされる。復号化工程の開始の後、これらは、可変ノードプロセッサによって得られた結果がロードされる。可変ノードプロセッサの連結している記述は、検査ノードプロセッサにきわめて類似している。
以下では、（ＦＰＧＡの）資源利用およびタイミングについての詳細が提供される。
【０１１０】
資源利用：
設計のための完全に同等のゲート・カウント：５，７１５，７０３
次の表は、ＦＰＧＡの設計の資源利用の概要を提供する。
2007295564.tif 000022
【０１１１】
タイミング概要：
最小の期間：８．１２７ｎｓ（ナノ秒）
クロック前の最小の入力到着時間：７．８８８ｎｓ
クロック後の最大出力動作必要時間：４．９６１ｎｓ
最大の組合せの経路遅延：２．４８５ｎｓ
設計の動作の最大周波数は、１２３．０４７Ｍｈｚであることが明らかになった。
【０１１２】
本願明細書において好適な実施例の様々な構成要素に相当な重点が置かれた一方で、多くの変更が作成され、多くの修正が発明の原理から逸脱することなく、好適な実施例において作成されることができることはいうまでもない。発明の別の実施例と同様、好適な実施例のこれらのおよび他の変化は本願明細書における開示から当業者には明白であり、それによって、前述の記述的な事柄は単に発明を図示し、制限する意図は有さないと解釈されることは明確に理解される。
【図面の簡単な説明】
【０１１３】
発明は、次に好適な実施例に関して詳述される。この実施例への参照は、発明の範囲を制限しない。
【図１】一般の伝達-受信システムを図示する。
【図２】本発明による誤り訂正システムのブロック図を図示する。
【図３】本発明による誤り訂正システムの構成を図示する。
【図４】誤り訂正システムのための一組のシミュレーション結果を視覚的に図示する。
【図５】誤り訂正システムのための一組のシミュレーション結果を視覚的に図示する。
【図６】誤り訂正システムのための一組のシミュレーション結果を視覚的に図示する。
【図７】誤り訂正システムのための一組のシミュレーション結果を視覚的に図示する。
【図８】誤り訂正システムのための一組のシミュレーション結果を視覚的に図示する。
【図９】誤り訂正システムのための一組のシミュレーション結果を視覚的に図示する。
【図１０】誤り訂正システムのための一組のシミュレーション結果を視覚的に図示する。
【図１１】誤り訂正システムのための一組のシミュレーション結果を視覚的に図示する。
【図１２】誤り訂正システムのための一組のシミュレーション結果を視覚的に図示する。
【図１３】誤り訂正システムのための一組のシミュレーション結果を視覚的に図示する。
【図１４】誤り訂正システムのための一組のシミュレーション結果を視覚的に図示する。
【図１５】誤り訂正システムのための一組のシミュレーション結果を視覚的に図示する。
【図１６】誤り訂正システムのための一組のシミュレーション結果を視覚的に図示する。
【図１７】誤り訂正システムのための一組のシミュレーション結果を視覚的に図示する。
【図１８】誤り訂正システムの構成のＦｉｅｌｄ Ｐｒｏｇｒａｍｍａｂｌｅ Ｇａｔｅ Ａｒｒａｙ（ＦＰＧＡ）の実施例を図示する。
【図１９】誤り訂正システムの構成のＦｉｅｌｄ Ｐｒｏｇｒａｍｍａｂｌｅ Ｇａｔｅ Ａｒｒａｙ（ＦＰＧＡ）の実施例を図示する。
【図１】
2007295564.tif 000025
【図２】
2007295564.tif 000026
【図３】
2007295564.tif 000027
【図４】
2007295564.tif 000028
【図５】
2007295564.tif 000029
【図６】
2007295564.tif 000030
【図７】
2007295564.tif 000031
【図８】
2007295564.tif 000032
【図９】
2007295564.tif 000033
【図１０】
2007295564.tif 000034
【図１１】
2007295564.tif 000035
【図１２】
2007295564.tif 000036
【図１３】
2007295564.tif 000037
【図１４】
2007295564.tif 000038
【図１５】
2007295564.tif 000039
【図１６】
2007295564.tif 000040
【図１７】
2007295564.tif 000041
【図１８】
2007295564.tif 000042
【図１９】
2007295564.tif 000043
【外国語明細書】
Field of the Invention:
This invention relates to a system for information decoding.
In particular, this invention relates to a decoding system using low density parity check codes.
Background of the Invention:
The use and implementation of computer networks has become very popular. Networks such as Local area networks (LANs), Metropolitan area networks (MANs), Wireless LANs (WLANs) and the like, are being widely implemented for the purpose of accessing data. The use of such networks has led to the development of various international standards in the field of communication such as WiFi and WiMAX.
WiMAX is a wireless metropolitan area network (MAN) technology that can connect Wi-Fi hotspots with each other and to other parts of the Internet and provide a wireless alternative to cable and DSL. WiMAX provides up to 50 km (31 miles) of linear service area range and allows connectivity between users without a direct line of sight. The technology has been claimed to provide shared data rates up to 70 Mbit/s, which, according to WiMAX proponents, is enough bandwidth to simultaneously support more than 60 businesses and well over a thousand homes at 1Mbit/s DSL-level connectivity. Real world tests, however, show practical maximum data rates between 500kbit/s and 2 Mbit/s, depending on conditions at a given site.
Also WiMAX allows interpenetration for broadband service provision of VoIP, video, and Internet access simultaneously. Even in areas without pre-existing physical cable or telephone networks, WiMAX allows access between networks which are within range of each other. WiMAX antennas share a cell tower without compromising the function of cellular arrays already in place. WiMAX antennas may also be connected to an Internet backbone via either a light fiber optics cable or a directional microwave link. WiMAX also facilitates increase in bandwidth for a variety of data-intensive applications. 
WiMAX has become synonymous with the IEEE 802.16 standard family, an emerging standard for fixed and mobile MAN (Metropolitan Area Network) Broadband Wireless Access (BWA). The original 802.16 and the subsequently amended 802.16a standards are both used for fixed BWA.  The latter caters for non-line of sight (NLOS) applications, as BWA is increasingly becoming a residential application.  The latest 802.16e amendment is supporting for mobility (mobility at vehicular speeds, around 120 km/h) in WiMAX system.  The 802.16e standard will allow users' hardware (notebooks, personal digital assistants (PDAs)) to access high speed Internet, and while roaming outside of the WiFi (Wireless Fidelity) hotspots. The 802.16 standard supports high data rates (up to about 70 Mbps) with a variety of channel coding options.  The mandatory scheme is a convolutional code.  Convolutional turbo codes, turbo product codes and LDPC codes are optional. These optional codes can be used to ensure robustness in extreme fading channels.
LDPC codes are linear block codes originally proposed by Gallager in the early 1960s. Their parity check matrix is sparse and has low density of one's.  The original codes were regular codes having uniform column and row weight in the parity check matrix.  Recently, these codes have emerged as competitors for turbo codes, with capacity approaching performance.  Better performance of LDPC codes is achieved with a proper choice of code and decoding signal processing.  A popular LDPC decoding algorithm is the Belief Propagation algorithm also referred to as Sum-Product algorithm.  The Sum-product algorithm is a message passing algorithm operating on the Tanner graph, which is a bipartite graph representing the parity check matrix and consisting of variable nodes and check nodes. A bipartite graph is a special graph where the set of vertices can be divided into two disjoint sets with two vertices of the same set never sharing an edge.
Prior Art:
The main challenge in the LDPC code decoder hardware implementation is to effectively manage the message passing during the iterative belief propagation (BP) decoding.  The system and device for decoding usually uses three schemes: (1) Parallel (2) Serial and (3) Semi Parallel.
Fully parallel decoders directly instantiate the bipartite graph of the LDPC code to the hardware.  Each individual variable node or check node is physically implemented as node functional unit, and all the units are connected through an interconnection network reflecting the bipartite graph connectivity. There is no need for central memory blocks to store the messages.  They can be latched close to the processing units.  Such fully parallel decoders can achieve very high decoding throughput in terms of bits per second. But, area of implementation due to the physical implementation of all the processing units and interconnect routing make this approach infeasible for large block lengths.  Further, the parallel hardware design is fixed to a particular parity check matrix.  This prohibits the reconfigurability required when the block length or rate of the code changes.
Fully-serial architecture has a smaller area since it is sufficient to have just one variable node computational unit (VCU) and one check node computational unit (CCU).  The fully-serial approach is suitable for Digital Signal Processors in which there are only a few functional units available to use.  However, the speed of decoding is very low in a serial decoder.
The prior art system or device which uses the Sum-Product algorithm incorporates means that are adpated to use Tanner graph.  The device has a mechanism for the initialization and means in which each iteration message passing occurs from each check node to all adjacent variable nodes in the first half of the iteration and from each variable node to its adjacent check nodes in the second half of the iteration.  The device also has a mechanism by which repeated iterations of the message passing along the edges of the graph, with some stopping criterion.
The steps involved in the implementation of the Sum-product algorithm are given in the following for sign-magnitude processing form:
Initialization:  T(0)n,m = In            ; E(0)n,m = 0              
Iteration:
For iteration counter l=1, 2, …… lmax,
Check node update rule
2007295564.tif 000044
Variable node update rule:
2007295564.tif 000045
Last variable node update rule:
2007295564.tif 000046
In the above equations Tn,m is the information sent by a variable node n to its connected check node m. En,m is the message passed from check node m to the connected variable node n (information given by the parity check m on bit n). M(n) is the set of check nodes connected to variable node n. N(m) is the set of variable nodes connected to check node m,
2007295564.tif 000047
with x>0.  
In is the channel Log Likelihood Ratio and can be obtained depending on the channels (for example Additive White Gaussian Noise (AWGN)). "＼" is the usual exclusion symbol .  'l' indicates the iteration number with lmax being the number of iterations. It is observed that check node computation is more complex. The nonlinear function Φ(x)is implemented using a look-up table (LUT).
However, the use of the prior art devices using the Sum-product process for decoding has a number of disadvantages which can be summarized as follows:
(i) For every iteration, the device needs to refer to a look up table.
(ii) For every iteration, the device needs to compute log likelihood ratios.
(iii) The device requires a computational means for computing log likelihood ratios.
(iv) The device requires a storage means for storing values relating to every log likelihood ratio computed.
(v) The device requires another computational means for computing Noise variance values related to every iteration.
Due to the aforementioned disadvantages, the complexity and the time required for decoding LDPC code increases considerably.
US Patent number 7,137,060 discloses a forward error correction method for decoding coded bits generated by low density parity check matrixes. The method comprises converting each of the coded bits into a LogLikelihood Ratio value, and applying the converted values to variable nodes; delivering messages applied to the variable nodes to the check nodes, checking a message having a minimum value among the messages, and determining a sign of the message having the minimum value; receiving messages updated in the check nodes, adding up signs of the received messages and a sign of an initial message, applying a weighting factor of 1 when all signs are identical, and when all signs are not identical, updating a message of a variable node by applying a weighting factor; determining LLR value of an initial input value; and hard-deciding values of the variable nodes, performing parity check on the hard decision values, and stopping the decoding when no error occurs. The processing time required in this application is more because of the complexity and the number of calculations involved.
This invention seeks to overcome the limitations of the prior art.
Objects of the Invention:
An object of this invention is to provide a decoding device and system using  semiparallel processing method for the decoding of LDPC codes for the WiMAX.
Another object of this invention is to obtain a reconfigurable architecture which can be used for different block lengths and different code rates as suggested in the 802.16/802.16a Standard.
Another object is to provide means to obtain the inputs for the "location pointer" and "bank selector" which in turn would help us achieve the tanner graph connectivity. 
Another object of this invention is to provide a system that reduces the bit error rate and the frame error rate.
Another object of this invention is to provide a system which eliminates the use of look up tables thus reducing memory requirements.
Summary of the Invention:
This invention envisages an error-correction system for decoding transmitted data in multichannels.
According to this invention, there is provided an error correction system for system for decoding transmitted data in multichannels.
Typically, a channel value extracting means is provided for extracting channel values from said multichannel transmitted data and relaying said channel values.
Typically, a converter means is provided for receiving said channel values and converting said channel values into data containing LogLikelihood Ratio values.
Typically, a variable node bank means is adapted to receive from said converter means, a set of LogLikelihood Ratio values and rearrange said values as items having designated parameters in discretely numbered blocks and sub-blocks to form a second data.
Typically, a bank selector means is adapted to select, in a predetermined manner, a block from said second data.
Typically, a location pointer means is adapted to select, in a predetermined manner, a sub-block from said second data.
Typically, a variable node computation means is provided having a storage means and a computation engine.
Typically, a check node computation means is provided having a storage means and a computation engine.
Typically, a switching network means is adapted to transfer, in a predetermined manner, a set of items along with their parameters between variable node bank means, variable node computation means, check node computation means, and check node bank means.
Typically, said computation engine of the check node computation means is adapted to receive said selected items and designated parameters and further adapted to compute in a predetermined manner, a first computed output containing a set of first computed items with first computed parameters.
Typically, a first comparating means is provided for comparing, in a predetermined manner, first computed parameters in relation to the designated parameters to provide a resultant output having a set of resultant items with resultant parameters for storage in the said check node computation means.
Typically, said computation engine of the variable node computation means is adapted to receive said set of resultant items with resultant parameters to compute in a predetermined manner, a second computed output having a set of second computed items with second computed parameters.
Typically, a second comparing means is adapted to compare, in a predetermined manner, for error between the second computed parameters and the designated parameters and selectively permit error free passage of items from the said variable node computation means to the said variable node bank means to form error free decoded data.
Typically, a transfer means is provided to transfer error free corrected data to receiver from said variable node bank means.
Typically, a loading means is provided to load said LogLikelihood Ratio values serially into the variable node bank means.
Typically, a synchronization means is provided to collectively transfer data from one location to another in a timed manner.
Typically, an iterative means is adapted to repeat the entire set of computations to obtain error free decoded data.
Typically,  the switching network is adapted to transfer said items parallelly from one location to another.
Typically, the switching network is adapted to transfer items, in a predetermined manner, from the variable node bank means to the variable node computation means in one clock cycle. 
Typically, the switching network is adapted to transfer items, in a predetermined manner, from the variable node computation means to the check node computation means in one clock cycle. 
Typically, the switching network is adapted to transfer items, in a predetermined manner, from the check node computation means to the check node bank means in multiple clock cycles. 
Typically, the switching network is adapted to transfer items, in a predetermined manner, from the check node bank means to the variable node computation means in multiple clock cycles. 
Typically, the designated parameter includes the address of an item.
Typically, a switching network is adapted for transferring the first set of said second data within the block and sub-block into check node computation means in every cycle.
Typically, the resultant parameters of an item comprise:
i. a first minimum data value;
ii. a second minimum data value;
iii. address of first minimum data value;
iv. signs of all data values;
v. product of signs of all data values;
vi. sign of first minimum data value; and 
vii. sign of second minimum data value.
Typically, said computation engine of the variable node computation means is adapted to receive the resultant parameters and is further adapted to compute the sign of each of the second computed items which forms a part of the second computed parameters.
Typically, said computation engine of the variable node computation means is adapted to receive the resultant parameters and is further adapted to compute the magnitude of each of the second computed items which forms a part of the second computed parameters.
Typically, the blocks and sub-blocks are frames and sub-frames respectively.
Typically, audio data is transmitted in blocks and sub-blocks and video data is transmitted in frames and sub-frames.
Typically, the method for error correction system for preventing loss of data during transmission comprises the following steps:
i. extracting channel values from multichannel transmitted data;
ii. converting said channel values into data containing LogLikelihod Ratio values;
iii. loading said LogLikelihood Ratio values into a storage means;
iv. rearranging a set of LogLikelihood channel values to form items having designated parameters and storing said items having designated parameters in discretely numbered blocks and sub-blocks to form a second data;
v. selecting in a predetermined manner, items and their designated parameters in a particular sub-block of a block of said second data;
vi. computing, in a predetermined manner, using said items and their designated parameters to provide a first computed output containing a set of first computed items with first computed parameters;
vii. comparing in a predetermined manner, the first computed parameters with the designated parameters to provide a resultant output having a set of resultant items with resultant parameters;
viii. computing in a predetermined manner, using resultant items and resultant parameters to provide a second computed output having a set of second computed items with second computed parameters; 
ix. comparing in a predetermined manner, the second computed parameters of the second computed output with the designated parameters to provide a set of error free decoded data;
x. selectively permitting the passage of error free decoded data to a receiver.
Typically, the LogLikelihood Ratio values is transferred serially into the said variable node bank means.
Typically, the said items are transferred parallelly from one location to another in the said error-correction system.
Typically, selection of the said block is performed by using the equation:
2007295564.tif 000048
where I is the address of an item in the said variable node bank means and z is the number of blocks in the said variable node bank means.
Typically, selection of the said sub-block is performed by using the equation:
2007295564.tif 000049
where C is the destination address of an item in the said check node bank means, and z is the number of blocks in the said variable node bank means.
Typically, first computed output with first computed parameters is computed by the following equation:
2007295564.tif 000050
where, 
En,m is the first computed output passed from the block, m, of the check node bank means to the block, n, of the connected variable node bank means,
Tn,m is the item sent from the block, n, of the variable node bank means to the block, m, of its connected check node bank means obtained by the following equations:
2007295564.tif 000051
and 
2007295564.tif 000052
In is the channel LogLikelihood Ratio value.
Typically, sign of the second computed output is calculated by using the equation:
2007295564.tif 000053
where, 
En,m is the first computed output passed from the block, m, of the check node bank means to the block, n, of the connected variable node bank means,
Tn,m is the item sent from the block, n, of the variable node bank means to the block, m, of its connected check node bank means obtained by the following equations:
2007295564.tif 000054
and 
2007295564.tif 000055
In is the channel LogLikelihood Ratio value.
Typically, the second computed means is computed in accordance with a min-sum equation.
Typically, the second computed means is computed in accordance with a min-sum equation with a weightage of 0.75.
Brief Descriptions of the Accompanying Drawings:
The invention will now be described in detail with reference to a preferred embodiment. Reference to this embodiment does not limit the scope of the invention.
Figure 1 illustrates a general transmission-receiving system;
Figure 2 illustrates a block diagram of the error correction system in accordance with this invention;
Figure 3 illustrates the architecture for the error correction system in accordance with this invention;
Figures 4 to 17 graphically illustrate a set of simulation results for the error correction system; and
Figures 18 and 19 illustrate the Field Programmable Gate Array (FPGA) implementation of the architecture of the error correction system.
Detailed Descriptions of the Accompanying Drawings:
Figure 1 of the accompanying drawings illustrates a general transmitter-receiver system. An encoder at the transmitter (T) encodes the information to be transmitted. This information is passed on via a communication path to the receiver (R) where a decoding means decodes the information. An error correcting means (C) checks whether the transmitted information is same as the received information and that there has been no loss of data. The checking means comprises an input means for receiving the transmitted data, a processing means (P) for processing the data to check whether there has been any loss or change in data, and an output means (O) for passing on the data to the receiver (R).
Figure 2 of the accompanying drawings illustrates a block diagram of the error correction system in accordance with this invention. The variable node bank means (VNBM) accepts the input data in the form of LogLikelihood Ratio values and stores it in discretely numbered blocks and sub-blocks to form a second data having designated parameters before processing. The bank selector means (BSM) selects the block and the location pointer means (LPM) selects the sub-block to select an item of the data with designated parameters. The variable node computation means (VNCM) receives the selected item of the data parallelly in clock cycles from the variable node bank means (VNBM). The variable node computation means (VNCM) comprises a storage means (SM) for temporary storage of data, a computation engine (CE) to get resultant parameters for resultant data, a comparator means (CM) to compare certain parameters of the resultant data with designated parameters, for selectively permitting passage of data to the variable node bank means (VNBM). Similarly, the check node computation means (CNCM) comprises a storage means (SM) for temporary storage of data, a computation engine (CE) to get resultant parameters for resultant data, a comparator means (CM) to compare certain parameters of the resultant data with designated parameters, for permitting passage of data to the check node bank means (CNBM). A switching network transfers the data from one location to another. A synchronisation means (SNCM) is provided which collectively times the transfer of data from one location to another in the system.
Figure 3 of the accompanying drawings illustrates the architecture for the error correction system in accordance with this invention;
The decoder shown is typically for rate 1/2 and block length 2304. The decoder comprises:
(i)            variable node bank means (10);
(ii)          check node bank means (12);
(iii)        permutation/switching network means (14);
(iv)          bank selector means (16);
(v)            location pointer means (18);
(vi)          check node computation means (20); and
(vii)        variable node computation means (22). 
The design is based on the cyclic behaviour of the codes. The number of memory banks and number of addresses stored in each bank would be required during the reconfigurability issue being addressed for different lengths and different rates.
The addresses of the neighbours of a check node and a variable node are related to a rate-dependent factor z'. Typically, for N=2304 and rate 1/2 a rate dependent factor with value 96 is selected.  A set of z nodes starting from 0th node till z-1 node there is an increment of one in the corresponding node connected, for every set of z check nodes, the address values of the variable nodes is incremented by one. Similarly for the variable nodes for every z variable nodes the address of check nodes gets incremented by one. Typically, for rate 1/2, for the first set of 96 check nodes from 0th node till 95th node, the variable node addresses for 1st node are one incremented value of that of the 0th node.  If the address obtained is 96, it becomes zero, if the address is 192, it becomes 96 and so on.  That is, there is a decrement of 96.  Based on this observation, it is decided to use 96 elements each for VN (variable node) and CN (check node) processing in the serial-parallel architecture, with a connection mechanism to take care of the wrap around problem.
The entries shown in the memory banks are the addresses of items in the variable node means (10) and check nodes (12).  Typically, 96 processing units work in parallel and fetch the inputs one-by-one based on the entries given in the bank selector means (16), which selects the bank/block and the location pointer means (18), which suggests the location of a sub-block within the selected bank/block. The number of addresses in the blocks is rate dependent. Figure 3 of the accompanying drawings shows the addresses typically for rate 1/2 and block length 2304, hence, typically, there are 2304 variable nodes and 1152 check nodes. The number of entries in the location pointer means (18) and the bank selector means (16) apart from rate dependent vary during the iterative procedure. The entries shown are for the first 96 check-node processing operations; the check nodes in this set are 0, 1, 2, …, 95 as seen in figure 3.  For the next 96 (96, 97, …, 191), different entries need to be loaded into these registers. To elaborate the iterative procedure further, assume that the entire block of 2304 received values is scaled to get appropriate Log Likelihood Ratios (LLRs) and are stored in banks or blocks as suggested by addresses. The check-node computational means (20) unit then starts processing. The check node computational means (20) gets six or seven values sequentially. For example, the six values for check node 0 are taken from first location of ninety fourth bank, second location of seventy third bank and the like. 96 check node computational means (20) can get the values this manner. Once the processing is completed, the check node computational unit (20) generates the same number of outputs as inputs and the outputs are put into the memory banks in the check node means (12) in the respective addresses.  The processing for the next 96 check nodes can then be taken up by loading different relevant entries into the bank selector and location pointer.  The inputs of the bank selector and the locations pointer are obtained from an equation of the type:
2007295564.tif 000056
Where I is the address of the variable node connected to a particular parity check node.  The entries are worked out by picking any parity-check node in the group.  Further, the above equation gives the block selector value. 
Once all the check-node processing is completed, the variable node processing starts 96 variable nodes are processed at a time, fetching the values from the variable node memory banks. The equation for computing location pointer values is:  
2007295564.tif 000057
where C is the check-node address and mod(C,z) is the block selector value. This completes the decoder architecture design and in implementation a controller is required to make sure that all the units are synchronized.
In order to reduce the memory requirement and LUT computations for obtaining LLRs, Min-Sum algorithm is a popular choice. Typically, in this algorithm only the check node (12) update rule differs from the regular Sum product algorithm, which is captured below
Check node update rule:
2007295564.tif 000058
Min-Sum algorithm are useful have the following characteristics: 
(a) Check node (12) update is replaced by a selection of the minimum input value. 
(b) Only two magnitudes need to be saved for each parity check equation. (c) No need to estimate the noise variance to compute the intrinsic information.  
The simplicity of Min-Sum is associated with a performance penalty in terms of bit error rate.  It is known that the performance penalty is due to over estimation of extrinsic information (compared to the regular Sum-Product and hence compensation in terms of subtraction (offset) or multiplication (normalized) is suggested. Based on the extensive simulation studies carried out in accordance with this invention, it was found that a factor of 0.75 multiplication of the variable node outputs result in performance of the (compensated) min-sum algorithm close to that of the regular sum-product algorithm. This factor can be simply implemented in the VCUs (22) by multiplying the output by 0.5 and 0.25 (both are shift operations) and adding the results to get the compensated values.           
The semi-parallel implementation of the Min-Sum algorithm in the proposed decoder comprises the following steps:
Step 1: A channel value extracting means extracts channel values from the multichannel transmitted data and relays the channel values to a converter means. the converter means converts said channel values into data containing LogLikelihood Ratio values. A variable node bank means (10) is adapted to receive from said converter means, a set of LogLikelihood Ratio values and it rearranges the said values as items having designated parameters in discretely numbered blocks and sub-blocks to form a second data. This step is serial processing.
Step 2: A bank selector means (16) is adapted to select, in a predetermined manner, a block from said second data, and a location pointer means (18) is adapted to select, in a predetermined manner, a sub-block from said second data resident in the variable node memory bank means (10) that are connected to the check node memory bank means (12) which are under updation. Since, typically 96 separate memory banks are present, parallelly 96 values can be fetched and are given as input to switching network (14).
Step 3: Switching network (14) takes values from all the 96 variable node memory banks (10) and performs proper shifting operation depending on the addresses of the variable nodes (10) that are connected to check nodes (12) those are under updation. Switching is done parallelly on 96 input values and within a clock cycle it gives shifted version of its input values. Switching network (14) output (96 values which are nothing but shifted version of 96 input values) is given to 96 check node functional units (20).
Step 4: The computation engine of the check node computation means (20) is adapted to receive selected items and designated parameters and further adapted to compute, in a predetermined manner, a first computed output containing a set of first computed items with first computed parameters. A first comparator means is provided for comparing, in a predetermined manner, first computed parameters in relation to the designated parameters to provide a resultant output having a set of resultant items with resultant parameters for storage in said check node computation means (12).
Each check node functional unit (20) takes one input value at every clock cycle and performs computation. If degree of check node (12) which is under updation is "k" then check node functional unit (20) takes "k" clock cycles to give its output. Each input value for individual functional unit is given sequentially. Since 96 functional units are available, 96 outputs of all functional units can be obtained in "k" clock cycles. Output of each functional unit consists of first minimum among its inputs, second minimum among its inputs, first minimum address, signs of all input values and product of signs of all input values.
Check node computational means (20) takes one input at a time sequentially in each clock cycle. Each value is Tn. Each check node computational means (20) fetches "k" number of Tn values from variable node (10) memory banks (each in one clock cycle) and one entire relevant check node (12) value which consists of first minimum(min 1), second minimum(min2), first minimum address(min1address), signs of all input values and product of signs of all input values.  These can be used to generate En,m values as follows.
The check node computational unit (20) compares min1address with the variable node (10) address from which current Tn value has been fetched. If it is matched, then min2 is actual magnitude of En,m otherwise min1 is considered as actual magnitude. The sign of it is obtained by multiplying the overall sign with the sign information of previous iteration. With this it finds +min1 or min1 or +min2 or min2. To start with all the check node (12) memory bank values are initialized to zeros (zero corresponds to positive sign). Separate buses are provided to check node functional unit (20) for fetching Tn and En,m values from variable node (10) and check node (12) memory banks respectively. So both  and  can be fetched parallelly. At each clock cycle En,m value is subtracted from Tn to get Tn,m: 
2007295564.tif 000059
Step 5: Outputs of all 96 functional units are written parallelly into 96 check node (12) memory banks. This completes the updation of one set of 96 check nodes (12). These 96 check node functional units (20) will be repeatedly operated for 12 times to complete updation of 12 sets of 96 check nodes (12*96=1152), completing the check node (12) processing (first half iteration). It takes at most k*12 clock cycles.
Step 6: After completion of check node (12) processing, the next step is to fetch values from check node (12) memory banks, which are required for variable node (10) processing. 
The computation engine of the variable node computation means (22) is adapted to receive a set of resultant items with resultant parameters to compute, in a predetermined manner, a second computed output having a set of second computed items with second computed parameters. A second comparator means is adapted to compare, in a predetermined manner, for error between the second computed parameters and the designated parameters and selectively permit error free passage of items from the said variable node computation means (22) to the said variable node bank means (10) to form error free decoded data.
Similar to check node (12) processing, in variable node (10) processing also, 96 values are fetched parallelly from 96 check node memory (12) banks and are given to switching network means (14).
Step 7: The outputs of switching network (14) (shifted version of input values) are given to variable node functional units (22).
Step 8: Each individual variable node functional unit (22) takes each input sequentially and performs computation and gives the output in "x" number of clock cycles, if "x" is the degree of variable node that is under updation. 
Variable node functional unit (22) takes "x" number of input values from check node (12) memory banks sequentially (one at a time). It derives +min1 or min1 or +min2 or min2 from check node (12) memory values in the same way as explained in check node (12) processing. i.e variable node (10) processor compares min1addr with the variable node (10) address which is under updation. If it matches, magnitude of En,m is considered as min2 otherwise min1. The sign of En,m is obtained by multiplying the overall sign with its relevant individual sign information in the check node (12) memory. The obtained En,m values are accumulated with the intrinsic information of that variable node (10) and result is stored in variable node (10) memory bank. Writing the result of variable node functional unit (22) into the corresponding variable node (10) memory location represents the updation of that particular variable node (10).     
Step 9: Since 96 such functional units are there in the architecture, outputs of all 96 variable node functional units (22) are written parallelly into 96 variable node (10) memory banks.        
Step 10: These 96 functional units are operated typically for 24 times to complete variable node (10) processing (second half iteration).
Step 11: This check node (12) processing and variable node (10) processing is repeated for maximum number of iterations
Figures 4 to 17 graphically illustrate a set of simulation results.
The simulation study has been carried out for block lengths 576, 1440, and 2304 (lowest, intermediate and maximum in the standard) as well as for rates1/2, 2/3 and 3/4. Some typical simulation results showing both the bit error rate (BER) and frame error rate (FER) are plotted against energy per bit, Eb/N0, for AWGN case, the results are for all-zero code word. The results confirmed the facts i.e. performance improves as the frame length increases for a given rate and for a given length performance improves with the decrease in rate. For λ−Min algorithm the value of λ is chosen as 3. It was observed that both the λ−min and A-Min* algorithms performed close to the regular sum-product algorithm, but with more complexity than Min-Sum. The Min-Sum algorithm had some performance penalty of about 0.5 dB. If the compensation factor of 0.75 is used, as mentioned earlier, the performance of Min-Sum algorithm can be brought closer to the regular BP algorithm as seen in Figures 13,14,15,16 of the accompanying drawings. Similar results were observed with randomly generated codewords.
Figure 4 illustrates a graph of Bit Error Rate (BER) Vs Energy per Bit in dB (Eb/No) for block length, n= [2304/1440/576] and rate, r=1/2 (typically in Mbps);
Figure 5 illustrates a graph of Bit Error Rate (BER) Vs Energy per Bit in dB (Eb/No) for block length, n= [2304/1440/576] and rate, r=2/3A (typically in Mbps), where A is the first weighting factor;
Figure 6 illustrates a graph of Bit Error Rate (BER) Vs Energy per Bit in dB (Eb/No) for block length, n= [2304/1440/576] and rate, r=2/3B (typically in Mbps) where B is the second weighting factor;
Figure 7 illustrates a graph of Bit Error Rate (BER) Vs Energy per Bit in dB (Eb/No) for block length, n= [2304/1440/576] and rate, r=3/4A (typically in Mbps) where A is the first weighting factor;
Figure 8 illustrates a graph of Bit Error Rate (BER) Vs Energy per Bit in dB (Eb/No) for block length, n= [2304/1440/576] and rate, r=3/4B (typically in Mbps) where B is the second weighting factor;
Figure 9 illustrates a graph of Frame Error Rate (FER) Vs Energy per Bit in dB (Eb/No) for block length, n= [2304/1440/576] and rate, r=1/2 (typically in Mbps);
Figure 10 illustrates a graph of Frame Error Rate (FER) Vs Energy per Bit in dB (Eb/No) for block length, n= [2304/1440/576] and rate, r=2/3A (typically in Mbps) where A is the first weighting factor;
Figure 11 illustrates a graph of Frame Error Rate (FER) Vs Energy per Bit in dB (Eb/No) for block length, n= [2304/1440/576] and rate, r=2/3B (typically in Mbps) where B is the second weighting factor;
Figure 12 illustrates a graph of Frame Error Rate (FER) Vs Energy per Bit in dB (Eb/No) for block length, n= [2304/1440/576] and rate, r=3/4A (typically in Mbps) where A is the first weighting factor;
Figure 13 illustrates a graph of Frame Error Rate (FER) Vs Energy per Bit in dB (Eb/No) for block length, n= [2304 1440 576] and rate, r=3/4B (typically in Mbps) where B is the second weighting factor;
Figure 14 illustrates a graph of Bit Error Rate (BER) Vs Energy per Bit in dB (Eb/No) for block length, n= [2304/1440/576] and rate, r=1/2 (typically in Mbps);
Figure 15 illustrates a graph of Bit Error Rate (BER) Vs Energy per Bit in dB (Eb/No) for block length, n= [2304] and rates, r=1/2& r=2/3A (typically in Mbps) where A is the first weighting factor;
Figure 16 illustrates a graph of Frame Error Rate (FER) Vs Energy per Bit in dB (Eb/No) for block length, n= [2304/1440/576] and rate, r=1/2 (typically in Mbps);
Figure 17 illustrates a graph of Frame Error Rate (FER) Vs Energy per Bit in dB (Eb/No) for block length, n= [2304] and rates, r=1/2 & 2/3A (typically in Mbps) where A is the first weighting factor;
Figures 18 and 19 of the accompanying drawings illustrate the Field Programmable Gate Array (FPGA) Implementation of the Novel Architecture.
The waveforms relevant to functional verification simulation are shown in Figure 18 and Figure 19, wherein Figure 18 illustrates Input Waveforms and Fig.19 illustrates Output Waveforms (after 10 Iterations). The waveforms are for Eb/N0 of 3.5 dB with 16 bits quantization (1 sign bit, 4 integer bits and 11 fractional bits). 
An FPGA implementation of the novel architecture is carried out for the case of frame length 576 and code rate 1/2. The decoding algorithm used was the compensated Min-Sum algorithm. The following Table gives the details of the Target device (FPGA) which was used in the laboratory.
2007295564.tif 000060
The check-node portion of the decoder architecture comprises of the check-node RAM and Check-node processors (computational units).  Similarly, the variable-node portion comprises the variable-node RAM and the variable-node processors.
Check node values, which are updated by check node processors, are stored in the check-node RAM. This memory block stores the information about the check node values (such as min1, min2, min1addr and sign bits). Check node RAM also consists of memory bank, the depth of which depends on the code rate.  The check node processors fetch their input values parallely from variable node memory bank and perform the operation on them. The results of all these processors are stored in Check node RAM parallely. Location pointer and Bank selector values are given to each and every processor whose values are used during the computation. Switching network, its main component in the implementation being barrel shifter, takes care of the connections between RAMs and processing elements. Location Pointer entries (addresses) are used to fetch the values from memory banks and those fetched values are given as the inputs to the switching network. Contents of bank selector are given as input to the selection bits of multiplexers of barrel shifter. Depending on the address given to selection bits of barrel shifter, the shifting operation will be done accordingly and the result of shifted input information of barrel shifter will be stored in output latches of switching network. 
Variable node RAM consists of memory banks whose depth depends on the code block length. The port bus from each of the banks is connected to switching network. Data that is to be fetched from an individual memory bank is dependent on the Location Pointer value. Initially before the start of decoding process, the memory banks are loaded with channel values. After the commencement of decoding process these are loaded with results obtained by variable node processors. The interfacing description of Variable node processors is very much similar to Check node processors. 
In the following, few details about resource utilization (on FPGA) and timing are provided.
Resource Utilization:
Total equivalent gate count for design:  5,715,703
The following Table gives the Resource Utilization summary of the design on FPGA.
2007295564.tif 000061
Timing Summary:
Minimum period: 8.127ns
Minimum input arrival time before clock: 7.888ns
Maximum output required time after clock: 4.961ns
Maximum combinational path delay: 2.485ns
The Maximum Frequency of operation of the design is found to be 123.047Mhz
While considerable emphasis has been placed herein on the various components of the preferred embodiment, it will be appreciated that many alterations can be made and that many modifications can be made in the preferred embodiment without departing from the principles of the invention. These and other changes in the preferred embodiment as well as other embodiments of the invention will be apparent to those skilled in the art from the disclosure herein, whereby it is to be distinctly understood that the foregoing descriptive matter is to be interpreted merely as illustrative of the invention and not as a limitation.
Claims:
1) An error correction system for decoding transmitted data in multichannels, said system comprising the following:
i. a channel value extracting means for extracting channel values from said multichannel transmitted data and relaying said channel values;
ii. a converter means for receiving said channel values and converting said channel values into data containing LogLikelihood Ratio values; 
iii. a variable node bank means adapted to receive from said converter means, a set of LogLikelihood Ratio values and rearrange said values as items having designated parameters in discretely numbered blocks and sub-blocks to form a second data;
iv. a bank selector means adapted to select, in a predetermined manner, a block from said second data,
v. a location pointer means adapted to select, in a predetermined manner, a sub-block from said second data;
vi. a variable node computation means having a storage means and a computation engine;
vii. a check node computation means having a storage means and a computation engine;
viii. a switching network means adapted to transfer, in a predetermined manner, a set of items along with their parameters between variable node bank means, variable node computation means, check node computation means, and check node bank means;
ix. said computation engine of the check node computation means adapted to receive said selected items and designated parameters and further adapted to compute, in a predetermined manner, a first computed output containing a set of first computed items with first computed parameters;
x. a first comparing means for comparing, in a predetermined manner, first computed parameters in relation to the designated parameters to provide a resultant output having a set of resultant items with resultant parameters for storage in said check node computation means;
xi. said computation engine of the variable node computation means adapted to receive said set of resultant items with resultant parameters to compute, in a predetermined manner, a second computed output having a set of second computed items with second computed parameters;
xii. second comparing means adapted to compare, in a predetermined manner, for error between the second computed parameters and the designated parameters and selectively permit passage of error free items from the said variable node computation means to the said variable node bank means to form error free decoded data;
xiii. transfer means to transfer error free decoded data to a receiver from said variable node bank means.
2) The error correction system as claimed in claim 1 wherein, a loading means is provided to load said LogLikelihood Ratio values serially into the variable node bank means.
3) The error correction system as claimed in claim 1 wherein, a synchronization means is provided to collectively transfer items from one location to another in a timed manner.
4) The error correction system as claimed in claim 1 wherein, an iterative means is adapted to repeat the entire set of computations to obtain error free decoded data.
5) The error correction system as claimed in claim 1 wherein, the switching network is adapted to transfer said items parallelly from one location to another.
6) The error correction system as claimed in claim 1 wherein, the switching network is adapted to transfer items, in a predetermined manner, from the variable node bank means to the variable node computation means in one clock cycle. 
7) The error correction system as claimed in claim 1 wherein, the switching network is adapted to transfer items, in a predetermined manner, from the variable node computation means to the check node computation means in one clock cycle. 
8) The error correction system as claimed in claim 1 wherein, the switching network is adapted to transfer items, in a predetermined manner, from the check node computation means to the check node bank means in multiple clock cycles. 
9) The error correction system as claimed in claim 1 wherein, the switching network is adapted to transfer items, in a predetermined manner, from the check node bank means to the variable node computation means in multiple clock cycles. 
10) The error correction system as claimed in claim 1 wherein, the designated parameter includes the address of an item.
11) The error correction system as claimed in claim 1 wherein, a switching network is adapted for transferring the first set of said second data within the block and sub-block into check node computation means in every cycle.
12) The error correction system as claimed in claim 1 wherein, the said resultant parameters of an item comprise:
i)  a first minimum data value;
ii) a second minimum data value;
iii)address of first minimum data value;
iv) signs of all data values;
v) product of signs of all data values;
vi) sign of first minimum data value; and 
viii)sign of second minimum data value.
13) The error correction system as claimed in claim 12 wherein, the said computation engine of the variable node computation means is adapted to receive the resultant parameters and is further adapted to compute the sign of each of the second computed items which forms a part of the second computed parameters.
14) The error correction system as claimed in claim 1 wherein, the said computation engine of the variable node computation means is adapted to receive the resultant parameters and is further adapted to compute the magnitude of each of the second computed items which forms a part of the second computed parameters.
15) The error correction system as claimed in claim 1 wherein, said blocks and said sub-blocks are frames and sub-frames respectively.
16) A method of error correction for decoding transmitted data in multichannels,said method comprising the following steps:
i. extracting channel values from multichannel transmitted data;
ii. converting said channel values into data containing LogLikelihood Ratio values;
iii. loading said LogLikelihood Ratio values into a storage means;
iv. rearranging said LogLikelihood Ratio values to form items having designated parameters and storing said items having designated parameters in discretely numbered blocks and sub-blocks to form a second data;
v. selecting in a predetermined manner, items and their designated parameters in a particular sub-block of a block of said second data;
vi. computing, in a predetermined manner, using said items and their designated parameters to provide a first computed output containing a set of first computed items with first computed parameters;
vii. comparing in a predetermined manner, the first computed parameters with the designated parameters to provide a resultant output having a set of resultant items with resultant parameters;
viii. computing in a predetermined manner, using resultant items and resultant parameters to provide a second computed output having a set of second computed items with second computed parameters; 
ix. comparing in a predetermined manner, the second computed parameters of the second computed output with the designated parameters to provide a set of error free decoded data;
x. selectively permitting the passage of error free decoded data to a receiver.
17) A method of error correction as claimed in claim 16 wherein, said LogLikelihood Ratio values are transferred serially into the said variable node bank means.
18) A method of error correction as claimed in claim 16 wherein, said items are transferred parallelly from one location to another in the said error correction system.
19) An error correction system as claimed in claim 16 wherein, said selection of block is performed by using the equation:
2007295564.tif 000062
where I is the address of an item in the said variable node bank means and z is the number of blocks in the said variable node bank means.
20) An error correction system as claimed in claim 16 wherein, said selection of sub-block is performed by using the equation:
2007295564.tif 000063
where C is the destination address of an item in the said check node bank means, and z is the number of blocks in the said variable node bank means.
21) An error correction system as claimed in claim 16 wherein, the second computed output is computed in accordance with a min-sum equation.
22) An error correction system as claimed in claim 16 wherein, the second computed output is computed in accordance with a min-sum equation with a weightage of 0.75.
23) An error correction system for decoding transmitted data in multichannels as described herein with reference to the accompanying drawings.
24) A method for error correction for decoding transmitted data in multichannels as described herein with reference to the accompanying drawings.
ABSTRACT
An error correction system for decoding transmitted data in multichannels is disclosed. The system uses low density parity check nodes. A method of error correction using LDPC is also disclosed. 
【図１】
2007295564.tif 000064
【図２】
2007295564.tif 000065
【図３】
2007295564.tif 000066
【図４】
2007295564.tif 000067
【図５】
2007295564.tif 000068
【図６】
2007295564.tif 000069
【図７】
2007295564.tif 000070
【図８】
2007295564.tif 000071
【図９】
2007295564.tif 000072
【図１０】
2007295564.tif 000073
【図１１】
2007295564.tif 000074
【図１２】
2007295564.tif 000075
【図１３】
2007295564.tif 000076
【図１４】
2007295564.tif 000077
【図１５】
2007295564.tif 000078
【図１６】
2007295564.tif 000079
【図１７】
2007295564.tif 000080
【図１８】
2007295564.tif 000081
【図１９】
2007295564.tif 000082