JP4078941B2 - ビタビ復号方法、ビタビ復号装置及びプログラム - Google Patents
ビタビ復号方法、ビタビ復号装置及びプログラム Download PDFInfo
- Publication number
- JP4078941B2 JP4078941B2 JP2002300793A JP2002300793A JP4078941B2 JP 4078941 B2 JP4078941 B2 JP 4078941B2 JP 2002300793 A JP2002300793 A JP 2002300793A JP 2002300793 A JP2002300793 A JP 2002300793A JP 4078941 B2 JP4078941 B2 JP 4078941B2
- Authority
- JP
- Japan
- Prior art keywords
- state
- path
- traceback
- viterbi decoding
- metric
- 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
【発明の属する技術分野】
本発明は、畳み込み符号の最尤復号に使用されるビタビ復号方法及びビタビ復号装置と、並びにこの復号処理を実行するプログラムに関する。
【0002】
【従来の技術】
畳み込み符号を復号する方式の一つとして、ビタビ復号方式が知られている。このビタビ復号方式は、畳み込み符号に対する最尤復号方式であり、送信側のエンコーダで生成され得る符号系列の中から、受信された符号系列に最も近い系列(これを最尤パスという)を選ぶことで誤り訂正を行う。
【0003】
図11は、ビタビ復号方式を用いた従来のビタビ復号装置の一例を示すブロック図である。この図11に示すビタビ復号装置は、受信データS1100の各シンボル毎にシンボルメトリックを計算するシンボルメトリック計算回路1100と、そのシンボル単位でのメトリック信号S1101から、ブランチ毎のメトリックを計算するブランチメトリック計算回路1101と、ブランチメトリック信号S1102と記憶されたステートメトリックとを比較して加算する演算回路(以下ACS回路と称する)1102と、そのACS回路1102での比較及び加算で得られたステートメトリックを正規化する正規化回路1103と、正規化回路1103の出力を記憶するステートメトリック記憶回路1104と、ACS回路1102から出力されるパス選択情報を記憶するパスメモリ回路1105とを備えている。
【0004】
ACS回路1102では、ブランチメトリック計算回路1101から供給されるブランチメトリックと、ステートメトリック記憶回路1104に記憶されたステートメトリックとに基づいて、あるステートに合流する2本のそれぞれのパスに対し、ブランチメトリックとステートメトリックを加算して比較し、この比較結果に基づいて尤度の高いものを選択して、新ステートメトリックとする。その選択内容を、パス選択情報S1106として出力し、最小のステートメトリックをステートの番号を最尤ステート信号S1107として出力し、新たに得られたステートメトリックを新ステートメトリック出力S1103として出力する。パスメモリ回路1105は、ACS回路1102が出力するパス選択情報S1106を記憶し、同時にACS回路1102が出力する最尤ステート信号S1107に基づいて、最尤パスに対応する情報の内、打ち切り長と呼ばれる一定の長さ以前の情報を復号データS1108として出力する。
【0005】
ここでパスの選択方法について、拘束長K=4の場合を例として説明する。図14の遷移ダイアグラム(以下トレリスと略す)に示す通り、各タイムスロット毎にすべてのステートには合流する2本のパスが存在する。そこで、あるステートに合流する2本のそれぞれのパスに対し、受信信号とパスとのハミング距離(ブランチメトリック)と、それまでのブランチメトリックの累積和(ステートメトリック)とを加算して比較を行い、この比較結果に基づいて尤度の高いものが選択される。
【0006】
図11の正規化回路1103は、ACS回路1102から出力される新ステートメトリック信号S1103に対し、その値が予め設定されている範囲内の値になるように制御し、その範囲内に正規化された正規化ステートメトリック信号S1104として出力する。
【0007】
正規化方法として、新ステートメトリック計算後に毎タイムスロット、全ステートメトリックの中から最小のステートメトリックを減算する方法や固定値を減算する方法がある。ビタビ復号装置を高速に動作させたい場合には、固定値を減算する方法の実装として、各ステートメトリックの最上位ビットの値が“1”になった場合にその最上位ビットを“0”に反転する方法が装置化が容易でありしばしば用いられる。
【0008】
ステートメトリック記憶回路1104は正規化回路1103から供給される正規化ステートメトリック信号S1104を記憶し、これをステートメトリック信号S1105として出力してACS回路1102に戻す。
【0009】
パスメモリ回路1105はACS回路1102から出力されるパス選択情報S1106を記憶し、同時にACS回路1102から出力される最尤ステート信号S1107に基づいて、最尤パス対応する情報のうち、打ち切り長と呼ばれる一定の長さ以前の情報を復号データS1108として出力する。パスメモリ回路1105は、これらの処理の制御手段(図示せず)を必要とする。
【0010】
ここでパスメモリ回路の実装に当たっては、レジスタ列を用いてパス選択内容を遷移させる方法と、RAM等を用いてパス選択内容を記憶させ、それをトレースして復号する方法の2種類がある。以下この2つの方法の説明を行う。
【0011】
従来のビタビ復号装置においては、パスメモリ回路はレジスタ列を用いてパス選択内容を遷移させる方法が一般的であった。以下、この方法をレジスタ遷移法と呼ぶ。
【0012】
レジスタ遷移法においては、セレクタとレジスタからなるメモリセルをトレリス上に配置し、ACS回路から出力されるパス選択情報に基づいてレジスタの内容を遷移させる。メモリセルの構造を図15に、拘束長K=4の場合のメモリセルの配置を図16に示す。図15に示したように、それぞれのメモリセル1500は、2つの入力を選択するセレクタ1501と、そのセレクタ1501で選択されたデータを記憶するレジスタ1502とで構成してあり、そのレジスタ1502に記憶されたデータを、次段のメモリセルに送る。
【0013】
図16に示したように、各メモリセル1600,1601,‥‥を配置する際には、図14に示したトレリスに従った配置としてある。即ち、各タイムスロットに相当する位置に、ステート数だけ(ここでは8個)だけメモリセルが配置してあり、各メモリセルの出力は図14に示したトレリスに従った順序で、次のタイムスロットに相当する位置の2つのメモリセルに送られる。図16では、4つのタイムスロット位置までのメモリセル1600〜1607,1610〜1617,1620〜1627,1630〜1637を示してある。こうすることによって、各メモリセルのレジスタ内には各ステートからの生き残りパスに対応する情報が保存されることになる。実際にはメモリセルは打ち切り長分の段数が配置され、最終段の出力のうち最尤ステートの出力を選ぶことによって最尤パスに対応する情報を選択し、復号データを出力する。
【0014】
レジスタ遷移法は高速動作が可能であるというメリットがある反面、打ち切り長が長くなると回路規模が膨大になるというデメリットがある。特に最近では打ち切り長が100を越えるような用途も出てきたために、その回路規模の大きさは深刻な問題となっている。
【0015】
この問題に鑑みて、近年では、RAM等を用いてパス選択情報を記憶し、その情報をトレースすることで復号する方法が盛んに研究されている。以下、この方法をトレースバック法と呼ぶ。
【0016】
トレースバック法におけるトレースの動作を拘束長K=4の場合を例として説明する。図17においてステート001からトレースする場合を考える。ステート001への遷移の可能性のあるステートはステート000とステート100である。ここでパスメモリには、ステート000側のパスを選んであったときには0、ステート100側のパスを選んであったときには1(すなわち前ステートの最上位ビット)が記憶してある。また、どちらから遷移する場合も入力は1であり、これはステート001の最下位ビットで表現されている。
【0017】
以上より、トレースの動作は以下のように行えばよい。即ち、図18に示すように、現在トレースを行っているステートの最下位ビットを復号ビットとし、次にトレースするステートの番号は現トレースステートの最上位ビットから下位2ビット目までに、パスメモリ内のビットを新たに上位ビットとして付け加えることで生成する。この動作によって最小ステートメトリックをとるステートから、選択されたパスを順次遡ることができる。
【0018】
一方、打ち切り長の十分長いトレースバック法においては、ステートメトリックのビット幅に制限がなくその値がクリップされないと仮定できる理想的なビタビ復号装置であれば、トレースバックの開始ステートを任意に設定しても最尤復号が保証されることがG.D.Forneyの論文( “The Viterbi Algorithm ”,Proceeding of the IEEE,Vol.61,No3,Mar.1973 )に記載されており、通常はオール0ステート(ステート00)からトレースバックを開始する。
【0019】
【発明が解決しようとする課題】
しかし、ビタビ復号装置の実装を考える場合、当然のことながら、ステートメトリックのビット幅には制限が存在する。このとき、例えば各ステートメトリックの最上位ビットが1となった場合にその最上位ビットを反転する方法による正規化を行うと、正規化が行われないままステートメトリックがクリップされた値を保持し続けるステートが発生し、最尤復号できないパターンが存在するという問題がある。
【0020】
以下、その例を図面を参照しながら説明する。図19は、拘束長K=4の畳み込み符号化器の例を示した図であり、図20は、その拘束長K=4の畳み込み符号の状態遷移図である。図19に示すように、拘束長K=4の畳み込み符号化器は、3段に接続されたレジスタ1901,1902,1903と、各レジスタ1901〜1903の入出力を図19に示すように加算する加算器1911〜1917で構成されて、3ビットのデータc0,c1,c2を得、この3ビットのデータを畳み込み符号とするものである。
【0021】
このような畳み込み符号をビタビ復号する場合に、ここでは、ステートメトリックのビット幅を6ビットとし、ブランチメトリックのビット幅を5ビットと設定する。正規化は各ステートメトリックの最上位ビットが1になった場合にその最上位ビットを反転して行うものとする。また、ACS回路内でステートメトリックはオーバーフローを起こさないように“31”(5ビットで表現される最大値)の値でクリッピングが行われているものとする。また、符号語の1シンボル当たりのシンボルメトリックは、符号語と受信語が一致していれば0、不一致ならば15と計算するものとする。
【0022】
図21は、同値のステートメトリックが合流した際のパス選択についての説明図である。ステート000からトレースバックを開始し、ある時刻においてステート011に到達した状態を例に考える。
【0023】
ステート011への遷移の可能性のあるステートはステート001とステート101である。1時刻前のステート001のステートメトリックが63、ステート101のステートメトリックが46であったとし、それぞれのステート011への遷移パスのブランチメトリックが15と30とであったとする。このとき、ステート011におけるステートメトリックはステート001からの遷移によるメトリック、ステート101からの遷移によるメトリックがともにクリッピングされて63となり、ACS回路内の比較部ではこれらを比較することになる。従来の構成では、常時オール0ステート(ステート000)寄りのステート001が選択される。
【0024】
このような同値のステートメトリックの合流が存在する場合の実際のトレリスを図22に示す。
【0025】
いま正しいパスがオール1のパスであるとして、打ち切り長は十分に長いとすると、オール1のパスを受信し続けた場合、トレリスのステートメトリックはある定常状態にあると考えてよい。これをオール0ステート(ステート000)からトレースバックを開始して復号を行うと、図22に示すようなトレースバックを行い、本来復号されるべき最尤パスを復号できないことがある。
【0026】
これは、ステート000とステート100からステート000に合流する2本のパスによって計算されるステートメトリックがともに63という値にクリップされて同値のステートメトリックとしてステート000で合流しているため、パスの選択が正常に行われないことに起因している。
【0027】
ここで、従来のビタビ復号装置におけるACS回路の内部構成を詳細に見てみる。図12は従来のビタビ復号装置におけるACS回路の構成例を示したものである。
【0028】
図11に示したACS回路1102は、各ステートに対応したACS回路1201〜1208によって構成され、以下のように構成されて処理を行う。ステート000に対応するACS回路1201は、ステート000から遷移するパスとステート100から遷移するパスがあり、ステート000のステートメトリックS1201とステート000から遷移したときのパスのブランチメトリックS1203とを、加算器1210で加算してS1205を計算し、ステート100のステートメトリックS1202とステート100から遷移したときのパスのブランチメトリックS1204とを、加算器1211で加算してS1206を計算する。これをクリッピング回路1213によってステートメトリックのビット幅で決まる最大値でそれぞれクリッピングを行った後、比較回路1214で尤度の高い(メトリックの小さい)方を判断して、その判断されたパスの信号をセレクタ1215で選択させ、新ステートメトリックS1210とパス選択情報S1211とを出力する。同様に、ステート001に対応するACS回路1202,‥‥、ステート111に対応するACS回路1208も、各ステートに合流する2本のパスのメトリックを比較し、新ステートメトリックとパス選択情報とを出力する。
【0029】
図13はこのACS回路の動作を示したフローチャートである。このフローチャートに従って順に説明すると、現ステートメトリックにブランチメトリックを加算し(ステップS1301)、その加算された値が、ステートメトリックのビット幅で決まる最大値を超えていた場合に、その最大値にクリッピングさせる処理を、クリッピング回路1213で行う(ステップS1302)。その後、比較回路1214で、次の時刻で合流するステートのメトリックの大小を比較し(ステップS1303)、次時刻で合流するステートのメトリックが等しい値であるか否か判断する(ステップS1304)。ここで、合流するステートのメトリックが等しい値である場合には、オール0ステートに近い方のステートのメトリックを選択する(ステップS1306)。また、合流するステートのメトリックが等しい値でない場合には、尤度の高い方のメトリックを選択する(ステップS1305)。
【0030】
このような従来の処理においては、同値のステートメトリックが、あるステートで合流した場合には一般的に常に上側つまりオール0ステート(ステート000)側のパスが選択されるように実装が行われる。これは各ステートに対応するACS回路内の全ての比較回路において、AとBの大小比較を「A>B」のように等号を付けずに構成することに対応している。
【0031】
図22の例を振り返ってみると、ACS回路内において、ステート000からステート000につながるパスによって計算されるステートメトリックが63+15=78となりクリップされて63となる。一方、ステート100からステート000につながるパスによって計算されるステートメトリックが63+30=93あるいは62+30=92となりこちらもクリップされて63となる。ACS回路は、この合流する2つのメトリックを比較し尤度の高い方を選択して次のタイムスロットにおけるステート000でのステートメトリックとするわけであるが、同値である63同士の比較により、上側すなわちステート000からのパスを選択することになる。このため、打ち切り長を十分長くしても、トレースバックをオール0ステート(ステート000)から開始してしまうと最尤復号ができないことになる。
【0032】
上述したようなパス選択を行う場合、オール1のパス以外にも正常に復号できない例が存在する。
【0033】
以上述べたように、ステートメトリック計算時に、あるステートに合流する2本のパスの尤度が等しい場合のパス選択をオール0ステート側に行う従来のビタビ復号装置においては、オール1のパスのように、正しく復号できないパスが存在するという問題があった。
【0034】
本発明はかかる点に鑑みてなされたものであり、従来のビタビ復号装置の回路規模を変更させることなく、正しく復号できないパスの種類を減らすことによりビット誤り率を改善することを目的とする。
【0035】
【課題を解決するための手段】
本発明は、畳み込み符号の各遷移状態でのパスの選択情報を記憶して、その記憶された情報を打ち切り長分だけトレースバックすることでビタビ復号を行う場合に、あるステートに合流する2本のパスの尤度が等しい状態が連続する場合のパス選択を、トレースバック開始ステートから同じステートを連続してトレースしないようにしたものである。
【0036】
このようにしたことで、あるステートに合流する2本のパスの尤度が等しい状態が連続する場合のパス選択処理が変更されるため、正しいステートが選ばれる可能性が高くなり、正しく復号できる可能性が高くなる。
【0037】
【発明の実施の形態】
以下、図1〜図3を参照して本発明の第1の実施の形態について説明する。
【0038】
本例においては、従来例で説明した畳み込み符号をビタビ復号する際に、ビタビ復号装置内でトレースバックによりビタビ復号する構成としてある。ビタビ復号するデータは、例えば何らかの伝送路を介して受信したデータであるとする。即ち、ビタビ復号装置の基本的な構成については、従来例として図11に示したビタビ復号装置を使用する。そして本例においては、図11に示したビタビ復号装置の内の、計算されたブランチメトリックと記憶されたステートメトリックとを比較して加算する演算回路であるACS回路1102でのパス選択の制御を行う制御手段での処理を、従来とは異なるようにしたものである。この例では、トレースバックを行う際には、そのトレースバックを開始させるステートは、後述する復号トレリスに示される最も上側のステート000に設定してある。
【0039】
図1は本例のACS回路の構成を示した図である。この例では、従来例として説明した畳み込み符号と同様に、拘束長K=4つまり状態数(ステート数)=8の符号に対するビタビ復号装置に適用したものであり、ステート数に対応した数のACS回路が用意されている。即ち、ステート000に対応したACS回路101、ステート001に対応したACS回路102、‥‥ステート111に対応したACS回路108の8個のACS回路が用意されている。また、ここではステートメトリックのビット幅を6ビット,ブランチメトリックのビット幅を5ビットとする。
【0040】
以下、本例のACS回路について説明すると、本例のACS回路は、同値のステートメトリックが、あるステートで合流した場合に、オール1ステート(ステート111)寄りのパス選択を行うACS回路である。なお、ここではトレースバックを開始するステートを、オール0ステートとしてある。
【0041】
図1に示したステート000に対応するACS回路101は、ステート000から遷移するとステート100から遷移するパスがあり、ステート000のステートメトリックS101とステート000から遷移したときのパスのブランチメトリックS103とを加算器111で加算して、加算信号S105を計算する。また、ステート100のステートメトリックS102とステート100から遷移したときパスのブランチメトリックS104とを加算器112で加算して、加算信号S106を計算する。
【0042】
計算された信号S105,S106は、クリッピング回路113に供給し、ステートメトリックのビット幅で決まる最大値でそれぞれクリッピングを行い、クリッピングされた信号S107,S108を得る。ここでは、ステートメトリックのビット幅を6ビットとしてあるので、加算値が63を超える場合に63にクリッピングされる。
【0043】
クリッピング回路113で処理された信号S107,S108は、比較回路114で尤度の高い(メトリックの小さい)方を判断して、その判断されたパスの信号をセレクタ115で選択させ、新ステートメトリックS110とパス選択情報S111とを出力する。同様に、ステート001に対応するACS回路102,‥‥、ステート111に対応するACS回路108も、各ステートに合流する2本のパスのメトリックを比較し、新ステートメトリックとパス選択情報とを出力する。
【0044】
ここで、各ACS回路101〜108内の比較回路(ACS回路101の場合には比較回路114)では、同値のステートメトリックが、あるステートで合流した場合には、常時オール1ステート(ステート111)側のパス(つまり後述する復号トレリスの図に示す下側)を選択する。
【0045】
このため、比較回路114などの全てのACS回路101〜108内の比較回路では、2つの入力をAとBとしたとき、そのAとBの大小比較を「A≧B」のように等号を付けて比較することで対応できる。従来の場合には、図12に示す比較回路1214のように「A>B」と比較していた。
【0046】
図2は、本例のACS回路の動作を示したフローチャートである。このフローチャートに従って順に説明すると、現ステートメトリックにブランチメトリックを加算し(ステップS201)、その加算された値が、ステートメトリックのビット幅で決まる最大値を超えていた場合に、その最大値にクリッピングさせる処理を、クリッピング回路113で行う(ステップS202)。その後、比較回路114で、次の時刻で合流するステートのメトリックの大小を比較し(ステップS203)、次時刻で合流するステートのメトリックが等しい値であるか否か判断する(ステップS204)。ここで、合流するステートのメトリックが等しい値である場合には、2つのステートの内で、オール1ステートに近い方のステートのメトリックを選択する(ステップS206)。また、合流するステートのメトリックが等しい値でない場合には、尤度の高い方(即ちの値の小さい方)のメトリックを選択する(ステップS205)。
【0047】
このような処理を行った場合の復号トレリスの例を、図3に示す。この例では、従来例として説明した例の復号トレリス(図22)と同じ条件の符号を受信した例としてあり、正しいパスがオール1のステートのパスであるとして、打ち切り長は十分に長いとする。尤度の設定条件についても、図22の例と同じであり、具体的には符号語の1シンボル当たりのシンボルメトリックは、符号語と受信語が一致していれば0、不一致ならば15と計算し、ステートメトリックは63でクリッピングされるものとする。トレースバックを開始させるステートは図中の最も上側であるステート000に設定してある。
【0048】
図3の例では、ステート000からトレースバックを開始させた場合、そのステート000に合流する2つのパスの尤度であるステートメトリックが63で等しくなるが、図2のフローチャートに示した条件で、下側のパスが選択されるのでステート100が選択される。次の段では、ステート100に合流する2つのパスのステートメトリックが63で等しくなり、下側のパスが選択されるのでステート110が選択される。さらに、次の段では、ステート110に合流する2つのパスの内、一方のステート011のパスのステートメトリックが63で、他方のステート111のパスのステートメトリックが31で、ブランチメトリックが31であるので、加算値は62になり、63と62の比較で、ステート111が選択される。
【0049】
そして、ステート111が選択されると、以後はステート111からのパスの値の方が小さくなるので、このステート111が選択され続ける。従って、本例の場合には、正しいステートであるステート111とは最も離れた位置であるステート000からトレースバックを開始させたのに、正しいパスが選択されるようになる。この場合には、ACS回路内の比較回路部に、等号を加えた比較処理により選択結果を制御する構成であるため、従来に比べて実質的に回路規模の変更はないことが分かる。このように、本例の処理を行うことで、受信値が同じ値で連続するような場合でも、正しいステートにたどり着くことができ、正しく復号できないパスの種類を減らすことができる。
【0050】
次に、本発明の第2の実施の形態を、図4〜図10を参照して説明する。
【0051】
本例においても、上述した第1の実施の形態と同様に、畳み込み符号をビタビ復号する際に、ビタビ復号装置内でトレースバックによりビタビ復号する構成としてある。ビタビ復号するデータは、例えば何らかの伝送路を介して受信したデータであり、ビタビ復号装置の基本的な構成については、従来例として図11に示したビタビ復号装置を使用し、図11に示したビタビ復号装置の内の、計算されたブランチメトリックと記憶されたステートメトリックとを比較して加算する演算回路であるACS回路1102でのパス選択の制御を、従来とは異なるようにした点についても、第1の実施の形態と同じである。トレースバックを開始させるステートが、最も上側のステート000である点も、第1の実施の形態と同じである。
【0052】
図4は本例のACS回路の構成を示した図である。本例でも、拘束長K=4つまり状態数(ステート数)=8の符号に対するビタビ復号装置に適用したものであり、ステート数に対応した数のACS回路が用意されている。即ち、ステート000に対応したACS回路401、ステート001に対応したACS回路402、‥‥ステート111に対応したACS回路408の8個のACS回路が用意されている。また、ここではステートメトリックのビット幅を6ビット,ブランチメトリックのビット幅を5ビットとする。
【0053】
図4に示した本例のACS回路の構成について説明すると、ステート000に対応するACS回路401は、ステート000から遷移するとステート100から遷移するパスがあり、ステート000のステートメトリックS401とステート000から遷移したときのパスのブランチメトリックS403とを加算器411で加算して、加算信号S405を計算する。また、ステート100のステートメトリックS402とステート100から遷移したときパスのブランチメトリックS404とを加算器412で加算して、加算信号S406を計算する。
【0054】
計算された信号S405,S406は、クリッピング回路413に供給し、ステートメトリックのビット幅で決まる最大値でそれぞれクリッピングを行い、クリッピングされた信号S407,S408を得る。ここでは、ステートメトリックのビット幅を6ビットとしてあるので、加算値が63を超える場合に63にクリッピングされる。
【0055】
クリッピング回路413で処理された信号S407,S408は、比較回路414で尤度の高い(メトリックの小さい)方を判断して、その判断されたパスの信号をセレクタ415で選択させ、新ステートメトリックS410とパス選択情報S411とを出力する。
【0056】
ここまでは第1の実施の形態と同じ構成であるが、本例の場合には、各ステートのACS回路401〜408で、尤度が等しい場合(即ち同値のステートメトリックが合流した場合)に、選択するパスの方向を、ある規則(具体的には尤度が等しい場合に全てのステートを少なくとも1回ずつ選択することになるような方向の設定)に基づいてステート毎に個別に設定してある。
【0057】
即ち、図5に示すように、ステート数に対応して8個のACS回路401〜408がある場合に、ステート000に対応したACS回路401ではオール1ステート寄り、ステート001に対応したACS回路402ではオール0ステート寄り、ステート010に対応したACS回路403ではオール1ステート寄り、ステート011に対応したACS回路404ではオール0ステート寄り、ステート100に対応したACS回路405ではオール0ステート寄り、ステート101に対応したACS回路406ではオール1ステート寄り、ステート110に対応したACS回路407ではオール1ステート寄り、ステート111に対応したACS回路408ではオール0ステート寄り、という具合に各ステートで独立にパス選択を行う制御構成としてある。
【0058】
これは各ステートに対応するACS回路内の比較回路において、オール0ステート寄りを選択する場合は、比較するメトリックをAとBとしたとき、AとBの大小比較を「A>B」のように等号を付けずに比較する構成で対応しており、一方、オール1ステート寄りを選択する場合は、AとBの大小比較を「A≧B」のように等号を付けて比較する構成で対応している。
【0059】
この図5に示したような比較制御構成は、合流する2つのパスの尤度が等しい状態が続いたときに、全てのステートを少なくとも1回ずつ通過するような方向のメトリックを選択するための構成であると言える。
【0060】
図6は、本例のACS回路の動作を示したフローチャートである。このフローチャートに従って順に説明すると、現ステートメトリックにブランチメトリックを加算し(ステップS601)、その加算された値が、ステートメトリックのビット幅で決まる最大値を超えていた場合に、その最大値にクリッピングさせる処理を、クリッピング回路で行う(ステップS602)。その後、比較回路で、次の時刻で合流するステートのメトリックの大小を比較し(ステップS603)、次時刻で合流するステートのメトリックが等しい値であるか否か判断する(ステップS604)。ここで、合流するステートのメトリックが等しい値である場合には、全ステートを1回ずつ通過するような方向のメトリックを選択する(ステップS606)。また、合流するステートのメトリックが等しい値でない場合には、尤度の高い方(即ちの値の小さい方)のメトリックを選択する(ステップS605)。
【0061】
このような処理を行った場合の復号トレリスの例を、図7に示す。この例では、従来例として説明した例の復号トレリス(図22)と同じ条件の符号を受信した例としてあり、正しいパスがオール1のステートのパスであるとして、打ち切り長は十分に長いとする。尤度の設定条件についても、図22の例と同じであり、具体的には符号語の1シンボル当たりのシンボルメトリックは、符号語と受信語が一致していれば0、不一致ならば15と計算し、ステートメトリックは63でクリッピングされるものとする。トレースバックを開始させるステートは図中の最も上側であるステート000に設定してある。
【0062】
同値のステートメトリックが合流した場合に選択されるパスの方向は、個別に設定してあるため、ステート000からトレースバックを開始させて、同値のステートメトリックとなる状態が続いても、パスの選択状態は、下側のパスが選ばれる場合と、上側のパスが選ばれる場合とがある。そして、そのようにパスが選択されている間に、正しいステート111にたどり着き、本来復号されるべきパスをトレースバックするようになる。
【0063】
この第2の実施の形態の処理を行う場合には、第1の実施の形態で対処できないような畳み込み符号の正しい復号についても可能になる。図8,図9のトレリスは、正しいパスが100010001000‥‥と続くパスを受信し続けた場合の例である。図8は、この場合に第1の実施の形態で説明した処理を行った場合の例である。この図8に示すように、トレースバックを開始するステートがオール0ステート(ステート000)である場合に、合流する2本のパスの尤度が等しいときに、開始ステートとは最も離れたステートであるオール1ステートに近い側のステートを選ぶようにした場合に、クリッピングされたメトリックが続くような場合には、選択されるステートが下側になって行き、ステート000から太線で示す経路となり、最終的にステート111で張りついてしまう。
【0064】
ここで、図8の例での実際のステートと受信値の変化が、ステート010からトレースバックした場合に正しくなるパス(ステート010から太線で示す経路)であり、この経路はステート111にはならない状態が継続するので、このステート010からトレースバックされる経路と、ステート000からトレースバックされる経路とが、全く一致しない状態となってしまう。このようなことが発生することは、実際の受信状態では稀ではあるが、あり得ないことではない。
【0065】
これに対して、本例(第2の実施の形態の例)の構成で、図8と同じ条件の受信信号をトレースバックした場合には、図9に示すようなトレースバックとなる。図9の例では、オール0ステートからトレースバックを開始させてあるが、その位置から4段前にトレースバックさせた位置で、正しいステートであるステート010が選ばれるようになり、以後は受信エラーがない限りは、ステートメトリックの比較で、正しいステートが選ばれ続ける。
【0066】
なお、全てのステートのメトリックが等しい場合に、全てのステートを少なくとも1回ずつ通過するようなパス選択例としては、例えば図10に示すような選択が考えられる。この図10の例は、ステート000からトレースバックを開始させた例であり、そのトレースバックで選ばれる順に説明すると、ステート000ではステート100を選び、ステート100ではステート010を選び、ステート010ではステート101を選び、ステート101ではステート110を選び、ステート110ではステート111を選び、ステート111ではステート011を選び、ステート011ではステート001を選び、ステート001ではステート000を選ぶようにすることで、全てのステートを1回ずつ選んだことになる。
【0067】
このように第2の実施の形態で説明した処理を行うことで、正しく復号できないパスの種類をより効果的に減らすことができる。この第2の実施の形態の構成の場合にも、ACS回路内の比較回路部の一部に、等号を加えた比較処理により選択結果を制御する構成であるため、従来に比べて実質的に回路規模を変更することがないことが分かる。
【0068】
なお、以上説明した第1,第2の実施の形態では、拘束長K=4、ステートメトリックのビット幅=6ビット、ブランチメトリックのビット幅=5ビットの場合の処理を例としたが、これらはこの値に限らず、任意の値とすることができる。正規化方法に関しても、各ステートメトリックの最上位ビットが全て1になった場合にその最上位ビットを反転するステートメトリック正規化方法にのみ限定されるものではなく、他の正規化方法を利用した場合の適用も考えられる。また、ACS回路内のクリッピングと比較の順次を入れ替えて行った場合に本発明を適用してもよい。
【0069】
さらに、以上の例は、トレースバック開始ステートをオール0ステート(ステート000)の場合を例としたが、任意のステートからトレースバックを開始する場合に本発明を適用してもよい。例えば第1の実施の形態では、トレースバックを開始するステートをオール0ステート(ステート000)として、合流する2本のパスの尤度が等しいときに、開始ステートとは最も離れたステートであるオール1ステートに近い側のステートを選ぶようにしたが、トレースバックを開始するステートがオール1ステート(ステート111)である場合には、合流する2本のパスの尤度が等しいときに、開始ステートとは最も離れたステートであるオール0ステートに近い側のステートを選ぶようにすれば、同様の効果が得られる。
【0070】
また、第1の実施の形態と第2の実施の形態に示した処理は、それぞれ異なる処理ではあるが、いずれの実施の形態の場合にも、トレースバックを行うためにステートメトリックを計算する際に、あるステートに合流する2本のパスの尤度が等しい状態が連続する場合のパス選択を、トレースバック開始ステートから同じステートを連続してトレースしない処理であり、このように同じステートを連続してトレースしない処理として、第1,第2の実施の形態で示した処理以外の処理を行うように構成しても良い。
【0071】
また、ここまで説明したビタビ復号装置は、ハードウェアとして構成された回路で復号処理を行う装置としたが、例えばコンピュータ装置に、同様の処理を実行するプログラムを実装させて、そのコンピュータ装置が有する演算手段と記憶手段を使用して、同様のビタビ復号を行うように構成しても良い。
【0072】
【発明の効果】
以上述べたように、本発明によれば、ステートメトリック計算時に、あるステートに合流する2本のパスの尤度が等しい場合のパス選択方法を変更することで従来のビタビ復号装置の回路規模を変更させることなく、正しく復号できないパスの種類を減らすことができるため、復号後のビット誤り率を改善することができるという効果が得られる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態によるビタビ復号装置のACS回路の例を示すブロック図である。
【図2】図1例の構成でのACS回路の動作を示すフローチャートである。
【図3】第1の実施の形態でトレースバックを行った場合の復号トレリスを示す説明図である。
【図4】本発明の第2の実施の形態によるビタビ復号装置のACS回路の例を示すブロック図である。
【図5】図4例での全てのACS回路の比較回路での比較例を示した構成図である。
【図6】図4例の構成でのACS回路の動作を示すフローチャートである。
【図7】第2の実施の形態でトレースバックを行った場合の復号トレリスを示す説明図である。
【図8】復号トレリスの一例を示す説明図である。
【図9】第2の実施の形態でトレースバックを行った場合の別の復号トレリスを示す説明図である。
【図10】全ステートを1回ずつ通過するパス選択の例を示した説明図である。
【図11】従来のビタビ復号装置の構成例を示すブロック図である。
【図12】従来のACS回路の構成例を示すブロック図である。
【図13】従来のACS回路の動作例を示すフローチャートである。
【図14】拘束長K=4の畳み込み符号の場合の遷移ダイアグラムである。
【図15】レジスタ遷移法におけるメモリセルの構成例を示したブロック図である。
【図16】レジスタ遷移法におけるメモリセルの配置例を示した構成図である。
【図17】トレースバック法におけるトレースの原理を示した説明図である。
【図18】トレースバック法におけるトレース方法を示した説明図である。
【図19】拘束長K=4の畳み込み符号化器の例を示したブロック図である。
【図20】拘束長K=4の畳み込み符号の状態遷移図である。
【図21】同値のステートメトリックが合流した際のパス選択を示す説明図である。
【図22】従来の復号トレリスの例を示す説明図である。
【符号の説明】
101〜108…ACS回路(比較及び加算回路)、111,112…加算器、113…クリッピング回路、114…比較回路、115…セレクタ、401〜408…ACS回路、411,412…加算器、413…クリッピング回路、414…比較回路、415…セレクタ、1100…シンボルメトリック計算回路、1101…ブランチメトリック計算回路、1102…ACS回路、1103…正規化回路、1104…ステートメトリック記憶回路、1105…パスメモリ回路、1201〜1208…ACS回路(比較及び加算回路)、1211,1212…加算器、1213…クリッピング回路、1214…比較回路、1215…セレクタ、1500…メモリセル、1501…セレクタ、1502…レジスタ、1600〜1607,1610〜1617,1620〜1627,1630〜1637…メモリセル
Claims (12)
- 畳み込み符号の各遷移状態でのパスの選択情報を記憶して、その記憶された情報を打ち切り長分だけトレースバックすることでビタビ復号を行うビタビ復号方法において、
前記トレースバックを行うためにステートメトリックを計算する際に、あるステートに合流する2本のパスの尤度が等しい状態が連続する場合のパス選択を、トレースバック開始ステートから同じステートを連続してトレースしないことを特徴とする
ビタビ復号方法。 - 請求項1記載のビタビ復号方法において、
前記トレースバックを行うためにステートメトリックを計算する際に、あるステートに合流する2本のパスの尤度が等しい状態の場合のパス選択として、オール0ステートからトレースバックを開始する場合に、オール1ステート寄りのステートのパスを選択することを特徴とする
ビタビ復号方法。 - 請求項1記載のビタビ復号方法において、
前記トレースバックを行うためにステートメトリックを計算する際に、あるステートに合流する2本のパスの尤度が等しい状態の場合のパス選択として、オール1ステートからトレースバックを開始する場合に、オール0ステート寄りのステートのパスを選択することを特徴とする
ビタビ復号方法。 - 請求項1記載のビタビ復号方法において、
前記トレースバックを行うためにステートメトリックを計算する際に、あるステートに合流する2本のパスの尤度が等しい状態の場合のパス選択として、全てのステートを少なくとも1回通過するような方向に選択することを特徴とする
ビタビ復号方法。 - 受信した畳み込み符号の各遷移状態での尤度を計算する計算手段と、
該計算手段で計算された尤度に基づいて、最適なパスを選択するパス選択手段と、
該パス選択手段で選択されたパスの選択情報を記憶するパスメモリと、
前記パスメモリの記憶情報を、打ち切り長分だけトレースバックさせる制御を行い、トレースバックを行う際のパス選択として、あるステートに合流する2本のパスの尤度が等しい状態が連続する場合のパス選択を、トレースバック開始ステートから同じステートを連続してトレースしないように制御する制御手段とを備える
ビタビ復号装置。 - 請求項5記載のビタビ復号装置において、
前記制御手段は、あるステートに合流する2本のパスの尤度が等しい状態の場合のパス選択として、オール0ステートからトレースバックを開始する場合に、オール1ステート寄りのステートのパスを選択することを特徴とする
ビタビ復号装置。 - 請求項5記載のビタビ復号装置において、
前記制御手段は、あるステートに合流する2本のパスの尤度が等しい状態の場合のパス選択として、オール1ステートからトレースバックを開始する場合に、オール0ステート寄りのステートのパスを選択することを特徴とする
ビタビ復号装置。 - 請求項5記載のビタビ復号装置において、
前記制御手段は、あるステートに合流する2本のパスの尤度が等しい状態の場合のパス選択として、全てのステートを少なくとも1回通過するような方向に選択することを特徴とする
ビタビ復号装置。 - 畳み込み符号の各遷移状態でのパスの選択情報を記憶して、その記憶された情報を打ち切り長分だけトレースバックすることでビタビ復号を行う処理を実行するプログラムにおいて、
前記トレースバックを行うためにステートメトリックを計算する際に、あるステートに合流する2本のパスの尤度が等しい状態が連続する場合のパス選択を、トレースバック開始ステートから同じステートを連続してトレースしない処理を行うことを特徴とする
プログラム。 - 請求項9記載のプログラムにおいて、
前記トレースバックを行うためにステートメトリックを計算する際に、あるステートに合流する2本のパスの尤度が等しい状態の場合のパス選択として、オール0ステートからトレースバックを開始する場合に、オール1ステート寄りのステートのパスを選択する処理を行うことを特徴とする
プログラム。 - 請求項9記載のプログラムにおいて、
前記トレースバックを行うためにステートメトリックを計算する際に、あるステートに合流する2本のパスの尤度が等しい状態の場合のパス選択として、オール1ステートからトレースバックを開始する場合に、オール0ステート寄りのステートのパスを選択する処理を行うことを特徴とする
プログラム。 - 請求項9記載のプログラムにおいて、
前記トレースバックを行うためにステートメトリックを計算する際に、あるステートに合流する2本のパスの尤度が等しい状態の場合のパス選択として、全てのステートを少なくとも1回通過するような方向に選択する処理を行うことを特徴とする
プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002300793A JP4078941B2 (ja) | 2002-10-15 | 2002-10-15 | ビタビ復号方法、ビタビ復号装置及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002300793A JP4078941B2 (ja) | 2002-10-15 | 2002-10-15 | ビタビ復号方法、ビタビ復号装置及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004140452A JP2004140452A (ja) | 2004-05-13 |
JP4078941B2 true JP4078941B2 (ja) | 2008-04-23 |
Family
ID=32449382
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002300793A Expired - Fee Related JP4078941B2 (ja) | 2002-10-15 | 2002-10-15 | ビタビ復号方法、ビタビ復号装置及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4078941B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2595321A1 (en) * | 2011-11-16 | 2013-05-22 | MStar Semiconductor, Inc. | Tail-biting convolutional decoding apparatus and decoding method |
-
2002
- 2002-10-15 JP JP2002300793A patent/JP4078941B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004140452A (ja) | 2004-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0144058B2 (ja) | ||
JP2001156651A (ja) | ビタビ復号器 | |
JPH0722967A (ja) | ビタビ復号器の経路記憶装置 | |
US20050157823A1 (en) | Technique for improving viterbi decoder performance | |
US6408420B1 (en) | Viterbi decoding method and apparatus thereof | |
EP0653715A2 (en) | Digital signal processor | |
JP2003512756A (ja) | ビタビデコーダ用の高速acsユニット | |
JP3464121B2 (ja) | ビタビ復号方法及びビタビ復号装置 | |
JPH09232971A (ja) | ビタビ復号方法及びビタビ復号回路 | |
JP4078941B2 (ja) | ビタビ復号方法、ビタビ復号装置及びプログラム | |
KR100387089B1 (ko) | 브랜치 메트릭 계산 처리에서 감소된 비트수를 갖는비터비 디코더 | |
JP2000357971A (ja) | ビタビ復号装置 | |
US6910177B2 (en) | Viterbi decoder using restructured trellis | |
US5751734A (en) | Decoding method and apparatus using trace deletion for Viterbi algorithm | |
JP3236979B2 (ja) | ビタビ復号装置 | |
US11108415B2 (en) | Method of Viterbi algorithm and receiving device | |
JP4082158B2 (ja) | ビタビ復号方法、ビタビ復号装置及びプログラム | |
JPH07336239A (ja) | ビタビ復号器 | |
JPH07245567A (ja) | ビタビ復号演算装置 | |
KR0140779B1 (ko) | 비터비 복호기 | |
KR0169777B1 (ko) | 고속 비터비 복호기의 구현을 위한 정규화 방법 및 장치 | |
KR100594214B1 (ko) | 저전력 비터비 복호기 | |
JP3231647B2 (ja) | ビタビ復号器 | |
KR100359805B1 (ko) | 비터비 디코더 및 비터비 디코더의 디코딩 방법 | |
KR100430823B1 (ko) | 비터비 디코더에서 고속 파이프라인 구조의 트레이스백 동작을하 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050927 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080110 |
|
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: 20080115 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080128 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110215 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110215 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |