JP2004274186A - 誤り訂正符号の復号評価方法及び装置 - Google Patents
誤り訂正符号の復号評価方法及び装置 Download PDFInfo
- Publication number
- JP2004274186A JP2004274186A JP2003059244A JP2003059244A JP2004274186A JP 2004274186 A JP2004274186 A JP 2004274186A JP 2003059244 A JP2003059244 A JP 2003059244A JP 2003059244 A JP2003059244 A JP 2003059244A JP 2004274186 A JP2004274186 A JP 2004274186A
- Authority
- JP
- Japan
- Prior art keywords
- noise
- decoding
- pseudo
- calculation
- variables
- 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
Landscapes
- Detection And Correction Of Errors (AREA)
- Error Detection And Correction (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
【課題】復号器の性能を評価する際の計算量を抑えながら良好な近似計算を可能にする。
【解決手段】ノイズ・ベクトルの各ビット毎の周辺事後確率を、ステップS14〜S17で擬似変数を逐次的に更新する逐次計算を行ってその収束値を求めることにより近似値を計算する。このとき、ステップS14でノイズをランダムに決めることにより、逐次計算の結果の平均値を、逐次計算の各段階で平均をとった計算の結果で近似する。
【選択図】 図2
【解決手段】ノイズ・ベクトルの各ビット毎の周辺事後確率を、ステップS14〜S17で擬似変数を逐次的に更新する逐次計算を行ってその収束値を求めることにより近似値を計算する。このとき、ステップS14でノイズをランダムに決めることにより、逐次計算の結果の平均値を、逐次計算の各段階で平均をとった計算の結果で近似する。
【選択図】 図2
Description
【0001】
【発明の属する技術分野】
本発明は、パリティ検査符号あるいは誤り訂正符号の復号器の性能評価を行うための誤り訂正符号の復号評価方法及び装置に関し、特に、Gallagerの低密度パリティ検査符号(LDPC符号)等で符号化したものを復号する復号器の性能を評価する誤り訂正符号の復号評価方法及び装置に関する。
【0002】
【従来の技術】
データ記録やデータ伝送用のパリティ検査符号あるいは誤り訂正符号の分野において、非常に長いブロック長に最適な符号を見つけだす問題は、一般化パリティ検査行列で定義されたパリティ検査符号によって、本質的に解決されてきた。これらのタイプの符号は、非特許文献1により初めて述べられたものであり、該非特許文献1には、R.G.Gallagerの低密度パリティ検査符号(LDPC符号)が開示されている。このGallagerのLDPC符号は、非特許文献1において提案されていたが、当時の計算機能力の貧弱さのため、その性能が正しいく認識されず、長い間忘れ去られていた。その後1995年にMacKayとNealにより類似の符号が“再発見”され、その性能の高さから多くの注目を集めており、現在、ターボ符号と並び、世界最高レベルの誤り訂正能力を持つと知られている。
【0003】
また、特許文献1には、Gallagerの有限長のLDPC符号の性能評価に関する技術が開示されている。
【0004】
ここで、ターボ符号は、携帯電話で想定されるノイズ領域ではLDPC符号よりも性能が良いため、すでに第3世代の携帯電話で実装されている。LDPC符号は、その他のノイズ領域ではターボ符号よりも性能が良いこと、符号設計の柔軟性が高いことから、今後の応用が期待される。
【0005】
上記Gallagerの低密度パリティ検査符号は、(N−M)×N行列のパリティ検査行列Aによって特徴づけされる。パリティ検査行列Aは各行にC個、各列にK個の非ゼロ成分1を持ち、それ以外の成分はすべて0であるように構成される。またパリティ検査行列Aから生成行列GTを、下記の式(1)の拘束条件を満たすように構成する。
【0006】
【数11】
【0007】
このような拘束条件を満たす生成行列は簡単に構成することができる。すなわち、パリティ検査行列を、A=(A1,A2)と、2つの部分行列A1:(N−M)×M行列、A2:(N−M)×(N−M)行列で表すと、生成行列GTは、下記の式(2)にて定義すればよい。
【0008】
【数12】
【0009】
パリティ検査行列Aは疎行列(1の数がO(N)個)であるのに対し、生成行列GTは一般に密行列(1の数がO(N2)個)となるため、符号化にはO(N2)のオーダの計算がかかる。符号変数C、Kは、符号化率R=M/NとC/K=1−Rの関係がある。
【0010】
次に、LDPC符号を用いたデータ記録やデータ伝送について説明する。例えばデータ伝送の場合、送信者はMビットのバイナリ・メッセージWに上記生成行列GTを掛けて符号語Xを作り(X=GTW)、それをノイズのある通信路に流す。通信路のモデルとして、ここでは、送信された各ビットが独立に確率pで反転するような2元対象通信路を考える。なおLDPC符号はその他の通信路のモデルに対しても容易に応用でき、また、種々のデータ記録にも適用できる。
【0011】
2元対称通信路で発生したノイズはノイズ・ベクトルξで記述できる。このベクトルはノイズによりビットが反転した場合に1を、そうで無い場合0を取る。受信者は、受信したベクトルYにパリティ検査行列Aを掛け、シンドロームJ=AYを計算する。AYは拘束条件(上記式(1))からノイズだけが抽出され、パリティ検査方程式J=Aξとなる。復号は、下記の式(3)のパリティ検査方程式を満たすノイズ・ベクトルsの中で通信路ノイズに関する事前知識に合うものを探すことに帰着する。
【0012】
【数13】
【0013】
推定したノイズ・ベクトル^ξ(^ξは、ξの推定値、ξハットを意味する。以下同様。)が正しければ、Y−(^ξ)=GTWとなるので、初めのMビットがメッセージである。しかしながら、パリティ検査方程式(上記式(3))は、方程式の次元(N−M)より変数の次元(N)の方が大きいため、方程式の解は無数存在し、その中からノイズの事前知識に合うものを探すことはNP完全問題であることが知られている。
【0014】
ところで、復号問題はBayesの事後確率を用いて定式化できる。シンドロームJが与えられたとき、パリティ検査方程式(3)を満たすノイズ・ベクトルの事後確率は、次の式(4)として記述できる。
【0015】
【数14】
【0016】
ここで、Arow(μ) は、パリティ検査行列Aのμ列目にある非ゼロ要素のある位置の集合を表す。また同様に、Acol(i) はパリティ検査行列Aのi行目にある非ゼロ要素のある位置の集合である。P0(si) はノイズの事前確率を表し、今、ビット反転確率pである2元対称通信路ではP0(0)=1−p、P0(1)=pである。また、P(Jμ|{si:i∈Arow(μ)})は、下記の式(5)である。
【0017】
【数15】
【0018】
この式(5)で、δ(a、b) はKroneckerのデルタ記号でa=bのとき1、そうでないとき0をとる。パリティ検査方程式(3)を満たさないノイズ・ベクトルsに対して、P(J|s)は0になる。
【0019】
各ビット毎の復号誤りを最小化することを目的とすると、周辺事後確率最大化(MPM)復号法が最適な復号方法であることが知られている。MPM復号とは、各ビットごとの周辺事後確率を下記の式(6)により求め、確率が大きい状態をノイズξiの推定値とする復号法である。
【0020】
【数16】
【0021】
しかしながら、周辺事後確率を計算することは一般にO(2N)のオーダの計算が必要となり、厳密計算は現実には困難である。
【0022】
近年、周辺事後確率を近似的にしかも高速に求めるアルゴリズムとして、ビリーフ・プロパゲーション(BP:belief propagation)アルゴリズムが注目を集めている。このアルゴリズムは人工知能研究で提案されたアルゴリズムであるが、LDPC符号の復号に非常に有効であることが多数の計算機実験により支持されている。
【0023】
以下、BP復号法のアルゴリズムを簡単に述べる。BPアルゴリズムではまず、−1から1までの実数値を取る2種類の変数の組{miμ,^mμi} を以下の式(7A)、(7B)に従い逐次的に更新し、その収束値を求める。
【0024】
【数17】
【0025】
ここでシンドロームJμはIsingスピン表現を用いている。Isingスピン表現とは統計物理学で用いられる表現で、バイナリ表現との間に、0:+1、1:−1、の関係があり、バイナリ表現での加法は、Isingスピン表現では乗法に対応する。Fは通信路ノイズの事前知識を表し、F=(ln(1−p)/p)/2である。集合Acol(i)は、パリティ検査行列Aのi列にある非ゼロ要素の位置を表す。Acol(i)/μは、集合Acol(i)から要素μを除いた集合を表す。集合Arow(μ)も同様に、パリティ検査行列Aのμ行目にある非ゼロ要素の位置を表す。周辺事後確率の近似値は、この収束解を用いて、下記の式(8)、(9)で与えられる。
【0026】
【数18】
【0027】
【特許文献1】
特開2002−353946号公報
【非特許文献1】
R.G.Gallager、“低密度のパリティ検査符号”、Research Monograph Series 第21巻、MIT Press 1963年発行
【0028】
【発明が解決しようとする課題】
ところで、上述したようなBP復号器の性能を厳密評価するためには、ノイズ・ベクトル{ξi}の全ての場合について復号の可否を調べ平均を取る必要がある。しかしながら、ノイズ・ベクトル{ξi}の全ての場合の数は2N個あり、Nが500とか1000とかの数値の場合に、2N個を全て調べることは現実には不可能である。現実にはノイズ・ベクトル{ξi}をランダムに生成し、それらに対して復号を行い、その平均値を求める方法をとる。符号語長をNとして、BPでは1回の復号にO(N)の計算がかかり、精度の良い結果を得るためにはO(N2)回程度の計算機実験が必要となるため、全体としてO(N3)程度の計算が必要になる。
【0029】
ここで図9は、ビット誤り率とノイズによるビット反転確率pとの関係を表した図である。この図9において、データaがメッセージ長500、データbがメッセージ長1000の各メッセージを、それぞれ2倍の長さの符号語にして通信を行った場合について、それぞれ106回の計算機実験により評価したものである。ビット誤り率の振舞いは、符号語長、パリティ検査行列の構成に強く依存する。ノイズが小さい領域では、大きな誤差棒が生じていることから分かるように、さらなる計算機実験が必要である。
【0030】
この図9から明らかなように、ビット誤り率の振舞いは、符号長やパリティ検査行列の構成に強く依存してしまう。また、ノイズの小さい領域では、大きな誤差棒が生じていることから分かるように、より多くの計算機実験が必要になる。LDPC符号の実用化を考えた場合、特定の条件化でのビット誤り率を求めることは非常に重要である。BPアルゴリズムの性能評価法に関する理論研究は、符号長無限大の極限、かつ、パリティ検査行列の構成に関して平均を実行した場合という非常に限られた場合しか成功していない。現実には、特定のパリティ検査符号を用いたときの性能なため、パリティ検査行列に関する平均を取ることは実際の利用という観点からは好ましくない。
【0031】
以上述べたことをまとめると、Gallagerの低密度パリティ検査符号(LDPC符号)は、復号器にビリーフ・プロパゲーション(BP)アルゴリズムを用いると、現在、世界最高性能の誤り訂正符号になることが知られている。LDPC符号は符号設計の自由度が高いため、個々の状況に応じた符号を設計できる。しかしこの事は個々の状況に応じて符号変数の最適化を行わねばならないことを意味する。LDPC符号の理論的解析は符号長無限大の場合のみしか行われておらず、実世界で重要である有限符号長の場合の性能評価は計算機実験に頼るしか方法がない。一般に、性能評価を行うためには多数の計算機実験を行う必要があり、より高速に性能評価出来る手法が求められているが、既存研究はBPアルゴリズムの解析の困難さからほとんど成功していない。
【0032】
このような点を考慮し、本発明においては、LDPC符号に用いた場合のBPアルゴリズムの動的性質を解析し、有限符号長のLDPC符号の誤り訂正能力を近似的ではあるが高速に評価する方法を提案する。
【0033】
すなわち、本発明は、上述したような実情に鑑みてなされたものであり、計算量を抑えながら復号器の評価を近似的に行えるような誤り訂正符号の復号評価方法及び装置の提供を目的とする。
【0034】
【課題を解決するための手段】
本発明に係る誤り訂正符号の復号評価方法及び装置は、誤り訂正符号により符号化されノイズ・ベクトルが付加されて得られた入力データを復号する復号器の性能を評価する際に、上記ノイズ・ベクトルの各ビット毎の周辺事後確率を計算するための擬似変数を用い、この擬似変数を逐次的に更新する逐次計算を行ってその収束値を求めることにより上記周辺事後確率の近似値を計算し、上記逐次計算の結果の平均値を、逐次計算の各段階で平均をとった計算の結果で近似することにより、上述の課題を解決する。
【0035】
ここで、上記逐次計算は、上記ノイズ・ベクトルのノイズ発生の個数α毎に、ノイズ発生の位置をランダムに決めながら上記擬似変数を逐次的に更新することにより行うことが好ましい。上記逐次計算による復号法は、ビリーフ・プロパゲーション法が挙げられる。
【0036】
また、上記逐次計算に用いる擬似変数としては、ビット反転確率pの2元対称通信路のノイズの事前知識を表すF=(ln(1−p)/p)/2、パリティ検査行列Aのi列にある非ゼロ要素の位置を表す集合Acol(i)、集合Acol(i)から要素μを除いた集合を表す集合Acol(i)/μ、パリティ検査行列Aのμ行目にある非ゼロ要素の位置を表す集合Arow(μ)、集合Arow(μ)から要素iを除いた集合を表す集合Arow(μ)/iを用いて表される次の式が挙げられる。
【0037】
【数19】
【0038】
【数20】
【0039】
これらの擬似変数が収束するまで逐次的に更新するような逐次計算を行った後、次の各式により、収束解を用いてビット誤り率の平均値PBPを求めることができる。
【0040】
【数21】
【0041】
【数22】
【0042】
【数23】
【0043】
【発明の実施の形態】
本発明の実施の形態の説明に先立ち、有限符号長のLDPC符号の性能を近似的に解析する手法を考察するため、ノイズに関する平均を取る時点および取り方を変更することについて説明する。
【0044】
BP復号器の厳密な性能を調べるためには、上述した式(7)の収束解をノイズ・ベクトル{ξi}の発生確率で平均を取ることが必要である。この「終状態の平均」を「逐次計算の各段階でノイズに関して平均を取った場合の終状態」で近似することを考える。符号長無限大の極限ではこの近似は厳密解を与えることが知られている。
【0045】
ノイズは各ビット毎独立に発生するため、変数{miμ}の計算時にノイズξiに関する平均をとればよい近似解を与えると想像できるが、この方法では質の良い近似解は得られない。この手法は符号長無限大かつパリティ検査行列の平均を取った場合の性能評価法として知られている密度発展法を有限符号長の解析に応用したものである。特定のLDPC符号に対して、この方法で性能評価を行った結果を図1の破線cに示している。
【0046】
ここで、図1は、メッセージ長500、符号語長1000の場合の、通信路ノイズのビット反転確率とビット誤り率と関係をグラフにしたものである。この図1において、誤差棒付きのデータa(×印)が、106回(O(N2))の計算機実験によるもの、破線のデータcが、上述した有限符号長での密度発展法のもの、データb(黒四角)が、後述する本発明の実施の形態の復号評価方法によるものをそれぞれ示している。計算量を比べると、計算機実験はO(N3)、上述した有限符号長での密度発展法はO(N)、本発明の実施の形態の方法ではO(N2)である。
【0047】
この図1において、上述した密度発展法におけるビット誤り率は,あるノイズ値pcまでは0であるが、それを越えると1に跳ね上がるような振舞いを示してしまい、現実の振舞いを再現していない。このような振舞いは符号長無限大の極限で現れると予測されており、必要な計算量がO(N)程度ではあるが、有限ビット長での性能評価には全く役に立たない。
【0048】
そこで、本件発明者等は、計算量を計算機実験の場合のO(N3)まで大きくすることなく、有限ビット長での性能評価にも有効な近似値が得られるような復号評価方法及び装置を提供するものである。
【0049】
すなわち、本発明の実施の形態においては、誤り訂正符号により符号化されノイズ・ベクトルが付加されて得られた入力データを復号する復号器の性能を評価する際に、上記ノイズ・ベクトルの各ビット毎の周辺事後確率を計算するために、BP復号法で用いられる擬似変数を用い、この擬似変数を逐次的に更新する逐次計算を行ってその収束値を求めることにより上記周辺事後確率の近似値を計算し、上記逐次計算の結果の平均値を、逐次計算の各段階で平均をとった計算の結果で近似するようにしている。
【0050】
以下、本発明に係る誤り訂正符号の復号評価方法及び装置の好ましい実施の形態について、図面を参照しながら説明する。
【0051】
本実施の形態においては、BP復号器の性能を「逐次計算の各段階でノイズに関して平均を取った場合の終状態」で近似することを考える。BP復号器の動的性質を考慮して、ノイズに関する平均の取り方を工夫する。
【0052】
上述した密度発展法では、各ノイズビットごとに平均を取っていたが、BP復号器は通信路で発生したノイズの総数で特徴づけできるという知見を生かし、本発明の実施の形態においては、逐次計算の各段階でノイズの総数は固定し、ノイズの発生した位置に関して平均を取ることを行う。
【0053】
具体的には、通信路ノイズの発生した個数をα個(α=0,…,N)としたとき、ノイズ・ベクトルの各ビット毎の周辺事後確率を計算するための擬似変数として次の式(10A)、(10B)を用い、これらの式(10A)、(10B)を逐次的に更新する逐次計算を行って収束したときの終状態を求め、その場合から得られるビット誤り率PBP(α)を用いて、ビット誤り率の近似値を次の式(11)より求める。この場合、上記逐次計算の結果の平均値を、逐次計算の各段階で平均をとった計算の結果で近似している。
【0054】
【数24】
【0055】
【数25】
【0056】
ここで、式(10A)中の<…>αは、ノイズの発生した位置を入れ換えることを表す。またP(α)はノイズの総数がα個であるような通信路ノイズが発生する確率を表し、P(α)=NCα(1−p)N−αpαである。
【0057】
次に、図2は、本発明の実施の形態となる誤り訂正符号の復号評価方法の具体例を説明するためのフローチャートである。
【0058】
この図2において、最初のステップS11では、通信路ノイズの発生した個数α(α=0,…,N)を初期値Nに設定する。次のステップS12では、ノイズ・ベクトル{ξi}をランダムに決める。このベクトルは、−1(ノイズによりビット反転したもの)をα個持ち、−1のある位置はランダムに決められており、残りの成分はすべて+1とする。次に、ステップS13にて、miμの初期条件としてtanh(ξiF)を設定する。
【0059】
次のステップS14では、次の式(12)によりmiμ(α)から^mμi(α)を計算する。
【0060】
【数26】
【0061】
次のステップS15では、ノイズ・ベクトル{ξi}をランダムに決める。あるいは、−1のある位置をランダムに入れ替える。
【0062】
次のステップS16では、次の式(13)により^mμi(α)からmiμ(α)を計算する。
【0063】
【数27】
【0064】
次のステップS17では、miμ(α)、^mμi(α)が収束したか否かを判別し、収束するまでステップS14からS16までを繰り返す。ステップS17で収束した(終状態に達した)と判別されたときは、次のステップS18に進む。
【0065】
ステップS18では、次の式(14)により、^mμi(α)からmiを計算する。
【0066】
【数28】
【0067】
次に、ステップS19に進んで、次の式(15)により、miからビット誤り率PBP(α)を計算し、次のステップS20に進む。
【0068】
【数29】
【0069】
ステップS20では、上記ノイズの総数αが0になったか否かを判別し、NoのときはステップS21に進んでαをデクリメント(α=α−1)した後、上記ステップS12に戻る。ステップS20でYesと判別されたときは、逐次計算を終了する。
【0070】
以上のような逐次計算が終了した後、各α毎のビット誤り率PBP(α)を用いて、ビット誤り率の平均値PBPを次の式(16)により計算する。
【0071】
【数30】
【0072】
以上説明したような本発明の実施の形態となる誤り訂正符号の復号評価方法を実現するための装置の概略構成の一例を図3に示す。
【0073】
この図3に示す誤り訂正符号の復号評価装置は、復号評価装置の各部を制御するCPU(Central Processing Unit)1と、復号評価処理のプログラム等が格納された不揮発性のメモリであるROM(Read Only Memory)2と、実際の処理が行われる揮発性のメモリであるRAM(Random Access Memory)3と、データを入力する入力部4と、データを出力する出力部5と、各部を接続するバス6とを備える。
【0074】
このような構成の装置により、上述したような、ノイズ・ベクトルの各ビット毎の周辺事後確率を計算するための擬似変数を用い、この擬似変数を逐次的に更新する逐次計算を行ってその収束値を求めることにより上記周辺事後確率の近似値を計算し、上記逐次計算の結果の平均値を、逐次計算の各段階で平均をとった計算の結果で近似するような処理を行わせることができる。
【0075】
以上説明したような実施の形態による復号評価処理の計算量は、O(N2)程度となる。
【0076】
ここで、上記図2と共に説明した実施の形態においては、ノイズの個数αをNから0までの全ての値の場合について逐次計算を行っていたが、実際にはαは全ての値を考える必要は無く、ノイズの総数がα個であるような通信路ノイズが発生する確率P(α)の値によって計算を省略できる。すなわち、P(α)が、アルゴリズム実行者が決める所定の定数Pth(例えばPth=10−10)より小さい値の場合は、計算を省略しても得られる結果は変わらない。そこで、αが決められた(更新された)ときに、P(α)=NCα(1−p)N−αpαで求められるP(α)の値が上記所定の閾値Pthより小さい(P(α)<Pth)ときには、各α毎のビット誤り率PBP(α)を0として、次のαについての逐次計算に移行すればよい。
【0077】
図4は、このような逐次計算を省略する場合の本発明の実施の形態を説明するためのフローチャートである。
【0078】
この図4において、最初のステップS31では、ノイズの個数αをNに設定する。次のステップS32では、上述したように、ノイズの総数がα個であるような通信路ノイズが発生する確率P(α)の値を、
P(α)=NCα(1−p)N−αpα
により計算し、ステップS33に進んで、P(α)の値が上記所定の閾値Pthより小さい(P(α)<Pth)か否かを判別する。このステップS33で、Yesと判別されたときにはステップS41に飛び、Noと判別されたときにはステップS34に進んでいる。ステップS34からS40までが、上述したような擬似変数を用いた逐次計算に相当している。
【0079】
すなわち、ステップS34では、ノイズ・ベクトルであるξベクトルを構成する。このベクトルは−1をα個持ち、−1のある位置はランダムに決められる。残りの成分はすべて+1とする。次のステップS35では、miμに初期条件としてtanh(ξF)を設定する。i=0,…,N, μ=1,…,N−Mのすべてについて求める。Fは、F=(1/2)ln(1−p)/pと定義される。
【0080】
次のステップS36では、次の式によりmiμから^mμiを計算する。
【0081】
【数31】
【0082】
次のステップS37では、ノイズ・ベクトルであるξベクトルの−1の位置をランダムに入れ替える。
【0083】
次のステップS38では、次の式により^mμiからmiμを計算する。
【0084】
【数32】
【0085】
次のステップS39では、次の式により、^mμiからmiを計算する。
【0086】
【数33】
【0087】
次のステップS40では、上記擬似変数miμ(α)、^mμi(α)が収束したか否かを判別し、Noのときは上記ステップS36に戻って、収束するまでステップS36からS40までを繰り返す。ステップSでYes(収束した、終状態に達した)と判別されたときは、次のステップS41に進む。なお、この繰り返しが300回程度たっても収束しない場合は、最後の50回程度の繰り返し計算で得られたmiの平均値を収束値とみなすことにする。
【0088】
次に、ステップS41に進んで、次の式によりαを固定したときのビット誤り率PBP(α)を計算し、次のステップS42に進む。
【0089】
【数34】
【0090】
ステップS42では、上記ノイズの総数αが0になったか否かを判別し、NoのときはステップS43に進んでαをデクリメント(α=α−1)した後、上記ステップS32に戻る。ステップS42でYes(α=0の場合の逐次計算も終了した)と判別されたときは、ステップS44に進み、ビット誤り率の平均値PBPを次の式により計算する。
【0091】
【数35】
【0092】
この図4と共に説明したような実施の形態により、計算量をさらに低減することができる。
【0093】
ところで、上記図1において、本実施の形態による性能評価を行った結果を、データb(黒四角)として示している。この図1から明らかなように、本実施の形態による計算結果のデータbは、データa(×印)に示す実際のビット誤り率の振舞いを略々定性的に再現している。ノイズ値が大きい領域では計算機実験の結果と一致する。しかし小さいノイズ領域では、計算機実験の結果よりも小さな値を示してしまう。
【0094】
このズレの原因とより精度良く推定する方法を考察する。
【0095】
ここで、本件発明者等がLDPC符号にBP復号を行った場合の性質を調べたところ、次の事が判明した。すなわち、BP復号器は、ノイズ・ベクトル{ξi}の成分中にある−1の数(すなわちノイズによりビット反転した総数)により、図5に示すように、3つの相に分かれる振舞いを示すことが判明した。
【0096】
この図5のグラフは、復号成功確率と、通信路ノイズによりビット反転が発生した総数との関係を示したものであり、メッセージ長50ビットを特定のLDPC符号で2倍の長さの符号語にし、p=0.075 のノイズが発生する通信路で、1000回の平均を取ったものである。その他の場合でも基本的な振舞いは同じである。ノイズの発生した総数により3つの相、すなわち、ノイズの発生した位置に関わらず復号が成功する相(F相)、ノイズによるビット反転の総数が増えるに従い、ノイズの発生した位置によって復号成功と失敗が共存する相(FP相)、位置に関わらず復号失敗の相(P相)に分けられる。
【0097】
上記図2や図4と共に説明した実施の形態において、ビット誤り率の推定値が実際の値よりも小さくなってしまう原因としては、FP相での推定がうまく行えていないことが挙げられる。FP相ではノイズの位置により復号成功・失敗に分かれるが、ノイズの位置に関して平均を取ってしまうと、この共存現象を正しく捉えることができない。
【0098】
ここで図6は、上記図5の計算機実験と、上述した実施の形態による結果を比較したものである。F相とP相は上記実施の形態により精度良く調べられているが、FP相の復号成功と失敗が共存する場合は正しく調べられていない。FP相では一般的に復号成功相と捉えられてしまい、そのためビット誤り率の推定値が小さくなってしまう。
【0099】
すなわち、図6は、ノイズの発生した総数と復号成功の割合との関係を示しており、計算機実験の条件は図1、図5と同じである。データc(黒四角)は、上記図2や図4と共に説明した実施の形態による結果を表す。F相とP相は実施の形態の評価方法により精度良く調べられているが、FP相の復号成功と失敗が共存する場合は正しく調べられていない。FP相では一般的に復号成功相と捉えられてしまい、そのためビット誤り率の推定値が小さくなってしまう。
【0100】
この推定誤りを少なくするためには、FP相の振舞いを精度良く調べる必要があるが、一般に共存相の動的性質を調べることは困難であることが知られており、現在のところ効果的な方法は見つかっていない。
【0101】
しかしながら、FP相が存在する領域は小さいため、FP相のみ計算機実験を行う方針でも、すべてを計算機実験に頼るよりも少ない計算量で推定を行うことができる。
【0102】
すなわち、上記図2や図4と共に説明した実施の形態の評価方法により、計算量O(N2)で定性的な振舞いを得ることができ、その結果に対して、FP相のあたりを重点的に計算機実験で調べるという方法を実行すれば、少ない計算量(O(N2+N2×定数))でビット誤り率を推定することができる。この計算量の式中で、N2の計算は、FP相の大きさはNに比例する(Nよりかなり小さい)こととBP復号はO(N)の計算が必要であることから要求される。上記定数は、FP相での計算機実験を行う回数に依存する。推定精度と回数はトレードオフの関係にあり、上記定数=Nにすれば計算機実験の結果と同じ結果を示すことが経験上確認できる。
【0103】
以上をまとめると、次のようになる。すなわち、αが小さい領域では, 上記実施の形態で求めたαを固定した場合のビット誤り率PBP(α)と計算機実験によって求めたものが共にゼロとなり、上記実施の形態で求めた近似値と実験値が一致する。このαの領域を強磁性相(F相)と定義する。αを増やすと、上記実施の形態で求めたαを固定した場合のビット誤り率PBP(α)はゼロとなるが, 計算機実験によって求めたものはゼロでなく、上記実施の形態で求めた近似値と実験値が一致しなくなる。このαの領域を共存相(FP相)と定義する。さらにαを増やすと, 提案手法で求めたPBP(α)と実験値がともにゼロでなくなる。このαの領域を常磁性相(P相)と定義する。P相では提案手法で求めた近似値と実験値は精度良く一致する。すなわち、F相とP相では、上記実施の形態による近似値と実験値は精度良く一致する。従って、本発明の実施の形態の評価方法の近似精度を上げるためには、FP相での近似値の精度を上げる必要があることを考慮し、FP相では上記実施の形態の評価を行うのをやめ、計算機実験を行うようにするものである。
具体的には、図7及び図8に示すフローチャートのような処理を挙げることができる。ここで、図7のフローチャートは、上記図4に示したフローチャートと略々同様であるが、ステップS42でNoと判断されたとき、さらにステップS45に進んで、上記ビット誤り率PBP(α)が0か否かを判断する。PBP(α)が0ならば、P相からFP相に突入したと判断し、ステップS50に進んで計算機実験を行い、その結果をPBP(α)に代入する。 その後、ステップS43でαをデクリメント(α=α−1)した後、上記ステップS32に戻る。また、ステップS45でNo(PBP(α)が非ゼロ)と判断されたときも、ステップS43でαをデクリメントした後、ステップS32に戻る。他のステップは図4と同様であるため、対応する部分に同じ指示符号を付して説明を省略する。
【0104】
次に、図8は、図7のステップS50の計算機実験アルゴリズムの一例を示すフローチャートである。
【0105】
この図8において、最初のステップS51では、計算機実験の回数kを決め、このkを制御変数nの初期値(n=k)とする。計算機実験の回数kを多くすると、近似精度は向上するが計算量が多くかかってしまう。高精度な推定を行う場合はN回程度が要求されるが、これでは計算量が多くなってしまうため、より少ない回数に設定する。例えば、k=√N回程度が挙げられる。
【0106】
次に、ステップS52でξベクトルを構成する。このベクトルは−1をα個持ち、−1のある位置はランダムに決められる。残りの成分はすべて+1とする。
【0107】
次のステップS53では、miμに初期条件としてtanh(ξF)を設定する。i=0,…,N, μ=1,…,N−Mである。
【0108】
次のステップS54では、上記式(7B)に従って^mμiを計算する。次のステップS55では、上記式(7A)に従ってmiμを計算する。次のステップS56では、収束したか否かを判別し、Noのときは上記ステップS54に戻って、収束するまでステップS54からS56までを繰り返す。
【0109】
次のステップS57では、上記式(14)に従ってmiを計算し、次のステップS58で、上記式(15)に従ってαを固定したときのビット誤り率PBP(α)を計算する。
【0110】
次のステップS59では、上記計算機実験の回数の制御変数nが1になったか否かを判別し、NoのときはステップS60に進んでnをデクリメント(n=n−1)して、ステップS52に戻り、ステップS52からS59までを計算機実験の回数kだけ繰り返す。ステップS59でYesと判別されたときには、ステップS61に進み、得られたPBP(α)の単純平均を求め、それを最終的なPBP(α)として、図7のステップS43に進む。
【0111】
以上説明したような本発明の実施の形態によれば、計算量を抑えながら、高い近似度での復号性能評価が行える。
【0112】
なお、本発明は、上述した実施の形態のみに限定されるものではなく、本発明の実施の形態においては通信あるいはデータ伝送の際の受信側の復号性能評価について説明したが、データ記録の際の再生側の復号性能評価にも容易に適用できることは勿論である。また、誤り訂正符号あるいはパリティ検査符号としては、R.G.Gallagerの低密度パリティ検査符号(LDPC符号)を例示したが、これに限定されず、また、復号方法もビリーフ・プロパゲーション(BP:belief propagation)アルゴリズムに限定されるものではない。
【0113】
【発明の効果】
本発明は、誤り訂正符号により符号化されノイズ・ベクトルが付加されて得られた入力データを復号する復号器の性能を評価する際に、上記ノイズ・ベクトルの各ビット毎の周辺事後確率を計算するための擬似変数を用い、この擬似変数を逐次的に更新する逐次計算を行ってその収束値を求めることにより上記周辺事後確率の近似値を計算し、上記逐次計算の結果の平均値を、逐次計算の各段階で平均をとった計算の結果で近似することにより、演算量を抑えながら、近似度の高い復号性能評価が行える。
【図面の簡単な説明】
【図1】通信路ノイズのビット反転確率とビット誤り率との関係を、計算機実験との対比の下に示す図である。
【図2】本発明の実施の形態となる誤り訂正符号の復号評価方法の一例を示すフローチャートである。
【図3】本発明の実施の形態となる誤り訂正符号の復号評価装置に用いられる構成例を示すブロック図である。
【図4】本発明の実施の形態となる誤り訂正符号の復号評価方法の他の例を示すフローチャートである。
【図5】通信路ノイズによるビット反転の総数と復号成功確率との関係を示す図である。
【図6】ノイズによるビット反転の総数とビット誤り率との関係を示す図である。
【図7】本発明の実施の形態となる誤り訂正符号の復号評価方法の改良例を示すフローチャートである。
【図8】図7のフローチャートのステップS50の計算機実験アルゴリズムの一例を示すフローチャートである。
【図9】計算機実験によるビット誤り率とノイズによるビット反転確率との関係を示す図である。
【符号の説明】
1 CPU、 2 ROM、 3 RAM、 4 入力部、 5 出力部
【発明の属する技術分野】
本発明は、パリティ検査符号あるいは誤り訂正符号の復号器の性能評価を行うための誤り訂正符号の復号評価方法及び装置に関し、特に、Gallagerの低密度パリティ検査符号(LDPC符号)等で符号化したものを復号する復号器の性能を評価する誤り訂正符号の復号評価方法及び装置に関する。
【0002】
【従来の技術】
データ記録やデータ伝送用のパリティ検査符号あるいは誤り訂正符号の分野において、非常に長いブロック長に最適な符号を見つけだす問題は、一般化パリティ検査行列で定義されたパリティ検査符号によって、本質的に解決されてきた。これらのタイプの符号は、非特許文献1により初めて述べられたものであり、該非特許文献1には、R.G.Gallagerの低密度パリティ検査符号(LDPC符号)が開示されている。このGallagerのLDPC符号は、非特許文献1において提案されていたが、当時の計算機能力の貧弱さのため、その性能が正しいく認識されず、長い間忘れ去られていた。その後1995年にMacKayとNealにより類似の符号が“再発見”され、その性能の高さから多くの注目を集めており、現在、ターボ符号と並び、世界最高レベルの誤り訂正能力を持つと知られている。
【0003】
また、特許文献1には、Gallagerの有限長のLDPC符号の性能評価に関する技術が開示されている。
【0004】
ここで、ターボ符号は、携帯電話で想定されるノイズ領域ではLDPC符号よりも性能が良いため、すでに第3世代の携帯電話で実装されている。LDPC符号は、その他のノイズ領域ではターボ符号よりも性能が良いこと、符号設計の柔軟性が高いことから、今後の応用が期待される。
【0005】
上記Gallagerの低密度パリティ検査符号は、(N−M)×N行列のパリティ検査行列Aによって特徴づけされる。パリティ検査行列Aは各行にC個、各列にK個の非ゼロ成分1を持ち、それ以外の成分はすべて0であるように構成される。またパリティ検査行列Aから生成行列GTを、下記の式(1)の拘束条件を満たすように構成する。
【0006】
【数11】
【0007】
このような拘束条件を満たす生成行列は簡単に構成することができる。すなわち、パリティ検査行列を、A=(A1,A2)と、2つの部分行列A1:(N−M)×M行列、A2:(N−M)×(N−M)行列で表すと、生成行列GTは、下記の式(2)にて定義すればよい。
【0008】
【数12】
【0009】
パリティ検査行列Aは疎行列(1の数がO(N)個)であるのに対し、生成行列GTは一般に密行列(1の数がO(N2)個)となるため、符号化にはO(N2)のオーダの計算がかかる。符号変数C、Kは、符号化率R=M/NとC/K=1−Rの関係がある。
【0010】
次に、LDPC符号を用いたデータ記録やデータ伝送について説明する。例えばデータ伝送の場合、送信者はMビットのバイナリ・メッセージWに上記生成行列GTを掛けて符号語Xを作り(X=GTW)、それをノイズのある通信路に流す。通信路のモデルとして、ここでは、送信された各ビットが独立に確率pで反転するような2元対象通信路を考える。なおLDPC符号はその他の通信路のモデルに対しても容易に応用でき、また、種々のデータ記録にも適用できる。
【0011】
2元対称通信路で発生したノイズはノイズ・ベクトルξで記述できる。このベクトルはノイズによりビットが反転した場合に1を、そうで無い場合0を取る。受信者は、受信したベクトルYにパリティ検査行列Aを掛け、シンドロームJ=AYを計算する。AYは拘束条件(上記式(1))からノイズだけが抽出され、パリティ検査方程式J=Aξとなる。復号は、下記の式(3)のパリティ検査方程式を満たすノイズ・ベクトルsの中で通信路ノイズに関する事前知識に合うものを探すことに帰着する。
【0012】
【数13】
【0013】
推定したノイズ・ベクトル^ξ(^ξは、ξの推定値、ξハットを意味する。以下同様。)が正しければ、Y−(^ξ)=GTWとなるので、初めのMビットがメッセージである。しかしながら、パリティ検査方程式(上記式(3))は、方程式の次元(N−M)より変数の次元(N)の方が大きいため、方程式の解は無数存在し、その中からノイズの事前知識に合うものを探すことはNP完全問題であることが知られている。
【0014】
ところで、復号問題はBayesの事後確率を用いて定式化できる。シンドロームJが与えられたとき、パリティ検査方程式(3)を満たすノイズ・ベクトルの事後確率は、次の式(4)として記述できる。
【0015】
【数14】
【0016】
ここで、Arow(μ) は、パリティ検査行列Aのμ列目にある非ゼロ要素のある位置の集合を表す。また同様に、Acol(i) はパリティ検査行列Aのi行目にある非ゼロ要素のある位置の集合である。P0(si) はノイズの事前確率を表し、今、ビット反転確率pである2元対称通信路ではP0(0)=1−p、P0(1)=pである。また、P(Jμ|{si:i∈Arow(μ)})は、下記の式(5)である。
【0017】
【数15】
【0018】
この式(5)で、δ(a、b) はKroneckerのデルタ記号でa=bのとき1、そうでないとき0をとる。パリティ検査方程式(3)を満たさないノイズ・ベクトルsに対して、P(J|s)は0になる。
【0019】
各ビット毎の復号誤りを最小化することを目的とすると、周辺事後確率最大化(MPM)復号法が最適な復号方法であることが知られている。MPM復号とは、各ビットごとの周辺事後確率を下記の式(6)により求め、確率が大きい状態をノイズξiの推定値とする復号法である。
【0020】
【数16】
【0021】
しかしながら、周辺事後確率を計算することは一般にO(2N)のオーダの計算が必要となり、厳密計算は現実には困難である。
【0022】
近年、周辺事後確率を近似的にしかも高速に求めるアルゴリズムとして、ビリーフ・プロパゲーション(BP:belief propagation)アルゴリズムが注目を集めている。このアルゴリズムは人工知能研究で提案されたアルゴリズムであるが、LDPC符号の復号に非常に有効であることが多数の計算機実験により支持されている。
【0023】
以下、BP復号法のアルゴリズムを簡単に述べる。BPアルゴリズムではまず、−1から1までの実数値を取る2種類の変数の組{miμ,^mμi} を以下の式(7A)、(7B)に従い逐次的に更新し、その収束値を求める。
【0024】
【数17】
【0025】
ここでシンドロームJμはIsingスピン表現を用いている。Isingスピン表現とは統計物理学で用いられる表現で、バイナリ表現との間に、0:+1、1:−1、の関係があり、バイナリ表現での加法は、Isingスピン表現では乗法に対応する。Fは通信路ノイズの事前知識を表し、F=(ln(1−p)/p)/2である。集合Acol(i)は、パリティ検査行列Aのi列にある非ゼロ要素の位置を表す。Acol(i)/μは、集合Acol(i)から要素μを除いた集合を表す。集合Arow(μ)も同様に、パリティ検査行列Aのμ行目にある非ゼロ要素の位置を表す。周辺事後確率の近似値は、この収束解を用いて、下記の式(8)、(9)で与えられる。
【0026】
【数18】
【0027】
【特許文献1】
特開2002−353946号公報
【非特許文献1】
R.G.Gallager、“低密度のパリティ検査符号”、Research Monograph Series 第21巻、MIT Press 1963年発行
【0028】
【発明が解決しようとする課題】
ところで、上述したようなBP復号器の性能を厳密評価するためには、ノイズ・ベクトル{ξi}の全ての場合について復号の可否を調べ平均を取る必要がある。しかしながら、ノイズ・ベクトル{ξi}の全ての場合の数は2N個あり、Nが500とか1000とかの数値の場合に、2N個を全て調べることは現実には不可能である。現実にはノイズ・ベクトル{ξi}をランダムに生成し、それらに対して復号を行い、その平均値を求める方法をとる。符号語長をNとして、BPでは1回の復号にO(N)の計算がかかり、精度の良い結果を得るためにはO(N2)回程度の計算機実験が必要となるため、全体としてO(N3)程度の計算が必要になる。
【0029】
ここで図9は、ビット誤り率とノイズによるビット反転確率pとの関係を表した図である。この図9において、データaがメッセージ長500、データbがメッセージ長1000の各メッセージを、それぞれ2倍の長さの符号語にして通信を行った場合について、それぞれ106回の計算機実験により評価したものである。ビット誤り率の振舞いは、符号語長、パリティ検査行列の構成に強く依存する。ノイズが小さい領域では、大きな誤差棒が生じていることから分かるように、さらなる計算機実験が必要である。
【0030】
この図9から明らかなように、ビット誤り率の振舞いは、符号長やパリティ検査行列の構成に強く依存してしまう。また、ノイズの小さい領域では、大きな誤差棒が生じていることから分かるように、より多くの計算機実験が必要になる。LDPC符号の実用化を考えた場合、特定の条件化でのビット誤り率を求めることは非常に重要である。BPアルゴリズムの性能評価法に関する理論研究は、符号長無限大の極限、かつ、パリティ検査行列の構成に関して平均を実行した場合という非常に限られた場合しか成功していない。現実には、特定のパリティ検査符号を用いたときの性能なため、パリティ検査行列に関する平均を取ることは実際の利用という観点からは好ましくない。
【0031】
以上述べたことをまとめると、Gallagerの低密度パリティ検査符号(LDPC符号)は、復号器にビリーフ・プロパゲーション(BP)アルゴリズムを用いると、現在、世界最高性能の誤り訂正符号になることが知られている。LDPC符号は符号設計の自由度が高いため、個々の状況に応じた符号を設計できる。しかしこの事は個々の状況に応じて符号変数の最適化を行わねばならないことを意味する。LDPC符号の理論的解析は符号長無限大の場合のみしか行われておらず、実世界で重要である有限符号長の場合の性能評価は計算機実験に頼るしか方法がない。一般に、性能評価を行うためには多数の計算機実験を行う必要があり、より高速に性能評価出来る手法が求められているが、既存研究はBPアルゴリズムの解析の困難さからほとんど成功していない。
【0032】
このような点を考慮し、本発明においては、LDPC符号に用いた場合のBPアルゴリズムの動的性質を解析し、有限符号長のLDPC符号の誤り訂正能力を近似的ではあるが高速に評価する方法を提案する。
【0033】
すなわち、本発明は、上述したような実情に鑑みてなされたものであり、計算量を抑えながら復号器の評価を近似的に行えるような誤り訂正符号の復号評価方法及び装置の提供を目的とする。
【0034】
【課題を解決するための手段】
本発明に係る誤り訂正符号の復号評価方法及び装置は、誤り訂正符号により符号化されノイズ・ベクトルが付加されて得られた入力データを復号する復号器の性能を評価する際に、上記ノイズ・ベクトルの各ビット毎の周辺事後確率を計算するための擬似変数を用い、この擬似変数を逐次的に更新する逐次計算を行ってその収束値を求めることにより上記周辺事後確率の近似値を計算し、上記逐次計算の結果の平均値を、逐次計算の各段階で平均をとった計算の結果で近似することにより、上述の課題を解決する。
【0035】
ここで、上記逐次計算は、上記ノイズ・ベクトルのノイズ発生の個数α毎に、ノイズ発生の位置をランダムに決めながら上記擬似変数を逐次的に更新することにより行うことが好ましい。上記逐次計算による復号法は、ビリーフ・プロパゲーション法が挙げられる。
【0036】
また、上記逐次計算に用いる擬似変数としては、ビット反転確率pの2元対称通信路のノイズの事前知識を表すF=(ln(1−p)/p)/2、パリティ検査行列Aのi列にある非ゼロ要素の位置を表す集合Acol(i)、集合Acol(i)から要素μを除いた集合を表す集合Acol(i)/μ、パリティ検査行列Aのμ行目にある非ゼロ要素の位置を表す集合Arow(μ)、集合Arow(μ)から要素iを除いた集合を表す集合Arow(μ)/iを用いて表される次の式が挙げられる。
【0037】
【数19】
【0038】
【数20】
【0039】
これらの擬似変数が収束するまで逐次的に更新するような逐次計算を行った後、次の各式により、収束解を用いてビット誤り率の平均値PBPを求めることができる。
【0040】
【数21】
【0041】
【数22】
【0042】
【数23】
【0043】
【発明の実施の形態】
本発明の実施の形態の説明に先立ち、有限符号長のLDPC符号の性能を近似的に解析する手法を考察するため、ノイズに関する平均を取る時点および取り方を変更することについて説明する。
【0044】
BP復号器の厳密な性能を調べるためには、上述した式(7)の収束解をノイズ・ベクトル{ξi}の発生確率で平均を取ることが必要である。この「終状態の平均」を「逐次計算の各段階でノイズに関して平均を取った場合の終状態」で近似することを考える。符号長無限大の極限ではこの近似は厳密解を与えることが知られている。
【0045】
ノイズは各ビット毎独立に発生するため、変数{miμ}の計算時にノイズξiに関する平均をとればよい近似解を与えると想像できるが、この方法では質の良い近似解は得られない。この手法は符号長無限大かつパリティ検査行列の平均を取った場合の性能評価法として知られている密度発展法を有限符号長の解析に応用したものである。特定のLDPC符号に対して、この方法で性能評価を行った結果を図1の破線cに示している。
【0046】
ここで、図1は、メッセージ長500、符号語長1000の場合の、通信路ノイズのビット反転確率とビット誤り率と関係をグラフにしたものである。この図1において、誤差棒付きのデータa(×印)が、106回(O(N2))の計算機実験によるもの、破線のデータcが、上述した有限符号長での密度発展法のもの、データb(黒四角)が、後述する本発明の実施の形態の復号評価方法によるものをそれぞれ示している。計算量を比べると、計算機実験はO(N3)、上述した有限符号長での密度発展法はO(N)、本発明の実施の形態の方法ではO(N2)である。
【0047】
この図1において、上述した密度発展法におけるビット誤り率は,あるノイズ値pcまでは0であるが、それを越えると1に跳ね上がるような振舞いを示してしまい、現実の振舞いを再現していない。このような振舞いは符号長無限大の極限で現れると予測されており、必要な計算量がO(N)程度ではあるが、有限ビット長での性能評価には全く役に立たない。
【0048】
そこで、本件発明者等は、計算量を計算機実験の場合のO(N3)まで大きくすることなく、有限ビット長での性能評価にも有効な近似値が得られるような復号評価方法及び装置を提供するものである。
【0049】
すなわち、本発明の実施の形態においては、誤り訂正符号により符号化されノイズ・ベクトルが付加されて得られた入力データを復号する復号器の性能を評価する際に、上記ノイズ・ベクトルの各ビット毎の周辺事後確率を計算するために、BP復号法で用いられる擬似変数を用い、この擬似変数を逐次的に更新する逐次計算を行ってその収束値を求めることにより上記周辺事後確率の近似値を計算し、上記逐次計算の結果の平均値を、逐次計算の各段階で平均をとった計算の結果で近似するようにしている。
【0050】
以下、本発明に係る誤り訂正符号の復号評価方法及び装置の好ましい実施の形態について、図面を参照しながら説明する。
【0051】
本実施の形態においては、BP復号器の性能を「逐次計算の各段階でノイズに関して平均を取った場合の終状態」で近似することを考える。BP復号器の動的性質を考慮して、ノイズに関する平均の取り方を工夫する。
【0052】
上述した密度発展法では、各ノイズビットごとに平均を取っていたが、BP復号器は通信路で発生したノイズの総数で特徴づけできるという知見を生かし、本発明の実施の形態においては、逐次計算の各段階でノイズの総数は固定し、ノイズの発生した位置に関して平均を取ることを行う。
【0053】
具体的には、通信路ノイズの発生した個数をα個(α=0,…,N)としたとき、ノイズ・ベクトルの各ビット毎の周辺事後確率を計算するための擬似変数として次の式(10A)、(10B)を用い、これらの式(10A)、(10B)を逐次的に更新する逐次計算を行って収束したときの終状態を求め、その場合から得られるビット誤り率PBP(α)を用いて、ビット誤り率の近似値を次の式(11)より求める。この場合、上記逐次計算の結果の平均値を、逐次計算の各段階で平均をとった計算の結果で近似している。
【0054】
【数24】
【0055】
【数25】
【0056】
ここで、式(10A)中の<…>αは、ノイズの発生した位置を入れ換えることを表す。またP(α)はノイズの総数がα個であるような通信路ノイズが発生する確率を表し、P(α)=NCα(1−p)N−αpαである。
【0057】
次に、図2は、本発明の実施の形態となる誤り訂正符号の復号評価方法の具体例を説明するためのフローチャートである。
【0058】
この図2において、最初のステップS11では、通信路ノイズの発生した個数α(α=0,…,N)を初期値Nに設定する。次のステップS12では、ノイズ・ベクトル{ξi}をランダムに決める。このベクトルは、−1(ノイズによりビット反転したもの)をα個持ち、−1のある位置はランダムに決められており、残りの成分はすべて+1とする。次に、ステップS13にて、miμの初期条件としてtanh(ξiF)を設定する。
【0059】
次のステップS14では、次の式(12)によりmiμ(α)から^mμi(α)を計算する。
【0060】
【数26】
【0061】
次のステップS15では、ノイズ・ベクトル{ξi}をランダムに決める。あるいは、−1のある位置をランダムに入れ替える。
【0062】
次のステップS16では、次の式(13)により^mμi(α)からmiμ(α)を計算する。
【0063】
【数27】
【0064】
次のステップS17では、miμ(α)、^mμi(α)が収束したか否かを判別し、収束するまでステップS14からS16までを繰り返す。ステップS17で収束した(終状態に達した)と判別されたときは、次のステップS18に進む。
【0065】
ステップS18では、次の式(14)により、^mμi(α)からmiを計算する。
【0066】
【数28】
【0067】
次に、ステップS19に進んで、次の式(15)により、miからビット誤り率PBP(α)を計算し、次のステップS20に進む。
【0068】
【数29】
【0069】
ステップS20では、上記ノイズの総数αが0になったか否かを判別し、NoのときはステップS21に進んでαをデクリメント(α=α−1)した後、上記ステップS12に戻る。ステップS20でYesと判別されたときは、逐次計算を終了する。
【0070】
以上のような逐次計算が終了した後、各α毎のビット誤り率PBP(α)を用いて、ビット誤り率の平均値PBPを次の式(16)により計算する。
【0071】
【数30】
【0072】
以上説明したような本発明の実施の形態となる誤り訂正符号の復号評価方法を実現するための装置の概略構成の一例を図3に示す。
【0073】
この図3に示す誤り訂正符号の復号評価装置は、復号評価装置の各部を制御するCPU(Central Processing Unit)1と、復号評価処理のプログラム等が格納された不揮発性のメモリであるROM(Read Only Memory)2と、実際の処理が行われる揮発性のメモリであるRAM(Random Access Memory)3と、データを入力する入力部4と、データを出力する出力部5と、各部を接続するバス6とを備える。
【0074】
このような構成の装置により、上述したような、ノイズ・ベクトルの各ビット毎の周辺事後確率を計算するための擬似変数を用い、この擬似変数を逐次的に更新する逐次計算を行ってその収束値を求めることにより上記周辺事後確率の近似値を計算し、上記逐次計算の結果の平均値を、逐次計算の各段階で平均をとった計算の結果で近似するような処理を行わせることができる。
【0075】
以上説明したような実施の形態による復号評価処理の計算量は、O(N2)程度となる。
【0076】
ここで、上記図2と共に説明した実施の形態においては、ノイズの個数αをNから0までの全ての値の場合について逐次計算を行っていたが、実際にはαは全ての値を考える必要は無く、ノイズの総数がα個であるような通信路ノイズが発生する確率P(α)の値によって計算を省略できる。すなわち、P(α)が、アルゴリズム実行者が決める所定の定数Pth(例えばPth=10−10)より小さい値の場合は、計算を省略しても得られる結果は変わらない。そこで、αが決められた(更新された)ときに、P(α)=NCα(1−p)N−αpαで求められるP(α)の値が上記所定の閾値Pthより小さい(P(α)<Pth)ときには、各α毎のビット誤り率PBP(α)を0として、次のαについての逐次計算に移行すればよい。
【0077】
図4は、このような逐次計算を省略する場合の本発明の実施の形態を説明するためのフローチャートである。
【0078】
この図4において、最初のステップS31では、ノイズの個数αをNに設定する。次のステップS32では、上述したように、ノイズの総数がα個であるような通信路ノイズが発生する確率P(α)の値を、
P(α)=NCα(1−p)N−αpα
により計算し、ステップS33に進んで、P(α)の値が上記所定の閾値Pthより小さい(P(α)<Pth)か否かを判別する。このステップS33で、Yesと判別されたときにはステップS41に飛び、Noと判別されたときにはステップS34に進んでいる。ステップS34からS40までが、上述したような擬似変数を用いた逐次計算に相当している。
【0079】
すなわち、ステップS34では、ノイズ・ベクトルであるξベクトルを構成する。このベクトルは−1をα個持ち、−1のある位置はランダムに決められる。残りの成分はすべて+1とする。次のステップS35では、miμに初期条件としてtanh(ξF)を設定する。i=0,…,N, μ=1,…,N−Mのすべてについて求める。Fは、F=(1/2)ln(1−p)/pと定義される。
【0080】
次のステップS36では、次の式によりmiμから^mμiを計算する。
【0081】
【数31】
【0082】
次のステップS37では、ノイズ・ベクトルであるξベクトルの−1の位置をランダムに入れ替える。
【0083】
次のステップS38では、次の式により^mμiからmiμを計算する。
【0084】
【数32】
【0085】
次のステップS39では、次の式により、^mμiからmiを計算する。
【0086】
【数33】
【0087】
次のステップS40では、上記擬似変数miμ(α)、^mμi(α)が収束したか否かを判別し、Noのときは上記ステップS36に戻って、収束するまでステップS36からS40までを繰り返す。ステップSでYes(収束した、終状態に達した)と判別されたときは、次のステップS41に進む。なお、この繰り返しが300回程度たっても収束しない場合は、最後の50回程度の繰り返し計算で得られたmiの平均値を収束値とみなすことにする。
【0088】
次に、ステップS41に進んで、次の式によりαを固定したときのビット誤り率PBP(α)を計算し、次のステップS42に進む。
【0089】
【数34】
【0090】
ステップS42では、上記ノイズの総数αが0になったか否かを判別し、NoのときはステップS43に進んでαをデクリメント(α=α−1)した後、上記ステップS32に戻る。ステップS42でYes(α=0の場合の逐次計算も終了した)と判別されたときは、ステップS44に進み、ビット誤り率の平均値PBPを次の式により計算する。
【0091】
【数35】
【0092】
この図4と共に説明したような実施の形態により、計算量をさらに低減することができる。
【0093】
ところで、上記図1において、本実施の形態による性能評価を行った結果を、データb(黒四角)として示している。この図1から明らかなように、本実施の形態による計算結果のデータbは、データa(×印)に示す実際のビット誤り率の振舞いを略々定性的に再現している。ノイズ値が大きい領域では計算機実験の結果と一致する。しかし小さいノイズ領域では、計算機実験の結果よりも小さな値を示してしまう。
【0094】
このズレの原因とより精度良く推定する方法を考察する。
【0095】
ここで、本件発明者等がLDPC符号にBP復号を行った場合の性質を調べたところ、次の事が判明した。すなわち、BP復号器は、ノイズ・ベクトル{ξi}の成分中にある−1の数(すなわちノイズによりビット反転した総数)により、図5に示すように、3つの相に分かれる振舞いを示すことが判明した。
【0096】
この図5のグラフは、復号成功確率と、通信路ノイズによりビット反転が発生した総数との関係を示したものであり、メッセージ長50ビットを特定のLDPC符号で2倍の長さの符号語にし、p=0.075 のノイズが発生する通信路で、1000回の平均を取ったものである。その他の場合でも基本的な振舞いは同じである。ノイズの発生した総数により3つの相、すなわち、ノイズの発生した位置に関わらず復号が成功する相(F相)、ノイズによるビット反転の総数が増えるに従い、ノイズの発生した位置によって復号成功と失敗が共存する相(FP相)、位置に関わらず復号失敗の相(P相)に分けられる。
【0097】
上記図2や図4と共に説明した実施の形態において、ビット誤り率の推定値が実際の値よりも小さくなってしまう原因としては、FP相での推定がうまく行えていないことが挙げられる。FP相ではノイズの位置により復号成功・失敗に分かれるが、ノイズの位置に関して平均を取ってしまうと、この共存現象を正しく捉えることができない。
【0098】
ここで図6は、上記図5の計算機実験と、上述した実施の形態による結果を比較したものである。F相とP相は上記実施の形態により精度良く調べられているが、FP相の復号成功と失敗が共存する場合は正しく調べられていない。FP相では一般的に復号成功相と捉えられてしまい、そのためビット誤り率の推定値が小さくなってしまう。
【0099】
すなわち、図6は、ノイズの発生した総数と復号成功の割合との関係を示しており、計算機実験の条件は図1、図5と同じである。データc(黒四角)は、上記図2や図4と共に説明した実施の形態による結果を表す。F相とP相は実施の形態の評価方法により精度良く調べられているが、FP相の復号成功と失敗が共存する場合は正しく調べられていない。FP相では一般的に復号成功相と捉えられてしまい、そのためビット誤り率の推定値が小さくなってしまう。
【0100】
この推定誤りを少なくするためには、FP相の振舞いを精度良く調べる必要があるが、一般に共存相の動的性質を調べることは困難であることが知られており、現在のところ効果的な方法は見つかっていない。
【0101】
しかしながら、FP相が存在する領域は小さいため、FP相のみ計算機実験を行う方針でも、すべてを計算機実験に頼るよりも少ない計算量で推定を行うことができる。
【0102】
すなわち、上記図2や図4と共に説明した実施の形態の評価方法により、計算量O(N2)で定性的な振舞いを得ることができ、その結果に対して、FP相のあたりを重点的に計算機実験で調べるという方法を実行すれば、少ない計算量(O(N2+N2×定数))でビット誤り率を推定することができる。この計算量の式中で、N2の計算は、FP相の大きさはNに比例する(Nよりかなり小さい)こととBP復号はO(N)の計算が必要であることから要求される。上記定数は、FP相での計算機実験を行う回数に依存する。推定精度と回数はトレードオフの関係にあり、上記定数=Nにすれば計算機実験の結果と同じ結果を示すことが経験上確認できる。
【0103】
以上をまとめると、次のようになる。すなわち、αが小さい領域では, 上記実施の形態で求めたαを固定した場合のビット誤り率PBP(α)と計算機実験によって求めたものが共にゼロとなり、上記実施の形態で求めた近似値と実験値が一致する。このαの領域を強磁性相(F相)と定義する。αを増やすと、上記実施の形態で求めたαを固定した場合のビット誤り率PBP(α)はゼロとなるが, 計算機実験によって求めたものはゼロでなく、上記実施の形態で求めた近似値と実験値が一致しなくなる。このαの領域を共存相(FP相)と定義する。さらにαを増やすと, 提案手法で求めたPBP(α)と実験値がともにゼロでなくなる。このαの領域を常磁性相(P相)と定義する。P相では提案手法で求めた近似値と実験値は精度良く一致する。すなわち、F相とP相では、上記実施の形態による近似値と実験値は精度良く一致する。従って、本発明の実施の形態の評価方法の近似精度を上げるためには、FP相での近似値の精度を上げる必要があることを考慮し、FP相では上記実施の形態の評価を行うのをやめ、計算機実験を行うようにするものである。
具体的には、図7及び図8に示すフローチャートのような処理を挙げることができる。ここで、図7のフローチャートは、上記図4に示したフローチャートと略々同様であるが、ステップS42でNoと判断されたとき、さらにステップS45に進んで、上記ビット誤り率PBP(α)が0か否かを判断する。PBP(α)が0ならば、P相からFP相に突入したと判断し、ステップS50に進んで計算機実験を行い、その結果をPBP(α)に代入する。 その後、ステップS43でαをデクリメント(α=α−1)した後、上記ステップS32に戻る。また、ステップS45でNo(PBP(α)が非ゼロ)と判断されたときも、ステップS43でαをデクリメントした後、ステップS32に戻る。他のステップは図4と同様であるため、対応する部分に同じ指示符号を付して説明を省略する。
【0104】
次に、図8は、図7のステップS50の計算機実験アルゴリズムの一例を示すフローチャートである。
【0105】
この図8において、最初のステップS51では、計算機実験の回数kを決め、このkを制御変数nの初期値(n=k)とする。計算機実験の回数kを多くすると、近似精度は向上するが計算量が多くかかってしまう。高精度な推定を行う場合はN回程度が要求されるが、これでは計算量が多くなってしまうため、より少ない回数に設定する。例えば、k=√N回程度が挙げられる。
【0106】
次に、ステップS52でξベクトルを構成する。このベクトルは−1をα個持ち、−1のある位置はランダムに決められる。残りの成分はすべて+1とする。
【0107】
次のステップS53では、miμに初期条件としてtanh(ξF)を設定する。i=0,…,N, μ=1,…,N−Mである。
【0108】
次のステップS54では、上記式(7B)に従って^mμiを計算する。次のステップS55では、上記式(7A)に従ってmiμを計算する。次のステップS56では、収束したか否かを判別し、Noのときは上記ステップS54に戻って、収束するまでステップS54からS56までを繰り返す。
【0109】
次のステップS57では、上記式(14)に従ってmiを計算し、次のステップS58で、上記式(15)に従ってαを固定したときのビット誤り率PBP(α)を計算する。
【0110】
次のステップS59では、上記計算機実験の回数の制御変数nが1になったか否かを判別し、NoのときはステップS60に進んでnをデクリメント(n=n−1)して、ステップS52に戻り、ステップS52からS59までを計算機実験の回数kだけ繰り返す。ステップS59でYesと判別されたときには、ステップS61に進み、得られたPBP(α)の単純平均を求め、それを最終的なPBP(α)として、図7のステップS43に進む。
【0111】
以上説明したような本発明の実施の形態によれば、計算量を抑えながら、高い近似度での復号性能評価が行える。
【0112】
なお、本発明は、上述した実施の形態のみに限定されるものではなく、本発明の実施の形態においては通信あるいはデータ伝送の際の受信側の復号性能評価について説明したが、データ記録の際の再生側の復号性能評価にも容易に適用できることは勿論である。また、誤り訂正符号あるいはパリティ検査符号としては、R.G.Gallagerの低密度パリティ検査符号(LDPC符号)を例示したが、これに限定されず、また、復号方法もビリーフ・プロパゲーション(BP:belief propagation)アルゴリズムに限定されるものではない。
【0113】
【発明の効果】
本発明は、誤り訂正符号により符号化されノイズ・ベクトルが付加されて得られた入力データを復号する復号器の性能を評価する際に、上記ノイズ・ベクトルの各ビット毎の周辺事後確率を計算するための擬似変数を用い、この擬似変数を逐次的に更新する逐次計算を行ってその収束値を求めることにより上記周辺事後確率の近似値を計算し、上記逐次計算の結果の平均値を、逐次計算の各段階で平均をとった計算の結果で近似することにより、演算量を抑えながら、近似度の高い復号性能評価が行える。
【図面の簡単な説明】
【図1】通信路ノイズのビット反転確率とビット誤り率との関係を、計算機実験との対比の下に示す図である。
【図2】本発明の実施の形態となる誤り訂正符号の復号評価方法の一例を示すフローチャートである。
【図3】本発明の実施の形態となる誤り訂正符号の復号評価装置に用いられる構成例を示すブロック図である。
【図4】本発明の実施の形態となる誤り訂正符号の復号評価方法の他の例を示すフローチャートである。
【図5】通信路ノイズによるビット反転の総数と復号成功確率との関係を示す図である。
【図6】ノイズによるビット反転の総数とビット誤り率との関係を示す図である。
【図7】本発明の実施の形態となる誤り訂正符号の復号評価方法の改良例を示すフローチャートである。
【図8】図7のフローチャートのステップS50の計算機実験アルゴリズムの一例を示すフローチャートである。
【図9】計算機実験によるビット誤り率とノイズによるビット反転確率との関係を示す図である。
【符号の説明】
1 CPU、 2 ROM、 3 RAM、 4 入力部、 5 出力部
Claims (12)
- 誤り訂正符号により符号化されノイズ・ベクトルが付加されて得られた入力データを復号する復号器の性能を評価する復号評価方法において、
上記ノイズ・ベクトルの各ビット毎の周辺事後確率を計算するための擬似変数を用い、この擬似変数を逐次的に更新する逐次計算を行ってその収束値を求めることにより上記周辺事後確率の近似値を計算し、
上記逐次計算の結果の平均値を、逐次計算の各段階で平均をとった計算の結果で近似すること
を特徴とする誤り訂正符号の復号評価方法。 - 上記逐次計算は、上記ノイズ・ベクトルのノイズ発生の個数α毎に、ノイズ発生の位置をランダムに決めながら上記擬似変数を逐次的に更新することにより行うことを特徴とする請求項1記載の誤り訂正符号の復号評価方法。
- 上記逐次計算による復号法は、ビリーフ・プロパゲーション法であることを特徴とする請求項1記載の誤り訂正符号の復号評価方法。
- 上記逐次計算の際に、通信路ノイズが発生する確率P(α)の値が所定値以下の場合は計算を省略することを特徴とする請求項1記載の誤り訂正符号の復号評価方法。
- 上記近似を用いた逐次計算により得られたビット誤り率PBP(α)が0となるとき、上記近似を用いずに逐次計算を行うことを特徴とする請求項1記載の誤り訂正符号の復号評価方法。
- 誤り訂正符号により符号化されノイズ・ベクトルが付加されて得られた入力データを復号する復号器の性能を評価する復号評価装置において、
上記ノイズ・ベクトルの各ビット毎の周辺事後確率を計算するための擬似変数を用い、この擬似変数を逐次的に更新する逐次計算を行ってその収束値を求めることにより上記周辺事後確率の近似値を計算する手段を有し、
上記逐次計算の結果の平均値を、逐次計算の各段階で平均をとった計算の結果で近似すること
を特徴とする誤り訂正符号の復号評価装置。 - 上記逐次計算は、上記ノイズ・ベクトルのノイズ発生の個数α毎に、ノイズ発生の位置をランダムに決めながら上記擬似変数を逐次的に更新することにより行うことを特徴とする請求項8記載の誤り訂正符号の復号評価装置。
- 上記逐次計算による復号法は、ビリーフ・プロパゲーション法であることを特徴とする請求項8記載の誤り訂正符号の復号評価装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003059244A JP2004274186A (ja) | 2003-03-05 | 2003-03-05 | 誤り訂正符号の復号評価方法及び装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003059244A JP2004274186A (ja) | 2003-03-05 | 2003-03-05 | 誤り訂正符号の復号評価方法及び装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004274186A true JP2004274186A (ja) | 2004-09-30 |
Family
ID=33122109
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003059244A Withdrawn JP2004274186A (ja) | 2003-03-05 | 2003-03-05 | 誤り訂正符号の復号評価方法及び装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004274186A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006059688A1 (ja) * | 2004-12-02 | 2006-06-08 | Mitsubishi Denki Kabushiki Kaisha | 復号装置及び通信装置 |
-
2003
- 2003-03-05 JP JP2003059244A patent/JP2004274186A/ja not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006059688A1 (ja) * | 2004-12-02 | 2006-06-08 | Mitsubishi Denki Kabushiki Kaisha | 復号装置及び通信装置 |
US8201047B2 (en) | 2004-12-02 | 2012-06-12 | Mitsubishi Electric Corporation | Decoding apparatus and communications apparatus |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3727938B2 (ja) | Ldpc復号化装置及びその方法 | |
CN103888148B (zh) | 一种动态阈值比特翻转的ldpc码硬判决译码方法 | |
US7676734B2 (en) | Decoding apparatus and method and information processing apparatus and method | |
JP4602406B2 (ja) | データをエンコード及びデコードするための方法並びに装置 | |
JP4221503B2 (ja) | パリティチェックデコーダで使用するノードプロセサ | |
US8245117B1 (en) | Low complexity chien search in chase-type decoding of reed-solomon codes | |
US7620873B2 (en) | Encoder, decoder, methods of encoding and decoding | |
JP4046543B2 (ja) | 有限サイズのデータブロックに対して誤り訂正符号を評価する方法 | |
US20110087946A1 (en) | Low complexity finite precision decoders and apparatus for ldpc codes | |
JP2010532129A (ja) | パリティ検査行列の生成 | |
JP2009100222A (ja) | 低密度パリティ検査符号の復号装置およびその方法 | |
JP2007166605A (ja) | パリティ検査行列、パリティ検査行列の生成方法、エンコーディング方法及びエラー訂正装置 | |
US11177834B2 (en) | Communication method and apparatus using polar codes | |
Hatami et al. | A threshold-based min-sum algorithm to lower the error floors of quantized LDPC decoders | |
Muramatsu | Variable-length lossy source code using a constrained-random-number generator | |
Ovchinnikov et al. | Decoding of linear codes for single error bursts correction based on the determination of certain events | |
Habib et al. | Learned scheduling of LDPC decoders based on multi-armed bandits | |
JP2006060695A (ja) | 情報復号方法、情報符号化方法、情報通信方法、情報復号装置、送信装置及び情報通信システム | |
JP2004274186A (ja) | 誤り訂正符号の復号評価方法及び装置 | |
Vicente et al. | Statistical physics of irregular low-density parity-check codes | |
JP2006523989A (ja) | 可変長誤り訂正符号の構築のための方法および装置 | |
KR101606040B1 (ko) | 실패검사노드를 이용한 저밀도패리티 검사부호 복호장치 및 그 방법 | |
RU2365034C2 (ru) | Способ и устройство для кодирования и декодирования данных | |
JP4973647B2 (ja) | 誤り訂正符号の復号評価装置 | |
US20210295153A1 (en) | Learning device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20060509 |