JP4320418B2 - 復号装置および受信装置 - Google Patents

復号装置および受信装置 Download PDF

Info

Publication number
JP4320418B2
JP4320418B2 JP2005278429A JP2005278429A JP4320418B2 JP 4320418 B2 JP4320418 B2 JP 4320418B2 JP 2005278429 A JP2005278429 A JP 2005278429A JP 2005278429 A JP2005278429 A JP 2005278429A JP 4320418 B2 JP4320418 B2 JP 4320418B2
Authority
JP
Japan
Prior art keywords
check
variable
message
data
register
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005278429A
Other languages
English (en)
Other versions
JP2007089064A (ja
Inventor
典史 神谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2005278429A priority Critical patent/JP4320418B2/ja
Priority to PCT/JP2006/318728 priority patent/WO2007034870A1/ja
Priority to EP06810388.6A priority patent/EP1940032B1/en
Priority to CN2006800354137A priority patent/CN101273532B/zh
Priority to US12/088,142 priority patent/US8074142B2/en
Priority to RU2008116679/09A priority patent/RU2391774C2/ru
Publication of JP2007089064A publication Critical patent/JP2007089064A/ja
Application granted granted Critical
Publication of JP4320418B2 publication Critical patent/JP4320418B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6577Representation or format of variables, register sizes or word-lengths and quantization
    • H03M13/658Scaling by multiplication or division
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1117Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1117Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
    • H03M13/1122Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule storing only the first and second minimum values per check node
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/1134Full parallel processing, i.e. all bit nodes or check nodes are processed in parallel
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • H03M13/6505Memory efficient implementations

Description

本発明は、受信データ系列を一定長のブロックに分割し、各ブロック毎独立に冗長系列を付加するブロック誤り訂正の復号装置および復号装置を含む受信装置であって、特に低密度パリティ検査(LDPC)符号の復号装置および復号装置を含む受信装置に関する。
衛星通信システムや移動体通信システム等では、所要電力の低減やアンテナの小型化などのシステム構成上の要件を満たすため、大きな符号化利得を有する誤り訂正符号化技術の導入が行われている。低密度パリティ検査符号は、非常に大きな符号化利得を有する誤り訂正符号として知られており、各種の通信システムや、磁気記録などの記憶装置への導入が進んでいる。
低密度パリティ検査符号は、単に一つの誤り訂正符号化方式を示すのではなく、検査行列が疎である(行列中の成分のほとんどが0であり、1である成分の数が非常に少ない)という特徴をもった誤り訂正符号の総称である。
そして、疎な検査行列の選択によって、サム・プロダクト(sum−product)アルゴリズムや、ミン・サム(min−sum)アルゴリズムなどの繰り返し復号方式を用いることにより、理論限界に近い非常に大きな符号化利得を持つ誤り訂正符号化方式を構成することが可能であるという特徴をもっている(例えば、非特許文献1、および非特許文献2参照。)。
低密度パリティ検査符号の復号装置は、変数ノード処理装置による変数−チェックメッセージの更新と、チェックノード処理装置によるチェック−変数メッセージの更新とを交互に行い、一定回数各メッセージを更新した後、チェック−変数メッセージと受信データとから送信データの推定結果を得る(例えば、非特許文献2および非特許文献3参照。)。
ロバート・ギャラガ(Robert G. Gallager)著、「ロー・デンシティ パリティ・チェック コーズ(Low−Density Parity−Check Codes)」、(米国)、エムアイティー・プレス(MIT Press)、1963年、p.39−56 デビッド・マッカイ(David J. C. MacKay)著、「グット エラー・コレクティング コーズ ベースト オン ベリー スパース メトリシィーズ(Good Error−Correcting Codes Based on Very Sparse Matrices)、(米国)、アイトリプルイー トランザクションズ オン インフォメーション セオリー(IEEE Transactions on Information Theory)、Vol.45、No2、1999年3月、p399−431 ジング・チェン(Jinghu Chen)、マーク・フォッソリア(Marc P. C. Fossorier)著、「ニア オプティマム ユニヴァーサルビリーフ プロパゲーション ベースト デコーディング オブ ローデンシティ パリティチェック コーズ(Near Optimun Universal Belief Propagation Based Decoding of Low−Density Parity Check Codes)」、(米国)、アイトリプルイー トランザクションズ オン コミュニケーションズ(IEEE Transactions on Communications)、Vol.50、No.3、2002年3月、p.406−414
低密度パリティ検査符号の復号方式の技術的な問題点として、復号処理の過程で生じるデータの記憶用に多くのランダムアクセスメモリ(RAM)を必要とする点や、RAMのアクセス速度によって復号処理全体の速度が制限される点などがある。
具体的には、低密度パリティ検査符号の復号処理は、2種類の処理装置によるメッセージの更新からなり、メッセージを一時的に蓄えておく記憶装置は必要不可欠である。そして、検査行列中の1の数に比例した個数のメッセージがあり、これを記憶装置としてのRAMが保持した場合、多くのRAMが必要になり、復号処理のスループットがRAMへのアクセス速度で制限されるという問題がある。
また、RAMの個数を削減するためには同時アクセス可能なメッセージの制限を伴うため、メッセージ更新のスケジュールや、アドレス生成を細かく調整する必要があり、装置構成が複雑となるという問題がある。
そこで、本発明は、低密度パリティ検査符号の復号処理を高速に行い、構成が単純で小規模な復号装置および復号装置を含む受信装置を提供することを目的とする。
本発明による復号装置は、誤り訂正符号化方式における疑似巡回型低密度パリティ検査符号を復号し、復号結果である推定送信ビット列を出力する復号装置であって、複数のレジスタを有する所定の段数のフィードバックシフトレジスタを複数個含み、受信データ列を入力し、対数尤度比と事前値との和を含むデータである変数−チェックメッセージと、推定送信ビット列とを生成して出力する変数−チェックメッセージ生成手段と、複数のレジスタを有する所定の段数のフィードバックシフトレジスタを複数個含み、変数−チェックメッセージ生成手段が出力した変数−チェックメッセージが入力されると、入力された変数−チェックメッセージに応じて生成したデータを含むチェック−変数メッセージを出力するチェック−変数メッセージ生成手段と、チェック−変数メッセージ生成手段が出力したチェック−変数メッセージが含む所定のデータに、予め決められた定数を乗じて変数−チェックメッセージ生成手段に入力する正規化演算手段とを備え、変数−チェックメッセージ生成手段は、当該変数−チェックメッセージ生成手段が含むフィードバックシフトレジスタが有するレジスタに保存されたデータのうち、所定のデータに、チェック−変数メッセージ生成手段の出力に対応するデータを加算して次の段のレジスタに保存し、所定のタイミングで、レジスタが保存しているデータである変数−チェックメッセージおよび推定送信ビット列を出力する変数−チェック演算手段を含み、チェック−変数メッセージ生成手段は、当該チェック−変数メッセージ生成手段が含むフィードバックシフトレジスタが有するレジスタに保存されたデータのうちの2つと、変数−チェックメッセージ生成手段が出力したデータとのうち、値が最も小さいデータと、2番目に小さいデータとを選択して次の段のレジスタに保存し、所定のタイミングで、レジスタが保存しているデータをチェック−変数メッセージとして出力するチェック−変数演算手段を含み、変数−チェック演算手段は、変数−チェックメッセージ生成手段が含むフィードバックシフトレジスタが有するレジスタ間にそれぞれ設置され、チェック−変数演算手段は、チェック−変数メッセージ生成手段が含むフィードバックシフトレジスタが有するレジスタ間にそれぞれ設置されることを特徴とする。
変数−チェックメッセージ生成手段は、当該変数−チェックメッセージ生成手段が含むフィードバックシフトレジスタの動作クロックに同期した第1のクロックカウンタを含み、チェック−変数メッセージ生成手段は、当該チェック−変数メッセージ生成手段が含むフィードバックシフトレジスタの動作クロックに同期した第2のクロックカウンタを含み、変数−チェック演算手段は、変数−チェックメッセージ生成手段が含むレジスタに保存されたデータの一部に加算するデータを、第1のクロックカウンタの値に応じて選択し、チェック−変数メッセージ生成手段のレジスタは、第2のクロックカウンタがカウントした値を記憶し、チェック−変数演算手段は、変数−チェックメッセージ生成手段の出力に対応するデータが最も小さい値となった時に、レジスタが記憶している第2のクロックカウンタがカウントした値に対応する数値を出力して、次の段のレジスタに保存してもよい。
変数−チェックメッセージ生成手段は、当該変数−チェックメッセージ生成手段が含むフィードバックシフトレジスタの動作クロックに同期した第1のクロックカウンタを含み、チェック−変数メッセージ生成手段は、当該チェック−変数メッセージ生成手段が含むフィードバックシフトレジスタの動作クロックに同期した第2のクロックカウンタを含み、変数−チェック演算手段は、変数−チェックメッセージ生成手段が含むフィードバックシフトレジスタが有するレジスタに保存されたデータの一部に加算するデータを第1のクロックカウンタの値と、変数−チェックメッセージ生成手段のレジスタに割り当てられた数値とに応じて選択し、チェック−変数メッセージ生成手段のレジスタは、第2のクロックカウンタがカウントした値を記憶し、チェック−変数演算手段は、変数−チェックメッセージ生成手段の出力に対応するデータが最も小さい値となった時に、レジスタが記憶している第2のクロックカウンタがカウントした値と、変数−チェックメッセージ生成手段のレジスタに割り当てられた数値との組を出力して、次の段のレジスタに保存してもよい。
変数−チェックメッセージ生成手段、およびチェック−変数メッセージ生成手段は、変数−チェックメッセージの生成および出力と、チェック−変数メッセージの生成および出力とをそれぞれ所定の回数繰り返し、変数−チェックメッセージ生成手段は、所定の回数変数−チェックメッセージの生成を繰り返してから、推定送信ビット列を出力してもよい。
変数−チェックメッセージ生成手段は、疑似巡回型低密度パリティ検査符号の検査行列を構成する巡回行列のサイズと同数のレジスタと変数−チェック演算手段とをそれぞれ含み、チェック−変数メッセージ生成手段は、疑似巡回型低密度パリティ検査符号の検査行列を構成する巡回行列のサイズと同数のレジスタとチェック−変数演算手段とそれぞれを含んでもよい。
本発明による受信装置は、誤り訂正符号化方式における疑似巡回型低密度パリティ検査符号を復号し、推定送信ビット列を出力する復号装置を備えた受信装置であって、受信した情報を復調して出力する復調器と、復調器の出力データを復号装置に応じた形式の入力データに変換し、フレーム同期をとって復号装置に出力する同期制御−データ変換装置とを備え、復号装置は、複数のレジスタを有する所定の段数のフィードバックシフトレジスタを複数個含み、受信データ列を入力し、対数尤度比と事前値との和を含むデータである変数−チェックメッセージと、推定送信ビット列とを生成して出力する変数−チェックメッセージ生成手段と、複数のレジスタを有する所定の段数のフィードバックシフトレジスタを複数個含み、変数−チェックメッセージ生成手段が出力した変数−チェックメッセージが入力されると、入力された変数−チェックメッセージに応じて生成したデータを含むチェック−変数メッセージを出力するチェック−変数メッセージ生成手段と、チェック−変数メッセージ生成手段が出力したチェック−変数メッセージが含む所定のデータに、予め決められた定数を乗じて変数−チェックメッセージ生成手段に入力する正規化演算手段とを含み、変数−チェックメッセージ生成手段は、当該変数−チェックメッセージ生成手段が含むフィードバックシフトレジスタが有するレジスタに保存されたデータのうち、所定のデータに、チェック−変数メッセージ生成手段の出力に対応するデータを加算して次の段のレジスタに保存し、所定のタイミングで、レジスタが保存しているデータである変数−チェックメッセージおよび推定送信ビット列を出力する変数−チェック演算手段を含み、チェック−変数メッセージ生成手段は、当該チェック−変数メッセージ生成手段が含むフィードバックシフトレジスタが有するレジスタに保存されたデータのうちの2つと、変数−チェックメッセージ生成手段が出力したデータとのうち、値が最も小さいデータと、2番目に小さいデータとを選択して次の段のレジスタに保存し、所定のタイミングで、レジスタが保存しているデータをチェック−変数メッセージとして出力するチェック−変数演算手段を含み、変数−チェック演算手段は、変数−チェックメッセージ生成手段が含むフィードバックシフトレジスタが有するレジスタ間にそれぞれ設置され、チェック−変数演算手段は、チェック−変数メッセージ生成手段が含むフィードバックシフトレジスタが有するレジスタ間にそれぞれ設置されることを特徴とする。
本発明によれば、RAMを使用しないため、高速で低密度パリティ検査符号の復号処理を行うことができる。
また、チェック−変数演算手段が、変数−チェックメッセージ生成手段の出力に対応するデータが最も小さい値となった時に、レジスタが記憶している第2のクロックカウンタがカウントした値に対応する数値を出力するように構成されている場合には、復号装置全体の装置規模を縮小することができる。
また、チェック−変数演算手段が、変数−チェックメッセージ生成手段の出力に対応するデータが最も小さい値となった時に、レジスタが記憶している第2のクロックカウンタがカウントした値と、変数−チェックメッセージ生成手段のレジスタに割り当てられた数値との組を出力するのように構成されている場合には、高精度なチェック−変数メッセージを生成することができる。
実施の形態1.
本発明の復号装置の第1の実施の形態について、図面を参照して説明する。図1は、本発明による復号装置の第1の実施の形態の一構成例を示すブロック図である。
本発明による復号装置は、変数−チェックメッセージ生成部(変数−チェックメッセージ生成手段)11、チェック−変数メッセージ生成部(チェック−変数メッセージ生成手段)12、および正規化演算部(正規化演算手段)13を含む。
変数−チェックメッセージ生成部11には、復号装置が接続されている通信回線から、受信データ系列が入力される。一般に、受信データには雑音などによる誤りが生じているため、復号装置は、送信ビット列を推定し、推定した送信ビット列である推定送信ビット列を出力する。
擬似巡回型低密度パリティ検査符号は検査行列の形によって特徴づけられる。擬似巡回型低密度パリティ検査符号の検査行列は、(式1)に示すようにa×a巡回行列を成分とするm×nブロック行列となる(a,m,nは正の整数を表している)。
Figure 0004320418
ここで(式1)のHi,jは次の(式2)に記したa×a巡回行列を表している。(iは0からm−1の間の整数を表し、jは0からn−1の間の整数を表している)。
Figure 0004320418
巡回行列は、(式2)に示したように、第2行目の行ベクトルが第1行目の行ベクトルを1ビット左に巡回したものである。以下、第k行目の列ベクトルは(kは2からnの間の整数を表している)、第1行目の行ベクトルをk−1ビット左に巡回したものである。
以下、検査行列が(式1)の行列となる擬似巡回型の低密度パリティ検査符号の復号装置について説明する。
変数−チェックメッセージ生成部11には、通信回線から入力される受信データ系列、および正規化演算部13を介してチェック−変数メッセージ生成部12の出力が入力される。チェック−変数メッセージ生成部12の出力は、検査行列の行ブロック数mと同数の種類に分類されたデータ系列からなる。なお、チェック−変数メッセージ生成部12の出力については後述する。
図2は、変数−チェックメッセージ生成部11の一構成例を示すブロック図である。変数−チェックメッセージ生成部11は、検査行列の列ブロックの総数nと同数の変数−チェックレジスタブロック21と、加算器23と、変数−チェックレジスタブロック21が含むレジスタ31のクロックに同期したカウンタであるカウンタブロック(第1のクロックカウンタ)22を含む。
各変数−チェックレジスタブロック21へは、正規化演算部13を介して、後述するチェック−変数メッセージ生成部12の出力が入力される。そして、各変数−チェックレジスタブロック21の出力は、その変数−チェックレジスタブロック21に対応する検査行列の列ブロックに相当する、各受信データ列の一部分に加算器23で加算され、その加算結果が変数−チェックメッセージ生成部11の出力になる。変数−チェックレジスタブロック21は、検査行列の列ブロックの総数nと同数あり、変数−チェックメッセージ生成部11の出力は、各変数−チェックレジスタブロック21の出力に対応したn個の系統からなる。
図3は、変数−チェックレジスタブロック21の一構成例を示すブロック図である。変数−チェックレジスタブロック21は、検査行列を構成する巡回行列のサイズと同数のa個のレジスタ31と、レジスタ31間に配置された変数−チェック演算器ブロック(変数−チェック演算手段)32と、結線スイッチ33と、出力スイッチ34とを含む。なお、巡回行列のサイズとは巡回行列の行数または列数をいう。ここで、巡回行列は正方行列なので行数と列数とは同じである。
各レジスタ31は、各変数−チェック演算器ブロック32を介して直列に接続されている。そして、最後段のレジスタ31に出力スイッチ34が接続されている。出力スイッチ34は、最後段のレジスタ31の出力を、最前段のレジスタ31の入力にフィードバックし、所定の回数フィードバックすると加算器23に出力するように切り替える。
なお、レジスタの出力が後段のレジスタに入力されるように直列に接続され、最後段のレジスタの出力を最前段のレジスタの入力にフィードバックするように接続されているブロックを、フィードバックシフトレジスタという。
変数−チェックレジスタブロック21には、検査行列の行ブロック数と同数のm系統のデータ列が入力され、すべてのデータが入力されると、出力スイッチ34が切り替わり、a個のレジスタ31が保存しているデータの一部を順次出力する。
結線スイッチ33は、変数−チェックレジスタブロック21への入力を変数−チェック演算器ブロック32に入力するか否かを、検査行列によって予め定められたm個のそれぞれがaビットからなるビット列h (i),h (i),・・・,ha−1 (i)によって定める(iは0からm−1の間の整数を表している)。すなわち、結線スイッチ33は、変数−チェックレジスタブロック21の入力端(図示せず)と、各変数−チェック演算器ブロック32との間を結線するか否かによって、変数−チェックレジスタブロック21への入力を変数−チェック演算器ブロック32に入力するか否かを定める。
具体的には、例えば、h (i)が1であった時は、図3において、h (i)と記された部分を結線し、0であった時はh (i)と記された部分を結線しない(kは、0からa−1の間の整数を表している)。変数−チェックレジスタブロック21は、結線数と同じ数の変数−チェック演算器ブロック32を含む。このm個のaビットのビット列h (i)、h (i)、・・・、ha−1 (i)(i=0,1,・・・,m−1)の選択方法については後述する。
図4は、変数−チェック演算器ブロック32の一構成例を示すブロック図である。変数−チェック演算器は、加算器41、比較器44、セレクタ43、正負反転装置42、およびXORゲート45を含む。変数−チェック演算器ブロック32の動作については後述する。
図5は、チェック−変数メッセージ生成部12の一構成例を示すブロック図である。チェック−変数メッセージ生成部12は、検査行列の行ブロックの総数mと同数のチェック−変数レジスタブロック51と、チェック−変数レジスタブロック51が含むレジスタ61のクロックに同期したカウンタであるカウンタブロック(第2のクロックカウンタ)52を含む。
各チェック−変数レジスタブロック51の入力は、変数−チェックメッセージ生成部11の出力である。すなわち、変数−チェックメッセージ生成部11の各チェック−変数レジスタブロック21の出力は、加算器23を介してチェック−変数メッセージ生成部11に入力される。
チェック−変数レジスタブロック51は、検査行列の行ブロック数mと同数あり、チェック−変数メッセージ生成部11の出力は、各チェック−変数レジスタブロック51の出力に対応したm個の系統からなる。
図6は、チェック−変数レジスタブロック51の一構成例を示すブロック図である。チェック−変数レジスタブロック51は、検査行列を構成する巡回行列のサイズと同数のa個のレジスタ61と、レジスタ61間に設置されたチェック−変数演算器ブロック(チェック−変数演算手段)62と、結線スイッチ63と、出力スイッチ64とを含む。
各レジスタ61は、各チェック−変数演算器ブロック62を介して直列に接続されている。そして、最後段のレジスタ61に出力スイッチ64が接続されている。出力スイッチ64は、最後段のレジスタ61の出力を、最前段のレジスタ61の入力にフィードバックし、所定の回数フィードバックすると、正規化演算部13に出力するように切り替える。
チェック−変数レジスタブロック51には、検査行列の行ブロック数と同数のm系統のデータ列が入力され、すべてのデータが入力されると、出力スイッチ64が切り替わり、a個のレジスタ61が保存しているデータを順次出力する。
結線スイッチ63は、チェック−変数レジスタブロック51への入力をチェック−変数演算器ブロック62に入力するか否かを、検査行列によって予め定められた、n個の各々がaビットからなるビット列g (j),g (j) ,・・・,ga−1 (j)によって定める(jは0からn−1の間の整数を表している)。すなわち、結線スイッチ63は、チェック−変数レジスタブロック51の入力端(図示せず)と、各チェック−変数演算器ブロック62との間を結線するか否かによって、チェック−変数レジスタブロック51への入力をチェック−変数演算器ブロック62に入力するか否かを定める。
具体的には、例えば、g (j)が1であった時は、図6において、g (j)と記された部分を結線し、0であった時はg (j)と記された部分を結線しない(kは、0からa−1間の整数を表している)。チェック−変数演算器ブロック62は、結線数と同じ数のチェック−変数演算器を含む。このn個のaビットのビット列g (j),g (j) ,・・・,ga−1 (j)(j=0,1,・・・,n−1)の選択方法については後述する。
図7は、チェック−変数演算器ブロック62の一構成例を示すブロック図である。チェック−変数演算器ブロック62は、比較器71および72と、セレクタ73および74と、XORゲート75とを含む。チェック−変数演算器ブロック62の動作については後述する。
本発明の復号装置は、変数−チェックメッセージ生成部11の出力をチェック−変数メッセージ生成部12に入力し、チェック−変数メッセージ生成部12の出力を変数−チェックメッセージ生成部11に入力する。以下、この処理を所定の回数繰り返した後、変数−チェックメッセージ生成部11の出力を硬判定して得られるビット系列を、推定送信ビット列として復号装置の出力とする。一回の繰り返し処理には2×aクロックを要し(aは検査行列を構成する巡回行列のサイズ)、2×a×繰り返し回数分のクロックで復号処理を終える。
前述した変数−チェックレジスタブロック21の結線を定めるm個のaビット列の選択について説明する。
前述したように、変数−チェックレジスタブロック21は、検査行列の列ブロックの総数nと同数あり、その各々は検査行列の列ブロックに対応している。(式1)および(式2)に示すように、第j列ブロック(jは0からn−1の間の整数を表している)はm個のa×a巡回行列H0,j,H1,j,・・・,Hm−1,jからなり、これらの巡回行列の各行ベクトルは、(f (0,j),f (0,j),・・・,fa−1 (0,j)),(f (1,j),f (1,j),・・・,fa−1 (1,j)),・・・,(f (m−1,j),f (m−1,j),・・・,fa−1 (m−1,j))を巡回シフトしたものに一致する。変数−チェックレジスタブロック21の結線を定めるm個のaビット列h (i),h (i),・・・,ha−1 (i)(i=0,1,・・・,m−1)は、上記の行ベクトルを用いて、次の(式3)によって決定される。
Figure 0004320418
以上のように、n個の変数−チェックレジスタブロック21における結線は、それが対応する検査行列の列ブロックに依存している。以下ではこれらを区別し、検査行列の第j列ブロック(jは0からn−1の間の整数を表している)に対応する結線をh (i,j)と記す。
次に、各変数−チェックレジスタブロック21において、レジスタ31に保存、更新される情報(データ)について説明する。レジスタ31に保存、更新される情報は、メッセージ部分、およびその他の1ビットによって構成される。メッセージ部分は、変数−チェックメッセージ(VCメッセージ)に相当するデータであり、その他の1ビット部分は、前回の繰り返し処理において変数−チェック演算器ブロック32が計算したメッセージ部分のデータの正負を表す。これらのデータの詳細については後述する。
前述したチェック−変数レジスタブロック51の結線を定めるn個のaビット列の選択について説明する。前述したように、チェック−変数レジスタブロック51は、検査行列の行ブロックの総数mと同数あり、それらはそれぞれ検査行列の行ブロックに対応している。
(式1)および(式2)に示すように、第i行ブロック(iは0からm−1の間の整数を表している)はn個のa×a巡回行列H0,j,H1,j,・・・,Hm−1,jからなり、これらの巡回行列の各行ベクトルは(f (i,0),f (i,0),・・・,fa−1 (i,0)),(f (i,1),f (i,1),・・・,fa−1 (i,1)),・・・,(f (i,n−1),f (i,n−1),・・・,fa−1 (i,n−1))を巡回シフトしたものに一致する。
前述したチェック−変数レジスタブロック51の結線を定めるn個のaビット列g (j),g (j) ,・・・,ga−1 (j)(j=0,1,・・・,n−1)は、上記の行ベクトルを用いて、次の(式4)によって決定される。
Figure 0004320418
以上のように、n個のチェック−変数レジスタブロック51における結線は、それが対応する検査行列の行ブロックに依存している。以下ではこれらを区別し、検査行列の第i列ブロック(iは0からm−1の間の整数を表している)に対応する結線をg (i,j)と記す。
次に、各チェック−変数レジスタブロック51において、レジスタ61に保存、更新される情報(データ)について説明する。レジスタ61に保存、更新される情報はメッセージ部分、クロックカウンタの値、およびその他の1ビットによって構成される。メッセージ部分は、チェック−変数メッセージ(CVメッセージ)に相当するデータである。
また、その他の1ビット部分は変数−チェックメッセージ生成部11によって算出され、チェック−変数メッセージ生成部12に入力されたメッセージの硬判定結果(1ビットで量子化したもの)に対するシンドロームであり、これらの値がすべて0であった場合、変数−チェックメッセージ生成部11で算出されたメッセージの硬判定結果は符号語となり、復号装置が出力する推定送信ビット列になる。これらのデータの詳細については後述する。
次に、本発明の第1の実施の形態の動作について説明する。まず、変数−チェックメッセージ生成部11の入力および出力と、チェック−変数メッセージ生成部12の入力および出力とについて説明する。チェック−変数メッセージ生成部12の出力データは、正規化演算部13を介して、変数−チェックメッセージ生成部11に入力される。
このチェック−変数メッセージ生成部12の出力データは4つの種類に大別され、これらをそれぞれ、Lt,1 (s)、Lt,2 (s)、P(s,t)、およびμ(s,t)と記す。ここで、sは0からm−1の間の整数を表し、tは0からa−1の間の整数を表している。Lt,1 (s)、Lt,2 (s)は、チェック−変数メッセージに相当するデータである。P(s,t)は、チェック−変数メッセージ生成部12の入力データ(変数−チェックメッセージ生成部11の出力データ)の硬判定結果(例えば、最上位ビット)と、(式1)の検査行列との積を示す1ビットのデータである。
μ(s,t)は、計算の精度に応じて使い分ける。具体的には、最も高い計算精度を要求する場合には、μ(s,t)は2つの整数の組を表すデータとし、それよりも粗い計算精度で十分な場合には、μ(s,t)は1つの整数を表すデータとする。さらに粗い計算精度で十分な場合には、μ(s,t)のデータを使用しない。計算精度が粗くなるに従って、μ(s,t)のデータ量が少なくなるため、装置規模は小さくなるという関係にある。
以下、μ(s,t)が2つの整数の組を表す、最も精度が高い場合について説明する。μ(s,t)については後述する。
正規化演算部13には、チェック−変数メッセージ生成部12の出力データLt,1 (s)、Lt,2 (s)、P(s,t)、およびμ(s,t)が入力される。正規化演算部13は、P(s,t)およびμ(s,t)については、入力と全く同じデータをそのまま出力し、Lt,1 (s)およびLt,2 (s)については、予め定められた定数αを乗じたαLt,1 (s)、およびαLt,2 (s)を出力する。
従って、実際には図1に示すように、チェック−変数メッセージ生成部12の出力データLt,1 (s)、Lt,2 (s)、P(s,t)、およびμ(s,t)は、そのまま変数−チェックメッセージ生成装置に入力されるのではなく、正規化演算部13を介して、αLt,1 (s)、αLt,2 (s)、P(s,t)、およびμ(s,t)が変数−チェックメッセージ生成部11に入力されることになる。
なお、以下の説明においては、記号の乱用を防ぐため、この記述(定数αを乗じた記述)を省略し、変数−チェックメッセージ生成部11に入力されるデータを、チェック−変数メッセージ生成部12の出力データの記法であるLt,1 (s)、Lt,2 (s)、P(s,t)、およびμ(s,t)で表記する。
変数−チェックメッセージ生成部11の入力データは、チェック−変数メッセージ生成部12の出力と、通信路の出力F(iは0からna−1の間の整数を表している)とである。
チェック−変数メッセージ生成部12は、前述のように、検査行列(式1)の行ブロックの総数mと同数のチェック−変数レジスタブロック51を含み、第s番目のチェック−変数レジスタブロック51の時刻tにおける出力は、Lt,1 (s)、Lt,2 (s)、P(s,t)、およびμ(s,t)になる(sは0からm−1の間の整数を表し、tは0からa−1の間の整数を表している)。これらは、出力時にチェック−変数レジスタブロック51において、各レジスタ61が保存しているデータである。
変数−チェックメッセージ生成部11の出力は、チェック−変数メッセージ生成部12の入力データになる。この入力データをZ (l)と記す。ここでlは0からn−1の間の整数を表し、rは0からa−1の間の整数を表している。変数−チェックメッセージ生成部11は、前述のように、検査行列(式1)の列ブロックの総数nと同数の変数−チェックレジスタブロック21を含み、第l番目の変数−チェックレジスタブロック21におけるr番目の出力がZ (l)となり(lは0からn−1の間の整数を表し、rは0からa−1の間の整数を表している)、Z (l)および後述する1ビットの情報P (l,r)が、出力時に変数−チェックレジスタブロック21において各レジスタ31が保存しているデータである。
変数−チェックメッセージ生成部11の動作について説明する。変数−チェックメッセージ生成部11には、前述のように、Lt,1 (s)、Lt,2 (s)、P(s,t)、μ(s,t)、および通信路の出力F(iは0からna−1の間の整数を表し、sは0からm−1の間の整数表し、tは0からa−1の間の整数を表している)が入力される。そして、変数−チェックメッセージ生成部11は、次の(式5)を用いて、Z (l)を算出する(lは0からn−1の間の整数を表し、rは0からa−1の間の整数を表している)。
Figure 0004320418
なお、(式5)において、第1項が、対数尤度比を示し、第2項が事前値を示している。ここで、各P (l,r)は1ビットのデータであり、変数−チェックメッセージ生成部11における変数−チェックレジスタブロック21の各レジスタ31が予め保存している。変数−チェックメッセージ生成部11は、(式5)を用いて変数−チェックメッセージデータZ (l)を算出する(lは0からn−1の間の整数を表し、rは0からa−1の間の整数を表している)とともに、算出したZ (l)を用いて、P (l,r)を、次の(式6)によって更新する。
Figure 0004320418
すなわち、P (l,r)は、Z (l)の最上位ビットに相当する1ビットのデータであり、このデータの列(ビット列)が、推定送信ビット列として、復号装置から出力される。
変数−チェックレジスタブロック21の動作について説明する。変数−チェックメッセージ生成部11は、検査行列(式1)の列ブロックの総数nと同数の変数−チェックレジスタブロック21を有し、各変数−チェックレジスタブロック21は、検査行列を構成する巡回行列のサイズと同数のa個のレジスタ31を有する。
ここで、第l番目の変数−チェックレジスタブロック21における第r番目のレジスタ31に保存されているメッセージデータの初期状態(時刻0における値)をZ (l)(a)と記し、時刻a−jにおけるメッセージデータをZ (l)(j)と記すことにする(lは0からn−1の間の整数を表し、rは0からa−1の間の整数を表し、jは0からa−1の間の整数を表している)。初期状態を、Z (l)(a)=0とすると、時刻a−jにおけるメッセージデータは、時刻a−j−1におけるメッセージデータから、次の(式7)によって計算される。
Figure 0004320418
ここで、(式7)の記号P (l,r) は、初期状態(時刻0における値)をP (l,r) =P (l,r)とし、時刻a−jにおいて、次の(式8)によって更新される。
Figure 0004320418
変数−チェックメッセージ生成部11の、第l番目の変数−チェックレジスタブロック21において、時刻a−jに第r番目のレジスタ31に保存されているデータは、Z (l)(j)とP (l,r) とであり、これらを各時刻毎に(式7)と(式8)によって更新する処理を行う装置が、図4に示した変数−チェック演算器ブロック32である。
変数−チェック演算器ブロック32について説明する。変数−チェック演算器ブロック32には、cnt、μ、L、L、P、P1−in、およびZinが入力される。具体的には、比較器44には、cntとμとが入力される。セレクタ43には、L、L、および比較器44の出力が入力される。XORゲート45には、P、およびP1−inが入力される。正負反転装置42には、セレクタ43の出力と、XORゲート45の出力とが入力される。加算器41には、正負反転装置42の出力と、Zinとが入力される。
従って、比較器44に入力されたクロックカウンタの値であるcntと、レジスタ31に割り当てられた0からn−1の間の整数との比較結果に応じて、セレクタ43が選択したLまたはLを、加算器41が、Zinに加算する。
すなわち、クロックカウンタの値と、レジスタ31に割り当てられた0からn−1の間の整数とに応じて、Zinに加算される値が選択される。
そして、μ、L、L、およびPは、それぞれ(式7)のμ(i,j)、Lj,1 (s)、Lj,2 (s)、およびP(i,j)に対応し、cntは、変数−チェックレジスタブロック21毎に予め定められた0からn−1の間の整数lとクロックとに同期したカウンタの値に対応する0からa−1の間の整数の組を表している。また、変数−チェック演算器ブロック32は、入力ZinおよびP1−inに対し、次の(式9)、(式10)に示すZ1−outおよびP1−outを出力する。
Figure 0004320418
Figure 0004320418
そして、出力されたZ1−outおよびP1−outは、レジスタ31を介して次の段の変数−チェック演算器ブロック32に、ZinおよびP1−inとしてそれぞれ入力される。
この変数−チェック演算器ブロック32を、第l番目の変数−チェックレジスタブロック21における第r番目のレジスタ31と第r+1番目のレジスタ31との間に、{h (0,l),h (1,l),h (2,l),・・・,h (m−1,l)}に含まれる1の数と同じ数だけ設置することで(lは0からn−1の間の整数を表し、rは0からa−1の間の整数を表している)、(式7)に示した演算処理を実現することができる。
(式7)と(式8)との計算によって、時刻aにおいて第l番目の変数−チェックレジスタブロック21における第r番目のレジスタ31に保存されているメッセージデータZ (l)(0)と通信路出力Fla+rとの算術和が、次の(式11)に示すように、(式5)におけるZ (l)と一致する。
Figure 0004320418
すべての入力データを入力し終えた時点(時刻a)で、変数−チェックメッセージ生成部11の、第l番目の変数−チェックレジスタブロック21における、第r番目のレジスタ31に保存されているデータは、Z (l)(0)とP (l,r) とである。そして、その後、Z (l)(0)は、(式11)を用いて加算され、チェック−変数メッセージ生成部12に、各変数−チェックレジスタブロック21の第0番目のレジスタ31に保存されたデータが出力される。
変数−チェックレジスタブロック21は、出力と同時に、第j+1番目のレジスタ31に保存されたデータを、第j番目のレジスタ31へシフトして(jは0からa−2の間の整数を表している)、第0番目のレジスタ31を通して順次出力する。そして、変数−チェックレジスタブロック21は、第a−1番目のレジスタ31のメッセージ部分を初期化し、他の1ビットのデータ部分には、出力したメッセージデータZ (l)から(式6)によって導かれた1ビットデータを入力することで、すべての出力が完了した時点で各レジスタ31は初期化される。
このように、変数−チェックメッセージ生成処理には、入力とそれに伴う処理にaクロック、出力にaクロックをそれぞれ要し、これらの動作を、それぞれ変数−チェックメッセージ生成部11の入力処理モード、変数−チェックメッセージ生成部11の出力モードという。
以上の処理により、図2、図3、図4に示した各構成部によって、変数−チェックメッセージZ (l)は、RAMを使用することなく、レジスタ31とレジスタ31間に設置された主に加算器41からなる変数−チェック演算器ブロック32によって算出される。
次に、チェック−変数メッセージ生成部12の動作について説明する。チェック−変数メッセージ生成部12の出力は、正規化演算部13を介して変数−チェックメッセージ生成部11に入力される。前述したように、これらのデータをLt,1 (s)、Lt,2 (s)、P(s,t)、およびμ(s,t)と記す(sは0からm−1の間の整数を表し、tは0からa−1の間の整数を表している)。
チェック−変数メッセージ生成部12は、前述したように、検査行列(式1)の列ブロックの総数mと同数のチェック−変数レジスタブロック51を有し、第s番目の変数−チェックレジスタブロック51におけるa−1−t番目の出力が、Lt,1 (s)、Lt,2 (s)、P(s,t)、およびμ(s,t)となる(sは0からm−1の間の整数を表し、tは0からa−1の間の整数を表している)。そして、これらが、出力時にチェック−変数レジスタブロック12において、各レジスタ61に保存されているデータになる。
チェック−変数メッセージ生成部12は、前述したように、変数−チェックメッセージ生成部11の出力Z (l)が入力され(lは0からn−1の間の整数を表し、rは0からa−1の間の整数を表している)、次の(式12)および(式13)によってLt,1 (s)およびLt,2 (s)を算出する。
Figure 0004320418
Figure 0004320418
ここで、W (s)は次の(式14)に示す集合を表す。すなわち、Lt,1 (s)は(式14)の集合W (s)の要素の中で値が最小のものとなり、Lt,2 (s)は集合W (s)の要素の中で、値が2番目に小さいものとなる。
Figure 0004320418
なお、|Z (i)|はZ (i)の絶対値を表す。また、P(s,t)を次の(式15)によって算出する。
Figure 0004320418
ここで、(式15)の各P (i,j)は、前述した(式6)で示したように、Z (i)の正負を表す1ビットのデータである。このように、変数−チェックメッセージ生成部11の出力Z (l)はチェック−変数メッセージ生成部12に入力されるが、チェック−変数メッセージ生成部12の内部では、Z (l)の正負を表す1ビット(最上位ビット)と、それ以外の絶対値を表すデータとに分割された形で処理される。
また、μ(s,t)は、(式14)の集合W (s)の要素の中で、その値が最小のものが|Zγ (λ)|である時(すなわち、Lt,1 (s)=|Zγ (λ)|である時)、次の(式16)を満たす。
Figure 0004320418
チェック−変数レジスタブロック51の動作について説明する。チェック−変数メッセージ生成部12は、(式1)に示した検査行列の行ブロックの総数mと同数のチェック−変数レジスタブロック51を有し、各チェック−変数レジスタブロック51は、検査行列を構成する巡回行列のサイズと同数のa個のレジスタ61を有する。
ここで、第s番目のチェック−変数レジスタブロック51における第t番目のレジスタ61に保存されているメッセージデータ部分の初期状態(時刻0における値)を、Lt,1 (s)(0),Lt,2 (s)(0)と記し、1ビットの情報P(s,t)に相当するデータの初期状態をP(s,t)と記し、各データの時刻jにおけるデータを、それぞれLt,1 (s)(j)、Lt,2 (s)(j)、P(s,t)と記す(sは0からm−1の間の整数を表し、tは0からa−1の間の整数を表し、jは1からaの間の整数を表している)。
初期状態として、Lt,1 (s)(0)とLt,2 (s)(0)とをレジスタ61が表現できる最大の数とし、P(s,t)=0とすると、時刻jにおける各データは、時刻j−1における各データから、次の(式17)、(式18)および(式19)によって計算される。
Figure 0004320418
Figure 0004320418
Figure 0004320418
ここで、(式17)および(式18)のWt−1 (s)(j−1)は、次の(式20)に示した集合を表している。
Figure 0004320418
すなわち、(式17)のLt,1 (s)(j)はWt−1 (s)(j−1)の要素の中で値が最小のものであり、(式18)のLt,2 (s)(j)はWt−1 (s)(j−1)の要素の中で、値が2番目に小さいものである。すなわち、Wt−1 (s)(j−1)の要素の中で、値が最小のものと、値が2番目に小さいものとが選択され、次の段のレジスタ61に保存される。
(式16)のμ(s,t)についても、同様に、時刻0における初期状態をμ(s,t)とすると、時刻jにおけるデータμ(s,t)は、次の(式21)によって算出される。
Figure 0004320418
チェック−変数メッセージ生成部12の、第s番目のチェック−変数レジスタブロック51において、時刻jに第t番目のレジスタ61に保存されているデータはLt,1 (s)(j)、Lt,2 (s)(j)、P(s,t)、およびμ(s,t)であり、これらを各時刻毎に(式17)、(式18)、(式19)および(式21)によって更新する処理を行うブロックがチェック−変数演算器ブロック62である。
チェック−変数演算器ブロック62について説明する。チェック−変数演算器ブロック62には、Z、cnt、P2−in、μin、L1−in、およびL2−inが入力される。
具体的には、XORゲート75には、P2−inとZの正負を示す情報(Zの最上位ビット)とが入力される。比較器71には、L2−inとZの絶対値(Zの最上位以外のビット)とが入力される。比較器72には、L1−inとZの絶対値とが入力される。セレクタ73には、Zの絶対値、L1−in、L2−in、および比較器71の出力が入力され、比較器71の出力結果に応じて出力を切り替える。セレクタ74には、cnt、μin、および比較器72の出力が入力され、比較器72の出力結果に応じて出力を切り替える。
なお、図7では、Zを最上位ビット(Zの正負を示す情報)と、最上位以外のビット(Zの絶対値)とに分割することを白の菱形で示し、Zの最上位ビットをXORゲート75に入力し、Zの最上位以外のビットを比較器71、72、セレクタ73に入力している。
そして、Zは、(式20)のZj−1 (i)に対応し、cntは、0からn−1の間の整数と、クロックに同期したカウンタ値に対応する0からa−1の間の整数との組を表している。チェック−変数演算器ブロック62は、入力L1−in、L2−in、P2−inおよびμinに対し、次の(式22)、(式23)、(式24)および(式25)に示すL1−out、L2−out、P2−outおよびμoutを出力する。
Figure 0004320418
Figure 0004320418
Figure 0004320418
Figure 0004320418
すなわち、チェック−変数演算器ブロック62は、(式24)で示したように、これまでに算出したZのうち、最も小さい値をL1−outとして、レジスタ61を介して次の段のチェック−変数演算器ブロック62に出力する。そして、次の段のチェック−変数演算器ブロック62は、(式25)で示したように、L1−inとして入力された前の段のL1−outの値が、最も小さくなったときに、μoutとして、cntである0からn−1の間の整数と、クロックに同期したカウンタ値に対応する0からa−1の間の整数との組を出力する。
チェック−変数演算器ブロック62を、第s番目のチェック−変数レジスタブロック51における第t番目のレジスタ61と第t+1番目のレジスタ61との間に、{g (s,0),g (s,1),g (s,2),・・・,g (s,n−1)}に含まれる1の数と同じ数だけ設置することで(sは0からm−1の間の整数を表し、tは0からa−1の間の整数を表している)、(式17)、(式18)、(式19)および(式21)に示した演算処理を実現することができる。
(式17)、(式18)、(式19)および(式21)の計算によって、時刻aにおいて第s番目のチェック−変数レジスタブロック51における第t番目のレジスタ61に保存されているデータLt,1 (s)(a)、Lt,2 (s)(a)、P(s,t)、およびμ(s,t)が、次の(式26)、(式27)、(式28)および(式29)に示すように、(式12)におけるLt,1 (s)、(式13)におけるLt,2 (s) 、(式15)におけるP(s,t)、および(式16)におけるμ(s,t)に一致する。
Figure 0004320418
Figure 0004320418
Figure 0004320418
Figure 0004320418
すべての入力データを入力し終えた時点(時刻a)で、チェック−変数メッセージ生成部12の、第s番目のチェック−変数レジスタブロック51における、第t番目のレジスタ61に保存されているデータは、Lt,1 (s)(a)、Lt,2 (s)(a)、P(s,t)、およびμ(s,t)であり、これらは、各チェック−変数レジスタブロック51の第a−1番目のレジスタ61から、変数−チェックメッセージ生成部11に出力される。チェック−変数メッセージ生成部12は、出力と同時に、第j番目のレジスタ61に保存されたデータを、第j+1番目のレジスタ61へシフトして(jは0からa−2の間の整数を表している)、第a−1番目のレジスタ61を通して順次出力する。
第0番目のレジスタ61を初期化することで、すべての出力が完了した時点で各レジスタ61は初期化される。このように、チェック−変数メッセージ生成処理には、入力とそれに伴う処理にaクロック、出力にaクロックをそれぞれ要し、これらの動作をそれぞれチェック−変数メッセージ生成部12の入力処理モード、チェック−変数メッセージ生成部12の出力モードと呼ぶ。以上により、図5、図6、図7に示したブロックによって、チェック−変数メッセージ生成処理は、RAMを使用することなく、シフトレジスタとシフトレジスタ間に配置された主に加算器からなるチェック−変数演算器ブロック62によって実現される。
なお、変数−チェックメッセージ生成部11、チェック−変数メッセージ生成部12、および正規化演算部13は、それぞれIC(Integrated Circuit)等の半導体デバイスによって実現される。従って、変数−チェックメッセージ生成部11が含む各ブロックや、チェック−変数メッセージ生成部12が含む各ブロックは、それぞれIC等の半導体デバイスによって実現される。
次に、図1に示した本発明の復号装置全体の動作について説明する。図8は、復号装置全体の動作を示す説明図である。
復号装置による処理は、変数−チェックメッセージ生成部11が出力モードであり、チェック−変数メッセージ生成部12が入力処理モードであるようにスタートする。
復号処理スタート時には、変数−チェックレジスタブロック21におけるレジスタ31が保存しているデータをすべて0に初期化しておき、チェック−変数レジスタブロック51におけるレジスタ61が保存しているデータを初期化しておく。
スタート時からaクロック経過するまでの間、変数−チェックメッセージ生成部11がチェック−変数メッセージ生成部12に出力するメッセージデータは、スタート時に変数−チェックレジスタブロック21におけるレジスタ31が保存しているデータをすべて0に初期化したことにより、受信データFla+rと一致する(lは0からn−1の間の整数を表し、rは0からa−1の間の整数を表している)。
スタート時からaクロック経過すると、変数−チェックメッセージ生成部11による、チェック−変数メッセージ生成部12へのメッセージデータの出力は終了する。この時点で、変数−チェックレジスタブロック21におけるレジスタ31には、前述のようにFla+rの正負を表す1ビットがセット(保存)されており、チェック−変数レジスタブロック51におけるレジスタ61には、次に変数−チェックメッセージ生成部12に出力するデータが保存されている。
以下、図8に示すように、aクロック毎に入力処理モードと、出力モードとを切り替える。すなわち、チェック−変数メッセージ生成部12による変数−チェックメッセージ生成部11へのメッセージデータの出力と、変数−チェックメッセージ生成部11からチェック−変数メッセージ生成12へのメッセージデータの出力とが交互に行われる。
各モードにおけるチェック−変数メッセージ生成部12と変数−チェックメッセージ生成部11とは、予め設定した回数分だけ上記処理を繰り返す。そして、最後に、変数−チェックメッセージ生成部11を出力モード、チェック−変数メッセージ生成部12を入力処理モードにし、変数−チェックメッセージ生成部11は、出力のデータの正負を表す1ビットを、復号装置の出力として順次出力する。
なお、チェック−変数メッセージ生成部12において処理されているデータP(s,t)は、上記復号処理の結果、受信データ中に含まれたエラーを訂正することができたか否かを判定するためのデータとして使用することができる。
以上に述べたように、この実施の形態によれば、変数−チェックメッセージと推定送信ビットとを、RAMを使用することなく、複数のレジスタ31と、各レジスタ31間に設置された主に加算器からなる変数−チェック演算器ブロック32によって算出する処理を行うことができる。
また、この実施の形態によれば、チェック−変数メッセージを、RAMを使用することなく、複数のレジスタ61と、各レジスタ61間に設置された主に比較器からなるチェック−変数演算器ブロック62によって算出する処理を行うことができる。
そして、上記の処理を繰り返して、復号装置は、入力された受信データ系列を復号し、推定送信ビット列を出力する。すなわち、RAMを用いない簡単な構成の復号装置が、RAMのアクセス速度に制限されることなく、高速で、入力された受信データ系列を復号し、推定送信ビット列を出力することができる。
また、この実施の形態によれば、チェック−変数メッセージ生成部12において処理されているデータP(s,t)を、受信データ中に含まれたエラーを訂正することができたか否かを判定するためのデータとして使用することができる。
なお、記憶装置としてのRAMを用いた低密度パリティ検査符号の復号装置の一構成例について、図面を参照して説明する。図9は、RAMを用いた低密度パリティ検査符号の復号装置の一構成例を示すブロック図である。この復号装置は、誤り訂正の対象となる受信データを保持する記憶装置してのRAM(図示せず)と、メッセージと呼ばれる復号処理の過程で生じるデータを保持するための記憶装置としてのRAMによって実現されるメッセージメモリブロック84と、RAMのアドレスを生成して制御するアドレス生成制御装置82と、メッセージを更新するための変数ノード処理装置81と、チェックノード処理装置83とを含む。
メッセージは変数−チェックメッセージと、チェック−変数メッセージとの2種類に大別される。これらのメッセージは、各々さらに細かく分類される。検査行列Hの行数がM、列数がNである場合(MとNとは正の整数をそれぞれ表している)、変数−チェックメッセージは、Zi,jに分類され、チェック−変数メッセージはLi,jに分類される。
添え字であるiとjとはそれぞれ0からM−1の間の整数を表し、および0からN−1の間の整数を表している。iは検査行列の行ベクトルまたは列ベクトルの成分に対応し、jは検査行列の列ベクトルの成分または行ベクトルの成分に対応する。変数ノード処理装置81は、チェック−変数メッセージおよび受信データから、変数−チェックメッセージを更新する処理を行う。変数ノード処理の詳細は次の(式30)で表される。
Figure 0004320418
ここで、jは0からN−1の間の整数を表し、iは0からM−1の間の整数を表し、Fは対応する受信データを示し、i’はiと一致しない0からM−1の間の整数であって、対応する検査行列の行ベクトルのjに対応する成分が1であるものすべてにわたる。チェックノード処理装置83は変数−チェックメッセージからチェック−変数メッセージを更新する処理を行う。チェックノード処理の詳細は次の(式31)で表される。
Figure 0004320418
ここで、jは0からN−1の間の整数を表し、iは0からM−1の間の整数を表し、Pi,jは0または1のいずれかを表している。また、j’はjと一致しない0からN−1の間の整数であって、対応する検査行列の列ベクトルのiに対応する成分が1であるものすべてにわたる。
なお、検査行列が巡回行列のブロックからなる低密度パリティ検査符号(擬似巡回型低密度パリティ検査符号)の場合、検査行列の規則性を利用すれば、(式30)における加算部分と、(式31)における最小値算出処理部分のインデックスとをパターン化することができ、RAMアクセスのためのアドレス生成処理が簡単化できる。
実施の形態2.
次に、本発明の第2の実施の形態について説明する。まず、第1の実施の形態の説明で前述したチェック−変数メッセージ生成部12が算出する4種類のデータの内の1つであるμ(s,t)の役割について説明する(sは0からm−1の間の整数を表し、tは0からa−1の間の整数を表している)。
データμ(s,t)は、前述したように、0からn−1の間の整数、および0からa−1の間の整数の2つの整数の組からなり、(式7)で示した変数−チェックメッセージ生成部11が行う処理で、チェック−変数メッセージ生成部12が出力した2つのデータLt,1 (s)とLt,2 (s)とのどちらを加算するか決定するために必要になる。
t,1 (s)とLt,2 (s)とは、前述したように、(式14)における集合W (s)の要素の中で、その値が最も小さいものと、2番目に小さいものとをそれぞれ表すが、ここで(式7)で示した変数−チェックメッセージ生成部11での処理を、次の(式32)に置き換えると、この演算で計算される値は、検査行列(式1)および(式2)の選択に依存するものの、(式7)が算出する値に比較的よく近似する。
Figure 0004320418
すなわち、(式14)における集合W (s)の要素の中でその値が最も小さいものと、2番目に小さいものとを両方使用するのではなく、2番目に小さいもののみを使用することにより、チェック−変数メッセージ生成部12において、μ(s,t)を算出する必要がなくなる。
そのため、チェック−変数レジスタブロック51における各レジスタ61のビット幅の削減や、チェック−変数演算器ブロック62の構成の簡単化、および変数−チェック演算器ブロック32の構成の簡単化を実現することができ、復号装置全体の装置規模を削減し、処理を簡単化することができる。
図10は、簡単化した変数−チェック演算器ブロック32の一構成例を示すブロック図である。
図10に示すように、簡単化した変数−チェック演算器ブロック32は、正負反転装置102と、加算機101と、XORゲート103を含む。XORゲート103には、PとP1−inとが入力される。正負反転装置102には、LとXORゲート103の出力が入力される。加算器101には、Zinと正負反転装置102の出力とが入力される。なお、図10に示した入出力データは、図4において、同記号(P1−in等)で示したデータと同様なため、説明を省略する。
以上のように、簡単化した変数−チェック演算器ブロック32は、入力μ、およびLを必要としないため、図4に示した第1の実施の形態の変数−チェック演算器32と比較して構成が簡単化されており、対応する変数−チェックレジスタブロック21におけるレジスタ31のビット幅を削減することができる。
図11は、簡単化したチェック−変数演算器ブロック62の一構成例を示すブロック図である。
図11に示すように、簡単化したチェック−変数演算器ブロック62は、セレクタ113、比較器111および112を含む。XORゲート114には、Zの正負を示す情報(Zの最上位ビット)とP2−inとが入力される。比較器111には、Zの絶対値(Zの最上位以外のビット)とL2−inとが入力される。比較器112には、Zの絶対値とL1−inとが入力される。セレクタ113には、Zの絶対値、L1−in、L2−in、比較器111の出力、および比較器112の出力が入力される。
なお、図11は、Zを最上位ビット(Zの正負を示す情報)と、最上位以外のビット(Zの絶対値)とに分割することを、白の菱形で示し、Zの最上位ビットをXORゲート75に入力し、Zの最上位以外のビットを比較器111、112、セレクタ113に入力している。
なお、図11に示した入出力データは、図7において、同記号(P2−in等)で示したデータとそれぞれ同様なため、説明を省略する。
以上のように、簡単化したチェック−変数演算器ブロック62は、入力μを必要としないため、図7に示した第1の実施の形態のチェック−変数演算器ブロック62と比較して構成が簡単化されており、対応するチェック−変数レジスタブロック51におけるレジスタ61のビット幅を削減することができる。
以上に述べたように、この実施の形態によれば、チェック−変数レジスタブロック51におけるレジスタ61のビット幅を削減するため、復号装置全体の装置規模を削減し、処理を簡単化することができる。
なお、次の(式33)によって計算を行うことにより、(式32)よりも計算精度が高く、(式7)よりも簡単な処理でメッセージデータを算出することができる。
Figure 0004320418
(式33)におけるμ’(i,j)は、0からa−1の間の整数を表す。チェック−変数演算器ブロック62は、第1の実施の形態と同様なタイミング(L1−inとして入力された前の段のL1−outの値が、最も小さくなったとき)で、μ’(i,j)を出力する。ここで、μ’(i,j)は、第1の実施の形態の(式7)および(式25)において、μ(i,j)が0からn−1の間の整数と、0からa−1の間の整数との組を表していたのと比較して、情報量を減らしており、その分変数−チェックメッセージデータの計算精度が下がる。
チェック−変数演算器ブロック62、および変数−チェック演算器ブロック32の基本的な構成はそれぞれ第1の実施の形態で示した図7および図4とそれぞれ同様であるが、チェック−変数レジスタブロック51における各レジスタ61のビット幅を削減し、復号装置全体の装置規模を削減することができる。
以上に述べたように、(式33)を採用すれば、μ(s,t)の選択によって、計算精度と装置規模とのトレードオフにおいて、計算精度と装置規模とのバランスを、3種類(第1の実施の形態のようにμ(s,t)を用いるか、第2の実施の形態のようにμ’(i,j)を用いるか、または、μを用いないか)から選択することができる。
図12は、本発明の復号装置128を使用したデータ通信(蓄積)装置の一構成例を示すブロック図である。
データ通信(蓄積)装置は、データ送信装置121とデータ受信装置(受信装置)125とを含む。そして、データ送信装置121は、擬似巡回型低密度パリティ検査符号の符号化装置122、フレーム同期をとるための制御と、変調器124に合わせたデータへ変換するための同期制御・データ変換装置(同期制御−データ変換装置)123、および変調器124を含む。変調器124は、通信路、または記憶装置に情報を出力する。
データ受信装置125は、通信路、または記憶装置から受信した情報を復調する復調器126、復調器126の出力データを復号装置126の入力データに変換し、フレーム同期をとる処理を行う同期制御・データ変換装置127、および本発明の復号装置128を含む。
数値例として検査行列の列ブロックの総数nを65、検査行列の行ブロックの総数mを8、巡回行列のサイズaを63とした時、フレーム長が4095ビットのビット列をフレーム単位とすることができる。
そして、(式2)で示した検査行列中の各ブロックの行ベクトル(f (i,j),f (i,j),・・・,fa−1 (i,j),)の重みが1以下であって(iは0から7の間の整数を表し、jは0から64の間の整数を表している)、65個の変数−チェックレジスタブロック21がそれぞれ含む複数のレジスタ31のうち、1組のレジスタ31間に設置される変数−チェック演算器ブロック32の数を2以下とする。そして、8個のチェック−変数レジスタブロック51がそれぞれ含む複数のレジスタ61のうち、1組のレジスタ61間に設置されるチェック−変数演算器ブロック62の数を2以下とするように設定する。
すると、数百キロゲートの装置規模で、数百メガビット毎秒の処理を実現することができる。
本発明は、衛星通信や移動体通信システム等における所要電力の低減や、アンテナの小型化などのシステム構成上の要件を満たすための誤り訂正技術として利用することができる。また、磁気記録などの記憶装置に関する信頼性向上のための誤り訂正技術として利用することができる。
本発明による復号装置の第1の実施の形態の一構成例を示すブロック図である。 変数−チェックメッセージ生成部の一構成例を示すブロック図である。 変数−チェックレジスタブロックの一構成例を示すブロック図である。 変数−チェック演算器ブロックの一構成例を示すブロック図である。 チェック−変数メッセージ生成部の一構成例を示すブロック図である。 チェック−変数レジスタブロックの一構成例を示すブロック図である。 チェック−変数演算器ブロックの一構成例を示すブロック図である。 復号装置全体の動作を示す説明図である。 RAMを用いた低密度パリティ検査符号の復号装置の一構成例を示すブロック図である。 簡単化した変数−チェック演算器ブロックの一構成例を示すブロック図である。 簡単化したチェック−変数演算器ブロックの一構成例を示すブロック図である。 本発明の復号装置を使用したデータ通信(蓄積)装置の一構成例を示すブロック図である。
符号の説明
11 変数−チェックメッセージ生成部
12 チェック−変数メッセージ生成部
13 正規化演算部
21 変数−チェックレジスタブロック
22、52 カウンタブロック
23、41、101 加算器
31、61 レジスタ
32 変数−チェック演算器ブロック
33、63 結線スイッチ
34、64 出力スイッチ
42、102 正負反転装置
43、73、74、113 セレクタ
44、71、72、111、112 比較器
45、75、103、114 XORゲート
51 チェック−変数レジスタブロック
62 チェック−変数演算器ブロック
81 変数ノード処理装置
82 アドレス生成制御装置
83 チェックノード処理装置
84 メッセージメモリブロック
121 データ送信装置
122 符号化装置
123、127 同期制御・データ変換装置
124 変調器
125 データ受信装置
126 復調器
128 復号装置

Claims (6)

  1. 誤り訂正符号化方式における疑似巡回型低密度パリティ検査符号を復号し、復号結果である推定送信ビット列を出力する復号装置において、
    複数のレジスタを有する所定の段数のフィードバックシフトレジスタを複数個含み、受信データ列を入力し、対数尤度比と事前値との和を含むデータである変数−チェックメッセージと、推定送信ビット列とを生成して出力する変数−チェックメッセージ生成手段と、
    複数のレジスタを有する所定の段数のフィードバックシフトレジスタを複数個含み、前記変数−チェックメッセージ生成手段が出力した変数−チェックメッセージが入力されると、入力された前記変数−チェックメッセージに応じて生成したデータを含むチェック−変数メッセージを出力するチェック−変数メッセージ生成手段と、
    前記チェック−変数メッセージ生成手段が出力したチェック−変数メッセージが含む所定のデータに、予め決められた定数を乗じて前記変数−チェックメッセージ生成手段に入力する正規化演算手段とを備え、
    前記変数−チェックメッセージ生成手段は、当該変数−チェックメッセージ生成手段が含むフィードバックシフトレジスタが有するレジスタに保存されたデータのうち、所定のデータに、前記チェック−変数メッセージ生成手段の出力に対応するデータを加算して次の段のレジスタに保存し、所定のタイミングで、前記レジスタが保存しているデータである変数−チェックメッセージおよび推定送信ビット列を出力する変数−チェック演算手段を含み、
    前記チェック−変数メッセージ生成手段は、当該チェック−変数メッセージ生成手段が含むフィードバックシフトレジスタが有するレジスタに保存されたデータのうちの2つと、前記変数−チェックメッセージ生成手段が出力したデータとのうち、値が最も小さいデータと、2番目に小さいデータとを選択して次の段のレジスタに保存し、所定のタイミングで、前記レジスタが保存しているデータをチェック−変数メッセージとして出力するチェック−変数演算手段を含み、
    前記変数−チェック演算手段は、前記変数−チェックメッセージ生成手段が含むフィードバックシフトレジスタが有するレジスタ間にそれぞれ設置され、
    前記チェック−変数演算手段は、前記チェック−変数メッセージ生成手段が含むフィードバックシフトレジスタが有するレジスタ間にそれぞれ設置される
    ことを特徴とする復号装置。
  2. 変数−チェックメッセージ生成手段は、当該変数−チェックメッセージ生成手段が含むフィードバックシフトレジスタの動作クロックに同期した第1のクロックカウンタを含み、
    チェック−変数メッセージ生成手段は、当該チェック−変数メッセージ生成手段が含むフィードバックシフトレジスタの動作クロックに同期した第2のクロックカウンタを含み、
    変数−チェック演算手段は、前記変数−チェックメッセージ生成手段が含むレジスタに保存されたデータの一部に加算するデータを、前記第1のクロックカウンタの値に応じて選択し、
    チェック−変数メッセージ生成手段のレジスタは、前記第2のクロックカウンタがカウントした値を記憶し、
    チェック−変数演算手段は、前記変数−チェックメッセージ生成手段の出力に対応するデータが最も小さい値となった時に、前記レジスタが記憶している前記第2のクロックカウンタがカウントした値に対応する数値を出力して、次の段のレジスタに保存する
    請求項1記載の復号装置。
  3. 変数−チェックメッセージ生成手段は、当該変数−チェックメッセージ生成手段が含むフィードバックシフトレジスタの動作クロックに同期した第1のクロックカウンタを含み、
    チェック−変数メッセージ生成手段は、当該チェック−変数メッセージ生成手段が含むフィードバックシフトレジスタの動作クロックに同期した第2のクロックカウンタを含み、
    変数−チェック演算手段は、前記変数−チェックメッセージ生成手段が含むフィードバックシフトレジスタが有するレジスタに保存されたデータの一部に加算するデータを前記第1のクロックカウンタの値と、前記変数−チェックメッセージ生成手段のレジスタに割り当てられた数値とに応じて選択し、
    チェック−変数メッセージ生成手段のレジスタは、前記第2のクロックカウンタがカウントした値を記憶し、
    チェック−変数演算手段は、前記変数−チェックメッセージ生成手段の出力に対応するデータが最も小さい値となった時に、前記レジスタが記憶している前記第2のクロックカウンタがカウントした値と、前記変数−チェックメッセージ生成手段のレジスタに割り当てられた数値との組を出力して、次の段の前記レジスタに保存する
    請求項1記載の復号装置。
  4. 変数−チェックメッセージ生成手段、およびチェック−変数メッセージ生成手段は、変数−チェックメッセージの生成および出力と、チェック−変数メッセージの生成および出力とをそれぞれ所定の回数繰り返し、
    前記変数−チェックメッセージ生成手段は、前記所定の回数変数−チェックメッセージの生成を繰り返してから、推定送信ビット列を出力する
    請求項1から請求項3のうちいずれか1項記載の復号装置。
  5. 変数−チェックメッセージ生成手段は、疑似巡回型低密度パリティ検査符号の検査行列を構成する巡回行列のサイズと同数のレジスタと変数−チェック演算手段とをそれぞれ含み、
    チェック−変数メッセージ生成手段は、疑似巡回型低密度パリティ検査符号の検査行列を構成する巡回行列のサイズと同数のレジスタとチェック−変数演算手段とそれぞれを含む
    請求項1から請求項4のうちいずれか1項記載の復号装置。
  6. 誤り訂正符号化方式における疑似巡回型低密度パリティ検査符号を復号し、推定送信ビット列を出力する復号装置を備えた受信装置において、
    受信した情報を復調して出力する復調器と、
    前記復調器の出力データを前記復号装置に応じた形式の入力データに変換し、フレーム同期をとって前記復号装置に出力する同期制御−データ変換装置とを備え、
    前記復号装置は、
    複数のレジスタを有する所定の段数のフィードバックシフトレジスタを複数個含み、受信データ列を入力し、対数尤度比と事前値との和を含むデータである変数−チェックメッセージと、推定送信ビット列とを生成して出力する変数−チェックメッセージ生成手段と、
    複数のレジスタを有する所定の段数のフィードバックシフトレジスタを複数個含み、前記変数−チェックメッセージ生成手段が出力した変数−チェックメッセージが入力されると、入力された前記変数−チェックメッセージに応じて生成したデータを含むチェック−変数メッセージを出力するチェック−変数メッセージ生成手段と、
    前記チェック−変数メッセージ生成手段が出力したチェック−変数メッセージが含む所定のデータに、予め決められた定数を乗じて前記変数−チェックメッセージ生成手段に入力する正規化演算手段とを含み、
    前記変数−チェックメッセージ生成手段は、当該変数−チェックメッセージ生成手段が含むフィードバックシフトレジスタが有するレジスタに保存されたデータのうち、所定のデータに、前記チェック−変数メッセージ生成手段の出力に対応するデータを加算して次の段のレジスタに保存し、所定のタイミングで、前記レジスタが保存しているデータである変数−チェックメッセージおよび推定送信ビット列を出力する変数−チェック演算手段を含み、
    前記チェック−変数メッセージ生成手段は、当該チェック−変数メッセージ生成手段が含むフィードバックシフトレジスタが有するレジスタに保存されたデータのうちの2つと、前記変数−チェックメッセージ生成手段が出力したデータとのうち、値が最も小さいデータと、2番目に小さいデータとを選択して次の段のレジスタに保存し、所定のタイミングで、前記レジスタが保存しているデータをチェック−変数メッセージとして出力するチェック−変数演算手段を含み、
    前記変数−チェック演算手段は、前記変数−チェックメッセージ生成手段が含むフィードバックシフトレジスタが有するレジスタ間にそれぞれ設置され、
    前記チェック−変数演算手段は、前記チェック−変数メッセージ生成手段が含むフィードバックシフトレジスタが有するレジスタ間にそれぞれ設置される
    ことを特徴とする受信装置。
JP2005278429A 2005-09-26 2005-09-26 復号装置および受信装置 Expired - Fee Related JP4320418B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2005278429A JP4320418B2 (ja) 2005-09-26 2005-09-26 復号装置および受信装置
PCT/JP2006/318728 WO2007034870A1 (ja) 2005-09-26 2006-09-21 復号装置および受信装置
EP06810388.6A EP1940032B1 (en) 2005-09-26 2006-09-21 Decoding apparatus for pseudo cyclic ldpc codes
CN2006800354137A CN101273532B (zh) 2005-09-26 2006-09-21 解码装置及接收装置
US12/088,142 US8074142B2 (en) 2005-09-26 2006-09-21 Decoding device and receiving device
RU2008116679/09A RU2391774C2 (ru) 2005-09-26 2006-09-21 Устройство декодирования и устройство приема

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005278429A JP4320418B2 (ja) 2005-09-26 2005-09-26 復号装置および受信装置

Publications (2)

Publication Number Publication Date
JP2007089064A JP2007089064A (ja) 2007-04-05
JP4320418B2 true JP4320418B2 (ja) 2009-08-26

Family

ID=37888913

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005278429A Expired - Fee Related JP4320418B2 (ja) 2005-09-26 2005-09-26 復号装置および受信装置

Country Status (6)

Country Link
US (1) US8074142B2 (ja)
EP (1) EP1940032B1 (ja)
JP (1) JP4320418B2 (ja)
CN (1) CN101273532B (ja)
RU (1) RU2391774C2 (ja)
WO (1) WO2007034870A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8020072B2 (en) * 2006-10-25 2011-09-13 International Business Machines Corporation Method and apparatus for correcting data errors
KR100938068B1 (ko) * 2007-01-30 2010-01-21 삼성전자주식회사 통신 시스템에서 신호 수신 장치 및 방법
JP5333233B2 (ja) 2007-12-13 2013-11-06 日本電気株式会社 復号装置、データ蓄積装置、データ通信システム、および復号方法
US8261166B2 (en) * 2008-09-17 2012-09-04 Seagate Technology Llc Node processor for use with low density parity check decoder using multiple variable node degree distribution codes
US8667376B2 (en) 2008-11-07 2014-03-04 Nec Corporation Decoding device, data communication apparatus having the decoder device, and data memory
CN101807928B (zh) * 2009-02-13 2013-06-05 瑞昱半导体股份有限公司 记录控制器及奇偶校验码译码器
WO2010103757A1 (ja) * 2009-03-13 2010-09-16 日本電気株式会社 復号装置および復号方法
JP5445829B2 (ja) * 2009-05-29 2014-03-19 ソニー株式会社 受信装置、受信方法、およびプログラム、並びに受信システム
CN101699770B (zh) * 2009-10-23 2013-03-06 山东大学 一种高速ldpc码编码器及其编码方法
JP2012080283A (ja) * 2010-09-30 2012-04-19 Jvc Kenwood Corp 復号装置および復号方法
US9048867B2 (en) * 2013-05-21 2015-06-02 Lsi Corporation Shift register-based layered low density parity check decoder
US9543984B2 (en) * 2014-04-25 2017-01-10 Infinera Corporation Efficient storage architecture for low-density parity-check decoding
US20160020783A1 (en) * 2014-07-17 2016-01-21 Lsi Corporation Low Density Parity Check Decoder With Relative Indexing
RU2586338C2 (ru) * 2014-10-08 2016-06-10 Общество с ограниченной ответственностью НПО "Квантрон" Способ установки стойки в грунт и стойка, установленная в грунт
US10110249B2 (en) * 2016-08-23 2018-10-23 Sandisk Technologies Llc Column-layered message-passing LDPC decoder
JP2023037446A (ja) * 2021-09-03 2023-03-15 日本電気株式会社 無線受信装置及びその方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6757122B1 (en) * 2002-01-29 2004-06-29 Seagate Technology Llc Method and decoding apparatus using linear code with parity check matrices composed from circulants
JP4224777B2 (ja) * 2003-05-13 2009-02-18 ソニー株式会社 復号方法および復号装置、並びにプログラム
JP2005045735A (ja) * 2003-07-25 2005-02-17 Sony Corp 符号検出装置及び方法、復号装置及び方法、並びに情報処理装置及び方法
US7484158B2 (en) * 2003-12-03 2009-01-27 Infineon Technologies Ag Method for decoding a low-density parity check (LDPC) codeword
US20050283707A1 (en) * 2004-06-22 2005-12-22 Eran Sharon LDPC decoder for decoding a low-density parity check (LDPC) codewords
JP4595650B2 (ja) * 2005-04-25 2010-12-08 ソニー株式会社 復号装置および復号方法
US20070089019A1 (en) * 2005-10-18 2007-04-19 Nokia Corporation Error correction decoder, method and computer program product for block serial pipelined layered decoding of structured low-density parity-check (LDPC) codes, including calculating check-to-variable messages
US20090049357A1 (en) * 2007-08-16 2009-02-19 Yeong-Luh Ueng Decoding Method for Quasi-Cyclic Low-Density Parity-Check Codes and Decoder for The Same
US8181083B2 (en) * 2007-08-27 2012-05-15 Stmicroelectronics S.R.L. Methods and architectures for layered decoding of LDPC codes with minimum latency
JP5333233B2 (ja) * 2007-12-13 2013-11-06 日本電気株式会社 復号装置、データ蓄積装置、データ通信システム、および復号方法

Also Published As

Publication number Publication date
CN101273532B (zh) 2011-11-16
JP2007089064A (ja) 2007-04-05
US8074142B2 (en) 2011-12-06
WO2007034870A1 (ja) 2007-03-29
US20100153810A1 (en) 2010-06-17
CN101273532A (zh) 2008-09-24
EP1940032A4 (en) 2015-03-04
EP1940032A1 (en) 2008-07-02
RU2008116679A (ru) 2009-11-10
RU2391774C2 (ru) 2010-06-10
EP1940032B1 (en) 2019-10-30

Similar Documents

Publication Publication Date Title
JP4320418B2 (ja) 復号装置および受信装置
US7373581B2 (en) Device, program, and method for decoding LDPC codes
US8352847B2 (en) Matrix vector multiplication for error-correction encoding and the like
EP1829223B1 (en) Parallel, layered decoding for Low-Density Parity-Check (LDPC) codes
US7343548B2 (en) Method and apparatus for encoding and decoding data
JP5199463B2 (ja) ターボldpc復号
CN101032082B (zh) 编码和解码数据的方法和设备
JP5483875B2 (ja) Ldpc符号のブロックおよびレートに独立な復号の方法および装置
KR20100005231A (ko) 패리티 검사 디코더들에서 사용하기 위한 노드 처리기들
JP2006279396A (ja) Ldpc符号検出装置及びldpc符号検出方法
US20090276682A1 (en) Turbo ldpc decoding
Thi et al. Two-extra-column trellis min–max decoder architecture for nonbinary LDPC codes
JP4832447B2 (ja) チャネルコードを用いた復号化装置及び方法
EP2230767A1 (en) Decoding device, data storage device, data communication system, and decoding method
US10554226B2 (en) Method for controlling a check node of a NB-LDPC decoder and corresponding check node
US9037938B2 (en) Hardware architecture and implementation of low power layered multi-level LDPC decoder
US11075650B1 (en) Sub-matrix reduction for quasi-cyclic LDPC codes
EP3529900B1 (en) Construction of ldpc convolutional turbo codes
TWI523437B (zh) Bch碼編碼與癥狀計算共用設計電路及決定該共用設計電路的方法
Khan et al. A real time programmable encoder for low density parity check code as specified in the IEEE P802. 16E/D7 standard and its efficient implementation on a DSP processor
KR101924583B1 (ko) Ldpc 복호화 방법 및 장치와, 최솟 값 계산 방법
KR101221062B1 (ko) 가변 usc 부호를 이용한 부호화 및 복호화 방법
Radosavljevic et al. Tradeoff analysis and architecture design of high throughput irregular LDPC decoders
JP5434454B2 (ja) 復号化装置
CN112470406A (zh) 用于针对非二进制码的消息传递解码的基本校验节点处理的排序设备和方法

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090428

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090511

R150 Certificate of patent or registration of utility model

Ref document number: 4320418

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120612

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120612

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130612

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees