JP5116677B2 - 軟出力復号器、反復復号装置、及び軟判定値算出方法 - Google Patents

軟出力復号器、反復復号装置、及び軟判定値算出方法 Download PDF

Info

Publication number
JP5116677B2
JP5116677B2 JP2008530907A JP2008530907A JP5116677B2 JP 5116677 B2 JP5116677 B2 JP 5116677B2 JP 2008530907 A JP2008530907 A JP 2008530907A JP 2008530907 A JP2008530907 A JP 2008530907A JP 5116677 B2 JP5116677 B2 JP 5116677B2
Authority
JP
Japan
Prior art keywords
likelihood
value
calculation
soft
soft output
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
JP2008530907A
Other languages
English (en)
Other versions
JPWO2008023682A1 (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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co 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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2008530907A priority Critical patent/JP5116677B2/ja
Publication of JPWO2008023682A1 publication Critical patent/JPWO2008023682A1/ja
Application granted granted Critical
Publication of JP5116677B2 publication Critical patent/JP5116677B2/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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3905Maximum a posteriori probability [MAP] decoding or approximations thereof based on trellis or lattice decoding, e.g. forward-backward algorithm, log-MAP decoding, max-log-MAP decoding
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3905Maximum a posteriori probability [MAP] decoding or approximations thereof based on trellis or lattice decoding, e.g. forward-backward algorithm, log-MAP decoding, max-log-MAP decoding
    • H03M13/3922Add-Compare-Select [ACS] operation in forward or backward recursions
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3905Maximum a posteriori probability [MAP] decoding or approximations thereof based on trellis or lattice decoding, e.g. forward-backward algorithm, log-MAP decoding, max-log-MAP decoding
    • H03M13/3927Log-Likelihood Ratio [LLR] computation by combination of forward and backward metrics into LLRs
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3972Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using sliding window techniques or parallel windows
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing

Landscapes

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

Description

本発明は、畳み込み符号を用いて符号化されたデジタル信号を復号する軟出力復号器、反復復号装置、及び軟判定値算出方法に関し、特に、軟判定復号結果を繰り返し用いて復号を行う反復復号装置に適用して好適な軟出力復号器及び軟判定値算出方法に関する。
ターボ符号の復号で用いられる軟出力復号アルゴリズムとしては、最大事後確率復号法であるMAP(Maximum A posterior Probability)復号方式が現在のところ最良であると言われている。そして、回路実現の際には、MAP方式を対数計算で近似したMax−log−MAP方式が使用されることがある。ターボ復号の内部で用いられる、畳み込み符号の軟判定復号法としては、Max−log−MAP、SOVA(Soft Output Viterbi Algorithm)が、比較的演算量が少ないものとして知られている。
しかし、ターボ復号の演算量は他の符号などと比べると依然大きく、更なる演算量の削減が望まれている。
図1は、従来のMax−log−MAP復号法を説明するための復号器のブロック図である。
図1において、復号器1は、γα計算部11、タイミング調整器12,13、γβ計算部14、及びΛ計算部15を備えて構成される。Λ計算部15は、尤度計算部16、17、及び減算器18から構成される。
Max−log−MAP復号器1に入力されるデータ列は3種類あり、システマティックg(n)、パリティp(n)、事前値e(n)である。ここで、n=0〜K−1,Kはブロックサイズ(送信情報ビット数)である。
Max−log−MAP復号器1は、受信系列y(ベクトルsとpを含む)、及び外部値のベクトルeから、軟出力値Λ(n)を求めるものである。Λ(n)は事後値とも呼ばれ、復号器1により推定された送信ビットの対数尤度比(LLR:Log Likelihood Ratio)である。すなわち、下記式(1)のように定義され、Λ(n)>0であれば、nビット目の送信データd(n)は0と推定され、Λ(n)<0であれば、d(n)は1と推定される。なお、LLRの符号を判定することで推定値dを得る操作を、硬判定処理と呼ぶ。
Figure 0005116677
図2は、Max−log−MAP復号器1を要素復号器として用いたターボ復号器20のブロック図である。
この例では、図1のMax−log−MAP復号器(以下、要素復号器という)1が2つ用いられる。ターボ復号器20は、2つの要素復号器21,22(Max−log−MAP復号器1,2)、加算器23,24、インターリーバ25,26(インターリーバπ)、デインターリーバ27,28(デインターリーバπ−1)、及び符号判定器29(sign)から構成される。インターリーバπ及びデインターリーバπ−1は、あらかじめ
定められた方法でデータの順序を並び替える回路である。
Max−log−MAP復号器21には、システマティックsと、第1のパリティp1と、Max−log−MAP復号器22から送られた外部値e1が入力され、第1のLLRであるΛ1が出力される。
Λ1から、システマティックsと外部値e1を減じると、下記式(2)で示すように新しい外部値e1’が求まる。
e1’(n)=Λ1(n)−(s(n)+e1(n)) …(2)
e1’をインターリーブしたもの(e2)を、Max−log−MAP復号器22へ入力する外部値として用いる。また、Max−log−MAP復号器22には、システマティックsをインターリーブしたデータ、及び第2のパリティp2も入力される。
Max−log−MAP復号器22は、これらの入力をもとに、第2のLLRであるΛ2を出力する。Λ2に対しても同様に、入力されたインターリーブ後のシステマティックs(π(n))と外部値e2を減ずることで、下記式(3)に示すように新しい外部値e2’が算出される。
e2’(n)=Λ2(n)−(s(π(n))+e2(n)) …(3)
この新しい外部値e2’をデインターリーブしたものを、Max−log−MAP復号器21の新しい入力として用いる。デインターリーブは、上記インターリーブと対応する、逆並び替え処理である。
以上の処理を繰り返し行うことで、Λ1及びΛ2の正確さが向上していく。十分な回数の反復を行った後、Λ2の符号を判定し(sign)、デインターリーブを行うことで、送信ビットの推定値d^が得られる。
次に、Max−log−MAP復号の詳細な機能について説明する。なお、すべての計算式は非特許文献1に記載されたターボ符号を復号する場合に用いられるものであり、例として示したにすぎない。一般には個々の式は異なる。
Max−log−MAP復号におけるα、β、γは以下の意味を持つ。すなわち、
α:あるステートに至るパスの尤度の合計
β:あるステートから先のパスの尤度の合計
γ:ブランチの尤度
である。
(1)γ計算
γ計算は、α計算、β計算にそれぞれ先立って行われる。
nビット目の入力値s(n),p(n),e(n)から、下記式(4)で示す次の4つのγを算出する。
γ00(n)=(s(n)+e(n)+p(n))/2
γ01(n)=(s(n)+e(n)−p(n))/2
γ10(n)=(−s(n)−e(n)+p(n))/2
γ11(n)=(−s(n)−e(n)−p(n))/2 …(4)
(2)α計算
上記の通り求めたγを使い、下記式(5)で示す漸化式によりαを算出する。
α(n+1)=min{α(n)+γ00(n),α(n)+γ11(n)}
α(n+1)=min{α(n)+γ00(n),α(n)+γ11(n)}
α(n+1)=min{α(n)+γ01(n),α(n)+γ10(n)}
α(n+1)=min{α(n)+γ01(n),α(n)+γ10(n)}
α(n+1)=min{α(n)+γ01(n),α(n)+γ10(n)}
α(n+1)=min{α(n)+γ01(n),α(n)+γ10(n)}
α(n+1)=min{α(n)+γ00(n),α(n)+γ11(n)}
α(n+1)=min{α(n)+γ00(n),α(n)+γ11(n)}
…(5)
上記式(5)中、min{a,b}は、2つの候補a,bのうち小さいものを選ぶ演算を表す。αの初期値はα=0,α(0)=+∞(i>0)とする。また、αは、nの小さい方から大きいほうへ(昇順に)算出され、前方確率とも呼ばれる。
(3)β計算
同様に、γを用いて次式(6)の漸化式によりβを算出する。
β(n)=min{β(n+1)+γ00(n),β(n+1)+γ11(n)}β(n)=min{β(n+1)+γ01(n),β(n+1)+γ10(n)}β(n)=min{β(n+1)+γ01(n),β(n+1)+γ10(n)}β(n)=min{β(n+1)+γ00(n),β(n+1)+γ11(n)}β(n)=min{β(n+1)+γ00(n),β(n+1)+γ11(n)}β(n)=min{β(n+1)+γ01(n),β(n+1)+γ10(n)}β(n)=min{β(n+1)+γ01(n),β(n+1)+γ10(n)}β(n)=min{β(n+1)+γ00(n),β(n+1)+γ11(n)}
…(6)
ここで、βはnの大きいほうから小さい方(降順に)に向かって順に計算される。β計算に先立って行われるγ計算も、β計算の順序に合わせて行われる。そこで、s,p,eをFILO(First-In Last-Out; 先入れ後出し)バッファにより並び替えてからγ計算部14aへ入力する。なお、βは後方確率とも呼ばれる。
(4)Λ計算
Λ計算ではまず、次式(7),(8)を用いて、ビットごとの対数尤度(Log Likelihood)λ(n),λ(n)を求める。これらの差が次式(9)に示す対数尤度比(LLR:Log Likelihood Ratio)Λ(n)となる。
Figure 0005116677
λ計算では、αとβを両方用いて値を算出する。αはnについて昇順に計算され、βは降順に計算されるので、α又はβを並び替えて用いる必要がある。
図1では、αをFILOバッファにより並び替え、nの大きいほうから小さい方に向かう順にλを算出するようにした。
図3は、Max−log−MAP復号のフローチャートであり、図中、STはフローの各ステップを示す。本フローは、α、βを計算する際に適宜実行される。また、γ計算の記載を省略した。
まず、ステップST1,ST2でn=0〜K−1に対してα(n)を計算する。ここで、α(n)の計算とは、α0(n)〜α7(n)の8つの値を算出することを意味する。算出されたα(n)は、タイミング調整器(FILOメモリ)12に保存される。
次いで、ステップST3,ST4でn=K−1〜0に対し、β(n)を計算する。β(
n)が算出されると、ステップST5でλ0(n)、λ1(n)の計算、続いてステップST6でΛ(n)の計算を行う。λ0(n),λ1(n)の計算では、タイミング調整器12に保存されたα(n)が使われる。αは0〜K−1という順に算出されるのに対し、λ計算ではK−1〜0という順で使われるので、タイミング調整器を用いる。
また、β計算、λ計算、Λ計算はしばしばパイプライン化される。すなわち、λ0(n),λ1(n)の計算を行っている間に、β(n−1)の計算を行う。すると、λ0(n),λ1(n)の計算が終わるとすぐにλ0(n−1),λ1(n−1)の計算が開始できる。
特開2000−278144号公報 Robertson, P.; Villebrun, E.; Hoeher, P.; "A comparison of optimal and sub-optimal MAP decoding algorithms operating in the log domain" IEEE International Conference on Communications, 1995. Page(s):1009 - 1013 vol.2 3GPP TS 25.212 v6.3.0
しかしながら、このような従来のMax−log−MAP復号法にあっては、上述したように多数の加算と比較・選択処理が必要となる。図4は、Max−log−MAP1ビットあたりの演算回数を表にして示す図である。
図4の表に示すように、従来のMax−log−MAP復号法を用いるMax−log−MAP演算器では、Λ計算に要する演算量が大きく、演算回路の小型化、及び処理遅延時間の短縮化を図ることができないという問題があった。
また、従来のMax−log−MAP復号法を用いたターボ復号器では、繰り返し復号の最終段階では硬判定の推定値のみが得られれば良いのに対し、一旦軟判定値を求めてから硬判定する必要があったため、演算量が大きく、演算回路の消費電力の低減を図ることができないという問題があった。
また、SOVA方式はMax−log−MAP方式に比べ誤り率特性が劣り、メモリ操作が複雑である問題がある。
本発明の目的は、尤度計算に要する演算量を小さくして、演算回路の小型化及び処理遅延時間の短縮化を図ることができる軟出力復号器、反復復号装置、及び軟判定値算出方法を提供することである。
本発明の軟出力復号器は、複数の情報語に対応する符号語を受信し、前記情報語のとりうる複数の候補値それぞれに対応する複数の尤度値から、前記情報語の軟判定復号結果を算出する軟出力復号器であって、前記複数の候補値の中で、対応する尤度が最も高い1つの候補値を推定値として判定する硬判定復号手段と、前記複数の尤度値のうち、前記推定値に対応する尤度値については計算を禁止し、他の候補値に対応する尤度値について計算を行う尤度計算手段とを備える構成を採る。
本発明の反復復号装置は、軟出力復号を繰り返し行う反復復号装置であって、上記本発明の軟出力復号器を有し、この軟出力復号器は、前記情報語の1つを境界部と定め、前記境界部に対する前記情報語のとりうる複数の候補値それぞれに対応する複数の境界尤度値を求める境界尤度計算手段と、前記境界尤度値を用いて、最尤ブランチが接続されるステート番号を特定する初期ステート番号特定手段を備え、前記硬判定復号手段は、前記ステ
ート番号を用いて、前記境界部以外の情報語に対する推定値を判定するものであって、更にこの反復復号装置は、最終の繰り返しには、前記軟出力復号器に硬判定値の出力指示を行うとともに軟判定値の出力停止指示を行う指示部を備える構成を採る。
本発明の軟判定値算出方法は、複数の情報語に対応する符号語を受信し、前記情報語のとりうる複数の候補値それぞれに対応する複数の尤度値から、前記情報語の軟判定復号結果を算出する軟出力復号器の軟判定値算出方法であって、前記複数の候補値の中で、対応する尤度が最も高い1つの候補値を推定値として判定するステップと、前記複数の尤度値のうち、前記推定値に対応する尤度値については計算を禁止し、他の候補値に対応する尤度値について計算を行うステップとを有する。
本発明によれば、尤度計算に要する演算量を小さくすることができ、演算回路の小型化、低消費電力化、及び処理遅延時間の短縮化を図ることができる。Max−log−MAP復号法などに適用すれば、ターボ復号の演算量を大幅に削減することができる。
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
(基本原理)
まず、本発明の基本原理について説明する。
発明の原理を説明するにあたり、Max−log−MAP復号法のグラフによる説明を導入する。以下、実施の形態で参照する図面において、トレリス線図における実線は、送信ビット=0に対応するブランチ、破線は送信ビット=1に対応するブランチを示している。
図5は、λ0,λ1の計算式を説明するグラフ(トレリス線図)である。
λ0は、図5に示す8つの実線に対応するα+β+γを計算し、その中の最小値を求めることで計算され、λ1は、図5に示す8つの破線に対応するα+β+γの最小値を求めることで計算される。なお、グラフ中で縦に並ぶノードの数をステート数と呼ぶ。ここでは、非特許文献1のターボ符号化方式を用いたのでステート数は8である。また、ノード間の接続(ブランチ)も符号化方式に依存して決まる。
図6は、Max−log−MAP復号おける最尤ブランチに対応する尤度(α+β+γ)の算出方法を説明する図である。
図6に示すように、Max−log−MAP復号は、実線の中の最尤ブランチ(送信ビット:0)と破線の中の最尤ブランチ(送信ビット:1)の、2つに対応する尤度(α+β+γ)を求めることを目的としている。図6の例では、最尤ブランチ(送信ビット:0)のブランチα3(n)〜β7(n)の尤度(α+β+γ)は、λ0(n)=α3(n)+γ00(n)+β7(n)であり、最尤ブランチ(送信ビット:1)のブランチα2(n)〜β4(n)の尤度(α+β+γ)は、λ1(n)=α2(n)+γ10(n)+β4(n)である。
このように、LLRの計算方法では、計16個のブランチについて、α+β+γを算出するとともに、送信ビット=0に対応するブランチ(8通り)から最尤値を選択し、送信ビット=1に対応するブランチ(8通り)から最尤値を選択する。2つの最尤値λ0,λ1の差が軟判定値となる。
以上は、Max−log−MAP復号の一般的な概念であり、以下に本発明者による考察と、それにより発見された性質に基づく発明について説明する。
次に、連続する2時点について考える。ここで、時点とは、グラフ上で1ビットの復号に相当する区間を指すものとする。
図7は、Max−log−MAP復号を説明するトレリス線図である。
図7において、各時点におけるλ計算を行う。すなわち、「実線の中の最尤ブランチ」と「破線の中の最尤ブランチ」に対応するλ=α+β+γを求める。その結果は、例えば図8に示すようになる。
図8は、図7において各時点におけるλ計算を行った際の結果を説明する図である。
ここで、「実線の中の最尤ブランチ」と「破線の中の最尤ブランチ」のうち、より尤度が高い方を最尤ブランチと呼ぶことにする。例えば、もし図7でλ0(n)>λ1(n)であったなら、図8の破線(X)が時点nの最尤ブランチである。
いま、次のような仮定をおく。
[仮定1] 最尤ブランチにおける尤度値は、一定値である。
なお、ここでは仮定としたが、後述する<アルゴリズム1>に基づき実際に評価してみたところ、計算誤差は発生しなかった。すなわち、[仮定1]をおいても実用上問題ない。
これらの仮定を利用して、本発明では、次のようにMax−log−MAP復号を行う。
<アルゴリズム1>
(1)最尤ブランチの種類(0:実線or1:破線)を特定する。
(2)時点nにおいて、最尤ブランチの対応するビットが0(実線)であれば、λ0(n)=λwinとし、λ1(n)のみ、上記式(8)を用いて計算する。1であれば、λ1(n)=λwinとし、λ0(n)のみ、上記式(7)を用いて計算する。
このようにすることで、λ0(n)又はλ1(n)のいずれかの計算を省略することができる。
次に、最尤ブランチの種類の特定方法について説明する。従来のMax−log−MAP復号では、λ0(n)とλ1(n)を両方算出してはじめて最尤ブランチが特定できた。しかし、λ0(n)とλ1(n)を計算せずに最尤ブランチを特定できなければ、<アルゴリズム1>による演算量削減効果は得られない。
最尤ブランチの種類の特定方法を考えるにあたり、次の仮定をおく。
[仮定2] 最尤ブランチは、グラフ上で途切れることなくつながっている。
なお、ここでは仮定としたが、後述する<アルゴリズム1−A>に基づき実際に評価してみたところ、計算誤差は発生しなかった。すなわち、[仮定2]をおいても実用上問題ない。
ここで、最尤ブランチのつながりを最尤パスと呼ぶことにする。
[仮定2]によれば、1つの最尤ブランチを基点として、最尤パスをトレースしていくことにより、すべての最尤ブランチを特定することができる。また、最尤パスが通るノードを「最尤パスステート」と呼ぶことにする。1つの最尤パスステートを基点として、最尤パスステートを次々に特定していくことにより最尤パスを特定することもできる。このアルゴリズムを以下に示す。
<アルゴリズム1−A>(最尤ブランチの種類の特定方法)
(1−1)最尤パスステート初期値を特定する。
(1−2)最尤パスステートに接続されるブランチについて、尤度比較し、最も尤度が高いものが最尤ブランチである。そのブランチが0に対応するブランチ(実線)か、1に対応するブランチ(破線)か、を出力する。
(1−3)最尤ブランチの接続先を、次の最尤パスステートと特定する。
この後、上記(1−2)、(1−3)を繰り返す。
<アルゴリズム1−A>を、図9を用いて詳細に説明する。
図9は、本発明の原理の一例を示すアルゴリズムを説明する図である。
図9において、ステップ(1−1)では、基点となる最尤パスステート(最尤パスステート初期値と呼ぶ)を特定する。その方法については後述する。ここでは、ノードS0が最尤パスステート初期値であったとする。
S0に接続されるブランチは、Y1及びY2のみであるから、次の最尤パスステートはS1又はS4のいずれかである。
ステップ(1−2)では、Y1、Y2のいずれが最尤ブランチであるかを特定する。そのために、α+β+γの計算を行う。Y1の尤度(λ[Y1])は、λ[Y1]=α2(n)+β4(n)+γ10(n)で算出され、Y2の尤度(λ[Y2])は、λ[Y2]=α6(n)+β4(n)+γ01(n)である。そして、λ[Y1]とλ[Y2]を比較し、λ[Y1]の尤度が大きければ(値が小さければ)、Y1が最尤ブランチとなる。したがって、最尤ブランチに対応する値1を出力する。
上記(1−2)で最尤ブランチを特定できたので、ステップ(1−3)では、その接続先であるS1が最尤パスステートであると特定できる。
この場合、λ[Y1]とλ[Y2]の大小関係が分かればよいので、共通項であるβ4(n)を省略し、
λ’[Y1]=α2(n)+γ10(n)、λ’[Y2]=α6(n)+γ01(n)の2つを比較しても良い。
S1が最尤パスステートであると特定できたので、同様の手順で、次の最尤パスステートS2を特定できる。
以上のように、<アルゴリズム1−A>によれば、すべての尤度を計算することなく、Max−log−MAP復号を行ってから硬判定を行うのと同じ結果を得ることができ、その結果を<アルゴリズム1>の前記(1)手順に利用すると、尤度計算の演算量を削減したMax−log−MAP復号を実現することができる。
これにより、従来の従来のMax−log−MAP復号法におけるΛ演算(LLR演算)
と呼ばれるステップと異なり、最終的に2つの値しか使わないにもかかわらず全ブランチ(例えば16)についての計算を行う必要が無くなり、計算量が小さくなる。
ところで、<アルゴリズム1−A>では、最尤ブランチを完全に特定することが目的ではなく、最尤ブランチの種類のみが必要となる。そこで、<アルゴリズム1−A>の代わりに、一般に知られる硬判定復号法(例えば、ビタビ復号法)を<アルゴリズム1−A>の前記(1)手順に用いることも可能である。
理想的なビタビ復号の結果と、理想的なMax−log−MAP復号の硬判定結果は一致することが予想されるが、実際にはビタビ復号ではレジスタエクスチェンジ法、Max−log−MAPではスライディングウィンドウ法などの簡易な実装法が用いられるため、結果は一致しないことがある。この場合、<アルゴリズム1>の適用により演算量の削減効果は得られるが、ある程度の計算誤差が発生する。
次に、<アルゴリズム1−A>における最尤パスステート初期値の求め方について説明する。<アルゴリズム1−A>における最尤パスステート初期値を算出する処理を<アルゴリズム1−A−1>で示す。
<アルゴリズム1−A−1>
(1−1−1) 時点K−1(すなわち、復号対象の最後のビット)について、通常のMax−log−MAP復号と同様に尤度λ0(K−1),λ1(K−1)を算出する。このとき、どのブランチが最尤ブランチであったか記憶しておく。
(1−1−2) 最尤ブランチが接続されるノードを、最尤パスステート初期値とする。このノードを基点に、n=K−2〜0に対する処理を<アルゴリズム1−A>に従い行う。(1−1−3) さらに、1−1−1で求めた尤度λ0(K−1),λ1(K−1)のうち、尤度の高い(値の小さい)方をアルゴリズム1におけるλwinとする。
図10は、<アルゴリズム1−A−1>における最尤パスステート初期値の求め方を説明する図である。
図10に示すように、グラフ上の最も右端の時点K−1についてのみ、通常のMax−log−MAP復号と同じ尤度計算を行い、さらに最尤ブランチを特定する。例えば、ブランチWが最尤であったとする(1−1−1)。
すると、ノードS0が最尤パスステートであることが分かるので、これを基点としてn=K−2〜0に対し、<アルゴリズム1−A>を適用する。
このようにすると、通常のMax−log−MAP復号を行ってから硬判定を行ったのとまったく同じ結果を得ることができ、その結果、アルゴリズム1により、n=K−2〜0に対する尤度計算の演算量を削減することができる。
なお、<アルゴリズム1−A>とは別の方法でも、最尤ブランチの種類の特定(硬判定値の取得)が可能である。その方法について説明する。
<アルゴリズム1−A>に代わる方法
説明の準備として、α計算をグラフで表す。
図11は、α計算を表すグラフの一例を示す図である。図11のグラフは、上記式(5)の第1式であるα(n+1)=min{α(n)+γ00(n),α(n)+γ11(n)}を示している。
図11に示すように、αの計算では、あるノードに着目して、そのノードの左側に接続されているブランチそれぞれに対しα+γを計算し、最も尤度の高い値を選択する。
ところで、<アルゴリズム1−A>の(1−2)では、最尤パスステートの左側に接続されているブランチについて、α+γの大きい方を選択することにより最尤ブランチを特定し、硬判定値を取得していた。
そこで、α計算においてα+γの値を比較したときに、どちらの尤度が高かったかを示す情報qを保存しておき、Λ計算時にアルゴリズム1−Aにより最尤ブランチを特定するとき、その情報qを参照すれば、改めてα+γの計算と比較を行わなくて済む。
例えば、図11において、α0(n)+γ00(n)<α4(n)+γ11(n)であった場合(前者の尤度が高い)、q0(n+1)=0とする。すべてのステート0〜7に対し、α0(n+1)〜α7(n+1)を算出し保存するとともに、q0(n)〜q7(n)を保存する。以上の考察から、以下の<アルゴリズム1−B>が得られる。
<アルゴリズム1−B>
(1−0B)α計算において、パス選択情報qを保存しておく。
(1−1)最尤パスステート初期値を特定する。
(1−2B)最尤パスステートに対応するパス選択情報qを参照し、接続されるブランチの中から最尤ブランチを特定する。そのブランチが0に対応するブランチ(実線)か、1に対応するブランチ(破線)か、を出力する。
(1−3)最尤ブランチの接続先を、次の最尤パスステートと特定する。
(1−3)の後、上記(1−2B)、(1−3)の処理を繰り返す。
以上のように、<アルゴリズム1−B>では、<アルゴリズム1−A>と比べ、パス選択情報を保存するメモリが増加する一方、手順(1−2)の処理が簡略化される。
上記、手順(1−1)における最尤パスステート初期値の特定は、<アルゴリズム1−A>と同様の方法をとることができる。すなわち、<アルゴリズム1−A−1>と<アルゴリズム1−B>を組み合わせて用いることができる。この組み合わせについての詳細は実施の形態2で説明する。
このように、本発明では、あらかじめ尤度の高いブランチを判定し、そのブランチと同種のブランチについては計算を省略することで、計算量を削減するものである。
(実施の形態1)
本実施の形態は、上述した<アルゴリズム1>、<アルゴリズム1−A>、及び<アルゴリズム1−A−1>の実装例を示す。
図12は、本発明の実施の形態1に係る軟出力復号器の概略構成を示すブロック図である。本実施の形態は、ターボ復号器の要素復号器に用いるMax−log−MAP復号に適用した例である。
図12において、軟出力復号器100は、γα計算部101、FILOメモリからなるタイミング調整器102,103、γβ計算部104、及びΛ計算部110を備えて構成される。Λ計算部110は、硬判定復号部111、負け尤度計算部112、勝ち尤度記憶部113、及び減算器114から構成される。
以下、上述のように構成された軟出力復号器100の動作について説明する。
図13は、軟出力復号器100における軟出力復号の処理を説明するフローチャートである。図中、STはフローの各ステップであり、ステップST11〜ステップST20の順に処理を行う。
まず、ステップST11,ST12でn=K−1〜0に対してα(n)を計算する。ここで、α(n)の計算とは、α0(n)〜α7(n)の8つの値を算出することを意味する。算出されたα(n)は、タイミング調整器(FILOメモリ)102に保存される。γα計算部101におけるα計算は、従来技術と同様に行う。
ステップST13,ST14は、<アルゴリズム1−A−1>における境界処理である。これは、負け尤度計算部112の内部で行われ、求めた最尤パスステートは硬判定復号部111に格納され、λwinは勝ち尤度記憶部113に格納される。
次いで、ステップST15,ST16でn=K−1〜0に対し、β(n)を計算する。γβ計算部104におけるβ計算は、従来技術と同様に行う。
ステップST17では、硬判定復号部111が硬判定ビットd(n)を算出する。硬判定復号部111は、<アルゴリズム1−A>の前記(1−2)に従い硬判定値d(n)(これは、最尤ブランチの種類に相当する)を算出する。
ステップST18では、硬判定復号部111が最尤パスステートを更新する。硬判定復号部111は、<アルゴリズム1−A>の前記(1−3)に従い、次の最尤パスステートを特定する。
ステップST19では、負け尤度計算部112が<アルゴリズム1>の前記(2)に従い、λlose(n)を算出する。
次いで、ステップST20でΛ(n)を算出し、上記ステップST15に戻る。硬判定値d(n)に基づき、λwin(n)、λlose(n)と、λ0(n)、λ1(n)の対応を特定することにより、Λ(n)=λ0(n)−λ1(n)を算出する。これは、符号操作機能つきの減算器114により行われる。
次に、軟出力復号器100の各ブロックについて説明する。
〔負け尤度計算部112〕
Λ計算部110が備える負け尤度計算部112の機能は、次の2つである。
(1) 上記ステップST19において、λlose(n)を算出する。
(2) 上記ステップST13,ST14において、λwin及び最尤パスステートを求める。
このうち、負け尤度計算部112の主たる機能は、上記ステップST19のλlose(n)算出処理である。その上で、<アルゴリズム1−A−1>の前記(2)(3)の機能は、負け尤度計算部112を流用することで実現可能であるので、本実施の形態ではそのようにした。
まず、上記ステップST19のみを実現する負け尤度計算部112について説明する。
負け尤度計算部112は、λ(n)とλ(n)のうち、尤度が小さい(値が大きい)側の値であるλlose(n)を算出するものである。2つの尤度λ(n)とλ(n)のうち、どちらが小さくなるかは硬判定復号部111からの出力d(n)に基づき判定する。硬判定出力d(n)が1であるとき、λ(n)>λ(n)となるので尤度値λ0(n)を算出し、硬判定出力d(n)が1であるとき、尤度値λ(n)を算出する。算出した値を、減算器114へ入力する。
上記の処理は次式(10)で示される。
Figure 0005116677
図14は、軟出力復号器100の負け尤度計算部112の構成を示す図である。なお、図14に示す実装例は、負け尤度計算部112の機能を説明するための図であり、ベストモードの構成は図16により後述する。
図14において、負け尤度計算部112Aは、スイッチ121〜124、セレクタ131,132、加算器141〜150、及び最小値選択器(min)151〜153を備えて構成される。
図15は、上記スイッチ121〜124及びセレクタ131,132の動作を説明する図であり、図15(a),(b)はスイッチ121〜124の動作、図15(c),(d)はセレクタ131,132の動作を示す。
図15(a),(b)において、スイッチ121を代表して説明すると、スイッチ121は、d(n)=1のとき2つのデータを順方向に出力し、d(n)=0のとき2つのデータ位置を入れ替えて出力する。
また、図15(c),(d)において、セレクタ131を代表して説明すると、セレクタ131は、d(n)=1のとき上のデータを出力し、d(n)=0のとき下のデータを出力する。
上記の機能は、図13のフローチャートのステップST19の「λloseを算出」に対応する。
次に、図13のフローチャートのステップST13,ST14のλwin及び最尤パスステートを求める処理の実現方法について説明する。
図16は、軟出力復号器100の負け尤度計算部112の実装例の構成を示す図である。図14の負け尤度計算部112Aのベストモードの構成である。図14と同一構成部分には同一符号を付している。
図16において、負け尤度計算部112Bは、スイッチ121〜124、セレクタ131,132、加算器141〜150、最小値選択器(min)151〜153、及び最尤パスステート候補決定部160を備えて構成される。
図16に示すように、負け尤度計算部112Bの内部には、3つの最小値選択器(min)151〜153がある。これらの最小値選択器151〜153に、どの値を選択したかを示す信号を出力する端子を設ける。
例えば、最小値選択器(min)151は、d(n)=1のとき、α0(n)+β0(n)、α4(n)+β1(n)、α7(n)+β6(n)、α3(n)+β7(n)の中の最小値を選択するが、もしα4(n)+β1(n)が選ばれた場合には、α4(n)に関わる値が選ばれたことを示すように「4」という値を最尤パスステート候補決定部160に送る。
最尤パスステート候補決定部160は、最終的にどの値が選択されたかを示す信号s(n)を出力する。例えば、LL_lose=α2(n)+β4(n)+γ10(n)が選ばれた場合には、s(n)=2を出力する。
この負け尤度計算部112Bを使い、λwinと最尤パスステートを求める手順を説明する。
図17は、図16の負け尤度計算部112Bによりλwinと最尤パスステートを算出する処理を示すフローチャートであり、ステップST21〜ステップST25の順に処理を行う。
ステップST21〜ステップST23は、図13のステップST13に対応し、ステップST24からステップST25は、図13のステップST14の処理に対応している。
まず、ステップST21で、λ0(K−1)を求める。これは、負け尤度計算部112Bにおいてd(n)=1に固定することにより行われる。この値を仮の勝ち尤度λwinとして、勝ち尤度記憶部113に保存しておく。また、このときの最尤パスステート候補s(n)を仮の最尤パスステート初期値として硬判定復号部111(図12参照)に送る。
ステップST22でλ1(K−1)を求める。これは、負け尤度計算部112Bにおいてd(n)=0に固定することにより行われる。これを、仮のλloseとする。
ステップST23では、減算器114では、仮のλwinと仮のλloseの差分を求める。この出力は、n=K−1の復号結果Λ(K−1)である。
ステップST24では、Λ(K−1)の符号を判定し、仮のλwin(λ0(K−1))の方が尤度が高い(Λ(K−1)>0)場合には、仮のλwinは真のλwinであるから、ステップST21で格納したλwinをそのままにしておく。一方、λlose(λ1(K−1))の方が尤度が高い(Λ(K−1)>0)場合には、仮のλloseが真のλwinである。そこで、負け尤度計算部112Bから出力される仮のλloseを、勝ち尤度記憶部113(図12参照)に格納する。
ステップST25では、ステップST24の処理と同様に、λloseの方が尤度が高いと判断された場合には、s(n)の値を更新するよう硬判定復号部111に送る。
次に、硬判定復号部111について説明する。これは、<アルゴリズム1−A>を実現するものである。
〔硬判定復号部111〕
図18は、軟出力復号器100の硬判定復号部111の構成を示すブロック図、図19は、硬判定復号部111の機能を説明するトレリス線図である。
図18において、硬判定復号部111は、最尤パスステート記憶部200、前ステート選択部201,202(前ステート選択部0,1)、αγ選択器211,212、加算器221,222、比較器230、及びステート更新部240を備えて構成される。
図19に示すように、最尤パスステート記憶部200は、現時点の最尤パスステート番号(S0)を保持する。
前ステート選択部201(前ステート選択部0)は、現時点の最尤パスステート番号(S0)と実線で接続されるステートの番号(S4)を求める。また、前ステート選択部202(前ステート選択部1)は、現時点の最尤パスステート番号S0と破線で接続されるステート番号(S1)を求める。
αγ選択器211,212は、前ステート選択部201(前ステート選択部0)が選択したステート番号のαと、対応するγを、入力された8つのαと4つのγから選択する(α6(n)とγ01(n))。
加算器221,222は、αγ選択器211(αγ選択器0)の出力を加算する(λ’0(n)=α6(n)+γ01(n))。
比較器230は、2つの加算器221,222の出力を比較する。λ’0(n)>λ’1(n)であれば、d(n)=0を、そうでなければd(1)=1を出力する。
以上が、<アルゴリズム1−A>の前記(1−2)に対応する(最尤ブランチの特定処理)である。
さらに、ステート更新部240は、2つの前ステート選択部201,202の出力のうち、最終的に比較器230で尤度が高いとされた側のステート番号を選択し、最尤パスステート記憶部200に送る。
例えば、d(n)=0と判定された場合には、前ステート選択部201(前ステート選択部0)の出力を新しい最尤パスステートとして最尤パスステート記憶部200に送る。
以上のように、本実施の形態によれば、Max−log−MAP復号器において求められる複数の尤度を勝ち尤度と負け尤度に判別し、負け尤度のみを計算するようにしたので、従来2つ必要であった尤度計算部を1つにすることができ、回路規模・消費電力を減らすことができる。
また、勝ち尤度と負け尤度を判別する方法として、最尤パスが通過するステートを順次特定する硬判定復号部111を用いたので、Max−log−MAP復号器に大きな回路を追加する必要が無く、簡易な構成で実現することができる。
また、硬判定復号部111では、データの終端など、データ処理単位の境界では通常のMax−log−MAPと同様の方法を用い、その結果を初期値としてそれ以降の処理を上述の簡略な方法で行ったので、Max−log−MAP復号とまったく同じ結果を得ながら回路規模と消費電力を減らすことができる。
下記の表に示すように、本実施の形態によれば、前記図4の表に示す従来のMax−log−MAP復号法と比較して、演算量を大幅に削減することができた。表中の括弧内が従来の演算回数との差を示す。
Figure 0005116677
(実施の形態2)
本実施の形態では、(原理説明)で説明した<アルゴリズム1−B>の実装例を示す。
図20は、本発明の実施の形態2に係る軟出力復号器の概略構成を示すブロック図である。本実施の形態の説明にあたり図12と同一構成部分には同一符号を付して重複箇所の説明を省略する。
図20において、軟出力復号器300は、γα計算部301、FILOメモリからなるタイミング調整器102,103,302、γβ計算部104、及びΛ計算部310を備えて構成される。Λ計算部310は、硬判定復号部311、負け尤度計算部112、勝ち尤度記憶部113、及び減算器114から構成される。
実施の形態1の軟出力復号器100との違いは次の通りである。
本実施の形態の軟出力復号器300は、γα計算部301のα計算部301aからパス選択情報qを出力するようにした。パス選択情報qは、FILOメモリからなるタイミング調整器302によりタイミングを調整し、硬判定復号部311に入力される。
また、Λ計算部310における硬判定復号部311の内部構成が異なる。硬判定復号部311にα、γを入力する必要がない。
図21は、γα計算部301のα計算部301aの構成を示すブロック図である。
図21において、計算部301aは、加算器321、大小比較器322、及びセレクタ323を備えて構成される。
α計算部301aは、α算出ブロックであり、上記式(5)に基づく計算を行う。大小比較器322及びセレクタ323は、2つの入力aとbについて、a>bならbを、そうでなければaを出力する。
ここで、qの値は、γ00又はγ01にかかわるブランチが選択されたときに0を、γ10又はγ11にかかわるブランチが選択されたときに1を出力するものである。
図22は、軟出力復号器300における軟出力復号の処理を説明するフローチャートである。図22に示す実施の形態2におけるステップは、図13に示す実施の形態1に対応する処理と基本的に同様のステップにより処理を行うものであり同様の処理については同ステップ番号を付して異なるステップのみ説明する。
全体の処理フローは、ほぼ同等である。α計算においてq(n)を出力するステップST12’、硬判定ビットd(n)の算出方法のステップST17’、最尤パスステート更新方法のステップST18’である。
図23は、硬判定復号部311の構成を示すブロック図、図24は、硬判定復号部311の動作を説明するトリレス線図である。
図23において、硬判定復号部311は、最尤パスステート記憶部330、選択部331、及び前ステート選択部332を備えて構成される。
図24に示すように、選択部331は、8つのパス選択情報q0(n)〜q0(7)の中から、最尤パスステートに対応する値を1つ選択し、負け尤度計算部112及び前ステート選択部332に出力する。この値がd(n)となる。
前ステート選択部332は、硬判定値d(n)に従い、最尤ブランチの先にあるステート番号を特定する。なお、本発明の特徴である負け尤度計算部112の構成は、実施の形態1,2で全く同一である。
また、Max−log−MAP復号を効率よく実装する方式として知られる「スライディングウィンドウ方式」、「サブブロック分割方式」においても、本発明の原理が適用でき、したがって、計算誤差を発生させること無く、尤度計算の演算量を削減することができる。
また、一般のターボ符号においても本発明の原理が適用でき、例えば、Duo−Binary Turboと呼ばれる、非特許文献1とは異なるターボ符号においても本発明の
原理を応用することができる。すなわち、2種以上のブランチがあるとき、最尤ブランチを1つ特定し、最尤ブランチと同種のブランチに対しては尤度計算を省略する。
以下では、本発明を、「スライディングウィンドウ方式」に適用した場合の例を実施の形態3で説明する。
(実施の形態3)
本実施の形態は、上述した基本原理を「スライディングウィンドウ」方式に適用した場合を示すものである。
まず、スライディングウィンドウ方式について説明する。
スライディングウィンドウ方式は、長さKのデータ系列を長さL(L<K)の小ブロック(ウィンドウ)に分割し、ウィンドウごとにα計算・β計算・Λ計算を行うものである(非特許文献1参照)。スライディングウィンドウ方式は、α計算とβ計算を並列化できるため復号処理を高速化でき、またタイミング調整器のメモリ量がウィンドウ長のみでよくメモリ量を減らすことができる。
次に、スライディングウィンドウ方式の計算手順について説明する。
図25は、スライディングウィンドウ方式の計算手順を説明する図であり、図25(a)は、複数のウィンドウ分割されたデータ系列の一例を示し、図25(b)は、図25(a)のデータ系列に対応したスライディングウィンドウ方式の動作タイミングを示す図である。
図25(a)に示すように、対象となるデータ系列をウィンドウ長をL、ウィンドウ数をJとする。ここでは、便宜上、K=JLのように端数が出ないものとした。なお、端数が出る場合にも手順に大きな差はない。
図25(b)に示すように、まず、ウィンドウ0のα計算を行う(図25(b)の手順(1)参照)。
完了すると、次にウィンドウ1のα計算を行うが、それと同時にウィンドウ0のβ計算を行い、β計算部からβが出力され始めると、それに合わせてΛ計算を行う(図25(b)の手順(2)参照)。
ところで、β(n)の計算は、β(K−1)を初期値にn=K−1〜0に対し逐次的に行われるものである。ウィンドウ0のβ計算を行うためにはβ(L)の値が初期値として必要である。
そこで、図25(b)で示す手順(1)においてウィンドウ0のα計算を行っていると同時に、β(L)を何らかの方法で求める。なお、このβ(L)など、ウィンドウ境界のβの値の導出法は、非特許文献1などいくつかの方法が知られている。
そして、すべてのウィンドウ(ウィンドウ0〜ウィンドウ(J−1))に対しα計算が完了すると、1ウィンドウ分の時間遅れの後、β計算・Λ計算が完了する。
以上のように、スライディングウィンドウ方式では、α計算とβ・Λ計算、β境界値の導出を並列に行うことで、高速にMax−log−MAP復号を行う。
図26は、スライディング方式を実現する復号器の基本的な構成を示すブロック図である。図26に示す復号器30は、図29に示す従来のMax−log−MAP復号器1の構成に、β境界値生成部19が追加されただけで、ほぼ同等の構成であり、上述のとおり動作タイミングのみが異なるものとなっている。
このような基本構成を有するスライディング方式の復号器に、本発明の原理を適用した例を図27に示す。
図27は、本発明の実施の形態3に係る軟出力復号器の概略構成を示すブロック図である。図12の軟出力復号器100と同一の構成要素には同一の符号を付して重複箇所の説明を省略する。
図27において、軟出力復号器400は、γα計算部101、FILOメモリからなるタイミング調整器102,103、γβ計算部104、β境界値生成部109、及びΛ計算部110を備えて構成される。Λ計算部110は、硬判定復号部111、負け尤度計算部112、勝ち尤度記憶部113、及び減算器114から構成される。
β境界値生成部109は、図26のβ境界値生成部19と同様な機能を持つ。
図28は、軟出力復号器400の動作タイミングを示す図である。
図28に示すように、スライディングウィンドウ方式に本軟出力復号器300を適用しても動作タイミングに変更はない。
スライディングウィンドウ方式にも本発明の原理はそのまま適用できる。ポイントは次の2つである。
すなわち、ウィンドウごとにλwinの値が異なる場合があるので、新しいウィンドウの計算を始めるごとにλwinの算出を行う。算出方法は、データの末尾(n=K−1)で行ったのと同じ操作をn=L−1などのウィンドウ境界に行えばよい。
また、新しいウィンドウの計算を始めるごとに、最尤パスステート初期値を導出する。
特に、軟出力復号器400は、ウィンドウ境界のみMax−log−MAP処理(すなわち、2つの尤度λ0(n)とλ1(n)を算出する)を行い、そのとき求めた値を初期値として(最尤パスステート初期値)硬判定復号処理を行う。これにより、本実施の形態によれば、ウィンドウ分割処理を行う場合にも、通常のMax−log−MAPを行った場合と等しい硬判定結果を得ることができる。
また、スライディングウィンドウ方式以外にも、データ分割に基づくMax−log−MAPの処理効率化技術であれば同様に本発明の原理を適用することができる。すなわち、分割されたデータの両端のいずれかに対し、本発明の基本原理で示した<アルゴリズム1−A−1>を適用することで、効率化されたMax−log−MAPと同じ処理順序で軟判定復号を行うことができるので、従来のMax−log−MAPの処理効率化技術に比べて演算量を削減し、消費電力を低減することができる。
上述のデータ分割に基づくMax−log−MAPの処理効率化技術の例として、サブブロック分割による並列化がある。これは、入力データを複数のブロックに分割し、各ブロックで並列に復号を行うものである。さらに、各ブロック内部ではしばしばスライディングウィンドウ化が行われる。
(実施の形態4)
本実施の形態では、上記実施の形態1〜3の軟出力復号器を用いて硬判定復号を行う場合に、さらに演算量を減らし消費電力を低減する方法を説明する。
図29は、本発明の実施の形態4に係る軟出力復号器の概略構成を示すブロック図である。
図29の軟出力復号器500は、図20の軟出力復号器300に、β境界値生成部109を追加することでスライディングウィンドウ方式を導入したものである。なお、軟出力復号器500と軟出力復号器300の構成や動作上の差異は、実施の形態3で述べたとおり、軟出力復号器100と軟出力復号器400との差異と全く同じように説明できる。
軟出力復号器500は、硬判定復号部311の出力を直接外部に出力するようにした。軟出力復号器500を用いてターボ復号を行う場合には、繰り返し復号の最終段階において軟出力を硬判定する代わりに、硬判定復号部311の出力を直接用いることで、軟出力を出力し、硬判定処理を行う必要がなくなる。
このように、軟出力復号器500を硬判定復号器として用いた場合の特長として、次の2点が挙げられる。
第一に、軟出力復号器500は、ウィンドウ境界においてMax−log−MAP処理(すなわち、2つの尤度λ0(n)とλ1(n)を算出する)を行い、そのとき求めた値を初期値として(最尤パスステート初期値)硬判定復号処理を行う構成としたため、従来の硬判定復号器であるビタビ復号器と比べ、処理の高速化が可能となり、またレジスタエクスチェンジ法のような複雑なメモリ操作が不要となり、消費電力を低減することができる。
第二に、軟出力復号器500を硬判定復号器として用いる場合には、負け尤度計算部112はウィンドウ境界にて最尤パスステート初期値のみを求め、ウィンドウ境界以外では動作を停止するようにする。
このようにすると、硬判定復号を行っているほとんどの時間において負け尤度計算部112が動作を停止するので、従来のMax−log−MAP復号器を用いて軟出力を硬判定する場合に比べ消費電力を削減することができる。
また、軟出力復号器500を硬判定復号器として用いる場合には、さらに、タイミング調整器102、タイミング調整器103、γβ計算部104の動作を停止することで、消費電力を低減することができる。
図30は、これらの動作を停止した状態を説明する図である。軟判定復号器500を硬判定復号器として用いる場合には、配線を電気的に変更したり、上記3つのブロックを停止することで実質的に硬判定復号器500aとして動作させる。
負け尤度計算部112はウィンドウ境界部でのみ動作するが、そのとき使用される値βはβ境界値生成部109から入力される。また、値γはγβ計算部104から入力することも可能であるが、γα計算部301から入力するようにすることで、γβ計算部104を完全に停止し、消費電力を低減することができる。
また、値αはウィンドウ境界部でのみ使用されるので、タイミング調整器102を介さ
ず負け尤度計算部112に入力することができる。その結果、タイミング調整器102の動作を停止し、消費電力を低減することができる。
以上のように、本発明の軟出力復号器500は、ウィンドウ境界においてMax−log−MAP処理(すなわち、2つの尤度λ0(n)とλ1(n)を算出する)を行い、そのとき求めた値を初期値として(最尤パスステート初期値)硬判定復号処理を行う構成としたため、処理を高速化することができ、さらに、消費電力を低減することができる。
さらに、図31は、上述の軟出力復号器500を利用したターボ復号器600を示している。
ターボ復号器600は、軟出力復号器500のほかに、インターリーバ601と、反復回数制御部602と、指示部603を備える。
軟出力復号器500は、軟入力値s、pと軟入力値eを入力する。繰り返しのはじめにおいては、軟入力eは0などの初期値が入力される。次の繰り返し以降は、軟出力復号器の軟出力値Λをインターリーバ601により並び替えたものをeとして入力する。
反復回数制御部602は、規定の反復回数に達する直前に、最終の反復であることを示す信号を生成し、指示部603に送信する。
反復回数制御部602は、規定の反復回数に応じて最終の反復であることを判断するほか、硬判定出力や軟出力値の状態をもとに最終の反復であることを判断しても良い。
指示部603は、反復回数制御部602から最終の反復であることを示す信号を受けると、軟出力復号器500に、軟判定値の出力停止指示信号をそれぞれ送る。
軟出力復号器500は、軟判定値の出力停止指示信号を受け取ると、軟出力復号器500の内部に備える負け尤度計算部112、タイミング調整器102、タイミング調整器103、γβ計算部104の動作を停止するよう制御を行う。
このように、ターボ復号器600は、最終の繰り返しであることを判断すると軟判定値の出力停止指示を軟出力復号器500に対して行う指示部603を設けたので、ターボ復号にかかる消費電力を効果的に低減することができる。
実施の形態4では、軟出力復号器500を例に説明したが、軟出力復号器400においても同様の効果を得ることができる。ただし、硬判定復号にαおよびγを用いるため、ウィンドウ境界部以外における負け尤度計算部112と、γβ計算部のうちβ計算部(番号無し)のみ動作を停止することができる。
また、スライディングウィンドウ方式以外にも、データ分割に基づくMax−log−MAPの処理効率化技術であれば同様に本発明の原理を適用することができる。すなわち、分割されたデータの両端のいずれかに対し、本発明の基本原理で示した<アルゴリズム1−A−1>を適用することで、効率化されたMax−log−MAPと同じ処理順序で硬判定復号を行うことができるので、ビタビ復号に比べ高速化を図り、従来のMax−log−MAPの処理効率化技術に比べて低消費電力化を図ることができる。
上述のデータ分割に基づくMax−log−MAPの処理効率化技術の例として、サブブロック分割による並列化がある。これは、入力データを複数のブロックに分割し、各ブロックで並列に復号を行うものである。さらに、各ブロック内部ではしばしばスライディ
ングウィンドウ化が行われる。
以上の説明は本発明の好適な実施の形態の例証であり、本発明の範囲はこれに限定されることはない。
また、上記各実施の形態では、α、β、γ、λは値が小さいほど尤度が高い(尤もらしい)とした。値が大きいほど尤度が高いとする実装も可能であり、その場合も本願の発明を適用できる。
また、勝ち尤度を所望の値(例えば0)とするために、αやβの初期値を特定の値としたり、γ・α・β計算において入力値に応じた特定の値を減ずるなどの方法をとってもよい。このようにすると、勝ち尤度記憶部113と減算器114を実質的に不要とした構成をとることもできる。
また、本実施の形態では、軟出力復号器、反復復号装置、及び軟判定値算出方法という名称を用いたが、これは説明の便宜上であり、復号装置、軟出力ビタビ復号装置、ターボ復号装置及び繰り返し復号方法等であってもよい。
また、本発明を本アルゴリズムによる軟出力復号器、反復復号装置、及び軟判定値算出方法が実現できればよく、ハードウェアで構成する場合は勿論のこと、軟判定値算出方法を機能させるためのソフトウェアで実現することも可能である。このソフトウェアはコンピュータで読み取り可能な記録媒体に格納されている。
また、上記各実施の形態の説明に用いた各機能ブロックは、典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されても良いし、一部又は全てを含むように1チップ化されても良い。ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現しても良い。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行っても良い。例えば、バイオ技術の適用等が可能性としてありえる。
2006年8月22日出願の特願2006−225938および2006年9月15日出願の特願2006−251873の日本出願に含まれる明細書、図面および要約書の内容は、すべて本願に援用される。
本発明に係る軟出力復号器、反復復号装置、及び軟判定値算出方法は、軟判定復号結果を繰り返し用いて復号を行うターボ復号装置等に適用して好適である。例えば、受信側で、畳み込み符号復号器やターボ復号器等の軟出力復号器や伝送誤りの有無を検出するための巡回符号を使用する受信装置や携帯電話等の通信端末装置に用いるに好適である。
従来のMax−log−MAP復号法を説明するための復号器のブロック図 従来のMax−log−MAP復号器を要素復号器として用いたターボ復号器のブロック図 従来のMax−log−MAP復号器の処理を説明するフロー図 従来のMax−log−MAP1ビットあたりの演算回数を表にして示す図 ビットごとの対数尤度λ0,λ1の計算式を説明する図 Max−log−MAP復号おける最尤ブランチに対応する尤度(α+β+γ)の算出方法を説明する図 Max−log−MAP復号を説明するトレリス線図 図7において各時点におけるλ計算を行った際の結果を説明する図 本発明の原理の一例を示すアルゴリズムを説明する図 <アルゴリズム1−A>における最尤パスステート初期値の求め方を説明する図 α計算を表すグラフの一例を示す図 本発明の実施の形態1に係る軟出力復号器の概略構成を示すブロック図 上記実施の形態1に係る軟出力復号器における軟出力復号の処理を説明するフロー図 上記実施の形態1に係る軟出力復号器の負け尤度計算部の構成を示す図 図14の負け尤度計算部のスイッチ及びセレクタの動作を説明するための図 本発明の実施の形態1に係る軟出力復号器の負け尤度算出部の実装例の構成を示す図 本発明の実施の形態1に係る軟出力復号器の負け尤度計算部によりλwinと最尤パスステートを算出する処理を示すフロー図 本発明の実施の形態1に係る軟出力復号器の硬判定復号部の構成を示すブロック図 本発明の実施の形態1に係る軟出力復号器の硬判定復号部の機能を説明するトレリス線図 本発明の実施の形態2に係る軟出力復号器の概略構成を示すブロック図 上記実施の形態2に係る軟出力復号器のγα計算部のα計算部の構成を示すブロック図 上記実施の形態2に係る軟出力復号器における軟出力復号の処理を説明するフロー図 上記実施の形態2に係る軟出力復号器の硬判定復号部の構成を示すブロック図 上記実施の形態2に係る軟出力復号器の硬判定復号部の動作を説明するトリレス線図 スライディングウィンドウ方式の計算手順を説明する図 スライディング方式を実現する復号器の基本的な構成を示すブロック図 本発明の実施の形態3に係る軟出力復号器の概略構成を示すブロック図 上記実施の形態3に係る軟出力復号器の動作タイミングを示す図 本発明の実施の形態4に係る軟出力復号器の概略構成を示すブロック図 本発明の実施の形態4に係る軟出力復号器を硬判定復号器として用いる場合の概略構成を示すブロック図 本発明の実施の形態4に係る軟出力復号器を利用したターボ復号器の概略構成を示すブロック図

Claims (17)

  1. 複数の情報語に対応する符号語を受信し、前記情報語のとりうる複数の候補値それぞれに対応する複数の尤度値から、前記情報語の軟判定復号結果を算出する軟出力復号器であって、
    前記複数の候補値の中で、対応する尤度が最も高い1つの候補値を推定値として判定する硬判定復号手段と、
    前記複数の尤度値のうち、前記推定値に対応する尤度値については計算を禁止し、他の候補値に対応する尤度値について計算を行う尤度計算手段と
    を備える軟出力復号器。
  2. 前記硬判定復号手段は、値0又は1を推定値として出力し、
    前記尤度計算手段は、前記推定値に対応する尤度値の計算を禁止する請求項1記載の軟出力復号器。
  3. 前記尤度計算手段は、前記複数の候補値が2つのとき、尤度が小さい1つの尤度値を算出する請求項1記載の軟出力復号器。
  4. 前記尤度計算手段は、前記複数の候補値が4つのとき、尤度が最大の1つを除いた残り3つの尤度値を算出する請求項1記載の軟出力復号器。
  5. 前記推定値に対応する尤度値を勝ち尤度とするとき、前記勝ち尤度と、前記尤度計算手段の出力のうち1つとの差を計算する軟判定値計算手段を備える請求項1記載の軟出力復号器。
  6. 前記勝ち尤度は、規定の一定値である請求項5記載の軟出力復号器。
  7. 前記情報語の1つを境界部と定め、前記境界部に対する勝ち尤度を算出する境界勝ち尤度計算手段と、
    前記境界勝ち尤度を保持する記憶手段とを備え、
    前記境界勝ち尤度を用いて、前記境界部以外の情報語に対する軟判定復号結果を算出する請求項1記載の軟出力復号器。
  8. 前記情報語は、値0又は1をとり、
    値0に対応する尤度値と値1に対応する尤度値の差から前記情報語の軟判定復号結果を出力する請求項1記載の軟出力復号器。
  9. 前記複数の候補値は、2つの候補値0,1である請求項1記載の軟出力復号器。
  10. 前記複数の候補値は、4つの候補値00,01,10,11である請求項1記載の軟出力復号器。
  11. 受信した前記符号語を複数のブロックに分割し、ブロックごとに軟判定復号を行うものであって、ブロックごとに異なる勝ち尤度を用いる請求項5記載の軟出力復号器。
  12. ターボ符号により誤り訂正符号化されたデータに対してスライディングウィンドウを用いて尤度計算を行う請求項1記載の軟出力復号器。
  13. スライディングウィンドウの両端の一方を境界部と定め、前記境界部に対する勝ち尤度を算出する境界勝ち尤度計算手段と、前記境界勝ち尤度を保持する記憶手段とを備え、
    前記境界勝ち尤度を用いて、前記境界部以外の情報語に対する軟判定復号結果を算出する請求項12記載の軟出力復号器。
  14. 前記情報語の1つを境界部と定め、前記境界部に対する前記情報語のとりうる複数の候補値それぞれに対応する複数の境界尤度値を求める境界尤度計算手段と、
    前記境界尤度値を用いて、最尤ブランチが接続されるステート番号を特定する初期ステート番号特定手段を備え、
    前記硬判定復号手段は、前記ステート番号を用いて、前記境界部以外の情報語に対する推定値を判定する請求項1に記載の軟出力復号器。
  15. 前記尤度計算手段は、軟判定値の出力停止指示を受け、かつ、硬判定値の出力指示を受けた場合には、前記境界部以外の情報語に対する尤度計算を禁止する請求項14に記載の軟出力復号器。
  16. 軟出力復号を繰り返し行う反復復号装置であって、
    請求項14記載の軟出力復号器と、
    最終の繰り返しには、前記軟出力復号器に硬判定値の出力指示を行うとともに軟判定値の出力停止指示を行う指示部と
    を備える反復復号装置。
  17. 複数の情報語に対応する符号語を受信し、前記情報語のとりうる複数の候補値それぞれに対応する複数の尤度値から、前記情報語の軟判定復号結果を算出する軟出力復号器の軟判定値算出方法であって、
    前記複数の候補値の中で、対応する尤度が最も高い1つの候補値を推定値として判定するステップと、
    前記複数の尤度値のうち、前記推定値に対応する尤度値については計算を禁止し、他の候補値に対応する尤度値について計算を行うステップと
    を有する軟判定値算出方法。
JP2008530907A 2006-08-22 2007-08-21 軟出力復号器、反復復号装置、及び軟判定値算出方法 Expired - Fee Related JP5116677B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008530907A JP5116677B2 (ja) 2006-08-22 2007-08-21 軟出力復号器、反復復号装置、及び軟判定値算出方法

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP2006225938 2006-08-22
JP2006225938 2006-08-22
JP2006251873 2006-09-15
JP2006251873 2006-09-15
JP2008530907A JP5116677B2 (ja) 2006-08-22 2007-08-21 軟出力復号器、反復復号装置、及び軟判定値算出方法
PCT/JP2007/066154 WO2008023682A1 (fr) 2006-08-22 2007-08-21 Décodeur de sortie pondéré, décodeur itératif et procédé de calcul de valeur de décision pondérée

Publications (2)

Publication Number Publication Date
JPWO2008023682A1 JPWO2008023682A1 (ja) 2010-01-14
JP5116677B2 true JP5116677B2 (ja) 2013-01-09

Family

ID=39106767

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008530907A Expired - Fee Related JP5116677B2 (ja) 2006-08-22 2007-08-21 軟出力復号器、反復復号装置、及び軟判定値算出方法

Country Status (3)

Country Link
US (1) US8261163B2 (ja)
JP (1) JP5116677B2 (ja)
WO (1) WO2008023682A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2645657B1 (en) * 2010-11-26 2016-03-09 Mitsubishi Electric Corporation Soft decision value generation circuit
JP5992292B2 (ja) * 2012-10-30 2016-09-14 株式会社東芝 復号装置、方法およびプログラム
JP6155959B2 (ja) 2013-08-19 2017-07-05 富士通株式会社 復号化装置、及び、復号化方法
CN105162545B (zh) * 2015-10-16 2018-06-29 中国科学院上海高等研究院 实现低复杂度高功率效率的qam软判决系统及方法
CN108270452B (zh) * 2016-12-30 2021-07-20 芯原微电子(成都)有限公司 一种Turbo译码器及译码方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002217748A (ja) * 2001-01-17 2002-08-02 Hitachi Ltd 誤り訂正復号器
JP2003023359A (ja) * 2001-07-06 2003-01-24 Hitachi Ltd 誤り訂正ターボ符号の復号器
JP2003204272A (ja) * 2002-01-08 2003-07-18 Sony Corp 軟出力復号装置及び軟出力復号方法、並びに復号装置及び復号方法
JP2005295898A (ja) * 2004-04-12 2005-10-27 Iseki & Co Ltd 苗移植機

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100900113B1 (ko) * 1997-10-22 2009-06-01 파나소닉 주식회사 확산 펄스 벡터 생성 장치 및 방법
JP3582056B2 (ja) 1999-03-19 2004-10-27 富士通株式会社 ターボ復号器
JP3512176B2 (ja) * 2001-05-15 2004-03-29 松下電器産業株式会社 ターボ復号装置およびターボ復号における復号の繰返し回数の制御方法
JP3845822B2 (ja) * 2003-01-23 2006-11-15 ソニー・エリクソン・モバイルコミュニケーションズ株式会社 データ受信方法及び装置
US6931583B2 (en) * 2003-03-21 2005-08-16 Arraycomm, Inc. Decoding extended error correcting codes using soft information
JP2005102274A (ja) 2004-11-04 2005-04-14 Hitachi Ltd 誤り訂正復号器
KR101220621B1 (ko) * 2004-11-05 2013-01-18 파나소닉 주식회사 부호화 장치 및 부호화 방법
US8160868B2 (en) 2005-03-14 2012-04-17 Panasonic Corporation Scalable decoder and scalable decoding method
BRPI0611430A2 (pt) * 2005-05-11 2010-11-23 Matsushita Electric Ind Co Ltd codificador, decodificador e seus métodos
US7818653B2 (en) * 2006-09-28 2010-10-19 Sandisk Corporation Methods of soft-input soft-output decoding for nonvolatile memory

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002217748A (ja) * 2001-01-17 2002-08-02 Hitachi Ltd 誤り訂正復号器
JP2003023359A (ja) * 2001-07-06 2003-01-24 Hitachi Ltd 誤り訂正ターボ符号の復号器
JP2003204272A (ja) * 2002-01-08 2003-07-18 Sony Corp 軟出力復号装置及び軟出力復号方法、並びに復号装置及び復号方法
JP2005295898A (ja) * 2004-04-12 2005-10-27 Iseki & Co Ltd 苗移植機

Also Published As

Publication number Publication date
US20100169745A1 (en) 2010-07-01
WO2008023682A1 (fr) 2008-02-28
US8261163B2 (en) 2012-09-04
JPWO2008023682A1 (ja) 2010-01-14

Similar Documents

Publication Publication Date Title
US7191377B2 (en) Combined turbo-code/convolutional code decoder, in particular for mobile radio systems
US7636879B2 (en) Error correction decoder
JP3640924B2 (ja) 移動通信システムにおける構成復号装置及び方法
US7984368B2 (en) Method and system for increasing decoder throughput
JP5116677B2 (ja) 軟出力復号器、反復復号装置、及び軟判定値算出方法
JP4178752B2 (ja) 畳み込み符号の軟出力復号装置及び軟出力復号方法
EP1471677A1 (en) Method of blindly detecting a transport format of an incident convolutional encoded signal, and corresponding convolutional code decoder
JP2005210238A (ja) ターボ復号装置及びその方法並びにその動作プログラム
JP2006041960A (ja) ターボ復号装置及びターボ復号方法並びにプログラム
US6877125B2 (en) Devices and methods for estimating a series of symbols
JP3540224B2 (ja) ターボ復号器とターボ復号方法及びその方法を記憶した記憶媒体
JP3888135B2 (ja) 誤り訂正符号復号装置
Mandwale et al. Implementation of High Speed Viterbi Decoder using FPGA
Li et al. Unified convolutional/turbo decoder design using tile-based timing analysis of VA/MAP kernel
KR100838907B1 (ko) 디코더 및 디코딩 방법
JP4049620B2 (ja) ビットシーケンスを復号するための方法および装置
JP2008136006A (ja) 誤り訂正復号器及びそれに用いる誤り訂正復号方法並びにそのプログラム
US7698624B2 (en) Scheduling pipelined state update for high-speed trellis processing
JP6552765B2 (ja) 復号装置
Benaissa et al. Reconfigurable hardware architectures for sequential and hybrid decoding
WO2007016871A1 (fr) Decodeur viterbi et procede pour determiner la largeur de bits de donnees de l&#39;unite ajout-comparaison-selection du decodeur
Zhang et al. A Low-Latency and High-Performance SCL Decoder with Frame-Interleaving
Laddha et al. Implementation of Adaptive Viterbi Decoder through FPGA
Ang et al. SOVA based LTE turbo decoders
JP4525658B2 (ja) 誤り訂正符号復号装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120321

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120510

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 5116677

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20151026

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees