(57)【特許請求の範囲】
【請求項１】
畳み込み符号の各遷移状態での確率情報を求める確率計算手段と、
上記確率計算手段で求められる上記確率情報を記憶媒体に記憶する確率記憶手段と、
上記記憶媒体に記憶されている上記確率情報を使用して軟出力を求める軟出力計算手段とを備える畳み込み符号の軟出力復号装置であって、
上記確率記憶手段は上記記憶媒体に上記確率情報を打切り長以上記憶し、
上記確率記憶手段による打切り長内の確率情報の更新と、上記軟出力計算手段による打切り長外の軟出力の計算とを並列的に実行する
ことを特徴とする畳み込み符号の軟出力復号装置。
【請求項２】
上記確率計算手段及び軟出力計算手段は、
上記確率の積演算を対数による和演算により計算し、上記確率の和演算を対数による最大値演算により計算する
ことを特徴とする請求項１に記載の畳み込み符号の軟出力復号装置。
【請求項３】
上記確率計算手段及び軟出力計算手段は、
上記確率の積演算を対数による和演算により計算し、上記確率の和演算を対数による最大値演算と一次元の関数演算とにより計算する
ことを特徴とする請求項１に記載の畳み込み符号の軟出力復号装置。
【請求項４】
上記確率計算手段は、
受信値毎に、符号の出力パターンと上記受信値によって決まる第１の確率を計算する第１の計算手段と、
上記第１の確率に基づいて、上記各受信値毎に、符号化開始ステートから時系列順に各ステートに至る第２の確率を計算する第２の計算手段と、
上記第１の確率に基づいて、上記各受信値毎に、打切りステートから上記時系列順とは逆順に各ステートに至る第３の確率を計算する第３の計算手段とを有してなり、
上記確率記憶手段の打切り長内で更新される確率情報は、上記第３の確率の情報である
ことを特徴とする請求項１に記載の畳み込み符号の軟出力復号装置。
【請求項５】
上記第１の確率計算手段は、上記第１の確率を上記確率記憶手段に一時保持し、上記第２及び第３の確率計算手段、上記軟出力計算手段の各処理に対応した順序により順次読み出して出力し、
上記第３の確率計算手段は、上記第１の確率を所定の打切り長単位で区切って、上記打切り長よりも時間軸方向に上記基準時点を設定し、少なくとも上記各基準時点より対応する上記打切り長の範囲を単位にして、複数系列により同時並列的に上記第１の確率を処理して複数系列により上記第３の確率を計算し、該計算した複数系列の上記第３の確率より上記打切り長に対応する第３の確率を選択して、上記受信値に対応する上記第３の確率を上記確率記憶手段に一時保持し、上記軟出力計算手段の処理に対応した順序により順次読み出して出力する
ことを特徴とする請求項４に記載の畳み込み符号の軟出力復号装置。
【請求項６】
上記第１の確率計算手段は、
上記確率記憶手段に一時保持した第１の確率を、時間軸に沿った順序で所定時間遅延して上記第２の確率計算手段に出力し、
上記確率記憶手段に一時保持した第１の確率を、少なくとも上記各基準時点より対応する上記打切り長の上記第１の確率を含む範囲を単位にして、複数系列により時間軸を遡る順序で同時並列的に上記第３の確率計算手段に出力し、
上記確率記憶手段に一時保持した上記第１の確率を、時間軸に沿った順序で所定時間遅延して上記軟出力計算手段に出力する
ことを特徴とする請求項５に記載の畳み込み符号の軟出力復号装置。
【請求項７】
上記基準時点を、続く上記打切り長の終了時点に設定したことを特徴とする請求項５に記載の畳み込み符号の軟出力復号装置。
【請求項８】
畳み込み符号の各遷移状態での確率情報を求める第１のステップと、
この第１のステップで求められる上記確率情報を記憶媒体に打切り長以上記憶する第２のステップと、
この第２のステップで記憶媒体に記憶された上記確率情報を使用して軟出力を求める第３のステップとを備える畳み込み符号の軟出力復号方法であって、
上記第２のステップにおける打切り長内の確率情報の更新と、上記第３のステップにおける打切り長外の軟出力の計算とを並列的に実行する
ことを特徴とする畳み込み符号の軟出力復号方法。
【請求項９】
受信値毎に、符号の出力パターンと上記受信値によって決まる第１の確率を順次計算する第１の確率計算のステップと、
上記第１の確率に基づいて、上記各受信値毎に、時間軸に沿った方向に各ステートに至る第２の確率を計算する第２の確率計算のステップと、
上記第１の確率に基づいて、上記各受信値毎に、所定の基準時点より時間軸を遡った方向に各ステートに至る第３の確率を計算する第３の確率計算のステップと、
上記第１、第２及び第３の確率に基づいて軟出力を計算する軟出力計算のステップとを有し、
上記第３の確率計算のステップにおいて、上記第１の確率を所定の打切り長単位で区切って、上記打切り長よりも時間軸方向に上記基準時点を設定し、少なくとも上記各基準時点より対応する上記打切り長の範囲を単位にして、複数系列により同時並列的に上記第１の確率を処理して複数系列により上記第３の確率を計算し、該計算しだ複数系列の上記第３の確率より、上記打切り長に対応する第３の確率を選択して上記受信値に対応する上記第３の確率を出力し、
上記第１の確率計算のステップにおいて、上記第１の確率を確率記憶手段に一時保持し、上記第２及び第３の確率計算のステップ、上記軟出力計算のステップの各処理に対応した順序により順次読み出して出力し、上記第３の確率計算のステップにおいて、上記第３の確率を確率記憶手段に一時保持し、上記軟出力計算のステップにおける処理に対応した順序により順次読み出して出力する
ことを特徴とする畳み込み符号の軟出力復号方法。
【請求項１０】
上記第１の確率計算のステップにおいて、
上記確率記憶手段に一時保持した第１の確率を、時間軸に沿った順序で所定時間遅延して上記第２の確率計算のステップに出力し、上記確率記憶手段に一時保持した第１の確率を、少なくとも上記各基準時点より対応する上記打切り長の上記第１の確率を含む範囲を単位にして、複数系列により時間軸を遡る順序て同時並列的に上記第３の確率計算のステップに出力し、上記確率記憶手段に一時保持した第１の確率を、時間軸に沿った順序で所定時間遅延して上記軟出力計算のステップに出力することを特徴とする請求項９に記載の畳み込み符号の軟出力復号方法。
【請求項１１】
上記基準時点を、続く上記打切り長の終了時点に設定したことを特徴とする請求項９に記載の軟出力の復号方法。
【請求項１２】
上記第１、第２及び第３の確率計算のステップ、上記軟出力計算のステップにおいて、上記確率の積演算を対数による和演算により計算し、上記確率の和演算を対数による最大値演算により計算することを特徴とする請求項９に記載の畳み込み符号の軟出力復号方法。
【請求項１３】
上記第１、第２及び第３の確率計算のステップ、上記軟出力計算のステップにおいて、上記確率の積演算を対数による和演算により計算し、上記確率の和演算を対数による最大値演算と一次元の関数演算との和により計算することを特徴とする請求項９に記載の畳み込み符号の軟出力復号方法。
【発明の詳細な説明】
【０００１】
技術分野
この発明は、例えば、例えば衛星放送受信装置等に適用して好適な畳み込み符号の軟出力復号装置及び軟出力復号方法に関する。詳しくは、記憶媒体に確率情報を打切り長以上記憶し、打切り長内の確率情報の更新と、打切り長外の軟出力の計算とを並列的に実行することによって、高速動作が可能となる軟出力復号装置等に係るものである。
【０００２】
背景技術
畳み込み符号の復号後のシンボル誤り率を最小にする復号法として、ＢＣＪＲアルゴリズムが知られている（Bahl, Cocke, Jelinek and Raviv, “0ptimal decoding of linear codes for minimizing symbol error rate”, IEEE Trans. Inf. Theory, vol. IT-20, pp. 284-287, Mar.1974 ）。ＢＣＪＲアルゴリズムにおいては、復号結果として各シンボルを出力するのではなく、各シンボルの尤度を出力する。このような出力を軟出力（soft-output）と呼ぶ。
【０００３】
近年、連接符号の内符号の復号出力や繰り返し復号法の各繰り返しの出力を軟出力とすることで、シンボル誤り確率を小さくする研究がなされており、それに適した復号法としてＢＣＪＲアルゴリズムが注目されるようになった。
【０００４】
以下、ＢＣＪＲアルゴリズムの内容を詳細に説明する。
【０００５】
ＢＣＪＲアルゴリズムは、復号結果として各シンボルを出力する代わりに、各シンボルの尤度を出力するものであり、畳み込み符号器によりデジタルの情報を畳み込み符号化し、この畳み込み符号化されたデータ列を雑音のある無記憶通信路を介して観測する場合のアルゴリズムである。
【０００６】
ここで、畳み込み符号器のシフトレジスタの内容を表すＭ個のステート（遷移状態）をｍ(０，１，・・・，Ｍ｜１)で表し、時刻ｔのステートをＳt、時刻ｔでの入力をｉt、時刻ｔでの出力をＸtとし、出力系列をＸtt'＝Ｘt，Ｘt+1，・・・，Ｘt'とする。各ステート間の遷移確率ｐt(ｍ｜ｍ')を次の（１）式により表す。
【０００７】
【数１】
0004178752.tif 000002
【０００８】
なお、Ｐr{Ａ｜Ｂ}は、Ｂが起こった条件のもとでのＡが起こる条件付き確率であり、Ｐr{Ａ；Ｂ}は、ＡとＢが共に起こる確率を表すものとする。また、畳み込み符号器による畳み込み符号は、ステートＳ0＝０から始まり、Ｘ1τを出力してＳτ＝０で終了するものとする。
【０００９】
雑音のある無記憶通信路は、出力Ｘ1τを入力とし、出力Ｙ1τを出力する。ここで出力系列Ｙtt'＝Ｙt，Ｙt+1，・・・，Ｙt'とする。ここで雑音のある無記憶通信路の遷移確率は、すべてのｔ（１≦ｔ≦τ）について、次の（２）式を満足する関数Ｒ(・｜・)により定義することができる。
【００１０】
【数２】
0004178752.tif 000003
【００１１】
これにより確率λtを次の（３）式に示すように定義すれば、この確率λtは、Ｙ1τを受信した際の時刻ｔにおける入力情報の尤度を表し、この確率λtが求めるべき軟出力となる。
【００１２】
【数３】
0004178752.tif 000004
【００１３】
ＢＣＪＲアルゴリズムは、次の（４）式〜（６）式に示すような確率αt，βt，γtを定義する。
【００１４】
【数４】
0004178752.tif 000005
【００１５】
αt，βt，γtの内容を、図１を用いて簡単に説明する。図１は、各確率の関係を示した図である。αt-1は、符号化開始ステートＳ0＝０から受信語をもとに時系列順に算出した時刻ｔ−１における各ステートの通過確率に対応する。βtは、符号化終了ステートＳτ＝０から受信語をもとに時系列の逆順に算出した時刻Ｔにおける各ステートの通過確率に対応する。γtは、時刻ｔにおける受信語と入力確率をもとに算出した時刻ｔにステート間を遷移する各枝の出力の受信確率に対応する。
【００１６】
このαt，βt，γtを用いると、軟出力λtは、次の（７）式のように表すことができる。
【００１７】
【数５】
0004178752.tif 000006
【００１８】
ところで、ｔ＝１，２，・・・，τについて、次の（８）式が成り立つ。
【００１９】
【数６】
0004178752.tif 000007
【００２０】
同様に、ｔ＝１，２，・・・，τ−１について、次の（９）式が成り立つ。
【００２１】
【数７】
0004178752.tif 000008
【００２２】
さらに、γtに関して、次の（１０）式が成り立つ。
【００２３】
【数８】
0004178752.tif 000009
【００２４】
以上の関係をもとに、ＢＣＪＲアルゴリズムでは、軟出力λtを、次の（ａ）〜（ｃ）の手順で求める。
【００２５】
（ａ）Ｙtを受信する毎に、（８）式、（１０）式を使用して、αt(ｍ)、γt(ｍ'，ｍ，ｉ)を計算する。
【００２６】
（ｂ）系列Ｙ1τの全てを受信した後に、（９）式を使用して、全ての時刻ｔの各ステートｍについて、βt(ｍ)を計算する。
【００２７】
（ｃ）（ａ），（ｂ）で計算したαt，βt，γtを（７）式に代入し、各時刻ｔの軟出力λtを計算する。
【００２８】
ところで、以上説明したＢＣＪＲアルゴリズムでは、積演算を含むために演算量が大きいという問題と、符号を終結する必要があるために連続データを受信できないという問題があった。
【００２９】
この２つの問題のうち、演算量を削減する手法としてＭａｘ−Ｌｏｇ−ＢＣＪＲアルゴリズム及びＬｏｇ−ＢＣＪＲアルゴリズム（ただし、下記論文中では、それぞれＭａｘ−Ｌｏｇ−ＭＡＰアルゴリズム及びＬｏｇ−ＭＡＰアルゴリズム）が提案され（Robertson, Villebrun and Hoeher, "A comparison of optimal and sub-optima1 MAP decoding algorithms operating in the domain", IEEE lnt.Conf.on Communications, pp.1009-1013, June 1995）、連続データを受信するための手法として、スライディングウインドウ処理を行うＳＷ−ＢＣＪＲアルゴリズムが提案されている（Benedetto and Montorsi, "Soft-output decoding algorithms in iterative decoding of turbo codes", TDA progress Report 42-124, Feb, 1996）。
【００３０】
以下これらのアルゴリズムの内容を説明する。
【００３１】
まず、Ｍａｘ‐Ｌｏｇ−ＢＣＪＲアルゴリズムとＬｏｇ‐ＢＣＪＲアルゴリズムの内容を説明する。
【００３２】
Ｍａｘ−Ｌｏｇ−ＢＣＪＲアルゴリズムは、確率αt，βt，γt，λtをｅを底とする対数（自然対数）で表し、（１１）式に示すように確率の積演算を対数の和演算で置き換え、（１２）式に示すように確率の和演算を対数の最大値演算で近似する。なお、ｍａｘ(ｘ，ｙ)は、ｘ，ｙのうち値の大きなものを選択する関数である。
【００３３】
【数９】
0004178752.tif 000010
【００３４】
いま、説明を簡略化するため、次の（１３）式〜（１５）式に示すようにαt，βt，γt，λtの対数をＩαt，Ｉβt，Ｉγt，Ｉλtとおく。以下、「Ｉ」はｅを底とする対数を表すものとする。
【００３５】
【数１０】
0004178752.tif 000011
【００３６】
Ｍax−Ｌog−ＢＣＪＲアルゴリズムは、これらＩαt，Ｉβt，Ｉγtを次の（１６）式〜（１８）式に示すように近似する。ここで、Ｉαt(ｍ)とＩβt(ｍ)のｍａｘ ｍ'は、入力ｉのときにステートｍへの遷移が存在するステートｍ'の中で求めるものとする。
【００３７】
【数１１】
0004178752.tif 000012
【００３８】
ただし、Ｘはｍ'からｍへ遷移したときの符号器の出力である。
【００３９】
同様に、Ｉλtに関しても、次の（１９）式に示すように近似する。ここで、右辺第１項のｍａｘ ｍ'は、入力＝１のときにステートｍへの遷移が存在するステートｍ'の中で求め、第２項のｍａｘ ｍ'は、入力＝０のときにステートｍへの遷移が存在するステートｍ'の中で求めるものとする。
【００４０】
【数１２】
0004178752.tif 000013
【００４１】
以上の関係をもとに、Ｍａｘ‐Ｌｏｇ‐ＢＣＪＲアルゴリズムでは、軟出力λtを、次の（ａ）〜（ｃ）の手順で求める。
【００４２】
（ａ）Ｙtを受信する毎に、（１６）式、（１８）式を使用して、Ｉαt(ｍ)、Ｉγt(ｍ'，ｍ，１)を計算する。
【００４３】
（ｂ）系列Ｙ1τの全てを受信した後に、（１７）式を使用して、全ての時刻ｔの各ステートｍについて、Ｉβt(ｍ)を計算する。
【００４４】
（ｃ）（ａ），（ｂ）で計算したＩαt，Ｉβt，Ｉγtを（１９）式に代入し、各時刻もの軟出力Ｉλtを計算する。
【００４５】
上述したように、Ｍａｘ−Ｌｏｇ−ＢＣＪＲアルゴリズムには、積演算が含まれていないため、ＢＣＪＲアルゴリズムに比べて演算量を大幅に減らすことができる。
【００４６】
ところで、確率の和演算を次の（２０）式に示すように変形することにより、右辺第２項は、変数｜ｘ−ｙ｜に対する１次元の関数となるので、これをテーブル化しておくことで和演算の正確な対数値を求めることができる。
【００４７】
【数１３】
0004178752.tif 000014
【００４８】
Ｍａｘ−Ｌｏｇ−ＢＣＪＲアルゴリズム中の（１２）式を、全て（２０）式で置き換えて、正確な確率計算を行うのがＬｏｇ−ＢＣＪＲアルゴリズムである。Ｌｏｇ‐ＢＣＪＲアルゴリズムは、Ｍａｘ−Ｌｏｇ−ＢＣＪＲアルゴリズムと比較すると演算量は増えるものの積演算は含まれておらず、その出力は、量子化誤差を除けば、ＢＣＪＲアルゴリズムの軟出力の対数値そのものに他ならない。
【００４９】
（２０）式における右辺第２項は、変数｜ｘ−ｙ｜による一次関数となることから、例えばテーブル化等により簡易かつ精度の高い演算結果を得ることかできる。これによりＬｏｇ−ＢＣＪＲアルゴリズムは、Ｍａｘ−Ｌｏｇ−ＢＣＪＲアルゴリズムに比して精度の高い軟出力を得ることができるようになされている。
【００５０】
次に、ＳＷ−ＢＣＪＲアルゴリズムの内容を説明する。
【００５１】
ＢＣＪＲアルゴリズムでは、βtの計算のために符号が終結されている必要があり、連続したデータを受信することができない。ＳＷ−ＢＣＪＲアルゴリズムは、βtの初期値として全てのステートに対して１／Ｍを与え、ビタビ(Viterbi)復号の場合と同様に打切り長を導入し、設定した打切り長Ｄだけ時刻を遡って軟出力を求めるものである（図２参照）。
【００５２】
ＳＷ‐ＢＣＪＲアルゴリズムでは、通常のＢＣＪＲアルゴリズムと同様にα０  の初期化を行った後、以下の（ａ）〜（ｅ）の操作を毎時刻行うことで、各時刻の軟出力を求める。
【００５３】
（ａ）時刻ｔでの受信値と遷移確率をもとにγtを求める。
【００５４】
（ｂ）全てのステートｍに対してβt(ｍ)＝１／Ｍと初期化する。
【００５５】
（ｃ）γt-D+1，・・・，γtをもとにβt-1，・・・，βt-Dを計算する。
【００５６】
（ｄ）求まったβt-Dとαt-D-1から時刻ｔ−Ｄの軟出力γt-Dを次の（２１）式で計算する。
【００５７】
【数１４】
0004178752.tif 000015
【００５８】
（ｅ）αt-D-1，γt-Dよりαt-Dを計算する。
【００５９】
なお、前掲のBenedettoらの論文には、このＳＷ−ＢＣＪＲアルゴリズムとＬｏｇ−ＢＣＪＲアルゴリズムを組み合わせたＳＷ−Ｌｏｇ−ＢＣＪＲアルゴリズム、及び、ＳＷ‐ＢＣＪＲアルゴリズムとＭａｘ−Ｌｏｇ−ＢＣＪＲアルゴリズムを組み合わせたＳＷ−Ｍａｘ−Ｌｏｇ−ＢＣＪＲアルゴリズム（ただし、論文中ではＳＷＡＬ−ＢＣＪＲアルゴリズム）も提案されている。
【００６０】
ＳＷ−Ｍａｘ−Ｌｏｇ−ＢＣＪＲアルゴリズム又はＳＷ−Ｌｏｇ−ＢＣＪＲアルゴリズムを用いることで、連続データを受信して軟出力を求めることができる。しかし、これらのアルゴリズムでは、終結した符号を復号する場合と異なり、１復号出力を求める際にステート数×打切り長分のβtを求める必要があるために、積演算を含まないとはいえ、実装するには非常に大きな演算量が必要である。
【００６１】
上述したように、ＳＷ−Ｍａｘ−Ｌｏｇ−ＢＣＪＲアルゴリズム又はＳＷ−Ｌｏｇ−ＢＣＪＲアルゴリズムは、畳み込み符号化されて送信された連続データを受信して軟出力を求めることが可能ではあるが、１符号出力を得る際の演算量が多く高速動作が困難であるという問題点があった。
【００６２】
また、ＳＷ−ＢＣＪＲアルゴリズムとＬｏｇ−ＢＣＪＲアルゴリズムとを組み合わせたＳＷ−Ｌｏｇ−ＢＣＪＲアルゴリズム、又はＳＷ−ＢＣＪＲアルゴリズムとＭａｘ−Ｌｏｇ−ＢＯＪＲアルゴリズムとを組み合わせたＳＷ−Ｍａｘ−Ｌｏｇ−ＢＣＪＲアルゴリズム（ＳＷＡＬ−ＭＡＰアルゴリズムとも呼ぶ）によれば、演算量を低減して連続したデータの軟出力を求めることができる。
【００６３】
ところが、これらのアルゴリズムでは、打切り長Ｄだけ遡って軟出力を得ることにより、１復号出力を求める際にステート数×打切り長Ｄ分のβを求める必要がある。これにより積演算を含まないとはいえ、処理に膨大な演算量が必要な問題があった。
【００６４】
発明の開示
そこで、本発明の目的は、高速動作が可能な畳み込み符号の軟出力復号装置及び軟出力復号方法を提供することにある。
【００６５】
また、本発明の目的は、簡易な構成で、軟出力を復号することができる畳み込み符号の軟出力復号装置及び軟出力復号方法を提供することにある。
【００６６】
本発明では、畳み込み符号の各遷移状態での確率情報を求め、上記確率情報を使用して軟出力を計算して出力する際に、上記確率情報を所定の打切り長単位で区切って記憶し、打切り長内の確率情報の更新と打切り長外の軟出力の計算とを並列的に実行する。
【００６７】
この発明においては、打切り長内の確率情報の更新と打切り長外の軟出力の計算とが並列的に行うことにより、１クロック当たりの演算量やメモリへのアクセス量が少なくて済み、高速動作が可能になる。
【００６８】
すなわち、本発明は、畳み込み符号の各遷移状態での確率情報を求める確率計算手段と、上記確率計算手段で求められる上記確率情報を記憶する確率記憶手段と、上記確率記憶手段に記憶されている上記確率情報を使用して軟出力を求める軟出力計算手段とを備える畳み込み符号の軟出力復号装置であって、上記確率記憶手段は上記確率情報を打切り長以上記憶し、上記確率記憶手段による打切り長内の確率情報の更新と、上記軟出力計算手段による打切り長外の軟出力の計算とを並列的に実行することを特徴とする。
【００６９】
また、本発明は、畳み込み符号の各遷移状態での確率情報を求める第１のステップと、この第１のステップで求められる上記確率情報を記憶媒体に打切り長以上記憶する第２のステップと、この第２のステップで記憶媒体に記憶された上記確率情報を使用して軟出力を求める第３のステップとを備える畳み込み符号の軟出力復号方法であって、上記第２のステップにおける打切り長内の確率情報の更新と、上記第３のステップにおける打切り長外の軟出力の計算とを並列的に実行することを特徴とする。
【００７０】
さらに、本発明は、受信値毎に、符号の出力パターンと上記受信値によって決まる第１の確率を順次計算する第１の確率計算のステップと、上記第１の確率に基づいて、上記各受信値毎に、時間軸に沿った方向に各ステートに至る第２の確率を計算する第２の確率計算のステップと、上記第１の確率に基づいて、上記各受信値毎に、所定の基準時点より時間軸を遡った方向に各ステートに至る第３の確率を計算する第３の確率計算のステップと、上記第１、第２及び第３の確率に基づいて軟出力を計算する軟出力計算のステップとを有し、上記第３の確率計算のステップにおいて、上記第１の確率を所定の打切り長単位で区切って、上記打切り長よりも時間軸方向に上記基準時点を設定し、少なくとも上記各基準時点より対応する上記打切り長の範囲を単位にして、複数系列により同時並列的に上記第１の確率を処理して複数系列により上記第３の確率を計算し、該計算しだ複数系列の上記第３の確率より、上記打切り長に対応する第３の確率を選択して上記受信値に対応する上記第３の確率を出力し、上記第１の確率計算のステップにおいて、上記第１の確率を確率記憶手段に一時保持し、上記第２及び第３の確率計算のステップ、上記軟出力計算のステップの各処理に対応した順序により順次読み出して出力し、上記第３の確率計算のステップにおいて、上記第３の確率を確率記憶手段に一時保持し、上記軟出力計算のステップにおける処理に対応した順序により順次読み出して出力することを特徴とする。
【００７１】
発明を実施するための最良の形態
以下、本発明の実施の形態について図面を参照しながら詳細に説明する。
【００７２】
本発明は、例えば図３に示すような構成の通信モデル１に適用される。この通信モデル１では、畳み込み符号器２によりデジタルの情報Ｄ0を畳み込み符号化し、この畳み込み符号化されたデータ列を雑音のある無記憶通信路３を介して復号器４に供給し、復号器４より、畳み込み符号化されたデータ列の軟出力を復号する。
【００７３】
この通信モデル１における畳み込み符号器２は、１ビットの入力に対して２ビットを出力する１：２の符号器である。この畳み込み符号器２は、図４に示すように、１ビットの入力ｉtが入力される入力端子２１と、２ビットの出力Ｘtが出力される出力端子２２ａ，２２ｂと、３個のイクスクルーシブ・オア回路（以下、「ＥＸ・ＯＲ回路」という）２３〜２５と、２個のレジスタ２６，２７とから構成されている。
【００７４】
入力端子２１は、出力端子２２ａに接続されるとともに、ＥＸ・ＯＲ回路２３の入力側に接続される。ＥＸ・ＯＲ回路２３の出力側は、レジスタ２６の入力側に接続されるとともに、ＥＸ・ＯＲ回路２４の入力側に接続される。ＥＸ・ＯＲ回路２４の出力側は出力端子２２ｂに接続される。レジスタ２６の出力側は、レジスタ２７の入力側に接続されるとともに、ＥＸ・ＯＲ回路２５の入力側に接続される。レジスタ２７の出力側は、ＥＸ・ＯＲ回路２４の入力側に接続されるとともに、ＥＸ・ＯＲ回路２５の入力側に接続される。そして、ＥＸ・ＯＲ回路２５の出力側はＥＸ・ＯＲ回路２３の入力側に接続される。
【００７５】
この畳み込み符号器２において、入力端子２１に供給された１ビットの入力ｉtは、そのまま出力端子２２ａから出力されるとともにＥＸ・ＯＲ回路２３に入力される。ＥＸ・ＯＲ回路２３は、上記入力ｉtとＥＸ・ＯＲ回路２４の出力との排他的論理和出力をレジスタ２６及びレジスタ２６，２７を介してＥＸ・ＯＲ回路２５に供給し、上記ＥＸ・ＯＲ回路２４の排他的論理和出力が帰還される。また、このＥＸ・ＯＲ回路２３は、上記入力ｉtと上記ＥＸ・ＯＲ回路２５の排他的論理和出力との排他的論理和出力を直接及び上記レジスタ２６，２７を介してＥＸ・ＯＲ回路２５に供給する。
【００７６】
そして、上記ＥＸ・ＯＲ回路２５は、上記ＥＸ・ＯＲ回路２３の排他的論理和出力と上記レジスタ２７の出力との排他的論理和出力を他の１ビットとして出力端子２２ｂより出力する。
【００７７】
この畳み込み符号器２は、以上のように構成されており、入力端子２１に１ビットの入力ｉtが入力されると、出力端子２２ａ，２２ｂより２ビットの出力系列Ｘtを出力する。図５は、上記畳み込み符号器２のトレリスを示しており、ステート数Ｍは４となっている。
【００７８】
また、この通信モデル１における復号器４は、ＳＷ−Ｍａｘ−Ｌｏｇ−ＢＣＪＲアルゴリズムに基づく復号器であり、図４に示した拘束長３の畳み込み符号器２に対応した復号器である。
【００７９】
この復号器４は、無記憶通信路３を通して入力される符号器２の受信値Ｙtを打切り長Ｄ＝４により処理して、軟出力λtを出力するものである。こ復号器４は、図６に示すように、全体の動作を制御するためのコントローラ４１と、受信値Ｙt、事前確率情報Ｐｒ1＝ｌｏｇ Ｐr{ｉt＝０}、Ｐr2＝ｌｏｇ Ｐｒ{ｉt＝１}が入力される人力端子４２ｙ，４２ｐ1，４２ｐ2と、Ｉγ計算記憶回路４３と、Ｉα計算記億回路４４と、Ｉβ計算記憶回路４５と、軟出力計算回路４６と、軟出力Ｉλtを出力する出力端子４７とを有している。
【００８０】
この復号器４は、本来のＳＷ‐Ｍａｘ−Ｌｏｇ−ＢＣＪＲアルゴリズムと異なり、１時刻分の復号を行うために、ステート数×打切り長分のＩβtを計算するものではない。すなわち、復号器４は、図７に示すように、ステート数×打切り長分のＩβ（βt〜βt-D+1で図示）を計算した後、それに続く打切り長外のＩβ（βt-D〜βt-2D+1で図示）を計算しながらその打切り長外の軟出力の計算を順次行っていくとともに、次の打切り長分のＩβを順次計算していくものである。このように、復号器４は、打切り長内のＩβの計算と、打切り長以上遡ったＩβの計算とを並列的に行うものであり、１クロックあたりのＩβの計算はステート数×２となる。
【００８１】
Ｉγ計算記憶回路４３には、コントローラ４１よりコントロール信号ＳＣγが供給されるとともに、入力端子４２ｙ，４２ｐ1，４２ｐ2より受信値Ｙt、事前確率情報Ｐr1，Ｐr2が供給される。Ｉγ計算記憶回路４３は、受信値Ｙt、事前確率情報Ｐr1，Ｐr2を使用し、受信値Ｙt毎に（１８）式に従ってＩγを計算して記憶し、その後にＩα計算記憶回路４４、Ｉβ計算記憶回路４５及び軟出力計算回路４６にそれぞれの処理に適した順序でＩγを供給する。
【００８２】
このＩγ計算記憶回路４３は、受信値Ｙt毎に、符号パターンと受信値により決まる第１の確率γを計算する第１の計算手段として機能する。なお、Ｉγ計算記憶回路４３よりＩα計算記憶回路４４に供給されるＩγをＩγ(α)とし、Ｉγ計算記憶回路４３よりＩβ計算記憶回路４５に供給されるＩγをＩγ(β1)，Ｉγ(β2)とし、Ｉγ計算記憶回路４３より軟出力計算回路４６に供給されるＩγをＩγ(λ)とする。
【００８３】
Ｉα計算記憶回路４４には、コントローラ４１よりコントローラ信号ＳＣαが供給されるとともに、Ｉγ計算記憶回路４３よりＩγ(α)が供給される。このＩα計算記憶回路４４は、Ｉγ(α)を使用し、（１６）式に従ってＩαを計算して記憶し、その後に軟出力計算回路４６にその処理に適した順序でＩαを供給する。このＩα計算記憶回路４４は、第１の確率Ｉγに基づいて、各受信値Ｙt毎に、符号化開始ステートから時系列順に各ステートに至る第２の確率Ｉαを計算する第２の計算手段として機能する。なお、Ｉα計算記憶回路４４より軟出力計算回路４６に供給されるＩαをＩα(λ)とする。Ｉα計算記憶回路４４に供給されるＩγをＩγ(α)とする。
【００８４】
Ｉβ計算記憶回路４５には、コントローラ４１よりコントローラ信号ＳＣβが供給されるとともに、Ｉγ計算記憶回路４３よりＩγ(β1)，Ｉγ(β2)が供給される。Ｉγ(β1)，Ｉγ(β2)の間には、打切り長×２のタイムシフトがある。Ｉβ計算記憶回路４５は、Ｉγ(β1)，Ｉγ(β2)を使用し、（１７）式に従って２系統のＩβを並列的に計算して記憶し、その内の１系統のＩβを軟出力計算回路４６にその処理に適した順序で供給する。このＩβ計算記憶回路４５は、第１の確率Ｉγに基づいて、各受信値Ｙt毎に、打切りステートから時系列順とは逆順に各ステートに至る第３の確率Ｉβを計算する第３の計算手段を構成している。なお、Ｉβ計算記憶回路４５より軟出力計算回路４６に供給されるＩβをＩβ(λ)とする。
【００８５】
軟出力計算回路４６には、Ｉγ計算記憶回路４３よりＩγ(λ)が供給され、Ｉα計算記憶回路４４よりＩα(λ)が供給され、Ｉβ記憶計算回路４５よりＩβ(λ)が供給される。この軟出力計算回路４６は、Ｉγ(λ)、Ｉα(λ)、Ｉβ(λ)を使用し、（１９）式に従ってＩλtを計算し、時系列順に並べ替えて出力する。
【００８６】
次に、Ｉγ計算記憶回路４３、Ｉα計算記憶回路４４、Ｉβ計算記憶回路４５及び軟出力計算回路４６の具体構成について説明する。
【００８７】
図８は、Ｉγ計算記憶回路４３の構成を示している。このＩγ計算記憶回路４３は、受信値Ｙt、事前確率情報Ｐr1，Ｐr2、コントロール信号ＳＣγがそれぞれ入力される人力端子３０１Ｙ，３０１Ｐ1，３０１Ｐ2，３０１Ｓと、入力端子３０１Ｙに供給される受信値Ｙtを読み出しアドレス信号とし、それぞれ各ステートｍに対する受信値Ｙtの確率ＩＲ(Ｙt｜００)，ＩＲ(Ｙt｜０１)，ＩＲ(Ｙt｜１０)，ＩＲ(Ｙt｜１１)を出力するテーブルを構成するＲＯＭ（read only memory）３０２ａ〜３０２ｄとを有している。
【００８８】
また、Ｉγ計算記憶回路４３は、ＲＯＭ３０２ａ，３０２ｂより出力される確率ＩＲ(Ｙt｜００)，ＩＲ(Ｙt｜０１)に対して、入力端子３０１Ｐ1に供給される事前確率情報Ｐr1をそれぞれ加算して、トレリス上の出力[００]，[０１]に対応する各枝の確率Ｉγ[００]，Ｉγ[０１]を得るための加算器３０３ａ，３０３ｂと、ＲＯＭ３０２ｃ，３０２ｄより出力される確率ＩＲ(Ｙt｜１０)，ＩＲ(Ｙt｜１１)に対して、入力端子３０１Ｐ2に供給される事前確率情報Ｐr2をそれぞれ加算して、トレリス上の出力[１０]，[１１]に対応する各枝の確率Ｉγ[１０]，Ｉγ[１１]を得るための加算器３０３ｃ，３０３ｄとを有している。
【００８９】
ここで、加算器３０３ａ〜３０３ｄより出力される各確率Ｉγ[００]〜Ｉγ[１１]の総ビット数は、符号化率をｋ／ｎとする組織的な畳み込み符号ではビット数×２ｎである。これによりＩγ計算記憶回路４３では、各確率Ｉγ[００]〜Ｉγ[１１]を４ビットに設定し、確率Ｉγ[００]，Ｉγ[０１]，Ｉγ[１０]，Ｉγ[１１]を全体として１６ビットで出力する。
【００９０】
また、Ｉγ計算記憶回路４３は、加算器３０３ａ〜３０３ｄより出力される各確率Ｉγ[００]〜Ｉγ[１１]を、コントロール信号ＳＣγに従って、順次格納し、所定の順序で出力するＲＡＭ（random access memory）３０４ａ〜３０４ｄと、これらＲＡＭ３０ａ〜３０４ｄより出力されるＩγを、コントロール信号ＳＣγに従って、選択的に取り出してＩγ(α)，Ｉγ(β1)，Ｉγ(β2)，Ｉγ(λ)とする選択回路３０８と、これらＩγ(α)，Ｉγ(β1)，Ｉγ(β2)，Ｉγ(λ)を出力する出力端子３０９ａ〜３０９ｄとを有している。
【００９１】
図８に示すＩγ計算記憶回路４３では、受信値Ｙt毎に、ＲＯＭ３０２ａ〜３０２ｄより各ステートｍに対する受信値Ｙtの確率ＩＲ(Ｙt｜００)，ＩＲ(Ｙt｜０１)，ＩＲ(Ｙt｜１０)，ＩＲ(Ｙt｜１１)が出力され、加算器３０３ａ〜３０３ｄよりトレリス上の出力[００]，[０１]，[１０]，[１１]に対応する各枝の確率Ｉγ[００]，Ｉγ[０１]，Ｉγ[１０]，Ｉγ[１１]が得られる。そして、これら確率Ｉγ[００]〜Ｉγ[１１]がＲＡＭ３０４ａ〜３０４ｄに順次格納され、所定の順序で読み出され、選択回路３０８よりＩγ(α)，Ｉγ(β1)，Ｉγ(β2)，Ｉγ(λ)として取り出される。
【００９２】
図９は、ＲＡＭ３０４ａ〜３０４ｄのマネージメントを示すタイミングチャートである。４個のＲＡＭ３０４ａ〜３０４ｄは、それぞれ、打切り長Ｄ分、加算器３０３ａ〜３０３ｄの出力データＩγ[００]〜Ｉγ[１１]を格納できるように、１６ビット×４ワード分の記憶容量を有するバンク構成により動作し、順次循環的に確率Ｉγ[００]〜Ｉγ[１１]を格納する（図９のＡ）。なお、この図９においては、各時刻ｔ＝１，２，３，・・・の確率Ｉγ[００]〜Ｉγ[１１]をγ1，γ2，γ3，・・・で示している。
【００９３】
ＲＡＭ３０４ａ〜３０４ｄからは、打切り長Ｄの２倍の長さ２Ｄに相当する期間だけ遅延して確率Ｉγ[００]〜Ｉγ[１１]が読み出され、選択回路３０８からは、この確率Ｉγ[００]〜Ｉγ[１１]がＩα計算記憶回路４４に供給すべき確率Ｉγ(α)として取り出される（図９のＢ）。
【００９４】
また、ＲＡＭ３０４ａ，３０４ｂに２Ｄ分の確率Ｉγ[００]〜Ｉγ[１１]が書き込まれた直後から書き込み順とは逆にその確率Ｉγ[００]〜Ｉγ[１１]を読み出すことと、ＲＡＭ３０４ｃ，３０４ｄに２Ｄ分の長さの確率Ｉγ[００]〜Ｉγ[１１]が書き込まれた直後から書き込み順とは逆にその確率Ｉγ[００]〜Ｉγ[１１]を読み出すこととが交互に行われる。選択回路３０８からは、その読み出された確率Ｉγ[００]〜Ｉγ[１１]がＩβ計算記憶回路４５に供給すべき確率Ｉγ(β１)として取り出される（図９のＣ）。
【００９５】
また、ＲＡＭ３０４ｂ，３０４ｃに２Ｄ分の長さの確率Ｉγ[００]〜Ｉγ[１１]が書き込まれた直後から書き込み順とは逆にその確率Ｉγ[００]〜Ｉγ[１１]を読み出すことと、ＲＡＭ３０４ｄ，３０４ａに２Ｄ分の確率Ｉγ[００]〜Ｉγ[１１]が書き込まれた直後から書き込み順とは逆にその確率Ｉγ[００]〜Ｉγ[１１]を読み出すこととが交互に行われる。選択回路３０８からは、その読み出された確率Ｉγ[００]〜Ｉγ[１１]がＩβ計算記憶回路４５に供給すべき確率Ｉγ(β2)として取り出される（図９のＤ）。
【００９６】
さらに、ＲＡＭ３０４ａ〜３０４ｄのそれぞれに打切り長Ｄ分の確率Ｉγ[００]〜Ｉγ[１１]が書き込まれて２Ｄが経過した後に、書き込み順とは逆にその確率Ｉγ[００]〜Ｉγ[１１]が読み出さされる。選択回路３０８からは、この確率Ｉγ[００]〜Ｉγ[１１]が軟出力計算回路４６に供給すべき確率Ｉγ(λ)として取り出される（図９のＥ）。
【００９７】
図１０は、Ｉα計算記憶回路４４の構成を示している。
【００９８】
このＩα計算記憶回路４４は、確率Ｉγ(α)、コントロール信号ＳＣαがそれぞれ入力される入力端子４０１，４０２と、入力端子４０１に供給される確率Ｉγ(α)とレジスタ４０５にセットされた１時刻前のＩαとを使用し、（１６）式に従ってＩαを計算するＩα計算回路４０３と、Ｉα計算回路４０３より出力されるＩα又は初期値Ｉα0のいずれかを選択してレジスタ４０５にセットするセレクタ４０４とを有している。
【００９９】
セレクタ４０４では、コントロール信号ＳＣαに基づいて、初期化の時点のみ初期値Ｉα0が選択され、その他の時点ではＩα計算回路４０３の出力データが選択される。初期化は、Ｉγ計算記憶回路４３より確率Ｉγ(α)の出力が開始される１時刻前の時点で行われる。
【０１００】
ここで、初期値Ｉα0として、符号化の開始点が受信機側でわかっている場合には、ステート０での値としてｌｏｇ １（＝０）が、その他のステートの値としてはｌｏｇ ０（＝−∞）が与えられる。一方、符号化の開始点が受信機側で分からない場合には、定義通りであればすべてのステートに対してｌｏｇ １／Ｍ（この例ではｌｏｇ １／４）が与えられるが、実際には全てのステートに対して同じ値であればよく、例えば全てのステートに対して０を与えてもよい。
【０１０１】
図１１は、Ｉα計算回路４０３の構成を示している。
【０１０２】
このＩα計算回路４０３は、４個の加算比較選択回路４１１ａ〜４１１ｄを有して構成されている。Ｉγt[００]〜Ｉγt[１１]及び１時刻前のＩαt-1(０)〜Ｉαt-1(３)は、トレリス上の遷移に基づいて、加算比較選択回路４１１ａ〜４１１ｄに振り分けられている。各加算比較選択回路４１１ａ〜４１１ｄでは、ＩαとＩγを加算した２つの加算結果のうち大きい方が選択され、次時刻の各ステートにおけるＩαが求められる。
【０１０３】
加算比較選択回路４１１ａには、Ｉγt[００]，Ｉγt[１１]が供給されるとともに、Ｉαt-1(０)，Ｉαt-1(２)が供給され、ステート０の確率Ｉαt(０)が計算される。加算比較選択回路４１１ｂには、Ｉγt[１１]，Ｉγt[００]が供給されるとともに、Ｉαt-1(２)が供給され、ステート１の確率Ｉαt(１)が計算される。
【０１０４】
加算比較選択回路４１１ｃには、Ｉγt[１０]，Ｉγt[０１]が供給されるとともに、Ｉαt-1(１)，Ｉαt-1(３)が供給され、ステート２の確率Ｉαt(２)が計算される。さらに、加算比較選択回路４１１ｄには、Ｉγt[０１]，Ｉγt[Ｉ０]が供給されるとともに、Ｉαt-1(１)，Ｉαt-1(３)が供給され、ステート３の確率Ｉαt(３)が計算される。
【０１０５】
各加算比較選択回路４１１ａ〜４１１ｄは、図１２に示すように、共通に構成されている。以下、加算比較選択回路４１１ａに関して説明する。Ｉγt[００]，（図３において、ステート０に至る破線による枝の確率）及びＩαt-1(０)（図３において、１時刻前のステート０に至る確率）が加算器４２Ｉで加算される。また、Ｉγt[１１]（図５において、ステート０に至る実線による枝の確率）及びＩαt-1(２)（図５において、１時刻前のステート２までの確率）が加算器４２２で加算される。そして、加算器４２１，４２２の加算結果が比較回路４２３で比較され、セレクタ４２４では加算器４２１，４２２の加算結果のうち大きい方が確率Ｉαt(０)として取り出される。説明は省略するが、加算比較選択回路４１１ｂ〜４１１ｄに関しても同様である。
【０１０６】
また、図１０に戻って、Ｉα計算記憶回路４４は、レジスタ４０５より出力される確率Ｉα(０)〜Ｉα(３)を、コントロール信号ＳＣαに従って、順次格納し、所定の順序で出力するＲＡＭ４０６，４０７と、これらＲＡＭ４０６，４０７より出力されるＩαを、コントロール信号ＳＣαに従って、選択的に取り出してＩγ(λ)とする選択回路４０８と、このＩα(λ)を出力する出力端子４０９とを有している。ここで、Ｉα計算回路４０３より出力される確率Ｉαt(０)〜Ｉαt(３)のビット数は、Ｉαのビット数を８ビットとすると、３２ビットとなる。ＲＡＭ４０６，４０７には、この３２ビットを１ワードとして記録が行われる。
【０１０７】
図１０に示すＩα計算記憶回路４４では、Ｉγ計算記憶回路４３より確率Ｉγ（α）（図９のＢ、図１３のＡ参照）の出力が開始される直前時点で初期化が行われる。初期化では、セレクタ４０４で初期値Ｉα0が選択され、レジスタ４０５に初期値Ｉα0（Ｉα0[００]〜Ｉα0[１１]）がセットされる（図１３のＢ）。そして、続くクロック周期からは、Ｉα計算回路４０３で、Ｉγ計算記憶回路４３より供給される確率Ｉγ(α)と、レジスタ４０５より出力される確率Ｉαt-1とから、次時刻の１αtが順次計算され（図１３のＢ）、そのＩαtが改めてレジスタ４０５に格納される。なお、図１３においては、各時刻ｔ＝１，２，３，・・・に対応する確率Ｉα(０)〜Ｉα(３)を、それぞれα1，α2，α3，・・・で示している。
【０１０８】
図１０のＣ，Ｄは、ＲＡＭ４０６，４０７のマネージメントを示している。２個のＲＡＭ４０６，４０７は、それぞれ、打切り長Ｄ分、レジスタ４０５の出力データすなわち確率Ｉα(０)〜Ｉα(３)を格納できるように、３２ビット×４ワード分の記憶容量を有するバンク構成により動作し、順次循環的に確率Ｉα(０)〜Ｉα(３)が格納される（図１３のＣ）。
【０１０９】
また、ＲＡＭ４０６に打切り長Ｄ分の確率Ｉα(０)〜Ｉα(３)が書き込まれた直後から書き込み順とは逆にその確率Ｉα(０)〜Ｉα(３)を読み出すことと、ＲＡＭ４０７に打切り長Ｄ分の確率Ｉα(０)〜Ｉα(３)が書き込まれた直後から書き込み順とは逆にその確率Ｉα(０)〜Ｉα(３)を読み出すこととが交互に行われる。選択回路４０８からは、その読み出された確率Ｉα(０)〜Ｉα(３)が軟出力計算回路４６に供給すべき確率Ｉα(λ)として取り出される（図１３のＤ）。
【０１１０】
図１４は、Ｉβ計算記憶回路４５の構成を示している。
【０１１１】
このＩβ計算記憶回路４５は、確率Ｉγ(β1)，Ｉγ(β2)、コントロール信号ＳＣβがそれぞれ入力される入力端子５０１，５０２，５０３と、入力端子５０１に供給される確率Ｉγ(β1)とレジスタ５０６にセットされている確率Ｉβとを使用し、（１７）式に従ってＩβを計算するＩβ計算回路５０４と、Ｉβ計算回路５０４より出力されるＩβ又は初期値Ｉβａのいずれかを選択してレジスタ５０６にセットするセレクタ５０５とを有している。
【０１１２】
セレクタ５０５では、コントロール信号ＳＣβに基づいて、初期化の時点のみ初期値Ｉβａが選択され、その他の時点ではＩβ計算回路５０４の出力データが選択される。初期化は、Ｉγ計算記憶回路４３より確率Ｉγ(β1)の出力が開始される直前時点に行われるとともに、その後は２Ｄ（Ｄは打切り長）の周期毎に行われる。ここで、初期値Ｉβａとして、通常はすべてのステートに対して同じ値、例えば０やlog １／Ｍ（この例ではlog １／４）が与えられるが、終結された符号を復号する際には、終結するステートでの値としてlog １（＝０）が、その他のステートでの値としてlog ０（＝−∞）が与えられる。
【０１１３】
図１５は、Ｉβ計算回路５０４の構成を示している。このＩβ計算回路５０４は、４個の加算比較選択回路５１１ａ〜５１１ｄを有して構成されている。Ｉγt [００]〜Ｉγt[１１]及びＩβt(０)〜Ｉβαt(３)は、トレリス上の遷移に基づいて、加算比較選択回路５１１ａ〜５１１ｄに振り分けられている。各加算比較選択回路５１１ａ〜５１１ｄでは、ＩβとＩγを加算した２つの加算結果のうち大きい方が選択され、前時刻の各ステートにおけるＩβが求められる。
【０１１４】
加算比較選択回路５１１ａには、Ｉγt[００]，Ｉγt[１１]が供給されるとともに、Ｉβt(０)，Ｉβt(１)が供給され、ステート０の確率Ｉβt-1(０)が計算される。加算比較選択回路５１１ｂには、Ｉγt[１０]，Ｉγt[０１]が供給されるとともに、Ｉβt(２)，Ｉβt(３)が供給され、ステート１の確率Ｉβt-1(１)が計算される。
【０１１５】
加算比較選択回路５１１ｃには、Ｉγt[１１]，Ｉγt[００]が供給されるとともに、Ｉβt(０)，Ｉβt(１)が供給され、ステート２の確率Ｉβt-1(２)が計算される。さらに、加算比較選択回路５１１ｄには、Ｉγt[０１]，Ｉγt[１０]が供給されるとともに、Ｉβt(２)，Ｉβt(３)が供給され、ステート３の確率Ｉβt-1(３)が計算される。
【０１１６】
各加算比較選択回路５１１ａ〜５１１ｄは、図１６に示すように、共通に構成されている。以下、加算比較選択回路５１１ａに関して説明する。Ｉγt[００]，（図３において、ステート０に至る破線による枝の確率）及びＩβt(０)（図５において、打ち切り長の終点から時間軸を遡ってステート０に至る確率）が加算器５２１で加算される。
【０１１７】
また、Ｉγt[１１]（図５において、ステート０に至る実線による枝の確率）及びＩβt(１)（図５において、打ち切り長の終点から時間軸を遡ってステート１に至る確率）が加算器５２２で加算される。そして、加算器５２１，５２２の加算結果が比較回路５２３で比較され、セレクタ５２４では加算器５２１，５２２の加算結果のうち大きい方が確率Ｉβt-1(０)として取り出される。説明は省略するが、加算比較選択回路５１１ｂ〜５１１ｄに関しても同様である。
【０１１８】
また、図１４に戻って、Ｉβ計算記憶回路４５は、入力端子５０２に供給される確率Ｉγ(β2)とレジスタ５０９にセットされている確率Ｉβとを使用し、（１７）式に従ってＩβを計算するＩβ計算回路５０７と、Ｉβ計算回路５０７より出力されるＩβ又は初期値Ｉβｂのいずれかを選択してレジスタ５０９にセットするセレクタ５０８とを有している。
【０１１９】
セレクタ５０８では、コントロール信号ＳＣβに基づいて、初期化の時点のみ初期値Ｉβｂが選択され、その他の時点ではＩβ計算回路５０７の出力データが選択される。初期化は、Ｉγ計算記憶回路４３より確率Ｉγ(β2)の出力が開始される直前時点で行われるとともに、その後は２Ｄ（Ｄは打切り長）の周期毎に行われる。ここで、初期値Ｉβｂも、上述した初期値Ｉβａと同様に設定される。なお、詳細説明は省略するが、Ｉβ計算回路５０７は、上述したＩβ計算回路５０４（図１５、図１６参照）と同様に構成されている。
【０１２０】
また、Ｉβ計算記憶回路４５は、レジスタ５０６，５０９より出力される確率Ｉβ(０)〜Ｉβ(３)を、コントロール信号ＳＣβに従って、選択的に取り出してＩβ(λ)とする選択回路５１０と、このＩβ(λ)を出力する出力端子５１２とを有している。ここで、Ｉβ計算回路５０４，５０７のそれぞれより出力される確率Ｉβt-1(０)〜Ｉβt-1(３)のビット数は、Ｉβのビット数を８ビットとすると、３２ビットとなる。
【０１２１】
図１４に示すＩβ計算記憶回路４５では、Ｉγ計算記憶回路４３より確率Ｉγ(β1)（図９のＣ、図１７のＡ参照）の出力が開始される直前時点及びその後の２Ｄの周期毎にレジスタ５０６の初期化が行われる。
【０１２２】
この初期化では、セレクタ５０５で初期値Ｉβａが選択され、レジスタ５０６に初期値Ｉβａがセットされる。そして、続くクロック周期からは、Ｉβ計算回路５０４で、Ｉγ計算記憶回路４３より供給される確率Ｉγ(β1)と、レジスタ５０６より出力されるＩβtとから、前時刻のＩβt-1が順次計算され、そのＩβt-1が改めてレジスタ５０６に格納されて、次のクロック時点における出力となる（図１７のＣ）。なお、図１７においては、各時刻ｔ＝１，２，３，・・・に対応する確率Ｉβ(０)〜Ｉβ(３)を、それぞれβ1，β2，β3，・・・で示している。
【０１２３】
また、Ｉγ計算記憶回路４３より確率Ｉγ(β2)（図９のＤ、図１７のＢ参照）の出力が開始される直前時点及びその後の２Ｄの周期毎にレジスタ５０９の初期化が行われる。この初期化では、セレクタ５０８で初期値Ｉβｂが選択され、レジスタ５０９に初期値Ｉαｂがセットされる。そして、続くクロック周期からは、Ｉβ計算回路５０７で、Ｉγ計算記憶回路４３より供給される確率Ｉγ(β2)と、レジスタ５０９より出力されるＩβtとから、前時刻のＩβt-1が順次計算され、そのＩβt-1が改めてレジスタ５０９に格納されて、次のクロック時点における出力となる（図１７のＤ）。そして、選択回路５１０では、図１７のＥに示すようにレジスタ５０６，５０９の出力が選択的に取り出され、軟出力計算回路４６に供給すべき確率Ｉβ(λ)が得られる。
【０１２４】
図１８は、軟出力計算回路４６の構成を示している。この軟出力計算回路４６は、確率Ｉα(λ)，Ｉβ(λ)，Ｉγ(λ)がそれぞれ入力される入力端子６０１，６０２，６０３と、これら確率Ｉα(λ)，Ｉβ(λ)，Ｉγ(λ)を使用して、（１９）式の右辺第１項、第２項をそれぞれ計算するＩλ1計算回路６０４、Ｉλ0計算回路６０５と、これら計算回路６０４の出力Ｉλ1より計算回路６０５の出力Ｉλ0を減算して（１９）式のＩλtを得る減算器６０６と、この減算器６０６より出力されるＩλtを時系列順に並べ替えて出力するＬＩＦＯ(Last−in first−out)メモリ６０７と、この軟出力Ｉλtを出力する出力端子６０８とを有している。
【０１２５】
図１９は、Ｉλ1計算回路６０４の構成を示している。
【０１２６】
このＩλ1計算回路６０４は、４個の加算器６０４ａ〜６０４ｄと、最大値選択回路６０４ｅとを備えて構成される。加算器６０４ａ〜６０４ｄには、トレリス上の状態遷移に基づいて、信号が以下のように振り分けられている。すなわち、加算器６０４ａにはＩαt-1(０)，Ｉβt(１)，Ｉγt[１１]が供給され、加算器６０４ｂにはＩαt-1(１)，Ｉβt(２)，Ｉγt[１０]が供給され、加算器６０４ｃにはＩαt-1(２)，Ｉβt(０)，Ｉγt[１１]が供給され、さらに加算器６０４ｄにはＩαt-1(３)，Ｉβt(３)，Ｉγt[１０]が供給される。
【０１２７】
そして、各加算器６０４ａ〜６０４ｄの加算結果の最大値が最大値選択回路６０４ｅで選択され、それがＩλ1として出力される。
【０１２８】
同様に、図２０は、Ｉλ0計算回路６０５の構成を示している。
【０１２９】
このＩλ０計算回路６０５は、４個の加算器６０５ａ〜６０５ｄと、最大値選択回路６０５ｅとを備えて構成される。加算器６０４ａ〜６０４ｄには、トレリス上の状態遷移に基づいて、信号が以下のように振り分けられている。すなわち、加算器６０５ａにはＩαt-1(０)，Ｉβt(０)，Ｉγt[００]が供給され、加算器６０５ｂにはＩαt-1(１)，Ｉβt(３)，Ｉγt[０１]が供給され、加算器６０５ｃにはＩαt-1(２)，Ｉβt(１)，Ｉγt[００]が供給され、さらに加算器６０５ｄにはＩαt-1(３)，Ｉβt(２)，Ｉγt[０１]が供給される。そして、各加算器６０５ａ〜６０５ｄの加算結果の最大値が最大値選択回路６０５ｅで選択され、それがＩλ0として出力される。
【０１３０】
図１８に示す軟出力計算回路４６では、入力端子６０１，６０２，６０３にそれぞれ確率Ｉα(λ)，Ｉβ(λ)，Ｉγ(λ)が供給される（図２１のＡ，Ｂ，Ｃ）。そして、各クロック周期毎に、Ｉλ1計算回路６０４では（１９）式の右辺第１項の計算が行われてＩλ1が得られるとともに、Ｉλ0計算回路６０５では（１９）式の右辺第２項の計算が行われてＩλ0が得られ、減算器６０６より各時刻ｔのＩλtが出力される（図２１のＤ）。そして、減算器６０６より順次出力されるＩλtがＬＩＦＯメモリ６０７に供給されて並べ替えが行われ、このＬＩＦＯメモリ６０７より時系列順に並べ替えられた軟出力Ｉλtが出力される。なお、図２１においては、各時刻ｔ＝１，２，３，・・・に対応する軟出力Ｉλtを、それぞれλ1，λ2，λ3，・・・で示している。
【０１３１】
次に、上述した復号器４において、コントローラ４１によるメモリマネジメントを、図面を用いてさらに詳細に説明する。図２２Ａ，図２２Ｂ，図２２Ｃ，図２２Ｄは、ＲＡＭ３０４ａ〜３０４ｄ、レジスタ４０５、ＲＡＭ４０６，４０７、レジスタ５０６，５０９の記憶内容と出力を時系列順に図示することで、メモリマネジメントの内容を示している。
【０１３２】
ＲＡＭ３０４ａ〜３０４ｄ、ＲＡＭ４０６，４０７において、「↓」印は指示するアドレスへの書き込みを意味し、「↑」印は指示するアドレスからの読み出しを意味している。
【０１３３】
図２２Ａ，図２２Ｂ，図２２Ｃ，図２２Ｄの中で、例えばｔ＝１３においては、以下の（１）〜（６）の操作が同時に行われている。
【０１３４】
（１）Ｉγ13をＲＡＭ３０４ｄに格納する。
【０１３５】
（２）レジスタ４０５より出力されるＩα4とＲＡＭ３０４ｂから出力されるＩγ5をもとにＩα5を求めて、改めてレジスタ４０５に格納する。
【０１３６】
（３）レジスタ４０５から出力される前時刻に求めたＩα4をＲＡＭ４０７に格納する。
【０１３７】
（４）レジスタ５０６より出力されるＩβ4と、ＲＡＭ３０４ａから出力されるＩγ4をもとにＩβ3を求めて、改めてレジスタ５０６に格納する。
【０１３８】
（５）レジスタ５０９から出力されるＩβ12とＲＡＭ３０４ｃから出力されるＩγ12をもとにＩβ11を求めて、改めてレジスタ５０９に格納する。
【０１３９】
（６）レジスタ５０６から出力されるＩβ4と、ＲＡＭ３０４ａから出力されるＩγ4と、ＲＡＭ４０６から出力されるＩα3をもとに、Ｉλ4を求める。
【０１４０】
他の時刻についても同様な操作が行われている。これを繰り返すことで、１時刻に１つずつλtを求めることができる。ただし、この方法ではλtが本来の時系列に対して逆順に求まるので、上述したようにＬＩＦＯメモリ６０７を利用して、軟出力λtを本来の時系列順に並べ替えてから出力する。図２３は、以上の操作に基づくメモリマネジメントのｔ＝１３〜ｔ＝２０のタイミングチャートを示している。
【０１４１】
以上説明したように、本実施の形態においては、打切り長内のＩβの計算（図１４のＩβ計算回路５０７による計算）と、打切り長以上遡ったＩβの計算（図１４のＩβ計算回路５０４による計算）とを並列的に行うものであり、１クロックあたりのＩβの計算はステート数×２となる。そのため、従来のＳＷ−Ｍａｘ−Ｌｏｇ−ＢＣＪＲアルゴリズムに比べて計算量を大幅に削減できる。また、１クロックあたりの各メモリに対するアクセスが１回で済む。したがって、本実施に形態によれば、畳み込み符号の復号動作を高速に行うことが可能となる。
【０１４２】
なお、上述実施の形態におけるメモリマネジメントは、Ｉα，Ｉβ，Ｉγの計算方法にはよらないので、例えばＩγの計算法としてＲＯＭテーブル参照以外の方法を用いることもできる。
【０１４３】
また、図１１、図１５、図１９、図２０に示した計算回路に、（２０）式に示した補正を組み込むことでＳＷ−Ｌog−ＢＣＪＲアルゴリズムを実装することも可能である。以下、ＳＷ−Ｌog−ＢＣＪＲアルゴリズムに基づいた軟出力Ｉλtを求める場合を説明する。
【０１４４】
例として、図１１の回路に（２０）式に示した補正を組み込む場合を説明する。
【０１４５】
（２０）式に示した補正を組み込むためには、各加算比較選択回路４１１ａ〜４１１ｄを、図１２に示すような構成から、図２４に示すような構成に置き換える必要がある。この図２４において、図９と対応する部分には同一符号を付して示している。
【０１４６】
加算比較選択回路４１１ａに関して説明する。Ｉγt[００]及びＩαt-1(０)が加算器４２１で加算される。また、Ｉγt[１１]及びＩαt-1(２)が加算器４２２で加算される。そして、減算器４２６により加算器４２１，４２２の加算結果ｘ，ｙの減算が減算器４２６で行われ、その減算結果（ｘ−ｙ）が正負判定回路４２７に供給される。正負判定回路４２７からは、減算結果（ｘ−ｙ）が０以上であるときは“１”の信号が出力され、０より小さいときは“０”の信号が出力される。
【０１４７】
正負判定回路４２７の出力信号がセレクタ４２４に選択信号ＳＥＬとして供給される。そして、セレクタ４２４では、選択信号ＳＥＬが“１”の信号であるときは加算４２１の加算結果ｘが取り出され、一方選択信号ＳＥＬが“０”の信号であるときは加算４２２の加算結果ｙが取り出される。これにより、セレクタ４２４では、加算器４２１，４２２の加算結果ｘ，ｙのうち大きい方が選択的に取り出されることとなり、（２０）式の右辺第１項に相当する演算が行われることとなる。
【０１４８】
また、減算器４２６の減算結果（ｘ−ｙ）が絶対値算出回路４２８に供給されて絶対値｜ｘ−ｙ｜が算出される。そして、この絶対値｜ｘ−ｙ｜がテーブルを構成するＲＯＭ４２９に読み出しアドレス信号として供給され、ＲＯＭ４２９からは、（２０）式に右辺第２項であるｌｏｇ (１＋ｅ−｜ｘ−ｙ｜)が得られる。そして、加算器４３０によりセレクタ４２４の出力信号ｍａｘ(ｘ−ｙ)とＲＯＭ４２９の出力信号ｌｏｇ (１＋ｅ−｜ｘ−ｙ｜)とが加算され、その加算結果が確率Ｉαt(０)として出力される。この確率Ｉαt(０)はＳＷ−Ｌｏｇ−ＢＣＪＲアルゴリズムに基づいたものとなる。なお、説明は省略するが、加算比較選択回路４１１ｂ〜４１１ｄに関しても同様である。
【０１４９】
以上は図１１の回路に（２０）式に示した補正を組み込む場合を説明したが、図１５、図１９、図２０に示した回路に関しても（２０）式に示した補正を同様に行うことができ、これによってＳＷ−Ｌｏｇ−ＢＣＪＲアルゴリズムを実装することが可能になる。
【０１５０】
なお、上述の実施の形態では、拘束長＝３、打切り長＝４の場合を例としたが、拘束長、打切り長はこの値に限らず任意の値とすることができる。またメモリの読み書きの内容が同じでも、シングルポートのＲＡＭではなくマルチポートのＲＡＭを用いることによって、例えばＲＡＭ３０４ａ〜３０４ｄを２つのデュアルポートＲＡＭに置き換えたり、ＲＡＭ４０６，４０７を１つのデュアルポートＲＡＭに置き換えたりするなど、ＲＡＭの構成には種々の変形が可能である。
【０１５１】
また、ＩαではなくＩβをＲＡＭで記憶するなど、メモリマネジメントには種々の変形が可能である。さらに以上の例は、ＳＷ−Ｍａｘ−Ｌｏｇ−ＢＣＪＲアルゴリズム及びＳＷ−Ｌｏｇ−ＢＣＪＲアルゴリズムを扱ったが、これも他の軟出力復号アルゴリズムへの応用など種々の変形が考えられる。
【０１５２】
なお、上述実施の形態では、ＲＡＭ３０４ａ〜３０４ｄから打切り長Ｄの２倍の長さ２Ｄに相当する期間だけ遅延して確率Ｉγ[００]〜Ｉγ[１１]を読み出して、軟出力を復号するようにしたが、確率情報の遅延期間は打切り長Ｄの２倍の長さ２Ｄに限られることなく、打切り長Ｄ以上であればよい。
【０１５３】
例えば、図２５に示すように、上述の図８に示したＩγ計算記憶回路４３にＲＡＭ３０４ｅを増設して、確率情報を打切り長Ｄの３倍の長さ３Ｄに相当する期間だけ遅延するようにしてもよい。
【０１５４】
この図２５に示す構成のＩγ計算記憶回路４３では、加算器３０３ａ〜３０３ｄより得られるトレリス上の出力[００]，[０１]，[１０]，[１１]に対応する各枝の確率Ｉγ[００]，Ｉγ[０１]，Ｉγ[１０]，Ｉγ[１１]をＲＡＭ３０４ａ〜３０４ｅに順次格納し（図２６のＡ）、打切り長Ｄの３倍の長さ３Ｄに相当する期間だけ遅延して保持したデータＩγ[００]〜Ｉγ[１１]を出力する。そして、選択回路３０８は、このようにして遅延して出力される確率Ｉγ[００]〜Ｉγ[１１]をＩα計算記憶回路１３に対する確率Ｉγ(α)として出力する（図２６のＢ，Ｃ）。
【０１５５】
また、ＲＡＭ３０４ａ〜３０４ｅ及び選択回路３０８は、確率Ｉγ[００]〜Ｉγ[１１]を打切り長Ｄ単位で区切り、各打切り長Ｄの終端より時間軸方向に打切り長Ｄだけ経過した時点に基準時点を設定する。ＲＡＭ３０４ａ〜３０４ｅ及び選択回路３０８は、これら各基準時点までの打切り長Ｄの２倍に対応する確率Ｉγ[００]〜Ｉγ[１１]が蓄積されると、これらの確率Ｉγ[００]〜Ｉγ[１１]を入力順とは逆の順序により出力する。これによりＲＡＭ３０４ａ〜３０４ｅ及び選択回路３０８は、確率Ｉγ[００]〜Ｉγ[１１]をＩβ計算記憶回路４５に対する第１の確率Ｉγ(β1)として出力し（図２６のＤ，Ｅ）、また、この第１の確率Ｉγ(β1)に対して打切り長Ｄの分だけ遅延した確率Ｉγにより構成される確率Ｉγ[００]〜Ｉγ[１１]を、同様の順序によりＩβ計算記憶回路４５に対する第２の確率Ｉγ(β2)として出力する（図２６のＦ，Ｇ）。
【０１５６】
これに対してＲＡＭ３０４ａ〜３０４ｅ及び選択回路３０８は、軟出力計算回路４６に対する確率Ｉγ(λ)にあっては、Ｉα計算記憶回路４４に対する順序により所定時間遅延したタイミングにより保持した確率Ｉγ[００]〜Ｉγ[１１]を出力する。これらによりＩγ計算記憶回路４３は、第１の確率ＩγをＩα計算記憶回路４４、Ｉβ計算記憶回路４５、軟出力計算回路４６の処理に対応した順序により出力する。
【０１５７】
また、Ｉβ計算記憶回路４５は、図２７に示すように、Ｉβ計算回路５０４，５０７により計算した確率βt-1(０)〜βt-1(３)を選択回路５１０にＲＡＭ５１３，５１４を介して供給する。
【０１５８】
この図２７に示すＩβ計算記憶回路４５において、Ｉβ計算回路５０４，５０７、それぞれレジスタ５０６，５０９から入力される１クロック周期だけ先行した確率βt(０)〜βt(３)を基準にして、Ｉγ計算記憶回路４３から出力される第１の確率Ｉγ(β1)及び第２の確率Ｉγ(β2)より受信値Ｙtの各ステートまで遡る確率βt-1(０)〜βt-1(３)を計算する。
【０１５９】
すなわち、このＩβ計算記憶回路４５において、セレクタ５０５，５０８は、コントロール信号ＳＣβにより、それぞれＩβ計算回路５０４，５０７から出力される１クロック周期だけ先行した確率βt(０)〜βt(３)又は初期値Ｉβａ，Ｉβｂをレジスタ５０６，５０９に選択出力する。
【０１６０】
ここで、初期値Ｉβａ，Ｉβｂは、上述の如く、通常はすべてのステートに対して同じ値、例えば０やlog １／Ｍ（この例ではlog １／４）が与えられるが、終結された符号を復号する際には、終結するステートでの値としてlog １（＝０）が、その他のステートでの値としてlog ０（＝−∞）が与えられる。
【０１６１】
そして、セレクタ５０５，５０８は、図２８に示すように、上述した打切り長Ｄの２倍の長さ２Ｄを単位にした時系列を遡った第１の確率Ｉγ(β１)及び第２の確率Ｉγ(β2)の繰り返しに対応して、それぞれ第１の確率Ｉγ(β１)及び第２の確率Ｉγ(β2)の繰り返しがこの長さ２Ｄを単位にして切り換わる１クロック周期前のタイミングで初期値Ｉβａ，Ｉβｂをレジスタ５０６，５０９に選択出力する（図２８のＡ，Ｂ，Ｄ，Ｅ）。また、これ以外のタイミングにおいては、Ｉβ計算回路５０４，５０７から出力される１クロック周期だけ先行した確率βt(０)〜βt(３)を選択出力する。
【０１６２】
また、ＲＡＭ５１３，５１４は、それぞれ打切り長分だけ確率βt-1(０)〜βt-1(３)を格納できる容量を有するバンク構成により形成され、このようにして打切り長分だけ変位して、かつ打切り長Ｄの２倍の周期を単位にして得られる確率βt-1(０)〜βt-1(３)から（図２８のＢ〜Ｄ）、それぞれ後半の打切り長分の部分で得られる確率βt-1(０)〜βt-1(３)を順次循環的に入力する。これによりＲＡＭ５１３，５１４は、初期値Ｉβａ，Ｉβｂを基準にして計算した２系統の確率βt-1(０)〜βt-1(３)より充分に信頼性に足る部分を選択的に取り込む。さらに、ＲＡＭ５１３，５１４は、このようにして格納した確率βt-1(０)〜βt-1(３)を時系列順に出力する。
【０１６３】
このＩβ計算記憶回路４５は、少なくとも第１の確率Ｉγについて設定した各基準時点より対応する打切り長の範囲で、複数系列により同時並列的に第１の確率Ｉγを処理して複数系列により第３の確率Ｉβを計算し、これら複数系列の確率Ｉβより打ち切り長の確率Ｉβを選択出力することになる。なお、この実施の形態では、これら基準時点が各打切り長に続く続く打切り長の終了時点に設定されていることになる。
【０１６４】
そして、選択回路５１０は、このような順序によりＲＡＭ５１３，５１４から打切り長Ｄを単位にして交互に出力される確率βt-1(０)〜βt-1(３)を軟出力計算回路１５に出力する。
【０１６５】
以上の構成において、入力ｉtは、畳み込み符号器２において拘束長３により畳み込み符号化処理され、ここでステート数ｍが４の出力系列Ｘtに変換され、この出力系列Ｘtが無記憶通信路３を介して復号器４に入力される。この復号器４において、入力信号は、アナログディジタル変換処理により受信値Ｙtが検出され、この受信値ＹtがＩγ計算記憶回路４３に入力される。
【０１６６】
このＩγ計算記憶回路４３において、受信値Ｙtは、各ステートに対応するＲＯＭ３０２ａ〜３０２ｄのテーブルにより、各ステートに対応する受信値Ｙtの確率が計算され（（１６）式の右辺第１項）、加算器３０３ａ〜３０３ｄにより初期値ｌｏｇ Ｐr{ｉt＝０}、ｌｏｇ Ｐr{ｉt＝１}と加算され、これにより時系列により各ステートｍに対応する第１の確率Ｉγが順次計算される（図２６のＡ）。
【０１６７】
このようにして計算された第１の確率Ｉγは、打切り長Ｄを単位にして形成されたバンク構成のＲＡＭ３０４ａ〜３０４ｅに順次格納され、打切り長Ｄの３倍に対応する期間だけ遅延して、時系列順に、Ｉα計算記憶回路４３に出力される（図２６のＣ）。これによりＩα計算記憶回路４３に対して、このα計算記憶回路４３における処理に適した順序、タイミングにより第１の確率Ｉγ(α)が出力される。
【０１６８】
また第１の確率Ｉγは、打切り長Ｄ単位で区切られ、各打切り長Ｄよりさらに打切り長分だけ時間経過した時点に各基準時点が設定され、各打切り長から対応する基準時点までＲＡＭ３０４ａ〜３０４ｅに蓄積されると、各基準点から時間軸を遡る順序によりＩβ計算記憶回路４５に出力される（図２６のＤ〜Ｇ）。このときこの基準時点が、続く打切り長の終了時点に設定されていることにより、第１の確率Ｉγは、１の打切り長から対応する基準時点までの分の出力が完了しないうちに、続く１の打切り長から対応する基準時点までの分の出力が開始され、これにより１の打切り長だけ内容及びタイミングかシフトした２系統により、時間軸を遡る順序でＩβ計算記憶回路４５に出力される（図２６のＤ〜Ｇ）。これによりＩβ計算記憶回路４５に対して、このβ計算記憶回路４５における処理に適した順序、タイミングにより２系統の第２の確率Ｉγ(β1)，Ｉγ(β2)が出力される。
【０１６９】
また、第１の確率Ｉγは、Ｉα計算記憶回路４４への出力と同様に、所定期間だけ遅延して、時系列順に、軟出力計算回路４６における処理に適した順序及びタイミングで軟出力計算回路４６に出力される。
【０１７０】
そして、Ｉα計算記憶回路４４において、第１の確率Ｉγから各受信値毎に時間軸に沿った方向に各ステートに至る第２の確率α(λ)が算出されて軟出力計算回路４６における処理に適した順序及びタイミングで軟出力計算回路４６に出力される。
【０１７１】
これに対してＩβ計算記憶回路４５において、時間軸を遡る順序により入力される２系統の確率Ｉγ(β1)，Ｉγ(β2)は、それぞれＩβ計算回路５０４，５０７において、１クロック後の対応するステートの確率βtと加算された後、値の大きなものが選択され、これにより各ステート毎に時間軸を遡る方向の確率が計算される。さらに、このようにして順次計算される確率がセレクタ５０５，５０８により初期値Ｉβａ，Ｉβｂと選択的にＩβ計算回路５０４，５０７に帰還されることにより、上述した基準時点より時間軸を遡る方向の確率が同時並列的に計算される（図２８のＡ，Ｂ，Ｄ，Ｅ）。
【０１７２】
このようにして計算された２系統の確率は、基準点より遠ざかって十分な信頼性による打切り長の確率が選択的に格納されて出力される。このとき、ＲＡＭ５１３，５１４を介した確率の選択出力の際に、これら確率Ｉβ(λ)は、格納時とは逆の時間軸に沿った順序に並び替えられて、軟出力計算回路４６に出力される。これにより、第３の確率Ｉβ(λ)も、時系列に沿った軟出力計算回路４６の処理に対応した順序により出力される。
【０１７３】
軟出力計算回路４６においては、図７に示すように、入力される確率Ｉα(λ)、Ｉβ(λ)、Ｉγ(λ)を並べ直すことなく、また、計算した軟出力Ｉλを並べ直すことなく、処理することがてき、これらにより簡易な構成で軟出力を得ることができる。
【０１７４】
また、１のシンボルを復号する際に、拘束長×ステート数の計算に代えて、２系統×ステート数の計算により第３の確率Ｉβを計算できることにより、その分演算処理量が低減され、全体構成が簡略化される。
【０１７５】
すなわち、このようにして軟出力計算回路４６に入力された確率Ｉα(λ)、Ｉβ(λ)、Ｉγ(λ)は、対応するステート毎に加算され、これらの最大値がそれぞれ値「１」及び値「０」の入力毎に検出された後、減算器６０６により減算されことにより得られる軟出力Ｉλtが受信値Ｙtに対応する時系列順に出力される。
【０１７６】
このように、第１の確率Ｉγを打切り長Ｄで区切って対応する基準時刻を設定し、各基準時刻より打ち切り長の確率Ｉγを単位にして、時間軸を遡る順序で複数系統により出力して処理するように構成し、このときそれぞれ続く処理に適した順序により第１、第２及び第３の確率Ｉγ、Ｉα、Ｉβを出力することにより、拘束長×ステート数の計算に代えて、２系統×ステート数の計算により各シンボルの軟出力を得ることができる。このとき軟出力計算回路において、入力された確率Ｉγ、Ｉα、Ｉβ又は計算した軟出力Ｉλを並べ直すことなく、軟出力Ｉλを計算することができる。これにより簡易な構成で、軟出力を復号することができる。
【０１７７】
なお、上述の実施の形態においては、打切り長を単位にして基準時刻を設定する場合について述べたが、本発明はこれに限らず、必要に応じて種々の位置に基準時刻を設定することができる。また、このようにして設定する基準時刻により、１の基準時刻から対応する打切り長までの長さが上述の実施の形態より長くなった場合、その分第１の確率Ｉγを多くの系統により出力し、またＩβ計算記憶回路において、このようにして出力される確率Ｉγに対応する系統により処理することが必要になる。
【０１７８】
また上述の実施の形態においては、打切り長＝４により軟出力を計算する場合について述べたが、本発明はこれに限らず、必要に応じて打切り長を種々の長さに設定することができる。
【０１７９】
さらに上述の実施の形態においては、拘束長＝３により畳み込み符号化処理する場合について述べたが、本発明はこれに限らず、種々の拘束長による畳み込み符号を処理する場合に広く適用することかできる。
【０１８０】
また、上述の実施の形態においては、ＳＷ−Ｍａｘ−Ｌｏｇ−ＢＯＪＲアルゴリズムにより軟出力を計算する場合について述べたが、本発明はこれに限らず、ＳＷ−Ｌｏｇ−ＢＣＪＲアルゴリズム等、種々の軟出力復号アルゴリズムにより軟出力を計算する場合に広く適用することができる。
【０１８１】
以上のように、本発明によれば、確率情報を打切り長Ｄ以上記憶し、打切り長Ｄ内の確率情報の更新と、打切り長外の軟出力の計算とを並列的に実行することにより、１クロックあたりの計算量及び各メモリに対するアクセス量を大幅に削減でき、畳み込み符号の復号動作を高速に行うことができる。また、打切り長以上の範囲を単位にして時間軸を遡る方向に各ステートに至る確率を複数系列で計算して処理することにより軟出力を計算するようにし、このとき計算した確率を続く計算処理に適した順序により出力することにより、簡易な構成で、軟出力を復号することができる軟出力復号装置及び軟出力の復号方法を得ることができる。
【図面の簡単な説明】
【図１】  ＢＣＪＲアルゴリズム内のαt，βt，γtの内容を説明するための図である。
【図２】  ＳＷ・ＢＣＪＲアルゴリズムの内容を説明するための図である。
【図３】  この発明を適用した通信モデルを示すブロック図である。
【図４】  上記通信モデルにおける畳み込み符号器の構成を示すブロック図である。
【図５】  上記畳み込み符号器のトレリスを示す図である。
【図６】  上記通信モデルにおける復号器の構成を示すブロック図である。
【図７】  上記通信モデルにおける軟出力計算の手順を説明するための図である。
【図８】  上記復号器におけるＩγ計算記憶回路の構成を示すブロック図である。
【図９】  上記Ｉγ計算記憶回路を構成するＲＡＭ等の動作を説明するためのタイムチャートである。
【図１０】  上記復号器におけるＩα計算記憶回路の構成を示すブロック図である。
【図１１】  上記Ｉα計算記憶回路内のＩα計算回路の構成を示すブロック図である。
【図１２】  上記Ｉα計算回路内の加算比較選択回路の構成を示すブロック図である。
【図１３】  上記Ｉα計算記憶回路を構成するレジスタ、ＲＡＭ等の動作を説明するためのタイムチャートである。
【図１４】  上記Ｉβ計算記憶回路の構成を示すブロック図である。
【図１５】  上記Ｉβ計算記憶回路内のＩβ計算回路の構成を示すブロック図である。
【図１６】  Ｉβ計算回路内の加算比較選択回路の構成を示すブロック図である。
【図１７】  上記Ｉβ計算記憶回路を構成するレジスタ等の動作を説明するためのタイムチャートである。
【図１８】  上記復号器における軟出力計算回路の構成を示すブロック図である。
【図１９】  上記軟出力計算回路内のＩλ１計算回路の構成を示すブロック図である。
【図２０】  上記軟出力計算回路内のＩλ０計算回路の構成を示すブロック図である。
【図２１】  上記軟出力計算回路の動作を説明するためのタイムチャートである。
【図２２】  上記Ｉγ計算記憶回路におけるメモリマネジメントの内容を説明するための図である。
【図２３】  上記メモリマネジメントのタイミングチャートである。
【図２４】  ＳＷ‐Ｌｏｇ‐ＢＣＪＲアルゴリズムに対応した加算比較選択回路の構成を示すブロック図である。
【図２５】  上記復号器におけるＩγ計算記憶回路の他の構成例を示すブロック図である。
【図２６】  上記Ｉγ計算記憶回路の動作の説明するためのタイムチャートである。
【図２７】  上記復号器におけるＩβ計算記憶回路の他の構成例を示すブロック図である。
【図２８】  上記Ｉβ計算記憶回路の動作の説明するためのタイムチャートである。
【図１】
0004178752.tif 000016
【図２】
0004178752.tif 000017
【図３】
0004178752.tif 000018
【図４】
0004178752.tif 000019
【図５】
0004178752.tif 000020
【図６】
0004178752.tif 000021
【図７】
0004178752.tif 000022
【図８】
0004178752.tif 000023
【図９】
0004178752.tif 000024
【図１０】
0004178752.tif 000025
【図１１】
0004178752.tif 000026
【図１２】
0004178752.tif 000027
【図１３】
0004178752.tif 000028
【図１４】
0004178752.tif 000029
【図１５】
0004178752.tif 000030
【図１６】
0004178752.tif 000031
【図１７】
0004178752.tif 000032
【図１８】
0004178752.tif 000033
【図１９】
0004178752.tif 000034
【図２０】
0004178752.tif 000035
【図２１】
0004178752.tif 000036
【図２２Ａ】
0004178752.tif 000037
【図２２Ｂ】
0004178752.tif 000038
【図２２Ｃ】
0004178752.tif 000039
【図２２Ｄ】
0004178752.tif 000040
【図２３】
0004178752.tif 000041
【図２４】
0004178752.tif 000042
【図２５】
0004178752.tif 000043
【図２６】
0004178752.tif 000044
【図２７】
0004178752.tif 000045
【図２８】
0004178752.tif 000046