JP4845846B2 - 復号装置および復号プログラム - Google Patents

復号装置および復号プログラム Download PDF

Info

Publication number
JP4845846B2
JP4845846B2 JP2007262858A JP2007262858A JP4845846B2 JP 4845846 B2 JP4845846 B2 JP 4845846B2 JP 2007262858 A JP2007262858 A JP 2007262858A JP 2007262858 A JP2007262858 A JP 2007262858A JP 4845846 B2 JP4845846 B2 JP 4845846B2
Authority
JP
Japan
Prior art keywords
message
node
input signal
check
bit
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
JP2007262858A
Other languages
English (en)
Other versions
JP2009094750A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2007262858A priority Critical patent/JP4845846B2/ja
Publication of JP2009094750A publication Critical patent/JP2009094750A/ja
Application granted granted Critical
Publication of JP4845846B2 publication Critical patent/JP4845846B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Error Detection And Correction (AREA)

Description

本発明は復号装置および復号プログラムに関し、特に低密度パリティ検査符号を復号する復号装置および復号プログラムに関する。
現在、ネットワーク上でのデータ通信や記録媒体に対するデータの読み書きにおいて、誤り訂正符号技術が一般的に用いられている。誤り訂正符号は、データを構成する一部の符号ビットについて読み取り誤りが生じても、読み取り側で正しい符号ビットを推定することを可能にする符号である。誤り訂正符号技術を用いることで、雑音の影響を受けて歪んだ信号から正しいデータを再現することが可能となる。
特に近年では、誤り訂正能力が極めて高い低密度パリティ検査(LDPC:Low Density Parity Check)符号が注目されている。低密度パリティ検査符号では、複数の符号ビットからなる符号語(コードワード)単位で符号化および復号が行われる。低密度パリティ検査符号を復号する復号装置は、数式(1)に示す検査行列Hのような検査行列を用いる。低密度パリティ検査符号で用いる検査行列は、各成分が1または0の行列であり、一般には成分1は行列内に疎な割合で現れる(例えば、非特許文献1参照)。
Figure 0004845846
図9は、低密度パリティ検査符号の復号原理を示す図である。低密度パリティ検査符号の復号は、検査行列で定義されるビットノードと検査ノードとの間でメッセージを反復伝搬させることで行われる。ビットノードが検査行列の列に対応し、検査ノードが検査行列の行に対応する。ビットノードと検査ノードとを接続するリンクが検査行列の成分1に対応する。ビットノード、検査ノード、および、ビットノードと検査ノードとを接続するリンクで構成されるグラフをタナーグラフという。図9のタナーグラフは、数式(1)の検査行列Hに対応している。
低密度パリティ検査符号の復号では、最初に各符号ビットの対数尤度比(LLR:Log Likelihood Ratio)をビットノードに対応付ける。対数尤度比は、値の確からしさを示す指標であり、信号が受ける雑音の分散を用いて入力信号を補正することで計算される。そして、ビットノードを介したメッセージの更新(列演算)と検査ノードを介したメッセージの更新(行演算)とを交互に繰り返す。
具体的には、ビットノードから検査ノードに伝搬されるメッセージをαとし検査ノードからビットノードに伝搬されるメッセージをβとすると、列演算では数式(2)に示すような計算が行われる。数式(2)においてC(n)はn番目のビットノードに接続されている検査ノードの番号の集合である。例えば、ビットノードb1から検査ノードc1に渡される値α11は、検査ノードc2からビットノードb1に渡される値β21と1番目の符号ビットの対数尤度比λ1との和として計算される。なお、メッセージβの各値の初期値は0である。
Figure 0004845846
また、行演算では、数式(3)に示すような双曲線関数を用いた計算が行われる。数式(3)においてB(m)はm番目の検査ノードに接続されているビットノードの番号の集合である。例えば、検査ノードc2からビットノードb1に渡される値β21は、ビットノードb3から検査ノードc2に渡される値α23とビットノードb5から検査ノードc2に渡される値α25とに基づいて計算される。
Figure 0004845846
このように、列演算と行演算とを繰り返すことで、メッセージαおよびメッセージβが次第に一定の値に収束する。ここで、数式(4)に示すような計算を行うことで、誤り訂正処理の結果としてメッセージζが得られる。例えば、1番目の符号ビットに対応する誤り訂正処理後の値ζ1は、最新のβ11,β21とλ1の和として計算される。
Figure 0004845846
図10は、低密度パリティ検査符号の復号装置例を示す図である。図10に示す復号装置2は、LLR変換手段2a、列演算手段2b、行演算手段2cおよび硬判定手段2dを有する。LLR変換手段2aは、入力信号δと雑音の分散σ2とから各符号ビットに対応する対数尤度比λを計算する。入力信号δが受ける雑音が加法的白色ガウス雑音(AWGN:Additive White Gaussian Noise)と仮定すると、対数尤度比λは数式(5)に従って計算できる。なお、入力信号δの各符号ビットは、0または1の2値(ハードな値)ではなく、1.24のような量子化幅の小さい値(ソフトな値)である。対数尤度比λに基づいて、列演算手段2bは列演算を行い、行演算手段2cは行演算を行う。硬判定手段2dは、誤り訂正処理後のソフトな値をハードな値に変換し復号信号εとして出力する。
Figure 0004845846
ところで、上記の伝統的な復号方法では、双曲線関数を用いる行演算の計算負荷が非常に大きくなる。そこで、数式(3)の双曲線関数f(x)を線形関数で近似する試みが行われている(例えば、非特許文献2,3参照)。このように線形関数を用いて行演算を行うことで、低密度パリティ検査符号の復号の計算負荷が大きく軽減され、様々な用途に低密度パリティ検査符号を用いることが可能となる。
Jinghu Chen et al, "Reduced-Complexity Decoding of LDPC Codes", IEEE Transactions on communications, 2005, vol. 53, No. 8, p. 1288-1299 松本渉 他2名、「巡回近似MINアルゴリズム」、電子情報通信学会 信学技法、2005年、RCS2005-40、p. 1-6 阪井塁 他2名、「LDPC符号の簡易復号法とその離散化密度発展法」、電子情報通信学会 信学技法、2005年、RCS2005-42、p. 13-18
しかし、上記非特許文献2,3に記載の技術では、列演算と行演算とを繰り返す処理の計算負荷は軽減されるが、事前処理として必要な入力信号から対数尤度比への変換の計算負荷が依然として大きいという問題がある。これは、符号ビット1つ1つに対して対数尤度比への変換処理が必要なためである。
一方、関数による計算を行う代わりに変換テーブルを予め用意しておく方法も考えられるが、この方法では、入力信号と雑音の分散の2つの入力から対数尤度比を特定することから少なくとも2次元の変換テーブルが必要となる。このため、変換テーブルを保持するために非常に大きな記憶領域が必要になるという問題がある。
本発明はこのような点に鑑みてなされたものであり、低密度パリティ検査符号の復号において計算負荷または記憶領域を削減することが可能な復号装置および復号プログラムを提供することを目的とする。
本発明では上記課題を解決するために、図1に示すような復号装置が提供される。本発明に係る復号装置は、検査行列で定義される複数のビットノードと複数の検査ノードとの間でメッセージを反復伝搬させることで低密度パリティ検査符号を復号するものである。この復号装置1は、列演算手段1aと行演算手段1bとを有する。列演算手段1aは、符号化された入力信号δを取得し、入力信号δと検査ノードからビットノードに伝搬されるメッセージとに基づいてビットノードから検査ノードに伝搬されるメッセージを計算する。行演算手段1bは、入力信号δに与えられる雑音の分散σ2を取得し、雑音の分散σ2に基づいて所定のパラメータの値を特定し、パラメータの値と列演算手段1aで計算されるビットノードから検査ノードに伝搬されるメッセージとに基づいて検査ノードからビットノードに伝搬されるメッセージを計算する。
このような復号装置1によれば、列演算手段1aにより、符号化された入力信号δと検査ノードからビットノードに伝搬されるメッセージとに基づいてビットノードから検査ノードに伝搬されるメッセージが計算される。また、行演算手段1bにより、入力信号δに与えられる雑音の分散σ2に基づいて所定のパラメータの値が特定され、パラメータの値と列演算手段1aで計算されるビットノードから検査ノードに伝搬されるメッセージとに基づいて検査ノードからビットノードに伝搬されるメッセージが計算される。
また、上記課題を解決するために、検査行列で定義される複数のビットノードと複数の検査ノードとの間でメッセージを反復伝搬させることで低密度パリティ検査符号を復号する復号プログラムにおいて、コンピュータを、符号化された入力信号を取得し、入力信号と検査ノードからビットノードに伝搬されるメッセージとに基づいてビットノードから検査ノードに伝搬されるメッセージを計算する列演算手段、入力信号に与えられる雑音の分散を取得し、雑音の分散に基づいて所定のパラメータの値を特定し、パラメータの値と列演算手段で計算されるビットノードから検査ノードに伝搬されるメッセージとに基づいて検査ノードからビットノードに伝搬されるメッセージを計算する行演算手段、として機能させることを特徴とする復号プログラムが提供される。
このような復号プログラムを実行するコンピュータによれば、列演算手段により、符号化された入力信号と検査ノードからビットノードに伝搬されるメッセージとに基づいてビットノードから検査ノードに伝搬されるメッセージが計算される。また、行演算手段により、入力信号に与えられる雑音の分散に基づいて所定のパラメータの値が特定され、パラメータの値と列演算手段で計算されるビットノードから検査ノードに伝搬されるメッセージとに基づいて検査ノードからビットノードに伝搬されるメッセージが計算される。
本発明では、符号化された入力信号に基づいて列演算を行うと共に、雑音の分散に依存したパラメータの値に基づいて行演算を行うこととした。これにより、誤り訂正能力の低下を防止しつつ、入力信号の各符号ビットを雑音の分散に応じた値に変換する事前処理を省略することができる。従って、復号の際の計算負荷または記憶領域を大きく削減することが可能となる。
以下、本発明の実施の形態を図面を参照して詳細に説明する。まず、本発明の概要について説明し、その後、実施の形態の具体的な内容を説明する。
図1は、本実施の形態の概要を示す図である。図1に示す復号装置1は、低密度パリティ検査符号を復号する装置である。復号装置1は、列演算手段1a、行演算手段1bおよび硬判定手段1cを有する。これらの機能は、コンピュータに所定の復号プログラムを実行させることによっても実現できる。
列演算手段1aは、低密度パリティ検査符号に符号化された入力信号δを取得する。入力信号δは、符号語を構成する符号ビットの集合である。各符号ビットは、1.24や−0.23のようなソフトな値で表現されている。
そして、列演算手段1aは、予め設定された検査行列に基づいて、符号語単位で列演算を行う。すなわち、列演算手段1aは、符号ビットの集合と行演算手段1bで計算された最新の行演算後のメッセージ(検査ノードからビットノードに伝搬されるメッセージ)とに基づいて列演算を行い、得られたメッセージを保持する。なお、誤り訂正処理の開始時には、行演算後のメッセージの各値は初期値0が設定されている。
また、列演算手段1aは、符号ビットの集合と最新の行演算後のメッセージとに基づいて、誤り訂正処理後のメッセージを計算する。このメッセージは、入力信号δの各符号ビットの値が補正されたものに相当し、各値は0.87や2.36のようなソフトな値で表現されている。
行演算手段1bは、予め設定された検査行列に基づいて、符号語単位で行演算を行う。すなわち、行演算手段1bは、列演算手段1aで計算された最新の列演算後のメッセージ(ビットノードから検査ノードに伝搬されるメッセージ)に基づいて行演算を行い、得られたメッセージを保持する。行演算では、例えば、線形関数が用いられる。
ここで、行演算手段1bは、行演算に際して、復号装置1への入力前に入力信号δが受ける雑音の分散σ2に依存したパラメータを使用する。具体的には、行演算手段1bは、雑音の分散σ2とパラメータの値とを対応付けた変換テーブル1dを予め保持している。そして、行演算手段1bは、誤り訂正処理の開始前に雑音の分散σ2を取得し、変換テーブル1dを参照して、行演算に用いるパラメータの値を特定する。特定されたパラメータの値は、例えば、行演算で用いる線形関数における係数として使用される。
なお、雑音の分散σ2は、入力信号δが経由する伝送媒体や記録媒体に応じた固定的な値であってもよいし、入力信号δに基づいて随時測定される値であってもよい。また、行演算手段1bは、パラメータの値を特定する際に、変換テーブル1dのようなテーブルを用いるのではなく、所定の関数を用いて計算するようにしてもよい。
硬判定手段1cは、列演算手段1aで計算される誤り訂正処理後のメッセージを取得して、ソフトな値を0または1のハードな値に変換する。例えば、硬判定手段1cは、正数を0と判定し、非正数(負数および0)を1と判定する。そして、硬判定手段1cは、変換後の2値化データを、入力信号δに対応する復号信号εとして出力する。
このように、列演算手段1aによる列演算と行演算手段1bによる行演算とが繰り返し実行され、ビットノードと検査ノードとの間でメッセージが反復伝搬されることにより、雑音の影響により生じた入力信号δ内の誤りが訂正される。列演算および行演算は、処理結果が誤り検出に合格するまで(誤りが完全に除去されるまで)繰り返してもよいし、所定の回数繰り返した時点で打ち切るようにしてもよい。
このような復号装置1によれば、列演算手段1aにより、入力信号δと行演算手段1bで計算される最新のメッセージとに基づいて列演算後のメッセージが計算される。また、行演算手段1bにより、入力信号δが受けた雑音の分散σ2と変換テーブル1dとに基づいてパラメータの値が特定され、パラメータの値と列演算手段1aで計算される最新のメッセージとに基づいて行演算後のメッセージが計算される。そして、硬判定手段1cにより、列演算手段1aで計算される誤り訂正後のメッセージが2値化されて、復号信号εとして出力される。
これにより、誤り訂正能力の低下を防止しつつ、入力信号δに含まれる各符号ビットを雑音の分散に応じた値に変換する事前処理を省略することができる。従って、復号の際の計算負荷または記憶領域を大きく削減することが可能となる。
このような機能を有する復号装置は、無線通信を行う受信装置に組み込むことが可能である。すなわち、低密度パリティ検査符号を含む無線信号を受信した際に、上記のような復号方法によって復号を行うことが考えられる。以下、無線通信の受信装置を例に挙げて、本発明の実施の形態を具体的に説明する。
図2は、本実施の形態に係る受信装置の機能を示すブロック図である。本実施の形態に係る受信装置10は、低密度パリティ検査符号への符号化がなされた無線信号を受信する装置である。受信装置10は、受信アンテナ11、復調部12、列演算部13、行演算部14、硬判定部15および誤り検出部16を有する。
受信アンテナ11は、図示しない送信装置によって無線送信された信号を受信する。そして、受信アンテナ11は、受信信号を復調部12に出力する。
復調部12は、受信アンテナ11から取得した受信信号を所定の復調方法に従って復調する。そして、復調部12は、所定個の符号ビットからなる符号語単位で、復調した信号を入力信号δとして列演算部13に出力する。このとき、各符号ビットはソフトな値で表現されている。また、復調部12は、符号語単位で、受信信号が受けた雑音の分散σ2を測定し、行演算部14に通知する。雑音の分散σ2は、例えば、既知信号(パイロット信号)に基づいて測定することができる。
列演算部13は、復調部12から1符号語に相当する入力信号δを取得して保持する。そして、列演算部13は、予め設定された検査行列に基づいて列演算を行う。すなわち、列演算部13は、入力信号δと行演算部14から取得する最新のメッセージβとに基づいて、メッセージαを計算して保持する。具体的には、メッセージαは数式(6)に従って計算される。数式(6)は、数式(2)の対数尤度比λを入力信号δに置き換えたものに相当する。なお、メッセージβの各値の初期値は0である。
Figure 0004845846
また、列演算部13は、入力信号δと最新のメッセージβとに基づいてメッセージζを計算し、硬判定部15に対して出力する。具体的には、メッセージζは数式(7)に従って計算される。数式(7)は、数式(4)の対数尤度比λを入力信号δに置き換えたものに相当する。列演算部13は、入力信号δを取得した直後にメッセージζを計算し、その後、列演算部13による列演算と行演算部14による行演算とが1回ずつ行われる毎にメッセージζを再計算する。なお、メッセージβの各値の初期値は0であるため、最初に得られるメッセージζは入力信号δに等しい。
Figure 0004845846
行演算部14は、雑音の分散σ2とパラメータの値とを対応付けた変換テーブルを保持している。行演算部14は、新たな符号語に対する誤り訂正処理を開始する際に、復調部12から雑音の分散σ2を取得し、変換テーブルを参照して行演算で用いるパラメータの値を特定する。ここで特定したパラメータの値は、その符号語に対する誤り訂正処理が終了するまで使用される。
そして、行演算部14は、予め設定された検査行列に基づいて行演算を行う。すなわち、行演算部14は、列演算部13から取得する最新のメッセージαと特定したパラメータの値とに基づいて、メッセージβを計算して保持する。具体的には、メッセージβは数式(8)に従って計算される。数式(8)は双曲線関数を含む数式(3)を線形関数を用いて近似した式である。
数式(8)において、sign関数は引数の数値の符号を返す関数である。min関数は2つの引数のうち小さい方の値を返す関数である。max関数は2つの引数のうち大きい方の値を返す関数である。数式(8)で定義される演算子+(ここでは、「丸付き+」に代えて「+」と表記する)は2項演算子であり、αmkが3つ以上存在する場合は、αm1+αm2+αm3+…=((αm1+αm2)+αm3)+…のように演算を行う。
また、数式(8)にはK0と(σ2/2)K1の2つの係数が存在する。K0,K1は予め設定される固定値であり、例えばK0=−0.5,K1=0.9である。係数(σ2/2)K1は雑音の分散σ2に依存しており、変換テーブルに基づいて特定されたパラメータの値が適用される。
Figure 0004845846
硬判定部15は、列演算部13から取得する最新のメッセージζに対して2値化処理を行う。すなわち、硬判定部15は、メッセージζの各値を0または1に変換する。具体的には、0より大きい値を0に変換し、0および0より小さい値を1に変換する。そして、硬判定部15は、2値化データを誤り検出部16に出力する。
誤り検出部16は、誤り訂正処理の中間結果としての2値化データを硬判定部15から取得する。すると、誤り検出部16は、予め定義された検査行列に基づいて誤り検出処理を行う。具体的には、誤り検出部16は、1符号語に相当する2値化データと検査行列との行列積を計算し、計算結果が0であれば誤りなしと判定し、計算結果が0以外であれば誤りありと判定する。
そして、誤り検出部16は、誤り訂正処理の継続が必要か否か判断する。具体的には、誤りなしと判定された場合、または、列演算および行演算の繰り返し回数が所定回数を超えた場合は、処理の継続は不要と判断する。一方、誤りありと判定され、かつ、繰り返し回数が所定回数以内である場合は、処理の継続が必要と判断する。処理の継続が必要な場合、誤り検出部16は、列演算部13に対して処理の継続を指示する。処理の継続が不要な場合、誤り検出部16は、硬判定部15から取得した2値化データを、入力信号δに対応する復号信号εとして出力する。
図3は、変換テーブルのデータ構造を示す図である。変換テーブル14aは、行演算部14によって保持されている。変換テーブル14aには、雑音の分散σ2を示す項目とパラメータ(σ2/2)K1の値を示す項目とが設けられている。各項目の横方向に並べられた情報同士が対応付けられている。
雑音の分散を示す項目には、無線信号が伝送路で受ける雑音の分散を示す数値が設定される。パラメータの値を示す項目には、行演算で用いる数式に適用するパラメータの値を示す数値が設定される。図3はK1=0.9としたときの数値例を示している。例えば、雑音の分散σ2が0.2のときパラメータの値が0.09、雑音の分散σ2が0.4のときパラメータの値が0.18という情報が変換テーブル14aに予め登録されている。
なお、変換テーブル14aではパラメータの値を示す項目が1つ設けられているが、これは雑音の分散に依存する係数が数式(8)中に1つ存在するためである。行演算で用いる数式中に雑音の分散に依存する係数が複数存在する場合には、その数だけパラメータの値を示す項目が設けられる。
図4は、復号処理の手順を示すフローチャートである。以下、図4に示す処理をステップ番号に沿って説明する。
[ステップS1]復調部12は、受信信号から雑音の分散σ2を測定する。そして、復調部12は、測定した雑音の分散σ2を行演算部14に通知する。行演算部14は、取得した雑音の分散σ2を用いて変換テーブル14aを検索し、(σ2/2)K1の値を特定する。また、復調部12は、受信信号を復号して得られる入力信号δを列演算部13に出力する。
[ステップS2]列演算部13は、現時点での誤り訂正処理の結果を出力する。すなわち、列演算部13は、ステップS1で取得した入力信号δとステップS7で行演算部14によって計算されるメッセージβとに基づいて、数式(7)に従ってメッセージζを計算する。そして、列演算部13は、メッセージζを硬判定部15に出力する。なお、最初にステップS2を実行する際には、入力信号δ=メッセージζとなる。
[ステップS3]硬判定部15は、ステップS2で取得したメッセージζに対して2値化処理を行う。すなわち、硬判定部15は、メッセージζを構成するソフトな値それぞれを0または1のハードな値に変換する。そして、硬判定部15は、変換結果を誤り検出部16に出力する。
[ステップS4]誤り検出部16は、ステップS3で取得した2値化データと検査行列とに基づいて誤り検出処理を行う。すなわち、誤り検出部16は、取得した2値化データにビット誤りが含まれているか否か判定する。
[ステップS5]誤り検出部16は、ステップS4の判定結果とステップS6,S7の繰り返し回数とに基づいて、再計算が必要か否か判断する。具体的には、誤り検出部16は、ステップS4でビット誤りが含まれていると判定し、かつ、繰り返し回数が所定回数を超えていないときは、再計算が必要と判断する。それ以外のときは、再計算が必要でないと判断する。再計算が必要である場合には、処理がステップS6に進められる。再計算が必要でない場合には、処理がステップS8に進められる。
[ステップS6]誤り検出部16は、列演算部13に再計算が必要である旨を通知する。列演算部13は、列演算を行う。すなわち、列演算部13は、ステップS1で取得した入力信号δとステップS7で行演算部14によって計算されたメッセージβとに基づいて、数式(6)に従ってメッセージαを計算する。そして、列演算部13は、メッセージαを行演算部14に出力する。なお、ステップS7が未実行である場合には、メッセージβの各値を0として計算する。
[ステップS7]行演算部14は、行演算を行う。すなわち、行演算部14は、ステップS1で特定した(σ2/2)K1の値とステップS6で取得したメッセージαとに基づいて、数式(8)に従ってメッセージβを計算する。そして、行演算部14は、メッセージβを列演算部13に出力する。その後、処理がステップS2に進められる。
[ステップS8]誤り検出部16は、ステップS3で取得した2値化データを、入力信号δに対応する復号信号εとして出力する。これにより、その符号語に対する誤り訂正処理が終了する。
このようにして、1符号語に相当する信号が受信されると、受信信号に与えられた雑音の分散σ2が測定され、雑音の分散σ2に依存する係数の値が特定される。そして、入力信号δを用いて列演算が行われると共に、特定された係数の値を用いて行演算が行われる。この列演算および行演算は、全てのビット誤りが訂正されるかまたは所定の繰り返し回数を超えるまで繰り返し実行される。
なお、図4に示した復号処理において、ステップS2〜S5とステップS6,S7とを並行して実行するようにしてもよい。すなわち、誤り検出処理の結果を待たずに、次回分の列演算および行演算を先行して実行してもよい。
ここで、図2〜4に示した受信装置10の復号方法では、図10に示した復号装置2の復号方法と異なり、入力信号δの各符号ビットを対数尤度比に変換する事前処理を行わない。その一方で、受信装置10の復号方法では、誤り訂正能力の低下が防止されている。以下、受信装置10の復号方法が復号装置2の復号方法と等価であることを証明する。
図5は、復号処理の等価性を示す第1の図である。受信装置10では、列演算部13により入力信号δからメッセージαとメッセージζとが計算される(列演算21)。また、行演算部14によりメッセージαからメッセージβが計算される(行演算22)。また、硬判定部15によりメッセージζから復号信号εが計算される(硬判定23)。
ここで、入力信号δの入力、列演算21、行演算22および硬判定23の相互の間に、2/σ2を掛ける乗算とσ2/2を掛ける乗算とを挿入すると、図5に示すような処理の流れとなる。
すなわち、入力信号δに2/σ2を掛けて(乗算24a)対数尤度比λを得て、更にσ2/2を掛けて(乗算24b)入力信号δに戻す。列演算21により得られるメッセージαに2/σ2を掛けて(乗算25a)メッセージxを得て、更にσ2/2を掛けて(乗算25b)メッセージαに戻す。行演算22により得られるメッセージβに2/σ2を掛けて(乗算26a)メッセージyを得て、更にσ2/2を掛けて(乗算26b)メッセージβに戻す。列演算21によって得られるメッセージζに2/σ2を掛けて(乗算27a)メッセージwを得て、更にσ2/2を掛けて(乗算27b)メッセージζに戻す。
このとき、(2/σ2)×(σ2/2)=1であるため、乗算24a,24b,25a,25b,26a,26b,27a,27bの挿入前後で処理全体の意味は変化しない。なお、2/σ2およびσ2/2を掛けるとしたのは、伝送路で生じる雑音の分布がAWGNモデルに従うと仮定したことによる。他の雑音モデルを仮定する場合、その雑音モデルに応じた演算を挿入すればよい。
ところで、(2/σ2)×(σ2/2)=1より、列演算21で用いる数式(6)を変形して数式(9)が得られる。そして、前述の定義xmn=(2/σ2)×αmn,ymn=(2/σ2)×βmn,λn=(2/σ2)×δnと数式(9)とから、数式(10)が得られる。同様に、(2/σ2)×(σ2/2)=1より、列演算21で用いる数式(7)を変形すると数式(11)が得られる。そして、前述の定義ymn=(2/σ2)×βmn,λn=(2/σ2)×δn,wn=(2/σ2)×ζnと数式(11)とから、数式(12)が得られる。
Figure 0004845846
Figure 0004845846
Figure 0004845846
Figure 0004845846
数式(10)(12)は数式(2)(4)と等価である。以上より、図5に示した列演算21および乗算24b,25a,26b,27aが図10に示した復号装置2における列演算と等価であることがわかる。すなわち、列演算21および乗算24b,25a,26b,27aを合わせて1つの列演算とみなすことができる。そして、受信装置10における列演算と復号装置2における列演算とでは、計算アルゴリズムは同一であり、入力が入力信号δであるか対数尤度比λであるかの差異しかないことがわかる。
また、(2/σ2)×(σ2/2)=1であること、および、2/σ2>0よりsign(αmn)=sign((2/σ2)×αmn)が成立することから、行演算22で用いる数式(8)を変形して数式(13)が得られる。ここで、メッセージxを入力として行演算を行う際に用いる式を数式(14)のように定義する。この数式(14)とメッセージαを入力として行演算を行う際に用いる数式(8)とは、第2の係数が(σ2/2)×K1であるかK1であるかの点のみが異なる。すると、前述の定義xmn=(2/σ2)×αmnと数式(13)(14)とから、数式(15)が得られる。更に、前述の定義ymn=(2/σ2)×βmnと数式(8)(15)とから、数式(16)が得られる。
数式(16)は、図10に示した復号装置2における行演算で用いるべき線形関数と等価である。以上より、図5に示した行演算22および乗算25b,26aが図10に示した復号装置2における行演算と等価であることがわかる。すなわち、行演算22および乗算25b,26aを合わせて1つの行演算とみなすことができる。そして、受信装置10における行演算と復号装置2における行演算とでは、線形関数中の係数が雑音の分散σ2に依存するか否かの差異しかないことがわかる。復号装置2における行演算では、線形関数中の係数は全て固定値である。一方、受信装置10における行演算では、線形関数中の少なくとも一部の係数が雑音の分散σ2に依存する。
Figure 0004845846
Figure 0004845846
Figure 0004845846
Figure 0004845846
図6は、復号処理の等価性を示す第2の図である。以上検討した通り、図6に示す復号処理の流れは、図5に示した復号処理の流れと等価である。行演算29は、行演算22で用いる線形関数中の係数を雑音の分散σ2に依存しない係数に変更したものに相当する。ここで、図6に示す復号処理では、列演算21と硬判定23との間で乗算27bを実行している。しかし、σ2/2>0であり、硬判定23は各値の正負に基づいて2値化処理を行うことから、乗算27bの有無は硬判定23の処理結果に影響を与えない。
以上より、受信装置10の復号方法が復号装置2の復号方法と等価であること、すなわち、同一の入力信号δに対して、受信装置10の復号方法で復号したときの復号信号と復号装置2の復号方法で復号したときの復号信号とが同一になることが証明された。
その一方で、受信装置10の行演算部14が保持する変換テーブルと復号装置2のLLR変換手段2aが保持する変換テーブルとは、そのサイズが大きく異なる。受信装置10の行演算部14が保持する変換テーブルは、雑音の分散σ2から行演算で用いるパラメータの値を特定する1次元のテーブルであるのに対し、復号装置2のLLR変換手段2aが保持する変換テーブルは、入力信号δと雑音の分散σ2とから対数尤度比λを特定する2次元のテーブルである。
図7は、対数尤度比への変換に用いるテーブルのデータ構造を示す図である。図7に示す変換テーブル14bは、図10に示した復号方法において入力信号δを対数尤度比λに変換するために必要となるテーブル例である。変換テーブル14bを用いることで、雑音の分散σ2と入力信号δの各値とから、対数尤度比の値を一意に特定することができる。
例えば、雑音の分散σ2が0.6で変換前の入力値が0.2であるとき、変換後の値(対数尤度比)が0.67と特定される。このようにして特定された値に基づいて列演算が行われる。図7から明らかなように、テーブルを参照して入力信号δを対数尤度比λに変換するためには、サイズの大きなテーブルが必要になる。
次に、受信装置10で実行される復号処理の具体例を、復号装置2を用いた場合と比較しつつ説明する。ここでは、1符号語の符号長が6であり数式(1)に示す3行6列の検査行列Hを用いて復号可能な低密度パリティ符号を想定する。また、行演算で用いる固定値をK0=−0.5,K1=0.9とし、雑音の分散をσ2=0.5とする。この条件下で、数式(17)に示す入力信号δが入力されたとする。
Figure 0004845846
このとき、受信装置10の列演算部13により、数式(6)に従って数式(18)に示すメッセージαが生成される。次に、行演算部14により、数式(8)に従って数式(19)に示すメッセージβが生成される。その後、列演算部13により、数式(7)に従って数式(20)に示すメッセージζが生成される。ここで、メッセージζを硬判定すると(0,0,0,0,0,0)という2値化データが得られる。なお、その後に再度列演算を行う場合、列演算部13により数式(21)に示すメッセージαが生成される。
Figure 0004845846
Figure 0004845846
Figure 0004845846
Figure 0004845846
一方、上記と同一条件で、復号装置2の復号方法を採用した場合を考える。このとき、数式(5)または変換テーブル14bに従って数式(22)に示す対数尤度比λが生成される。次に、数式(10)に従って数式(23)に示すメッセージxが生成される。そして、数式(16)に従って数式(24)に示すメッセージyが生成される。その後、数式(12)に従って数式(25)に示すメッセージwが生成される。ここで、メッセージwを硬判定すると(0,0,0,0,0,0)という2値化データが得られる。なお、その後に再度列演算を行うと、数式(26)に示すメッセージxが生成される。
Figure 0004845846
Figure 0004845846
Figure 0004845846
Figure 0004845846
Figure 0004845846
ここで、数式(18)〜(21)と数式(23)〜(26)とを比較すると、受信装置10の復号方法で得られる各値は復号装置2の復号方法で得られる各値の1/4であることがわかる。しかし、硬判定では値の正負に基づいて0または1を判定するため、数式(18)〜(21)で示される復号結果と数式(23)〜(26)で示される復号結果とは等価である。
なお、上記の処理機能はコンピュータによって実現することもできる。その場合、受信装置10が有すべき機能の処理内容を記述した復号プログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータで実現される。
図8は、コンピュータのハードウェア構成を示す図である。コンピュータ30は、CPU(Central Processing Unit)31によって装置全体が制御されている。CPU31には、バス37を介してRAM(Random Access Memory)32、ハードディスクドライブ(HDD:Hard Disk Drive)33、グラフィック処理装置34、入力インタフェース35および通信インタフェース36が接続されている。
RAM32には、CPU31に実行させるOS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM32には、CPU31による処理に必要な各種データの少なくとも一部が一時的に格納される。HDD33には、OSプログラムやアプリケーションプログラムが格納される。また、HDD33には、CPU31による処理に必要な各種データが格納される。例えば、RAM32やHDD33には、受信信号、入力信号δ、雑音の分散σ2、メッセージα,β,ζ、復号信号εや変換テーブル14aが格納される。
グラフィック処理装置34には、モニタ41が接続されている。グラフィック処理装置34は、CPU31からの命令に従って、画像をモニタ41の画面に表示させる。入力インタフェース35には、キーボード42とマウス43とが接続されている。入力インタフェース35は、キーボード42やマウス43から送られてくる信号をバス37を介してCPU31に送信する。通信インタフェース36は、ネットワーク44に接続されている。通信インタフェース36は、ネットワーク44を介して、他のコンピュータとの間でデータの送受信を行う。
処理内容を記述したプログラムは、コンピュータ30で読み取り可能な記録媒体に記録しておくことができる。コンピュータ30で読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、HDD、フレキシブルディスク(FD)、磁気テープ(MT)などがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc - Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワーク44を介して、サーバコンピュータからコンピュータ30にそのプログラムを転送することもできる。
プログラムを実行するコンピュータ30は、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータ30は、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータ30は、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータ30は、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
このような受信装置10を用いることで、入力信号δを対数尤度比λに変換する事前処理を省略することができる。このとき、1符号語に対して1回、雑音の分散σ2に依存するパラメータの値を更新することで、誤り訂正能力の低下を確実に防止できる。従って、変換テーブルを用いる場合には復号処理に要する記憶領域を抑制でき、変換テーブルに代えて関数を用いる場合でも復号処理に要する計算負荷を抑制できる。
なお、上記では無線信号を受信する受信装置の例を挙げたが、本実施の形態で示した復号方法を他の種類の装置に応用することもできる。例えば、光ディスクなどの記録媒体から信号を読み取る読み取り装置に応用することも容易である。また、上記では雑音の分散がAWGNモデルに従うと仮定した場合の演算例を示したが、他の雑音モデルを仮定してその雑音モデルに応じた演算を行うようにしてもよい。また、行演算に用いる上記の線形関数に代えて、他の関数を採用してもよい。その場合、採用する関数に応じて、雑音の分散に依存するパラメータの値の特定方法が定義される。
以上、本発明の復号装置および復号プログラムを図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は同様の機能を有する任意の構成のものに置換することができる。また、本発明に他の任意の構成物や工程が付加されていてもよい。また、本発明は前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
本実施の形態の概要を示す図である。 本実施の形態に係る受信装置の機能を示すブロック図である。 変換テーブルのデータ構造を示す図である。 復号処理の手順を示すフローチャートである。 復号処理の等価性を示す第1の図である。 復号処理の等価性を示す第2の図である。 対数尤度比への変換に用いるテーブルのデータ構造を示す図である。 コンピュータのハードウェア構成を示す図である。 低密度パリティ検査符号の復号原理を示す図である。 低密度パリティ検査符号の復号装置例を示す図である。
符号の説明
1 復号装置
1a 列演算手段
1b 行演算手段
1c 硬判定手段
1d 変換テーブル

Claims (6)

  1. 検査行列で定義される複数のビットノードと複数の検査ノードとの間でメッセージを反復伝搬させることで低密度パリティ検査符号を復号する復号装置において、
    符号化された入力信号を取得し、前記入力信号と前記検査ノードから前記ビットノードに伝搬されるメッセージとに基づいて前記メッセージに対数尤度比に代えて前記入力信号が加算される計算を含む演算を使用して前記ビットノードから前記検査ノードに伝搬されるメッセージを計算する列演算手段と、
    前記入力信号に与えられる雑音の分散を取得し、前記雑音の分散に基づいて所定のパラメータの値を特定し、前記パラメータの値と前記列演算手段で計算される前記ビットノードから前記検査ノードに伝搬されるメッセージとに基づいて前記パラメータを係数として含む線形関数を使用して前記検査ノードから前記ビットノードに伝搬されるメッセージを計算する行演算手段と、
    を有し、
    前記行演算手段は、前記雑音の分散と前記パラメータの値とを対応付けた変換テーブルを有し、前記変換テーブルを参照して前記パラメータの値を特定する、
    ことを特徴とする復号装置。
  2. 検査行列で定義される複数のビットノードと複数の検査ノードとの間でメッセージを反復伝搬させることで低密度パリティ検査符号を復号する復号装置において、
    符号化された入力信号を取得し、前記入力信号と前記検査ノードから前記ビットノードに伝搬されるメッセージとに基づいて前記メッセージに対数尤度比に代えて前記入力信号が加算される計算を含む演算を使用して前記ビットノードから前記検査ノードに伝搬されるメッセージを計算する列演算手段と、
    前記入力信号に与えられる雑音の分散を取得し、前記雑音の分散に基づいて所定のパラメータの値を特定し、前記パラメータの値と前記列演算手段で計算される前記ビットノードから前記検査ノードに伝搬されるメッセージとに基づいて前記パラメータを係数として含む線形関数を使用して前記検査ノードから前記ビットノードに伝搬されるメッセージを計算する行演算手段と、
    を有し、
    前記行演算手段は、前記パラメータに依存する所定の線形関数を用いて前記検査ノードから前記ビットノードに伝搬されるメッセージを計算する、
    ことを特徴とする復号装置。
  3. 前記演算は、
    Figure 0004845846
    であり、
    前記線形関数は、
    Figure 0004845846
    であ
    0 は固定値であるとともに、係数(σ 2 /2)K 1 は前記パラメータに基づいて前記変換テーブルから特定される、
    ことを特徴とする請求項1または請求項2に記載の復号装置。
  4. 検査行列で定義される複数のビットノードと複数の検査ノードとの間でメッセージを反復伝搬させることで低密度パリティ検査符号を復号する復号プログラムにおいて、
    コンピュータを、
    符号化された入力信号を取得し、前記入力信号と前記検査ノードから前記ビットノードに伝搬されるメッセージとに基づいて前記メッセージに対数尤度比に代えて前記入力信号が加算される計算を含む演算を使用して前記ビットノードから前記検査ノードに伝搬されるメッセージを計算する列演算手段、
    前記入力信号に与えられる雑音の分散を取得し、前記雑音の分散に基づいて所定のパラメータの値を特定し、前記パラメータの値と前記列演算手段で計算される前記ビットノードから前記検査ノードに伝搬されるメッセージとに基づいて前記パラメータを係数として含む線形関数を使用して前記検査ノードから前記ビットノードに伝搬されるメッセージを計算する行演算手段、
    として機能させ、
    前記行演算手段は、前記雑音の分散と前記パラメータの値とを対応付けた変換テーブルを有し、前記変換テーブルを参照して前記パラメータの値を特定する、
    ことを特徴とする復号プログラム。
  5. 検査行列で定義される複数のビットノードと複数の検査ノードとの間でメッセージを反復伝搬させることで低密度パリティ検査符号を復号する復号プログラムにおいて、
    コンピュータを、
    符号化された入力信号を取得し、前記入力信号と前記検査ノードから前記ビットノードに伝搬されるメッセージとに基づいて前記メッセージに対数尤度比に代えて前記入力信号が加算される計算を含む演算を使用して前記ビットノードから前記検査ノードに伝搬されるメッセージを計算する列演算手段、
    前記入力信号に与えられる雑音の分散を取得し、前記雑音の分散に基づいて所定のパラメータの値を特定し、前記パラメータの値と前記列演算手段で計算される前記ビットノードから前記検査ノードに伝搬されるメッセージとに基づいて前記パラメータを係数として含む線形関数を使用して前記検査ノードから前記ビットノードに伝搬されるメッセージを計算する行演算手段、
    として機能させ、
    前記行演算手段は、前記パラメータに依存する所定の線形関数を用いて前記検査ノードから前記ビットノードに伝搬されるメッセージを計算する、
    ことを特徴とする復号プログラム。
  6. 前記演算は、
    Figure 0004845846
    であり、
    前記線形関数は、
    Figure 0004845846
    であ
    0 は固定値であるとともに、係数(σ 2 /2)K 1 は前記パラメータに基づいて前記変換テーブルから特定される、
    ことを特徴とする請求項4または請求項5に記載の復号プログラム。
JP2007262858A 2007-10-09 2007-10-09 復号装置および復号プログラム Expired - Fee Related JP4845846B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007262858A JP4845846B2 (ja) 2007-10-09 2007-10-09 復号装置および復号プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007262858A JP4845846B2 (ja) 2007-10-09 2007-10-09 復号装置および復号プログラム

Publications (2)

Publication Number Publication Date
JP2009094750A JP2009094750A (ja) 2009-04-30
JP4845846B2 true JP4845846B2 (ja) 2011-12-28

Family

ID=40666272

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007262858A Expired - Fee Related JP4845846B2 (ja) 2007-10-09 2007-10-09 復号装置および復号プログラム

Country Status (1)

Country Link
JP (1) JP4845846B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4929342B2 (ja) * 2009-12-15 2012-05-09 インターナショナル・ビジネス・マシーンズ・コーポレーション ノイズ分散による入力対数尤度比のスケーリングに基づくsum−product復号法(ビリーフプロパゲーション法)の計算手法
JP6456564B2 (ja) * 2016-09-01 2019-01-23 三菱電機株式会社 尤度生成装置、受信装置、尤度生成方法および光伝送システム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004088470A (ja) * 2002-08-27 2004-03-18 Sony Corp 復号装置及び復号方法
JP4545684B2 (ja) * 2005-12-13 2010-09-15 シャープ株式会社 復号装置、再生装置、復号方法、復号プログラムおよびその記録媒体

Also Published As

Publication number Publication date
JP2009094750A (ja) 2009-04-30

Similar Documents

Publication Publication Date Title
US7676734B2 (en) Decoding apparatus and method and information processing apparatus and method
JP3727938B2 (ja) Ldpc復号化装置及びその方法
EP2479897A2 (en) Decoding device and decoding method
CN1953336B (zh) 在低密度奇偶校验解码器中更新校验节点的方法
JP5091996B2 (ja) 誤り訂正復号器、メモリコントローラ及び受信機
EP1432130A1 (en) Decoding device and decoding method
JP2004088468A (ja) 符号化装置及び符号化方法、並びに復号装置及び復号方法
US10790857B1 (en) Systems and methods for using decoders of different complexity in a hybrid decoder architecture
US20080052595A1 (en) Methods and apparatus for low-density parity check decoding using hardware-sharing and serial sum-product architecture
JP5132758B2 (ja) 誤り訂正復号器及び記憶装置
US10298262B2 (en) Decoding low-density parity-check maximum-likelihood single-bit messages
JP4845846B2 (ja) 復号装置および復号プログラム
JP4551740B2 (ja) 低密度パリティチェック符号復号器及び方法
US20150039959A1 (en) Method for decoding a correcting code with message passing, in particular for decoding ldpc codes or turbo codes
JP6395658B2 (ja) 誤り訂正復号装置、受信装置及び誤り訂正復号方法
JP4985386B2 (ja) 受信装置
JP2004201323A (ja) 複雑度を減らしたコードテーブルを使用する復調装置及びその方法
KR101630114B1 (ko) 최소합 알고리즘을 이용한 ldpc 복호화 장치 및 방법
JP2009182421A (ja) 復号化方法及び復号化装置
JP5385944B2 (ja) 復号器
JP4645640B2 (ja) 復号器、受信装置及び符号化データの復号方法
US20140140384A1 (en) Matching signal dynamic range for turbo equalization system
JP2008153874A (ja) 軟判定復号装置、軟判定復号方法および軟判定復号プログラム
US20230004852A1 (en) Conversion method, conversion device, reception device, and transmission device
JP4755238B2 (ja) 復号器

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100616

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110428

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110510

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110630

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110830

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110922

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

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

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

Free format text: PAYMENT UNTIL: 20141021

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4845846

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees