(57)【特許請求の範囲】
【請求項１】
入力された入力データの順序を所定のアドレスにしたがって置換して並べ替えて出力データとして出力するインターリーブ装置であって、
データを記憶する記憶手段と、
上記入力データから上記出力データへの置換が対称であり、且つ、２以上の整数ｉと０以上ｉ未満の整数ｊ，ｋとに対して、ｉで除算した剰余がｊになる任意の位置の上記入力データが、ｉで除算した剰余がｋになる位置に上記出力データとして出力されるように、上記記憶手段に対するデータの書き込み及び読み出しを制御する制御手段とを備え、
上記制御手段は、上記記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせること
を特徴とするインターリーブ装置。
【請求項２】
上記制御手段は、偶数番目の上記入力データが偶数番目に出力されるとともに、奇数番目の上記入力データが奇数番目に出力されるように、上記記憶手段に対するデータの書き込み及び読み出しを制御すること
を特徴とする請求項１記載のインターリーブ装置。
【請求項３】
上記記憶手段は、インターリーブ長の１／ｉの容量を有する記憶素子がｉ個用いられて構成されるものであり、
上記制御手段は、上記記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとを交互に行わせ、上記記憶手段に対するデータの書き込み動作として、前時刻にデータを読み出した位置に次のデータを書き込ませ、同時刻に同一の記憶素子に対して、読み出し又は書き込みのいずれかのみを行わせること
を特徴とする請求項１記載のインターリーブ装置。
【請求項４】
上記記憶手段は、インターリーブ長と同じ容量を有する記憶素子が１個用いられて構成されるものであり、
上記制御手段は、上記記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとを交互に行わせ、上記記憶手段に対するデータの書き込み動作として、前時刻にデータを読み出した位置に次のデータを書き込ませること
を特徴とする請求項１記載のインターリーブ装置。
【請求項５】
入力された入力データの順序を所定のアドレスにしたがって置換して並べ替えて出力データとして出力するインターリーブ方法であって、
上記入力データを入力する入力工程と、
上記入力データから上記出力データへの置換が対称であり、且つ、２以上の整数ｉと０以上ｉ未満の整数ｊ，ｋとに対して、ｉで除算した剰余がｊになる任意の位置の上記入力データが、ｉで除算した剰余がｋになる位置に上記出力データとして出力されるように、データを記憶する記憶手段に対するデータの書き込み及び読み出しを制御する制御工程と、
上記出力データを出力する出力工程とを備え、
上記制御工程では、上記記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせること
を特徴とするインターリーブ方法。
【請求項６】
複数の要素符号をインターリーブ処理を介して並列又は縦列に連接して符号化を行う符号化装置であって、
入力されたデータに対して所定の符号化を行う複数の要素符号化手段と、
並列又は縦列に連接される複数の上記要素符号化手段のそれぞれの間に設けられ、入力された入力データの順序を所定のアドレスにしたがって置換して並べ替えて出力データとして出力するインターリーブ手段とを備え、
上記インターリーブ手段は、
データを記憶する記憶手段と、
上記入力データから上記出力データへの置換が対称であり、且つ、２以上の整数ｉと０以上ｉ未満の整数ｊ，ｋとに対して、ｉで除算した剰余がｊになる任意の位置の上記入力データが、ｉで除算した剰余がｋになる位置に上記出力データとして出力されるように、上記記憶手段に対するデータの書き込み及び読み出しを制御する制御手段とを有し、
上記制御手段は、上記記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせること
を特徴とする符号化装置。
【請求項７】
複数の要素符号をインターリーブ処理を介して並列又は縦列に連接して符号化を行う符号化方法であって、
入力されたデータに対して所定の符号化を行う複数の要素符号化工程と、
並列又は縦列に連接される複数の上記要素符号化工程のそれぞれの間に行われ、入力された入力データの順序を所定のアドレスにしたがって置換して並べ替えて出力データとして出力するインターリーブ工程とを備え、
上記インターリーブ工程は、
上記入力データを入力する入力工程と、
上記入力データから上記出力データへの置換が対称であり、且つ、２以上の整数ｉと０以上ｉ未満の整数ｊ，ｋとに対して、ｉで除算した剰余がｊになる任意の位置の上記入力データが、ｉで除算した剰余がｋになる位置に上記出力データとして出力されるように、データを記憶する記憶手段に対するデータの書き込み及び読み出しを制御する制御工程と、
上記出力データを出力する出力工程とを有し、
上記制御工程では、上記記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせること
を特徴とする符号化方法。
【請求項８】
複数の要素符号をインターリーブ処理を介して並列又は縦列に連接して生成された符号の復号を行う復号装置であって、
複数の上記要素符号に対応して設けられ、軟入力とされる受信値及び事前確率情報を入力して軟出力復号を行い、各時刻における軟出力及び／又は外部情報を生成する複数の軟出力復号手段と、
上記軟出力復号手段によって生成された上記外部情報を入力し、符号化における上記インターリーブ処理と同一の置換位置情報に基づいて、上記外部情報の順序を所定のアドレスにしたがって置換して並べ替えるインターリーブ処理、又は符号化における上記インターリーブ処理によって並べ替えられた情報の配列を元に戻すように、上記外部情報の順序を所定のアドレスにしたがって置換して並べ替えるデインターリーブ処理を行うインターリーブ手段とを備え、
上記インターリーブ手段は、
データを記憶する記憶手段と、
入力された入力データから出力する出力データへの置換が対称であり、且つ、２以上の整数ｉと０以上ｉ未満の整数ｊ，ｋとに対して、ｉで除算した剰余がｊになる任意の位置の上記入力データが、ｉで除算した剰余がｋになる位置に上記出力データとして出力されるように、上記記憶手段に対するデータの書き込み及び読み出しを制御する制御手段とを有し、
上記制御手段は、上記記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせること
を特徴とする復号装置。
【請求項９】
複数の要素符号をインターリーブ処理を介して並列又は縦列に連接して生成された符号の復号を行う復号方法であって、
複数の上記要素符号に対応して設けられ、軟入力とされる受信値及び事前確率情報を入力して軟出力復号を行い、各時刻における軟出力及び／又は外部情報を生成する複数の軟出力復号工程と、
上記軟出力復号工程にて生成された上記外部情報を入力し、符号化における上記インターリーブ処理と同一の置換位置情報に基づいて、上記外部情報の順序を所定のアドレスにしたがって置換して並べ替えるインターリーブ処理、又は符号化における上記インターリーブ処理によって並べ替えられた情報の配列を元に戻すように、上記外部情報の順序を所定のアドレスにしたがって置換して並べ替えるデインターリーブ処理を行うインターリーブ工程とを備え、
上記インターリーブ工程は、
データを入力する入力工程と、
上記入力工程にて入力された入力データから出力する出力データへの置換が対称であり、且つ、２以上の整数ｉと０以上ｉ未満の整数ｊ，ｋとに対して、ｉで除算した剰余がｊになる任意の位置の上記入力データが、ｉで除算した剰余がｋになる位置に上記出力データとして出力されるように、データを記憶する記憶手段に対するデータの書き込み及び読み出しを制御する制御工程と、
上記出力データを出力する出力工程とを有し、
上記制御工程では、上記記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせること
を特徴とする復号方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、入力された入力データの順序を所定のアドレスにしたがって置換して並べ替えて出力データとして出力するインターリーブ装置及びインターリーブ方法、複数の要素符号をインターリーブ処理を介して並列又は縦列に連接して符号化を行う符号化装置及び符号化方法、並びに複数の要素符号をインターリーブ処理を介して並列又は縦列に連接して生成された符号の復号を行う復号装置及び復号方法に関する。
【０００２】
【従来の技術】
近年、例えば、移動体通信や深宇宙通信といった通信分野、及び地上波又は衛星ディジタル放送といった放送分野の研究が著しく進められているが、それに伴い、誤り訂正符号化及び復号の効率化を目的として符号理論に関する研究も盛んに行われている。
【０００３】
符号性能の理論的限界としては、いわゆるシャノン（C. E. Shannon）の通信路符号化定理によって与えられるシャノン限界が知られている。
【０００４】
符号理論に関する研究は、このシャノン限界に近い性能を示す符号を開発することを目的として行われている。近年では、シャノン限界に近い性能を示す符号化方法として、例えば、いわゆるターボ符号と称される並列連接畳み込み符号（Parallel Concatenated Convolutional Codes；以下、ＰＣＣＣという。）や縦列連接畳み込み符号（Serially Concatenated Convolutional Codes；以下、ＳＣＣＣという。）が開発されている。
【０００５】
一方、近年では、これらの符号に対する復号方法についても研究が盛んに行われている。具体的には、連接符号における内符号の復号出力や繰り返し復号法における各繰り返し復号動作の出力を軟出力とすることで、シンボル誤り率を小さくする研究がなされており、それに適した復号方法に関する研究が盛んに行われている。例えば畳み込み符号等の所定の符号を復号した際のシンボル誤り率を最小にする方法としては、「Bahl, Cocke, Jelinek and Raviv, "Optimal decoding of linear codes for minimizing symbol error rate", IEEE Trans. Inf. Theory, vol. IT-20, pp. 284-287, Mar. 1974」に記載されているＢＣＪＲアルゴリズムが知られている。このＢＣＪＲアルゴリズムにおいては、復号結果として各シンボルを出力するのではなく、各シンボルの尤度を出力する。このような出力は、軟出力（soft-output）と呼ばれる。
【０００６】
以下、このＢＣＪＲアルゴリズムの内容について説明する。なお、以下の説明では、図２０に示すように、ディジタル情報を図示しない送信装置が備える符号化装置２０１によって畳み込み符号化し、その出力を雑音のある無記憶通信路２０２を介して図示しない受信装置に入力して、この受信装置が備える復号装置２０３によって復号し、観測する場合を考える。
【０００７】
まず、符号化装置２０１が備えるシフトレジスタの内容を表すＭ個のステート（遷移状態）をｍ（０，１，・・・，Ｍ−１）で表し、時刻ｔのステートをＳｔで表す。また、１タイムスロットにｋビットの情報が入力されるものとすると、時刻ｔにおける入力をｉｔ＝（ｉｔ１，ｉｔ２，・・・，ｉｔｋ）で表し、入力系統をＩ１Ｔ＝（ｉ１，ｉ２，・・・，ｉＴ）で表す。このとき、ステートｍ'からステートｍへの遷移がある場合には、その遷移に対応する情報ビットをｉ（ｍ'，ｍ）＝（ｉ１（ｍ'，ｍ），ｉ２（ｍ'，ｍ），・・・，ｉｋ（ｍ'，ｍ））で表す。さらに、１タイムスロットにｎビットの符号が出力されるものとすると、時刻ｔにおける出力をｘｔ＝（ｘｔ１，ｘｔ２，・・・，ｘｔｎ）で表し、出力系統をＸ１Ｔ＝（ｘ１，ｘ２，・・・，ｘＴ）で表す。このとき、ステートｍ'からステートｍへの遷移がある場合には、その遷移に対応する符号ビットをｘ（ｍ'，ｍ）＝（ｘ１（ｍ'，ｍ），ｘ２（ｍ'，ｍ），・・・，ｘｎ（ｍ'，ｍ））で表す。
【０００８】
符号化装置２０１による畳み込み符号化は、ステートＳ０＝０から始まり、Ｘ１Ｔを出力してＳＴ＝０で終了するものとする。ここで、各ステート間の遷移確率Ｐｔ（ｍ｜ｍ'）を次式（１）によって定義する。
【０００９】
【数１】
0003669433.tif 000002
【００１０】
なお、上式（１）における右辺に示すＰｒ｛Ａ｜Ｂ｝は、Ｂが生じた条件の下でのＡが生じる条件付き確率である。この遷移確率Ｐｔ（ｍ｜ｍ'）は、次式（２）に示すように、入力ｉでステートｍ'からステートｍへと遷移するときに、時刻ｔでの入力ｉｔがｉである確率Ｐｒ｛ｉｔ＝ｉ｝と等しいものである。
【００１１】
【数２】
0003669433.tif 000003
【００１２】
雑音のある無記憶通信路２０２は、Ｘ１Ｔを入力とし、Ｙ１Ｔを出力する。ここで、１タイムスロットにｎビットの受信値が出力されるものとすると、時刻ｔにおける出力をｙｔ＝（ｙｔ１，ｙｔ２，・・・，ｙｔｎ）で表し、Ｙ１Ｔ＝（ｙ１，ｙ２，・・・，ｙＴ）で表す。雑音のある無記憶通信路２０２の遷移確率は、全てのｔ（１≦ｔ≦Ｔ）について、次式（３）に示すように、各シンボルの遷移確率Ｐｒ｛ｙｊ｜ｘｊ｝を用いて定義することができる。
【００１３】
【数３】
0003669433.tif 000004
【００１４】
ここで、次式（４）のようにλｔｊを定義する。この次式（４）に示すλｔｊは、Ｙ１Ｔを受信した際の時刻ｔでの入力情報の尤度を表し、本来求めるべき軟出力である。
【００１５】
【数４】
0003669433.tif 000005
【００１６】
ＢＣＪＲアルゴリズムにおいては、次式（５）乃至次式（７）に示すような確率αｔ，βｔ，γｔを定義する。なお、Ｐｒ｛Ａ；Ｂ｝は、ＡとＢとがともに生じる確率を表すものとする。
【００１７】
【数５】
0003669433.tif 000006
【００１８】
【数６】
0003669433.tif 000007
【００１９】
【数７】
0003669433.tif 000008
【００２０】
ここで、これらの確率αｔ，βｔ，γｔの内容について、符号化装置２０１における状態遷移図であるトレリスを図２１を用いて説明する。同図において、αｔ−１は、符号化開始ステートＳ０＝０から受信値をもとに時系列順に算出した時刻ｔ−１における各ステートの通過確率に対応する。また、βｔは、符号化終了ステートＳＴ＝０から受信値をもとに時系列の逆順に算出した時刻ｔにおける各ステートの通過確率に対応する。さらに、γｔは、時刻ｔにおける受信値と入力確率とをもとに算出した時刻ｔにステート間を遷移する各枝の出力の受信確率に対応する。
【００２１】
これらの確率αｔ，βｔ，γｔを用いると、軟出力λｔｊは、次式（８）のように表すことができる。
【００２２】
【数８】
0003669433.tif 000009
【００２３】
ところで、ｔ＝１，２，・・・，Ｔについて、次式（９）が成立する。
【００２４】
【数９】
0003669433.tif 000010
【００２５】
同様に、ｔ＝１，２，・・・，Ｔについて、次式（１０）が成立する。
【００２６】
【数１０】
0003669433.tif 000011
【００２７】
さらに、γｔについて、次式（１１）が成立する。
【００２８】
【数１１】
0003669433.tif 000012
【００２９】
したがって、復号装置２０３は、ＢＣＪＲアルゴリズムを適用して軟出力復号を行う場合には、これらの関係に基づいて、図２２に示す一連の工程を経ることによって軟出力λｔを求める。
【００３０】
まず、復号装置２０３は、同図に示すように、ステップＳ２０１において、ｙｔを受信する毎に、上式（９）及び上式（１１）を用いて、確率αｔ（ｍ），γｔ（ｍ'，ｍ）を算出する。
【００３１】
続いて、復号装置２０３は、ステップＳ２０２において、系列Ｙ１Ｔの全てを受信した後に、上式（１０）を用いて、全ての時刻ｔにおける各ステートｍについて、確率βｔ（ｍ）を算出する。
【００３２】
そして、復号装置２０３は、ステップＳ２０３において、ステップＳ２０１及びステップＳ２０２において算出した確率αｔ，βｔ，γｔを上式（８）に代入し、各時刻ｔにおける軟出力λｔを算出する。
【００３３】
復号装置２０３は、このような一連の処理を経ることにより、ＢＣＪＲアルゴリズムを適用した軟出力復号を行うことができる。
【００３４】
ところで、このようなＢＣＪＲアルゴリズムにおいては、確率を直接値として保持して演算を行う必要があり、積演算を含むために演算量が大きいという問題があった。そこで、演算量を削減する手法として、「Robertson, Villebrun and Hoeher, "A comparison of optimal and sub-optimal MAP decoding algorithms operating in the domain", IEEE Int. Conf. on Communications, pp. 1009-1013, June 1995」に記載されているＭａｘ−Ｌｏｇ−ＭＡＰアルゴリズム及びＬｏｇ−ＭＡＰアルゴリズム（以下、Ｍａｘ−Ｌｏｇ−ＢＣＪＲアルゴリズム及びＬｏｇ−ＢＣＪＲアルゴリズムという。）がある。
【００３５】
まず、Ｍａｘ−Ｌｏｇ−ＢＣＪＲアルゴリズムについて説明する。Ｍａｘ−Ｌｏｇ−ＢＣＪＲアルゴリズムは、確率αｔ，βｔ，γｔ、及び軟出力λｔを自然対数を用いて対数表記し、次式（１２）に示すように、確率の積演算を対数の和演算に置き換えるとともに、次式（１３）に示すように、確率の和演算を対数の最大値演算で近似するものである。なお、次式（１３）に示すｍａｘ（ｘ，ｙ）は、ｘ，ｙのうち大きい値を有するものを選択する関数である。
【００３６】
【数１２】
0003669433.tif 000013
【００３７】
【数１３】
0003669433.tif 000014
【００３８】
ここで、記載を簡略化するため、自然対数をＩと略記し、αｔ，βｔ，γｔ，λｔの自然対数値を、それぞれ、次式（１４）に示すように、Ｉαｔ，Ｉβｔ，Ｉγｔ，Ｉλｔと表すものとする。なお、次式（１４）に示すｓｇｎは、正負を識別する符号を示す定数、すなわち、"＋１"又は"−１"のいずれかである。
【００３９】
【数１４】
0003669433.tif 000015
【００４０】
このような定数ｓｇｎを与える理由としては、主に、確率αｔ，βｔ，γｔが０乃至１の値をとることから、一般に算出される対数尤度（log likelihood）Ｉαｔ，Ｉβｔ，Ｉγｔが負値をとることにある。
【００４１】
例えば、復号装置２０３がソフトウェアとして構成される場合には、正負いずれの値をも処理可能であるため、定数ｓｇｎは"＋１"又は"−１"のいずれであってもよいが、復号装置２０３がハードウェアとして構成される場合には、ビット数の削減を目的として、算出される負値の正負識別符号を反転して正値として扱う方が望ましい。
【００４２】
すなわち、定数ｓｇｎは、復号装置２０３が対数尤度として負値のみを扱う系として構成される場合には、"＋１"をとり、復号装置２０３が対数尤度として正値のみを扱う系として構成される場合には、"−１"をとる。以下では、このような定数ｓｇｎを考慮したアルゴリズムの説明を行うものとする。
【００４３】
Ｍａｘ−Ｌｏｇ−ＢＣＪＲアルゴリズムにおいては、これらの対数尤度Ｉαｔ，Ｉβｔ，Ｉγｔを、それぞれ、次式（１５）乃至次式（１７）に示すように近似する。ここで、次式（１５）及び次式（１６）に示すｍｓｇｎ（ｘ，ｙ）は、定数ｓｇｎが"＋１"の場合には、ｘ，ｙのうち大きい値を有するものを選択する関数ｍａｘ（ｘ，ｙ）を示し、定数ｓｇｎが"−１"の場合には、ｘ，ｙのうち小さい値を有するものを選択する関数ｍｉｎ（ｘ，ｙ）を示すものである。次式（１５）における右辺のステートｍ'における関数ｍｓｇｎは、ステートｍへの遷移が存在するステートｍ'の中で求めるものとし、次式（１６）における右辺のステートｍ'における関数ｍｓｇｎは、ステートｍからの遷移が存在するステートｍ'の中で求めるものとする。
【００４４】
【数１５】
0003669433.tif 000016
【００４５】
【数１６】
0003669433.tif 000017
【００４６】
【数１７】
0003669433.tif 000018
【００４７】
また、Ｍａｘ−Ｌｏｇ−ＢＣＪＲアルゴリズムにおいては、対数軟出力Ｉλｔについても同様に、次式（１８）に示すように近似する。ここで、次式（１８）における右辺第１項の関数ｍｓｇｎは、入力が"１"のときにステートｍへの遷移が存在するステートｍ'の中で求め、第２項の関数ｍｓｇｎは、入力が"０"のときにステートｍへの遷移が存在するステートｍ'の中で求めるものとする。
【００４８】
【数１８】
0003669433.tif 000019
【００４９】
したがって、復号装置２０３は、Ｍａｘ−Ｌｏｇ−ＢＣＪＲアルゴリズムを適用して軟出力復号を行う場合には、これらの関係に基づいて、図２３に示す一連の工程を経ることによって軟出力λｔを求める。
【００５０】
まず、復号装置２０３は、同図に示すように、ステップＳ２１１において、ｙｔを受信する毎に、上式（１５）及び上式（１７）を用いて、対数尤度Ｉαｔ（ｍ）及びＩγｔ（ｍ'，ｍ）を算出する。
【００５１】
続いて、復号装置２０３は、ステップＳ２１２において、系列Ｙ１Ｔの全てを受信した後に、上式（１６）を用いて、全ての時刻ｔにおける各ステートｍについて、対数尤度Ｉβｔ（ｍ）を算出する。
【００５２】
そして、復号装置２０３は、ステップＳ２１３において、ステップＳ２１１及びステップＳ２１２において算出した対数尤度Ｉαｔ，Ｉβｔ，Ｉγｔを上式（１８）に代入し、各時刻ｔにおける対数軟出力Ｉλｔを算出する。
【００５３】
復号装置２０３は、このような一連の処理を経ることにより、Ｍａｘ−Ｌｏｇ−ＢＣＪＲアルゴリズムを適用した軟出力復号を行うことができる。
【００５４】
このように、Ｍａｘ−Ｌｏｇ−ＢＣＪＲアルゴリズムは、積演算が含まれないことから、ＢＣＪＲアルゴリズムと比較して、演算量を大幅に削減することができる。
【００５５】
つぎに、Ｌｏｇ−ＢＣＪＲアルゴリズムについて説明する。Ｌｏｇ−ＢＣＪＲアルゴリズムは、Ｍａｘ−Ｌｏｇ−ＢＣＪＲアルゴリズムによる近似の精度をより向上させたものである。具体的には、Ｌｏｇ−ＢＣＪＲアルゴリズムは、上式（１３）に示した確率の和演算を次式（１９）に示すように補正項を追加することで変形し、和演算の正確な対数値を求めるものである。ここでは、このような補正をｌｏｇ−ｓｕｍ補正と称するものとする。
【００５６】
【数１９】
0003669433.tif 000020
【００５７】
ここで、上式（１９）における左辺に示す演算をｌｏｇ−ｓｕｍ演算と称するものとし、このｌｏｇ−ｓｕｍ演算の演算子を、「S. S. Pietrobon, "Implementation and performance of a turbo/MAP decoder", Int. J. Satellite Commun., vol. 16, pp. 23-46, Jan.-Feb. 1998」に記載されている記数法を踏襲し、次式（２０）に示すように、便宜上"＃"（ただし、同論文中では、"Ｅ"。）と表すものとする。
【００５８】
【数２０】
0003669433.tif 000021
【００５９】
なお、上式（１９）及び上式（２０）は、上述した定数ｓｇｎが"＋１"の場合を示している。定数ｓｇｎが"−１"の場合には、上式（１９）及び上式（２０）に相当する演算は、それぞれ、次式（２１）及び次式（２２）に示すようになる。
【００６０】
【数２１】
0003669433.tif 000022
【００６１】
【数２２】
0003669433.tif 000023
【００６２】
さらに、ｌｏｇ−ｓｕｍ演算の累積加算演算の演算子を、次式（２３）に示すように、"＃Σ"（ただし、同論文中では、"Ｅ"。）と表すものとする。
【００６３】
【数２３】
0003669433.tif 000024
【００６４】
これらの演算子を用いると、Ｌｏｇ−ＢＣＪＲアルゴリズムにおける対数尤度Ｉαｔ，Ｉβｔ及び対数軟出力Ｉλｔは、それぞれ、次式（２４）乃至次式（２６）に示すように表すことができる。なお、対数尤度Ｉγｔは、上式（１７）で表されるため、ここでは、その記述を省略する。
【００６５】
【数２４】
0003669433.tif 000025
【００６６】
【数２５】
0003669433.tif 000026
【００６７】
【数２６】
0003669433.tif 000027
【００６８】
なお、上式（２４）における右辺のステートｍ'におけるｌｏｇ−ｓｕｍ演算の累積加算演算は、ステートｍへの遷移が存在するステートｍ'の中で求めるものとし、上式（２５）における右辺のステートｍ'におけるｌｏｇ−ｓｕｍ演算の累積加算演算は、ステートｍからの遷移が存在するステートｍ'の中で求めるものとする。また、上式（２６）における右辺第１項のｌｏｇ−ｓｕｍ演算の累積加算演算は、入力が"１"のときにステートｍへの遷移が存在するステートｍ'の中で求め、第２項のｌｏｇ−ｓｕｍ演算の累積加算演算は、入力が"０"のときにステートｍへの遷移が存在するステートｍ'の中で求めるものとする。
【００６９】
したがって、復号装置２０３は、Ｌｏｇ−ＢＣＪＲアルゴリズムを適用して軟出力復号を行う場合には、これらの関係に基づいて、先に図２３に示した一連の工程を経ることによって軟出力λｔを求めることができる。
【００７０】
まず、復号装置２０３は、同図に示すように、ステップＳ２１１において、ｙｔ受信する毎に、上式（２４）及び上式（１７）を用いて、対数尤度Ｉαｔ（ｍ），Ｉγｔ（ｍ'，ｍ）を算出する。
【００７１】
続いて、復号装置２０３は、ステップＳ２１２において、系列Ｙ１Ｔの全てを受信した後に、上式（２５）を用いて、全ての時刻ｔにおける各ステートｍについて、対数尤度Ｉβｔ（ｍ）を算出する。
【００７２】
そして、復号装置２０３は、ステップＳ２１３において、ステップＳ２１１及びステップＳ２１２において算出した対数尤度Ｉαｔ，Ｉβｔ，Ｉγｔを上式（２６）に代入し、各時刻ｔにおける対数軟出力Ｉλｔを算出する。
【００７３】
復号装置２０３は、このような一連の処理を経ることにより、Ｌｏｇ−ＢＣＪＲアルゴリズムを適用した軟出力復号を行うことができる。なお、上式（１９）及び上式（２１）において、右辺第２項に示す補正項は、変数｜ｘ−ｙ｜に対する１次元の関数で表されることから、復号装置２０３は、この値を図示しないＲＯＭ（Read Only Memory）等にテーブルとして予め記憶させておくことにより、正確な確率計算を行うことができる。
【００７４】
このようなＬｏｇ−ＢＣＪＲアルゴリズムは、Ｍａｘ−Ｌｏｇ−ＢＣＪＲアルゴリズムと比較すると演算量は増えるものの積演算を含むものではなく、その出力は、量子化誤差を除けば、ＢＣＪＲアルゴリズムの軟出力の対数値そのものに他ならない。
【００７５】
【発明が解決しようとする課題】
ところで、上述したＢＣＪＲアルゴリズム、Ｍａｘ−Ｌｏｇ−ＢＣＪＲアルゴリズム又はＬｏｇ−ＢＣＪＲアルゴリズムは、畳み込み符号等のトレリス符号の復号を可能とするアルゴリズムであるが、このトレリス符号を要素符号とし、複数の要素符号化器をインターリーバを介して連接することによって生成される符号の復号にも適用することができる。すなわち、ＢＣＪＲアルゴリズム、Ｍａｘ−Ｌｏｇ−ＢＣＪＲアルゴリズム又はＬｏｇ−ＢＣＪＲアルゴリズムは、上述したＰＣＣＣ又はＳＣＣＣや、これらのＰＣＣＣ又はＳＣＣＣを応用して多値変調と組み合わせ、信号点の配置と誤り訂正符号の復号特性とを統括して考慮するターボ符号化変調（Turbo Trellis Coded Modulation；以下、ＴＴＣＭという。）又は縦列連接符号化変調（Serial Concatenated Trellis Coded Modulation；以下、ＳＣＴＣＭという。）の復号に適用することができる。
【００７６】
これらのＰＣＣＣ、ＳＣＣＣ、ＴＴＣＭ又はＳＣＴＣＭを復号する復号装置は、ＢＣＪＲアルゴリズム、Ｍａｘ−Ｌｏｇ−ＢＣＪＲアルゴリズム又はＬｏｇ−ＢＣＪＲアルゴリズムに基づく最大事後確率（Maximum A Posteriori probability；ＭＡＰ）復号を行う複数の復号器をインターリーバを介して連接し、いわゆる繰り返し復号を行うことになる。
【００７７】
ここで、復号装置においては、インターリーバとして、ＲＡＭ（Random Access Memory）等の記憶素子に対してデータを書き込み、この書き込み順序と異なる順序でデータを読み出すことにより、インターリーブを実現する。この場合、インターリーバとしては、データの格納用にインターリーブ長の２倍の容量を有する記憶素子を用いる必要がある。
【００７８】
具体的に説明するために、１０タイムスロット分のワード数のＲＡＭを２バンク用いて、１フレームが１０タイムスロット分のインターリーブ長に相当する長さのデータをインターリーブする例について図２４乃至図２９を用いて示す。ここでは、説明の便宜上、２バンクのうち同図中上段に示すものをバンクＡと称するとともに、同図中下段に示すものをバンクＢと称するものとする。また、ここでは、各バンクのＲＡＭには、それぞれ、同図中左側から０，１，２，・・・，９のアドレスが割り当てられているものとする。さらに、同図においては、データの書き込みを"Ｗ"で表し、データの読み出しを"Ｒ"で表すものとする。
【００７９】
まず、インターリーバは、１フレーム目のデータをバンクＡのＲＡＭに対して書き込む。
【００８０】
すなわち、インターリーバは、図２４に示すように、０タイムスロット目では、バンクＡのＲＡＭにおけるアドレス０の記憶領域に対して、データＤＤ０を書き込む。続いて、インターリーバは、１タイムスロット目では、バンクＡのＲＡＭにおけるアドレス１の記憶領域に対して、データＤＤ１を書き込み、２タイムスロット目では、バンクＡのＲＡＭにおけるアドレス２の記憶領域に対して、データＤＤ２を書き込み、３タイムスロット目では、バンクＡのＲＡＭにおけるアドレス３の記憶領域に対して、データＤＤ３を書き込む。同様に、インターリーバは、各タイムスロット毎に、バンクＡのＲＡＭにおける各アドレスの記憶領域に対して、データを書き込み、９タイムスロット目では、バンクＡのＲＡＭにおけるアドレス９の記憶領域に対して、データＤＤ９を書き込む。
【００８１】
このようにして、インターリーバは、１フレーム目のデータを、ＤＤ０，ＤＤ１，ＤＤ２，ＤＤ３，ＤＤ４，ＤＤ５，ＤＤ６，ＤＤ７，ＤＤ８，ＤＤ９の順序でバンクＡのＲＡＭに対して書き込む。
【００８２】
続いて、インターリーバは、バンクＡのＲＡＭに対して書き込んだ１フレーム目のデータを書き込み順序と異なる順序で読み出すとともに、２フレーム目のデータをバンクＢのＲＡＭに対して書き込む。
【００８３】
すなわち、インターリーバは、図２５に示すように、１０タイムスロット目では、バンクＡのＲＡＭにおけるアドレス２の記憶領域、すなわち、２タイムスロット目でデータＤＤ２が書き込まれた記憶領域からデータＤＤ２を読み出すとともに、バンクＢのＲＡＭにおけるアドレス０の記憶領域に対して、データＤＤ１０を書き込む。続いて、インターリーバは、１１タイムスロット目では、バンクＡのＲＡＭにおけるアドレス９の記憶領域、すなわち、９タイムスロット目でデータＤＤ９が書き込まれた記憶領域からデータＤＤ９を読み出すとともに、バンクＢのＲＡＭにおけるアドレス１の記憶領域に対して、データＤＤ１１を書き込む。続いて、インターリーバは、１２タイムスロット目では、バンクＡのＲＡＭにおけるアドレス０の記憶領域、すなわち、０タイムスロット目でデータＤＤ０が書き込まれた記憶領域からデータＤＤ０を読み出すとともに、バンクＢのＲＡＭにおけるアドレス２の記憶領域に対して、データＤＤ１２を書き込む。続いて、インターリーバは、１３タイムスロット目では、バンクＡのＲＡＭにおけるアドレス５の記憶領域、すなわち、５タイムスロット目でデータＤＤ５が書き込まれた記憶領域からデータＤＤ５を読み出すとともに、バンクＢのＲＡＭにおけるアドレス３の記憶領域に対して、データＤＤ１３を書き込む。続いて、インターリーバは、１４タイムスロット目では、バンクＡのＲＡＭにおけるアドレス４の記憶領域、すなわち、４タイムスロット目でデータＤＤ４が書き込まれた記憶領域からデータＤＤ４を読み出すとともに、バンクＢのＲＡＭにおけるアドレス４の記憶領域に対して、データＤＤ１４を書き込む。
【００８４】
さらに、インターリーバは、図２６に示すように、１５タイムスロット目では、バンクＡのＲＡＭにおけるアドレス３の記憶領域、すなわち、３タイムスロット目でデータＤＤ３が書き込まれた記憶領域からデータＤＤ３を読み出すとともに、バンクＢのＲＡＭにおけるアドレス５の記憶領域に対して、データＤＤ１５を書き込む。続いて、インターリーバは、１６タイムスロット目では、バンクＡのＲＡＭにおけるアドレス８の記憶領域、すなわち、８タイムスロット目でデータＤＤ８が書き込まれた記憶領域からデータＤＤ８を読み出すとともに、バンクＢのＲＡＭにおけるアドレス６の記憶領域に対して、データＤＤ１６を書き込む。続いて、インターリーバは、１７タイムスロット目では、バンクＡのＲＡＭにおけるアドレス７の記憶領域、すなわち、７タイムスロット目でデータＤＤ７が書き込まれた記憶領域からデータＤＤ７を読み出すとともに、バンクＢのＲＡＭにおけるアドレス７の記憶領域に対して、データＤＤ１７を書き込む。続いて、インターリーバは、１８タイムスロット目では、バンクＡのＲＡＭにおけるアドレス６の記憶領域、すなわち、６タイムスロット目でデータＤＤ６が書き込まれた記憶領域からデータＤＤ６を読み出すとともに、バンクＢのＲＡＭにおけるアドレス８の記憶領域に対して、データＤＤ１８を書き込む。そして、インターリーバは、１９タイムスロット目では、バンクＡのＲＡＭにおけるアドレス１の記憶領域、すなわち、１タイムスロット目でデータＤＤ１が書き込まれた記憶領域からデータＤＤ１を読み出すとともに、バンクＢのＲＡＭにおけるアドレス９の記憶領域に対して、データＤＤ１９を書き込む。
【００８５】
このようにして、インターリーバは、バンクＡのＲＡＭに対して、ＤＤ０，ＤＤ１，ＤＤ２，ＤＤ３，ＤＤ４，ＤＤ５，ＤＤ６，ＤＤ７，ＤＤ８，ＤＤ９の順序で書き込んだ１フレーム目のデータを、書き込み順序と異なる順序、すなわち、ＤＤ２，ＤＤ９，ＤＤ０，ＤＤ５，ＤＤ４，ＤＤ３，ＤＤ８，ＤＤ７，ＤＤ６，ＤＤ１の順序で全て読み出すとともに、２フレーム目のデータを、ＤＤ１０，ＤＤ１１，ＤＤ１２，ＤＤ１３，ＤＤ１４，ＤＤ１５，ＤＤ１６，ＤＤ１７，ＤＤ１８，ＤＤ１９の順序でバンクＢのＲＡＭに対して書き込む。
【００８６】
続いて、インターリーバは、バンクＢのＲＡＭに対して書き込んだ２フレーム目のデータを書き込み順序と異なる順序で読み出すとともに、３フレーム目のデータをバンクＡのＲＡＭに対して書き込む。
【００８７】
すなわち、インターリーバは、図２７に示すように、２０タイムスロット目では、バンクＢのＲＡＭにおけるアドレス２の記憶領域、すなわち、１２タイムスロット目でデータＤＤ１２が書き込まれた記憶領域からデータＤＤ１２を読み出すとともに、バンクＡのＲＡＭにおけるアドレス０の記憶領域、すなわち、１２タイムスロット目でデータＤＤ０が読み出されて空いている記憶領域に対して、データＤＤ２０を書き込む。続いて、インターリーバは、２１タイムスロット目では、バンクＢのＲＡＭにおけるアドレス９の記憶領域、すなわち、１９タイムスロット目でデータＤＤ１９が書き込まれた記憶領域からデータＤＤ１９を読み出すとともに、バンクＡのＲＡＭにおけるアドレス１の記憶領域、すなわち、１９タイムスロット目でデータＤＤ１が読み出されて空いている記憶領域に対して、データＤＤ２１を書き込む。続いて、インターリーバは、２２タイムスロット目では、バンクＢのＲＡＭにおけるアドレス０の記憶領域、すなわち、１０タイムスロット目でデータＤＤ１０が書き込まれた記憶領域からデータＤＤ１０を読み出すとともに、バンクＡのＲＡＭにおけるアドレス２の記憶領域、すなわち、１０タイムスロット目でデータＤＤ２が読み出されて空いている記憶領域に対して、データＤＤ２２を書き込む。続いて、インターリーバは、２３タイムスロット目では、バンクＢのＲＡＭにおけるアドレス５の記憶領域、すなわち、１５タイムスロット目でデータＤＤ１５が書き込まれた記憶領域からデータＤＤ１５を読み出すとともに、バンクＡのＲＡＭにおけるアドレス３の記憶領域、すなわち、１５タイムスロット目でデータＤＤ３が読み出されて空いている記憶領域に対して、データＤＤ２３を書き込む。続いて、インターリーバは、２４タイムスロット目では、バンクＢのＲＡＭにおけるアドレス４の記憶領域、すなわち、１４タイムスロット目でデータＤＤ１４が書き込まれた記憶領域からデータＤＤ１４を読み出すとともに、バンクＡのＲＡＭにおけるアドレス４の記憶領域、すなわち、１４タイムスロット目でデータＤＤ４が読み出されて空いている記憶領域に対して、データＤＤ２４を書き込む。
【００８８】
さらに、インターリーバは、図２８に示すように、２５タイムスロット目では、バンクＢのＲＡＭにおけるアドレス３の記憶領域、すなわち、１３タイムスロット目でデータＤＤ１３が書き込まれた記憶領域からデータＤＤ１３を読み出すとともに、バンクＡのＲＡＭにおけるアドレス５の記憶領域、すなわち、１３タイムスロット目でデータＤＤ５が読み出されて空いている記憶領域に対して、データＤＤ２５を書き込む。続いて、インターリーバは、２６タイムスロット目では、バンクＢのＲＡＭにおけるアドレス８の記憶領域、すなわち、１８タイムスロット目でデータＤＤ１８が書き込まれた記憶領域からデータＤＤ１８を読み出すとともに、バンクＡのＲＡＭにおけるアドレス６の記憶領域、すなわち、１８タイムスロット目でデータＤＤ６が読み出されて空いている記憶領域に対して、データＤＤ２６を書き込む。続いて、インターリーバは、２７タイムスロット目では、バンクＢのＲＡＭにおけるアドレス７の記憶領域、すなわち、１７タイムスロット目でデータＤＤ１７が書き込まれた記憶領域からデータＤＤ１７を読み出すとともに、バンクＡのＲＡＭにおけるアドレス７の記憶領域、すなわち、１７タイムスロット目でデータＤＤ７が読み出されて空いている記憶領域に対して、データＤＤ２７を書き込む。続いて、インターリーバは、２８タイムスロット目では、バンクＢのＲＡＭにおけるアドレス６の記憶領域、すなわち、１６タイムスロット目でデータＤＤ１６が書き込まれた記憶領域からデータＤＤ１６を読み出すとともに、バンクＡのＲＡＭにおけるアドレス８の記憶領域、すなわち、１６タイムスロット目でデータＤＤ８が読み出されて空いている記憶領域に対して、データＤＤ２８を書き込む。そして、インターリーバは、２９タイムスロット目では、バンクＢのＲＡＭにおけるアドレス１の記憶領域、すなわち、１１タイムスロット目でデータＤＤ１１が書き込まれた記憶領域からデータＤＤ１１を読み出すとともに、バンクＡのＲＡＭにおけるアドレス９の記憶領域、すなわち、１１タイムスロット目でデータＤＤ９が読み出されて空いている記憶領域に対して、データＤＤ２９を書き込む。
【００８９】
このようにして、インターリーバは、バンクＢのＲＡＭに対して、ＤＤ１０，ＤＤ１１，ＤＤ１２，ＤＤ１３，ＤＤ１４，ＤＤ１５，ＤＤ１６，ＤＤ１７，ＤＤ１８，ＤＤ１９の順序で書き込んだ２フレーム目のデータを、書き込み順序と異なる順序、すなわち、ＤＤ１２，ＤＤ１９，ＤＤ１０，ＤＤ１５，ＤＤ１４，ＤＤ１３，ＤＤ１８，ＤＤ１７，ＤＤ１６，ＤＤ１１の順序で全て読み出すとともに、３フレーム目のデータを、ＤＤ２０，ＤＤ２１，ＤＤ２２，ＤＤ２３，ＤＤ２４，ＤＤ２５，ＤＤ２６，ＤＤ２７，ＤＤ２８，ＤＤ２９の順序でバンクＡのＲＡＭに対して書き込む。
【００９０】
同様に、インターリーバは、バンクＡのＲＡＭに対して書き込んだ３フレーム目のデータを書き込み順序と異なる順序で読み出すとともに、４フレーム目のデータをバンクＢのＲＡＭに対して書き込む。
【００９１】
すなわち、インターリーバは、図２９に示すように、３０タイムスロット目では、バンクＡのＲＡＭにおけるアドレス２の記憶領域、すなわち、２２タイムスロット目でデータＤＤ２２が書き込まれた記憶領域からデータＤＤ２２を読み出すとともに、バンクＢのＲＡＭにおけるアドレス０の記憶領域、すなわち、２２タイムスロット目でデータＤＤ１０が読み出されて空いている記憶領域に対して、データＤＤ３０を書き込む。続いて、インターリーバは、３１タイムスロット目では、バンクＡのＲＡＭにおけるアドレス９の記憶領域、すなわち、２９タイムスロット目でデータＤＤ２９が書き込まれた記憶領域からデータＤＤ２９を読み出すとともに、バンクＢのＲＡＭにおけるアドレス１の記憶領域、すなわち、２９タイムスロット目でデータＤＤ１１が読み出されて空いている記憶領域に対して、データＤＤ３１を書き込む。続いて、インターリーバは、３２タイムスロット目では、バンクＡのＲＡＭにおけるアドレス０の記憶領域、すなわち、２０タイムスロット目でデータＤＤ２０が書き込まれた記憶領域からデータＤＤ２０を読み出すとともに、バンクＢのＲＡＭにおけるアドレス２の記憶領域、すなわち、２０タイムスロット目でデータＤＤ１２が読み出されて空いている記憶領域に対して、データＤＤ３２を書き込む。そして、インターリーバは、３３タイムスロット目では、バンクＡのＲＡＭにおけるアドレス５の記憶領域、すなわち、２５タイムスロット目でデータＤＤ２５が書き込まれた記憶領域からデータＤＤ２５を読み出すとともに、バンクＢのＲＡＭにおけるアドレス３の記憶領域、すなわち、２５タイムスロット目でデータＤ１３が読み出されて空いている記憶領域に対して、データＤＤ３３を書き込む。
【００９２】
このようにして、インターリーバは、バンクＡのＲＡＭに対して、ＤＤ２０，ＤＤ２１，ＤＤ２２，ＤＤ２３，ＤＤ２４，ＤＤ２５，ＤＤ２６，ＤＤ２７，ＤＤ２８，ＤＤ２９の順序で書き込んだ３フレーム目のデータを、書き込み順序と異なる順序、すなわち、ＤＤ２２，ＤＤ２９，ＤＤ２０，ＤＤ２５，・・・の順序で全て読み出すとともに、４フレーム目のデータを、ＤＤ３０，ＤＤ３１，ＤＤ３２，ＤＤ３３，・・・の順序でバンクＢのＲＡＭに対して書き込む。
【００９３】
このように、インターリーバは、インターリーブ長と同じ容量を有するＲＡＭを２バンク、すなわち、インターリーブ長の２倍の容量を有するＲＡＭを用い、一方のバンクに対してデータを書き込むとともに、この書き込み順序と異なる順序で他方のバンクからデータを読み出すといった動作を、２つのバンクの間で切り替えることにより、データの書き込みと読み出しとを連続的に行うインターリーブを実現することができる。このとき、インターリーバは、上述したように、ＲＡＭに対してデータをシーケンシャルな順序で書き込む一方で、ＲＡＭに書き込まれたデータの読み出しについては、読み出し順序を所定の回路によって発生してもよく、読み出し順序としてのインターリーブパターンを所定の記憶媒体に格納しておき、このインターリーブパターンを読み出すようにしてもよい。また、インターリーバは、これとは逆に、ＲＡＭに対するデータの書き込みについては、書き込み順序を所定の回路によって発生するか、又は書き込み順序としてのインターリーブパターンを所定の記憶媒体に格納しておき、このインターリーブパターンを読み出す一方で、ＲＡＭに書き込まれたデータをシーケンシャルな順序で読み出すようにしてもよい。
【００９４】
ところで、インターリーバを上述したＰＣＣＣ、ＳＣＣＣ、ＴＴＣＭ又はＳＣＴＣＭを復号する復号装置に適用する場合には、インターリーバとしては、インターリーブ長が長いものを用いるほど、符号の性能が向上することが知られている。
【００９５】
しかしながら、インターリーバは、上述したように、データの書き込み順序と読み出し順序とが異なるために、インターリーブするデータをインターリーバ長の記憶素子に対して一旦書き込むとともに、既に記憶素子に対して書き込まれたデータを読み出すという操作を必要とすることから、データの格納用にインターリーブ長の２倍の容量を有する記憶素子を用いる必要があった。したがって、このようなインターリーバを復号装置に適用する場合には、インターリーバのインターリーブ長が長いほど、当該復号装置を占める記憶素子の大きさが増大し、当該復号装置の回路規模も増大するといった問題があった。
【００９６】
また、ＰＣＣＣ、ＳＣＣＣ、ＴＴＣＭ又はＳＣＴＣＭによる符号化を行う符号化装置においても、インターリーバは必須の構成となることから、インターリーバを符号化装置に適用した場合にも、インターリーバのインターリーブ長が長いほど、当該符号化装置を占める記憶素子の大きさが増大し、当該符号化装置の回路規模も増大するといった問題があった。
【００９７】
本発明は、このような実情に鑑みてなされたものであり、回路規模の削減を図ることができ、優れた利便を提供することができるインターリーブ装置及びインターリーブ方法、これらのインターリーブ装置及びインターリーブ方法を適用して符号の性能を維持しつつＰＣＣＣ、ＳＣＣＣ、ＴＴＣＭ又はＳＣＴＣＭによる符号化を行うことができる符号化装置及び符号化方法、並びにこれらのインターリーブ装置及びインターリーブ方法を適用して繰り返し復号を行うことができる復号装置及び復号方法を提供することを目的とする。
【００９８】
【課題を解決するための手段】
上述した目的を達成する本発明にかかるインターリーブ装置は、入力された入力データの順序を所定のアドレスにしたがって置換して並べ替えて出力データとして出力するインターリーブ装置であって、データを記憶する記憶手段と、入力データから出力データへの置換が対称であり、且つ、２以上の整数ｉと０以上ｉ未満の整数ｊ，ｋとに対して、ｉで除算した剰余がｊになる任意の位置の入力データが、ｉで除算した剰余がｋになる位置に出力データとして出力されるように、記憶手段に対するデータの書き込み及び読み出しを制御する制御手段とを備え、上記制御手段は、上記記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせることを特徴としている。
【００９９】
このような本発明にかかるインターリーブ装置は、入力データから出力データへの置換が対称であり、且つ、２以上の整数ｉと０以上ｉ未満の整数ｊ，ｋとに対して、ｉで除算した剰余がｊになる任意の位置の入力データが、ｉで除算した剰余がｋになる位置に出力データとして出力されるように、制御手段によって記憶手段に対するデータの書き込み及び読み出しを制御する。このとき、本発明にかかるインターリーブ装置は、制御手段による記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせる。
【０１００】
また、上述した目的を達成する本発明にかかるインターリーブ方法は、入力された入力データの順序を所定のアドレスにしたがって置換して並べ替えて出力データとして出力するインターリーブ方法であって、入力データを入力する入力工程と、入力データから出力データへの置換が対称であり、且つ、２以上の整数ｉと０以上ｉ未満の整数ｊ，ｋとに対して、ｉで除算した剰余がｊになる任意の位置の入力データが、ｉで除算した剰余がｋになる位置に出力データとして出力されるように、データを記憶する記憶手段に対するデータの書き込み及び読み出しを制御する制御工程と、出力データを出力する出力工程とを備え、上記制御工程では、上記記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせることを特徴としている。
【０１０１】
このような本発明にかかるインターリーブ方法は、入力データから出力データへの置換が対称であり、且つ、２以上の整数ｉと０以上ｉ未満の整数ｊ，ｋとに対して、ｉで除算した剰余がｊになる任意の位置の入力データが、ｉで除算した剰余がｋになる位置に出力データとして出力されるように、記憶手段に対するデータの書き込み及び読み出しを制御する。このとき、本発明にかかるインターリーブ方法においては、記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせる。
【０１０２】
さらに、上述した目的を達成する本発明にかかる符号化装置は、複数の要素符号をインターリーブ処理を介して並列又は縦列に連接して符号化を行う符号化装置であって、入力されたデータに対して所定の符号化を行う複数の要素符号化手段と、並列又は縦列に連接される複数の要素符号化手段のそれぞれの間に設けられ、入力された入力データの順序を所定のアドレスにしたがって置換して並べ替えて出力データとして出力するインターリーブ手段とを備え、インターリーブ手段は、データを記憶する記憶手段と、入力データから出力データへの置換が対称であり、且つ、２以上の整数ｉと０以上ｉ未満の整数ｊ，ｋとに対して、ｉで除算した剰余がｊになる任意の位置の入力データが、ｉで除算した剰余がｋになる位置に出力データとして出力されるように、記憶手段に対するデータの書き込み及び読み出しを制御する制御手段とを有し、上記制御手段は、上記記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせることを特徴としている。
【０１０３】
このような本発明にかかる符号化装置は、各要素符号化手段の間に設けられるインターリーブ手段により、入力データから出力データへの置換が対称であり、且つ、２以上の整数ｉと０以上ｉ未満の整数ｊ，ｋとに対して、ｉで除算した剰余がｊになる任意の位置の入力データが、ｉで除算した剰余がｋになる位置に出力データとして出力されるように、記憶手段に対するデータの書き込み及び読み出しを制御したインターリーブ処理を行う。このとき、本発明にかかる符号化装置は、制御手段による記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせる。
【０１０４】
さらにまた、上述した目的を達成する本発明にかかる符号化方法は、複数の要素符号をインターリーブ処理を介して並列又は縦列に連接して符号化を行う符号化方法であって、入力されたデータに対して所定の符号化を行う複数の要素符号化工程と、並列又は縦列に連接される複数の要素符号化工程のそれぞれの間に行われ、入力された入力データの順序を所定のアドレスにしたがって置換して並べ替えて出力データとして出力するインターリーブ工程とを備え、インターリーブ工程は、入力データを入力する入力工程と、入力データから出力データへの置換が対称であり、且つ、２以上の整数ｉと０以上ｉ未満の整数ｊ，ｋとに対して、ｉで除算した剰余がｊになる任意の位置の入力データが、ｉで除算した剰余がｋになる位置に出力データとして出力されるように、データを記憶する記憶手段に対するデータの書き込み及び読み出しを制御する制御工程と、出力データを出力する出力工程とを有し、上記制御工程では、上記記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせることを特徴としている。
【０１０５】
このような本発明にかかる符号化方法は、各要素符号化工程の間に行われるインターリーブ工程にて、入力データから出力データへの置換が対称であり、且つ、２以上の整数ｉと０以上ｉ未満の整数ｊ，ｋとに対して、ｉで除算した剰余がｊになる任意の位置の入力データが、ｉで除算した剰余がｋになる位置に出力データとして出力されるように、記憶手段に対するデータの書き込み及び読み出しを制御したインターリーブ処理を行う。このとき、本発明にかかる符号化方法においては、記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせる。
【０１０６】
また、上述した目的を達成する本発明にかかる復号装置は、複数の要素符号をインターリーブ処理を介して並列又は縦列に連接して生成された符号の復号を行う復号装置であって、複数の要素符号に対応して設けられ、軟入力とされる受信値及び事前確率情報を入力して軟出力復号を行い、各時刻における軟出力及び／又は外部情報を生成する複数の軟出力復号手段と、これらの軟出力復号手段によって生成された外部情報を入力し、符号化におけるインターリーブ処理と同一の置換位置情報に基づいて、外部情報の順序を所定のアドレスにしたがって置換して並べ替えるインターリーブ処理、又は符号化におけるインターリーブ処理によって並べ替えられた情報の配列を元に戻すように、外部情報の順序を所定のアドレスにしたがって置換して並べ替えるデインターリーブ処理を行うインターリーブ手段とを備え、インターリーブ手段は、データを記憶する記憶手段と、入力された入力データから出力する出力データへの置換が対称であり、且つ、２以上の整数ｉと０以上ｉ未満の整数ｊ，ｋとに対して、ｉで除算した剰余がｊになる任意の位置の入力データが、ｉで除算した剰余がｋになる位置に出力データとして出力されるように、記憶手段に対するデータの書き込み及び読み出しを制御する制御手段とを有し、上記制御手段は、上記記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせることを特徴としている。
【０１０７】
このような本発明にかかる復号装置は、インターリーブ手段により、入力データから出力データへの置換が対称であり、且つ、２以上の整数ｉと０以上ｉ未満の整数ｊ，ｋとに対して、ｉで除算した剰余がｊになる任意の位置の入力データが、ｉで除算した剰余がｋになる位置に出力データとして出力されるように、記憶手段に対するデータの書き込み及び読み出しを制御したインターリーブ処理又はデインターリーブ処理を行う。このとき、本発明にかかる復号装置は、制御手段による記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせる。
【０１０８】
さらに、上述した目的を達成する本発明にかかる復号方法は、複数の要素符号をインターリーブ処理を介して並列又は縦列に連接して生成された符号の復号を行う復号方法であって、複数の要素符号に対応して設けられ、軟入力とされる受信値及び事前確率情報を入力して軟出力復号を行い、各時刻における軟出力及び／又は外部情報を生成する複数の軟出力復号工程と、これらの軟出力復号工程にて生成された外部情報を入力し、符号化におけるインターリーブ処理と同一の置換位置情報に基づいて、外部情報の順序を所定のアドレスにしたがって置換して並べ替えるインターリーブ処理、又は符号化におけるインターリーブ処理によって並べ替えられた情報の配列を元に戻すように、外部情報の順序を所定のアドレスにしたがって置換して並べ替えるデインターリーブ処理を行うインターリーブ工程とを備え、インターリーブ工程は、データを入力する入力工程と、この入力工程にて入力された入力データから出力する出力データへの置換が対称であり、且つ、２以上の整数ｉと０以上ｉ未満の整数ｊ，ｋとに対して、ｉで除算した剰余がｊになる任意の位置の入力データが、ｉで除算した剰余がｋになる位置に出力データとして出力されるように、データを記憶する記憶手段に対するデータの書き込み及び読み出しを制御する制御工程と、出力データを出力する出力工程とを有し、上記制御工程では、上記記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせることを特徴としている。
【０１０９】
このような本発明にかかる復号方法は、インターリーブ工程にて、入力データから出力データへの置換が対称であり、且つ、２以上の整数ｉと０以上ｉ未満の整数ｊ，ｋとに対して、ｉで除算した剰余がｊになる任意の位置の入力データが、ｉで除算した剰余がｋになる位置に出力データとして出力されるように、記憶手段に対するデータの書き込み及び読み出しを制御したインターリーブ処理又はデインターリーブ処理を行う。このとき、本発明にかかる復号方法においては、記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせる。
【０１１０】
【発明の実施の形態】
以下、本発明を適用した具体的な実施の形態について図面を参照しながら詳細に説明する。
【０１１１】
この実施の形態は、図１に示すように、ディジタル情報を図示しない送信装置が備える符号化装置１によって符号化し、その出力を雑音のある無記憶通信路２を介して図示しない受信装置に入力して、この受信装置が備える復号装置３によって復号する通信モデルに適用したデータ送受信システムである。
【０１１２】
このデータ送受信システムにおいて、符号化装置１は、畳み込み符号等のトレリス符号を要素符号とする並列連接畳み込み符号（Parallel Concatenated Convolutional Codes；以下、ＰＣＣＣという。）又は縦列連接畳み込み符号（Serially Concatenated Convolutional Codes；以下、ＳＣＣＣという。）や、これらのＰＣＣＣ又はＳＣＣＣを応用して多値変調と組み合わせたターボ符号化変調（Turbo Trellis Coded Modulation；以下、ＴＴＣＭという。）又は縦列連接符号化変調（Serial Concatenated Trellis Coded Modulation；以下、ＳＣＴＣＭという。）を行うものとして構成される。これらの符号化は、いわゆるターボ符号化（Turbo coding）の一種として知られているものであって、符号化装置１は、複数の要素符号化器と、入力されたデータを並べ替えるインターリーバとを連接することにより、ターボ符号化を行うものとして構成される。
【０１１３】
一方、復号装置３は、符号化装置１によって符号化がなされた符号の復号を行うものであって、「Bahl, Cocke, Jelinek and Raviv, "Optimal decoding of linear codes for minimizing symbol error rate", IEEE Trans. Inf. Theory, vol. IT-20, pp. 284-287, Mar. 1974」に記載されているＢＣＪＲアルゴリズム、「Robertson, Villebrun and Hoeher, "A comparison of optimal and sub-optimal MAP decoding algorithms operating in the domain", IEEE Int. Conf. on Communications, pp. 1009-1013, June 1995」に記載されているＭａｘ−Ｌｏｇ−ＭＡＰアルゴリズム又はＬｏｇ−ＭＡＰアルゴリズム（以下、Ｍａｘ−Ｌｏｇ−ＢＣＪＲアルゴリズム又はＬｏｇ−ＢＣＪＲアルゴリズムという。）に基づく最大事後確率（Maximum A Posteriori probability；以下、ＭＡＰという。）復号を行い、いわゆる事後確率情報（a posteriori probability information）に対応する軟出力（soft-output）及び／又はいわゆる外部情報（extrinsic information）を求める複数の軟出力復号回路と、入力されたデータを並べ替えるインターリーバとを連接することにより、繰り返し復号を行うものとして構成される。
【０１１４】
特に、符号化装置１及び／又は復号装置３においては、インターリーバが、入力データから出力データへの置換が対称であり、且つ、偶数番目の入力データは偶数番目に出力されるとともに、奇数番目の入力データは奇数番目に出力されるアドレスにしたがった置換を行うものであり、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行うことにより、インターリーブ長と同じ容量の記憶素子を用いるのみで連続的なインターリーブを実現することができるものである。
【０１１５】
まず、本発明の外延をより明確にするために、本発明の詳細な説明に先立って、図２及び図３に示すＰＣＣＣによる符号化・復号を行う符号化装置１'及び復号装置３'と、図４及び図５に示すＳＣＣＣによる符号化・復号を行う符号化装置１''及び復号装置３''とについて説明する。これらの符号化装置１'，１''は、符号化装置１の例として位置付けられるものであり、復号装置３'，３''は、復号装置３の例として位置付けられるものである。
【０１１６】
まず、ＰＣＣＣによる符号化を行う符号化装置１'と、この符号化装置１'による符号の復号を行う復号装置３'とについて説明する。
【０１１７】
符号化装置１'としては、図２に示すように、入力されたデータを遅延させる遅延器１１と、畳み込み演算を行う２つの畳み込み符号化器１２，１４と、入力されたデータの順序を並べ替えるインターリーバ１３とを備えるものがある。この符号化装置１'は、入力された１ビットの入力データＤ１に対して、符号化率が"１／３"の並列連接畳み込み演算を行い、３ビットの出力データＤ４，Ｄ５，Ｄ６を生成し、例えば２相位相（Binary Phase Shift Keying；以下、ＢＰＳＫという。）変調方式や４相位相（Quadrature Phase Shift Keying；以下、ＱＰＳＫという。）変調方式による変調を行う図示しない変調器を介して外部に出力する。
【０１１８】
遅延器１１は、３ビットの出力データＤ４，Ｄ５，Ｄ６が出力されるタイミングを合わせるために備えられるものであり、１ビットの入力データＤ１を入力すると、この入力データＤ１をインターリーバ１３が要する処理時間と同時間だけ遅延させる。遅延器１１は、遅延させて得られた遅延データＤ２を、出力データＤ４として外部に出力するとともに、後段の畳み込み符号化器１２に供給する。
【０１１９】
畳み込み符号化器１２は、遅延器１１から出力された１ビットの遅延データＤ２を入力すると、この遅延データＤ２に対して畳み込み演算を行い、演算結果を出力データＤ５として外部に出力する。
【０１２０】
インターリーバ１３は、１つのビット系列からなる入力データＤ１を入力し、この入力データＤ１を構成する各ビットの順序を並べ替え、生成したインターリーブデータＤ３を後段の畳み込み符号化器１４に供給する。
【０１２１】
畳み込み符号化器１４は、インターリーバ１３から供給される１ビットのインターリーブデータＤ３を入力すると、このインターリーブデータＤ３に対して畳み込み演算を行い、演算結果を出力データＤ６として外部に出力する。
【０１２２】
このような符号化装置１'は、１ビットの入力データＤ１を入力すると、この入力データＤ１を組織成分の出力データＤ４として、遅延器１１を介してそのまま外部に出力するとともに、畳み込み符号化器１２による遅延データＤ２の畳み込み演算の結果得られる出力データＤ５と、畳み込み符号化器１４によるインターリーブデータＤ３の畳み込み演算の結果得られる出力データＤ６とを外部に出力することにより、全体として、符号化率が"１／３"の並列連接畳み込み演算を行う。この符号化装置１'によって符号化されたデータは、図示しない変調器によって所定の変調方式に基づいて信号点のマッピングが行われ、無記憶通信路２を介して受信装置に出力される。
【０１２３】
一方、符号化装置１'による符号の復号を行う復号装置３'としては、図３に示すように、軟出力復号を行う２つの軟出力復号回路１５，１７と、入力されたデータの順序を並べ替えるインターリーバ１６と、入力されたデータの順序を元に戻す２つのデインターリーバ１８，２０と、２つのデータを加算する加算器１９とを備えるものがある。この復号装置３'は、無記憶通信路２上で発生したノイズの影響によって軟入力（soft-input）とされる受信値Ｄ７から符号化装置１'における入力データＤ１を推定し、復号データＤ１３として出力する。
【０１２４】
軟出力復号回路１５は、符号化装置１'における畳み込み符号化器１２に対応して備えられるものであり、上述したＢＣＪＲアルゴリズム、Ｍａｘ−Ｌｏｇ−ＢＣＪＲアルゴリズム又はＬｏｇ−ＢＣＪＲアルゴリズムに基づくＭＡＰ復号を行う。すなわち、軟出力復号回路１５は、軟入力の受信値Ｄ７を入力するとともに、デインターリーバ１８から出力された軟入力の情報ビットに対する事前確率情報（a priori probability information）Ｄ８を入力し、これらの受信値Ｄ７と事前確率情報Ｄ８とを用いて、軟出力復号を行う。そして、軟出力復号回路１５は、符号の拘束条件によって求められる情報ビットに対する外部情報Ｄ９を生成し、この外部情報Ｄ９を後段のインターリーバ１６に軟出力として出力する。
【０１２５】
インターリーバ１６は、軟出力復号回路１５から出力された軟入力である情報ビットに対する外部情報Ｄ９に対して、符号化装置１'におけるインターリーバ１３と同一の置換位置情報に基づいたインターリーブを施す。インターリーバ１６は、インターリーブして得られたデータを後段の軟出力復号回路１７における情報ビットに対する事前確率情報Ｄ１０として出力するとともに、後段の加算器１９に出力する。
【０１２６】
軟出力復号回路１７は、符号化装置１'における畳み込み符号化器１４に対応して備えられるものであり、軟出力復号回路１５と同様に、ＢＣＪＲアルゴリズム、Ｍａｘ−Ｌｏｇ−ＢＣＪＲアルゴリズム又はＬｏｇ−ＢＣＪＲアルゴリズムに基づくＭＡＰ復号を行う。すなわち、軟出力復号回路１７は、軟入力の受信値Ｄ７を入力するとともに、インターリーバ１６から出力された軟入力の情報ビットに対する事前確率情報Ｄ１０を入力し、これらの受信値Ｄ７と事前確率情報Ｄ１０とを用いて、軟出力復号を行う。そして、軟出力復号回路１７は、符号の拘束条件によって求められる情報ビットに対する外部情報Ｄ１１を生成し、この外部情報Ｄ１１をデインターリーバ１８に軟出力として出力するとともに、加算器１９に出力する。
【０１２７】
デインターリーバ１８は、符号化装置１'におけるインターリーバ１３によってインターリーブされたインターリーブデータＤ３のビット配列を、元の入力データＤ１のビット配列に戻すように、軟出力復号回路１７から出力される軟入力の外部情報Ｄ１１にデインターリーブを施す。デインターリーバ１８は、デインターリーブして得られたデータを軟出力復号回路１５における情報ビットに対する事前確率情報Ｄ８として出力する。
【０１２８】
加算器１９は、インターリーバ１６から出力された軟入力の情報ビットに対する事前確率情報Ｄ１０と、軟出力復号回路１７から出力された情報ビットに対する外部情報Ｄ１１とを加算する。加算器１９は、得られたデータＤ１２を後段のデインターリーバ２０に軟出力として出力する。
【０１２９】
デインターリーバ２０は、符号化装置１'におけるインターリーバ１３によってインターリーブされたインターリーブデータＤ３のビット配列を、元の入力データＤ１のビット配列に戻すように、加算器１９から出力される軟出力のデータＤ１２にデインターリーブを施す。デインターリーバ２０は、デインターリーブして得られたデータを復号データＤ１３として外部に出力する。
【０１３０】
このような復号装置３'は、符号化装置１'における畳み込み符号化器１２，１４のそれぞれに対応する軟出力復号回路１５，１７を備えることにより、復号複雑度が高い符号を複雑度の小さい要素に分解し、軟出力復号回路１５，１７の間の相互作用によって特性を逐次的に向上させることができる。復号装置３'は、受信値Ｄ７を受信すると、所定の繰り返し回数での繰り返し復号を行い、この復号動作の結果得られた軟出力の外部情報に基づいて、復号データＤ１３を出力する。
【０１３１】
なお、ＴＴＣＭによる符号化を行う符号化装置は、符号化装置１'の最終段に、例えば８相位相（8-Phase Shift Keying；以下、８ＰＳＫという。）変調方式による変調を行う変調器を備えることによって実現することができる。また、ＴＴＣＭによる符号の復号を行う復号装置は、復号装置３'と同様の構成で実現することができ、受信値として、同相成分及び直交成分のシンボルを直接入力することになる。
【０１３２】
つぎに、ＳＣＣＣによる符号化を行う符号化装置１''と、この符号化装置１''による符号の復号を行う復号装置３''とについて説明する。
【０１３３】
符号化装置１''としては、図４に示すように、外符号と呼ばれる符号の符号化を行う畳み込み符号化器３１と、入力されたデータの順序を並べ替えるインターリーバ３２と、内符号と呼ばれる符号の符号化を行う畳み込み符号化器３３とを備えるものがある。この符号化装置１''は、入力された１ビットの入力データＤ２１に対して、符号化率が"１／３"の縦列連接畳み込み演算を行い、３ビットの出力データＤ２６，Ｄ２７，Ｄ２８を生成し、例えばＢＰＳＫ変調方式やＱＰＳＫ変調方式による変調を行う図示しない変調器を介して外部に出力する。
【０１３４】
畳み込み符号化器３１は、１ビットの入力データＤ２１を入力すると、この入力データＤ２１に対して畳み込み演算を行い、演算結果を２ビットの符号化データＤ２２，Ｄ２３として後段のインターリーバ３２に供給する。すなわち、畳み込み符号化器３１は、外符号の符号化として符号化率が"１／２"の畳み込み演算を行い、生成した符号化データＤ２２，Ｄ２３を後段のインターリーバ３２に供給する。
【０１３５】
インターリーバ３２は、畳み込み符号化器３１から供給された２つのビット系列からなる符号化データＤ２２，Ｄ２３を入力し、これらの符号化データＤ２２，Ｄ２３を構成する各ビットの順序を並べ替え、生成した２つのビット系列からなるインターリーブデータＤ２４，Ｄ２５を後段の畳み込み符号化器３３に供給する。
【０１３６】
畳み込み符号化器３３は、インターリーバ３２から供給される２ビットのインターリーブデータＤ２４，Ｄ２５を入力すると、これらのインターリーブデータＤ２４，Ｄ２５に対して畳み込み演算を行い、演算結果を３ビットの出力データＤ２６，Ｄ２７，Ｄ２８として外部に出力する。すなわち、畳み込み符号化器３３は、内符号の符号化として符号化率が"２／３"の畳み込み演算を行い、出力データＤ２６，Ｄ２７，Ｄ２８を外部に出力する。
【０１３７】
このような符号化装置１''は、畳み込み符号化器３１によって外符号の符号化として符号化率が"１／２"の畳み込み演算を行い、畳み込み符号化器３３によって内符号の符号化として符号化率が"２／３"の畳み込み演算を行うことにより、全体として、符号化率が"（１／２）×（２／３）＝１／３"の縦列連接畳み込み演算を行う。この符号化装置１''によって符号化されたデータは、図示しない変調器によって所定の変調方式に基づいて信号点のマッピングが行われ、無記憶通信路２を介して受信装置に出力される。
【０１３８】
一方、符号化装置１''による符号の復号を行う復号装置３''としては、図５に示すように、軟出力復号を行う２つの軟出力復号回路３４，３６と、入力されたデータの順序を元に戻すデインターリーバ３５と、入力されたデータの順序を並べ替えるインターリーバ３７とを備えるものがある。この復号装置３''は、無記憶通信路２上で発生したノイズの影響によって軟入力とされる受信値Ｄ２９から符号化装置１''における入力データＤ２１を推定し、復号データＤ３６として出力する。
【０１３９】
軟出力復号回路３４は、符号化装置１''における畳み込み符号化器３３に対応して備えられるものであり、ＢＣＪＲアルゴリズム、Ｍａｘ−Ｌｏｇ−ＢＣＪＲアルゴリズム又はＬｏｇ−ＢＣＪＲアルゴリズムに基づくＭＡＰ復号を行う。すなわち、軟出力復号回路３４は、軟入力の受信値Ｄ２９を入力するとともに、インターリーバ３７から出力された軟入力の情報ビットに対する事前確率情報Ｄ３０を入力し、これらの受信値Ｄ２９と事前確率情報Ｄ３０とを用いて、ＢＣＪＲアルゴリズム、Ｍａｘ−Ｌｏｇ−ＢＣＪＲアルゴリズム又はＬｏｇ−ＢＣＪＲアルゴリズムに基づくＭＡＰ復号を行い、内符号の軟出力復号を行う。そして、軟出力復号回路３４は、符号の拘束条件によって求められる情報ビットに対する外部情報Ｄ３１を生成し、この外部情報Ｄ３１を後段のデインターリーバ３５に軟出力として出力する。なお、この外部情報Ｄ３１は、符号化装置１''におけるインターリーバ３２によってインターリーブされたインターリーブデータＤ２４，Ｄ２５に対応するものである。
【０１４０】
デインターリーバ３５は、符号化装置１''におけるインターリーバ３２によってインターリーブされたインターリーブデータＤ２４，Ｄ２５のビット配列を、それぞれ、元の符号化データＤ２２，Ｄ２３のビット配列に戻すように、軟出力復号回路３４から出力される軟入力の外部情報Ｄ３１にデインターリーブを施す。デインターリーバ３５は、デインターリーブして得られたデータを後段の軟出力復号回路３６における符号ビットに対する事前確率情報Ｄ３２として出力する。
【０１４１】
軟出力復号回路３６は、符号化装置１''における畳み込み符号化器３１に対応して備えられるものであり、軟出力復号回路３４と同様に、ＢＣＪＲアルゴリズム、Ｍａｘ−Ｌｏｇ−ＢＣＪＲアルゴリズム又はＬｏｇ−ＢＣＪＲアルゴリズムに基づくＭＡＰ復号を行う。すなわち、軟出力復号回路３６は、デインターリーバ３５から出力された軟入力の符号ビットに対する事前確率情報Ｄ３２を入力するとともに、値が"０"である情報ビットに対する事前確率情報Ｄ３３を入力し、これらの事前確率情報Ｄ３２，Ｄ３３を用いて、ＢＣＪＲアルゴリズム、Ｍａｘ−Ｌｏｇ−ＢＣＪＲアルゴリズム又はＬｏｇ−ＢＣＪＲアルゴリズムに基づくＭＡＰ復号を行い、外符号の軟出力復号を行う。軟出力復号回路３６は、符号の拘束条件によって求められる外部情報Ｄ３４，Ｄ３５を生成し、外部情報Ｄ３４を復号データＤ３６として外部に出力するとともに、外部情報Ｄ３５をインターリーバ３７に軟出力として出力する。
【０１４２】
インターリーバ３７は、軟出力復号回路３６から出力された軟入力である符号ビットに対する外部情報Ｄ３５に対して、符号化装置１''におけるインターリーバ３２と同一の置換位置情報に基づいたインターリーブを施す。インターリーバ３７は、インターリーブして得られたデータを軟出力復号回路３４における情報ビットに対する事前確率情報Ｄ３０として出力する。
【０１４３】
このような復号装置３''は、符号化装置１''における畳み込み符号化器３１，３３のそれぞれに対応する軟出力復号回路３６，３４を備えることにより、復号装置３'と同様に、復号複雑度が高い符号を複雑度の小さい要素に分解し、軟出力復号回路３４，３６の間の相互作用によって特性を逐次的に向上させることができる。復号装置３''は、受信値Ｄ２９を受信すると、所定の繰り返し回数での繰り返し復号を行い、この復号動作の結果得られた軟出力の外部情報に基づいて、復号データＤ３６を出力する。
【０１４４】
なお、ＳＣＴＣＭによる符号化を行う符号化装置は、符号化装置１''の最終段に、例えば８ＰＳＫ変調方式による変調を行う変調器を備えることによって実現することができる。また、ＳＣＴＣＭによる符号の復号を行う復号装置は、復号装置３''と同様の構成で実現することができ、受信値として、同相成分及び直交成分のシンボルを直接入力することになる。
【０１４５】
さて、以下では、符号化装置１及び／又は復号装置３に備えられるインターリーバについて説明する。ここで、デインターリーバは、インターリーバと逆の置換位置情報に基づいてデータを並べ替えるものであることから、インターリーバの１形態として擬制することができる。そこで、以下では、特に区別を要しない場合には、デインターリーバについてもインターリーバと称して説明する。すなわち、ここでのインターリーバとは、例えば、上述した符号化装置１'におけるインターリーバ１３、復号装置３'におけるインターリーバ１６若しくはデインターリーバ１８，２０、符号化装置１''におけるインターリーバ３２、又は復号装置３''におけるデインターリーバ３５若しくはインターリーバ３７を具体例とすることができるものであり、これらを総称するものである。
【０１４６】
インターリーバは、上述したように、入力データから出力データへの置換が対称である対称インターリーブを行うものである。すなわち、インターリーバとデインターリーバは、同じものであり、インターリーバは、任意の入力データに対して同じ置換を２回行うと元の入力データを出力データとして出力することができるものである。より換言すれば、インターリーバは、インターリーブの置換行列を"π"で表すものとすると、逆置換行列"π−１"が存在し、単位行列を"Ｉ"で表すものとすると、インターリーブとデインターリーブを同一のアドレスにしたがって行い、π＝＝π−１が成立するとともに、インターリーブを２回行うと元の系列に戻り、ππ＝＝Ｉが成立するインターリーブを行うものである。
【０１４７】
ここで、インターリーバは、さらに、偶数番目の入力データは偶数番目に出力されるとともに、奇数番目の入力データは奇数番目に出力されるアドレスにしたがった置換を行うようにすることもできる。
【０１４８】
具体的に説明するために、ハードウェアでの実装例として、１０タイムスロット分のワード数のＲＡＭ（Random Access Memory）等の記憶素子に対してデータの書き込み及び読み出しを行うものを考える。このインターリーバは、例えば、図６（Ａ）に示すように、左側から０，１，２，・・・，９のアドレスが割り当てられている記憶素子に対して、左側からデータＤＤ０，ＤＤ１，ＤＤ２，ＤＤ３，ＤＤ４，ＤＤ５，ＤＤ６，ＤＤ７，ＤＤ８，ＤＤ９を入力データとしてシーケンシャルに順次書き込んだ場合には、同図（Ｂ）に示すように、出力データとしてアドレスにしたがってデータＤＤ２，ＤＤ９，ＤＤ０，ＤＤ５，ＤＤ４，ＤＤ３，ＤＤ８，ＤＤ７，ＤＤ６，ＤＤ１を読み出すものとする。一方、このインターリーバは、例えば、同図（Ｂ）に示すように、記憶素子に対して、左側からデータＤＤ２，ＤＤ９，ＤＤ０，ＤＤ５，ＤＤ４，ＤＤ３，ＤＤ８，ＤＤ７，ＤＤ６，ＤＤ１を入力データとしてシーケンシャルに順次書き込んだ場合には、同図（Ａ）に示すように、出力データとしてアドレスにしたがってデータＤＤ０，ＤＤ１，ＤＤ２，ＤＤ３，ＤＤ４，ＤＤ５，ＤＤ６，ＤＤ７，ＤＤ８，ＤＤ９を読み出すことになる。
【０１４９】
すなわち、インターリーバは、入力データから出力データへの置換が対称であり、且つ、２以上の整数ｉと０以上ｉ未満の整数ｊ，ｋとに対して、ｉで除算した剰余がｊになる任意の位置の入力データが、ｉで除算した剰余がｋになる位置に出力データとして出力されるインターリーブを行うものとして表現することができる。
【０１５０】
ここで、このような対称インターリーブを行うインターリーバは、シーケンシャルに順次データを書き込み、このデータをアドレスにしたがってランダムに読み出す場合と、所定のアドレスにしたがってランダムにデータを書き込み、このデータをシーケンシャルに順次読み出す場合とで、全く同じインターリーブを行うことができる点に着目する。
【０１５１】
すなわち、インターリーバは、アドレスにしたがってランダムに読み出しを行いつつ直前にデータを読み出した位置にデータを書き込むインターリーブ動作と、シーケンシャルに順次読み出しを行いつつ直前にデータを読み出した位置にデータを書き込むデインターリーブ動作とを交互に行う。
【０１５２】
このようにすることにより、インターリーバは、インターリーブ単位であるフレーム毎に、インターリーブとデインターリーブとを交互に行うことになるが、入力データから出力データへの置換が対称であることから、インターリーブを連続的に行うことと等価となる。
【０１５３】
このように、インターリーバは、同時刻に行われる読み出し順序と書き込み順序とを同じとすることにより、データの格納用にインターリーブ長の２倍の容量を有する記憶素子を用いる必要がなく、インターリーブ長と同じ容量を有する記憶素子を用いれば足りることになる。
【０１５４】
このような性質を有するインターリーバを上述した符号化装置１'及び復号装置３'、並びに符号化装置１''及び復号装置３''に適用した場合には、これらの符号化装置１'及び復号装置３'、並びに符号化装置１''及び復号装置３''は、それぞれ、概念的には、図７乃至図１０に示すように構成される。
【０１５５】
すなわち、符号化装置１'におけるインターリーバ１３は、図７に当該符号化装置１'の要部概念を示すように、アドレスにしたがって上述した入力データＤ１の読み出しを行いつつ直前にデータを読み出した位置に入力データＤ１を書き込むインターリーブ動作を行うインターリーバ１３１と、このインターリーバ１３１によるインターリーブ動作とは逆にシーケンシャルに入力データＤ１の順次読み出しを行いつつ直前にデータを読み出した位置に入力データＤ１を書き込むデインターリーブ動作を行うデインターリーバ１３２と、出力データとしての上述したインターリーブデータＤ３としてこれらのインターリーバ１３１及びデインターリーバ１３２による出力をフレーム毎に切り替えるスイッチ１３３とを有するものとして捉えることができる。
【０１５６】
このインターリーバ１３は、インターリーバ１３１によるインターリーブ動作と、デインターリーバ１３２によるデインターリーブ動作とを、フレーム毎に交互に切り替えて行うことにより、連続的なインターリーブを実現することができる。
【０１５７】
一方、復号装置３'におけるインターリーバ１６は、図８（Ａ）に当該復号装置３'の要部概念を示すように、アドレスにしたがって上述した外部情報Ｄ９の読み出しを行いつつ直前にデータを読み出した位置に外部情報Ｄ９を書き込む上述したインターリーバ１３１と同様のインターリーブ動作を行うインターリーバ１６１と、このインターリーバ１６１によるインターリーブ動作とは逆にシーケンシャルに外部情報Ｄ９の順次読み出しを行いつつ直前にデータを読み出した位置に外部情報Ｄ９を書き込む上述したデインターリーバ１３２と同様のデインターリーブ動作を行うデインターリーバ１６２と、出力データとしての上述した事前確率情報Ｄ１０としてこれらのインターリーバ１６１及びデインターリーバ１６２による出力をフレーム毎に切り替えるスイッチ１６３とを有するものとして捉えることができる。
【０１５８】
このインターリーバ１６は、インターリーバ１６１によるインターリーブ動作と、デインターリーバ１６２によるデインターリーブ動作とを、フレーム毎に交互に切り替えて行うことにより、インターリーバ１３と同様の連続的なインターリーブを実現することができる。
【０１５９】
また、復号装置３'におけるデインターリーバ１８は、同図（Ｂ）に当該復号装置３'の要部概念を示すように、アドレスにしたがって上述した外部情報Ｄ１１の読み出しを行いつつ直前にデータを読み出した位置に外部情報Ｄ１１を書き込むインターリーブ動作を行うインターリーバ１８１と、このインターリーバ１８１によるインターリーブ動作とは逆にシーケンシャルに外部情報Ｄ１１の順次読み出しを行いつつ直前にデータを読み出した位置に外部情報Ｄ１１を書き込むデインターリーブ動作を行うデインターリーバ１８２と、出力データとしての上述した事前確率情報Ｄ８としてこれらのインターリーバ１８１及びデインターリーバ１８２による出力をフレーム毎に切り替えるスイッチ１８３とを有するものとして捉えることができる。
【０１６０】
このデインターリーバ１８は、インターリーバ１８１によるインターリーブ動作と、デインターリーバ１８２によるデインターリーブ動作とを、フレーム毎に交互に切り替えて行うことにより、インターリーバ１３，１６とは逆の置換動作を行う連続的なデインターリーブを実現することができる。
【０１６１】
さらに、復号装置３'におけるデインターリーバ２０は、同図（Ｃ）に当該復号装置３'の要部概念を示すように、アドレスにしたがって上述したデータＤ１２の読み出しを行いつつ直前にデータを読み出した位置にデータＤ１２を書き込む上述したインターリーバ１８１と同様のインターリーブ動作を行うインターリーバ２０１と、このインターリーバ２０１によるインターリーブ動作とは逆にシーケンシャルにデータＤ１２の順次読み出しを行いつつ直前にデータを読み出した位置にデータＤ１２を書き込む上述したデインターリーバ１８２と同様のデインターリーブ動作を行うデインターリーバ２０２と、出力データとしての上述した復号データＤ１３としてこれらのインターリーバ２０１及びデインターリーバ２０２による出力をフレーム毎に切り替えるスイッチ２０３とを有するものとして捉えることができる。
【０１６２】
このデインターリーバ２０は、インターリーバ２０１によるインターリーブ動作と、デインターリーバ２０２によるデインターリーブ動作とを、フレーム毎に交互に切り替えて行うことにより、デインターリーバ１８と同様の連続的なデインターリーブを実現することができる。
【０１６３】
同様に、符号化装置１''におけるインターリーバ３２は、図９に当該符号化装置１''の要部概念を示すように、アドレスにしたがって上述した符号化データＤ２２，Ｄ２３の読み出しを行いつつ直前にデータを読み出した位置に符号化データＤ２２，Ｄ２３を書き込むインターリーブ動作を行うインターリーバ３２１と、このインターリーバ３２１によるインターリーブ動作とは逆にシーケンシャルに符号化データＤ２２，Ｄ２３の順次読み出しを行いつつ直前にデータを読み出した位置に符号化データＤ２２，Ｄ２３を書き込むデインターリーブ動作を行うデインターリーバ３２２と、出力データとしての上述したインターリーブデータＤ２４，Ｄ２５としてこれらのインターリーバ３２１及びデインターリーバ３２２による出力をフレーム毎に切り替えるスイッチ３２３とを有するものとして捉えることができる。
【０１６４】
このインターリーバ３２は、インターリーバ３２１によるインターリーブ動作と、デインターリーバ３２２によるデインターリーブ動作とを、フレーム毎に交互に切り替えて行うことにより、連続的なインターリーブを実現することができる。
【０１６５】
一方、復号装置３'におけるデインターリーバ３５は、図１０（Ａ）に当該復号装置３''の要部概念を示すように、アドレスにしたがって上述した外部情報Ｄ３１の読み出しを行いつつ直前にデータを読み出した位置に外部情報Ｄ３１を書き込むインターリーブ動作を行うインターリーバ３５１と、このインターリーバ３５１によるインターリーブ動作とは逆にシーケンシャルに外部情報Ｄ３１の順次読み出しを行いつつ直前にデータを読み出した位置に外部情報Ｄ３１を書き込むデインターリーブ動作を行うデインターリーバ３５２と、出力データとしての上述した事前確率情報Ｄ３２としてこれらのインターリーバ３５１及びデインターリーバ３５２による出力をフレーム毎に切り替えるスイッチ３５３とを有するものとして捉えることができる。
【０１６６】
このデインターリーバ３５は、インターリーバ３５１によるインターリーブ動作と、デインターリーバ３５２によるデインターリーブ動作とを、フレーム毎に交互に切り替えて行うことにより、インターリーバ３２とは逆の置換動作を行う連続的なデインターリーブを実現することができる。
【０１６７】
また、復号装置３''におけるインターリーバ３７は、同図（Ｂ）に当該復号装置３''の要部概念を示すように、アドレスにしたがって上述した外部情報Ｄ３５の読み出しを行いつつ直前にデータを読み出した位置に外部情報Ｄ３５を書き込む上述したインターリーバ３２１と同様のインターリーブ動作を行うインターリーバ３７１と、このインターリーバ３７１によるインターリーブ動作とは逆にシーケンシャルに外部情報Ｄ３５の順次読み出しを行いつつ直前にデータを読み出した位置に外部情報Ｄ３５を書き込む上述したデインターリーバ３２２と同様のデインターリーブ動作を行うデインターリーバ３７２と、出力データとしての上述した事前確率情報Ｄ３０としてこれらのインターリーバ３７１及びデインターリーバ３７２による出力をフレーム毎に切り替えるスイッチ３７３とを有するものとして捉えることができる。
【０１６８】
このインターリーバ３７は、インターリーバ３７１によるインターリーブ動作と、デインターリーバ３７２によるデインターリーブ動作とを、フレーム毎に交互に切り替えて行うことにより、インターリーバ３２と同様の連続的なインターリーブを実現することができる。
【０１６９】
このように、符号化装置１'及び復号装置３'、並びに符号化装置１''及び復号装置３''に適用することができるインターリーバは、具体的には、図１１に示すようにハードウェアとして構成される。なお、ここでは、インターリーブ長を１０タイムスロット分のワード数とする。ここで、インターリーバは、インターリーブ長の"１／ｉ"の容量を有する記憶素子をｉ個用い、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとを交互に行い、前時刻にデータを読み出した位置に次のデータを書き込むといった動作を繰り返し行うと、同時刻に同一の記憶素子に対して、読み出し又は書き込みのいずれかのみを行えばよいことから、記憶素子としては、いわゆるシングルポートのＲＡＭのみを用いることができる。ＲＡＭは、一般に、同じ容量であれば、いわゆるデュアルポートのものよりもシングルポートのものの方が半分程度の大きさであることから、インターリーバとしては、シングルポートのＲＡＭを用いることにより、デュアルポートのＲＡＭを用いた場合に比べて、より回路規模の削減を図ることができる。したがって、同図に示すインターリーバ１００においては、データの書き込み及び読み出しを行うための記憶素子として、シングルポートのＲＡＭを用いるものとする。
【０１７０】
すなわち、インターリーバ１００は、例えば同図に示すように、２バンクのシングルポートのＲＡＭ１０１１，１０１２と、置換先のアドレスデータを保持するアドレス用記憶回路１０２と、このアドレス用記憶回路１０２を参照して読み出したアドレスデータに基づいてＲＡＭ１０１１，１０１２に対するデータの書き込み及び読み出しを制御する制御部１０３と、この制御部１０３の制御のもとにＲＡＭ１０１１，１０１２からの出力を１タイムスロット毎に切り替えるスイッチ１０４とを有する。
【０１７１】
ＲＡＭ１０１１，１０１２は、それぞれ、インターリーブ長の半分の容量を有する。ＲＡＭ１０１１，１０１２には、それぞれ、制御部１０３の制御のもとに、１タイムスロット毎に交互に入力データが入力される。そして、ＲＡＭ１０１１，１０１２には、それぞれ、制御部１０３によって指定されたアドレスにデータが書き込まれる。また、ＲＡＭ１０１１，１０１２からは、それぞれ、制御部１０３の制御のもとに、１タイムスロット毎に交互に出力データが出力される。このとき、ＲＡＭ１０１１，１０１２からは、それぞれ、制御部１０３によって指定されたアドレスからデータが読み出される。
【０１７２】
アドレス用記憶回路１０２は、任意のインターリーブパターンが書き込み可能に構成されるものであって、図示しないが、例えば、複数バンクのＲＡＭや選択回路等を有し、制御部１０３によって参照されるデータの置換位置情報をアドレスデータとして保持する。ここで、インターリーバ１００は、シーケンシャルな順次読み出しとアドレスにしたがった読み出しとを行うことから、アドレス用記憶回路１０２は、２種類の置換位置情報を保持することになるが、２種類の置換位置情報のうち、シーケンシャルな順次読み出しのアドレスについては、カウンタによってカウントアップ又はカウントダウンしていくことによって発生されるシーケンシャルなアドレスにしたがえば足り、実際には１種類の置換位置情報を保持すればよい。このアドレス用記憶回路１０２に保持されているアドレスデータは、制御部１０３によって当該アドレス用記憶回路１０２のアドレスがアドレスデータとして指定されることにより、読み出される。
【０１７３】
制御部１０３は、例えばフレームの先頭を検出すると、アドレス用記憶回路１０２に保持されたアドレスデータを参照することによってＲＡＭ１０１１，１０１２に対するデータの書き込み及び読み出しを制御する。具体的には、制御部１０３は、ＲＡＭ１０１１，１０１２から直前にデータを読み出した位置にデータを書き込むという動作を実現するために、ＲＡＭ１０１１，１０１２のそれぞれに対してアドレスを供給することによるＲＡＭ１０１１，１０１２のうちの一方からの読み出しに用いた当該アドレスを、図示しないレジスタで１タイムスロットだけ遅延させ、次のタイムスロットにてこのアドレスを用いてＲＡＭ１０１１，１０１２のうちの同じものに対して書き込むように、ＲＡＭ１０１１，１０１２に対するデータの書き込み及び読み出しを制御し、ＲＡＭ１０１１，１０１２のそれぞれから出力される出力データを１タイムスロット毎に選択的に切り替えるための制御信号をスイッチ１０４に対して供給する。なお、この動作は、ＲＡＭ１０１１，１０１２のそれぞれの側から見ると、２タイムスロットの間、同じアドレスが入力され、その１タイムスロット目でデータの読み出しが行われ、２タイムスロット目でそのアドレスに対してデータの書き込みが行われるものとなる。制御部１０３は、このような動作を、ランダムに行うかシーケンシャルに行うかをフレーム毎に切り替える。すなわち、制御部１０３は、ランダムなアドレスにしたがったデータの読み出し及びこのアドレスを１タイムスロットだけ遅延させたデータの書き込みと、シーケンシャルなデータの順次読み出し及びこのアドレスを１タイムスロットだけ遅延させたデータの書き込みとを、フレーム毎に切り替える。
【０１７４】
スイッチ１０４は、制御部１０３から供給される制御信号に基づいて、ＲＡＭ１０１１，１０１２のそれぞれから出力される出力データを１タイムスロット毎に切り替える。
【０１７５】
このようなインターリーバ１００においては、あるフレームについて、制御部１０３の制御のもとに、ＲＡＭ１０１１，１０１２のうちの一方における所定のアドレスからデータが読み出されるとともに、ＲＡＭ１０１１，１０１２のうちの他方における所定のアドレスに対してデータが書き込まれると、次のフレームについては、ＲＡＭ１０１１，１０１２のうちの一方からのデータの読み出しに用いたアドレスに対してデータが書き込まれるとともに、ＲＡＭ１０１１，１０１２のうちの他方における所定のアドレスからデータが読み出される。
【０１７６】
具体的には、インターリーバ１００は、図１２乃至図１９に示すように、データの書き込み及び読み出しを行うことにより、インターリーブを実現する。なお、ここでは、説明の便宜上、２バンクのうち同図中上段に示すＲＡＭ１０１１をバンクＡと称するとともに、同図中下段に示すＲＡＭ１０１２をバンクＢと称するものとする。また、ここでは、ＲＡＭ１０１１，１０１２には、それぞれ、同図中左側から０，１，２，３，４のアドレスが割り当てられているものとする。さらに、同図においては、データの書き込みを"Ｗ"で表し、データの読み出しを"Ｒ"で表すものとする。
【０１７７】
まず、インターリーバ１００は、１フレーム目のデータをＲＡＭ１０１１，１０１２に対して書き込む。
【０１７８】
すなわち、インターリーバ１００は、図１２に示すように、０タイムスロット目では、バンクＡのＲＡＭ１０１１におけるアドレス０の記憶領域に対して、データＤＤ０を書き込む。続いて、インターリーバ１００は、１タイムスロット目では、バンクＢのＲＡＭ１０１２におけるアドレス０の記憶領域に対して、データＤＤ１を書き込む。続いて、インターリーバ１００は、２タイムスロット目では、バンクＡのＲＡＭ１０１１におけるアドレス１の記憶領域に対して、データＤＤ２を書き込み、３タイムスロット目では、バンクＢのＲＡＭ１０１２におけるアドレス１の記憶領域に対して、データＤＤ３を書き込む。同様に、インターリーバ１００は、各タイムスロット毎に、バンクＡのＲＡＭ１０１１における各アドレスの記憶領域とバンクＢのＲＡＭ１０１２における各アドレスの記憶領域とに対して、交互にデータを書き込み、８タイムスロット目では、バンクＡのＲＡＭ１０１１におけるアドレス４の記憶領域に対して、データＤＤ８を書き込む。
【０１７９】
このようにして、インターリーバ１００は、１フレーム目のデータのうち、最後のデータＤＤ９を除く全てのデータを、ＤＤ０，ＤＤ１，ＤＤ２，ＤＤ３，ＤＤ４，ＤＤ５，ＤＤ６，ＤＤ７，ＤＤ８の順序でＲＡＭ１０１１，１０１２に対して書き込む。
【０１８０】
続いて、インターリーバ１００は、１フレーム目のデータの残りのデータＤＤ９と２フレーム目のデータとをＲＡＭ１０１１，１０１２に対して書き込むとともに、ＲＡＭ１０１１，１０１２に対して書き込んだ１フレーム目のデータを書き込み順序と異なる順序で読み出す。
【０１８１】
すなわち、インターリーバ１００は、図１３に示すように、９タイムスロット目では、バンクＢのＲＡＭ１０１２におけるアドレス４の記憶領域に対して、データＤＤ９を書き込むとともに、バンクＡのＲＡＭ１０１１におけるアドレス１の記憶領域、すなわち、２タイムスロット目でデータＤＤ２が書き込まれた記憶領域からデータＤＤ２を読み出す。続いて、インターリーバ１００は、１０タイムスロット目では、バンクＢのＲＡＭ１０１２におけるアドレス４の記憶領域、すなわち、９タイムスロット目でデータＤＤ９が書き込まれた記憶領域からデータＤＤ９を読み出すとともに、バンクＡのＲＡＭ１０１１におけるアドレス１の記憶領域、すなわち、直前の９タイムスロット目でデータＤＤ２が読み出されて空いている記憶領域に対して、データＤＤ１０を書き込む。続いて、インターリーバ１００は、１１タイムスロット目では、バンクＡのＲＡＭ１０１１におけるアドレス０の記憶領域、すなわち、０タイムスロット目でデータＤＤ０が書き込まれた記憶領域からデータＤＤ０を読み出すとともに、バンクＢのＲＡＭ１０１２におけるアドレス４の記憶領域、すなわち、直前の１０タイムスロット目でデータＤＤ９が読み出されて空いている記憶領域に対して、データＤＤ１１を書き込む。続いて、インターリーバ１００は、１２タイムスロット目では、バンクＢのＲＡＭ１０１２におけるアドレス２の記憶領域、すなわち、５タイムスロット目でデータＤＤ５が書き込まれた記憶領域からデータＤＤ５を読み出すとともに、バンクＡのＲＡＭ１０１１におけるアドレス０の記憶領域、すなわち、直前の１１タイムスロット目でデータＤＤ０が読み出されて空いている記憶領域に対して、データＤＤ１２を書き込む。続いて、インターリーバ１００は、１３タイムスロット目では、バンクＡのＲＡＭ１０１１におけるアドレス２の記憶領域、すなわち、４タイムスロット目でデータＤＤ４が書き込まれた記憶領域からデータＤＤ４を読み出すとともに、バンクＢのＲＡＭ１０１２におけるアドレス２の記憶領域、すなわち、直前の１２タイムスロット目でデータＤＤ５が読み出されて空いている記憶領域に対して、データＤＤ１３を書き込む。
【０１８２】
さらに、インターリーバ１００は、図１４に示すように、１４タイムスロット目では、バンクＢのＲＡＭ１０１２におけるアドレス１の記憶領域、すなわち、３タイムスロット目でデータＤＤ３が書き込まれた記憶領域からデータＤＤ３を読み出すとともに、バンクＡのＲＡＭ１０１１におけるアドレス２の記憶領域、すなわち、直前の１３タイムスロット目でデータＤＤ４が読み出されて空いている記憶領域に対して、データＤＤ１４を書き込む。続いて、インターリーバ１００は、１５タイムスロット目では、バンクＡのＲＡＭ１０１１におけるアドレス４の記憶領域、すなわち、８タイムスロット目でデータＤＤ８が書き込まれた記憶領域からデータＤＤ８を読み出すとともに、バンクＢのＲＡＭ１０１２におけるアドレス１の記憶領域、すなわち、直前の１４タイムスロット目でデータＤＤ３が読み出されて空いている記憶領域に対して、データＤＤ１５を書き込む。続いて、インターリーバ１００は、１６タイムスロット目では、バンクＢのＲＡＭ１０１２におけるアドレス３の記憶領域、すなわち、７タイムスロット目でデータＤＤ７が書き込まれた記憶領域からデータＤＤ７を読み出すとともに、バンクＡのＲＡＭ１０１１におけるアドレス４の記憶領域、すなわち、直前の１５タイムスロット目でデータＤＤ８が読み出されて空いている記憶領域に対して、データＤＤ１６を書き込む。続いて、インターリーバ１００は、１７タイムスロット目では、バンクＡのＲＡＭ１０１１におけるアドレス３の記憶領域、すなわち、６タイムスロット目でデータＤＤ６が書き込まれた記憶領域からデータＤＤ６を読み出すとともに、バンクＢのＲＡＭ１０１２におけるアドレス３の記憶領域、すなわち、直前の１６タイムスロット目でデータＤＤ７が読み出されて空いている記憶領域に対して、データＤＤ１７を書き込む。そして、インターリーバ１００は、１８タイムスロット目では、バンクＢのＲＡＭ１０１１におけるアドレス０の記憶領域、すなわち、１タイムスロット目でデータＤＤ１が書き込まれた記憶領域からデータＤＤ１を読み出すとともに、バンクＡのＲＡＭ１０１１におけるアドレス３の記憶領域、すなわち、直前の１７タイムスロット目でデータＤＤ６が読み出されて空いている記憶領域に対して、データＤＤ１８を書き込む。
【０１８３】
このようにして、インターリーバ１００は、ＲＡＭ１０１１，１０１２に対して、ＤＤ０，ＤＤ１，ＤＤ２，ＤＤ３，ＤＤ４，ＤＤ５，ＤＤ６，ＤＤ７，ＤＤ８，ＤＤ９の順序で書き込んだ１フレーム目のデータを、書き込み順序と異なる順序、すなわち、ＤＤ２，ＤＤ９，ＤＤ０，ＤＤ５，ＤＤ４，ＤＤ３，ＤＤ８，ＤＤ７，ＤＤ６，ＤＤ１の順序で全て読み出すとともに、２フレーム目のデータのうち、最後のデータＤＤ１９を除く全てのデータを、ＤＤ１０，ＤＤ１１，ＤＤ１２，ＤＤ１３，ＤＤ１４，ＤＤ１５，ＤＤ１６，ＤＤ１７，ＤＤ１８の順序でＲＡＭ１０１１，１０１２に対して書き込む。
【０１８４】
続いて、インターリーバ１００は、２フレーム目のデータの残りのデータＤＤ１９と３フレーム目のデータとをＲＡＭ１０１１，１０１２に対して書き込むとともに、ＲＡＭ１０１１，１０１２に対して書き込んだ２フレーム目のデータを書き込み順序と異なる順序で読み出す。
【０１８５】
すなわち、インターリーバ１００は、図１５に示すように、１９タイムスロット目では、バンクＡのＲＡＭ１０１１におけるアドレス０の記憶領域、すなわち、１２タイムスロット目でデータＤＤ１２が書き込まれた記憶領域からデータＤＤ１２を読み出すとともに、バンクＢのＲＡＭ１０１２におけるアドレス０の記憶領域、すなわち、直前の１８タイムスロット目でデータＤＤ１が読み出されて空いている記憶領域に対して、データＤＤ１９を書き込む。続いて、インターリーバ１００は、２０タイムスロット目では、バンクＢのＲＡＭ１０１２におけるアドレス０の記憶領域、すなわち、１９タイムスロット目でデータＤＤ１９が書き込まれた記憶領域からデータＤＤ１９を読み出すとともに、バンクＡのＲＡＭ１０１１におけるアドレス０の記憶領域、すなわち、直前の１９タイムスロット目でデータＤＤ１２が読み出されて空いている記憶領域に対して、データＤＤ２０を書き込む。続いて、インターリーバ１００は、２１タイムスロット目では、バンクＡのＲＡＭ１０１１におけるアドレス１の記憶領域、すなわち、１０タイムスロット目でデータＤＤ１０が書き込まれた記憶領域からデータＤＤ１０を読み出すとともに、バンクＢのＲＡＭ１０１２におけるアドレス０の記憶領域、すなわち、直前の２０タイムスロット目でデータＤＤ１９が読み出されて空いている記憶領域に対して、データＤＤ２１を書き込む。続いて、インターリーバ１００は、２２タイムスロット目では、バンクＢのＲＡＭ１０１２におけるアドレス１の記憶領域、すなわち、１５タイムスロット目でデータＤＤ１５が書き込まれた記憶領域からデータＤＤ１５を読み出すとともに、バンクＡのＲＡＭ１０１１におけるアドレス１の記憶領域、すなわち、直前の２１タイムスロット目でデータＤＤ１０が読み出されて空いている記憶領域に対して、データＤＤ２２を書き込む。続いて、インターリーバ１００は、２３タイムスロット目では、バンクＡのＲＡＭ１０１１におけるアドレス２の記憶領域、すなわち、１４タイムスロット目でデータＤＤ１４が書き込まれた記憶領域からデータＤＤ１４を読み出すとともに、バンクＢのＲＡＭ１０１２におけるアドレス１の記憶領域、すなわち、直前の２２タイムスロット目でデータＤＤ１５が読み出されて空いている記憶領域に対して、データＤＤ２３を書き込む。
【０１８６】
さらに、インターリーバ１００は、図１６に示すように、２４タイムスロット目では、バンクＢのＲＡＭ１０１２におけるアドレス２の記憶領域、すなわち、１３タイムスロット目でデータＤＤ１３が書き込まれた記憶領域からデータＤＤ１３を読み出すとともに、バンクＡのＲＡＭ１０１１におけるアドレス２の記憶領域、すなわち、直前の２３タイムスロット目でデータＤＤ１４が読み出されて空いている記憶領域に対して、データＤＤ２４を書き込む。続いて、インターリーバ１００は、２５タイムスロット目では、バンクＡのＲＡＭ１０１１におけるアドレス３の記憶領域、すなわち、１８タイムスロット目でデータＤＤ１８が書き込まれた記憶領域からデータＤＤ１８を読み出すとともに、バンクＢのＲＡＭ１０１２におけるアドレス２の記憶領域、すなわち、直前の２４タイムスロット目でデータＤＤ１３が読み出されて空いている記憶領域に対して、データＤＤ２５を書き込む。続いて、インターリーバ１００は、２６タイムスロット目では、バンクＢのＲＡＭ１０１２におけるアドレス３の記憶領域、すなわち、１７タイムスロット目でデータＤＤ１７が書き込まれた記憶領域からデータＤＤ１７を読み出すとともに、バンクＡのＲＡＭ１０１１におけるアドレス３の記憶領域、すなわち、直前の２５タイムスロット目でデータＤＤ１８が読み出されて空いている記憶領域に対して、データＤＤ２６を書き込む。続いて、インターリーバ１００は、２７タイムスロット目では、バンクＡのＲＡＭ１０１１におけるアドレス４の記憶領域、すなわち、１６タイムスロット目でデータＤＤ１６が書き込まれた記憶領域からデータＤＤ１６を読み出すとともに、バンクＢのＲＡＭ１０１２におけるアドレス３の記憶領域、すなわち、直前の２６タイムスロット目でデータＤＤ１７が読み出されて空いている記憶領域に対して、データＤＤ２７を書き込む。そして、インターリーバ１００は、２８タイムスロット目では、バンクＢのＲＡＭ１０１２におけるアドレス４の記憶領域、すなわち、１１タイムスロット目でデータＤＤ１１が書き込まれた記憶領域からデータＤＤ１１を読み出すとともに、バンクＡのＲＡＭ１０１１におけるアドレス４の記憶領域、すなわち、直前の２７タイムスロット目でデータＤＤ１６が読み出されて空いている記憶領域に対して、データＤＤ２８を書き込む。
【０１８７】
このようにして、インターリーバ１００は、ＲＡＭ１０１１，１０１２に対して、ＤＤ１０，ＤＤ１１，ＤＤ１２，ＤＤ１３，ＤＤ１４，ＤＤ１５，ＤＤ１６，ＤＤ１７，ＤＤ１８，ＤＤ１９の順序で書き込んだ２フレーム目のデータを、書き込み順序と異なる順序、すなわち、ＤＤ１２，ＤＤ１９，ＤＤ１０，ＤＤ１５，ＤＤ１４，ＤＤ１３，ＤＤ１８，ＤＤ１７，ＤＤ１６，ＤＤ１１の順序で全て読み出すとともに、３フレーム目のデータのうち、最後のデータＤＤ２９を除く全てのデータを、ＤＤ２０，ＤＤ２１，ＤＤ２２，ＤＤ２３，ＤＤ２４，ＤＤ２５，ＤＤ２６，ＤＤ２７，ＤＤ２８の順序でＲＡＭ１０１１，１０１２に対して書き込む。
【０１８８】
続いて、インターリーバ１００は、３フレーム目のデータの残りのデータＤＤ２９と４フレーム目のデータとをＲＡＭ１０１１，１０１２に対して書き込むとともに、ＲＡＭ１０１１，１０１２に対して書き込んだ３フレーム目のデータを書き込み順序と異なる順序で読み出す。
【０１８９】
すなわち、インターリーバ１００は、図１７に示すように、２９タイムスロット目では、バンクＡのＲＡＭ１０１１におけるアドレス１の記憶領域、すなわち、２２タイムスロット目でデータＤＤ２２が書き込まれた記憶領域からデータＤＤ２２を読み出すとともに、バンクＢのＲＡＭ１０１２におけるアドレス４の記憶領域、すなわち、直前の２８タイムスロット目でデータＤＤ１１が読み出されて空いている記憶領域に対して、データＤＤ２９を書き込む。続いて、インターリーバ１００は、３０タイムスロット目では、バンクＢのＲＡＭ１０１２におけるアドレス４の記憶領域、すなわち、２９タイムスロット目でデータＤＤ２９が書き込まれた記憶領域からデータＤＤ２９を読み出すとともに、バンクＡのＲＡＭ１０１１におけるアドレス１の記憶領域、すなわち、直前の２９タイムスロット目でデータＤＤ２２が読み出されて空いている記憶領域に対して、データＤＤ３０を書き込む。続いて、インターリーバ１００は、３１タイムスロット目では、バンクＡのＲＡＭ１０１１におけるアドレス０の記憶領域、すなわち、２０タイムスロット目でデータＤＤ２０が書き込まれた記憶領域からデータＤＤ２０を読み出すとともに、バンクＢのＲＡＭ１０１２におけるアドレス４の記憶領域、すなわち、直前の３０タイムスロット目でデータＤＤ２９が読み出されて空いている記憶領域に対して、データＤＤ３１を書き込む。続いて、インターリーバ１００は、３２タイムスロット目では、バンクＢのＲＡＭ１０１２におけるアドレス２の記憶領域、すなわち、２５タイムスロット目でデータＤＤ２５が書き込まれた記憶領域からデータＤＤ２５を読み出すとともに、バンクＡのＲＡＭ１０１１におけるアドレス０の記憶領域、すなわち、直前の３１タイムスロット目でデータＤＤ２０が読み出されて空いている記憶領域に対して、データＤＤ３２を書き込む。続いて、インターリーバ１００は、３３タイムスロット目では、バンクＡのＲＡＭ１０１１におけるアドレス２の記憶領域、すなわち、２４タイムスロット目でデータＤＤ２４が書き込まれた記憶領域からデータＤＤ２４を読み出すとともに、バンクＢのＲＡＭ１０１２におけるアドレス２の記憶領域、すなわち、直前の３２タイムスロット目でデータＤＤ２５が読み出されて空いている記憶領域に対して、データＤＤ３３を書き込む。
【０１９０】
さらに、インターリーバ１００は、図１８に示すように、３４タイムスロット目では、バンクＢのＲＡＭ１０１２におけるアドレス１の記憶領域、すなわち、２３タイムスロット目でデータＤＤ２３が書き込まれた記憶領域からデータＤＤ２３を読み出すとともに、バンクＡのＲＡＭ１０１１におけるアドレス２の記憶領域、すなわち、直前の３３タイムスロット目でデータＤＤ２４が読み出されて空いている記憶領域に対して、データＤＤ３４を書き込む。続いて、インターリーバ１００は、３５タイムスロット目では、バンクＡのＲＡＭ１０１１におけるアドレス４の記憶領域、すなわち、２８タイムスロット目でデータＤＤ２８が書き込まれた記憶領域からデータＤＤ２８を読み出すとともに、バンクＢのＲＡＭ１０１２におけるアドレス１の記憶領域、すなわち、直前の３４タイムスロット目でデータＤＤ２３が読み出されて空いている記憶領域に対して、データＤＤ３５を書き込む。続いて、インターリーバ１００は、３６タイムスロット目では、バンクＢのＲＡＭ１０１２におけるアドレス３の記憶領域、すなわち、２７タイムスロット目でデータＤＤ２７が書き込まれた記憶領域からデータＤＤ２７を読み出すとともに、バンクＡのＲＡＭ１０１１におけるアドレス４の記憶領域、すなわち、直前の３５タイムスロット目でデータＤＤ２８が読み出されて空いている記憶領域に対して、データＤＤ３６を書き込む。続いて、インターリーバ１００は、３７タイムスロット目では、バンクＡのＲＡＭ１０１１におけるアドレス３の記憶領域、すなわち、２６タイムスロット目でデータＤＤ２６が書き込まれた記憶領域からデータＤＤ２６を読み出すとともに、バンクＢのＲＡＭ１０１２におけるアドレス３の記憶領域、すなわち、直前の３６タイムスロット目でデータＤＤ２７が読み出されて空いている記憶領域に対して、データＤＤ３７を書き込む。そして、インターリーバ１００は、３８タイムスロット目では、バンクＢのＲＡＭ１０１２におけるアドレス０の記憶領域、すなわち、２１タイムスロット目でデータＤＤ２１が書き込まれた記憶領域からデータＤＤ２１を読み出すとともに、バンクＡのＲＡＭ１０１１におけるアドレス３の記憶領域、すなわち、直前の３７タイムスロット目でデータＤＤ２６が読み出されて空いている記憶領域に対して、データＤＤ３８を書き込む。
【０１９１】
このようにして、インターリーバ１００は、ＲＡＭ１０１１，１０１２に対して、ＤＤ２０，ＤＤ２１，ＤＤ２２，ＤＤ２３，ＤＤ２４，ＤＤ２５，ＤＤ２６，ＤＤ２７，ＤＤ２８，ＤＤ２９の順序で書き込んだ３フレーム目のデータを、書き込み順序と異なる順序、すなわち、ＤＤ２２，ＤＤ２９，ＤＤ２０，ＤＤ２５，ＤＤ２４，ＤＤ２３，ＤＤ２８，ＤＤ２７，ＤＤ２６，ＤＤ２１の順序で全て読み出すとともに、４フレーム目のデータのうち、最後のデータＤＤ３９を除く全てのデータを、ＤＤ３０，ＤＤ３１，ＤＤ３２，ＤＤ３３，ＤＤ３４，ＤＤ３５，ＤＤ３６，ＤＤ３７，ＤＤ３８の順序でＲＡＭ１０１１，１０１２に対して書き込む。
【０１９２】
同様に、インターリーバ１００は、４フレーム目のデータの残りのデータＤＤ３９と５フレーム目のデータとをＲＡＭ１０１１，１０１２に対して書き込むとともに、ＲＡＭ１０１１，１０１２に対して書き込んだ４フレーム目のデータを書き込み順序と異なる順序で読み出す。
【０１９３】
すなわち、インターリーバ１００は、図１９に示すように、３９タイムスロット目では、バンクＡのＲＡＭ１０１１におけるアドレス０の記憶領域、すなわち、３２タイムスロット目でデータＤＤ３２が書き込まれた記憶領域からデータＤＤ３２を読み出すとともに、バンクＢのＲＡＭ１０１２におけるアドレス０の記憶領域、すなわち、直前の３８タイムスロット目でデータＤＤ２１が読み出されて空いている記憶領域に対して、データＤＤ３９を書き込む。続いて、インターリーバ１００は、４０タイムスロット目では、バンクＢのＲＡＭ１０１２におけるアドレス０の記憶領域、すなわち、３９タイムスロット目でデータＤＤ３９が書き込まれた記憶領域からデータＤＤ３９を読み出すとともに、バンクＡのＲＡＭ１０１１におけるアドレス０の記憶領域、すなわち、直前の３９タイムスロット目でデータＤＤ３２が読み出されて空いている記憶領域に対して、データＤＤ４０を書き込む。続いて、インターリーバ１００は、４１タイムスロット目では、バンクＡのＲＡＭ１０１１におけるアドレス１の記憶領域、すなわち、３０タイムスロット目でデータＤＤ３０が書き込まれた記憶領域からデータＤＤ３０を読み出すとともに、バンクＢのＲＡＭ１０１２におけるアドレス０の記憶領域、すなわち、直前の４０タイムスロット目でデータＤＤ３９が読み出されて空いている記憶領域に対して、データＤＤ４１を書き込む。続いて、インターリーバ１００は、４２タイムスロット目では、バンクＢのＲＡＭ１０１２におけるアドレス１の記憶領域、すなわち、３５タイムスロット目でデータＤＤ３５が書き込まれた記憶領域からデータＤＤ３５を読み出すとともに、バンクＡのＲＡＭ１０１１におけるアドレス１の記憶領域、すなわち、直前の４１タイムスロット目でデータＤＤ３０が読み出されて空いている記憶領域に対して、データＤＤ４２を書き込む。そして、インターリーバ１００は、４３タイムスロット目では、バンクＡのＲＡＭ１０１１におけるアドレス２の記憶領域、すなわち、３４タイムスロット目でデータＤＤ３４が書き込まれた記憶領域からデータＤＤ３４を読み出すとともに、バンクＢのＲＡＭ１０１２におけるアドレス１の記憶領域、すなわち、直前の４２タイムスロット目でデータＤＤ３５が読み出されて空いている記憶領域に対して、データＤＤ４３を書き込む。
【０１９４】
このようにして、インターリーバ１００は、ＲＡＭ１０１１，１０１２に対して、ＤＤ３０，ＤＤ３１，ＤＤ３２，ＤＤ３３，ＤＤ３４，ＤＤ３５，ＤＤ３６，ＤＤ３７，ＤＤ３８，ＤＤ３９の順序で書き込んだ４フレーム目のデータを、書き込み順序と異なる順序、すなわち、ＤＤ３２，ＤＤ３９，ＤＤ３０，ＤＤ３５，ＤＤ３４，・・・の順序で全て読み出すとともに、５フレーム目のデータのうち、最後のデータＤＤ４９を除く全てのデータを、ＤＤ４０，ＤＤ４１，ＤＤ４２，ＤＤ４３，・・・の順序でＲＡＭ１０１１，１０１２に対して書き込む。
【０１９５】
このように、インターリーバ１００は、インターリーブ長の半分の容量を有するＲＡＭ１０１１，１０１２を用い、すなわち、全体としてインターリーブ長と同じ容量を有する記憶素子を用い、あるフレームについて、ＲＡＭ１０１１，１０１２のうちの一方における所定のアドレスからデータを読み出すとともに、ＲＡＭ１０１１，１０１２のうちの他方における所定のアドレスに対してデータを書き込み、次のフレームについては、ＲＡＭ１０１１，１０１２のうちの一方からのデータの読み出しに用いたアドレスに対してデータを書き込むとともに、ＲＡＭ１０１１，１０１２のうちの他方における所定のアドレスからデータを読み出す。インターリーバ１００は、このように、直前にデータを読み出した位置にデータを書き込む動作を、フレーム毎にＲＡＭ１０１１，１０１２を交互に切り替えて行うことにより、少ない回路規模のもとに、連続的なインターリーブを実現することができる。
【０１９６】
以上説明したように、データ送受信システムにおいては、符号化装置１及び／又は復号装置３は、入力データから出力データへの置換が対称であり、且つ、偶数番目の入力データは偶数番目に出力されるとともに、奇数番目の入力データは奇数番目に出力されるアドレスにしたがった置換を行うインターリーバ１００を備え、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行うことにより、インターリーブ長と同じ容量、すなわち、従来要していた容量の半分の容量の記憶素子を用いるのみで連続的なインターリーブを実現することができる。
【０１９７】
このとき、インターリーバ１００は、インターリーブ長が長いほど、回路規模の削減効果を大きくすることができる。また、アドレスの規則性に基づく性能の劣化についても、インターリーブ長を例えば１００００ビット程度以上にすれば、影響が殆ど見受けられないことを確認している。
【０１９８】
したがって、データ送受信システムは、符号の性能を維持しつつ回路規模の削減を図ることができ、優れた利便を提供することができるものである。
【０１９９】
なお、本発明は、上述した実施の形態に限定されるものではない。例えば、上述した実施の形態では、インターリーバ１００における記憶素子としてＲＡＭを用いるものとして説明したが、本発明は、ＲＡＭ以外の記憶素子であっても、同様の書き込み及び読み出しを行うことができるものであれば、いかなるものであっても適用することができるのは勿論である。
【０２００】
また、上述した実施の形態では、インターリーバ１００として、２バンクのＲＡＭ１０１１，１０１２を用いるものとして説明したが、本発明は、２バンク以上であってもよい。すなわち、本発明は、全体としてインターリーブ長と同じ容量を有する記憶素子を用いるのみで連続的なインターリーブを実現することを目的するものであればよい。より換言すれば、本発明は、上述した整数ｉ，ｊ，ｋの関係が、ｉ＝２，ｊ＝ｋとなる場合のみならず、ｉ≧３，ｊ！＝ｋとなる場合であれば、適用することができるものである。
【０２０１】
さらに、上述した実施の形態では、シングルポートのＲＡＭを用いてインターリーバ１００を構成するものとして説明したが、本発明は、デュアルポートのＲＡＭを用いてもインターリーバを構成することができる。この場合、インターリーバは、インターリーバ１００におけるバンクＡのＲＡＭ１０１１における各アドレスの記憶領域と、インターリーバ１００におけるバンクＢのＲＡＭ１０１２における各アドレスの記憶領域とを交互に連接した１つのＲＡＭを用いた構成となるのみで、データの入出力の規則性については、インターリーバ１００と同様のアドレス制御に基づくものとなることはいうまでもない。
【０２０２】
さらにまた、上述した実施の形態では、複数の要素符号化器と入力されたデータを並べ替えるインターリーバとを連接することによってターボ符号化を行う符号化装置１と、この符号化装置１によって符号化がなされた符号に対して複数の軟出力復号と入力されたデータを並べ替えるインターリーバとを連接することによって繰り返し復号を行う復号装置３とを備えるデータ送受信システムに適用するものとして説明したが、本発明は、データ送受信システムに拘泥するものではなく、インターリーブ及び／又はデインターリーブを行うものであれば、いかなるものであっても適用することができるものである。
【０２０３】
このように、本発明は、その趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
【０２０４】
【発明の効果】
以上詳細に説明したように、本発明にかかるインターリーブ装置は、入力された入力データの順序を所定のアドレスにしたがって置換して並べ替えて出力データとして出力するインターリーブ装置であって、データを記憶する記憶手段と、入力データから出力データへの置換が対称であり、且つ、２以上の整数ｉと０以上ｉ未満の整数ｊ，ｋとに対して、ｉで除算した剰余がｊになる任意の位置の入力データが、ｉで除算した剰余がｋになる位置に出力データとして出力されるように、記憶手段に対するデータの書き込み及び読み出しを制御する制御手段とを備え、上記制御手段は、上記記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせる。
【０２０５】
したがって、本発明にかかるインターリーブ装置は、入力データから出力データへの置換が対称であり、且つ、２以上の整数ｉと０以上ｉ未満の整数ｊ，ｋとに対して、ｉで除算した剰余がｊになる任意の位置の入力データが、ｉで除算した剰余がｋになる位置に出力データとして出力されるように、制御手段によって記憶手段に対するデータの書き込み及び読み出しを制御し、この制御手段による記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせることにより、少ない回路規模のもとに、連続的なインターリーブ処理を実現することができる。
【０２０６】
また、本発明にかかるインターリーブ方法は、入力された入力データの順序を所定のアドレスにしたがって置換して並べ替えて出力データとして出力するインターリーブ方法であって、入力データを入力する入力工程と、入力データから出力データへの置換が対称であり、且つ、２以上の整数ｉと０以上ｉ未満の整数ｊ，ｋとに対して、ｉで除算した剰余がｊになる任意の位置の入力データが、ｉで除算した剰余がｋになる位置に出力データとして出力されるように、データを記憶する記憶手段に対するデータの書き込み及び読み出しを制御する制御工程と、出力データを出力する出力工程とを備え、上記制御工程では、上記記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせる。
【０２０７】
したがって、本発明にかかるインターリーブ方法は、入力データから出力データへの置換が対称であり、且つ、２以上の整数ｉと０以上ｉ未満の整数ｊ，ｋとに対して、ｉで除算した剰余がｊになる任意の位置の入力データが、ｉで除算した剰余がｋになる位置に出力データとして出力されるように、記憶手段に対するデータの書き込み及び読み出しを制御し、記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせることにより、少ない回路規模のもとに、連続的なインターリーブ処理を実現することが可能となる。
【０２０８】
さらに、本発明にかかる符号化装置は、複数の要素符号をインターリーブ処理を介して並列又は縦列に連接して符号化を行う符号化装置であって、入力されたデータに対して所定の符号化を行う複数の要素符号化手段と、並列又は縦列に連接される複数の要素符号化手段のそれぞれの間に設けられ、入力された入力データの順序を所定のアドレスにしたがって置換して並べ替えて出力データとして出力するインターリーブ手段とを備え、インターリーブ手段は、データを記憶する記憶手段と、入力データから出力データへの置換が対称であり、且つ、２以上の整数ｉと０以上ｉ未満の整数ｊ，ｋとに対して、ｉで除算した剰余がｊになる任意の位置の入力データが、ｉで除算した剰余がｋになる位置に出力データとして出力されるように、記憶手段に対するデータの書き込み及び読み出しを制御する制御手段とを有し、上記制御手段は、上記記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせる。
【０２０９】
したがって、本発明にかかる符号化装置は、各要素符号化手段の間に設けられるインターリーブ手段により、入力データから出力データへの置換が対称であり、且つ、２以上の整数ｉと０以上ｉ未満の整数ｊ，ｋとに対して、ｉで除算した剰余がｊになる任意の位置の入力データが、ｉで除算した剰余がｋになる位置に出力データとして出力されるように、記憶手段に対するデータの書き込み及び読み出しを制御したインターリーブ処理を行い、制御手段による記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせることにより、符号の性能を維持しつつ少ない回路規模のもとに、連続的なインターリーブ処理を実現することができる。
【０２１０】
さらにまた、本発明にかかる符号化方法は、複数の要素符号をインターリーブ処理を介して並列又は縦列に連接して符号化を行う符号化方法であって、入力されたデータに対して所定の符号化を行う複数の要素符号化工程と、並列又は縦列に連接される複数の要素符号化工程のそれぞれの間に行われ、入力された入力データの順序を所定のアドレスにしたがって置換して並べ替えて出力データとして出力するインターリーブ工程とを備え、インターリーブ工程は、入力データを入力する入力工程と、入力データから出力データへの置換が対称であり、且つ、２以上の整数ｉと０以上ｉ未満の整数ｊ，ｋとに対して、ｉで除算した剰余がｊになる任意の位置の入力データが、ｉで除算した剰余がｋになる位置に出力データとして出力されるように、データを記憶する記憶手段に対するデータの書き込み及び読み出しを制御する制御工程と、出力データを出力する出力工程とを有し、上記制御工程では、上記記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせる。
【０２１１】
したがって、本発明にかかる符号化方法は、各要素符号化工程の間に行われるインターリーブ工程にて、入力データから出力データへの置換が対称であり、且つ、２以上の整数ｉと０以上ｉ未満の整数ｊ，ｋとに対して、ｉで除算した剰余がｊになる任意の位置の入力データが、ｉで除算した剰余がｋになる位置に出力データとして出力されるように、記憶手段に対するデータの書き込み及び読み出しを制御したインターリーブ処理を行い、記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせることにより、符号の性能を維持しつつ少ない回路規模のもとに、連続的なインターリーブ処理を実現することが可能となる。
【０２１２】
また、本発明にかかる復号装置は、複数の要素符号をインターリーブ処理を介して並列又は縦列に連接して生成された符号の復号を行う復号装置であって、複数の要素符号に対応して設けられ、軟入力とされる受信値及び事前確率情報を入力して軟出力復号を行い、各時刻における軟出力及び／又は外部情報を生成する複数の軟出力復号手段と、これらの軟出力復号手段によって生成された外部情報を入力し、符号化におけるインターリーブ処理と同一の置換位置情報に基づいて、外部情報の順序を所定のアドレスにしたがって置換して並べ替えるインターリーブ処理、又は符号化におけるインターリーブ処理によって並べ替えられた情報の配列を元に戻すように、外部情報の順序を所定のアドレスにしたがって置換して並べ替えるデインターリーブ処理を行うインターリーブ手段とを備え、インターリーブ手段は、データを記憶する記憶手段と、入力された入力データから出力する出力データへの置換が対称であり、且つ、２以上の整数ｉと０以上ｉ未満の整数ｊ，ｋとに対して、ｉで除算した剰余がｊになる任意の位置の入力データが、ｉで除算した剰余がｋになる位置に出力データとして出力されるように、記憶手段に対するデータの書き込み及び読み出しを制御する制御手段とを有し、上記制御手段は、上記記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせる。
【０２１３】
したがって、本発明にかかる復号装置は、インターリーブ手段により、入力データから出力データへの置換が対称であり、且つ、２以上の整数ｉと０以上ｉ未満の整数ｊ，ｋとに対して、ｉで除算した剰余がｊになる任意の位置の入力データが、ｉで除算した剰余がｋになる位置に出力データとして出力されるように、記憶手段に対するデータの書き込み及び読み出しを制御したインターリーブ処理又はデインターリーブ処理を行い、制御手段による記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせることにより、符号の性能を維持しつつ少ない回路規模のもとに、連続的なインターリーブ処理又はデインターリーブ処理を実現することができる。
【０２１４】
さらに、本発明にかかる復号方法は、複数の要素符号をインターリーブ処理を介して並列又は縦列に連接して生成された符号の復号を行う復号方法であって、複数の要素符号に対応して設けられ、軟入力とされる受信値及び事前確率情報を入力して軟出力復号を行い、各時刻における軟出力及び／又は外部情報を生成する複数の軟出力復号工程と、これらの軟出力復号工程にて生成された外部情報を入力し、符号化におけるインターリーブ処理と同一の置換位置情報に基づいて、外部情報の順序を所定のアドレスにしたがって置換して並べ替えるインターリーブ処理、又は符号化におけるインターリーブ処理によって並べ替えられた情報の配列を元に戻すように、外部情報の順序を所定のアドレスにしたがって置換して並べ替えるデインターリーブ処理を行うインターリーブ工程とを備え、インターリーブ工程は、データを入力する入力工程と、この入力工程にて入力された入力データから出力する出力データへの置換が対称であり、且つ、２以上の整数ｉと０以上ｉ未満の整数ｊ，ｋとに対して、ｉで除算した剰余がｊになる任意の位置の入力データが、ｉで除算した剰余がｋになる位置に出力データとして出力されるように、データを記憶する記憶手段に対するデータの書き込み及び読み出しを制御する制御工程と、出力データを出力する出力工程とを有し、上記制御工程では、上記記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせる。
【０２１５】
したがって、本発明にかかる復号方法は、インターリーブ工程にて、入力データから出力データへの置換が対称であり、且つ、２以上の整数ｉと０以上ｉ未満の整数ｊ，ｋとに対して、ｉで除算した剰余がｊになる任意の位置の入力データが、ｉで除算した剰余がｋになる位置に出力データとして出力されるように、記憶手段に対するデータの書き込み及び読み出しを制御したインターリーブ処理又はデインターリーブ処理を行い、記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせることにより、符号の性能を維持しつつ少ない回路規模のもとに、連続的なインターリーブ処理又はデインターリーブ処理を実現することが可能となる。
【図面の簡単な説明】
【図１】本発明の実施の形態として示すデータ送受信システムを適用する通信モデルの構成を説明するブロック図である。
【図２】同データ送受信システムにおける符号化装置の一例の構成を説明するブロック図であって、ＰＣＣＣによる符号化を行う符号化装置の構成を説明するブロック図である。
【図３】同データ送受信システムにおける復号装置の一例の構成を説明するブロック図であって、図２に示す符号化装置による符号の復号を行う復号装置の構成を説明するブロック図である。
【図４】同データ送受信システムにおける符号化装置の一例の構成を説明するブロック図であって、ＳＣＣＣによる符号化を行う符号化装置の構成を説明するブロック図である。
【図５】同データ送受信システムにおける復号装置の一例の構成を説明するブロック図であって、図４に示す符号化装置による符号の復号を行う復号装置の構成を説明するブロック図である。
【図６】同符号化装置及び／又は同復号装置に備えられるインターリーバによるデータの書き込み及び読み出し動作を説明するための図であって、（Ａ）は、各記憶素子に対して入力データをシーケンシャルに順次書き込んだ様子を示し、（Ｂ）は、各記憶素子に書き込んだデータを出力データとして読み出す様子を示す図である。
【図７】図２に示す符号化装置に適用したインターリーバの概念を説明するための当該符号化装置の要部概念を説明する図である。
【図８】図３に示す復号装置に適用したインターリーバの概念を説明するための当該復号装置の要部概念を説明する図であって、（Ａ）は、当該復号装置が備えるインターリーバを示し、（Ｂ）は、当該復号装置が備えるデインターリーバを示し、（Ｃ）は、当該復号装置が備える他のデインターリーバを示す図である。
【図９】図４に示す符号化装置に適用したインターリーバの概念を説明するための当該符号化装置の要部概念を説明する図である。
【図１０】図５に示す復号装置に適用したインターリーバの概念を説明するための当該復号装置の要部概念を説明する図であって、（Ａ）は、当該復号装置が備えるデインターリーバを示し、（Ｂ）は、当該復号装置が備えるインターリーバを示す図である。
【図１１】同符号化装置及び／又は同復号装置に適用されるインターリーバの具体的なハードウェア構成を説明するブロック図である。
【図１２】同インターリーバによるデータの書き込み及び読み出し動作を説明するための図であって、１フレーム目のデータのうち、最後のデータを除く全てのデータをＲＡＭに対して書き込む様子を説明する図である。
【図１３】同インターリーバによる図１２に示す状態に続くデータの書き込み及び読み出し動作を説明するための図であって、１フレーム目の最後のデータと２フレーム目のデータの途中までのデータとをＲＡＭに対して書き込むとともに、ＲＡＭに対して書き込んだ１フレーム目のデータを書き込み順序と異なる順序で読み出す様子を説明する図である。
【図１４】同インターリーバによる図１３に示す状態に続くデータの書き込み及び読み出し動作を説明するための図であって、２フレーム目のデータのうち、最後のデータを除く残りのデータをＲＡＭに対して書き込むとともに、ＲＡＭに対して書き込んだ１フレーム目のデータを書き込み順序と異なる順序で読み出す様子を説明する図である。
【図１５】同インターリーバによる図１４に示す状態に続くデータの書き込み及び読み出し動作を説明するための図であって、２フレーム目の最後のデータと３フレーム目のデータの途中までのデータとをＲＡＭに対して書き込むとともに、ＲＡＭに対して書き込んだ２フレーム目のデータを書き込み順序と異なる順序で読み出す様子を説明する図である。
【図１６】同インターリーバによる図１５に示す状態に続くデータの書き込み及び読み出し動作を説明するための図であって、３フレーム目のデータのうち、最後のデータを除く残りのデータをＲＡＭに対して書き込むとともに、ＲＡＭに対して書き込んだ２フレーム目のデータを書き込み順序と異なる順序で読み出す様子を説明する図である。
【図１７】同インターリーバによる図１６に示す状態に続くデータの書き込み及び読み出し動作を説明するための図であって、３フレーム目の最後のデータと４フレーム目のデータの途中までのデータとをＲＡＭに対して書き込むとともに、ＲＡＭに対して書き込んだ３フレーム目のデータを書き込み順序と異なる順序で読み出す様子を説明する図である。
【図１８】同インターリーバによる図１７に示す状態に続くデータの書き込み及び読み出し動作を説明するための図であって、４フレーム目のデータのうち、最後のデータを除く残りのデータをＲＡＭに対して書き込むとともに、ＲＡＭに対して書き込んだ３フレーム目のデータを書き込み順序と異なる順序で読み出す様子を説明する図である。
【図１９】同インターリーバによる図１８に示す状態に続くデータの書き込み及び読み出し動作を説明するための図であって、４フレーム目の最後のデータと５フレーム目のデータの途中までのデータとをＲＡＭに対して書き込むとともに、ＲＡＭに対して書き込んだ４フレーム目のデータを書き込み順序と異なる順序で読み出す様子を説明する図である。
【図２０】通信モデルの構成を説明するブロック図である。
【図２１】従来の符号化装置におけるトレリスを説明する図であって、確率α，β及びγの内容を説明するための図である。
【図２２】従来の復号装置において、ＢＣＪＲアルゴリズムを適用して軟出力復号を行う際の一連の工程を説明するフローチャートである。
【図２３】従来の復号装置において、Ｍａｘ−Ｌｏｇ−ＢＣＪＲアルゴリズムを適用して軟出力復号を行う際の一連の工程を説明するフローチャートである。
【図２４】従来のインターリーバによるデータの書き込み及び読み出し動作を説明するための図であって、１フレーム目のデータを一方のバンクのＲＡＭに対して書き込む様子を説明する図である。
【図２５】同インターリーバによる図２４に示す状態に続くデータの書き込み及び読み出し動作を説明するための図であって、２フレーム目のデータの途中までのデータを他方のバンクのＲＡＭに対して書き込むとともに、一方のバンクのＲＡＭに対して書き込んだ１フレーム目のデータを書き込み順序と異なる順序で読み出す様子を説明する図である。
【図２６】同インターリーバによる図２５に示す状態に続くデータの書き込み及び読み出し動作を説明するための図であって、２フレーム目のデータの残りのデータを他方のバンクのＲＡＭに対して書き込むとともに、一方のバンクのＲＡＭに対して書き込んだ１フレーム目のデータを書き込み順序と異なる順序で読み出す様子を説明する図である。
【図２７】同インターリーバによる図２６に示す状態に続くデータの書き込み及び読み出し動作を説明するための図であって、３フレーム目のデータの途中までのデータを一方のバンクのＲＡＭに対して書き込むとともに、他方のバンクのＲＡＭに対して書き込んだ２フレーム目のデータを書き込み順序と異なる順序で読み出す様子を説明する図である。
【図２８】同インターリーバによる図２７に示す状態に続くデータの書き込み及び読み出し動作を説明するための図であって、３フレーム目のデータの残りのデータを一方のバンクのＲＡＭに対して書き込むとともに、他方のバンクのＲＡＭに対して書き込んだ２フレーム目のデータを書き込み順序と異なる順序で読み出す様子を説明する図である。
【図２９】同インターリーバによる図２８に示す状態に続くデータの書き込み及び読み出し動作を説明するための図であって、４フレーム目のデータの途中までのデータを他方のバンクのＲＡＭに対して書き込むとともに、一方のバンクのＲＡＭに対して書き込んだ３フレーム目のデータを書き込み順序と異なる順序で読み出す様子を説明する図である。
【符号の説明】
１，１'，１''  符号化装置、  ３，３'，３''  復号装置、  １１  遅延器、１２，１４，３１，３３  畳み込み符号化器、  １３，１３１，１６，１６１，１８１，２０１，３２，３２１，３５１，３７，３７１，１００  インターリーバ、  １３３，１６３，１８３，２０３，３２３，３５３，３７３，１０４  スイッチ、  １５，１７，３４，３６  軟出力復号回路、  １３２，１６２，１８，１８２，２０，２０２，３２２，３５，３５２，３７２  デインターリーバ、  １９  加算器、  １０１１，１０１２  ＲＡＭ、  １０２  アドレス用記憶回路、  １０３  制御部
【図１】
0003669433.tif 000028
【図２】
0003669433.tif 000029
【図３】
0003669433.tif 000030
【図４】
0003669433.tif 000031
【図５】
0003669433.tif 000032
【図６】
0003669433.tif 000033
【図７】
0003669433.tif 000034
【図８】
0003669433.tif 000035
【図９】
0003669433.tif 000036
【図１０】
0003669433.tif 000037
【図１１】
0003669433.tif 000038
【図１２】
0003669433.tif 000039
【図１３】
0003669433.tif 000040
【図１４】
0003669433.tif 000041
【図１５】
0003669433.tif 000042
【図１６】
0003669433.tif 000043
【図１７】
0003669433.tif 000044
【図１８】
0003669433.tif 000045
【図１９】
0003669433.tif 000046
【図２０】
0003669433.tif 000047
【図２１】
0003669433.tif 000048
【図２２】
0003669433.tif 000049
【図２３】
0003669433.tif 000050
【図２４】
0003669433.tif 000051
【図２５】
0003669433.tif 000052
【図２６】
0003669433.tif 000053
【図２７】
0003669433.tif 000054
【図２８】
0003669433.tif 000055
【図２９】
0003669433.tif 000056