(57)【要約】【課題】従来のビタビ復号装置の回路規模を変更させることなく、正しく復号できないパスの種類を減らすことによりビット誤り率を改善する。【解決手段】畳み込み符号の各遷移状態でのパスの選択情報を記憶して、その記憶された情報を打ち切り長分だけトレースバックすることでビタビ復号を行う場合に、あるステートに合流する２本のパスの尤度が等しい状態が連続する場合のパス選択を、トレースバック開始ステートから同じステートを連続してトレースしないようにした。【選択図】　　　図１
2004140452.tif 000002
【特許請求の範囲】
【請求項１】
畳み込み符号の各遷移状態でのパスの選択情報を記憶して、その記憶された情報を打ち切り長分だけトレースバックすることでビタビ復号を行うビタビ復号方法において、
前記トレースバックを行うためにステートメトリックを計算する際に、あるステートに合流する２本のパスの尤度が等しい状態が連続する場合のパス選択を、トレースバック開始ステートから同じステートを連続してトレースしないことを特徴とする
ビタビ復号方法。
【請求項２】
請求項１記載のビタビ復号方法において、
前記トレースバックを行うためにステートメトリックを計算する際に、あるステートに合流する２本のパスの尤度が等しい状態の場合のパス選択として、オール０ステートからトレースバックを開始する場合に、オール１ステート寄りのステートのパスを選択することを特徴とする
ビタビ復号方法。
【請求項３】
請求項１記載のビタビ復号方法において、
前記トレースバックを行うためにステートメトリックを計算する際に、あるステートに合流する２本のパスの尤度が等しい状態の場合のパス選択として、オール１ステートからトレースバックを開始する場合に、オール０ステート寄りのステートのパスを選択することを特徴とする
ビタビ復号方法。
【請求項４】
請求項１記載のビタビ復号方法において、
前記トレースバックを行うためにステートメトリックを計算する際に、あるステートに合流する２本のパスの尤度が等しい状態の場合のパス選択として、全てのステートを少なくとも１回通過するような方向に選択することを特徴とする
ビタビ復号方法。
【請求項５】
受信した畳み込み符号の各遷移状態での尤度を計算する計算手段と、
該計算手段で計算された尤度に基づいて、最適なパスを選択するパス選択手段と、
該パス選択手段で選択されたパスの選択情報を記憶するパスメモリと、
前記パスメモリの記憶情報を、打ち切り長分だけトレースバックさせる制御を行い、トレースバックを行う際のパス選択として、あるステートに合流する２本のパスの尤度が等しい状態が連続する場合のパス選択を、トレースバック開始ステートから同じステートを連続してトレースしないように制御する制御手段とを備える
ビタビ復号装置。
【請求項６】
請求項５記載のビタビ復号装置において、
前記制御手段は、あるステートに合流する２本のパスの尤度が等しい状態の場合のパス選択として、オール０ステートからトレースバックを開始する場合に、オール１ステート寄りのステートのパスを選択することを特徴とする
ビタビ復号装置。
【請求項７】
請求項５記載のビタビ復号装置において、
前記制御手段は、あるステートに合流する２本のパスの尤度が等しい状態の場合のパス選択として、オール１ステートからトレースバックを開始する場合に、オール０ステート寄りのステートのパスを選択することを特徴とする
ビタビ復号装置。
【請求項８】
請求項５記載のビタビ復号装置において、
前記制御手段は、あるステートに合流する２本のパスの尤度が等しい状態の場合のパス選択として、全てのステートを少なくとも１回通過するような方向に選択することを特徴とする
ビタビ復号装置。
【請求項９】
畳み込み符号の各遷移状態でのパスの選択情報を記憶して、その記憶された情報を打ち切り長分だけトレースバックすることでビタビ復号を行う処理を実行するプログラムにおいて、
前記トレースバックを行うためにステートメトリックを計算する際に、あるステートに合流する２本のパスの尤度が等しい状態が連続する場合のパス選択を、トレースバック開始ステートから同じステートを連続してトレースしない処理を行うことを特徴とする
プログラム。
【請求項１０】
請求項９記載のプログラムにおいて、
前記トレースバックを行うためにステートメトリックを計算する際に、あるステートに合流する２本のパスの尤度が等しい状態の場合のパス選択として、オール０ステートからトレースバックを開始する場合に、オール１ステート寄りのステートのパスを選択する処理を行うことを特徴とする
プログラム。
【請求項１１】
請求項９記載のプログラムにおいて、
前記トレースバックを行うためにステートメトリックを計算する際に、あるステートに合流する２本のパスの尤度が等しい状態の場合のパス選択として、オール１ステートからトレースバックを開始する場合に、オール０ステート寄りのステートのパスを選択する処理を行うことを特徴とする
プログラム。
【請求項１２】
請求項９記載のプログラムにおいて、
前記トレースバックを行うためにステートメトリックを計算する際に、あるステートに合流する２本のパスの尤度が等しい状態の場合のパス選択として、全てのステートを少なくとも１回通過するような方向に選択する処理を行うことを特徴とする
プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、畳み込み符号の最尤復号に使用されるビタビ復号方法及びビタビ復号装置と、並びにこの復号処理を実行するプログラムに関する。
【０００２】
【従来の技術】
畳み込み符号を復号する方式の一つとして、ビタビ復号方式が知られている。このビタビ復号方式は、畳み込み符号に対する最尤復号方式であり、送信側のエンコーダで生成され得る符号系列の中から、受信された符号系列に最も近い系列（これを最尤パスという）を選ぶことで誤り訂正を行う。
【０００３】
図１１は、ビタビ復号方式を用いた従来のビタビ復号装置の一例を示すブロック図である。この図１１に示すビタビ復号装置は、受信データＳ１１００の各シンボル毎にシンボルメトリックを計算するシンボルメトリック計算回路１１００と、そのシンボル単位でのメトリック信号Ｓ１１０１から、ブランチ毎のメトリックを計算するブランチメトリック計算回路１１０１と、ブランチメトリック信号Ｓ１１０２と記憶されたステートメトリックとを比較して加算する演算回路（以下ＡＣＳ回路と称する）１１０２と、そのＡＣＳ回路１１０２での比較及び加算で得られたステートメトリックを正規化する正規化回路１１０３と、正規化回路１１０３の出力を記憶するステートメトリック記憶回路１１０４と、ＡＣＳ回路１１０２から出力されるパス選択情報を記憶するパスメモリ回路１１０５とを備えている。
【０００４】
ＡＣＳ回路１１０２では、ブランチメトリック計算回路１１０１から供給されるブランチメトリックと、ステートメトリック記憶回路１１０４に記憶されたステートメトリックとに基づいて、あるステートに合流する２本のそれぞれのパスに対し、ブランチメトリックとステートメトリックを加算して比較し、この比較結果に基づいて尤度の高いものを選択して、新ステートメトリックとする。その選択内容を、パス選択情報Ｓ１１０６として出力し、最小のステートメトリックをステートの番号を最尤ステート信号Ｓ１１０７として出力し、新たに得られたステートメトリックを新ステートメトリック出力Ｓ１１０３として出力する。パスメモリ回路１１０５は、ＡＣＳ回路１１０２が出力するパス選択情報Ｓ１１０６を記憶し、同時にＡＣＳ回路１１０２が出力する最尤ステート信号Ｓ１１０７に基づいて、最尤パスに対応する情報の内、打ち切り長と呼ばれる一定の長さ以前の情報を復号データＳ１１０８として出力する。
【０００５】
ここでパスの選択方法について、拘束長Ｋ＝４の場合を例として説明する。図１４の遷移ダイアグラム（以下トレリスと略す）に示す通り、各タイムスロット毎にすべてのステートには合流する２本のパスが存在する。そこで、あるステートに合流する２本のそれぞれのパスに対し、受信信号とパスとのハミング距離（ブランチメトリック）と、それまでのブランチメトリックの累積和（ステートメトリック）とを加算して比較を行い、この比較結果に基づいて尤度の高いものが選択される。
【０００６】
図１１の正規化回路１１０３は、ＡＣＳ回路１１０２から出力される新ステートメトリック信号Ｓ１１０３に対し、その値が予め設定されている範囲内の値になるように制御し、その範囲内に正規化された正規化ステートメトリック信号Ｓ１１０４として出力する。
【０００７】
正規化方法として、新ステートメトリック計算後に毎タイムスロット、全ステートメトリックの中から最小のステートメトリックを減算する方法や固定値を減算する方法がある。ビタビ復号装置を高速に動作させたい場合には、固定値を減算する方法の実装として、各ステートメトリックの最上位ビットの値が“１”になった場合にその最上位ビットを“０”に反転する方法が装置化が容易でありしばしば用いられる。
【０００８】
ステートメトリック記憶回路１１０４は正規化回路１１０３から供給される正規化ステートメトリック信号Ｓ１１０４を記憶し、これをステートメトリック信号Ｓ１１０５として出力してＡＣＳ回路１１０２に戻す。
【０００９】
パスメモリ回路１１０５はＡＣＳ回路１１０２から出力されるパス選択情報Ｓ１１０６を記憶し、同時にＡＣＳ回路１１０２から出力される最尤ステート信号Ｓ１１０７に基づいて、最尤パス対応する情報のうち、打ち切り長と呼ばれる一定の長さ以前の情報を復号データＳ１１０８として出力する。パスメモリ回路１１０５は、これらの処理の制御手段（図示せず）を必要とする。
【００１０】
ここでパスメモリ回路の実装に当たっては、レジスタ列を用いてパス選択内容を遷移させる方法と、ＲＡＭ等を用いてパス選択内容を記憶させ、それをトレースして復号する方法の２種類がある。以下この２つの方法の説明を行う。
【００１１】
従来のビタビ復号装置においては、パスメモリ回路はレジスタ列を用いてパス選択内容を遷移させる方法が一般的であった。以下、この方法をレジスタ遷移法と呼ぶ。
【００１２】
レジスタ遷移法においては、セレクタとレジスタからなるメモリセルをトレリス上に配置し、ＡＣＳ回路から出力されるパス選択情報に基づいてレジスタの内容を遷移させる。メモリセルの構造を図１５に、拘束長Ｋ＝４の場合のメモリセルの配置を図１６に示す。図１５に示したように、それぞれのメモリセル１５００は、２つの入力を選択するセレクタ１５０１と、そのセレクタ１５０１で選択されたデータを記憶するレジスタ１５０２とで構成してあり、そのレジスタ１５０２に記憶されたデータを、次段のメモリセルに送る。
【００１３】
図１６に示したように、各メモリセル１６００，１６０１，‥‥を配置する際には、図１４に示したトレリスに従った配置としてある。即ち、各タイムスロットに相当する位置に、ステート数だけ（ここでは８個）だけメモリセルが配置してあり、各メモリセルの出力は図１４に示したトレリスに従った順序で、次のタイムスロットに相当する位置の２つのメモリセルに送られる。図１６では、４つのタイムスロット位置までのメモリセル１６００〜１６０７，１６１０〜１６１７，１６２０〜１６２７，１６３０〜１６３７を示してある。こうすることによって、各メモリセルのレジスタ内には各ステートからの生き残りパスに対応する情報が保存されることになる。実際にはメモリセルは打ち切り長分の段数が配置され、最終段の出力のうち最尤ステートの出力を選ぶことによって最尤パスに対応する情報を選択し、復号データを出力する。
【００１４】
レジスタ遷移法は高速動作が可能であるというメリットがある反面、打ち切り長が長くなると回路規模が膨大になるというデメリットがある。特に最近では打ち切り長が１００を越えるような用途も出てきたために、その回路規模の大きさは深刻な問題となっている。
【００１５】
この問題に鑑みて、近年では、ＲＡＭ等を用いてパス選択情報を記憶し、その情報をトレースすることで復号する方法が盛んに研究されている。以下、この方法をトレースバック法と呼ぶ。
【００１６】
トレースバック法におけるトレースの動作を拘束長Ｋ＝４の場合を例として説明する。図１７においてステート００１からトレースする場合を考える。ステート００１への遷移の可能性のあるステートはステート０００とステート１００である。ここでパスメモリには、ステート０００側のパスを選んであったときには０、ステート１００側のパスを選んであったときには１（すなわち前ステートの最上位ビット）が記憶してある。また、どちらから遷移する場合も入力は１であり、これはステート００１の最下位ビットで表現されている。
【００１７】
以上より、トレースの動作は以下のように行えばよい。即ち、図１８に示すように、現在トレースを行っているステートの最下位ビットを復号ビットとし、次にトレースするステートの番号は現トレースステートの最上位ビットから下位２ビット目までに、パスメモリ内のビットを新たに上位ビットとして付け加えることで生成する。この動作によって最小ステートメトリックをとるステートから、選択されたパスを順次遡ることができる。
【００１８】
一方、打ち切り長の十分長いトレースバック法においては、ステートメトリックのビット幅に制限がなくその値がクリップされないと仮定できる理想的なビタビ復号装置であれば、トレースバックの開始ステートを任意に設定しても最尤復号が保証されることがＧ．Ｄ．Ｆｏｒｎｅｙの論文（　“Ｔｈｅ　Ｖｉｔｅｒｂｉ　Ａｌｇｏｒｉｔｈｍ　”，Ｐｒｏｃｅｅｄｉｎｇ　ｏｆ　ｔｈｅ　ＩＥＥＥ，Ｖｏｌ．６１，Ｎｏ３，Ｍａｒ．１９７３　）に記載されており、通常はオール０ステート（ステート００）からトレースバックを開始する。
【００１９】
【発明が解決しようとする課題】
しかし、ビタビ復号装置の実装を考える場合、当然のことながら、ステートメトリックのビット幅には制限が存在する。このとき、例えば各ステートメトリックの最上位ビットが１となった場合にその最上位ビットを反転する方法による正規化を行うと、正規化が行われないままステートメトリックがクリップされた値を保持し続けるステートが発生し、最尤復号できないパターンが存在するという問題がある。
【００２０】
以下、その例を図面を参照しながら説明する。図１９は、拘束長Ｋ＝４の畳み込み符号化器の例を示した図であり、図２０は、その拘束長Ｋ＝４の畳み込み符号の状態遷移図である。図１９に示すように、拘束長Ｋ＝４の畳み込み符号化器は、３段に接続されたレジスタ１９０１，１９０２，１９０３と、各レジスタ１９０１〜１９０３の入出力を図１９に示すように加算する加算器１９１１〜１９１７で構成されて、３ビットのデータｃ０，ｃ１，ｃ２を得、この３ビットのデータを畳み込み符号とするものである。
【００２１】
このような畳み込み符号をビタビ復号する場合に、ここでは、ステートメトリックのビット幅を６ビットとし、ブランチメトリックのビット幅を５ビットと設定する。正規化は各ステートメトリックの最上位ビットが１になった場合にその最上位ビットを反転して行うものとする。また、ＡＣＳ回路内でステートメトリックはオーバーフローを起こさないように“３１”（５ビットで表現される最大値）の値でクリッピングが行われているものとする。また、符号語の１シンボル当たりのシンボルメトリックは、符号語と受信語が一致していれば０、不一致ならば１５と計算するものとする。
【００２２】
図２１は、同値のステートメトリックが合流した際のパス選択についての説明図である。ステート０００からトレースバックを開始し、ある時刻においてステート０１１に到達した状態を例に考える。
【００２３】
ステート０１１への遷移の可能性のあるステートはステート００１とステート１０１である。１時刻前のステート００１のステートメトリックが６３、ステート１０１のステートメトリックが４６であったとし、それぞれのステート０１１への遷移パスのブランチメトリックが１５と３０とであったとする。このとき、ステート０１１におけるステートメトリックはステート００１からの遷移によるメトリック、ステート１０１からの遷移によるメトリックがともにクリッピングされて６３となり、ＡＣＳ回路内の比較部ではこれらを比較することになる。従来の構成では、常時オール０ステート（ステート０００）寄りのステート００１が選択される。
【００２４】
このような同値のステートメトリックの合流が存在する場合の実際のトレリスを図２２に示す。
【００２５】
いま正しいパスがオール１のパスであるとして、打ち切り長は十分に長いとすると、オール１のパスを受信し続けた場合、トレリスのステートメトリックはある定常状態にあると考えてよい。これをオール０ステート（ステート０００）からトレースバックを開始して復号を行うと、図２２に示すようなトレースバックを行い、本来復号されるべき最尤パスを復号できないことがある。
【００２６】
これは、ステート０００とステート１００からステート０００に合流する２本のパスによって計算されるステートメトリックがともに６３という値にクリップされて同値のステートメトリックとしてステート０００で合流しているため、パスの選択が正常に行われないことに起因している。
【００２７】
ここで、従来のビタビ復号装置におけるＡＣＳ回路の内部構成を詳細に見てみる。図１２は従来のビタビ復号装置におけるＡＣＳ回路の構成例を示したものである。
【００２８】
図１１に示したＡＣＳ回路１１０２は、各ステートに対応したＡＣＳ回路１２０１〜１２０８によって構成され、以下のように構成されて処理を行う。ステート０００に対応するＡＣＳ回路１２０１は、ステート０００から遷移するパスとステート１００から遷移するパスがあり、ステート０００のステートメトリックＳ１２０１とステート０００から遷移したときのパスのブランチメトリックＳ１２０３とを、加算器１２１０で加算してＳ１２０５を計算し、ステート１００のステートメトリックＳ１２０２とステート１００から遷移したときのパスのブランチメトリックＳ１２０４とを、加算器１２１１で加算してＳ１２０６を計算する。これをクリッピング回路１２１３によってステートメトリックのビット幅で決まる最大値でそれぞれクリッピングを行った後、比較回路１２１４で尤度の高い（メトリックの小さい）方を判断して、その判断されたパスの信号をセレクタ１２１５で選択させ、新ステートメトリックＳ１２１０とパス選択情報Ｓ１２１１とを出力する。同様に、ステート００１に対応するＡＣＳ回路１２０２，‥‥、ステート１１１に対応するＡＣＳ回路１２０８も、各ステートに合流する２本のパスのメトリックを比較し、新ステートメトリックとパス選択情報とを出力する。
【００２９】
図１３はこのＡＣＳ回路の動作を示したフローチャートである。このフローチャートに従って順に説明すると、現ステートメトリックにブランチメトリックを加算し（ステップＳ１３０１）、その加算された値が、ステートメトリックのビット幅で決まる最大値を超えていた場合に、その最大値にクリッピングさせる処理を、クリッピング回路１２１３で行う（ステップＳ１３０２）。その後、比較回路１２１４で、次の時刻で合流するステートのメトリックの大小を比較し（ステップＳ１３０３）、次時刻で合流するステートのメトリックが等しい値であるか否か判断する（ステップＳ１３０４）。ここで、合流するステートのメトリックが等しい値である場合には、オール０ステートに近い方のステートのメトリックを選択する（ステップＳ１３０６）。また、合流するステートのメトリックが等しい値でない場合には、尤度の高い方のメトリックを選択する（ステップＳ１３０５）。
【００３０】
このような従来の処理においては、同値のステートメトリックが、あるステートで合流した場合には一般的に常に上側つまりオール０ステート（ステート０００）側のパスが選択されるように実装が行われる。これは各ステートに対応するＡＣＳ回路内の全ての比較回路において、ＡとＢの大小比較を「Ａ＞Ｂ」のように等号を付けずに構成することに対応している。
【００３１】
図２２の例を振り返ってみると、ＡＣＳ回路内において、ステート０００からステート０００につながるパスによって計算されるステートメトリックが６３＋１５＝７８となりクリップされて６３となる。一方、ステート１００からステート０００につながるパスによって計算されるステートメトリックが６３＋３０＝９３あるいは６２＋３０＝９２となりこちらもクリップされて６３となる。ＡＣＳ回路は、この合流する２つのメトリックを比較し尤度の高い方を選択して次のタイムスロットにおけるステート０００でのステートメトリックとするわけであるが、同値である６３同士の比較により、上側すなわちステート０００からのパスを選択することになる。このため、打ち切り長を十分長くしても、トレースバックをオール０ステート（ステート０００）から開始してしまうと最尤復号ができないことになる。
【００３２】
上述したようなパス選択を行う場合、オール１のパス以外にも正常に復号できない例が存在する。
【００３３】
以上述べたように、ステートメトリック計算時に、あるステートに合流する２本のパスの尤度が等しい場合のパス選択をオール０ステート側に行う従来のビタビ復号装置においては、オール１のパスのように、正しく復号できないパスが存在するという問題があった。
【００３４】
本発明はかかる点に鑑みてなされたものであり、従来のビタビ復号装置の回路規模を変更させることなく、正しく復号できないパスの種類を減らすことによりビット誤り率を改善することを目的とする。
【００３５】
【課題を解決するための手段】
本発明は、畳み込み符号の各遷移状態でのパスの選択情報を記憶して、その記憶された情報を打ち切り長分だけトレースバックすることでビタビ復号を行う場合に、あるステートに合流する２本のパスの尤度が等しい状態が連続する場合のパス選択を、トレースバック開始ステートから同じステートを連続してトレースしないようにしたものである。
【００３６】
このようにしたことで、あるステートに合流する２本のパスの尤度が等しい状態が連続する場合のパス選択処理が変更されるため、正しいステートが選ばれる可能性が高くなり、正しく復号できる可能性が高くなる。
【００３７】
【発明の実施の形態】
以下、図１〜図３を参照して本発明の第１の実施の形態について説明する。
【００３８】
本例においては、従来例で説明した畳み込み符号をビタビ復号する際に、ビタビ復号装置内でトレースバックによりビタビ復号する構成としてある。ビタビ復号するデータは、例えば何らかの伝送路を介して受信したデータであるとする。即ち、ビタビ復号装置の基本的な構成については、従来例として図１１に示したビタビ復号装置を使用する。そして本例においては、図１１に示したビタビ復号装置の内の、計算されたブランチメトリックと記憶されたステートメトリックとを比較して加算する演算回路であるＡＣＳ回路１１０２でのパス選択の制御を行う制御手段での処理を、従来とは異なるようにしたものである。この例では、トレースバックを行う際には、そのトレースバックを開始させるステートは、後述する復号トレリスに示される最も上側のステート０００に設定してある。
【００３９】
図１は本例のＡＣＳ回路の構成を示した図である。この例では、従来例として説明した畳み込み符号と同様に、拘束長Ｋ＝４つまり状態数（ステート数）＝８の符号に対するビタビ復号装置に適用したものであり、ステート数に対応した数のＡＣＳ回路が用意されている。即ち、ステート０００に対応したＡＣＳ回路１０１、ステート００１に対応したＡＣＳ回路１０２、‥‥ステート１１１に対応したＡＣＳ回路１０８の８個のＡＣＳ回路が用意されている。また、ここではステートメトリックのビット幅を６ビット，ブランチメトリックのビット幅を５ビットとする。
【００４０】
以下、本例のＡＣＳ回路について説明すると、本例のＡＣＳ回路は、同値のステートメトリックが、あるステートで合流した場合に、オール１ステート（ステート１１１）寄りのパス選択を行うＡＣＳ回路である。なお、ここではトレースバックを開始するステートを、オール０ステートとしてある。
【００４１】
図１に示したステート０００に対応するＡＣＳ回路１０１は、ステート０００から遷移するとステート１００から遷移するパスがあり、ステート０００のステートメトリックＳ１０１とステート０００から遷移したときのパスのブランチメトリックＳ１０３とを加算器１１１で加算して、加算信号Ｓ１０５を計算する。また、ステート１００のステートメトリックＳ１０２とステート１００から遷移したときパスのブランチメトリックＳ１０４とを加算器１１２で加算して、加算信号Ｓ１０６を計算する。
【００４２】
計算された信号Ｓ１０５，Ｓ１０６は、クリッピング回路１１３に供給し、ステートメトリックのビット幅で決まる最大値でそれぞれクリッピングを行い、クリッピングされた信号Ｓ１０７，Ｓ１０８を得る。ここでは、ステートメトリックのビット幅を６ビットとしてあるので、加算値が６３を超える場合に６３にクリッピングされる。
【００４３】
クリッピング回路１１３で処理された信号Ｓ１０７，Ｓ１０８は、比較回路１１４で尤度の高い（メトリックの小さい）方を判断して、その判断されたパスの信号をセレクタ１１５で選択させ、新ステートメトリックＳ１１０とパス選択情報Ｓ１１１とを出力する。同様に、ステート００１に対応するＡＣＳ回路１０２，‥‥、ステート１１１に対応するＡＣＳ回路１０８も、各ステートに合流する２本のパスのメトリックを比較し、新ステートメトリックとパス選択情報とを出力する。
【００４４】
ここで、各ＡＣＳ回路１０１〜１０８内の比較回路（ＡＣＳ回路１０１の場合には比較回路１１４）では、同値のステートメトリックが、あるステートで合流した場合には、常時オール１ステート（ステート１１１）側のパス（つまり後述する復号トレリスの図に示す下側）を選択する。
【００４５】
このため、比較回路１１４などの全てのＡＣＳ回路１０１〜１０８内の比較回路では、２つの入力をＡとＢとしたとき、そのＡとＢの大小比較を「Ａ≧Ｂ」のように等号を付けて比較することで対応できる。従来の場合には、図１２に示す比較回路１２１４のように「Ａ＞Ｂ」と比較していた。
【００４６】
図２は、本例のＡＣＳ回路の動作を示したフローチャートである。このフローチャートに従って順に説明すると、現ステートメトリックにブランチメトリックを加算し（ステップＳ２０１）、その加算された値が、ステートメトリックのビット幅で決まる最大値を超えていた場合に、その最大値にクリッピングさせる処理を、クリッピング回路１１３で行う（ステップＳ２０２）。その後、比較回路１１４で、次の時刻で合流するステートのメトリックの大小を比較し（ステップＳ２０３）、次時刻で合流するステートのメトリックが等しい値であるか否か判断する（ステップＳ２０４）。ここで、合流するステートのメトリックが等しい値である場合には、２つのステートの内で、オール１ステートに近い方のステートのメトリックを選択する（ステップＳ２０６）。また、合流するステートのメトリックが等しい値でない場合には、尤度の高い方（即ちの値の小さい方）のメトリックを選択する（ステップＳ２０５）。
【００４７】
このような処理を行った場合の復号トレリスの例を、図３に示す。この例では、従来例として説明した例の復号トレリス（図２２）と同じ条件の符号を受信した例としてあり、正しいパスがオール１のステートのパスであるとして、打ち切り長は十分に長いとする。尤度の設定条件についても、図２２の例と同じであり、具体的には符号語の１シンボル当たりのシンボルメトリックは、符号語と受信語が一致していれば０、不一致ならば１５と計算し、ステートメトリックは６３でクリッピングされるものとする。トレースバックを開始させるステートは図中の最も上側であるステート０００に設定してある。
【００４８】
図３の例では、ステート０００からトレースバックを開始させた場合、そのステート０００に合流する２つのパスの尤度であるステートメトリックが６３で等しくなるが、図２のフローチャートに示した条件で、下側のパスが選択されるのでステート１００が選択される。次の段では、ステート１００に合流する２つのパスのステートメトリックが６３で等しくなり、下側のパスが選択されるのでステート１１０が選択される。さらに、次の段では、ステート１１０に合流する２つのパスの内、一方のステート０１１のパスのステートメトリックが６３で、他方のステート１１１のパスのステートメトリックが３１で、ブランチメトリックが３１であるので、加算値は６２になり、６３と６２の比較で、ステート１１１が選択される。
【００４９】
そして、ステート１１１が選択されると、以後はステート１１１からのパスの値の方が小さくなるので、このステート１１１が選択され続ける。従って、本例の場合には、正しいステートであるステート１１１とは最も離れた位置であるステート０００からトレースバックを開始させたのに、正しいパスが選択されるようになる。この場合には、ＡＣＳ回路内の比較回路部に、等号を加えた比較処理により選択結果を制御する構成であるため、従来に比べて実質的に回路規模の変更はないことが分かる。このように、本例の処理を行うことで、受信値が同じ値で連続するような場合でも、正しいステートにたどり着くことができ、正しく復号できないパスの種類を減らすことができる。
【００５０】
次に、本発明の第２の実施の形態を、図４〜図１０を参照して説明する。
【００５１】
本例においても、上述した第１の実施の形態と同様に、畳み込み符号をビタビ復号する際に、ビタビ復号装置内でトレースバックによりビタビ復号する構成としてある。ビタビ復号するデータは、例えば何らかの伝送路を介して受信したデータであり、ビタビ復号装置の基本的な構成については、従来例として図１１に示したビタビ復号装置を使用し、図１１に示したビタビ復号装置の内の、計算されたブランチメトリックと記憶されたステートメトリックとを比較して加算する演算回路であるＡＣＳ回路１１０２でのパス選択の制御を、従来とは異なるようにした点についても、第１の実施の形態と同じである。トレースバックを開始させるステートが、最も上側のステート０００である点も、第１の実施の形態と同じである。
【００５２】
図４は本例のＡＣＳ回路の構成を示した図である。本例でも、拘束長Ｋ＝４つまり状態数（ステート数）＝８の符号に対するビタビ復号装置に適用したものであり、ステート数に対応した数のＡＣＳ回路が用意されている。即ち、ステート０００に対応したＡＣＳ回路４０１、ステート００１に対応したＡＣＳ回路４０２、‥‥ステート１１１に対応したＡＣＳ回路４０８の８個のＡＣＳ回路が用意されている。また、ここではステートメトリックのビット幅を６ビット，ブランチメトリックのビット幅を５ビットとする。
【００５３】
図４に示した本例のＡＣＳ回路の構成について説明すると、ステート０００に対応するＡＣＳ回路４０１は、ステート０００から遷移するとステート１００から遷移するパスがあり、ステート０００のステートメトリックＳ４０１とステート０００から遷移したときのパスのブランチメトリックＳ４０３とを加算器４１１で加算して、加算信号Ｓ４０５を計算する。また、ステート１００のステートメトリックＳ４０２とステート１００から遷移したときパスのブランチメトリックＳ４０４とを加算器４１２で加算して、加算信号Ｓ４０６を計算する。
【００５４】
計算された信号Ｓ４０５，Ｓ４０６は、クリッピング回路４１３に供給し、ステートメトリックのビット幅で決まる最大値でそれぞれクリッピングを行い、クリッピングされた信号Ｓ４０７，Ｓ４０８を得る。ここでは、ステートメトリックのビット幅を６ビットとしてあるので、加算値が６３を超える場合に６３にクリッピングされる。
【００５５】
クリッピング回路４１３で処理された信号Ｓ４０７，Ｓ４０８は、比較回路４１４で尤度の高い（メトリックの小さい）方を判断して、その判断されたパスの信号をセレクタ４１５で選択させ、新ステートメトリックＳ４１０とパス選択情報Ｓ４１１とを出力する。
【００５６】
ここまでは第１の実施の形態と同じ構成であるが、本例の場合には、各ステートのＡＣＳ回路４０１〜４０８で、尤度が等しい場合（即ち同値のステートメトリックが合流した場合）に、選択するパスの方向を、ある規則（具体的には尤度が等しい場合に全てのステートを少なくとも１回ずつ選択することになるような方向の設定）に基づいてステート毎に個別に設定してある。
【００５７】
即ち、図５に示すように、ステート数に対応して８個のＡＣＳ回路４０１〜４０８がある場合に、ステート０００に対応したＡＣＳ回路４０１ではオール１ステート寄り、ステート００１に対応したＡＣＳ回路４０２ではオール０ステート寄り、ステート０１０に対応したＡＣＳ回路４０３ではオール１ステート寄り、ステート０１１に対応したＡＣＳ回路４０４ではオール０ステート寄り、ステート１００に対応したＡＣＳ回路４０５ではオール０ステート寄り、ステート１０１に対応したＡＣＳ回路４０６ではオール１ステート寄り、ステート１１０に対応したＡＣＳ回路４０７ではオール１ステート寄り、ステート１１１に対応したＡＣＳ回路４０８ではオール０ステート寄り、という具合に各ステートで独立にパス選択を行う制御構成としてある。
【００５８】
これは各ステートに対応するＡＣＳ回路内の比較回路において、オール０ステート寄りを選択する場合は、比較するメトリックをＡとＢとしたとき、ＡとＢの大小比較を「Ａ＞Ｂ」のように等号を付けずに比較する構成で対応しており、一方、オール１ステート寄りを選択する場合は、ＡとＢの大小比較を「Ａ≧Ｂ」のように等号を付けて比較する構成で対応している。
【００５９】
この図５に示したような比較制御構成は、合流する２つのパスの尤度が等しい状態が続いたときに、全てのステートを少なくとも１回ずつ通過するような方向のメトリックを選択するための構成であると言える。
【００６０】
図６は、本例のＡＣＳ回路の動作を示したフローチャートである。このフローチャートに従って順に説明すると、現ステートメトリックにブランチメトリックを加算し（ステップＳ６０１）、その加算された値が、ステートメトリックのビット幅で決まる最大値を超えていた場合に、その最大値にクリッピングさせる処理を、クリッピング回路で行う（ステップＳ６０２）。その後、比較回路で、次の時刻で合流するステートのメトリックの大小を比較し（ステップＳ６０３）、次時刻で合流するステートのメトリックが等しい値であるか否か判断する（ステップＳ６０４）。ここで、合流するステートのメトリックが等しい値である場合には、全ステートを１回ずつ通過するような方向のメトリックを選択する（ステップＳ６０６）。また、合流するステートのメトリックが等しい値でない場合には、尤度の高い方（即ちの値の小さい方）のメトリックを選択する（ステップＳ６０５）。
【００６１】
このような処理を行った場合の復号トレリスの例を、図７に示す。この例では、従来例として説明した例の復号トレリス（図２２）と同じ条件の符号を受信した例としてあり、正しいパスがオール１のステートのパスであるとして、打ち切り長は十分に長いとする。尤度の設定条件についても、図２２の例と同じであり、具体的には符号語の１シンボル当たりのシンボルメトリックは、符号語と受信語が一致していれば０、不一致ならば１５と計算し、ステートメトリックは６３でクリッピングされるものとする。トレースバックを開始させるステートは図中の最も上側であるステート０００に設定してある。
【００６２】
同値のステートメトリックが合流した場合に選択されるパスの方向は、個別に設定してあるため、ステート０００からトレースバックを開始させて、同値のステートメトリックとなる状態が続いても、パスの選択状態は、下側のパスが選ばれる場合と、上側のパスが選ばれる場合とがある。そして、そのようにパスが選択されている間に、正しいステート１１１にたどり着き、本来復号されるべきパスをトレースバックするようになる。
【００６３】
この第２の実施の形態の処理を行う場合には、第１の実施の形態で対処できないような畳み込み符号の正しい復号についても可能になる。図８，図９のトレリスは、正しいパスが１０００１０００１０００‥‥と続くパスを受信し続けた場合の例である。図８は、この場合に第１の実施の形態で説明した処理を行った場合の例である。この図８に示すように、トレースバックを開始するステートがオール０ステート（ステート０００）である場合に、合流する２本のパスの尤度が等しいときに、開始ステートとは最も離れたステートであるオール１ステートに近い側のステートを選ぶようにした場合に、クリッピングされたメトリックが続くような場合には、選択されるステートが下側になって行き、ステート０００から太線で示す経路となり、最終的にステート１１１で張りついてしまう。
【００６４】
ここで、図８の例での実際のステートと受信値の変化が、ステート０１０からトレースバックした場合に正しくなるパス（ステート０１０から太線で示す経路）であり、この経路はステート１１１にはならない状態が継続するので、このステート０１０からトレースバックされる経路と、ステート０００からトレースバックされる経路とが、全く一致しない状態となってしまう。このようなことが発生することは、実際の受信状態では稀ではあるが、あり得ないことではない。
【００６５】
これに対して、本例（第２の実施の形態の例）の構成で、図８と同じ条件の受信信号をトレースバックした場合には、図９に示すようなトレースバックとなる。図９の例では、オール０ステートからトレースバックを開始させてあるが、その位置から４段前にトレースバックさせた位置で、正しいステートであるステート０１０が選ばれるようになり、以後は受信エラーがない限りは、ステートメトリックの比較で、正しいステートが選ばれ続ける。
【００６６】
なお、全てのステートのメトリックが等しい場合に、全てのステートを少なくとも１回ずつ通過するようなパス選択例としては、例えば図１０に示すような選択が考えられる。この図１０の例は、ステート０００からトレースバックを開始させた例であり、そのトレースバックで選ばれる順に説明すると、ステート０００ではステート１００を選び、ステート１００ではステート０１０を選び、ステート０１０ではステート１０１を選び、ステート１０１ではステート１１０を選び、ステート１１０ではステート１１１を選び、ステート１１１ではステート０１１を選び、ステート０１１ではステート００１を選び、ステート００１ではステート０００を選ぶようにすることで、全てのステートを１回ずつ選んだことになる。
【００６７】
このように第２の実施の形態で説明した処理を行うことで、正しく復号できないパスの種類をより効果的に減らすことができる。この第２の実施の形態の構成の場合にも、ＡＣＳ回路内の比較回路部の一部に、等号を加えた比較処理により選択結果を制御する構成であるため、従来に比べて実質的に回路規模を変更することがないことが分かる。
【００６８】
なお、以上説明した第１，第２の実施の形態では、拘束長Ｋ＝４、ステートメトリックのビット幅＝６ビット、ブランチメトリックのビット幅＝５ビットの場合の処理を例としたが、これらはこの値に限らず、任意の値とすることができる。正規化方法に関しても、各ステートメトリックの最上位ビットが全て１になった場合にその最上位ビットを反転するステートメトリック正規化方法にのみ限定されるものではなく、他の正規化方法を利用した場合の適用も考えられる。また、ＡＣＳ回路内のクリッピングと比較の順次を入れ替えて行った場合に本発明を適用してもよい。
【００６９】
さらに、以上の例は、トレースバック開始ステートをオール０ステート（ステート０００）の場合を例としたが、任意のステートからトレースバックを開始する場合に本発明を適用してもよい。例えば第１の実施の形態では、トレースバックを開始するステートをオール０ステート（ステート０００）として、合流する２本のパスの尤度が等しいときに、開始ステートとは最も離れたステートであるオール１ステートに近い側のステートを選ぶようにしたが、トレースバックを開始するステートがオール１ステート（ステート１１１）である場合には、合流する２本のパスの尤度が等しいときに、開始ステートとは最も離れたステートであるオール０ステートに近い側のステートを選ぶようにすれば、同様の効果が得られる。
【００７０】
また、第１の実施の形態と第２の実施の形態に示した処理は、それぞれ異なる処理ではあるが、いずれの実施の形態の場合にも、トレースバックを行うためにステートメトリックを計算する際に、あるステートに合流する２本のパスの尤度が等しい状態が連続する場合のパス選択を、トレースバック開始ステートから同じステートを連続してトレースしない処理であり、このように同じステートを連続してトレースしない処理として、第１，第２の実施の形態で示した処理以外の処理を行うように構成しても良い。
【００７１】
また、ここまで説明したビタビ復号装置は、ハードウェアとして構成された回路で復号処理を行う装置としたが、例えばコンピュータ装置に、同様の処理を実行するプログラムを実装させて、そのコンピュータ装置が有する演算手段と記憶手段を使用して、同様のビタビ復号を行うように構成しても良い。
【００７２】
【発明の効果】
以上述べたように、本発明によれば、ステートメトリック計算時に、あるステートに合流する２本のパスの尤度が等しい場合のパス選択方法を変更することで従来のビタビ復号装置の回路規模を変更させることなく、正しく復号できないパスの種類を減らすことができるため、復号後のビット誤り率を改善することができるという効果が得られる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態によるビタビ復号装置のＡＣＳ回路の例を示すブロック図である。
【図２】図１例の構成でのＡＣＳ回路の動作を示すフローチャートである。
【図３】第１の実施の形態でトレースバックを行った場合の復号トレリスを示す説明図である。
【図４】本発明の第２の実施の形態によるビタビ復号装置のＡＣＳ回路の例を示すブロック図である。
【図５】図４例での全てのＡＣＳ回路の比較回路での比較例を示した構成図である。
【図６】図４例の構成でのＡＣＳ回路の動作を示すフローチャートである。
【図７】第２の実施の形態でトレースバックを行った場合の復号トレリスを示す説明図である。
【図８】復号トレリスの一例を示す説明図である。
【図９】第２の実施の形態でトレースバックを行った場合の別の復号トレリスを示す説明図である。
【図１０】全ステートを１回ずつ通過するパス選択の例を示した説明図である。
【図１１】従来のビタビ復号装置の構成例を示すブロック図である。
【図１２】従来のＡＣＳ回路の構成例を示すブロック図である。
【図１３】従来のＡＣＳ回路の動作例を示すフローチャートである。
【図１４】拘束長Ｋ＝４の畳み込み符号の場合の遷移ダイアグラムである。
【図１５】レジスタ遷移法におけるメモリセルの構成例を示したブロック図である。
【図１６】レジスタ遷移法におけるメモリセルの配置例を示した構成図である。
【図１７】トレースバック法におけるトレースの原理を示した説明図である。
【図１８】トレースバック法におけるトレース方法を示した説明図である。
【図１９】拘束長Ｋ＝４の畳み込み符号化器の例を示したブロック図である。
【図２０】拘束長Ｋ＝４の畳み込み符号の状態遷移図である。
【図２１】同値のステートメトリックが合流した際のパス選択を示す説明図である。
【図２２】従来の復号トレリスの例を示す説明図である。
【符号の説明】
１０１〜１０８…ＡＣＳ回路（比較及び加算回路）、１１１，１１２…加算器、１１３…クリッピング回路、１１４…比較回路、１１５…セレクタ、４０１〜４０８…ＡＣＳ回路、４１１，４１２…加算器、４１３…クリッピング回路、４１４…比較回路、４１５…セレクタ、１１００…シンボルメトリック計算回路、１１０１…ブランチメトリック計算回路、１１０２…ＡＣＳ回路、１１０３…正規化回路、１１０４…ステートメトリック記憶回路、１１０５…パスメモリ回路、１２０１〜１２０８…ＡＣＳ回路（比較及び加算回路）、１２１１，１２１２…加算器、１２１３…クリッピング回路、１２１４…比較回路、１２１５…セレクタ、１５００…メモリセル、１５０１…セレクタ、１５０２…レジスタ、１６００〜１６０７，１６１０〜１６１７，１６２０〜１６２７，１６３０〜１６３７…メモリセル
【図１】
2004140452.tif 000003
【図２】
2004140452.tif 000004
【図３】
2004140452.tif 000005
【図４】
2004140452.tif 000006
【図５】
2004140452.tif 000007
【図６】
2004140452.tif 000008
【図７】
2004140452.tif 000009
【図８】
2004140452.tif 000010
【図９】
2004140452.tif 000011
【図１０】
2004140452.tif 000012
【図１１】
2004140452.tif 000013
【図１２】
2004140452.tif 000014
【図１３】
2004140452.tif 000015
【図１４】
2004140452.tif 000016
【図１５】
2004140452.tif 000017
【図１６】
2004140452.tif 000018
【図１７】
2004140452.tif 000019
【図１８】
2004140452.tif 000020
【図１９】
2004140452.tif 000021
【図２０】
2004140452.tif 000022
【図２１】
2004140452.tif 000023
【図２２】
2004140452.tif 000024