JP2010535459A - 線形計画法復号のための座標上昇法 - Google Patents
線形計画法復号のための座標上昇法 Download PDFInfo
- Publication number
- JP2010535459A JP2010535459A JP2010519952A JP2010519952A JP2010535459A JP 2010535459 A JP2010535459 A JP 2010535459A JP 2010519952 A JP2010519952 A JP 2010519952A JP 2010519952 A JP2010519952 A JP 2010519952A JP 2010535459 A JP2010535459 A JP 2010535459A
- Authority
- JP
- Japan
- Prior art keywords
- dual
- function
- cost function
- solution
- received
- 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.)
- Withdrawn
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
デコーダ104及び700は、ノイズのある通信チャンネル103を伝送してきたデータを復号するように動作可能である。デコーダ104または700は、通信チャンネル103を介して受信された符号化データyのビットを記憶するメモリ703を備える。デコーダ104または700は、受信したビットyから送信された符号語を推定するプロセッサ701も備える。プロセッサ701は、受信したデータyを復号するための線形計画法(LP)を決定するように動作可能であり、線形計画法は費用関数を含む。LPの解は、費用関数に関連する複数の変数を一回の繰り返しで変更する座標上昇法を用いて計算される。送信された符号語は、LPの解を用いて受信した符号化データyから推定される。
【選択図】図6
【選択図】図6
Description
典型的な現代の通信システムは、通信チャンネル上を受信機へと伝送させるためのデータを符号化(エンコード)するためのエンコーダ(符号化器)を具備する送信機を備える。圧縮するためにデータを符号化して、伝送エラーを訂正するための冗長性を付加することができる。たとえば、冗長シンボルを符号化された情報シンボルに付加することができ、これによって、伝送される可能性のあるシンボルのシーケンスの集合を可能性のある全てのシーケンスの一部に効果的に限定することができる。エンコーダは、チャンネル符号化技術にしたがってメッセージを符号化することによって冗長シンボルを付加する。たとえば、低密度パリティ検査符号(low-density parity-check code:LDPC code)がデータを符号化するためによく使用される。
受信機側では、たとえばノイズのあるチャンネルのために伝送中に導入されるエラーがデコーダ(復号器)によって訂正される。デコーダは、受信機におけるデータの完全性を確保するので、信頼性のある符号化通信システムの重要な部分である。
スループットが高いことは、多くの現代の通信システムにおいて非常の望ましい特徴である。これらのシステム内のデコーダは、伝送中に導入されたエラーを迅速に訂正することを試みる。デコード(復号化)における遅れは、システムのスループットを低くしうる。
近年、データの復号(デコード)を表す線形計画法(linear program:LP。または、線形プログラム)を定式化し、次に、従来の線形計画法アルゴリズムを用いてそのLPを解いてデータを復号することにより、デコーダにおける符号の復号を実行できることが提案されている。しかしながら、これらの、LPを解くために従来の線形計画法アルゴリズムを用いる「LPデコーダ」は、多くの復号化用途に実装するにはあまりにも遅くかつ効率が悪い可能性が高い。たとえば、LPを解くのに時間がかかるために、デコーダの復号速度が従来のデコーダよりも遅くなる場合がある。また、LPを解くためのデータを記憶するのに必要なメモリ量が、従来のデコーダよりもはるかに多くなりえ、これによって、デコーダのサイズ及びコストが増大しうる。
デコーダは、ノイズのある通信チャンネルを伝送するデータを復号するように動作可能である。デコーダは、通信チャンネルを介して受信された符号化されたデータのビットを記憶するメモリを備える。デコーダはまた、受信したビットから送信された符号語(またはコードワード)を推定(または評価)するプロセッサを備える。プロセッサは、受信したデータを復号するための線形計画法(LP)を決定するように動作することができ、この場合、線形計画法は費用関数を含む。LPの解は、1回の繰り返しで費用関数に関連する複数の変数を変更する(または変化させる)座標上昇(coordinate-ascent)法を用いて計算される。送信された符号語は、LPの解(または解法)を用いて、受信された符号化データから推定される。
いくつかの実施形態についての以下の詳細な説明を添付の図面と併せて参照することによってそれらの実施形態の種々の特徴がより良く理解されるので、それらの特徴をより十分に理解することができる。
簡潔にすると共に説明のために、いくつの実施形態の原理を、該実施形態の例を主として参照することによって説明する。以下の説明では、それらの実施形態を完全に理解できるようにするために、多くの特定の細部が説明される。しかしながら、当業者には、それらの特定の細部に限定することなくそれらの実施形態を実施できることが明らかであろう。いくつかの例では、実施形態を不必要に不明瞭にしないようにするために、周知の方法及び構成について詳しくは説明されていない。
1実施形態によれば、データを復号するための方法は、復号問題をLPとして定式化するステップを含む。データは、低密度パリティ検査(low-density parity check:LDPC)符号、または、他の任意の線形または非線形符号を用いて符号化されている場合がある。1実施形態によれば、主LP(または一次LP)が定式化され、対応する双対LPが該主LPから決定される。双対LPは、受信されたデータをより速い速度(またはレート)で復号するための改良された座標上昇(coordinate-ascent)法を用いて解かれる。
改良された座標上昇法は、1回の反復で複数の変数を更新する。これらの複数の変数は、複数のいわゆる局所関数の和として表すことができる費用関数の変数の一部である。費用関数を、関数ノードが局所関数を表し、エッジが変数を表すフォーニー型ファクターグラフ(FFG)として表すことができ、この場合、エッジは、該エッジに関連する変数が関数ノードに関連する局所関数に対する引数(または独立変数)である場合にのみ、該関数ノードに付随する。複数の変数は、FFG内の関数ノードに付随するエッジによって表される全ての変数を含むことができる。複数の変数は、関数ノードによって表される特定の関数に対する引数である。1実施形態によれば、関数ノードに付随するFFG内のエッジに関連する全ての変数は、改良された座標上昇法を用いて1回の反復で更新される。これによって、データを復号するのに必要な反復の数が少なくなり、それゆえ、復号速度が速くなる。1実施形態では、LPは、FFGによって表される双対LPとして定式化される。複数の変数は、双対LP内の費用関数を表すFFG内の関数ノードに付随するエッジによって表される全ての変数を含む。
図1は、1実施形態による、エンコード/デコードシステム(符号化/復号化システム)100を示す。システム100は、メッセージソース100からのメッセージを受け取って、LDPC符号などの線形符号とすることができる符号を用いて該メッセージをエンコード(符号化)するエンコーダ102を備える。他の任意の線形符号または非線形符号を使用することもできる。たとえば、メッセージソース101は、「s」として示されるメッセージを生成する。このメッセージsは、エンコーダ102によってエンコード(符号化)される。エンコーダ102の出力は符号語である。従来のエンコード法を用いてメッセージsをエンコードする。1つの例では、LDPC符号を用いてメッセージsをエンコードする。メッセージソース101及びエンコーダ102を、送信機に含めることができ、または、エンコーダ102だけを、エンコードされたメッセージSをシステム100に送信する送信機に含めることができる。
符号語xはメッセージsを表す。メッセージs及び符号語xを次のように表すことができる。
s1、…、skはメッセージ内のビットである。x1、…、xnは、メッセージを表すために使用できる符号Cからの符号語のビットまたはシンボルである。nは、符号語内のビットまたはシンボルの数である。
s1、…、skはメッセージ内のビットである。x1、…、xnは、メッセージを表すために使用できる符号Cからの符号語のビットまたはシンボルである。nは、符号語内のビットまたはシンボルの数である。
符号語xは、通信チャンネル103上をデコーダ104を含む受信機へと送信される。デコーダ104は、この送信された符号語xを受信するが、それはyとして示されている。たとえば、チャンネル103は、送信された符号語xとは異なる場合がある受信された語(ワード)yをもたらすノイズを含む。このノイズのあるチャンネル103はxにエラーを導入する場合がある。yを、
と表すことができる。通信チャンネル103は、エンコードされたデータを記憶するための媒体に対するエンコードされたデータの書き込み及び読み出しという全ての処理を表すこともできることに留意されたい。たとえば、エンコードされたデータを、ハードディスクなどのコンピュータ読み取り可能媒体に格納することができる。データは、コンピュータ読み取り可能媒体から読み出されて、デコーダ104によって復号される。コンピュータ読み取り可能媒体に格納されたデータのいくつかは、時間の経過と共に破損する場合がある。デコーダ104は、本明細書に記載されているステップを用いて、格納されているデータを復号するときにそのデータを不正確に推定(または評価)するという誤り(エラー)を最小にする。
と表すことができる。通信チャンネル103は、エンコードされたデータを記憶するための媒体に対するエンコードされたデータの書き込み及び読み出しという全ての処理を表すこともできることに留意されたい。たとえば、エンコードされたデータを、ハードディスクなどのコンピュータ読み取り可能媒体に格納することができる。データは、コンピュータ読み取り可能媒体から読み出されて、デコーダ104によって復号される。コンピュータ読み取り可能媒体に格納されたデータのいくつかは、時間の経過と共に破損する場合がある。デコーダ104は、本明細書に記載されているステップを用いて、格納されているデータを復号するときにそのデータを不正確に推定(または評価)するという誤り(エラー)を最小にする。
デコーダ104は、yを復号して、送信された符号語xと、該符号語xによって表されるメッセージsを推定(または評価)する。推定(または評価)された送信済みの符号語は、
として示されており、推定(または評価)されたメッセージは、
として示されている。
及び、
は、受信したメッセージに対して更なる処理を実行することができる回路105に送られる。
として示されており、推定(または評価)されたメッセージは、
として示されている。
及び、
は、受信したメッセージに対して更なる処理を実行することができる回路105に送られる。
復号ルールを選択する一般的なアプローチは、誤りのある
に対する復号の確率を最小化する、すなわち、
を最小にする復号ルールを選択することである。選択されたルールは、ブロック毎の最大事後確率(maximum a posteriori:MAP)復号ルールとして知られており、
と書くことができる。この定義に基づいて、受信された所与のyに対するxの事後確率(または経験的確率)を最大にする符号語xが選択される。全ての符号語が同程度の確からしさ(または同じ確率)で送信されると想定すると(これは、ごく一般的な想定である)、決定ルールは、ブロック毎の最尤(ML)復号ルール(または、尤度最大化復号ルール)として知られているものになり、これは、
として定義される。この定義に基づいて、xが送信された場合にyが観測される確率を最大にするコードワードxが選択される。ML復号に対するこの式を次の式1のように書くことができることが、Feldman他による「Using Linear Programming toDecode Binary Linear Codes」、IEEE Transactions onInformation Theory, March 2005, pp. 954-972(以下、「Feldman他」として参照する)に記載されている。
に対する復号の確率を最小化する、すなわち、
を最小にする復号ルールを選択することである。選択されたルールは、ブロック毎の最大事後確率(maximum a posteriori:MAP)復号ルールとして知られており、
と書くことができる。この定義に基づいて、受信された所与のyに対するxの事後確率(または経験的確率)を最大にする符号語xが選択される。全ての符号語が同程度の確からしさ(または同じ確率)で送信されると想定すると(これは、ごく一般的な想定である)、決定ルールは、ブロック毎の最尤(ML)復号ルール(または、尤度最大化復号ルール)として知られているものになり、これは、
として定義される。この定義に基づいて、xが送信された場合にyが観測される確率を最大にするコードワードxが選択される。ML復号に対するこの式を次の式1のように書くことができることが、Feldman他による「Using Linear Programming toDecode Binary Linear Codes」、IEEE Transactions onInformation Theory, March 2005, pp. 954-972(以下、「Feldman他」として参照する)に記載されている。
式1は、費用関数
を最小にする符号語xを見出すようにML復号を定式化できることを示している。デコーダ104は、費用関数を最小にする符号語xを選択する。ここで、
である。λiは、i番目のビットの対数尤度比(Log-likelihood ratio;LLR)である。このLLRλiの符号は、送信されたビットxiが0と1のどちらである可能性が高いかを示す。xiが1である可能性が高い場合にはλiは負である。xiが0である可能性が高い場合にはλiは正である。Feldman他に記載されているように、費用ベクトル(cost vector)λを、LP復号問題の解に影響を与えることなく正のスカラーによって均一にリスケール(大きさを調整する)できることに留意されたい。たとえば、2元対称通信路(binary symmetric channel)の場合、yi=1であればλi=−1であり、yi=0であればλi=+1であると想定することができる。
を最小にする符号語xを見出すようにML復号を定式化できることを示している。デコーダ104は、費用関数を最小にする符号語xを選択する。ここで、
である。λiは、i番目のビットの対数尤度比(Log-likelihood ratio;LLR)である。このLLRλiの符号は、送信されたビットxiが0と1のどちらである可能性が高いかを示す。xiが1である可能性が高い場合にはλiは負である。xiが0である可能性が高い場合にはλiは正である。Feldman他に記載されているように、費用ベクトル(cost vector)λを、LP復号問題の解に影響を与えることなく正のスカラーによって均一にリスケール(大きさを調整する)できることに留意されたい。たとえば、2元対称通信路(binary symmetric channel)の場合、yi=1であればλi=−1であり、yi=0であればλi=+1であると想定することができる。
式1は、2元線形符号(binary linear code)を復号するために、費用関数
を最小にする符号語が見出されることを示している。式1の解は、次の式2によって表される最適化問題の解でもあることが理解される。
を最小にする符号語が見出されることを示している。式1の解は、次の式2によって表される最適化問題の解でもあることが理解される。
式2において、conv(C)は、Cの凸閉包(convex hull。または凸包)を意味する。費用関数がxに関して線形であり、かつ、conv(C)が多面体である(したがって、一致及び不一致を利用して表すことができる)ので、式2に関する最適化問題はLPと呼ばれる。式2は、最小値がCについてだけでなくconv(C)について取得されるときにも、式1の解が費用関数
を最小にするということを示している。費用関数
を最小にするconv(C)中のポイントの集合は、conv(C)の少なくとも1つの頂点−これは定義により符号語である−を常に含むことに留意されたい。したがって、実用上の見地からは、式1と式2の解は等価である。
を最小にするということを示している。費用関数
を最小にするconv(C)中のポイントの集合は、conv(C)の少なくとも1つの頂点−これは定義により符号語である−を常に含むことに留意されたい。したがって、実用上の見地からは、式1と式2の解は等価である。
式1及び2を解くことは、よい符号 (good code)のブロック長nに関して指数関数的に複雑になり、したがって、実用上有意なブロック長について解くことはできない。そこで、最適化理論における標準的なアプローチは、多面体(この例ではconv(C))を記述の複雑さ (description complexity:記述複雑さ)がはるかに少ない弛緩(または緩和。以下同じ)された多面体に弛緩することである。こうして、新たなLPをより簡単に解くことができ、その上、この新たなLPの解が、通常は、以前のLPの解に近いか、または、それと同じになるように、弛緩された多面体が定式化される。式2を次のように書くこともできる。
式3において、ωは多面体Ω内の点であり、ωiはベクトルω=(ω1、ω2、・・・、ωn)内の成分(または要素)である。図2は、式1及び2の解を表す2次元多面体200の一例を示す。多面体200の頂点がLPの解である。頂点のいくつかがω(1)〜ω(5)として示されている。式4は、弛緩された多面体に関するLPを表す。
式4において、Ω’は弛緩された多面体である。多面体200の弛緩の一例が図3に弛緩300として示されている。式4においてLPをより簡単に解くことができ、その上、その解が、式3におけるLPの解に近いかまたはそれと同じであるように、弛緩300は選択される。
デコードに関しては、弛緩された多面体は基本多面体 (fundamental polytope)と呼ばれる。かかる基本多面体を以下のようにLDPC符号について定義することができる。LDPC符号は、本技術分野において知られているように、パリティ検査行列を用いて定義される。パリティ検査行列はランダムに生成されることができる。さらに重要なことには、LDPC符号は、行列とベクトルの積(行列ベクトル積)HxTが0に等しい場合(Hは、符号Cに対するパリティ検査行列である)に、符号語xがLDPC符号C内にあるように定義される。
たとえば、パリティ検査行列Hは、
符号語xは、x1+x2+x3=0(mod2)、x2+x4+x5=0(mod2)、及び、x3+x4+x5=0(mod2)という3つの条件を満たさなければならない。したがって、これらの条件を満たす全てのxの集合であるCは、C1∩C2∩C3という論理積である。ここで、
である。
である。
基本多面体P(H)は、この場合、式5に示すように定義される。
P(H)が、実際に、conv(C)の弛緩、すなわち、P(H)がconv(C)のスーパーセット(または上位集合)であることがわかる。この場合、LPデコーダは式6に示すように定義される。
本明細書及びFeldman他では、基本多面体内の点(ポイント)を疑似符号語と呼んでいる。当業者には、基本多面体を別様に定義できること、及び、非LPDC符号及び非線形符号についても定義できることが明らかであろう。パリティ検査行列及び符号C1〜C3は、LPデコーダを定義するのに適した基本多面体の生成を例示するための1例として提示されている。
本明細書における例及び式の多くは、m×nの大きさのパリティ検査行列Hによって定義される2元線形符号(binary linear code)Cを含んでいる。Hに基づいて、集合は次のように定義される。
さらに、各
について、符号は、
である。ここで、hjは、Hのj番目の行である。Cjは、Ijにない全ての位置が制約されていないところの長さnの符号であることに留意されたい。
さらに、各
について、符号は、
である。ここで、hjは、Hのj番目の行である。Cjは、Ijにない全ての位置が制約されていないところの長さnの符号であることに留意されたい。
1実施形態によれば、式6に記述されているLPは主LPと呼ばれ、対応する双対LP(dual LP)を主LPから決定して該LPの解が求められる。一般的に、任意の(主)線形計画問題の場合、いわゆる双対LPを定式化することができる。双対LPを決定する理由の1つは、双対LPを用いて主LPの解を導出できることにある。したがって、式6中の主LPを直接に解かなくてもよい。代わりに双対LPを解いて、その解から主LPの解を導出するための1つの方法を以下で説明する。式6に記述されているLPに関しては、対応する主LPと該主LPから定式化された双対LPが、Vontobel他による「TowardsLow Complexity Linear-Programming Decoding」(2006年2月26日)に記載されている(以下、この文献を「Vontobel他」という)。主LPは次のように式7で示される。
符号
は、全ての要素が0のベクトルと、全ての要素が1である、長さが
のベクトルを含む集合である。
は、位置
における短縮された符号Cjである。
についてはベクトルuiが用いられ、この場合、エントリは、
によって索引付けされ、
によって示される。
についてはベクトルνjが用いられ、この場合、エントリはIjによって索引付けされ、
によって示される。その後、エントリai、bjについて、類似の表記である、
がそれぞれ使用される。
は、全ての要素が0のベクトルと、全ての要素が1である、長さが
のベクトルを含む集合である。
は、位置
における短縮された符号Cjである。
についてはベクトルuiが用いられ、この場合、エントリは、
によって索引付けされ、
によって示される。
についてはベクトルνjが用いられ、この場合、エントリはIjによって索引付けされ、
によって示される。その後、エントリai、bjについて、類似の表記である、
がそれぞれ使用される。
上記の最適化問題は、図4に示されかつ後述するFFGによってすっきりと表される。FFGにおいてLPそのものを表現するために、制約は、追加の費用項(cost term)として表される。これは、LP制約を満たさない変数の任意の構成に費用+∞を割り当て、LP制約を満たす変数の構成に費用0を割り当てることによって達成される。上記の最小化問題は、この場合、次のようにな拡張された費用関数の(制約のない)最小化と等価である。
全ての
及び、全ての
について、それぞれ、
である。
という表記は、ステートメントSが真の場合は、
であることを、偽の場合は、
であることを意味する。
全ての
及び、全ての
について、それぞれ、
である。
という表記は、ステートメントSが真の場合は、
であることを、偽の場合は、
であることを意味する。
FFGを用いて、式7において示されるLPの拡張された費用関数を表すことができる。図4は、式7で示されるLPの拡張された費用関数の一部のFFG400を示す。ここで説明されるFFGは加法関数(additive function)を表し、該関数の値は、局所関数(localfunction)ノードの値の和に等しく、さらに、式7中のLPの拡張された費用関数の値にも等しい。FFG400は、左側にある局所関数ノードλixi、及び、右側にある制約関数ノードを示す。主LPの完全なFFGは、局所関数λixi(i=1〜n)の各々の関数ノードを対応するエッジと共に含む。関数ノード401は、変数xi(i=1〜n)である引数(または独立変数)を有する関数を表すことに留意されたい。変数xi及びui,0に対応するエッジは、「=」関数ノードによって接続され、該関数ノードは、値が、
である一致関数(equalityfunction。または、等値関数)ノードである。関数Ai及びBjの関数ノード402及び403が図示されている。Ai及びBjは、該LPの一致及び不一致に関連するペナルティー関数(または損失関数)を表す。これらの関数ノードは、対応する一致及び不一致が満たされているか否かに応じて、0と無限大のいずれかとして推定(または評価)される。また、エッジ405と406は、値が、
の一致関数ノードである「=」によって接続されていることにも留意されたい。
である一致関数(equalityfunction。または、等値関数)ノードである。関数Ai及びBjの関数ノード402及び403が図示されている。Ai及びBjは、該LPの一致及び不一致に関連するペナルティー関数(または損失関数)を表す。これらの関数ノードは、対応する一致及び不一致が満たされているか否かに応じて、0と無限大のいずれかとして推定(または評価)される。また、エッジ405と406は、値が、
の一致関数ノードである「=」によって接続されていることにも留意されたい。
いわゆる双対LPを、式6に示されている主LPに関連付けることができる。主LPと双対LPとは異なるLPであるが、一方の解を他方の解を求めるのに使用できる場合がしばしばある。詳細に後述するように、FFGを用いて双対LPを表すことができる。
双対LPは次のように式8によって定義される。
本明細書では、<ベクトル1、ベクトル2>という表現は、ベクトル1とベクトル2という2つのベクトルの内積を意味する。制約を追加の費用項(cost term)として表すと、上記の最大化問題は、拡張された費用関数、すなわち、
の(制約のない)最大化と等価である。各i
について、変数
は、1つの不一致に関与する(または、1つの不等式に含まれる)だけであるので、DLPD2内の一致符号を対応する不一致符号に置き換えても最適解は変わらない。同じことが全ての
にも当てはまる。
の(制約のない)最大化と等価である。各i
について、変数
は、1つの不一致に関与する(または、1つの不等式に含まれる)だけであるので、DLPD2内の一致符号を対応する不一致符号に置き換えても最適解は変わらない。同じことが全ての
にも当てはまる。
式8において、
は費用関数を表す。
は、双対LP内の変数である。nは、符号語内のシンボルの数である。λiは、式1に関連して述べたように、各変数ノードにおけるLLRである。双対LPの任意の解は、
を満たさなければならないので、時間及びメモリ空間を節約するためには、双対LPを解くときに、
のうちのいずれか1つの変数の集合だけを考慮すればよい。
は費用関数を表す。
は、双対LP内の変数である。nは、符号語内のシンボルの数である。λiは、式1に関連して述べたように、各変数ノードにおけるLLRである。双対LPの任意の解は、
を満たさなければならないので、時間及びメモリ空間を節約するためには、双対LPを解くときに、
のうちのいずれか1つの変数の集合だけを考慮すればよい。
図5は、式8において示される双対LPの拡張された費用関数の一部のFFG500を示す。関数ノード501は関数
を表す。関数ノード502及び503は、上述したように、関数
を表す。エッジ505と506は、「〜」関数ノードによって接続されていることに留意されたい。双対LPでは、「〜」関数ノードは、そのような関数ノードがエッジuとvに接続されている場合には、関数値が、
であるということを意味する。
を表す。関数ノード502及び503は、上述したように、関数
を表す。エッジ505と506は、「〜」関数ノードによって接続されていることに留意されたい。双対LPでは、「〜」関数ノードは、そのような関数ノードがエッジuとvに接続されている場合には、関数値が、
であるということを意味する。
FFGの代わりに、他のタイプのグラフを用いて式7の主LP及び式8の双対LPを表すことができる。ファクターグラフ(factor graph。または、因子グラフ)やタナーグラフ(Tanner graph)などのグラフを用いて、LPを図に表すことができる。
座標上昇法(座標上昇アルゴリズムとも呼ばれる)を用いて、双対LPを解くことができる。なぜなら、双対LPは、式8で示されている制約下で、
の最大値を決定することによって求められるからである。Vontobel他のセクション6には、座標上昇型アルゴリズムを用いて式8に示されている双対LPを解くことが開示されている。Vontobel他の開示によれば、座標上昇型アルゴリズムを用いて双対LPを解くことの主なアイデアは、更新スケジュールにしたがってエッジ
を選択することである。選択された各エッジについて、双対費用関数が増加するか、少なくとも減少しないように、
の前の(古い)値を新しい値で置き換える。たとえば、図5を参照すると、関数ノード502は、3つの出エッジ(outgoing edge)505、507、及び508を有する。一回の繰り返しで、変数
の1つを表すエッジ505などのエッジの1つが選択される。エッジ507及び508によって表される変数を含む、他の全ての変数は(たとえば一定値に)固定される。次に、双対費用関数
が減少しないように、エッジ505によって表される変数
の値が選択される。次に、別の繰り返しにおいて、別のエッジが選択されて、他の全ての変数が一定値に維持される。次に、双対費用関数が減少しないようにその変数の値が選択される。以下、残りの変数についても同様である。これは、かなり時間のかかる処理となりえ、特に、数百または数千ものビットを有する大きな符号語の場合にはそうである。
の最大値を決定することによって求められるからである。Vontobel他のセクション6には、座標上昇型アルゴリズムを用いて式8に示されている双対LPを解くことが開示されている。Vontobel他の開示によれば、座標上昇型アルゴリズムを用いて双対LPを解くことの主なアイデアは、更新スケジュールにしたがってエッジ
を選択することである。選択された各エッジについて、双対費用関数が増加するか、少なくとも減少しないように、
の前の(古い)値を新しい値で置き換える。たとえば、図5を参照すると、関数ノード502は、3つの出エッジ(outgoing edge)505、507、及び508を有する。一回の繰り返しで、変数
の1つを表すエッジ505などのエッジの1つが選択される。エッジ507及び508によって表される変数を含む、他の全ての変数は(たとえば一定値に)固定される。次に、双対費用関数
が減少しないように、エッジ505によって表される変数
の値が選択される。次に、別の繰り返しにおいて、別のエッジが選択されて、他の全ての変数が一定値に維持される。次に、双対費用関数が減少しないようにその変数の値が選択される。以下、残りの変数についても同様である。これは、かなり時間のかかる処理となりえ、特に、数百または数千ものビットを有する大きな符号語の場合にはそうである。
1実施形態によれば、複数の変数を1つの繰り返しにおいて変化させて双対LPの解を求めることができるように座標上昇法を用いて双対LPを解く。複数の変数が各繰り返しにおいて変更されるので、復号時間を短くすることができる。また、一般的に、双対LPの費用関数が減少しないことを保証するためには計算が複雑になるので、座標上昇関数の一回の繰り返しで複数の変数を変えることは簡単に理解されることではないかもしれない。しかしながら、研究及び試験を通じて、座標上昇法の一回の繰り返しで変化する特定の変数を選択することによって双対LPの解法を簡単にする後述の定式化が決定された。複数の変数は、双対LPを表すFFG中の関数ノードに付随する(または入射する)エッジによって表される全ての変数を含みうる。たとえば、FFG500では、双対費用関数が減少しないように、出エッジ505、507及び508によって表される全ての変数が単一の繰り返しで変更される。u'i,0=−x'iであるので、エッジu'i,0は変更されない場合があることに留意されたい。したがって、u'i,0に対して1つの値のみがあり、該値は、u'i,0(この場合、u'i,0=−x'i)に割り当てられている値である。所与の
について、ベクトル
が、全ての変数
を含む長さ
のベクトルを示すものとする。
は、A’を表す任意の関数ノードに対する座標上昇法における一回の繰り返しで更新される全ての変数を含むベクトルである。双対LPにおいて示される費用関数が減少しないように、関数
を用いて、ベクトル
内の全ての変数の値を決定することができる。式9は、
を次のように定義する。
について、ベクトル
が、全ての変数
を含む長さ
のベクトルを示すものとする。
は、A’を表す任意の関数ノードに対する座標上昇法における一回の繰り返しで更新される全ての変数を含むベクトルである。双対LPにおいて示される費用関数が減少しないように、関数
を用いて、ベクトル
内の全ての変数の値を決定することができる。式9は、
を次のように定義する。
は、ベクトル
中の変数を変更することによって影響を受ける双対費用関数の部分を表す。
の解は、
が最大になるポイントである。具体的には、
は、次の(di+1)のポイント(点)の任意のポイントで最大になり、したがって、それらの凸包で最大になる。
cは、長さdiで、かつ、k番目の成分が、
に等しいベクトルである。j(k)は、
におけるk番目の要素であり、
である。また、
である。ベクトル
は、それぞれ、ベクトル
であり、この場合、i番目の位置は省かれている。
は、上記のポイント(di+1)のうちの任意のポイントで最大になり、したがって、それらの凸包の任意のポイントで最大になる。したがって、それらのポイントのうちの任意のポイントを、双対費用関数の解として選択することができる。
の最大値を迅速かつ効率的に計算することができ、これによって、より速い復号処理が提供されることに留意されたい。一般に、
が最大になるポイントということに加えて、
がその現在値に対して減少しない任意の
を、解として使用できることに留意されたい。
に等しいベクトルである。j(k)は、
におけるk番目の要素であり、
である。また、
である。ベクトル
は、それぞれ、ベクトル
であり、この場合、i番目の位置は省かれている。
は、上記のポイント(di+1)のうちの任意のポイントで最大になり、したがって、それらの凸包の任意のポイントで最大になる。したがって、それらのポイントのうちの任意のポイントを、双対費用関数の解として選択することができる。
の最大値を迅速かつ効率的に計算することができ、これによって、より速い復号処理が提供されることに留意されたい。一般に、
が最大になるポイントということに加えて、
がその現在値に対して減少しない任意の
を、解として使用できることに留意されたい。
上述したように、座標上昇法は、各々の繰り返しにおいて1つの変数を変化させる代わりに、各々の繰り返しにおいて複数の変数を同時に変化させる。複数の変数は、FFG500中の関数ノードに関連付けられている。1実施形態では、関数ノードの1つに関連付けられている複数の変数の集合は、座標上昇法の各繰り返しに対してランダムに選択され、これによって、復号時間を改善する(短くする)ことができる。
式9において、
は、A'iを表す任意の関数ノードについて座標上昇法における単一の繰り返しで更新される全ての変数を含むベクトルである。B'jを表すFFG500中のノード(たとえば、ノード503)に対する一回の繰り返しで、複数の変数を変更することができる。これらの変数は、ノード503の出エッジを含む。以下に示す式10は、双対LPにおいて示される費用関数が減少しないように、ベクトル
中の全ての変数の値を決定するための関数
を定義し、ここで、
は、B'jを表す任意の関数ノードについて座標上昇法における単一の繰り返しで更新される全ての変数を含むベクトルである。式10は、
を次のように定義する。
は、A'iを表す任意の関数ノードについて座標上昇法における単一の繰り返しで更新される全ての変数を含むベクトルである。B'jを表すFFG500中のノード(たとえば、ノード503)に対する一回の繰り返しで、複数の変数を変更することができる。これらの変数は、ノード503の出エッジを含む。以下に示す式10は、双対LPにおいて示される費用関数が減少しないように、ベクトル
中の全ての変数の値を決定するための関数
を定義し、ここで、
は、B'jを表す任意の関数ノードについて座標上昇法における単一の繰り返しで更新される全ての変数を含むベクトルである。式10は、
を次のように定義する。
式10は、関数ノードB'jの出エッジに対応する全ての変数を更新するために使用される。関数ノードB'jが次数kを有し、
であると仮定する。
を最大にする
の集合は凸集合であるが、この集合は、式9を最大にするために得られたポイントの集合とは対照的に(説明するには)かなり複雑であることが容易に理解されよう。したがって、以下では、
を最大にする集合中の1つのポイント(このポイントは、一般的には集合の中間にある)ついて説明する。次の表記を使用する。|λ|は、λの絶対値を表す。
は、
の符号、及び、
を表す。さらに、
は、
となるように順序付けられる。この場合、中間のポイントは、
によって与えられる。
の定式化(または表現)はほぼ同じであるであることに留意されたい。また、上述の、
を最大にする集合中の1つのポイントに代えて、関数
が減少しないように、一般に、任意の
を選択できることに留意されたい。
であると仮定する。
を最大にする
の集合は凸集合であるが、この集合は、式9を最大にするために得られたポイントの集合とは対照的に(説明するには)かなり複雑であることが容易に理解されよう。したがって、以下では、
を最大にする集合中の1つのポイント(このポイントは、一般的には集合の中間にある)ついて説明する。次の表記を使用する。|λ|は、λの絶対値を表す。
は、
の符号、及び、
を表す。さらに、
は、
となるように順序付けられる。この場合、中間のポイントは、
によって与えられる。
の定式化(または表現)はほぼ同じであるであることに留意されたい。また、上述の、
を最大にする集合中の1つのポイントに代えて、関数
が減少しないように、一般に、任意の
を選択できることに留意されたい。
式11に示されているように、
の場合には、
は0に等しく、
の場合には、
は1に等しい。また(他の場合には)、
である。「?」は、ビット
が0か1かをデコーダが決定できないことを意味する。この場合、再送または再読み込みを実行することができる。
の場合には、
は0に等しく、
の場合には、
は1に等しい。また(他の場合には)、
である。「?」は、ビット
が0か1かをデコーダが決定できないことを意味する。この場合、再送または再読み込みを実行することができる。
図6は、1実施形態による、データを復号(デコード)するための方法600のフローチャートを示す。図6を、限定ではなく例示として、図1〜5に関して説明することができる。
ステップ601では、符号化されたデータが受信される。たとえば、図1に示す符号化されたデータyがデコーダ104によって受信される。
ステップ602では、受信したデータを復号するためにLPが決定される。このLPは式6及び7に記述されている。このLPは、特定の符号語が通信チャンネルを介して送信された場合に特定の語(ワード)が受信される確率に関連する費用関数を含む。このLPは、式8において示される双対LPとして定式化され、ステップ602におけるLPはこの双対LPを含むことができる。
ステップ603では、一回の繰り返しで費用関数に関連する複数の変数を変更する座標上昇法を用いて、ステップ602からのLPの解を求める。たとえば、任意のA'iについて、式9を解いて双対LPの解を改善する。任意のB'jについて、式10を解いて双対LPの解を改善する。
及び、それぞれの
を最大にする解を選択することができる。
及び、それぞれの
を最大にする解を選択することができる。
ステップ604では、送信された符号語を、ステップ603からの解を用いて、受信した符号化されたデータから推定する。式11は、この解を送信された符号語の推定値に変換することを記述している。
図7は、1実施形態による、デコーダ700の例示的なブロック図を示す。デコーダ700は、ソフトウエアを実行するための実行プラットホームを提供するプロセッサ701などの1つ以上のプロセッサを備える。デコーダ700は、また、図1に示すデータyなどの通信チャンネルを介して受信されたデータを格納するためのデータ記憶装置702を備える。プロセッサ701は、上述の方法600及び他の処理ステップに関して説明したように、受信したデータを復号するように動作可能である。デコーダ700はメモリ703を備え、ソフトウエアは実行中はこのメモリに常駐することができる。このソフトウエアは、データを復号するために上述のステップを具現化(して実行)することができる。
具体的には、本明細書に記載した方法600及び他の処理ステップを、メモリ703などのコンピュータ読み取り可能媒体に組み込まれて、プロセッサ701などのプロセッサによって実行されるソフトウエアとして実施することができる。これらのステップを、アクティブ及び非アクティブの種々の形態で存在することができるコンピュータプログラムによって具現化することができる。たとえば、それらのプログラムは、ソースコード、オブジェクトコード、実行可能コード、または、上記ステップのいくつかを実行するための他のフォーマットの形態のプログラム命令からなるソフトウエアプログラムとして存在しうる。これらのうちの任意のものを、記憶装置を備え、及び圧縮された形態または非圧縮形態の信号を含むコンピュータ読み取り可能媒体に組み込むことができる。好適なコンピュータ読み取り可能記憶装置の例には、従来のコンピュータシステムRAM(ランダムアクセスメモリ)、ROM(読出し専用メモリ)、EPROM(消去可能なプログラマブルROM)、EEPROM(電気的に消去可能なプログラマブルROM)及び、磁気ディスク、光ディスク、(磁気)テープが含まれる。コンピュータ読み取り可能信号の例には、キャリヤを用いて変調されるか否かにかかわらず、その信号をアクセスするように、コンピュータプログラムをホストしまたは実行するコンピュータシステムを構成することができるところの信号があり、これには、インターネットまたは他のネットワークを介してダウンロードされる信号が含まれる。これらの具体的な例には、CD−ROMで配布されるプログラムやインターネットからダウンロードされる配信プログラムが含まれる。ある意味では、抽象的な実体としてのインターネットそのものが、1つのコンピュータ読み取り可能媒体である。このことは、一般にコンピュータネットワークにも言える。
当業者には、デコーダ700が一般的なデコーダを例示しており、デコーダ700において使用できる多くの従来のコンポーネントが示されていないことが明らかであろう。
いくつかの実施形態をいくつかの例を参照して説明したが、当業者は、特許請求の範囲に含まれる実施形態の範囲から逸脱することなく、説明した実施形態に種々の変更を施すことができるであろう。
Claims (10)
- 通信システムにおいて受信されたデータを表す符号を復号する方法であって、
前記通信システムにおいて通信チャンネル103上を伝送された符号語xを表す符号化されたデータyを受信するステップと、
前記受信したデータを復号するための線形計画法(LP)を決定するステップであって、該線形計画法は、特定の符号語が前記通信チャンネル103を介して送信されたときに特定の語(ワード)が受信される確率に関連する費用関数を含む、ステップと、
一回の繰り返しで前記費用関数に関連する複数の変数を変更する座標上昇法を用いて前記LPの解を計算するステップと、
前記LPの解を用いて、送信された符号語
を、前記受信した符号化されたデータyから推定するステップ
を含む方法。 - 線形計画法を決定する前記ステップが、
前記LPから双対LPを決定するステップであって、前記LPは主LPであり、前記双対LPは、双対費用関数、前記費用関数から得られた制約、及び、前記主LPにおける制約を含む、ステップを含み、
前記LPの解を計算する前記ステップが、
前記双対LPの解を計算するときに前記双対費用関数を最適化することによって前記双対LPを解くステップを含む
ことからなる、請求項1の方法。 - 前記双対費用関数を最適化する前記ステップが、前記双対費用関数が前記制約に関して最大化されるように前記双対LPの解を決定するステップを含むことからなる、請求項2の方法。
- 前記双対費用関数が、被加数である局所関数を表す、前記双対費用関数の関数ノードA’iまたはB’j、及び、前記それぞれの関数の変数を表すそれぞれの関数ノードに接続されたエッジを有するフォーニー型ファクターグラフ500によって表現可能であり、
前記双対LPを解くステップが、前記複数の変数を選択するステップを含み、該複数の変数が、前記関数ノードの特定の関数ノードに付随するエッジによって表される変数を含むことからなる、請求項2の方法。 - 前記特定の関数ノードが、関数A’iまたはB’jを表し、前記双対LP中のA’iが前記主LP中の一致関数ノードAiの双対関数であり、前記双対LP中のB’jが、前記主LP中のパリティ検査ノードBjの双対関数である、請求項4の方法。
- 前記複数の変数を選択するステップが、
A’i関数ノードまたはB’j関数ノードをランダムに選択するステップと、
前記ランダムに選択された関数ノードの付随するエッジに関連する変数を更新するステップ
を含むことからなる、請求項5の方法。 - ノイズのある通信チャンネル103上を伝送して受信されたデータyを復号するように動作可能なデコーダ(104または700)であって、
該デコーダ(104または700)が、
前記通信チャンネル103を介して受信した符号化されたデータyのビットを格納するメモリ703と、
送信された符号語
を、前記受信したビットyから推定するプロセッサ701
を備え、
該プロセッサ701は、決定するステップと、計算するステップと、推定するステップとによって、前記送信された符号語を推定するように動作可能であり、
前記決定するステップが、前記受信したデータyを復号するための線形計画法(LP)を決定するステップであり、該線形計画法は、特定の符号語が前記通信チャンネル103を介して送信されたときに特定の語(ワード)が受信される確率に関連する費用関数を含み、
前記計算するステップが、前記費用関数に関連する複数の変数を一回の繰り返しで変更する座標上昇法を用いて前記LPの解を計算するステップであり、
前記推定するステップが、前記LPの解を用いて、前記受信した符号化されたデータyから送信された符号語
を推定するステップであることからなる、デコーダ。 - 前記プロセッサ701が、前記LPを双対費用関数を含む双対LPとして定式化し、及び、該双対LPの解を求めることからなる、請求項9のデコーダ(104または700)。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/831,716 US20090034661A1 (en) | 2007-07-31 | 2007-07-31 | Coordinate-ascent method for linear programming decoding |
PCT/US2008/009355 WO2009017834A2 (en) | 2007-07-31 | 2008-07-31 | Coordinate-ascent method for linear programming decoding |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010535459A true JP2010535459A (ja) | 2010-11-18 |
Family
ID=40305146
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010519952A Withdrawn JP2010535459A (ja) | 2007-07-31 | 2008-07-31 | 線形計画法復号のための座標上昇法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20090034661A1 (ja) |
JP (1) | JP2010535459A (ja) |
CN (1) | CN101772892A (ja) |
DE (1) | DE112008002060T5 (ja) |
WO (1) | WO2009017834A2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012257108A (ja) * | 2011-06-09 | 2012-12-27 | Nippon Telegr & Teleph Corp <Ntt> | 線形符号におけるlp復号器及び整数解計算方法及びプログラム |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102130745B (zh) * | 2011-04-07 | 2013-04-17 | 山东大学 | 一种改进的ldpc码的线性规划译码方法 |
JP2019057806A (ja) * | 2017-09-20 | 2019-04-11 | 東芝メモリ株式会社 | メモリシステム |
EP3891897B1 (en) * | 2018-12-03 | 2024-01-24 | Universite De Bretagne Sud | Iterative decoder for decoding a code composed of at least two constraint nodes |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3808769B2 (ja) * | 2001-12-27 | 2006-08-16 | 三菱電機株式会社 | Ldpc符号用検査行列生成方法 |
EP1526647B1 (en) * | 2002-07-02 | 2008-10-01 | Mitsubishi Electric Corporation | Generation of a check matrix for irregular low-density parity-check (LDPC) codes |
US20050283707A1 (en) * | 2004-06-22 | 2005-12-22 | Eran Sharon | LDPC decoder for decoding a low-density parity check (LDPC) codewords |
US7890842B2 (en) * | 2005-02-14 | 2011-02-15 | California Institute Of Technology | Computer-implemented method for correcting transmission errors using linear programming |
CN100539440C (zh) * | 2006-06-09 | 2009-09-09 | 东南大学 | 低密度奇偶校验码迭代排序统计译码方法 |
-
2007
- 2007-07-31 US US11/831,716 patent/US20090034661A1/en not_active Abandoned
-
2008
- 2008-07-31 JP JP2010519952A patent/JP2010535459A/ja not_active Withdrawn
- 2008-07-31 DE DE112008002060T patent/DE112008002060T5/de not_active Withdrawn
- 2008-07-31 CN CN200880101520A patent/CN101772892A/zh active Pending
- 2008-07-31 WO PCT/US2008/009355 patent/WO2009017834A2/en active Application Filing
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012257108A (ja) * | 2011-06-09 | 2012-12-27 | Nippon Telegr & Teleph Corp <Ntt> | 線形符号におけるlp復号器及び整数解計算方法及びプログラム |
Also Published As
Publication number | Publication date |
---|---|
WO2009017834A2 (en) | 2009-02-05 |
DE112008002060T5 (de) | 2010-09-09 |
WO2009017834A3 (en) | 2009-03-26 |
CN101772892A (zh) | 2010-07-07 |
US20090034661A1 (en) | 2009-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110226289B (zh) | 接收器和用于解码的方法 | |
US11451247B2 (en) | Decoding signals by guessing noise | |
KR102223968B1 (ko) | 극 부호의 병렬화된 연속 제거 디코딩 및 연속 제거 리스트 디코딩을 위한 장치 및 방법 | |
CN102412847B (zh) | 用联合节点处理来解码低密度奇偶校验码的方法和设备 | |
JP5705106B2 (ja) | ユークリッド空間リード−マラー符号の軟判定復号を実行する方法 | |
JP6451955B2 (ja) | 多段ソフト入力デコードのためのシステムおよび方法 | |
KR100958234B1 (ko) | 패리티 검사 디코더들에서 사용하기 위한 노드 처리기들 | |
US9946475B2 (en) | Joint rewriting and error correction in write-once memories | |
JP4038518B2 (ja) | 低密度パリティ検査コードを効率的に復号する方法及び装置 | |
US8996972B1 (en) | Low-density parity-check decoder | |
US20160013810A1 (en) | Flexible polar encoders and decoders | |
US10425107B2 (en) | Partial sum computation for polar code decoding | |
US9203432B2 (en) | Symbol flipping decoders of non-binary low-density parity check (LDPC) codes | |
US10790857B1 (en) | Systems and methods for using decoders of different complexity in a hybrid decoder architecture | |
KR20050083974A (ko) | 러닝 최소 메시지 전달 저밀도 패리티 검사 디코딩 | |
JP2002353946A (ja) | 有限サイズのデータブロックに対して誤り訂正符号を評価する方法 | |
US7681110B2 (en) | Decoding technique for linear block codes | |
US20200091933A1 (en) | Iterative decoding with early termination criterion that permits errors in redundancy part | |
JP4053002B2 (ja) | 格子暗号およびマルチレベル剰余型暗号を復号する方法および装置 | |
JP7429223B2 (ja) | ターボ積符号の復号方法、装置、デコーダー及びコンピュータ記憶媒体 | |
JP2010535459A (ja) | 線形計画法復号のための座標上昇法 | |
US10038456B1 (en) | Decoders with look ahead logic | |
KR102607761B1 (ko) | 극 부호를 이용하는 복호화를 위한 복호 위치 제어 정보 생성 방법 및 장치 | |
KR20230142195A (ko) | 극 부호 신뢰 전파 비트 반전 복호 장치 및 방법 | |
CN114978195A (zh) | 一种极化码串行抵消列表译码码字相关的错误图样集搜索方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20111219 |