JP3720251B2 - Viterbi decoder - Google Patents
Viterbi decoder Download PDFInfo
- Publication number
- JP3720251B2 JP3720251B2 JP2000296458A JP2000296458A JP3720251B2 JP 3720251 B2 JP3720251 B2 JP 3720251B2 JP 2000296458 A JP2000296458 A JP 2000296458A JP 2000296458 A JP2000296458 A JP 2000296458A JP 3720251 B2 JP3720251 B2 JP 3720251B2
- Authority
- JP
- Japan
- Prior art keywords
- state
- likelihood
- viterbi decoder
- transition
- smaller
- 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
Links
Images
Landscapes
- Detection And Correction Of Errors (AREA)
- Error Detection And Correction (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は誤り訂正符号の復号器に係わり、特に畳み込み符号の最尤復号をするヴィタビ復号器に関する。
【0002】
【従来の技術】
データ伝送の信頼性を高めるため、伝送途中で生ずる伝送データの符号誤りを受信側で訂正する誤り訂正技術が多方面で用いられている。その中でも畳み込み符号を最尤復号出来るヴィタビ復号器は、誤り訂正能力が大きいことで知られている。
【0003】
図2は、従来のヴィタビ復号器の構成図である。図2において、1は枝尤度計算部、3はACS部(ACS:Add Compare Select、加算比較選択演算部)、4は状態尤度メモリ、5はパスメモリ、6は最尤復号部である。
【0004】
図2の従来のヴィタビ復号器の動作説明に先立ち、最尤復号において重要な役割をする、送信側の符号器である畳み込み符号器について、説明する。
【0005】
図3は、畳み込み符号器の構成と、符号器の状態遷移の状況を図に表したトレリス線図である。図3の(a)は、畳み込み符号器の構成であり、排他論理和ゲート31,32,33、34、35、および1ビット遅延素子36、37、38から成るシフトレジスタで構成されている。入力データx0は1ビット遅延素子36、37、38に入力され、遅延データx1、x2、x3を得る。また、排他論理和ゲート31、32、33、34、35により、データx0、x1、x2、x3の排他論理和をとり、符号化出力g0、g1を生成し、符号化出力g0、g1を送信する。
【0006】
ここで、図3の(a)に示した畳み込み符号器は、入力データ1ビットに対して2ビット出力されるので、符号化率r=1/2、また、遅延素子の数3に1を加えた入力データ4ビットで符号を生成するので、拘束長K=4の畳み込み符号器と呼ばれている。また、畳み込み符号器のシフトレジスタ36、37、38が保持している3ビットのデータの状態x3x2x1を符号器の状態という。ここでは3ビットであるから、000〜111の8状態があり、入力データが入る度に8状態が遷移しながら、符号化が行われる。この状態遷移の状況を図に表したものをトレリス線図と呼ぶ。
【0007】
図3の(b)は、8状態のトレリス線図であり、時点tn-1から時点tnへの遷移状況を示している。時点tn-1の状態番号x3x2x1の状態で、x0が畳み込み符号器に入力され、同時に畳み込み符号器からx3が抜け出て出力され、時点tnの状態番号x2x1x0の状態に移る。ここで、m=x2x1(=0〜3)とすると、m(x3=0)およびm+4(x3=1)の状態から、2m(x0=0)および2m+1(x0=1)の状態へ遷移枝を有する遷移をする。すなわち、時点tn-1と時点tnとの二つの時点を考えると、(b)の8状態のトレリスは(c)の基本単位トレリスが4個(m=0〜3)組合わさったものである。
【0008】
図3の(a)、図3の(c)に図示の符号化出力g0、g1は、符号の生成多項式
【0009】
【数1】
で計算される。但し、式(1)における加算は排他論理和で行う。また、xTはxの転置ベクトルを示す。従って、図3の(c)の状態遷移に伴って出力される符号g0、g1は、式(1)に、図3の(c)のx3m、mx0(m=x2x1)を代入して、
【0010】
【数2】
となる。但し、式(2)においてx’はxの論理反転を示す。
【0011】
以上述べたように、畳み込み符号のトレリス構造(遷移前後の状態番号、および出力される符号)は状態番号m=0〜2K-2−1を与えると、一意的に決定される。
【0012】
したがって、受信側の最尤復号器においては、時点tnの全ての状態に至る遷移パス(図3の(b)の例では8本)を候補パスとして保持しておき、受信した符号r0、r1を手がかりとして送信側の符号器の状態遷移として最も確からしい遷移パスを選択(最尤選択)することで符号器の状態遷移を推定しながら復号を行う。ここで確からしさを具体的に表す量として尤度を用いる。状態番号mからm’への状態遷移に伴って出力される符号g0、g1と、実際に受信した符号r0、r1とのハミング距離(幾何学的距離)を、その遷移枝の枝尤度(ブランチメトリック)とする。受信符号r0、r1は受信信号y0、y1を識別して、y>0のときはr=0、y<0のときはr=1とする。このような0、1判定した復号値で求める尤度を硬判定尤度という。
【0013】
なお、枝尤度には状態遷移に伴う符号(g0,g1)=(0,0)、(0,1)、(1,0)、(1,1) を直交信号点座標(I,Q)=(1,1)、(−1,1)、(1,−1)、(−1,−1) に割り当て、直交信号点(I,Q)と受信信号点(y0,y1)とのユークリッド距離、または直交、同相成分の差の絶対値和を尤度として与える軟判定尤度という計算方法もある。
【0014】
以上で、送信側の説明を終え、次に、受信側の復号について、説明する。
【0015】
図2は、従来のヴィタビ復号器の構成図であり、枝尤度計算部1で、受信符号が入力される毎に全ての遷移枝の枝尤度を計算して求める。そして求めた枝尤度を用いて、ACS部3で状態尤度を計算する。状態尤度は各状態に至る遷移パスの枝尤度を全て加算したものである。実際には図3の(b)のトレリス線図で図示されているように、各状態には2本ずつ遷移枝が入っているので、それぞれの遷移枝の枝尤度を1時点前の状態尤度に加算(Add)して新しい状態尤度を求め、現時点に至る2つの状態遷移の状態尤度を比較(Compare)し、確からしい方の遷移枝を遷移パスとして選択(Select)する。また実際には枝尤度をハミング距離で表しているので、状態尤度も小さい方が確からしい(尤度が高い)ことになる。
【0016】
ACS部3が計算した状態尤度を状態尤度メモリ4に格納するとともに、ACS演算(ACS:Add Compare Select、加算比較選択演算)処理によって選択した遷移パスの遷移情報をパスメモリ5に送る。パスメモリ5では選択した遷移情報を逐次全て記憶する。データの入力が終了した時点で、状態尤度の最も高い(数値としては最も小さい)状態に至る遷移パスを符号器の遷移パスとして推定し、推定した遷移パスの遷移情報を、最尤復号部6で最尤復号して出力する。
【0017】
以上述べたように、最尤復号による最尤復号法では、受信データを直ちに復号しないで、情報の確からしさを、パスメモリ5に状態尤度の形で保持しておき、複数の送信シンボルにわたる遷移パスについて復号するようにしているので、受信信号の1シンボル毎に混入する雑音成分の影響を軽減して、誤りを少なくすることが出来る。
【0018】
なお、この種のヴィタビ復号器として関連するものに、例えば特開平5−315976号公報等が挙げられる。
【0019】
【発明が解決しようとする課題】
ヴィタビ復号器においては、畳み込み符号の拘束長Kが大きくなるほど、誤り訂正能力が大きくなり、符号誤り率が改善される。そこで、特にIC化技術の進歩とともに、拘束長の大きい符号が用いられるようになっている。しかしながら、ヴィタビ復号器における一連の演算(枝尤度計算、状態尤度計算、ACS演算、状態尤度メモリ容量、パスメモリ容量)の処理量は、状態数2K-1に比例する。従って、拘束長Kが小さい時には比較的容易に実行できるが、拘束長Kが大きくなると、演算処理量が指数関数的に増加し、処理時間が長くなって実現が困難になる課題がある。
【0020】
本発明の目的は、ACS処理即ち状態尤度演算処理を、従来よりも少ない演算処理量で実現し且つ性能劣化の少ないヴィタビ復号器を提供することにある。
【0021】
【課題を解決するための手段】
本発明は、上記の目的を達成するため、ヴィタビ復号器のACS演算処理過程に入る前に、状態尤度を判定し、状態尤度がある設定値より小さい状態を含む状態遷移についてのみ通常のACS演算処理を行うようにしたことにある。このような処理が可能である理由について、図4を用いて説明する。
【0022】
図4は、トレリス遷移と生き残りパスを示す図である。図4の(a)は、符号化率r=1/2、拘束長Kの畳み込み符号のトレリスの基本トレリスであり、状態番号m、2K-2+mを始点とし、2m、2m+1の状態を終点とする基本トレリスである。符号化率r=1/2、拘束長Kの畳み込み符号のトレリスは、この基本トレリスが2K-2個(m=0〜2K-2−1)集まったものである。
【0023】
図4の(a)の基本トレリスの状態でACS演算処理が行われると、(b)〜(e)に示すようなトレリス遷移が結果として得られる。すなわち、(b)、(c)は始点の2状態からのパスが各々生残り、パスを一時点延ばした場合であり、(d)、(e)は片方のパスが生残って、終点の2状態に枝分かれした場合である。後者の場合、生残らなかったパスは生き残りパスにmerge(マージ、合流)されたという。トレリス線図の時点をさらに一時点延ばすと、(f)に示すような4状態間のトレリス線図が得られる。4状態トレリスの始点は(m、2K-3+m、2k-2+m、3・2K-3+m)の4状態、終点は(4m、4m+1、4m+2、4m+3)の4状態(m=0〜2K-3−1)である。
この4状態トレリスでACS演算処理が行われた場合のトレリス線図の一例を(g)に示す。(g)では一例として、拘束長K=10(状態数2K-1=512)、状態番号m=14の場合について示している。トレリス線図のノードに付した数字は、その時点の状態番号を示す。状態(14、270)から状態(28、29)への遷移(すなわち、状態番号14のノードと状態番号270から状態番号28のノードと状態番号270のノードへの遷移)では(b)の形の遷移が、状態(29、285)から状態(58、59)への遷移では(c)の形の遷移が生じ、状態(142、398)から状態(284、285)への遷移および状態(28、284)から状態(56、57)への遷移では、夫々(d)、(e)の形の遷移が生じたとすると、(g)から分かるように、始点142からのパスは終点56、57、58の3状態に分岐し、始点270からのパスは終点59まで生残り、始点14、398からのパスは途中で、他のパスにマージされている。
【0024】
ACS演算の動作原理から、tnの時点で始点14が状態尤度が最も小さいと考えられる。さらにトレリスの時点を延ばしてtn+K以上にすると、全ての状態(2K-1個)がtn時点の最尤状態から枝分かれしたパスの終点となる。すなわち、tn時点の最尤状態以外の状態では途中のACS処理によって全てパスが途絶えてしまう結果となり、ACS演算は不要であったことになる。
【0025】
以上の検討は理想状態すなわち、伝送路で雑音の混入が無い場合であるが、雑音のある実際の伝送系であっても、トレリスの時点をさらに延ばしていけば(拘束長の5〜6倍の長さで実用上十分であると言われている)、最尤パスは一本にマージすることが知られている。すなわち、生残りパスは状態尤度の小さい状態から枝分かれしており、状態尤度の(ある程度以上)大きい状態から伸びるパスは途中で途絶えてしまう。このことから、状態尤度がある設定値より小さい状態を含む状態遷移についてのみ通常のACS演算処理を行えば良いことが分かる。状態尤度が設定値より大きい状態間での状態遷移については、通常のACS演算処理を行わず、(いずれ他のパスにマージしてしまうので)終点状態の状態尤度を設定値(より若干大きい値)にしておく事で、ACS演算処理の大幅な縮減が可能であり、且つ性能劣化も少ない。以上を基に、本発明は下記の通りである。
【0026】
本発明は、Kビットの情報をnビット(n>k)の符号に符号化した符号化率r=k/nで拘束長kの畳み込み符号を入力し、該入力した畳込み符号を最尤復号するヴィタビ復号器において、該ヴィタビ復号器の状態尤度演算処理を2K-1個の状態の中から予め定めた値Ms0より小さい状態尤度を持つ状態を始点に含む状態遷移について、状態尤度演算処理をし、Ms0より小さい状態尤度を持つ状態を始点に含まない状態遷移については、予め定めた値Ms1を遷移後の状態尤度として与えるようにすることを特徴とするヴィタビ復号器である。
【0027】
本発明は、kビットの情報をnビット(n>k)の符号に符号化した符号化率r=k/nで拘束長kの畳み込み符号を入力し、該入力した畳込み符号を最尤復号するヴィタビ復号器において、該ヴィタビ復号器の状態尤度演算処理を2K-1個の状態の中から状態尤度の小さい順にみて予め定めたM2番目(M2は2K-1より小さい正整数)の状態尤度Ms2より小さい状態尤度をもつ状態を始点に含む状態遷移について、状態尤度演算処理をし、Ms2より小さい状態尤度を持つ状態を始点に含まない状態遷移については、予め定めた値Ms3を遷移後の状態尤度として与えるようにすることを特徴とするヴィタビ復号器である。
【0028】
本発明は、kビットの情報をnビット(n>k)の符号に符号化した符号化率r=k/nで拘束長kの畳み込み符号を入力し、該入力した畳込み符号を最尤復号するヴィタビ復号器において、該ヴィタビ復号器の状態尤度演算処理を2K-1個の状態の中から予め定めた値Ms0より小さい状態尤度を持つM0個の状態と、2K-1の状態の中から状態尤度の小さい順にみて予め定めたM2番目(M2は2K-1より小さい正整数)の状態尤度Ms2より小さい状態尤度を持つM2個の状態との、いずれか少ない方の個数の状態を始点に含む状態遷移について、状態尤度演算処理をし、前記M0個あるいはM2個のいずれか個数の少ないほうの状態を始点に含まない状態遷移については、予め定めた値Ms4を遷移後の状態尤度として与えるようにすることを特徴とするヴィタビ復号器である。
【0029】
【発明の実施の形態】
図1は、本発明によるヴィタビ復号器の第1の実施の形態の構成を示す図である。図1において、1は枝尤度計算部、2は状態尤度判定部、3はACS部(ACS:Add Compare Select、加算比較選択演算部)、4は状態尤度メモリ、5はパスメモリ、6は最尤復号部である。
【0030】
図1においては、状態尤度判定部2を備え、図2の従来のヴィタビ復号器の状態尤度メモリ4の読出しデータバス側に状態尤度判定部2を挿入したもので、状態尤度判定部2以外の構成要素については、動作も従来のヴィタビ復号器とほぼ同様である。図1の第1の実施の形態では、状態尤度メモリ4から状態尤度を読出し、状態尤度判定部2で読み出した状態尤度の大きさによってACS部3での演算処理の方法を変えることによって、ACS演算処理の演算量を削減する。
【0031】
図5は図1の動作を説明する図である。図5において、4は図1の符号4と同じ状態尤度メモリ、2は図1の符号2と同じ状態尤度判定部である。図1のヴィタビ復号器のACS演算部3では、図4の(a)で示す基本トレリスにおけるACS演算処理を行うため、基本トレリスの番号m=0〜2K-2-1(図5ではB=2K-2と置く)をアドレスとして、状態尤度メモリ4から、状態mおよびB+mの状態尤度Ms(m)、Ms(B+M)を読み出す。
【0032】
次に読み出した状態尤度を、状態尤度判定部2に入力し、予め定めた尤度判定値Ms0と比較し、状態尤度Ms(m)、Ms(B+m)の何れか一方が予め定めたMs0より小さいかどうかを判定し、ACS部3では、予め定めたMs0より小さい状態尤度を持つ状態を始点に含む状態遷移について、状態尤度演算処理すなわち通常のACS演算処理を行う。これは基本トレリスの始点の状態尤度が小さいので、生残る可能性が高いからである。
【0033】
それに対して、Ms0より小さい状態尤度を持つ状態を始点に含まない状態遷移については、予め定めた値MS1(>Ms0)を遷移後の状態尤度として与えるよう状態尤度演算処理をする。
【0034】
このように処理を行なうことにより、生き残る可能性の低い(尤度の大きい状態)に対するACS演算処理を大幅に簡略化でき、ヴィタビ復号器の演算処理量を小さく且つ性能劣化も少なくすることが出来る。従って、拘束長Kの大きい符号に対するヴィタビ復号器も実現が可能となる。
【0035】
第1の実施の形態では、ACS演算処理を行う状態尤度の値を決めているので、伝送路の状況により復号器の受信系列に混入する符号誤りの割合が変動するような場合には、ACS演算処理を行う状態の数が時間的に変動する。このような場合には復号結果の得られる時間(復号処理遅延時間)が変動することになり、復号器の適用分野によっては、好ましくない場合がある。
【0036】
そこで、伝送路の符号誤り状況が変動しても復号処理遅延時間が変動しないようにした、本発明による第2の実施の形態を次に説明する。
【0037】
図6は、本発明によるヴィタビ復号器の第2の実施の形態の構成図である。図6において、1は枝尤度計算部、2は状態尤度判定部、3はACS部、4は状態尤度メモリ、5はパスメモリ、6は最尤復号部、60は状態尤度カウンタである。
【0038】
図6においては、図1の本発明によるヴィタビ復号器の第1の実施の形態に、状態尤度カウンタ60を設けたものであり、状態尤度カウンタ60以外の構成は、図1の本発明の第1の実施の形態と同様である。状態尤度カウンタ60は、ACS部3が基本トレリスの終点状態の状態尤度を求める度に、その状態尤度の状態の個数をカウントする。ACS演算処理が終わった時点で、状態尤度の小さい順にカウント値を積算し、予め定めた既定の状態数M2になる状態尤度値Ms2より小さい状態尤度を持つ状態を始点に含む状態遷移について、状態尤度演算処理をし、Ms2より小さい状態尤度を持つ状態を始点を含まない状態遷移については、あらかじめ定めた値Ms3を遷移後の状態尤度として与えるよう状態尤度演算処理をする。
【0039】
第2の実施の形態では、ACS演算処理を行なう状態の数が既定状態数M2により制限されるので、伝送路での符号誤りの状況によらずACS演算に要する処理時間は一定値以下となり、復号時間も一定値以下に保たれる。
【0040】
次に、本発明によるヴィタビ復号器の第3の実施の形態について、説明する。本発明によるヴィタビ復号器の第3の実施の形態の構成自体は、図6の第2の実施の形態と同じであり、動作を異にしている。
【0041】
この第3の実施の形態では、図1で説明した予め定めた値Ms0より小さい状態尤度を持つM0個の状態と、図5で説明した状態尤度の小さい順にみて予め定めたM2番目の状態尤度Ms2より小さい状態尤度を持つM2個の状態との、いずれか個数の少ないほうの状態を選択し、選択した状態を始点に含む状態遷移について状態尤度演算処理をし、選択した状態を含まない状態遷移については、予め定めた値Ms4を遷移後の状態尤度として与えるよう状態尤度演算処理をする。
【0042】
第3の実施の形態では、更に優れたヴィタビ復号器を提供することが出来る。
【0043】
以上説明したように、本発明のヴィタビ復号器は、状態尤度が大きく生残る可能性の低い状態に対するACS演算処理を省略し、ヴィタビ復号器を構成する上で最も処理量の大きいACS演算時間を短縮するので、ヴィタビ復号器の高速化が可能であり、拘束長の大きい畳み込み符号に対するヴィタビ復号器も実現が容易になる。
【0044】
【発明の効果】
本発明によれば、ACS演算処理すなわち状態尤度演算処理を、従来よりも少ない処理量で実現し且つ性能劣化の少ないヴィタビ復号器を提供することが出来る。
【図面の簡単な説明】
【図1】本発明によるヴィタビ復号器の第1の実施の形態の構成図である。
【図2】従来のヴィタビ復号器の構成図である。
【図3】畳み込み符号器の構成と、符号器の状態遷移の状況を図に表したトレリス線図である。
【図4】トレリス遷移と生残りパスを示す図である。
【図5】図1の動作を説明する図である。
【図6】本発明によるヴィタビ復号器の第2の実施の形態、第3の実施の形態に共通の構成図である。
【符号の説明】
1…枝尤度計算部、2…状態尤度判定部、3…ACS部、4…状態尤度メモリ、5…パスメモリ、6…最尤復号部、31、32、33、34、35…排他論理和ゲート、36、37、38…1ビット遅延素子、60…状態尤度カウンタ。[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an error correction code decoder, and more particularly to a Viterbi decoder that performs maximum likelihood decoding of a convolutional code.
[0002]
[Prior art]
In order to improve the reliability of data transmission, an error correction technique for correcting a code error of transmission data generated during transmission on the receiving side is used in various fields. Among them, a Viterbi decoder capable of maximum likelihood decoding a convolutional code is known for its large error correction capability.
[0003]
FIG. 2 is a configuration diagram of a conventional Viterbi decoder. In FIG. 2, 1 is a branch likelihood calculation unit, 3 is an ACS unit (ACS: Add Compare Select), 4 is a state likelihood memory, 5 is a path memory, and 6 is a maximum likelihood decoding unit. .
[0004]
Prior to the description of the operation of the conventional Viterbi decoder shown in FIG. 2, a convolutional encoder serving as an encoder on the transmission side that plays an important role in maximum likelihood decoding will be described.
[0005]
FIG. 3 is a trellis diagram illustrating the configuration of the convolutional encoder and the state transition state of the encoder. FIG. 3A shows the configuration of a convolutional encoder, which includes a shift register including exclusive OR
[0006]
Here, since the convolutional encoder shown in FIG. 3A outputs 2 bits for 1 bit of input data, the coding rate r = 1/2, and 1 is set for the
[0007]
FIG. 3B is an 8-state trellis diagram showing a transition state from time t n −1 to time t n . In the state of state number x 3 x 2 x 1 at time t n−1 , x 0 is input to the convolutional encoder, and at the same time, x 3 is extracted from the convolutional encoder and output, and state number x 2 x at time t n is output. It moves to the state of 1 x 0. Here, if m = x 2 x 1 (= 0 to 3), 2m (x 0 = 0) and 2m + 1 (x 0 = x) from the state of m (x 3 = 0) and m + 4 (x 3 = 1). Transition to the state of 1) having a transition branch. That is, considering two time points, time point t n-1 and time point t n , (b) 8-state trellis is a combination of four (c) basic unit trellises (m = 0-3). It is.
[0008]
The encoded outputs g 0 and g 1 shown in FIGS. 3A and 3C are code generator polynomials.
[Expression 1]
Calculated by However, the addition in equation (1) is performed by exclusive OR. Further, x T denotes the transposed vector of x. Therefore, the codes g 0 and g 1 output in accordance with the state transition of (c) in FIG. 3 are expressed as x 3 m and mx 0 (m = x 2 x in (c) of FIG. 1 )
[0010]
[Expression 2]
It becomes. However, in the formula (2), x ′ represents logical inversion of x.
[0011]
As described above, the trellis structure of the convolutional code (the state number before and after the transition and the code to be output) is uniquely determined when the state number m = 0 to 2 K−2 −1 is given.
[0012]
Therefore, in the maximum likelihood decoder on the receiving side, transition paths (eight in the example of FIG. 3B) reaching all the states at time t n are held as candidate paths, and the received code r 0 is stored. , R 1 is used as a clue to select the most probable transition path as the state transition of the encoder on the transmission side (maximum likelihood selection), and decoding is performed while estimating the state transition of the encoder. Here, the likelihood is used as a quantity that specifically represents the certainty. The Hamming distance (geometric distance) between the codes g 0 and g 1 output along with the state transition from the state number m to m ′ and the actually received codes r 0 and r 1 is expressed as the transition branch. Let branch likelihood (branch metric). The received codes r 0 and r 1 identify the received signals y 0 and y 1, and r = 0 when y> 0 and r = 1 when y <0. The likelihood obtained from such a decoded value determined as 0 or 1 is referred to as a hard decision likelihood.
[0013]
For the branch likelihood, the codes (g 0 , g 1 ) = (0, 0), (0, 1), (1, 0), (1, 1) associated with the state transition are represented by orthogonal signal point coordinates (I , Q) = (1,1), (−1,1), (1, −1), (−1, −1), the orthogonal signal point (I, Q) and the received signal point (y 0 , There is also a calculation method called soft decision likelihood that gives the Euclidean distance to y 1 ) or the absolute value sum of the difference between the quadrature and in-phase components as the likelihood.
[0014]
The description on the transmission side is finished, and then the decoding on the reception side will be described.
[0015]
FIG. 2 is a configuration diagram of a conventional Viterbi decoder. The branch
[0016]
The state likelihood calculated by the
[0017]
As described above, in the maximum likelihood decoding method using the maximum likelihood decoding, the received data is not immediately decoded, but the accuracy of information is held in the
[0018]
An example of this type of Viterbi decoder is disclosed in JP-A-5-315976.
[0019]
[Problems to be solved by the invention]
In the Viterbi decoder, the error correction capability increases and the code error rate improves as the constrained code constraint length K increases. Therefore, especially with the advancement of IC technology, codes with a large constraint length are used. However, the processing amount of a series of operations (branch likelihood calculation, state likelihood calculation, ACS operation, state likelihood memory capacity, path memory capacity) in the Viterbi decoder is proportional to the number of
[0020]
An object of the present invention is to provide a Viterbi decoder that realizes ACS processing, that is, state likelihood calculation processing with a smaller calculation processing amount than the conventional one, and has less performance degradation.
[0021]
[Means for Solving the Problems]
In order to achieve the above object, the present invention determines the state likelihood before entering the ACS operation process of the Viterbi decoder, and performs normal operations only for state transitions including states where the state likelihood is smaller than a set value. This is because ACS operation processing is performed. The reason why such processing is possible will be described with reference to FIG.
[0022]
FIG. 4 is a diagram illustrating trellis transitions and survival paths. FIG. 4 (a) is a trellis basic trellis of a convolutional code trellis with a coding rate r = 1/2 and a constraint length K. The state numbers m, 2 K−2 + m are the starting points, and the
[0023]
When the ACS calculation process is performed in the basic trellis state of FIG. 4A, trellis transitions as shown in FIGS. 4B to 4E are obtained as a result. That is, (b) and (c) are the cases where the paths from the two states at the starting point are both survived and the paths are temporarily extended, and (d) and (e) are the cases where one of the paths remains and the end point This is a case of branching into two states. In the latter case, the path that did not survive was merged into the surviving path. When the time point of the trellis diagram is further extended, a trellis diagram between four states as shown in (f) is obtained. The starting point of the 4-state trellis is (m, 2 K−3 + m, 2 k−2 + m, 3 · 2 K−3 + m) 4 states, and the end point is (4m, 4m + 1, 4m + 2, 4m + 3) 4 states (m = 0-2K - 3-1).
An example of a trellis diagram in the case where ACS calculation processing is performed in the four-state trellis is shown in (g). In (g), as an example, a case where the constraint length K = 10 (number of
[0024]
From the principle of operation of the ACS calculation, it is considered that the
[0025]
The above examination is an ideal state, that is, a case where no noise is mixed in the transmission line, but even in an actual transmission system with noise, if the time of the trellis is further extended (5 to 6 times the constraint length). It is known that the maximum likelihood paths are merged into one. In other words, the surviving path branches off from a state with a small state likelihood, and a path extending from a state with a large state likelihood (a certain degree or more) is interrupted on the way. From this, it can be seen that the normal ACS calculation process should be performed only for the state transition including the state likelihood having a state smaller than a certain set value. For state transitions between states whose state likelihood is larger than the set value, the normal ACS calculation processing is not performed, and the state likelihood of the end point state is set to the set value (slightly more). By setting it to a large value, it is possible to greatly reduce the ACS arithmetic processing and there is little performance degradation. Based on the above, the present invention is as follows.
[0026]
The present invention inputs a convolutional code having a constraint length k at a coding rate r = k / n obtained by encoding K-bit information into an n-bit (n> k) code, and the input convolutional code is the maximum likelihood. In the Viterbi decoder for decoding, the state likelihood calculation process of the Viterbi decoder is performed for a state transition including a state having a state likelihood smaller than a predetermined value Ms0 from 2 K−1 states as a starting point. Viterbi decoding characterized by performing likelihood calculation processing and giving a predetermined value Ms1 as a state likelihood after the transition for a state transition that does not include a state having a state likelihood smaller than Ms0 as a starting point It is a vessel.
[0027]
The present invention inputs a convolutional code having a constraint length k at a coding rate r = k / n obtained by encoding k-bit information into an n-bit (n> k) code, and the inputted convolutional code is the maximum likelihood. In the Viterbi decoder for decoding, the state likelihood calculation processing of the Viterbi decoder is determined in advance from the 2 K−1 states in ascending order of the state likelihood (M2 is a positive value smaller than 2 K−1). (Integer) for state transitions having a state likelihood smaller than state likelihood Ms2 at the start point, state likelihood calculation processing is performed, and for state transitions that do not include a state having state likelihood smaller than Ms2 at the start point, The Viterbi decoder is characterized in that a predetermined value Ms3 is given as a state likelihood after transition.
[0028]
The present invention inputs a convolutional code having a constraint length k at a coding rate r = k / n obtained by encoding k-bit information into an n-bit (n> k) code, and the inputted convolutional code is the maximum likelihood. in the decoding to Viterbi decoder, and M0 or condition with a predetermined value Ms0 smaller state likelihoods from the state
[0029]
DETAILED DESCRIPTION OF THE INVENTION
FIG. 1 is a diagram showing a configuration of a first embodiment of a Viterbi decoder according to the present invention. In FIG. 1, 1 is a branch likelihood calculating unit, 2 is a state likelihood determining unit, 3 is an ACS unit (ACS: Add Compare Select), 4 is a state likelihood memory, 5 is a path memory,
[0030]
In FIG. 1, a state
[0031]
FIG. 5 is a diagram for explaining the operation of FIG. In FIG. 5, 4 is the same state likelihood memory as reference numeral 4 in FIG. 1, and 2 is the same state likelihood determination unit as
[0032]
Next, the read state likelihood is input to the state
[0033]
On the other hand, for state transitions that do not include a state having a state likelihood smaller than Ms0 as a starting point, state likelihood calculation processing is performed to give a predetermined value MS1 (> Ms0) as the state likelihood after the transition.
[0034]
By performing the processing in this way, it is possible to greatly simplify the ACS arithmetic processing for a low possibility of survival (high likelihood state), and to reduce the arithmetic processing amount of the Viterbi decoder and reduce performance degradation. . Therefore, a Viterbi decoder for a code having a large constraint length K can also be realized.
[0035]
In the first embodiment, the state likelihood value for performing the ACS calculation process is determined. Therefore, when the ratio of code errors mixed in the received sequence of the decoder varies depending on the state of the transmission path, The number of states in which the ACS calculation process is performed varies with time. In such a case, the time for which the decoding result is obtained (decoding processing delay time) fluctuates, which may not be preferable depending on the application field of the decoder.
[0036]
Therefore, a second embodiment according to the present invention in which the decoding processing delay time does not vary even when the code error situation of the transmission path varies will be described below.
[0037]
FIG. 6 is a block diagram of a second embodiment of the Viterbi decoder according to the present invention. In FIG. 6, 1 is a branch likelihood calculating unit, 2 is a state likelihood determining unit, 3 is an ACS unit, 4 is a state likelihood memory, 5 is a path memory, 6 is a maximum likelihood decoding unit, and 60 is a state likelihood counter. It is.
[0038]
In FIG. 6, a state likelihood counter 60 is provided in the first embodiment of the Viterbi decoder according to the present invention of FIG. 1, and the configuration other than the state likelihood counter 60 is the same as that of the present invention of FIG. This is the same as the first embodiment. The state likelihood counter 60 counts the number of states of the state likelihood each time the
[0039]
In the second embodiment, since the number of states in which the ACS calculation process is performed is limited by the predetermined number of states M2, the processing time required for the ACS calculation is equal to or less than a predetermined value regardless of the state of the code error in the transmission path. The decoding time is also kept below a certain value.
[0040]
Next, a third embodiment of the Viterbi decoder according to the present invention will be described. The configuration itself of the third embodiment of the Viterbi decoder according to the present invention is the same as that of the second embodiment of FIG. 6, and the operation is different.
[0041]
In the third embodiment, M0th states having a state likelihood smaller than the predetermined value Ms0 described with reference to FIG. 1 and the M2th state determined in advance in ascending order of the state likelihood described with reference to FIG. The state with the state likelihood smaller than the state likelihood Ms2 is selected, and the state with the smaller number is selected, and state likelihood calculation processing is performed on the state transition including the selected state as the start point. For state transitions that do not include a state, state likelihood calculation processing is performed to give a predetermined value Ms4 as the state likelihood after the transition.
[0042]
In the third embodiment, a more excellent Viterbi decoder can be provided.
[0043]
As described above, the Viterbi decoder of the present invention omits the ACS calculation processing for a state with a large state likelihood and is unlikely to survive, and has the ACS processing time with the largest processing amount in configuring the Viterbi decoder. Therefore, the Viterbi decoder can be speeded up, and the Viterbi decoder for a convolutional code having a large constraint length can be easily realized.
[0044]
【The invention's effect】
According to the present invention, it is possible to provide a Viterbi decoder that realizes ACS calculation processing, that is, state likelihood calculation processing, with a smaller processing amount than that of the prior art and with less performance degradation.
[Brief description of the drawings]
FIG. 1 is a configuration diagram of a first embodiment of a Viterbi decoder according to the present invention;
FIG. 2 is a configuration diagram of a conventional Viterbi decoder.
FIG. 3 is a trellis diagram illustrating the configuration of a convolutional encoder and the state transition state of the encoder.
FIG. 4 is a diagram showing trellis transitions and surviving paths.
FIG. 5 is a diagram for explaining the operation of FIG. 1;
FIG. 6 is a configuration diagram common to the second and third embodiments of a Viterbi decoder according to the present invention.
[Explanation of symbols]
DESCRIPTION OF
Claims (3)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000296458A JP3720251B2 (en) | 2000-09-28 | 2000-09-28 | Viterbi decoder |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000296458A JP3720251B2 (en) | 2000-09-28 | 2000-09-28 | Viterbi decoder |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002111517A JP2002111517A (en) | 2002-04-12 |
JP3720251B2 true JP3720251B2 (en) | 2005-11-24 |
Family
ID=18778734
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000296458A Expired - Fee Related JP3720251B2 (en) | 2000-09-28 | 2000-09-28 | Viterbi decoder |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3720251B2 (en) |
-
2000
- 2000-09-28 JP JP2000296458A patent/JP3720251B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2002111517A (en) | 2002-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7765459B2 (en) | Viterbi decoder and viterbi decoding method | |
US6148431A (en) | Add compare select circuit and method implementing a viterbi algorithm | |
JPH05335972A (en) | Viterbi decoder | |
KR100779782B1 (en) | High Speed ACS Unit for Viterbi Decoder | |
KR100346529B1 (en) | Digital signal processor | |
KR20090071455A (en) | Decoding Device and Decoding Method | |
EP2339757B1 (en) | Power-reduced preliminary decoded bits in viterbi decoder | |
JP2005045727A (en) | Viterbi decoder | |
US8009773B1 (en) | Low complexity implementation of a Viterbi decoder with near optimal performance | |
EP3996285A1 (en) | Parallel backtracking in viterbi decoder | |
JP2008118327A (en) | Viterbi decoding method | |
US8489972B2 (en) | Decoding method and decoding device | |
JP3720251B2 (en) | Viterbi decoder | |
US20070201586A1 (en) | Multi-rate viterbi decoder | |
JP4580927B2 (en) | Viterbi decoding apparatus and Viterbi decoding method | |
JP4049620B2 (en) | Method and apparatus for decoding a bit sequence | |
US20050138535A1 (en) | Method and system for branch metric calculation in a viterbi decoder | |
JP2002217748A (en) | Error correction decoder | |
JP3906073B2 (en) | How to calculate full path metrics in Viterbi decoding | |
US6904105B1 (en) | Method and implemention of a traceback-free parallel viterbi decoder | |
JP2002076924A (en) | Viterbi decoder | |
KR101134806B1 (en) | Method for decoding code | |
JP5370487B2 (en) | Decoding method and decoding apparatus | |
JP2591332B2 (en) | Error correction decoding device | |
JP3337950B2 (en) | Error correction decoding method and error correction decoding device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050829 |
|
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: 20050906 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050907 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090916 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100916 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110916 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120916 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130916 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |