ビタビ復号法は、畳み込み符号の復号方法の1つであり、特に移動通信システムでは多く採用されている方法である。
ビタビ復号法を説明する前に、まず、畳み込み符号化について、図9を参照して説明する。畳み込み符号化には、通常の畳み込み符号化(線形畳み込み符号化)と、巡回畳み込み符号化がある。
ここで、「巡回畳み込み符号化」は、例えば、移動通信分野における特定の制御信号の伝送に用いられている。本発明は、この「巡回畳み込み符号」の復号化技術に関する。
ここで、「巡回畳み込み符号化」とは、初期状態と終了状態が同一の状態となるように情報ビット列Uを入力して符号語を生成する符号化をいい、巡回入力畳み込み符号化と呼ばれることもある。
以下、順を追って説明する。
図9は畳み込み符号化器の例であり、この符号化器の入力側に情報ビット列Uを入力することで、出力側に符号化率r=1/2、拘束長k=3、2個の生成多項式がそれぞれG1(X)=X2+1及びG2(X)=X2+X+1の畳み込み符号化が行われた符号化ビット列Xが得られる。
畳み込み符号化器には、シフトレジスタSR1とSR2が従属接続され、SR2には情報ビット列Uが順次入力され、出力側では1ビットの情報ビット入力に対し、2ビットの符号化ビット出力(X1、X2)が得られる。
このとき、シフトレジスタSR1、及びSR2のビット内容(SR1、SR2)を状態と呼び、図9の畳み込み符号化器では次の4つ(S0〜S3)のいずれかの状態をとりうる。
S0=(0、0)
S1=(0、1)
S2=(1、0)
S3=(1、1)
一般に、1ビット入力かつ符号化率r=1/2の畳み込み符号化器の状態数は、拘束長kを用いて2k-1状態となる。すなわち、状態数は拘束長に従って指数関数的に増大する。
図9の符号化器の初期状態と終了状態はそれぞれ4状態考えられるが、初期状態と終了状態が同一の状態となるように情報ビット列Uを入力して符号語を生成するとき、これを「巡回畳み込み符号化」と呼ぶ。
例えば、情報ビット列Uがnビット(U[0]〜U[n−1])である場合、図9の符号化器の初期状態と終了状態を同一とするためには、開始時点SにおいてSR1にU[n−2]、SR2にU[n−1]を予めセットしておき、その後U[0]〜U[n−1]を順次入力していくことにより巡回畳み込み符号が得られる。
また、現時点の符号化器の状態に対して、情報ビット(“0”または“1”)を1ビット入力すると、符号化ビット出力及び次時点の符号化器の状態が一意に定まる。この畳み込み符号化器の生成規則を図10に示す。
例えば、現時点の符号化器の状態がS3で、ビット“0”が入力された場合には、符号化ビット出力は“10”であり、次時点の符号化器の状態はS2となる。
図11は図9の畳み込み符号化器の生成規則の状態遷移をトレリス図によって示したものである。図11のトレリス図において、実線のブランチは入力の情報ビットが“0”であることを示し、点線のブランチは入力の情報ビットが“1”であることを示す。さらに、ブランチ部分には符号化ビット出力(X1、X2)を示す。ただし、a=(0、0)、b=(0、1)、C=(1、0)、d=(1、1)である。
いま、例として、入力の情報ビット列Uが6ビットであり、U[0:5]=(1、1、0、0、1、0)である場合の巡回畳み込み符号化のトレリス図を図12に示す。
図12において、横方向は符号化器への入力タイミングの時点であり(時点Sは初期時点、時点Eは終了時点)、縦方向は符号化器の状態である。このとき、符号化器の時点Sでの初期状態は(U[4]、U[5])であるからS2となっており、巡回畳み込み符号化を行っていることから、時点Eでの終了状態もS2となり、時点Sと時点Eは同一状態になる。また、図12の最下段が畳み込み符号化結果の符号化ビット列Xであり、X[0:11]=(0、0、1、0、1、0、1、1、1、1、0、1)となる。
このように畳み込み符号化されたビット列を復号する方法のひとつにビタビ復号がある。ビタビ復号は、トレリス図上で出力されうるパタンと受信パタンとを時系列順に逐次比較し、より尤もらしいパタンを候補として残しつつ、最終的に誤りが最も少ないパタンを復号データとするアルゴリズムである。
以下、巡回畳み込み符号に対する従来のビタビ復号方法を図13、図14および図15を参照しながら簡単に説明する。図13は、時点tから時点t+1にかけて状態Siが状態Siおよび状態Sjに状態遷移するときのトレリス図、図14は、従来のビタビ復号方法におけるACS処理の詳細説明図、図15は、従来のビタビ復号方法を適用するトレリス図の例である。
ビタビ復号は、ACS(Add−Compare−Select:加算−比較−選択)処理とトレースバック処理の組み合わせによって行われる。
ACS処理では、パスの尤度(確からしさ)の指標としてパスメトリックが用いられる。パスメトリックは、各時点の各状態に至るまでのパスが経由するブランチのブランチメトリックの累積加算値であり、その値が小さいほどパスが確からしいと判定する。ブランチメトリックは、ノード間の状態遷移で期待される出力ビットと受信ビットとの誤りビット数(ハミング距離:硬判定)や、信号空間上の距離(軟判定)などが用いられる。
まず、ACS処理の説明の前に、以下の説明で用いる記号について図13を用いて定義する。図13は、時点tから時点t+1にかけて状態Siが状態Si及び状態Sjに状態遷移するときのトレリス図を示したものである。いま、時点tにおける状態Siを状態Si(t)と記述する。図13中の記号PMはパスメトリックであり、PMi(t)は、状態Si(t)における生き残りパスのパスメトリックである。また、図13中の記号BMはブランチメトリックであり、BMij(t)は、状態Si(t)が状態Sj(t+1)に状態遷移するときのブランチメトリックである。
なお、パスメトリックとブランチメトリックには、PMj(t+1)=PMi(t)+BMij(t)なる関係が成り立つ。
次に、ACS処理について、図14及び図15を用いて説明する。図14及び図15の各ノード内の数値は各時点各状態におけるパスメトリックである。
ここでは、受信データは巡回畳み込み符号化されており、且つ符号化器の初期状態は不明であることを前捏とし、ブランチメトリックにはハミング距離を用いて説明する。また、受信ビット列Yは、Y[0:11]=(0、0、1、0、1、1、1、1、1、0、0、1)とする。
まず、時点0(=時点S)から時点1にかけて行われるACS処理について、図14を用いて説明する。時点0では、符号化器の初期状態が不明であるので、各状態のパスメトリック(尤度)は全て同一であり、PM0(0)=PM1(0)=PM2(0)=PM3(0)=0である。
はじめに、状態S0(1)におけるパスメトリックPM0(1)を算出する。状態S0(1)に遷移してくるパスは、状態S0(0)及び状態S2(0)からのパスである。
状態S0(0)からのブランチメトリックは、符号化器からの期待出力が“00”であるのに対し、受信ビットがY[0:1]=“00”であるから、ハミング距離を用いて、BM00(0)=0となり、1つ目の仮のパスメトリックPMaは、PMa=PM0(0)+BM00(0)=0+0=0と記憶される。
一方、状態S2(0)からのブランチメトリックは、符号化器からの期待出力が“11”であるのに対し、受信ビットが“00”であるから、ハミング距離を用いて、Bm20(0)=2となり、2つ目の仮のパスメトリックPMbは、PMb=PM2(0)+BM20(0)=0+2=2と記憶される。以上がACS処理の加算(Add)である。
次に、2つの仮のパスメトリックの大きさを比較(Compare)する。PMa及びPMbを比較すると、PMaの方が小さいため、状態S0(0)からのパスの尤度は状態S2(0)からのパスの尤度より大きいため、状態S0(1)では、状態S0(0)からのパスを選択(Select)し、PM0(1)=PMa=0となる。このとき、選択されたパスを生き残りパスと呼び、パス選択情報は各時点各状態の全てにおいて記憶しておく。図14において×印が打たれたパスは破棄されたパスである。
次に、状態S1(1)におけるパスメトリックPM1(1)を算出する。上記と同様に考えることで、状態S0(0)から至るパスのパスメトリックPMa、及び状態S2(0)から至るパスのパスメトリックPMbはそれぞれ、
PMa=PM0(0)+BM01(0)=0+2=2(符号化器の期待出力“11”)
PMb=PM2(0)+BM21(0)=0+0=0(符号化器の期待出力“00”)
となり、PMbの方が小さいため、生き残りパスはS2(0)からのパスとなり、PM1(1)=PMb=0となる。
同様に、状態S2(1)におけるパスメトリックPM2(1)を算出する。上記と同様に考えることで、状態S1(0)から至るパスのパスメトリックPMa、及び状態S3(0)から至るパスのパスメトリックPMbはそれぞれ、
PMa=PM1(0)+BM12(0)=0+1=1(符号化器の期待出力“01”)
PMb=PM3(0)+BM32(0)=0+1=1(符号化器の期待出力“10”)
となる。このときPMa=PMbとなるが、ここでは状態番号が小さい状態S1(0)から至るパスを生き残りパスとし、PM2(1)=1となる。なお、ここでの生き残りパス選択方法は、ランダムに選択する方法も考えられる。
同様に、状態S3(1)におけるパスメトリックPM3(1)を算出する。上記と同様に考えることで、状態S1(0)から至るパスのパスメトリックPMa、及び状態S3(0)から至るパスのパスメトリックPMbはそれぞれ、
PMa=PM1(0)+BM13(0)=0+1=1(符号化器の期待出力“10”)
PMb=PM3(0)+BM33(0)=0+1=1(符号化器の期待出力“01”)
となる。このときPMa=PMbとなるが、ここでは状態番号が小さい状態S1(0)から至るパスを生き残りパスとし、PM3(1)=1となる。なお、ここでの生き残りパスの選択方法は、ランダムに選択する方法も考えられる。
以上が、時点0(=時点S)から時点1にかけて行われるACS処理である。
以下、時点1から時点2にかけてのACS処理、時点2から時点3にかけてのACS処理を順次実行していき、時点5から時点6(=時点E)にかけてのACS処理までを終了すると、図15のようなトレリス図が得られる。図15において太線が生き残りパスである。なお、パス選択情報はSi(t)(i=0〜3、t=1〜6)の各時点各状態の全てにおいて記憶しておく。
最終時点である時点EまでACS処理が終了した後、トレースバックによって復号ビット列を得る。一般の畳み込み符号化では、送信側でテールビットと呼ばれる既知ビットを((拘束長k)−1)ビットだけ入力することで、ACS処理の最終時点における状態が1つに収束する。したがって、トレースバックの開始状態はテールビットパタンによって一意に決定されうる。
一方、巡回畳み込み符号化では、最終時点Eにおける状態は不明であるが、初期時点Sと最終時点Eの状態番号が同一になるようにしている。すなわち、トレースバックの開始時点(時点E)とトレースバックの終了時点(時点S)における状態が同一でなければ、復号ビット列には誤りビットが必ず含まれることになる。
(第1の従来例)
以下、第1の従来例について、巡回畳み込み符号の従来のトレースバックについて図15を参照しながら説明する。なお、説明においては、初期時点(時点S)は“ACS演算開始時点”及び“トレースバック終了時点”と同意であり、最終時点(時点E)は“ACS演算終了時点”及び“トレースバック開始時点”と同意である。
巡回畳み込み符号のトレースバックで最終時点Eにて最もパスメトリックが小さい(尤度が高い)状態を選択し、この状態から処理を開始する。図15では時点Eにおいて状態S3のパスメトリックが“1”であり、最も尤度が高いため、状態S3からトレースバックを開始する。
状態S3から時点の逆順に(時点Eから時点Sに向かって)生き残りパス(図15中の太線)を辿り、実線のブランチについては“0”、破線のブランチについては“1”を復号ビットとすることによって、復号ビット列D[0:5]が得られる。しかしながら、状態S3からトレースバックを行った場合には、トレースバックの終了時点(時点S)において状態S1に到達することから、状態S3≠状態S1により、得られた復号ビット列には誤りが含まれる。
このため、トレースバックの開始状態を再度選択して、処理をやり直す。時点Eにおいて状態S3の次に尤度が高い状態は、状態S2(パスメトリック“2”)であるので、2回目のトレースバックは、状態S2から開始する。状態S2からトレースバックを行うと、トレースバックの終了時点(時点S)において状態S2に到達することから、復号ビット列が正しいための必要条件が得られる。さらに、この復号ビット列に対して誤りの有無があるかどうかチェックを行い、誤りがなければこれを復号ビット列として採用する。復号ビット列の誤り判定は、送信側で冗長に付加されたパリティピットやCRC(Cyclic Redundancy Check)等のチェックビットによって行えるようになっているのが一般的である。
上記で誤りがないと判定された場合、このビタビ復号方法では、トレースバック回数は2回となる。このケースではトレースバックは2回で済んだが、この第1の従来例のように尤度だけを頼りにトレースバックをリトライする方法では、トレースバックを何回も行わなければ正しい復号ビットが得られないことが多くなる。これは、巡回畳み込み符号のビタビ復号では、トレースバックを開始する状態の決め方が難しいという点に起因している。
いま、もしトレースバックの開始時点(時点E)と終了時点(時点S)において同一の状態になるパスが最初から存在しない場合には、状態数分のトレースバックを実行しなければならず、結果として正しいパスが存在しないということになってしまう。
また、トレースバックの回数の増加を回避するために、トレースバック回数を制限する方法をとると、正しいパス(復号ビット列)があるにも関わらず、トレースバックを行わないがために、正しい結果が破棄されてしまうという問題点がある。
(第2の従来例)
これに対し、特許文献1に開示されたビタビ復号方法は、1回目のトレースバックを行い、復号ビット列に誤りがあった場合には、そのトレースバックの終了時点の状態を2回目のトレースバックの開始状態にし、再度トレースバックを行うことで、少ないトレースバック回数で正しい復号ビット列が得られるというものであった。
以下、第2の従来例について、図15のトレリス図を用いて説明する。時点Eにおいて状態S3のパスメトリックが“1”で最も小さい(尤度が高い)ため、状態S3から1回目のトレースバックを開始する。この1回目のトレースバックでは、終了時点(時点S)において状態S1に到達することから、状態S3≠状態S1により、得られた復号ビット列には誤りが含まれる。このため2回目のトレースバックを行う。
2回目のトレースバックでは、1回目のトレースバックの終了時点(時点S)の状態S1を新しい開始状態としてトレースバックを行う。この2回目のトレースバックでは、終了時点(時点S)において状態S2に到達することから、状態S1≠状態S2により、得られた復号ビット列には誤りが含まれる。このため3回目のトレースバックを行う。
3回目のトレースバックでは、2回目のトレースバックの終了時点(時点S)の状態S2を新しい開始状態としてトレースバックを行う。この3回目のトレースバックでは、終了時点(時点S)において開始状態と同一の状態S2に到達することから、復号ビット列が正しいための必要条件が得られる。さらに、この復号ビット列に対して誤りの有無があるかどうかチェックを行い、誤りがなければこれを復号ビット列として採用する。
上記のように、条件によっては、特許文献1に開示されたビタビ復号方法によっても、トレースバック回数が増えてしまうことがある。また、トレースバック回数の制限を行えば、正しいパス(復号ビット列)があるにも関わらず、トレースバックを行わないがために、正しい結果が破棄されてしまうという場合がある。
また、第1及び第2の従来例のビタビ復号方法では、トレースバック回数の増大によって、ハードウェア実現の場合には回路規模の増大してしまい、ソフトウェア実現の場合には演算量が増大してしまうため、結果として消費電流の増加を招いてしまう。
また、巡回畳み込み符号化では、トレースバックの開始時点(時点E)と終了時点(時点S)における状態が異なる場合には、復号ビット列が正しいことはないが、従来例のビタビ復号方法では、そのような場合にもトレースバックを行ってしまうため、処理そのものが無駄になることが多い。
特開平9−232971号公報
以下、本発明の実施の形態を、図面を参照して説明する。まず、本発明の実施形態における復号化方法の特徴を、図16および図17を用いて説明する。図16は、対比例としての従来の復号方法の問題点を示す図であり、図17は、本発明の実施形態の復号方法の特徴を説明するための図である。図16および図17では、説明の便宜を考慮して、トレリス図における一つの生き残りパスを簡略化して描いてある。なお、図16および図17のトレリス図では、縦軸として2つの状態S0、S1が示され、横軸として時点1〜時点4が示されている。
図16に示すように、従来の復号方法によって巡回畳み込み符号の復号化を行う場合、トレースバックを行わないと、その生き残りパスの、時刻t1における状態が判明しない。
図16の場合、時刻t1(ACS開始時点)の状態がS1であり、時刻t4(ACS終了時点)の状態はS0であり、不一致であるから、巡回畳み込み符号の条件を満たさない。すなわち、このパスは必ず誤りを含んでいる。したがって、トレースバックで得られた復号データは廃棄されることになり、結果的に、無駄なトレースバック処理が行われたことになる。
一方、図17の本発明の実施形態の復号方法では、トレリス図上で、生き残りパスが更新される毎に、そのパスの時刻t1における状態を示す情報を、そのパスと関連付けして保存していく。図17において、時刻t4の状態(S0)の下に示される記号[S1]は、保存されている時刻t1における状態を示している。
図17では、トレースバックをしなくても、時刻t1における状態(S1)と時刻t4における状態(S0)が不一致であることが判明する。これにより、このパスには誤りが含まれることがわかり、無駄なトレースバックを回避することができる。つまり、このようなACS開始時点および終了時点における状態が不一致である生き残りパスは、トレースバックの対象から外し、一致が確認されたパスのみをトレースバックの候補とすることで、トレースバックの対象となるパスの数を絞り込むことができる。そして、その候補のパスが複数ある場合には、パスメトリックがより小さなパス(より尤度が高いパス)を優先してトレースバックを行うことで、効率的に復号化処理を行うことができる。
このように、従来例では、「トレースバック処理が、ACS開始時点の状態を特定する手段としても使われていた」ため、無駄なトレースバック処理が発生する確率が高い。これに対し、本発明では、「ACS開始時点の状態を各生き残りパスと関連づけて保存する構成を採用した」ため、ACS開始時点の状態をトレースバック前に特定することができるようになり、これにより、無駄なトレースバックを回避できるようになり、復号化処理の大幅な効率化が達成される。
(第1の実施形態)
まず、図1〜図6を参照しながら、本発明の第1の実施形態の説明をする。図1(a)は誤り訂正符号化装置のブロック図、図1(b)は本発明の実施形態の誤り訂正復号化装置のブロック図、図2は本発明の実施形態のビタビ復号方法におけるACS処理を詳細に説明するための図、図3は本発明の実施形態のビタビ復号方法におけるトレースバック処理の処理手順を示すフローチャートである。
なお、トレースバック処理は、ハードウェアによる回路やソフトウェアによって実現することが可能である。
また、図4は本実施形態のビタビ復号方法及び誤り訂正復号化回路を適用するトレリス図の例1、図5は本実施形態を適用するトレリス図の例2、図6は本実施形態を適用するトレリス図の例3をそれぞれ示す。
図1(a)において、参照符号101は誤り訂正符号化装置、102は誤り訂正復号化装置である。誤り訂正符号化装置101は、情報ビットにCRC符号等の誤り検出符号を付加する誤り検出符号付加回路103と、誤り検出符号を付加したビット列を巡回畳み込み符号化して送信する誤り訂正符号化回路104を備える。
また、図1(b)において、誤り訂正復号化装置102は、ブランチメトリック計算回路106、パスメトリックメモリ107、加算器108、比較器109、開始状態メモリ110、選択器111、パスメモリ112およびトレースバック制御回路113(誤り検出回路114を内蔵する)を備える。なお、ACS回路105は加算器108、比較器109及び選択器111を有して構成されている。
開始状態メモリ110が設けられたことによって、ACS開始時点の状態を、各生き残りパスと関連づけて保存できるようになっている点が、この誤り訂正符号化装置102の大きな特徴である。
ブランチメトリック計算手段の機能を有するブランチメトリック計算回路106には、例えばブランチメトリックにハミング距離を用いた硬判定を採用する場合には、処理時点毎に受信データの1時点分のビットが入力される。
いま、ブランチメトリック計算回路106が上述の図9の符号化器に対応するものであれば、各処理時点毎に2ビット(X1、X2に対応)が入力される。ブランチメトリック
計算回路106では、現時点の受信ビットの内容に基づいてブランチメトリックが計算され、加算器108に入力される。
なお、本実施形態ではハミング距離を用いた硬判定によって説明するが、ブランチメトリック計算回路に軟判定情報を用いる場合には、ブランチメトリック計算回路106には、処理時点毎に受信データ1時点分の軟判定情報が入力される。
パスメトリックメモリ107には、各状態について、現時点までの生き残りパスのパスメトリックが格納されている。
加算器108では、パスメトリックメモリ107から読み出した各状態の現時点までの生き残りパスのパスメトリックに、ブランチメトリック計算回路106で計算されたブランチメトリックが加算され、次時点の各状態に至るパスメトリックが算出され、比較器109及び選択器111に入力される。
なお、次時点のある状態に至るパスは複数存在するため、加算器108から出力されるパスメトリックは1時点1状態の演算ごとに複数存在する。
比較器109では、各状態について、加算器108から入力された複数のパスメトリックが比較され、最も尤度の高いパスの選択信号が選択器111に出力されると共に、そのパスの選択信号がパスメモリ112に格納される。
開始状態記憶手段の機能を有する開始状態メモリ110には、各状態について、現時点までの生き残りパスのACS演算開始時点(時点S)における状態番号が格納されている。
生き残りパス選択手段の機能を有する選択器111では、各状態について、比較器109から入力されたパス選択信号に基づいて、加算器108から入力されたパスメトリックの中から最も尤度の高いパスが選択され、選択されたパスメトリックはパスメトリックメモリ107に出力され、パスメトリックメモリ107の内容は更新される。
さらに、選択器111では、各状態について、比較器109から入力されたパス選択信号に基づいて、選択されたパスの現時点のACS演算開始時点(時点S)の状態番号が、開始状態メモリ110から読み出され、この状態番号は、次時点のACS演算開始時点(時点S)の状態番号とされ、開始状態メモリ110の内容が更新される。
パスメモリ112には、上述のように、各時点でのパス選択信号が格納されている。
ACS演算が終了し、全状態・全時点のパス選択信号がパスメモリ112に格納され、全状態のACS演算開始時点(時点S)の状態番号が開始状態メモリ110に格納された後、トレースバック手段であるトレースバック制御回路113の動作が開始され、復号ビット列が得られる。トレースバックは、開始状態メモリ110に格納された内容と、パスメモリ112に格納された内容に基づき行われる。
次に、以上のような各機能部106〜113からなる誤り訂正復号化装置の動作、すなわち本実施形態のビタビ復号方法について、ACS処理とトレースバック処理に分けて説明する。
ここでは、受信データは巡回畳み込み符号化されており、且つ符号化器の初期状態は不明であることを前提とし、ブランチメトリックにはハミング距離を用いて説明する。
また、送信側の入力の情報ビット列Uは、U[0:5]=(1、1、0、0、1、0)の6ビットとし(誤り訂正復号化装置102側では未知)、巡回畳み込み符号化の方法(生成多項式等)は背景技術に示したものと同−とする。さらに受信ビット列Yは硬判定されており、Y[0:11]=(0、0、1、0、1、1、1、1、1、0、0、1)の12ビットとする。
まず、時点0(=時点S)から時点1にかけて行われるACS処理について、図2のトレリス図を参照しながら説明する。
図2の各ノード内の数値は各時点各状態におけるパスメトリックである。また、各ノード下の括弧内の数値*は、各時点各状態における開始状態メモリ110の内容であり、選択されたパスのACS演算開始時点(時点S)の状態番号を示している。
時点0では、符号化器の初期状態が不明であるので、各状態の尤度は全て同−であり、PM0(0)=PM1(0)=PM2(0)=PM3(0)=0である。また、状態iにおける開始状態メモリ110の内容をS、S[i]と表すと、時点0の開始状態番号は状態番号そのものであるから、SS[0]=0、SS[1]=1、SS[2]=2、SS[3]=3が開始状態メモリ110の初期値となる。
以下、ACSの説明では、ブランチメトリックの計算、パスメトリックの計算及び生き残りパスの選択の方法については、背景技術の説明で図14を用いて行っており全く同一であるため省略する。
本実施形態が図14の背景技術と異なるのは、選択器111によって、具備された開始状態メモリ110の内容が更新される点である。
時点1の状態S0においては、時点0(=時点S)で状態S0を開始状態とするパスを選択していることから、時点1における新たな開始状態メモリ110の内容は、SSR[0]=SS[0]=0となる。
時点1の状態S1においては、時点0(=時点S)で状態S2を開始状態とするパスを選択していることから、時点1における新たな開始状態メモリ110の内容は、SSR[1]=SS[2]=2となる。
時点1の状態S2においては、時点0(=時点S)で状態S1を開始状態とするパスを選択していることから、時点1における新たな開始状態メモリ110の内容は、SSR[2]=SS[1]=1となる。
時点1の状態S3においては、時点0(=時点S)で状態S1を開始状態とするパスを選択していることから、時点1における新たな開始状態メモリ110の内容は、SSR[3]=SS[1]=1となる。
このようにして、時点1の全ての状態S0〜S3についての新たな開始状態メモリの内容を抽出した後に、開始状態メモリ110の内容SS[0:3]を更新する。すなわち、SS[0]=SSR[0]=0、SS[1]=SSR[1]=2、SS[2]=SSR[2]=1、SS[3]=SSR[3]=1とする。
以上が、時点0(=時点S)から時点1にかけて行われるACS処理である。
以下、時点1から時点2にかけてのACS処理、時点2から時点3にかけてのACS処理を順次実行していき、時点5から時点6(=時点E)にかけてのACS処理までを終了すると、図4のようなトレリス図が得られる(ACS処理の比較(Compare)において、到達する2つのパスのパスメトリックが同じ値であるときには、状態番号がより小さい状態から至るパスを生き残りパスとした場合)。
図4おける太線の矢印は生き残りパスである。なお、パス選択情報はSi(t)(i=0〜3、t=1〜6)の各時点各状態の全てにおいて記憶しておく。また、ACS処理終了後の開始状態メモリ内容は、時点6(=時点E)を参照することで、SS[0]=2、SS[1]=2、SS[2]=2、SS[3]=1となっている。
最終時点である時点EまでACS処理が終了した後、トレースバック処理が開始され、トレースバック処理の結果として復号ビット列が得られる。巡回畳み込み符号化では、最終時点Eにおける状態は不明であるが、初期時点Sと最終時点Eの状態番号が同一になるようにしている。
すなわち、少なくともトレースバック開始時点(時点E)とトレースバックの終了時点(時点S)における状態が同一でなければ、復号ビット列には誤りビットが必ず含まれることになる。
従って、ACS処埋が終了した後の各状態iに対する開始状態メモリ110の内容SS[i]について、SS[i]=i(i=0〜3)が満たされていない生き残りパスについては、トレースバックをするまでもなく誤ったパスであることがわかるため、トレースバックの必要はない。
以下、トレースバック制御回路113におけるトレースバック処理について、図3のトレースバック処理の処理手順を示すフローチャートを用いて説明する。
まず、各状態iについて、開始状態SS[i]を調べる。SS[i]=iであれば、当該状態に至るパスの初期時点Sと最終時点Eの状態が同じであり、パスが正しいための必要条件を満たしている。そこで、状態iをトレースバック開始状態の候補とする(ステップS301)。
次に、Nに上記で候補としたトレースバック開始状態の候補数をセットする(ステップS302)。
もし、Nが0であれば、正しいパスが存在しないため、当該フレームはエラーとし、トレースバックを行わずに処理を終了する(ステップS303、ステップS309)。
ステップS303でNが0以外であれば、ステップS304〜ステップS307のkのループを実行する。
まず、トレースバック開始状態の候補のN状態の中から、パスメトリックが最も小さい状態からトレースバックを開始する(ステップS304でk=1、ステップS305)。
上記トレースバックによって得られたビット列に付加されている誤り検出符号(例えばCRC符号)を用いて、該ビット列が正しいかどうか調べる(ステップS306)。
ステップS306で、該ビット列に誤りがないと判定された場合には、このトレースバックで得られたビット列を復号ビット列Dとし、処理を終了する(ステップS308)。
ステップS306で、該ビット列に誤りがあると判定され、かつk<Nの場合には、kのループの先頭に戻り、トレースバック開始状態の候補のN状態の中から、パスメトリックが次に小さい状態からトレースバックを開始する(ステップS304でk=2、ステップS305)。
ステップS306で誤りが存在する限りは、最大でN回、ステップS304〜ステップS307のkのループを実行する。
ステップS306で、該ビット列に誤りがあると判定され、かつk=Nの場合には、正しいパスが存在しないため、当該フレームはエラーとし(ステップS309)、処理を終了する。
以上が、トレースバック制御回路113におけるトレースバック処理であるが、これを図4のトレリス図(本発明の実施形態のビタピ復号方法及び誤り訂正復号化回路を適用するトレリス図の例1)に当てはめ、図3のフローチャートを実行すると次のようになる。
まず、ステップS301の処理では、最終時点Eの各状態S0〜S3について、ACS一演算開始時点(時点S)の開始状態SSを調べる。時点Eで状態S0に到達したパスのACS開始状態は、開始状態メモリSS[0]=2を参照することで状態S2であるが、S0≠S2であり状態番号が異なるため、状態S0はトレースバック開始の候補状態とはしない。
時点Eで状態S1に到達したパスのACS開始状態は、開始状態メモリSS[1]=2を参照することで状態S2であるが、S1≠S2であり状態番号が異なるため、状態S1はトレースバック開始の候補状態とはしない。
時点Eで状態S2に到達したパスのACS開始状態は、開始状態メモリSS[2]=2を参照することで状態S2であり、状態番号がともにS2で一致しているため、状態S2をトレースバック開始の候補状態とする。
時点Eで状態S3に到達したパスのACS開始状態は、開始状態メモリSS[3]=1を参照することで状態S1であるが、S3≠S1であり状態番号が異なるため、状態S3はトレースバック開始の候補状態とはしない。
上記よりトレースバック開始状態の候補は、状態S2の1つであるから、トレースバック開始候補数はN=1となる(ステップS302)。
以下、ステップS303以降を実行すると、トレースバック開始状態の候補は状態S2のみであるため、状態S2からトレースバックを行うと、6ビットのビット列(1、1、0、0、1、0)が得られる。このビット列を、図1のトレースバック制御回路113に内蔵される誤り検出回路114が、誤り検出符号を用いてチェックし、誤りがなければ、この6ビットを復号ビット列Dとする。
実際、入力の情報ビット列Uは、U[0:5]=(1、1、0、0、1、0)であったので、この復号ビット列は正しいものとなっている。
以上の説明のように、図4のトレリス図に本実施形態を適用すると、トレースバックを行う回数は1回である。これに対し、背景技術で説明した第1の従来例(時点Eでパスメトリックが小さい状態から優先的にトレースバックする)ではトレースバック回数が2回、第2の従来例ではトレースバック回数が3回であったため、本発明の実施形態の方法ではトレースバック回数を減らすことができ、短時間で正しい復号ビット列を得ることが可能になることがわかる。
さて、図4のトレリス図は、ACS処理の比較(Compare)において、到達する2つのパスのパスメトリックが同じ値であるときには、状態番号がより小さい状態から至るパスを生き残りパスとした場合に得られるものであった。このように複数のパスの尤度(パスメトリック)が同じときの生き残りパスの選択方法としては、ランダムに選択する方法も考えられる。
図5のトレリス図(本実施形態のビタビ復号方法及び誤り訂正復号化回路を適用するトレリス図の例2)は、複数のパスの尤度が同じときの生き残りパスがランダムに選択された場合の例であり、図4と比較して時点5から時点6(時点E)に至る過程のみが異なっている。
すなわち、図5において、時点6状態S0に至る2つのパスにおいて、時点5状態S0から至るパスのパスメトリックは3、時点5状態S2から至るパスのパスメトリックも3であり同じ値であることから、生き残りパスがランダムに選択され、結果として時点5状態S2から至るパスが生き残りパスとなったものである(図4では、時点5状態S0から至るパスを生き残りパスとしている)。
この図5についても本発明の実施形態のトレースバック処理に当てはめ、図3のフローチャートを実行すると次のようになる。
まず、ステップS301の処理では、最終時点Eの各状態S0〜S3について、ACS演算開始時点(時点S)の開始状態SSを調べる。時点Eで状態S0に到達したパスのACS開始状態は、開始状態メモリSS[0]=0を参照することで状態S0であり、状態番号がともにS0で一致しているため、状態S0をトレースバック開始の候補状態とする。
時点Eで状態S1に到達したパスのACS開始状態は、開始状態メモリSS[1]=2を参照することで状態S2であるが、S1≠S2であり状態番号が異なるため、状態S1はトレースバック開始の候補状態とはしない。
時点Eで状態S2に到達したパスのACS開始状態は、開始状態メモリSS[2]=2を参照することで状態S2であり、状態番号がともにS2で一致しているため、状態S2をトレースバック開始の候補状態とする。
時点Eで状態S3に到達したパスのACS開始状態は、開始状態メモリSS[3]=1を参照することで状態S1であるが、S3≠S1であり状態番号が異なるため、状態S3はトレースバック開始の候補状態とはしない。
上記よりトレースバック開始状態の候補は、状態S0と状態S2の2つであるから、トレースバック開始候補数はN=2となる(ステップS302)。
以下、ステップS303以降を実行する。
ステップS305を初めて実行するとき、k=1である。このときステップS305は、『トレースバック開始状態の候補の(N=)2状態の中で、パスメトリックが(k=)1番目小さい状態からトレースバックを開始する』となる。トレースバック開始状態の候補は状態S0と状態S2であるが、状態S0に至るパスのパスメトリックは“3”であるのに対し、状態S2に至るパスのパスメトリックは“2”であるから、よりパスメトリックの小さい状態S2からトレースバックを開始すればよい。
状態S2からトレースバックを行うと、6ビットのビット列(1、1、0、0、1、0)が得られる。このビット列を誤り検出符号によってチェックし誤りがなければ、この6ビットを復号ビット列Dとする。実際、入力情報ビット列Uは、U[0:5]=(1、1、0、0、1、0)であったので、この復号ビット列は正しいものとなっている。
以上の説明では、トレースバック回数は1回であったが、もし状態S0(状態S0に至るパスのパスメトリックは“3”)と状態S2(状態S2に至るパスのパスメトリックは“2”)のトレースバック開始候補のうち、パスメトリックが大きい状態S0からトレースバックを開始すると、トレースバック回数は2回となってしまい、回数が増えてしまう(状態S0に至るパスから得られるビット列は、ステップS306の誤り検出で誤りありと判定され、k=2のステップS305で状態S2から2回目のトレースバックが行われる)。
このように、トレリス図上の生き残りパスについて、ACSの開始時点Sと終了時点Eの状態が同一であるパスが複数存在する場合には、ビタビ復号においてはパスメトリックが小さい(尤度が高い)パスの方が正しい確率が高いという性質を利用し、その状態に至るパスを優先的にトレースバックすることで、より短時間で正しい復号ビット列が得ることが可能となる。
さらに、別の例として、受信ビット列Yが硬判定されており、Y[0:11]=(0、0、1、0、1、1、1、1、1、0、1、0)の12ビットが誤り訂正復号化装置102に入力され、トレリス図が図6(本発明の実施形態のビタビ復号方法及び誤り訂正復号化回路を適用するトレリス図の例3)に示すものになった場合を考える(入力の情報ビット列Uや畳み込み符号の生成多項式等はこれまでの説明と同一である)。なお、図6はACS処理の比較(Compare)において、到達する2つのパスのパスメトリックが同じ値であるときには、状態番号がより小さい状態から至るパスを生き残りパスとした場合に得られるものである(図6は図4と比較してY[10:11]のみが違うため、時点5から時点6(時点E)に至る過程のみが異なっている)。
この図6についても本発明の実施形態のトレースバック処理に当てはめ、図3のフローチャートを実行すると次のようになる。
まず、ステップS301の処理では、最終時点Eの各状態S0〜S3について、ACS演算開始時点(時点S)の開始状態SSを調べる。時点Eで状態S0に到達したパスのACS開始状態は、開始状態メモリSS[0]=2を参照することで状態S2であるが、S0≠S2であり状態番号が異なるため、状態S0はトレースバック開始の候補状態とはしない。
時点Eで状態S1に到達したパスのACS開始状態は、開始状態メモリSS[1]=2を参照することで状態S2であるが、S1≠S2であり状態番号が異なるため、状態S1はトレースバック開始の候補状態とはしない。
時点Eで状態S2に到達したパスのACS開始状態は、開始状態メモリSS[2]=1を参照することで状態S1であるが、S2≠S1であり状態番号が異なるため、状態S2はトレースバック開始の候補状態とはしない。
時点Eで状態S3に到達したパスのACS開始状態は、開始状態メモリSS[3]=2を参照することで状態S2であるが、S3≠S2であり状態番号が異なるため、状態S3はトレースバック開始の候補状態とはしない。
上記よりトレースバック開始状態の候補は、ひとつも存在しないため、トレースバック開始候補数はN=0となる(ステップS302)。
ステップS303では、N=0のため、ステップS309に移行する。ステップS309では、正しい生き残りパスが存在しないとして当該フレームをフレームエラーと判定し、トレースバックを終了する。
以上の説明のとおり、図6のトレリス図に、本実施形態を適用すると、トレースバックを行う回数は0回であり、トレースバックを行わなくとも当該受信ビット列は誤り訂正復号が不可能であることが判定できるといった効果がある。
これに対し、背景技術で説明した第1の従来例を図6のトレリス図に適用した場合、時点Eにおいて状態S2のパスメトリックが“1”で最も小さい(尤度が高い)ため、状態S2からトレースバックをするが、この結束得られるビット列は誤りである。
以下、他のどの状態からトレースバックを開始しても、得られるビット列は全て誤りとなり、処理が無駄になってしまう。
また、背景技術で説明した第2の従来例を図6のトレリス図に適用した場合を考える。
図6の時点Eにおいて状態S2のパスメトリックが“1”で最も小さい(尤度が高い)ため、状態S2から1回目のトレースバックを開始する。この1回目のトレースバックでは、終了時点(時点S)において状態S1に到達することから、状態S2≠状態S1により、得られた復号ビット列には誤りが含まれる。このため2回目のトレースバックを行う。
2回目のトレースバックでは、1回目のトレースバックの終了時点(時点S)の状態S1を新しい開始状態としてトレースバックを行う。この2回目のトレースバックでは、終了時点(時点S)において状態S2に到達することから、状態S1≠状態S2により、得られた復号ビット列には誤りが含まれる。
以後、同様にトレースバックを続けても正しいパスは見付からず、トレースバックの開始状態が、状態S2→状態S1→状態S2→状態S1→・・・を繰り返すだけとなってしまい、処理は無駄となってしまう。
これを回避するために従来の技術2では、トレースバック回数の制限を加えているが、もし正しいパスが存荏した場合においては、正しいパス(復号ビット列)があるにも関わらず、トレースバックを行わないがために、正しい結果が破棄されてしまう場合がある。
巡回畳み込み符号化では、トレースバックの開始時点(時点E)と終了時点(時点Sにおける状態が異なる場合には、復号ビット列が正しいことはないが、上述の通り従来例のビタビ復号方法では、そのような場合にもトレースバックを行ってしまうため、処理そのものが無駄になることが多い。
以上に説明したように、本発明の実施形態のビタビ復号方法及び誤り訂正復号化装置では、巡回畳み込み符号化の性質を利用し、ACS演算終了時点(時点E)において、全ての状態の生き残りパスについてACS演算開始時点(時点S)における開始状態を記憶していることから、巡回畳み込み符号によって得られるパスの性質である(符号器の初期時点の状態)=(符号器の最終時点の状態)を利用することができ、トレースバックを行わずしてパス(復号ビット列)の誤りを検出可能となるため、トレースバック回数を大きく減らすことができるという利点がある。また少ないトレースバック回数で正しい復号ビット列が得られる可能性が高くなるという効果がある。
さらに、本発明の実施形態のビタビ復号方法及び誤り訂正復号化装置では、トレースバックを行う回数を減らすことができるため、ハードウェア実現の場合には回路規模を小さく実現でき、またソフトウェア実現の場合には演算量の低減が図られるため、消費電流を小さくできるという効果を得ることができる。
(第2の実施の形態)
次に、本発明の実施形態の移動局無線装置、基地局無線装置および移動通信システムについて、図7及び図8を参照しながら説明する。
無線通信システムでは、基地局無線装置と移動局無線装置を結ぶ電波の伝搬路状況が劣悪となり、受信側において、送信ビット列を正しく復号することが困難になる状況が多々ある。
このような劣悪な伝搬路状況においては、基地局無線装置と移動局無線装置との同期がとれているにも関わらず、正しい復号結果(復号ビット列)を得にくくなる。
上記状況下においては、誤り訂正符号化方式に巡回畳み込み符号化を採用する無線通信システムでは、誤り訂正復号のビタビ復号処理にて、トレースバックを開始する状態を確定することが困難となり、従来の技術においては、正しいパスを抽出するのに時間がかかるため、或いは正しいパスが存在しないにも関わらずトレースバックを行ってしまうため、基地局無線装置、移動局無線装置および移動通信システム全体としての消費電流が増大してしまう。
第2の実施形態ではこのような問題点を解決するような移動局無線装置、基地局無線装置および移動通信システムについて説明するものである。
図7は第2の実施形態の移動局無線装置および基地局無線装置のブロック図である。
まず、図7における送信系について説明する。送信系は図7における符号701〜708に相当する。
送信系では、情報ビット列Uは誤り訂正符号化装置701に入力され、巡回畳み込み符号化が行われ、符号化ビット列が出力される。誤り訂正符号化装置701は、図1における誤り訂正符号化装置101に相当するものである。なお、畳み込み符号化は、情報ビット列Uのうち重要度の高いビットにのみ行われることが多い。
誤り訂正符号化装置701から出力された符号化ビット列は、波形生成器702に入力され、制御データが付加され、変調データが生成される。
D/A変換器703では、上記変調データがデジタルからアナログに変換され、さらに、直交変調器704では、アナログに変換されたデータが直交変調される。
直交変調器704で直交変調された信号は、所定の送信周波数に変換するミキサ705によってアップコンバートされ、アップコンバートされた信号は増幅器706によって増幅される。
増幅された信号は、送受信信号を分岐する共用器707に入力され、送受信共用アンテナ708から無線信号として送信される。
次に、図7における受信系について説明する。受信系は図7における符号707〜714に相当する。
受信系では、送受信共用アンテナ708及び共用器707を通じて受信された受信信号は、ミキサ709によってダウンコンバートされ、さらに直交復調器710によって直交復調される。
直交復調されたアナログ信号は、A/D変換器711によってデジタル信号に変換され、同期部712及びデジタル検波器713に入力される。
同期部712では、上記デジタル信号を用いて同期獲得が行われ、シンボルタイミング信号がデジタル検波器713に入力される。
デジタル検波器713では、上記デジタル信号とシンボルタイミング信号を用いてデジタル検波(例えば変調方式がπ/4シフトQPSK方式であれば遅延検波)が行われ、受信データが出力される。
受信データは、例えば、誤り訂正復号化装置714で硬判定によるビタビ復号を行う場合にはビット列となり、誤り訂正復号化装置714で軟判定によるビタビ復号を行う場合には信号空間上のI、Q値列となる。
上記受信データはさらに誤り訂正復号化装置714に入力され、誤り訂正復号され、復号ビット列Dが得られる。
誤り訂正復号化装置714は、図1における誤り訂正復号化装置102に相当するものであり、本発明の実施形態のビタビ復号方法や誤り訂正復号化装置が含まれたものである。
誤り訂正復号化装置714からは、同期部712及びデジタル検波器713へフレーム誤り情報が提供される。これによって、フレームが誤った場合には、いち早く次処理に移行することが可能となる。
例えば、移動局無線装置でフレーム誤りが一定回数続いた場合には、デジタル検波器713をすぐにアイドル状態にして消費電流を低減させ、また同期部712にて即座に初期同期獲得を開始することが可能となる。
このように構成された本発明の実施形態の移動局無線装置および基地局無線装置によれば、誤り訂正復号化装置714において、第1の実施形態に記載した通りの効果があり、すなわちビタビ復号処理におけるトレースバック回数を大きく減らすことができ、また少ないトレースバック回数で正しい復号ビット列が得られることから、受信性能の良好な移動局無線装置および基地局無線装置が得られるという効果がある。
さらに、本発明の実施形態の移動局無線装置および基地局無線装置では、誤り訂正復号化装置714において、トレースバックを行う回数を減らすことができるため、ハードウエア実現の場合には回路規模を小さく実現でき、またソフトウェア実現の場合には演算量の低減が図られるため、消費電流の小さい装置が実現できるという効果がある。また、少ないトレースバック回数でフレーム誤りが判定可能であるため、いち早く次処理に移行でき、消費電流が小さい装置を構成できるという効果がある。
また、上記の移動局無線装置もしくは基地局無線装置の少なくとも一方を含むような、本発明の実施形態の移動通信システムの構成図を図8に示す。図8では、移動局無線装置MS1、MS2、・・・、MSmおよび基地局無線装置BSのうち、少なくともひとつに図7で構成された装置が含まれているものとする。
図8の移動通信システムは、図7に示した基地局無線装置および移動局無線装置が複数含まれるように構成されているため、システム全体として受信性能の良好なシステムを構築できるという効果がある。また同様に、消費電流が低減されたシステムを構築できるという効果がある。
以上説明したように、本発明の実施形態によれば、ACS演算終了時点において、全ての状態の生き残りパスについてACS演算開始時点における開始状態を記憶し、巡回畳み込み符号のパスの性質である(符号器の初期時点の状態)=(符号器の最終時点の状態)を利用して一致判定を行うことで、トレースバックを行わずして、そのパス(復号ビット列)が誤りを含むパスであることを検出することができ、したがって、そのようなパスをトレースバックの対象から除外することができる。したがって、トレースバック対象のパスを絞り込むことができ、トレースバック回数を大きく減らすことができる。
また、本発明の実施形態によれば、少ないトレースバック回数で正しい復号ビット列が得られる可能性が非常に高くなり、効率的、かつ迅速な復号化を行うことができる。
また、本発明によれば、無駄なトレースバック処理(演算処理)がなくなり、したがって、移動体通信機器における回路の消費電力や回路規模の増大を抑制することができる。このことは、良好な移動通信システムの構築に役立つものである。