JP2009177416A - 復号装置および方法、プログラム、並びに記録媒体 - Google Patents

復号装置および方法、プログラム、並びに記録媒体 Download PDF

Info

Publication number
JP2009177416A
JP2009177416A JP2008012946A JP2008012946A JP2009177416A JP 2009177416 A JP2009177416 A JP 2009177416A JP 2008012946 A JP2008012946 A JP 2008012946A JP 2008012946 A JP2008012946 A JP 2008012946A JP 2009177416 A JP2009177416 A JP 2009177416A
Authority
JP
Japan
Prior art keywords
decoding
value
decoding device
input
range
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.)
Granted
Application number
JP2008012946A
Other languages
English (en)
Other versions
JP4572937B2 (ja
Inventor
Hiroyuki Yamagishi
弘幸 山岸
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP2008012946A priority Critical patent/JP4572937B2/ja
Priority to US12/346,372 priority patent/US20090187802A1/en
Priority to EP09000796A priority patent/EP2083519A3/en
Publication of JP2009177416A publication Critical patent/JP2009177416A/ja
Application granted granted Critical
Publication of JP4572937B2 publication Critical patent/JP4572937B2/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/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
    • 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/1125Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using different domains for check node and bit node processing, wherein the different domains include probabilities, likelihood ratios, likelihood differences, log-likelihood ratios or log-likelihood difference pairs
    • 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/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/1177Regular LDPC codes with parity-check matrices wherein all rows and columns have the same row weight and column weight, respectively
    • 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
    • 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/6591Truncation, saturation and clamping

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Error Detection And Correction (AREA)

Abstract

【課題】演算に係る処理を軽減する。
【解決手段】LDPC符号における復号を実行するLDPC符号復号装置50に含まれるチェックノード処理演算器54への入力を、LDPC符号復号装置50への入力である受信値が、取りうる値よりも狭い範囲に制限する。この制限により、復号性能を殆ど劣化させることなく、復号において関数fの演算、チェックノード処理演算器54における加算部および関数f-1の演算を簡略化することができる。本発明は、LDPC符号における復号を行う復号装置に適用できる。
【選択図】図5

Description

本発明は復号装置および方法、プログラム、並びに記録媒体に関し、特に、復号に係わる演算を簡略化することができるようにした復号装置および方法、プログラム、並びに記録媒体に関する。
近年、例えば、移動体通信などの通信分野、および地上波放送や衛星デジタル放送といった放送分野の研究が著しく進められているが、それに伴い、誤り訂正符号化および復号の効率化を目的として符号理論に関する研究も盛んに行われている。
符号性能の理論的限界としては、いわゆるシャノン(C. E. Shannon)の通信路符号化定理によって与えられるシャノン限界が知られている。符号理論に関する研究は、このシャノン限界に近い性能を示す符号を開発することを目的として行われている。近年では、古くから知られる符号化方法である低密度パリティ検査符号(Low Density Parity Check codes)(以下、LDPC符号という)が脚光を浴びつつある。
LDPC符号は、R. G. Gallagerによる「R. G. Gallager, "Low-Density Parity-Check Codes", IRE Transations on Information Theory, 1962」(非特許文献1)において最初に提案されたものであり、その後、「D. J. C. MacKay, "Good error correcting codes based on very sparse matrices", Submitted to IEEE Trans. Inf. Theory, IT-45, pp. 399-431, 1999」や、「M. G. Luby, M. Mitzenmacher, M. A. Shokrollahi and D. A. Spielman, "Analysis of low density codes and improved designs using irregular graphs", in Proceedings of ACM Symposium on Theory of Computing, pp. 249-258, 1998」等において再注目されるに至ったものである。
LDPC符号は、近年の研究により、符号長を長くしていくに従って、シャノン限界に近い性能が得られることがわかりつつある。
R. G. Gallager, "Low-Density Parity-Check Codes", IRE Transations on Information Theory, 1962
ところで、LDPC符号方式で符号化されたデータを復号する場合、その復号に係る演算量は、所定の関数を用いた演算などを含むため増大する傾向にある。しかしながら、演算量を低減することで、処理能力の低い装置であっても復号を行うことができるようになり、コストを低減させることができ、処理時間を短縮することができるようになる。よって、復号時の演算量の低減が望まれている。
本発明は、このような状況に鑑みてなされたものであり、符号化されたデータの復号に係る演算量を低減することができるようにするものである。
本発明の一側面の復号装置は、符号化される前の情報語を推定する復号装置において、前記復号装置の入力として用いる値が取りうる値よりも狭い範囲に、処理する範囲を限定し、その限定された範囲内での値と、その値を所定の関数に代入したときの演算結果を関連付けたルックアップテーブルを参照した演算を行う過程を含む復号を行う。
前記復号は、LDPC符号化方式に基づく復号であるようにすることができる。
前記ルックアップテーブルは、チェックノードから変数ノードへのメッセージを演算するようにすることができる。
変数ノードからチェックノードへのメッセージを計算するとき、出力する前記メッセージの範囲を制限する演算を行うようにすることができる。
本発明の一側面の復号方法は、符号化される前の情報語を推定する復号装置の復号方法において、前記復号装置の入力として用いる値が取りうる値よりも狭い範囲に値を制限し、その制限された範囲内での値と、その値を所定の関数に代入したときの演算結果を関連付けたルックアップテーブルを参照した演算を行う過程を含む復号を行う。
本発明の一側面のプログラムは、符号化される前の情報語を推定する復号装置の復号を制御するコンピュータが読み取り可能なプログラムにおいて、前記復号装置の入力として用いる値が取りうる値よりも狭い範囲に値を制限し、その制限された範囲内での値と、その値を所定の関数に代入したときの演算結果を関連付けたルックアップテーブルを参照した演算を行う過程を含む復号を行う。
本発明の一側面の記録媒体は、前記プログラムが記録されている。
本発明の一側面の復号装置および方法、プログラム、並びに記録媒体においては、復号装置の入力として用いられる値よりも狭い範囲に制限された値と、その制限された値を所定の関数に代入したときの演算結果とが関連付けられているテーブルが参照されて復号が行われる。
本発明の一側面によれば、復号に係る演算量を低減させることが可能となる。
以下に、本発明の実施の形態について図面を参照して説明する。
図1は、LDPC(Low Density Parity Check codes)符号を用いた通信システムの一実施の形態の構成を示す図である。図1に示した通信システムは、LDPC符号化部11、通信路12、およびLDPC符号復号部13を含む構成とされている。送信側のLDPC符号化部11は、情報語をLDPC符号化し、通信路13に送出する。
受信側のLDPC符号復号部13は、通信路12から雑音を含む信号を受信し、送信側で行われた符号化の規則(この場合、LDPC符号化部11で行われたLDPC符号)に基づいた復号を行い、情報語を推定して図示してない後段の処理に出力する。
このような通信システム、特にターボ符号やLDPC符号などを用いた通信システムにおいては、軟判定情報を用いた繰り返し復号が行われる。
LDPC符号は図1に示したような通信システムに限らず、記録再生チャネルにも応用できる。図2は、LDPC符号を用いた記録再生システムの一実施の形態の構成を示す図である。図2に示した記録再生システムは、LDPC符号化部21、記録/再生チャンネル22、およびLDPC符号復号部23を含む構成とされている。
記録時には情報語がLDPC符号化部21で、LDPC符号化され、記録媒体に記録される。再生時には、LDPC符号復号部23で、記録媒体から雑音を含んだ信号が読み取られ、記録時に行われた符号化の規則(この場合、LDPC符号化部21で行われたLDPC符号)に基づいた復号が行われ、情報語を推定して図示していない後段の処理に出力される。
ここで、LDPC符号について説明を加える。LDPC符号は、低密度パリティ検査符号であり、1962年、Robert G. Gallagerによって発表された符号化方式である。LDPC符号は、そのパリティ検査行列の非零の要素数が全要素数に対して少ない(低密度)ことを特徴とする線形符号である。LDPC符号は、パリティ検査行列の2部グラフ(bipartite graph)に短いサイクルが含まれないように構成することにより、繰り返し復号によって良好なビットエラー特性を示すことが知られている。
一般的に雑音や消失のある通信路では、情報語が受信側で正しく推定されるように誤り訂正符号が用いられる。
符号長NのLDPC符号の任意の符号語ベクトルcは、M行N列のパリティ検査行列をHとすると、
Hc=0 ・・・(1)
を満たす。式(1)はM個のパリティ検査方程式を表している。
LDPC符号は、特に2元符号に限るものではないが、以下では2元符号の場合に限定して説明する。しかしながら、以下に説明する本発明が、2元符号の場合に限定されることを示しているのではない。
次式(2)は、LDPC符号のパリティ検査行列の一例を示す式である。
Figure 2009177416
パリティ検査行列の各行はそれぞれ、パリティ検査方程式を表し、各列は符号ビットに対応する。LDPC符号は、パリティ検査行列あるいは2部グラフを元に、メッセージパッシング(message-passing)アルゴリズムによって復号できることが知られている。
M行N列のパリティ検査行列に対応する2部グラフは、チェック(check)に対応するM個のノード(node)と、変数(variable)に対応するN個のノード、およびノードを接続するエッジ(edge)により構成される。エッジは、パリティ検査行列の非零要素の場所に対応しており、第m行第n列の要素が零でない場合にのみm番目のチェックノードとn番目の変数ノードがエッジで接続される。ここでmは0以上M未満の整数であり、nは0以上N未満の整数である。
図3は、式(2)のパリティ検査行列Hに対応した2部グラフを示している。図3中、丸はチェックノードCを示し、四角は変数ノードVを示している。図3に示した2部グラフは、丸で表された5個のチェックノードCと、四角で表された10個の変数ノードVで構成されている。
メッセージパッシングアルゴリズムによるLDPC符号の復号は、エッジで接続されたノード間にメッセージを伝搬させることによって行われ、図4に示したフローチャートに示すような手順が繰り返されることにより行われる。
ステップS11において、変数ノードからチェックノードへのメッセージの初期化が行われる。すなわち、変数ノードからチェックノードに伝搬するメッセージQm,nが、復号装置の入力である受信値Pnに初期化される。以下においてPnは対数尤度比であるとして扱う。
なお、以下の説明においては、“受信値”との記載を行うが、本発明は、受信される値のみに適用されることを示すのではなく、換言すれば、図1に示したような通信路12を介したときに受信される値を扱う場合にのみ、本発明が適用されることを示す記載ではない。例えば、図2に示したような記録/再生チャンネル22で再生された再生信号の値を扱う場合にも本発明を適用することは、勿論可能である。
ステップS12において、チェックノードから変数ノードへのメッセージが計算される。この処理は、チェックノードから変数ノードに伝播するメッセージRm,nを次式(3)に基づく演算が行われることにより更新される。
Figure 2009177416
式(3)において、N(m)はm番目のチェックノードに接続されている変数ノード番号の集合であり、αm,n=sign(Qm,n)、βm,n=|Qm,n|はそれぞれQm,nの符号、および絶対値を表し、関数fは次式(4)で与えられる。
Figure 2009177416
ステップS13において、変数ノードにおける処理として、変数ノードからチェックノードへのメッセージが計算され、復号結果の硬判定により得られる符号語の推定値のシンドロームを計算する。この計算は、事後対数尤度比Qnを、次式(5)により求めることで行われる。
Figure 2009177416
式(5)において、M(n)はn番目の変数ノードに接続されているチェックノード番号の集合である。さらに繰り返しが必要な場合、次式(6)に従って変数ノードからチェックノードに伝搬されるメッセージQm,nが更新される。
Figure 2009177416
メッセージパッシングアルゴリズムによる復号は、終了条件を満たすまでステップS12とステップS13の処理が繰り返され、最後にQnの硬判定で符号語が推定される。ステップS14において、繰り返しの処理を終了するか否かの判定が行われる。繰り返しを終了すると判断されるのは、以下の条件1または条件2が成り立つときである。
条件1.Qnの硬判定より得られる符号語の推定値をzとするとき、シンドロームHzが0となれば終了
条件2.予め設定されている繰り返し回数に達した時点で終了
ステップS14において、条件1または条件2のいずれか一方でも成り立ったとき、ステップS15に処理が進められ、復号結果が後段の処理に出力される。LDPC符号を組織符号とした場合には、推定した符号語のパリティに相当する部分を取り除き情報語に相当する部分を取り出すことにより情報語の推定値を得ることができる。一方、条件1および条件2のいずれの条件も成り立っていないときには、ステップS12に処理が戻され、それ以降の処理が繰り返される。
このような処理を行う復号装置の構成について説明する。図5は、LDPC符号におけるLDPC符号復号装置の一実施の形態の構成を示す図である。図5に示したLDPC符号復号装置50は、メモリ51、変数ノード処理演算器52、メモリ53、チェックノード処理演算器54、メモリ55、および硬判定復号器56を含む構成とされている。
図5に示したLDPC符号復号装置50は、同一の装置で複数回の繰り返し復号を行うものであるが、初期化や繰り返し終了条件の判定部を省略した構成を示している。また以下の説明においては、全ての変数ノード、チェックノードにおける演算をパラレルに行うフルパラレルデコーダを想定して説明を行う。しかしながら、複数のノードの演算を1つまたは複数の演算器で処理する構成もあり、また、メモリ51、メモリ53のいずれか一方を持たない構成もある。そのような構成であっても、本発明を適用できるため、パラレルに行う場合のみに本発明が適用できることを限定しているわけではない。また対数尤度比やノード間を伝播するメッセージは量子化され、有限のビット数で表現されるとして説明を続ける。
メモリ51には、復号装置の入力である受信値が入力され、一旦蓄積される。メモリ51に蓄積されている受信値は、変数ノード処理演算器52に供給される。変数ノード処理演算器52は、図4に示したフローチャートのステップS13の処理を実行する部分である。メモリ53は、変数ノード処理演算器52の処理が施されたデータを一旦記憶し、チェックノード処理演算器54に供給する。
チェックノード処理演算器54は、図4に示したフローチャートのステップS12の処理を実行する部分である。メモリ55は、チェックノード処理演算器54の処理が施されたデータを一旦記憶し、変数ノード処理演算器52に供給する。変数ノード処理演算器52からの出力は、硬判定復号器56に供給される。硬判定復号器56からは、推定された符号語または情報語が後段の図示していない処理部に出力される。
図5に示したLDPC符号復号装置50には、量子化された受信値Pnが入力され、メモリ51に一旦格納される。ステップS13の処理を行う変数ノード処理演算器52と、ステップS12の処理を行うチェックノード処理演算器54は交互に動作をし、硬判定復号結果を出力する。
ここでLDPC符号復号装置50への入力Pnは、例えば、A/D(Analog/Digital)コンバータでデジタル信号に変換された値Pnであり、例えば、量子化ステップq、量子化レベルの数2M1で量子化されているものとする。すなわち、受信値の量子化後の値yは、量子化前の値xとは次式(7)で関係付けられているものとする。
Figure 2009177416
ここでLIMIT1は、出力を次式(8)で示される範囲に制限する演算を行う関数である。
Figure 2009177416
ただし、LDPC符号復号装置50内部での数値表現は、値yそのものではなく整数値を用いた方が扱いやすい。例えば、内部表現を、
y’=y/q−0.5
とすれば、y’は、―M1からM1―1の間の整数値を取ることになる。よって、このように表現し、整数値を用いて処理が行えるように構成することも可能である。
図3に示した2部グラフにおけるチェックノードC0に対応するチェックノード処理演算器54のブロック図を図6に示す。また、図3に示した2部グラフにおける変数ノードV0に対応する変数ノード処理演算器52のブロック図を図7に示す。
図5におけるチェックノード処理演算器54は、図6に示したチェックノード処理演算器52と類似の回路ブロックを計5個含む。これは、図3を参照するにチェックノードがチェックノードC0乃至C4の5個あるからである。また、図5における変数ノード処理演算器52は、図7に示した変数ノード処理演算器52と類似の回路ブロックを計10個含む。これは、図3を参照するに変数ノードが変数ノードV0乃至V9の10個あるからである。
図6に示したチェックノード処理演算器54は、式(3)に基づく演算を行うための構成を有している。すなわち図6に示したチェックノード処理演算器54は、所定の関数fに基づく演算を行う演算部101−1乃至101−6、総和演算を行う演算部102、入力される2つの値のうち一方から他方を減算する減算部103−1乃至103−6、所定の関数f-1に基づく演算を行う演算部104−1乃至104−6、入力される2つの値を乗算する乗算部105−1乃至105−6、入力される2つの値を乗算する乗算部106−1乃至106−6、および総積演算を行う演算部107を含む構成とされている。
図6中、F_LUTは関数fに対応する演算を表し、F_INVは関数f-1に対応する演算を表している。演算部101−1乃至101−6はそれぞれ、関数fに対応する演算を、入力されるβ0,0乃至β0,6に対して施し、演算部104−1乃至104−6はそれぞれ、関数f-1に対応する演算を、入力される、対応する減算部103−1乃至103−6からの出力に対して施す。
ここで、演算部101−1乃至101―6(以下、演算部101−1乃至101−6をそれぞれ個々に区別する必要がない場合、単に演算部101と記述する。他の部分も同様に記述する)に入力される値が、どのような値であるかわからない場合、入力がある毎に、関数fに基づく演算を行う必要がある。しかしながら、ある程度、どのような値が入力されるかが想定できる場合、予め入力された値と、その値を関数fに代入したときの演算結果を対応付けたテーブルを用意することができ、その用意されたテーブルを参照することで、演算結果を出力することが可能となる。
すなわち、関数fの演算は、入力が量子化されて有限個の値をとるならば、ルックアップテーブル(LUT)を参照することで実装することができる。
また、関数f-1の演算は、例えば、入力と固定値f(0.5q), f(1.5q), f(2.5q)などとの比較演算を行い、入力がf(0.5q)以上であれば0を、整数k>0として入力がf(q(k+0.5))以上f(q(k-0.5))未満であればkqを出力するというような構成とすることができる。
図7に示した変数ノード処理演算器52は、式(5)および式(6)の演算を行うための構成を有している。すなわち、図7に示した変数ノード処理演算器52は、入力される値の総和を演算する演算部121、入力される2つの値のうち一方から他方を減算する減算部122−1乃至122−3、および、所定の演算を行う演算部123−1乃至123−3を有する構成とされている。
演算部123−1乃至123−3は、それぞれ、式(8)で示される演算を行う。すなわちこの場合、LIMIT1は、F_LUTで参照される値が定数M1で定められる上限と下限の間の範囲に収まるように、式(6)の演算結果に対して式(8)の演算を施す。
一般に、量子化後の数値において隣り合うレベルの差(量子化ステップ)をより細かく取り、量子化レベルの数を多くすれば、量子化によるビット誤り率(BER)の劣化は抑えられ良好な復号特性が得られる。しかしながら、量子化ステップを細かくすると、演算が複雑になり装置は大規模になる。逆に、量子化ステップを粗く取り、量子化レベルの数を少なくすれば、演算は簡単になるが、量子化による劣化が大きくなる。
また、LDPCの復号においては、チェックノードの演算において関数f、関数f-1による非線形な変換が行われるため、入力値の取りうる範囲が広いほどチェックノード処理演算器54では精度の高い演算が行われ、良好な復号特性が得られる。逆に、入力値の取りうる範囲が狭くなれば、チェックノード処理演算器54における演算の精度も低くなり、量子化による劣化が大きくなる。
通常は、量子化による劣化が許容できる範囲において、演算が複雑になりすぎないように、量子化ステップと量子化レベルの数が設定される。例えば、特定の信号対雑音電力比において要求されるビット誤り率(BER)を達成できる最小のビット数で表現できる量子化ステップと量子化レベルの数が選択される。
以下に、具体的なLDPC符号を用いた場合のシミュレーション結果を示す。LDPC符号は、符号長2448、情報ビット長2312の準巡回符号で、パリティ検査行列Hは次式(9)で表される136行2448列の行列が用いられる。
H=[H012 ・・・H135] ・・・(9)
ここで、各Hj(0≦j<136)は、それぞれ136行18列の小行列を表す。H0は、次式(10)で表される。なお式(10)において点(.)は0を表す。
Figure 2009177416
また、Hj(0<j<136)の第s行第t列要素(0≦s<136,0≦t<18)は、H0の第(s+j) mod 136行第t列要素に等しく、次式(11)が満たされる。
Figure 2009177416
パリティ検査行列Hの行重み(column weight)は3、列重み(row weight)は54であり、このようなパリティ検査行列Hで表されるLDPC符号はregular LDPC符号である。
図8は、量子化ステップq=1とし、M1を7,8,9,10,11,12,16とした場合のBPSK白色雑音通信路における復号後BER特性を表したグラフである。図8に示したグラフにおいて、横軸は情報1ビットあたりのエネルギー対雑音電力密度(Eb/N0)、縦軸は復号後のBERであり、繰り返し復号は、最大16回とした。
図8に示したグラフより、M1の値が小さいほどBERは劣化することがわかる。しかしながら、M1が大きな値、例えば、M1=12のときには、入力値の範囲を制限したとしても、そのことによる劣化はほぼ見られないことがわかる。
図10は、シミュレーション結果からBER=10-6となるEb/N0の値をM1毎に求めてプロットしたグラフである。すなわち、図10において横軸はM1の値であり、縦軸はBER=10-6を達成するのに必要なEb/N0の値となる。
図10に示したグラフからも、12未満のM1では、BER=10-6を達成するのに必要なEb/N0の値はM1=16の場合に比べて増加し、BER性能が劣化するが、M1を12以上とすれば、M1=16の場合とほぼ同じBER性能が得られることがわかる。
表1は、M1=12の場合のF_LUTの入出力(例えば、図6の演算部101−1乃至101−6にそれぞれ入力される値と、出力される値)を表している。
Figure 2009177416
1=12のときは、変数ノードからチェックノードへのメッセージQm,nは−11.5から11.5までの24通りの数値を取り、その絶対値βm,nは0.5から11.5までの12通りの数値を取る。表1に示されるLUTの出力ダイナミックレンジで決まるF_LUT出力ビット数は、15ビットであるため、F_LUTの大きさは12×15=180ビットの容量となる。
例えば、受信値およびメッセージを共に5ビットで表す場合、上記関数fによる変換は、メッセージの絶対値部分の4ビットの値に対して、それぞれ24=16通りの関数値が対応される。
また別の例として、受信値およびメッセージを共に6ビットで表す場合、上記関数fによる変換は、メッセージの絶対値部分5ビットの値に対して、それぞれ25=32通りの関数値が対応される。
入力aビット、出力bビットのLUTの容量は、2a×bの大きさとなり、入力の量子化レベルの数2aが多くなるほど、また出力のビット精度bが大きくなるほど、LUTは複雑になる可能性がある。そこで、LDPC符号復号装置50のチェックノード処理演算器54への入力を復号装置入力(受信値)が取りうる値よりも狭い範囲に制限し、チェックノード処理演算器54の演算を簡略化する。
図10は、変数ノード処理演算器52’のブロック図である。図7に示した変数ノード処理演算器52と比較するに、図10に示した変数ノード処理演算器52’は、式(6)の演算結果に対して施す演算が、LIMIT1からLIMIT2になっている点で異なる。すなわち、図10に示した変数ノード処理演算器52’は、演算部201−1乃至201−3がLIMIT2に係わる演算を行う構成とされている点が、図7に示した変数ノード処理演算器52と異なり、その他の構成は同じである。このような構成とされている図10に示した変数ノード処理演算器52’を、図5に示したLDPC符号復号装置50の変数ノード処理演算器52の代わりに用いることは可能である。
演算部201で行われるLIMIT2に係わる演算は、M2<M1なる整数M2とし、その出力を−q(M2―0.5)からq(M2―0.5)の範囲に制限する演算を行う。すなわち、次式(12)の演算を行う。
Figure 2009177416
関数fの入力で取りうる値の数がM1からM2へと少なくなることと、関数出力のダイナミックレンジが小さくなることから、関数fの演算に必要な回路、例えば、LUT(ルックアップテーブル)を簡単な構成とすることが可能となる。また、関数fによる変換後のビット数が少なくなることから、チェックノード処理演算器54における総和、減算および関数f-1の演算を簡単にすることが可能となる。
次に、M2<M1による制限を用いても、適切なM2を選択することによりBER性能が劣化しないことを、シミュレーション結果を用いて示す。復号のシミュレーションとして用いたLDPC符号は、上記した場合と同様に、符号長2448、情報ビット長2312の準巡回符号で、パリティ検査行列Hは式(9)で表される136行2448列の行列が用いられた場合である。
図11は、受信値入力の量子化を量子化ステップq=1、M1=16とし、M2を5,6,7,16とした場合のBPSK白色雑音通信路における復号後BER特性を表している。M2=16は、上述した変数ノード処理演算器52を用いた場合の復号方法においてM1=16とした場合と同様である。
図11に示したグラフより、M2が6以下の値ではBERは劣化するが、M2を7とすればF_LUT入力の値の範囲を制限したことによる劣化は見られないことが読み取れる。
表2は、M2=7の場合のF_LUTの入出力を表している。
Figure 2009177416
2=7のときは、変数ノードからチェックノードへのメッセージQm,nは、−6.5から6.5までの14通りの数値を取り、その絶対値βm,nは、0.5から6.5までの7通りの数値を取る。表2で示されるLUTの出力ダイナミックレンジで決まるF_LUTの出力ビット数は、8ビットであるため、F_LUTの大きさは7×8=56ビットの容量となる。これは上記したM1=12の場合のF_LUTの容量と比べると、約69%の削減となることがわかる。
また、チェックノード処理演算器54における総和、減算および関数f-1の入力は、M1=M2=12の場合より少ないビット数となり、演算を簡略化することが可能となる。
図12は、シミュレーション結果からBER=10-6となるEb/N0の値を、M2毎に求めてプロットしたグラフである。すなわち、図12において横軸はM2の値であり、縦軸はBER=10-6を達成するのに必要なEb/N0の値である。
図12に示したグラフからも、7未満のM2ではBER=10-6を達成するのに必要なEb/N0の値は、M2=16の場合に比べて増加する。しかしながら、M2を7以上16未満とすれば、M2=16の場合と比べてわずかに小さなEb/N0の値でもBER=10-6を達成することが可能となることがわかる。
一般のLDPC復号の過程でチェックノードにおける演算では、式(3)において、次式(13)の演算を行う。
Figure 2009177416
この式(13)で示される演算は、βm,n'=|Qm,n'|の最小値よりも小さな値となる。すなわち、変数ノードからチェックノードへのメッセージQm,nの絶対値(信頼度の大きさ)が、全て大きな値であったとしても、式(3)によって得られるチェックノードから変数ノードへのメッセージのRm,nの絶対値(信頼度の大きさ)は、それよりも小さくなる。
仮に、βm,n'=|Qm,n'|が全て6.5であったとすると、Rm,n絶対値は、パリティ検査行列Hの列重みが54であることから、次式(14)で示す値となり、βm,n'=|Qm,n'|=6.5に比べて非常に低い信頼度となってしまう。
Figure 2009177416
一方、表2で定義したLUTでは、βm,n'=|Qm,n'|=6.5に対応する関数fの値を0としたため、βm,n'=|Qm,n'|が、全て6.5であったとした場合のF_INVは、6を出力する。従って、変数ノードからチェックノードへの信頼度が大きな値となっても信頼度の低下を抑える効果により、M2=16の場合と比べてBER特性が改善されることになる。
このように、チェックノード処理演算器54への入力を、LDPC符号復号装置50への入力である受信値が取りうる値よりも狭い範囲に制限する(処理する範囲を制限する)ことで、復号性能を殆ど劣化させることなく、復号において関数fの演算、チェックノード処理演算器54における総和、減算および関数f-1の演算を簡略化することができる。
上述した一連の処理、例えば、LUTを参照して入力値を出力値に変換する処理などは、ハードウェアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
図13は、上述した一連の処理をプログラムにより実行するパーソナルコンピュータのハードウェアの構成の例を示すブロック図である。
コンピュータにおいて、CPU(Central Processing Unit)501、ROM(Read Only Memory)502、RAM(Random Access Memory)503は、バス504により相互に接続されている。
バス504には、さらに、入出力インターフェース505が接続されている。入出力インターフェース505には、キーボード、マウス、マイクロホンなどよりなる入力部506、ディスプレイ、スピーカなどよりなる出力部507、ハードディスクや不揮発性のメモリなどよりなる記憶部508、ネットワークインタフェースなどよりなる通信部509、磁気ディスク、光ディスク、光磁気ディスク、あるいは半導体メモリなどのリムーバブルメディア511を駆動するドライブ510が接続されている。
以上のように構成されるコンピュータでは、CPU501が、例えば、記憶部508に記憶されているプログラムを、入出力インターフェース505及びバス504を介して、RAM503にロードして実行することにより、上述した一連の処理が行われる。
コンピュータ(CPU501)が実行するプログラムは、例えば、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)等)、光磁気ディスク、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア511に記録して、あるいは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供される。
そして、プログラムは、リムーバブルメディア511をドライブ510に装着することにより、入出力インターフェース505を介して、記憶部508にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部509で受信し、記憶部508にインストールすることができる。その他、プログラムは、ROM502や記憶部508に、あらかじめインストールしておくことができる。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
LDPC符号復号システムの一例を示す図である。 LDPC符号復号システムの一例を示す図である。 パリティ検査行列に対応した2部グラフを示す図である。 LDPC符号の復号アルゴリズムを説明するフローチャートである。 LDPC符号復号に係わる回路構成を示す図である。 チェックノード処理演算器の詳細の構成を示す図である。 変数ノード処理演算器の詳細の構成を示す図である。 ビット誤り率特性を示す図である。 ビット誤り率特性を示す図である。 変数ノード処理演算器の詳細の構成を示す図である。 ビット誤り率特性を示す図である。 ビット誤り率特性を示す図である。 記録媒体について説明するための図である。
符号の説明
50 LDPC符号復号装置, 51 メモリ, 52 変数ノード処理演算器, 53 メモリ, 54 チェックノード処理演算器, 55 メモリ, 56 硬判定符号器

Claims (7)

  1. 符号化される前の情報語を推定する復号装置において、
    前記復号装置の入力として用いる値が取りうる値よりも狭い範囲に、処理する範囲を限定し、その限定された範囲内での値と、その値を所定の関数に代入したときの演算結果を関連付けたルックアップテーブルを参照した演算を行う過程を含む復号を行う
    復号装置。
  2. 前記復号は、LDPC符号化方式に基づく復号である
    請求項1に記載の復号装置。
  3. 前記ルックアップテーブルは、チェックノードから変数ノードへのメッセージを演算するときに参照される
    請求項2に記載の復号装置。
  4. 変数ノードからチェックノードへのメッセージを計算するとき、出力する前記メッセージの範囲を制限する演算を行う
    請求項2に記載の復号装置。
  5. 符号化される前の情報語を推定する復号装置の復号方法において、
    前記復号装置の入力として用いる値が取りうる値よりも狭い範囲に、処理する範囲を限定し、その限定された範囲内での値と、その値を所定の関数に代入したときの演算結果を関連付けたルックアップテーブルを参照した演算を行う過程を含む復号を行う
    復号方法。
  6. 符号化される前の情報語を推定する復号装置の復号を制御するコンピュータが読み取り可能なプログラムにおいて、
    前記復号装置の入力として用いる値が取りうる値よりも狭い範囲に、処理する範囲を限定し、その限定された範囲内での値と、その値を所定の関数に代入したときの演算結果を関連付けたルックアップテーブルを参照した演算を行う過程を含む復号を行う
    プログラム。
  7. 請求項6に記載のプログラムが記録されている記録媒体。
JP2008012946A 2008-01-23 2008-01-23 復号装置および方法、プログラム、並びに記録媒体 Expired - Fee Related JP4572937B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2008012946A JP4572937B2 (ja) 2008-01-23 2008-01-23 復号装置および方法、プログラム、並びに記録媒体
US12/346,372 US20090187802A1 (en) 2008-01-23 2008-12-30 Decoding device and method, program, and recording medium
EP09000796A EP2083519A3 (en) 2008-01-23 2009-01-21 Decoding of low density parity check (LDPC) codes using quantized node operations with limited input range

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008012946A JP4572937B2 (ja) 2008-01-23 2008-01-23 復号装置および方法、プログラム、並びに記録媒体

Publications (2)

Publication Number Publication Date
JP2009177416A true JP2009177416A (ja) 2009-08-06
JP4572937B2 JP4572937B2 (ja) 2010-11-04

Family

ID=40546044

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008012946A Expired - Fee Related JP4572937B2 (ja) 2008-01-23 2008-01-23 復号装置および方法、プログラム、並びに記録媒体

Country Status (3)

Country Link
US (1) US20090187802A1 (ja)
EP (1) EP2083519A3 (ja)
JP (1) JP4572937B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011182217A (ja) * 2010-03-02 2011-09-15 Hitachi Kokusai Electric Inc 送信機、dstbc符号器及びdstbc符号器の符号化方法
WO2020170435A1 (ja) * 2019-02-22 2020-08-27 三菱電機株式会社 誤り訂正復号装置および誤り訂正復号方法

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012124888A (ja) * 2010-11-15 2012-06-28 Fujitsu Ltd 復号装置及び復号方法
US20150207523A1 (en) * 2014-01-21 2015-07-23 Samsung Electronics Co., Ltd. Low-power dual quantization-domain decoding for ldpc codes
JP6426272B2 (ja) 2015-10-13 2018-11-21 華為技術有限公司Huawei Technologies Co.,Ltd. 復号デバイスおよび方法、および信号送信システム
US9806743B2 (en) 2015-11-16 2017-10-31 Mitsubishi Electric Research Laboratories, Inc. System and method of belief propagation decoding
US10548158B2 (en) * 2016-03-10 2020-01-28 Huawei Technologies Co., Ltd. Message passing algorithm decoder and methods

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006304130A (ja) * 2005-04-25 2006-11-02 Sony Corp 復号装置および復号方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6938196B2 (en) * 2001-06-15 2005-08-30 Flarion Technologies, Inc. Node processors for use in parity check decoders
JP3815557B2 (ja) * 2002-08-27 2006-08-30 ソニー株式会社 符号化装置及び符号化方法、並びに復号装置及び復号方法
JP2004088470A (ja) * 2002-08-27 2004-03-18 Sony Corp 復号装置及び復号方法
US7296216B2 (en) * 2003-01-23 2007-11-13 Broadcom Corporation Stopping and/or reducing oscillations in low density parity check (LDPC) decoding
JP4296949B2 (ja) * 2004-02-03 2009-07-15 ソニー株式会社 復号装置及び方法、並びに情報処理装置及び方法
US7475103B2 (en) * 2005-03-17 2009-01-06 Qualcomm Incorporated Efficient check node message transform approximation for LDPC decoder
JP4293172B2 (ja) * 2005-09-13 2009-07-08 ソニー株式会社 復号装置および復号方法
US7831887B2 (en) * 2005-12-15 2010-11-09 General Instrument Corporation Method and apparatus for using long forward error correcting codes in a content distribution system
KR20070084952A (ko) * 2006-02-22 2007-08-27 삼성전자주식회사 통신 시스템에서 신호 수신 장치 및 방법
JP2008012946A (ja) 2006-07-03 2008-01-24 Toyota Motor Corp 車室材構造
US8005141B2 (en) * 2006-07-19 2011-08-23 International Business Machines Corporation Method for efficient encoding and decoding quantized sequence in Wyner-Ziv coding of video

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006304130A (ja) * 2005-04-25 2006-11-02 Sony Corp 復号装置および復号方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011182217A (ja) * 2010-03-02 2011-09-15 Hitachi Kokusai Electric Inc 送信機、dstbc符号器及びdstbc符号器の符号化方法
WO2020170435A1 (ja) * 2019-02-22 2020-08-27 三菱電機株式会社 誤り訂正復号装置および誤り訂正復号方法
US11522562B2 (en) 2019-02-22 2022-12-06 Mitsubishi Electric Corporation Error correcting decoding device and error correcting decoding method

Also Published As

Publication number Publication date
EP2083519A2 (en) 2009-07-29
US20090187802A1 (en) 2009-07-23
EP2083519A3 (en) 2012-08-08
JP4572937B2 (ja) 2010-11-04

Similar Documents

Publication Publication Date Title
JP4702632B2 (ja) 符号化方法および符号化装置、並びにプログラム
US11323134B2 (en) Encoding method and device and decoding method and device for structured LDPC
JP4595650B2 (ja) 復号装置および復号方法
JP4572937B2 (ja) 復号装置および方法、プログラム、並びに記録媒体
JP4296949B2 (ja) 復号装置及び方法、並びに情報処理装置及び方法
JP4743156B2 (ja) 復号装置
JP4858335B2 (ja) 符号化方法および符号化装置
US10103751B2 (en) Non-concatenated FEC codes for ultra-high speed optical transport networks
EP1432130A1 (en) Decoding device and decoding method
KR20090126829A (ko) 반복 복호 방법과 반복 복호 장치
KR20080035585A (ko) Ldpc 코드용 디코더 및 ldpc 디코딩 방법
JP2007081601A (ja) 復号装置および復号方法
JP2004088468A (ja) 符号化装置及び符号化方法、並びに復号装置及び復号方法
JP2008035527A (ja) ハードウェア共用および直列和積アーキテクチャを用いる低密度パリティ検査復号の方法および装置
JP2005051469A (ja) 符号化装置および符号化方法、並びにプログラム
JP5790029B2 (ja) 復号装置、復号方法、およびプログラム
JP6395658B2 (ja) 誤り訂正復号装置、受信装置及び誤り訂正復号方法
JP2006135813A (ja) 低密度パリティチェック符号復号器及び方法
JP2010028408A (ja) 情報処理装置、情報処理方法、およびプログラム
JP5034588B2 (ja) 軟判定復号装置および軟判定復号プログラム
JP5288222B2 (ja) 符号化方法および符号化装置
JP2004088449A (ja) 符号化装置及び符号化方法、並びに復号装置及び復号方法
JP5500203B2 (ja) 軟判定復号装置および軟判定復号プログラム
JP4288582B2 (ja) 復号装置および復号方法、並びにプログラム
JP2004104686A (ja) 符号解析方法及び符号解析装置、並びに復号方法及び復号装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091030

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100219

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: 20100720

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: 20100802

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

Free format text: PAYMENT UNTIL: 20130827

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees