(57)【特許請求の範囲】
【請求項１】
符号長Ｎ１、情報長Ｋ１の２元線形Ｃ１符号および符号長Ｎ２、情報長Ｋ２の２元線形Ｃ２符号からなる積符号の復号方法において、
Ｃ１符号の受信値と予め設定された訂正値を加算して第１の軟入力値を生成する第１の軟入力値生成ステップと、
前記第１の軟入力値生成ステップにおいて生成された第１の軟入力値からＣ１符号の軟入力軟出力復号により第１の軟出力値を生成する第１の軟出力値生成ステップと、
前記第１の軟出力値生成ステップにおいて生成された前記第１の軟出力値から前記Ｃ１符号の受信値を減算して前記訂正値を更新する第１の訂正値更新ステップと、
Ｃ２符号の受信値と前記第１の訂正値更新ステップにおいて更新された前記訂正値を加算して第２の軟入力値を生成する第２の軟入力値生成ステップと、
前記第２の軟入力値生成ステップにおいて生成された第２の軟入力値からＣ２符号の軟入力軟出力復号により第２の軟出力値を生成する第２の軟出力値生成ステップと、
前記第２の軟出力値生成ステップにおいて生成された前記軟出力値より送信された符号語を推定する符号語推定ステップと、
を備えたことを特徴とする積符号の復号方法。
【請求項２】
前記第２の軟出力値生成ステップにおいて生成された前記第２の軟出力値から前記Ｃ２符号の受信値を減算して前記訂正値を更新する第２の訂正値更新ステップを備え、更新された訂正値を第１の軟入力値生成ステップに入力して積符号を繰り返して復号することを特徴とする請求項１記載の積符号の復号方法。
【請求項３】
前記第１の軟出力値生成ステップは、
前記第１の軟入力値から硬判定を生成する硬判定生成ステップと、
前記第１の軟入力値から信頼性の低いｐ個の位置を検出する位置検出ステップと、
前記位置検出ステップにおいて検出された位置に基づいてテストベクトルを生成し、前記硬判定と加算してＣ１復号するためのｑ個の復号入力値を生成する復号入力値生成ステップと、
前記ｑ個の復号入力値からＣ１復号によりｒ個のＣ１符号の符号語［Ｃｔ］（ｔ＝１，２，…，ｒ）を生成するＣ１符号語生成ステップと、
前記ｒ個のＣ１符号語の尤度Ｐｔ（ｔ＝１，２，…，ｒ）を計算する尤度計算ステップと、
前記尤度Ｐｔ（ｔ＝１，２，…，ｒ）の最大値を与える符号語［Ｃｄ］を検出する最大尤度符号語検出ステップと、
変数Ｌ０およびＬ１に初期値を設定する初期値設定ステップと、
前記ｒ個のＣ１符号語［Ｃｔ］（ｔ＝１，２，…，ｒ）のｔが１なる符号語からｋ番目の値が０ならば前記Ｌ０とＰｔの大きい方とその差分に対する補正値を加算した値を前記Ｌ０に代入し、そうでなければ前記Ｌ１とＰｔの大きい方とその差分に対する補正値を加算した値を前記Ｌ１に代入して、ｔがｒなる符号語までｔをインクリメントして前記Ｌ０または前記Ｌ１の更新を行う更新ステップとを有し、
前記Ｌ０と前記Ｌ１の差分からｋ番目の軟出力値を計算することを特徴とする請求項１又は２記載の積符号の復号方法。
【請求項４】
前記更新ステップは前記補正値を格納した補正値テーブルを備え、前記Ｌ０又はＬ１と前記Ｐｔの差分の値により、前記テーブルから補正値を選択することを特徴とする請求項３記載の積符号の復号方法。
【請求項５】
前記Ｌ０またはＬ１が計算されない場合において軟出力値生成ステップは最大尤度符号語の成分に比例する量を軟入力値に加算して軟出力値を生成することを特徴とする請求項３記載の積符号の復号方法。
【請求項６】
前記第２の軟出力値生成ステップは請求項３記載の第１の軟出力値生成ステップと同様に構成され、
前記符号語推定ステップは前記第２の軟出力値生成ステップで生成された軟出力値の正負に基づいて符号語を推定することを特徴とする請求項３ないし請求項５の何れかに記載の積符号の復号方法。
【請求項７】
前記符号語推定ステップにおいて推定された符号語のシンドロームがすべて０であれば繰り返して復号せずに復号処理を終了することを特徴とする請求項２ないし請求項６の何れかに記載の積符号の復号方法。
【請求項８】
前記Ｃ１符号およびＣ２符号の受信値の信頼度を判定する判定ステップを付加し、その判定結果が硬判定である場合に、硬判定値が０ならばＭ、１ならば−Ｍ（Ｍは適当な定数）と設定して復号することを特徴とする請求項１ないし請求項７記載の積符号の復号方法。
【請求項９】
符号長Ｎ１、情報長Ｋ１の２元線形Ｃ１符号と符号長Ｎ２、情報長Ｋ２の２元線形Ｃ２符号から構成される積符号を復号する装置であって、通信路から入力される受信値を格納するための第１のメモリと、
訂正値を格納するための第２のメモリと、
前記受信値と前記訂正値を加算して軟入力値を生成する加算器と、
前記軟入力値から軟出力値を生成するため、
前記軟入力値からＣ１符号の候補符号語を生成する第１のチェイス復号回路と、
前記軟入力値からＣ２符号の候補符号語を生成する第２のチェイス復号回路と、
前記Ｃ１符号またはＣ２符号の候補符号語の尤度を生成する候補符号語尤度計算回路と、
前記候補符号語の尤度から軟出力値を生成する軟出力値計算回路とから構成される軟入力軟出力復号器と、
前記軟出力値から前記受信値を差し引いて前記訂正値を生成する減算器と、
前記軟出力値より復号ビットを判定する判定回路と、
前記復号ビットを格納するための第３のメモリと、
を備えたことを特徴とする積符号の復号装置。
【請求項１０】
前記軟出力値計算回路は、
入力された２つのデータから大きいデータを選択する第１の選択回路と、
入力された２つのデータから小さいデータを選択する第２の選択回路と、
前記第１の選択回路の出力から前記第２の選択回路の出力を減算する減算器と、前記減算器の出力を変換するルックアップテーブルと、
前記ルックアップテーブルの出力と前記第１の選択回路の出力を加算する加算器と、
前記加算器の出力を記憶するための記憶回路と、
を備えることを特徴とする請求項９記載の積符号の復号装置。
【請求項１１】
Ｃ１符号とＣ２符号が同一である場合、前記軟入力軟出力復号器は第１のチェイス復号回路と第２のチェイス復号回路が1個のチェイス復号回路で構成され、共用されることを特徴とする請求項９又は請求項１０記載の積符号の復号装置。
【請求項１２】
前記軟入力軟出力復号器を多数並列に配置することを特徴とする請求項９又は請求項１０記載の積符号の復号装置。
【請求項１３】
前記判定回路は、積符号のシンドローム計算回路を備えて誤りが残存するか否かの判定を行うことを特徴とする請求項９ないし請求項１２の何れかに記載の積符号の復号装置。
【請求項１４】
前記判定回路は、復号ビットと受信値を比較して誤り数を計算する誤り数計算回路を備えることを特徴とする請求項９ないし請求項１３の何れかに記載の積符号の復号装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、ディジタル通信システムまたはディジタル記録システムの信頼性を向上するために適用される積符号の復号方法および復号装置に関する。
【０００２】
【従来の技術】
従来よりディジタル通信／記録システムの信頼性向上ためにリード・ソロモン符号などの誤り訂正符号が適用されてきたが、近年、システムの高速・大容量化に伴い、より強力な誤り訂正符号の適用が必要となっている。一般に訂正能力の高い符号は復号複雑度が高く装置化が難しいが、連接符号や積符号の手法を用いれば比較的容易に高性能な符号を実現することができる。特に積符号は情報データを２重に符号化するため冗長度が大きく訂正能力が高いという特長があり、ＣＤ−ＲＯＭやＤＶＤの誤り訂正方式に応用されている。図１は積符号の構成を示す図で、垂直方向の符号は符号長Ｎ１、情報長Ｋ１の２元線形符号Ｃ１、水平方向の符号は符号長Ｎ２、情報長Ｋ２の２元線形符号Ｃ２である。また、図中のブロック１は情報データ、ブロック２〜４はチェック（冗長）を表す。
【０００３】
次に積符号の符号化方法について図１を参照して説明する。まず、情報データＫ１・Ｋ２ビットはＫ１行Ｋ２列の２次元配列（ブロック１）に格納される。ブロック１を式１で表す。ただし、Ｄｉ，ｊ（ｉ＝１，２，…，Ｋ１，ｊ＝１，２，…，Ｋ２）は０または１を表す。
【０００４】
【式１】
0003876662.tif 000002
【０００５】
次に第１列から第Ｋ２列の各列にＣ１符号のチェック（Ｎ１−Ｋ１ビット）が付加されて全体でＮ１行Ｋ２列の２次元配列が生成される（ブロック２の生成）。
次に第１行から第Ｎ１行にＣ２符号のチェック（Ｎ２−Ｋ２ビット）が付加されて全体でＮ１行Ｎ２列の積符号が生成される（ブロック３およびブロック４の生成）。
【０００６】
図２は特開平７−２０２７２２に開示された積符号を用いたディジタル通信システムの構成を示すブロック図であり、２０１は入力された情報データを符号化する符号化器、２０２は符号化器２０１で生成された積符号を通信路に適した信号に変換する変調器、２０３は通信路、２０４は通信路から供給される受信信号を復調して復調データに変換する復調器、２０５は復調器で復調された復調データを復号して情報データを推定する復号器である。なお、符号化器と変調器で送信機が構成され、復調器と復号器で受信機が構成される。
【０００７】
次に図２の動作について説明する。入力された情報データＫ１・Ｋ２ビットは符号化器２０１に供給されて前述したＮ１行Ｎ２列の積符号が生成される。生成された積符号を式２の行列Ｃで表す。積符号Ｃの要素は２進数の０または１で表されるが、以下では２進数の０を“＋１”で表し、２進数の１を“−１”で表すことにする。
【０００８】
【式２】
0003876662.tif 000003
【０００９】
符号器２０１において生成された積符号は変調器２０２に供給され、通信路２０３に適した信号に変換されて通信路に送出される。通信路２０３では送信信号に加法的雑音が重畳されるものと仮定する。通信路２０３を介して受信された信号は受信機の復調器２０４に供給される。
【００１０】
復調器２０４では受信信号が整形されて復調データＹが生成される（式３）。ここで復調データＹの各成分はＹｉ，ｊ＝Ｃｉ，ｊ＋Ｎｉ，ｊ（Ｎｉ，ｊは雑音成分）と表される。復調器２０４で生成された復調データＹは復号器２０５に供給されて送信された情報データの推定が行われる。以下では復調データＹを｛Ｙ｝と表し、入力行列と言う。
【００１１】
【式３】
0003876662.tif 000004
【００１２】
図３は復号器２０５の動作を説明するためのフローチャートであり、３０１は入力行列｛Ｙ｝の入力ステップ、３０２は訂正行列｛Ｗ｝および決定行列｛Ｄ｝に初期値をセットするステップ、３０３Ａはカウンタｊに初期値をセットするステップ、３０４Ａは軟入力ベクトル［Ｒｋ］（ｋ＝１，２，…，Ｎ１）を計算するステップ、３０５Ａは軟出力ベクトル［Ｌｋ］（ｋ＝１，２，…，Ｎ１）を計算するステップ、３０６Ａは訂正行列｛Ｗ｝を更新するステップ、３０７Ａはカウンタｊの値を比較するステップ、３０８Ａはカウンタｊをインクリメントするステップである。
【００１３】
また、３０３Ｂはカウンタｉに初期値をセットするステップ、３０４Ｂは軟入力ベクトル［Ｒｋ］（ｋ＝１，２，…，Ｎ２）を計算するステップ、３０５Ｂは軟出力ベクトル［Ｌｋ］（ｋ＝１，２，…，Ｎ２）を計算するステップ、３０６Ｂは訂正行列｛Ｗ｝を更新するステップ、３０７Ｂはカウンタｉの値を比較するステップ、３０８Ｂはカウンタｉをインクリメントするステップ、３０９は積符号の復号を繰り返すか否かを判定するステップ、３１０は決定行列｛Ｄ｝を出力するステップである。
【００１４】
次に図３のフローチャートの動作について図面を参照して詳細に説明する。まず、ステップ３０１ではＮ１行Ｎ２列の入力行列｛Ｙ｝（式３）が入力される。次にステップ３０２ではＮ１行Ｎ２列の訂正行列｛Ｗ｝（式４）の全要素に初期値０が格納される。
【００１５】
【式４】
0003876662.tif 000005
【００１６】
また、Ｎ１行Ｎ２列の決定行列｛Ｄ｝に初期値ｓｇｎ｛Ｙ｝が格納される。即ち、決定行列｛Ｄ｝の（ｉ，ｊ）成分、Ｄｉ，ｊに入力行列｛Ｙ｝の（ｉ，ｊ）成分、Ｙｉ，ｊの符号ｓｇｎ（Ｙｉ，ｊ）が代入される。ただし、ｓｇｎは次式５で定義される関数である。
【００１７】
【式５】
0003876662.tif 000006
【００１８】
ステップ３０３Ａではカウンタｊに初期値１をセットする。次にステップ３０４Ａ以降においてＣ１符号の復号を開始する。ステップ３０４Ａでは入力行列｛Ｙ｝の第ｊ列と訂正行列｛Ｗ｝の第ｊ列を成分ごとに加算する。即ち、式６に従って入力行列の（ｋ，ｊ）要素Ｙｋ，ｊと訂正行列の（ｋ，ｊ）要素Ｗｋ，ｊを加算して軟入力値Ｒｋ（ｋ＝１，２，…，Ｎ１）を計算する。ただし、式６のαは適当な正規化定数である。
【００１９】
【式６】
Ｒｋ←Ｙｋ，ｊ＋α・Ｗｋ，ｊ （ｋ＝１，２，…，Ｎ１）
【００２０】
以下では前述の特開平７−２０２７２２に従って入力行列の第ｊ列を［Ｙｋ，ｊ］、決定行列の第ｊ列を［Ｄｋ，ｊ］、訂正行列の第ｊ列を［Ｗｋ，ｊ］と表してそれぞれ入力ベクトル、決定ベクトル、訂正ベクトルと呼ぶことにする。ステップ３０５Ａでは決定ベクトル［Ｄｋ，ｊ］を更新し、軟出力ベクトル［Ｌｋ］（ｋ＝１，２，…，Ｎ１）を計算する。ステップ３０５Ａの詳細な動作については後述する。ステップ３０６Ａではステップ３０５Ａで計算された軟出力ベクトルから軟入力ベクトルを減算したものを訂正行列｛Ｗ｝の第ｊ列に格納する（式７）。
【００２１】
【式７】
Ｗｋ，ｊ←Ｌｋ−Ｒｋ （ｋ＝１，２，…，Ｎ１）
【００２２】
ステップ３０７Ａにおいてカウンタｊの値がＮ２未満であるか否かを判定し、Ｎ２未満であればカウンタｊをインクリメントして（ステップ３０８Ａ）、ステップ３０４Ａ以降の処理を繰り返す。一方、カウンタの値がＮ２であればステップ３０３Ｂに進んでＣ２符号の復号を開始する。なお、この時点で訂正行列｛Ｗ｝の全要素の更新が完了している。
【００２３】
ステップ３０３Ｂではカウンタｉに１をセットしてステップ３０４Ｂに進む。ステップ３０４Ｂでは入力行列｛Ｙ｝の第ｉ行と訂正行列｛Ｗ｝の第ｉ行を成分ごとに加算する。即ち、式８に従って入力行列の（ｉ，ｋ）要素Ｙｉ，ｋと訂正行列の（ｉ，ｋ）要素Ｗｉ，ｋを加算して軟入力値Ｒｋ（ｋ＝１，２，…，Ｎ２）を計算する。ただし、式８のαは適当な正規化定数である。
【００２４】
【式８】
Ｒｋ←Ｙｉ，ｋ＋α・Ｗｉ，ｋ （ｋ＝１，２，…，Ｎ２）
【００２５】
上述したＣ１符号の復号と同様に入力行列の第ｉ行を［Ｙｉ，ｋ］、決定行列の第ｉ行を［Ｄｉ，ｋ］、訂正行列の第ｉ行を［Ｗｉ，ｋ］と表してそれぞれ入力ベクトル、決定ベクトル、訂正ベクトルと呼ぶことにする。ステップ３０５Ｂでは決定ベクトル［Ｄｉ，ｋ］を更新し、軟出力ベクトル［Ｌｋ］（ｋ＝１，２，…，Ｎ２）の計算を行う。ステップ３０５Ｂの詳細な動作については後述する。ステップ３０６Ｂではステップ３０５Ｂで計算された軟出力ベクトルから軟入力ベクトルを減算したものを訂正行列｛Ｗ｝の第ｉ行に格納する（式９）。
【００２６】
【式９】
Ｗｉ，ｋ←Ｌｋ−Ｒｋ （ｋ＝１，２，…，Ｎ２）
【００２７】
ステップ３０７Ｂにおいてカウンタｉの値がＮ１未満であるか否かを判定し、Ｎ１未満であればカウンタｉをインクリメントして（ステップ３０８Ｂ）、ステップ３０４Ｂ以降の処理を繰り返す。一方、カウンタｉの値がＮ１であればステップ３０９に進む。この時点で積符号を構成するＣ１符号およびＣ２符号のそれぞれ１回の復号が完了している。ステップ３０９ではもう一度Ｃ１符号の復号を繰り返すか否かを判定する。通常、所定の回数の繰り返し復号が完了した段階で復号処理を終了する。Ｃ１符号の復号を繰り返す場合はステップ３０３Ａに進み、前述のＣ１符号の復号を再開する。一方、復号を繰り返さない場合はステップ３１０に進み、決定行列｛Ｄ｝を出力して復号処理を終了する。
【００２８】
ステップ３１０において出力された決定行列｛Ｄ｝のＫ１行Ｋ２列に格納されたデータＤｉ，ｊ（ｉ＝１，２，…，Ｋ１，ｊ＝１，２，…，Ｋ２）は復号により推定された情報データを表す。なお、決定行列｛Ｄ｝の成分は“±１”であるが、“＋１”は２進数の０に、“−１”は２進数の１に対応する。
【００２９】
次にステップ３０５ＡのＣ１符号の軟入力軟出力復号について説明する。図４にステップ３０５Ａの詳細なフローチャートを示す。このフローチャートの動作を図面を用いて説明する。ステップ４０１では軟入力ベクトル［Ｒｋ］と決定ベクトル［Ｄｋ］が入力される。
【００３０】
ステップ４０２では軟入力ベクトル［Ｒ］のなかで絶対値最小のｐ個の要素を選ぶ。ｐ個の位置をｋ１、ｋ２、…、ｋｐとする。ステップ４０３ではステップ４０２で選んだｐ個の位置ｋｍ（ｍ＝１，２，…，ｐ）においてＴｋｍ＝０または１、それ以外の位置ではＴｋ＝０（ｋ≠ｋｍ）としたテストベクトル［Ｔｋ］を生成する。テストベクトルとしては全部でｑ＝２ｐ個あるので添字ｓを付けて［Ｔｓ］（ｓ＝１，２，…，ｑ）のように表す。生成したテストベクトル［Ｔｓ］と決定ベクトル［Ｄｋ］を成分毎に加算してＣ１符号の代数的復号を実行するためのワード［Ｕｓ］を生成する（式１０）。式１０では［Ｄｋ］の成分の“＋１”は２進数の０に、“−１”は２進数の１に変換して法２の下で加算する。
【００３１】
【式１０】
［Ｕｓ］＝［Ｄｋ］＋［Ｔｓ］（ｓ＝１，２，…，ｑ）
【００３２】
ステップ４０４ではステップ４０３で生成されたｑ個のワード［Ｕｓ］（ｓ＝１，２，…，ｑ）をＣ１符号の代数的復号を実行して符号語の候補を生成する。復号により生成されたｒ個の符号語を［Ｃｔ］＝（Ｃｔ１，Ｃｔ２，．．，ＣｔＮ１）（ｔ＝１，２，…，ｒ）とする。
【００３３】
ステップ４０５では軟入力ベクトル［Ｒ］と候補符号語［Ｃｔ］（ｔ＝１，２，…，ｒ）のユークリッド距離Ｍｔを計算する。軟入力ベクトル［Ｒ］と候補符号語［Ｃｔ］のユークリッド距離Ｍｔは式１１で与えられる。
【００３４】
【式１１】
0003876662.tif 000007
【００３５】
ステップ４０６ではステップ４０５で計算されたユークリッド距離の最小値を与える符号語［Ｃｄ］を選ぶ（Ｍｔ≧Ｍｄ）。また、決定ベクトルに符号語［Ｃｄ］を代入する（式１２）。
【００３６】
【式１２】
［Ｄ］←［Ｃｄ］
【００３７】
ステップ４０７ではカウンタｋに初期値１をセットしてステップ４０８に進む。ステップ４０８では候補符号語［Ｃｔ］（ｔ＝１，２，…，ｒ）の中でｋ番目の値Ｃｔｋがステップ４０６で選ばれた［Ｃｄ］のｋ番目の値Ｃｄｋと異なるもの（即ち、Ｃｔｋ＝−Ｃｄｋとなる符号語［Ｃｔ］）が存在するか否かを判定する。存在しない場合はステップ４０９に進み、存在する場合はステップ４１０においてそのような符号語の中でユークリッド距離が最小となる符号語（コンカレント符号語と呼び、［Ｃｃ］で表す）を選んでステップ４１１に進む。ステップ４０９では式１３に示す軟出力値を計算する。ただし、式１３のβは適当な定数である。
【００３８】
【式１３】
Ｌｋ←βＣｄｋ
ステップ４１１では式１４に示す軟出力値を計算する。ただし、Ｍｃはコンカレント符号語［Ｃｃ］と軟入力ベクトル［Ｒ］のユークリッド距離を表す。
【００３９】
【式１４】
Ｌｋ←（（Ｍｃ−Ｍｄ）／４）Ｃｄｋ
【００４０】
ステップ４１２ではカウンタｋの値がＮ１に等しいか否かを判定する。等しくない場合はステップ４１３に進み、カウンタｋの値をインクリメントしてステップ４０８以降の処理を繰り返す。一方、等しい場合はステップ４１４に進んで軟出力ベクトル［Ｌｋ］と決定ベクトル［Ｄｋ］を出力してすべての処理を終了する。以上の処理によりステップ３０５ＡのＣ１符号の軟入力軟出力復号が完了する。なお、ステップ３０５ＢのＣ２符号の軟入力軟出力復号も上述のＣ１符号の軟入力軟出力復号と同様である。
【００４１】
式１３および式１４から分かるように従来の軟出力値はステップ４０４で生成された候補符号語の内、高々２個の符号語を用いて計算される。
【００４２】
【発明が解決しようとする課題】
従来の積符号の復号方法は上述のように構成されていたので、符号語生成ステップで見つかった多数の符号語の内、ユークリッド距離に関して軟入力ベクトルに最も近い符号語［Ｃｄ］とコンカレント符号語［Ｃｓ］のみが反映されるだけで、その他の候補符号語の情報が全く反映されていないという問題点があった。
【００４３】
また、訂正行列の更新では軟入力軟出力復号により計算された軟出力ベクトルから軟入力ベクトルを減算したものを新たな訂正ベクトルとしているので前段の復号で得られた訂正ベクトルの情報が欠落してしまうという問題点があった。
【００４４】
この発明は上記のような問題を解決するためになされたもので、符号語生成ステップで見つかった符号語を効率的に利用して軟出力値を計算するとともに、より精度の高い訂正値を計算して復号性能を改善することができる、積符号の復号方法および復号装置ならびに積符号を用いたディジタル伝送システムを提供することを目的とする。
【００４５】
【課題を解決するための手段】
この発明に係る積符号の復号方法は、符号長Ｎ１、情報長Ｋ１の２元線形Ｃ１符号および符号長Ｎ２、情報長Ｋ２の２元線形Ｃ２符号からなる積符号の復号方法において、
Ｃ１符号の受信値と予め設定された訂正値を加算して第１の軟入力値を生成する第１の軟入力値生成ステップと、
前記第１の軟入力値生成ステップにおいて生成された第１の軟入力値からＣ１符号の軟入力軟出力復号により第１の軟出力値を生成する第１の軟出力値生成ステップと、
前記第１の軟出力値生成ステップにおいて生成された前記第１の軟出力値から前記Ｃ１符号の受信値を減算して前記訂正値を更新する第１の訂正値更新ステップと、
Ｃ２符号の受信値と前記第１の訂正値更新ステップにおいて更新された前記訂正値を加算して第２の軟入力値を生成する第２の軟入力値生成ステップと、
前記第２の軟入力値生成ステップにおいて生成された第２の軟入力値からＣ２符号の軟入力軟出力復号により第２の軟出力値を生成する第２の軟出力値生成ステップと、
前記第２の軟出力値生成ステップにおいて生成された前記軟出力値より送信された符号語を推定する符号語推定ステップとを備える。
【００４６】
また、この発明に係る積符号の復号方法は、前記第２の軟出力値生成ステップにおいて生成された前記第２の軟出力値から前記Ｃ２符号の受信値を減算して前記訂正値を更新する第２の訂正値更新ステップを備え、更新された訂正値を第１の軟入力値生成ステップに入力して積符号を繰り返して復号する。
【００４７】
また、この発明に係る積符号の復号方法は、前記第１の軟出力値生成ステップが、
前記第１の軟入力値から硬判定を生成する硬判定生成ステップと、
前記第１の軟入力値から信頼性の低いｐ個の位置を検出する位置検出ステップと、
前記位置検出ステップにおいて検出された位置に基づいてテストベクトルを生成し、前記硬判定と加算してＣ１復号するためのｑ個の復号入力値を生成する復号入力値生成ステップと、
前記複数ｑ個の復号入力値からＣ１復号により複数ｒ個のＣ１符号の符号語［Ｃｔ］（ｔ＝１，２，…，ｒ）を生成するＣ１符号語生成ステップと、
前記ｒ個のＣ１符号語の尤度Ｐｔ（ｔ＝１，２，…，ｒ）を計算する尤度計算ステップと、
前記尤度Ｐｔ（ｔ＝１，２，…，ｒ）の最大値を与える符号語［Ｃｄ］を検出する最大尤度符号語検出ステップと、
変数Ｌ０およびＬ１に初期値を設定する初期値設定ステップと、
前記ｒ個のＣ１符号語［Ｃｔ］（ｔ＝１，２，…，ｒ）のｔが１なる符号語からｋ番目の値が０ならば前記Ｌ０とＰｔの大きい方とその差分に対する補正値を加算した値を前記Ｌ０に代入し、そうでなければ前記Ｌ１とＰｔの大きい方とその差分に対する補正値を加算した値を前記Ｌ１に代入して、ｔがｒなる符号語までｔをインクリメントして前記Ｌ０または前記Ｌ１の更新を行う更新ステップとを有し、前記Ｌ０と前記Ｌ１の差分からｋ番目の軟出力値を計算する。
【００４８】
また、この発明に係る積符号の復号方法は、前記更新ステップは前記補正値を格納したテーブルを備える。
【００４９】
また、この発明に係る積符号の復号方法は、前記Ｌ０またはＬ１が計算されない場合において軟出力値生成ステップは最大尤度符号語の成分に比例する量を軟入力値に加算して軟出力値を生成する。
【００５０】
また、この発明に係る積符号の復号方法は、前記第２の軟出力値生成ステップは段落番号“００４７”記載の第１の軟出力値生成ステップと同様に構成され、前記符号語推定ステップは前記第２の軟出力値生成ステップで生成された軟出力値の正負に基づいて符号語を推定する。
【００５１】
また、この発明に係る積符号の復号方法は、前記符号語推定ステップにおいて推定された符号語のシンドロームがすべて０であれば繰り返して復号せずに復号処理を終了する。
【００５２】
また、この発明に係る積符号の復号方法は、前記Ｃ１符号およびＣ２符号の受信値の信頼度を判定する判定ステップを付加し、その判定結果が硬判定である場合に、硬判定値が０ならばＭ、１ならば−Ｍ（Ｍは適当な定数）と設定して復号する。
【００５３】
この発明に係る積符号の復号装置は、符号長Ｎ１、情報長Ｋ１の２元線形Ｃ１符号と符号長Ｎ２、情報長Ｋ２の２元線形Ｃ２符号から構成される積符号を復号する装置であって、
通信路から入力される受信値を格納するための第１のメモリと、
訂正値を格納するための第２のメモリと、
前記受信値と前記訂正値を加算して軟入力値を生成する加算器と、
前記軟入力値から軟出力値を生成するため、
前記軟入力値からＣ１符号の候補符号語を生成する第１のチェイス復号回路と、
前記軟入力値からＣ２符号の候補符号語を生成する第２のチェイス復号回路と、
前記Ｃ１符号またはＣ２符号の候補符号語の尤度を生成する候補符号語尤度計算回路と、
前記候補符号語の尤度から軟出力値を生成する軟出力値計算回路とから構成される軟入力軟出力復号器と、
前記軟出力値から前記受信値を差し引いて前記訂正値を生成する減算器と、
前記軟出力値より復号ビットを判定する判定回路と、
前記復号ビットを格納するための第３のメモリと、
を備える。
【００５４】
また、この発明に係る積符号の復号装置は、前記軟出力値計算回路が、
入力された２つのデータから大きいデータを選択する第１の選択回路と、
入力された２つのデータから小さいデータを選択する第２の選択回路と、
前記第１の選択回路の出力から前記第２の選択回路の出力を減算する減算器と、前記減算器の出力を変換するルックアップテーブルと、
前記ルックアップテーブルの出力と前記第１の選択回路の出力を加算する加算器と、
前記加算器の出力を記憶するための記憶回路とを備える。
【００５５】
また、この発明に係る積符号の復号装置は、Ｃ１符号とＣ２符号が同一である場合、前記軟入力軟出力復号器は第１のチェイス復号回路と第２のチェイス復号回路が1個のチェイス復号回路で構成され、共用される。
【００５６】
また、この発明に係る積符号の復号装置は、軟入力軟出力復号器が多数並列に配置される。
【００５７】
また、この発明に係る積符号の復号装置は、前記判定回路が、積符号のシンドローム計算回路を備えて誤りが残存するか否かの判定を行う。
【００５８】
また、この発明に係る積符号の復号装置は、前記判定回路が、復号ビットと受信値を比較して誤り数を計算する誤り数計算回路を備える。
【００５９】
【発明の実施の形態】
実施の形態１．
この発明の実施の形態１に係る積符号の復号方法について図面を参照しながら説明する。従来技術と同じく図２のディジタル通信システムのブロック図を用いて本願の積符号の復号方法について説明する。
【００６０】
図５は本願の積符号の復号方法のフローチャートである。５０１は入力行列｛Ｙ｝の入力ステップ、５０２は訂正行列｛Ｗ｝に初期値をセットするステップ、５０３Ａはカウンタｊに初期値をセットするステップ、５０４Ａは軟入力ベクトル［Ｒｋ］（ｋ＝１，２，…，Ｎ１）を計算するステップ、５０５Ａは軟出力ベクトル［Ｌｋ］（ｋ＝１，２，…，Ｎ１）を計算するステップ、５０６Ａは訂正行列｛Ｗ｝を更新するステップ、５０７Ａはカウンタｊの値を比較するステップ、５０８Ａはカウンタｊをインクリメントするステップである。
【００６１】
また、５０３Ｂはカウンタｉに初期値をセットするステップ、５０４Ｂは軟入力ベクトル［Ｒｋ］（ｋ＝１，２，…，Ｎ２）を計算するステップ、５０５Ｂは軟出力ベクトル［Ｌｋ］（ｋ＝１，２，…，Ｎ２）を計算するステップ、５０６Ｂは訂正行列｛Ｗ｝と決定行列｛Ｄ｝を更新するステップ、５０７Ｂはカウンタｉの値を比較するステップ、５０８Ｂはカウンタｉをインクリメントするステップ、５０９は積符号の復号を繰り返すか否かを判定するステップ、５１０は決定行列｛Ｄ｝を出力するステップである。
【００６２】
図５のフローチャートの動作について詳細に説明する。まず、ステップ５０１においてＮ１行Ｎ２列の入力行列｛Ｙ｝（式３）が入力される。次にステップ５０２ではＮ１行Ｎ２列の訂正行列｛Ｗ｝（式１５）の全要素に初期値０が格納される。
【００６３】
【式１５】
0003876662.tif 000008
【００６４】
ステップ５０３Ａではカウンタｊに初期値１をセットする。次にステップ５０４Ａ以降においてＣ１符号の復号を開始する。ステップ５０４Ａでは入力行列｛Ｙ｝の第ｊ列と訂正行列｛Ｗ｝の第ｊ列を成分ごとに加算する。即ち、式１６に従って入力行列の（ｋ，ｊ）要素Ｙｋ，ｊと訂正行列の（ｋ，ｊ）要素Ｗｋ，ｊを加算して軟入力値Ｒｋ（ｋ＝１，２，…，Ｎ１）を計算する。ただし、式１６のαは適当な正規化定数である。
【００６５】
【式１６】
Ｒｋ←Ｙｋ，ｊ＋α・Ｗｋ，ｊ （ｋ＝１，２，…，Ｎ１）
【００６６】
従来技術の説明と同様に入力行列の第ｊ列を［Ｙｋ，ｊ］、訂正行列の第ｊ列を［Ｗｋ，ｊ］と表し、それぞれ入力ベクトル、訂正ベクトルと呼ぶことにする。ステップ５０５Ａではステップ５０４Ａで計算された軟入力ベクトル［Ｒｋ］から軟出力ベクトル［Ｌｋ］（ｋ＝１，２，…，Ｎ１）を計算する。ステップ５０５Ａの軟出力ベクトルの計算方法については後述する。ステップ５０６Ａではステップ５０５Ａで計算された軟出力値Ｌｋから入力値Ｙｋ，ｊを減算して訂正行列｛Ｗ｝の第ｊ列に格納する（式１７）。
【００６７】
【式１７】
Ｗｋ，ｊ←Ｌｋ−Ｙｋ，ｊ （ｋ＝１，２，…，Ｎ１）
【００６８】
従来技術では軟出力ベクトル［Ｌｋ］から軟入力ベクトル［Ｒｋ］を減算して訂正ベクトル［Ｗｋ，ｊ］を更新したが、本願では軟出力ベクトル［Ｌｋ］から入力ベクトル［Ｙｋ，ｊ］を減算して計算するため、繰り返し復号の前段の訂正情報をより反映した精度の高い訂正ベクトルを得ることができる効果がある。
【００６９】
ステップ５０７Ａにおいてカウンタｊの値がＮ２未満であるか否かを判定し、Ｎ２未満であればカウンタｊをインクリメントして（ステップ５０８Ａ）、ステップ５０４Ａ以降の処理を繰り返す。一方、カウンタの値がＮ２であればステップ５０３Ｂに進んでＣ２符号の復号を開始する。
【００７０】
ステップ５０３Ｂではカウンタｉに１をセットしてステップ５０４Ｂに進む。ステップ５０４Ｂでは入力行列｛Ｙ｝の第ｉ行と訂正行列｛Ｗ｝の第ｉ行を成分ごとに加算する。即ち、式１８に従って入力行列の（ｉ，ｋ）要素Ｙｉ，ｋと訂正行列の（ｉ，ｋ）要素Ｗｉ，ｋを加算して軟入力値Ｒｋ（ｋ＝１，２，…，Ｎ２）を計算する。ただし、式１８のαは適当な正規化定数である。
【００７１】
【式１８】
Ｒｋ←Ｙｉ，ｋ＋α・Ｗｉ，ｋ （ｋ＝１，２，…，Ｎ２）
【００７２】
上述したＣ１符号の復号と同様に入力行列の第ｉ行を［Ｙｉ，ｋ］、訂正行列の第ｉ行を［Ｗｉ，ｋ］と表し、それぞれ入力ベクトル、訂正ベクトルと呼ぶことにする。ステップ５０５Ｂではステップ５０４Ｂで計算された軟入力ベクトル［Ｒｋ］から軟出力ベクトル［Ｌｋ］（ｋ＝１，２，…，Ｎ２）を計算する。
【００７３】
ステップ５０６Ｂではステップ５０５Ｂで計算された軟出力ベクトルから入力ベクトルを減算して訂正行列｛Ｗ｝の第ｉ行に格納する（式１９）。
【００７４】
【式１９】
Ｗｉ，ｋ←Ｌｋ−Ｙｉ，ｋ（ｋ＝１，２，…，Ｎ２）
【００７５】
また、決定行列｛Ｄ｝の（ｉ，ｋ）成分Ｄｉ，ｋにＬｋの硬判定が代入される（式２０）。
【００７６】
【式２０】
0003876662.tif 000009
【００７７】
ステップ５０７Ｂにおいてカウンタｉの値がＮ１未満であるか否かを判定し、Ｎ１未満であればカウンタｉをインクリメントして（ステップ５０８Ｂ）、ステップ５０４Ｂ以降の処理を繰り返す。一方、カウンタｉの値がＮ１であればステップ５０９に進む。この時点で積符号を構成するＣ１符号およびＣ２符号それぞれ１回の復号が完了している。ステップ５０９では復号を繰り返すか否かを判定する。復号を再開する場合はステップ５０３Ａに進み、前述したＣ１符号の復号を再開する。一方、復号を繰り返さない場合はステップ５１０に進み、決定行列｛Ｄ｝を出力して処理を終了する。
【００７８】
決定行列｛Ｄ｝のＫ１行Ｋ２列に格納されたデータＤｉ，ｊ（ｉ＝１，２，…，Ｋ１，ｊ＝１，２，…，Ｋ２）は推定情報データを表す。ステップ５０９では決定行列｛Ｄ｝のシンドロームを計算して誤りが残存しているか否かを調べ、誤りがあると判定された場合は復号を繰り返し、誤りがないと判定された場合は復号を終了するようにしてもよい。
【００７９】
次にステップ５０５ＡのＣ１符号の軟入力軟出力復号について説明する。図６にステップ５０５Ａの詳細なフローチャートを示す。以下、図６を用いてＣ１符号の軟入力軟出力復号について説明する。まず、ステップ６０１では軟入力ベクトル［Ｒｋ］が入力される。ステップ６０２では軟入力ベクトル［Ｒｋ］の硬判定ベクトル［Ｈｋ］が生成される（式２１）。
【００８０】
【式２１】
0003876662.tif 000010
【００８１】
ステップ６０３では軟入力ベクトル［Ｒｋ］のなかで絶対値最小のｐ個の要素が選ばれる。選ばれたｐ個の位置をｋ１、ｋ２、…、ｋｐとする。ステップ６０４ではステップ６０３で選ばれたｐ個の位置ｋｍ（ｍ＝１，２，…，ｐ）においてＴｋｍ＝０または１、それ以外の位置ではＴｋ＝０（ｋ≠ｋｍ）としたテストベクトル［Ｔ］が生成される。テストベクトルとしては全部でｑ＝２ｐ個あるので添字ｓを付けて［Ｔｓ］（ｓ＝１，２，…，ｑ）のように表す。生成されたテストベクトル［Ｔｓ］とステップ６０２で生成された硬判定ベクトル［Ｈ］を加算してＣ１符号の代数的復号を実行するためのワード［Ｕｓ］を生成する（式２２）。
【００８２】
【式２２】
［Ｕｓ］＝［Ｈ］＋［Ｔｓ］（ｓ＝１，２，…，ｑ）
【００８３】
ステップ６０５ではステップ６０４で生成されたワード［Ｕｌ］をＣ１符号の代数的復号を実行して符号語の候補を生成する。生成されたｒ個の符号語を［Ｃｔ］＝（Ｃｔ１，Ｃｔ２，．．，ＣｔＮ１）（ｔ＝１，２，…，ｒ）とする。
【００８４】
ステップ６０６では軟入力ベクトル［Ｒ］と候補符号語［Ｃｔ］（ｔ＝１，２，…，ｒ）の内積Ｐｔを計算する。軟入力ベクトル［Ｒ］と候補符号語［Ｃｔ］の内積Ｐｔは式２３で与えられる。
【００８５】
【式２３】
0003876662.tif 000011
【００８６】
ステップ６０７ではステップ６０６で計算された内積Ｐｔの最大値を与える符号語［Ｃｄ］を選ぶ。ステップ６０８ではカウンタｋに初期値１をセットする。ステップ６０９ではカウンタｔに初期値１をセットし、変数Ｌ０およびＬ１に“−∞”をセットする。ここで、“−∞”はコンピュータまたはハードウェアが表現できる最小値を表す。ステップ６１０ではｔ番目の候補符号語［Ｃｔ］のｋ番目の要素Ｃｔｋが０であるか否かを判定する。Ｃｔｋが０であればステップ６１１に進み、そうでなければステップ６１２に進む。
【００８７】
ステップ６１１では式２４を計算してステップ６１３に進む。
【００８８】
【式２４】
0003876662.tif 000012
【００８９】
ステップ６１２では式２５を計算してステップ６１３に進む。
【００９０】
【式２５】
0003876662.tif 000013
【００９１】
ただし、式２４および式２５の関数ｆは式２６で与えられる。式２６のｍａｘは２変数の大きい方を選択することを表す。
【００９２】
【式２６】
0003876662.tif 000014
【００９３】
ステップ６１３ではカウンタｔがステップ６０５で生成された候補符号語の総数ｒより小さいか否かを判定する。ｔがｒより小さいときはステップ６１４に進み、カウンタｔの値をインクリメントしてステップ６１０以降の処理を繰り返す。一方、カウンタｔがｒと一致した場合はステップ６１５に進む。
【００９４】
ステップ６１５では変数Ｌ０またはＬ１が−∞に等しいか否かを判定する。等しい場合はステップ６１６に進み、そうでなければステップ６１７に進む。ステップ６１６では式２７に示す軟出力値を計算する。ただし、βは適当な正規化定数である。
【００９５】
【式２７】
Ｌｋ←Ｒｋ＋βＣｄｋ
ステップ６１７では式２８に示す軟出力値を計算する。
【００９６】
【式２８】
Ｌｋ←（Ｌ０−Ｌ１）／４
【００９７】
ステップ６１８ではカウンタの値ｋがＮ１より小さいか否かを判定する。小さい場合はステップ６１９に進み、カウンタｋの値をインクリメントしてステップ６０９以降の処理を繰り返す。一方、等しい場合はステップ６２０に進み、軟出力ベクトル［Ｌｋ］を出力して処理を終了する。以上の処理によりステップ５０５ＡのＣ１符号の軟入力軟出力復号が完了する。また、ステップ５０５ＢのＣ２符号の軟入力軟出力復号はステップ５０５ＡのＣ１符号の軟入力軟出力復号と同様である。
【００９８】
このように本実施の形態１の軟出力値Ｌｋはステップ６０５で生成された候補符号語のすべてを用いて計算されるので、従来の軟出力値よりも精度が高いという特長がある。以下において従来技術および本願の軟出力値の計算式について比較検討する。ここではＣ１符号の軟出力値の計算を例にとって説明する。軟入力ベクトル［Ｒｋ］が与えられたとき、ｋ番目の軟出力値Ｌｋの正確な値は式２９で計算されることが知られている。ただし、式２９の分子はＣ１符号の符号語Ｃ＝［Ｃｋ］（ｋ＝１，２，…，Ｎ１）でＣｊ＝＋１であるものについて総和をとり、分母はＣ１符号の符号語Ｃ＝［Ｃｋ］でＣｊ＝−１であるものについて総和をとる。
【００９９】
【式２９】
0003876662.tif 000015
【０１００】
Ｃｊ＝＋１となる符号語Ｃ＝［Ｃｋ］のなかでベクトル［Ｒｋ］とユークリッド距離に関して最も近い符号語を［Ｃ＋１ｋ］とし、また、Ｃｊ＝−１となる符号語［Ｃｋ］でベクトル［Ｒｋ］とユークリッド距離に関して最も近い符号語を［Ｃ−１ｋ］とすると、式２９は次式３０で近似される。
【０１０１】
【式３０】
0003876662.tif 000016
【０１０２】
従来技術の軟出力値の計算は式３０に基づいている。一方、本願では式２９の分母分子の符号語［Ｃｋ］を符号語生成ステップで生成された候補符号語［Ｃｔ］（ｔ＝１，２，…，ｒ）に制限した上で［Ｒｋ］と候補符号語［Ｃｔ］のユークリッド距離ではなく、より計算の容易な内積を用いて式３１により計算している。
【０１０３】
【式３１】
0003876662.tif 000017
【０１０４】
式３１の第１項および第２項は式３２の関係を利用して再帰的に計算できる。特に、式３３の関数Ｌの量子化値をテーブルに格納しておけば式３１の計算を高速化できる。
【０１０５】
【式３２】
0003876662.tif 000018
【０１０６】
【式３３】
0003876662.tif 000019
【０１０７】
本実施の形態の積符号の復号方法は以上述べたように構成されるので、より精度の高い軟出力値を生成することができる効果がある。また、訂正ベクトルは前段の復号結果も反映する構成としているので復号性能の大幅な改善が可能となる。
【０１０８】
また、積符号の受信値が硬判定で与えられる場合には、軟入力値として硬判定が０ならばＭ、１ならば−Ｍ（Ｍは適当な数）として本願の復号方法を適用するなどの変形例も考えられる。
【０１０９】
また、ステップ５０９において積符号のシンドロームを計算して、シンドロームがすべて０であれば復号を終了し、そうでなければ繰り返して復号するようにすれば無駄な繰り返しをせずに済む効果がある。
【０１１０】
実施の形態２．
実施の形態１で説明した積符号の復号方法をハードウェアで実現することも可能である。図７は積符号を構成するＣ１符号とＣ２符号が同一の場合の復号装置の構成を示すブロック図で、７０１は加算器、７０２は減算器、７０３は第１のメモリで送信側の復調器から供給される積符号の受信語を格納するためのメモリ、７０４はＣ１符号およびＣ２符号の軟入力軟出力復号を行う軟入力軟出力復号器、７０５は軟入力軟出力復号器７０４から供給される軟出力値により送信符号語を判定する判定回路、７０６は判定回路７０５により判定された送信符号語を格納するための第２のメモリ、７０７は減算器７０２から供給される訂正値を格納するための第３のメモリ、７０８は第３のメモリ７０７から供給される訂正値を正規化する正規化回路である。
【０１１１】
次に図の復号装置の動作について説明する。まず、復調器から供給される受信語Ｙは第１のメモリ７０３に格納される。積符号のＣ１符号（垂直方向）またはＣ２符号（水平方向）を復号する場合、第３のメモリ７０７の所定のアドレスに格納された訂正値が読み出され、正規化回路７０８において適当な正規化が施されて加算器７０１に供給される。加算器７０１では第１のメモリ７０３の所定のアドレスに格納された受信値と正規化回路７０８から供給される訂正値が加算されて軟入力値が生成される。なお、初回の復号では第３のメモリ７０７からの読み出しは行わず、加算器７０１では受信値をそのままスルーして軟入力軟出力復号器７０４に供給する。
【０１１２】
加算器７０１において生成された軟入力値は軟入力軟出力復号器７０４に供給される。軟入力軟出力復号器７０４はＣ１符号またはＣ２符号の１符号語分の軟入力値（実施の形態１で説明した軟入力ベクトル）を受信すると、図６に示す復号フローチャートに従って復号処理を開始する。
【０１１３】
図８は軟入力軟出力復号器７０４の構成を示すブロック図で、８０１は軟入力ベクトルから送信符号語の候補を生成するチェイス復号回路、８０２は候補符号語の尤度を計算する候補符号語尤度計算回路、８０３は候補符号語から軟出力値を計算する軟出力値計算回路である。なお、８０１のチェイス復号回路は公知の技術で構成されるのでその詳細は述べない。D.Chase, "A class of algorithms for decoding block codes with channel measurement information", (IEEE Trans. Inform. Thoery, Vol.IT-18, pp.170-182)参照。
【０１１４】
次に図８の軟入力軟出力復号器７０４の動作について説明する。８０１のチェイス復号回路は図６のステップ６０１から６０５までの処理を実行して軟入力ベクトル［Ｒ］から候補符号語［Ｃｔ］（ｔ＝１，２，…，ｒ）を生成する。
【０１１５】
チェイス復号回路８０１において生成された候補符号語［Ｃｔ］（ｔ＝１，２，…，ｒ）は候補符号語尤度計算回路８０２に供給される。候補符号語尤度計算回路８０２では軟入力ベクトル［Ｒ］と候補符号語［Ｃｔ］（ｔ＝１，２，…，ｒ）の内積Ｐｔ（式２３）が計算され、その最大値を与える候補符号語［Ｃｄ］が検出される。候補符号語尤度計算回路８０２で計算された内積Ｐｔと最大尤度の符号語［Ｃｄ］は軟出力値計算回路８０３に供給される。
【０１１６】
軟出力値計算回路８０３では式２７または式２８に基づいて軟出力値が生成される。図９にＬ０またはＬ１を計算するための回路の構成例を示す。９０１は内積Ｐｔが入力される入力端子、９０２は計算結果を記憶するレジスタ、９０３は２入力から大きい方を選択して出力するＭＡＸ回路、９０４は２入力から小さい方を選択して出力するＭＩＮ回路、９０５は式３３の量子化値を格納したルックアップテーブル、９０６はＭＡＸ回路９０３の出力からＭＩＮ回路９０４の出力を減算する減算器、９０７はＭＡＸ回路９０３の出力とルックアップテーブル９０５の出力を加算する加算器、９０８はレジスタ９０２の内容を出力する出力端子である。
【０１１７】
次に図９の回路の動作をＬ０を計算する場合を例にとって説明する。レジスタ９０２には初期値として十分小さい値が設定される。入力端子９０１から候補符号語［Ｃｔ］でｋ番目の値Ｃｔｋが０である符号語の内積Ｐｔが入力される。ＭＡＸ回路９０３では入力された内積Ｐｔとレジスタ９０２に格納されているデータの比較が行われ、大きい方のデータが選択されて減算器９０６と加算器９０７に供給される。また、ＭＩＮ回路９０４では入力された内積Ｐｔとレジスタ９０２に格納されているデータの比較が行われ、小さい方のデータが選択されて減算器９０６に供給される。
【０１１８】
減算器９０６ではＭＡＸ回路９０３の出力データからＭＩＮ回路９０４の出力データが差し引かれ、結果がルックアップテーブル９０５に供給される。ルックアップテーブル９０５では式３３のｌｏｇ値を参照して参照結果が加算器９０７に供給される。加算器９０７ではＭＡＸ回路９０３の出力とルックアップテーブル９０５の出力が加算されてレジスタ９０２に格納される。
【０１１９】
Ｌ１の計算も上述のＬ０の計算と同様に図９の回路を用いて計算されるので説明を省略する。計算されたＬ０とＬ１から式２８により軟出力値が生成される。なお、Ｌ０またはＬ１が計算されないときは式２７により軟入力値と最大尤度の符号語［Ｃｄ］の成分から軟出力値が生成される。
【０１２０】
軟出力値計算回路（７０４の軟入力軟出力復号器）において生成された軟出力値は７０５の判定回路および７０２の減算器に供給される。７０２の減算器では軟出力値から受信値が差し引かれて訂正値が生成されて第２のメモリの所定のアドレスに格納される。７０５の判定回路では軟出力値に基づいて送信符号語が判定されて第３のメモリの所定のアドレスに格納される。
【０１２１】
本実施の形態２の積符号の復号装置は以上述べたように構成されるので、ルックアップテーブルを参照して精度の高い軟出力値を生成することができる。また、訂正値は軟出力値から受信値を差し引いて生成されるのでより効果的な訂正値を生成することが可能である。
【０１２２】
また、上の例ではＣ１符号とＣ２符号が等しい場合について説明したが、Ｃ１符号とＣ１符号が異なる場合も同様に復号装置を構成できる。即ち、軟入力軟出力復号器にＣ１符号のための第１のチェイス復号器とＣ２符号のための第２のチェイス復号器を設ければよく、それ以外の回路は共用できる。
【０１２３】
さらに、上の例では軟入力軟出力復号器を１つだけ配置する構成としたが、多数並列に配置すればより高速な復号装置が得られる。
【０１２４】
さらに、判定回路は推定された送信符号語のシンドロームを計算して誤りがあるか否かの判定を行い、誤りがあれば繰り返して復号し、誤りがなければ復号を終了するようにすれば無駄な繰り返し復号をせずに済む効果がある。また、判定回路は推定された送信符号語と受信語から誤り数を計測して通信路の状態をモニタするようにすれば復号の繰り返し回数の設定に役立つなどの効果がある。即ち、通信路の状態が悪ければ繰り返し回数を多くし、通信路の状態が良ければ繰り返し回数を少なくすればよい。
【０１２５】
本実施の積符号の復号装置はこのように良好なディジタル伝送を確立するのに適した構成であり、積符号の符号化装置と復号装置とを伝送媒体で接続すれば高性能なディジタル伝送システムが構成できる。なお、伝送媒体としては無線や光ファイバに限らず、光ディスクなどの記録媒体であってもよいことは言うまでもない。
【発明の効果】
以上述べたようにこの発明の積符号の復号方法又復号装置によれば、より精度の高い軟出力値を生成することができる効果がある。また、軟入力値の生成に用いる訂正値は前段の復号結果も反映する構成としているので復号性能の大幅な改善が可能となる。
【図面の簡単な説明】
【図１】  積符号の構成を示す図である。
【図２】  ディジタル通信システムの構成を示すブロック図である。
【図３】  積符号の従来の復号方法のフローチャートである。
【図４】  図３の動作を説明するための図である。
【図５】  実施の形態１の積符号の復号方法のフローチャートである。
【図６】  図５の動作を説明するための図である。
【図７】  実施の形態２の積符号の復号装置の構成を示すブロック図である。
【図８】  図７の構成を説明するための図である。
【図９】  図７の構成を説明するための図である。
【符号の説明】
７０１：加算器、７０２：減算器、７０３：第１のメモリ、７０４：軟入力軟出力復号器、７０５：判定回路、７０６：第２のメモリ、７０７：第３のメモリ、７０８：正規化回路、８０１：チェイス復号回路、８０２：候補符号語尤度計算回路、８０３：軟出力値計算回路。
【図１】
0003876662.tif 000020
【図２】
0003876662.tif 000021
【図３】
0003876662.tif 000022
【図４】
0003876662.tif 000023
【図５】
0003876662.tif 000024
【図６】
0003876662.tif 000025
【図７】
0003876662.tif 000026
【図８】
0003876662.tif 000027
【図９】
0003876662.tif 000028