JP4427883B2 - Interleaving apparatus, interleaving method, decoding apparatus, and decoding method - Google Patents
Interleaving apparatus, interleaving method, decoding apparatus, and decoding method Download PDFInfo
- Publication number
- JP4427883B2 JP4427883B2 JP2000263132A JP2000263132A JP4427883B2 JP 4427883 B2 JP4427883 B2 JP 4427883B2 JP 2000263132 A JP2000263132 A JP 2000263132A JP 2000263132 A JP2000263132 A JP 2000263132A JP 4427883 B2 JP4427883 B2 JP 4427883B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- address
- information
- address data
- circuit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、繰り返し復号するために用いるインターリーブ装置及びインターリーブ方法、並びに、繰り返し復号に適した復号装置及び復号方法に関する。
【0002】
【従来の技術】
近年、連接符号における内符号の復号出力や繰り返し復号法における各繰り返し復号動作の出力を軟出力とすることで、シンボル誤り率を小さくする研究がなされており、それに適した復号法に関する研究が盛んに行われている。例えば畳み込み符号等の所定の符号を復号した際のシンボル誤り率を最小にする方法としては、「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」に記載されているBCJRアルゴリズムが知られている。このBCJRアルゴリズムにおいては、復号結果として各シンボルを出力するのではなく、各シンボルの尤度を出力する。このような出力は、軟出力(soft-output)と呼ばれる。以下、このBCJRアルゴリズムの内容について説明する。なお、以下の説明では、図112に示すように、ディジタル情報を図示しない送信装置が備える符号化装置1001により畳み込み符号化し、その出力を雑音のある無記憶通信路1002を介して図示しない受信装置に入力して、この受信装置が備える復号装置1003により復号し、観測する場合を考える。
【0003】
まず、符号化装置1001が備えるシフトレジスタの内容を表すM個のステート(遷移状態)をm(0,1,・・・,M−1)で表し、時刻tのステートをStで表す。また、1タイムスロットにkビットの情報が入力されるものとすると、時刻tにおける入力をit=(it1,it2,・・・,itk)で表し、入力系統をI1 T=(i1,i2,・・・,iT)で表す。このとき、ステートm’からステートmへの遷移がある場合には、その遷移に対応する情報ビットをi(m’,m)=(i1(m’,m),i2(m’,m),・・・,ik(m’,m))で表す。さらに、1タイムスロットにnビットの符号が出力されるものとすると、時刻tにおける出力をxt=(xt1,xt2,・・・,xtn)で表し、出力系統をX1 T=(x1,x2,・・・,xT)で表す。このとき、ステートm’からステートmへの遷移がある場合には、その遷移に対応する符号ビットをx(m’,m)=(x1(m’,m),x2(m’,m),・・・,xn(m’,m))で表す。
【0004】
符号化装置1001による畳み込み符号化は、ステートS0=0から始まり、X1 Tを出力してST=0で終了するものとする。ここで、各ステート間の遷移確率Pt(m|m’)を次式(1)により定義する。
【0005】
【数1】
【0006】
なお、上式(1)における右辺に示すPr{A|B}は、Bが生じた条件の下でのAが生じる条件付き確率である。この遷移確率Pt(m|m’)は、次式(2)に示すように、入力iでステートm’からステートmへと遷移するときに、時刻tでの入力itがiである確率Pr{it=i}と等しいものである。
【0007】
【数2】
【0008】
雑音のある無記憶通信路1002は、X1 Tを入力とし、Y1 Tを出力する。ここで、1タイムスロットにnビットの受信値が出力されるものとすると、時刻tにおける出力をyt=(yt1,yt2,・・・,ytn)で表し、Y1 T=(y1,y2,・・・,yT)で表す。雑音のある無記憶通信路1002の遷移確率は、全てのt(1≦t≦T)について、次式(3)に示すように、各シンボルの遷移確率Pr{yj|xj}を用いて定義することができる。
【0009】
【数3】
【0010】
ここで、次式(4)のようにλtjを定義する。この次式(4)に示すλtjは、Y1 Tを受信した際の時刻tでの入力情報の尤度を表し、本来求めるべき軟出力である。
【0011】
【数4】
【0012】
BCJRアルゴリズムにおいては、次式(5)乃至次式(7)に示すような確率αt,βt及びγtを定義する。なお、Pr{A;B}は、AとBとがともに生じる確率を表すものとする。
【0013】
【数5】
【0014】
【数6】
【0015】
【数7】
【0016】
ここで、これらの確率αt,βt及びγtの内容について、符号化装置1001における状態遷移図であるトレリスを図113を用いて説明する。同図において、αt-1は、符号化開始ステートS0=0から受信値をもとに時系列順に算出した時刻t−1における各ステートの通過確率に対応する。また、βtは、符号化終了ステートST=0から受信値をもとに時系列の逆順に算出した時刻tにおける各ステートの通過確率に対応する。さらに、γtは、時刻tにおける受信値と入力確率とをもとに算出した時刻tにステート間を遷移する各枝の出力の受信確率に対応する。
【0017】
これらの確率αt,βt及びγtを用いると、軟出力λtjは、次式(8)のように表すことができる。
【0018】
【数8】
【0019】
ところで、t=1,2,・・・,Tについて、次式(9)が成立する。
【0020】
【数9】
【0021】
同様に、t=1,2,・・・,Tについて、次式(10)が成立する。
【0022】
【数10】
【0023】
さらに、γtについて、次式(11)が成立する。
【0024】
【数11】
【0025】
したがって、復号装置1003は、BCJRアルゴリズムを適用して軟出力復号を行う場合には、これらの関係に基づいて、図114に示す一連の工程を経ることにより軟出力λtを求める。
【0026】
まず、復号装置1003は、同図に示すように、ステップS1001において、ytを受信する毎に、上式(9)及び上式(11)を用いて、確率αt(m)及びγt(m’,m)を算出する。
【0027】
続いて、復号装置1003は、ステップS1002において、系列Y1 Tの全てを受信した後に、上式(10)を用いて、全ての時刻tにおける各ステートmについて、確率βt(m)を算出する。
【0028】
そして、復号装置1003は、ステップS1003において、ステップS1001及びステップS1002において算出した確率αt,βt及びγtを上式(8)に代入し、各時刻tにおける軟出力λtを算出する。
【0029】
復号装置1003は、このような一連の処理を経ることによって、BCJRアルゴリズムを適用した軟出力復号を行うことができる。
【0030】
ところで、このようなBCJRアルゴリズムにおいては、確率を直接値として保持して演算を行う必要があり、積演算を含むために演算量が大きいという問題があった。そこで、演算量を削減する手法として、「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」に記載されているMax−Log−MAPアルゴリズム及びLog−MAPアルゴリズム(以下、Max−Log−BCJRアルゴリズム及びLog−BCJRアルゴリズムと称する。)がある。
【0031】
まず、Max−Log−BCJRアルゴリズムについて説明する。Max−Log−BCJRアルゴリズムは、確率αt,βt並びにγt、及び軟出力λtを自然対数を用いて対数表記し、次式(12)に示すように、確率の積演算を対数の和演算に置き換えるとともに、次式(13)に示すように、確率の和演算を対数の最大値演算で近似するものである。なお、次式(13)に示すmax(x,y)は、x,yのうち大きい値を有するものを選択する関数である。
【0032】
【数12】
【0033】
【数13】
【0034】
ここで、記載を簡略化するため、自然対数をIと略記し、αt,βt,γt,λtの自然対数値を、それぞれ、次式(14)に示すように、Iαt,Iβt,Iγt,Iλtと表すものとする。なお、次式(14)に示すsgnは、正負を識別する符号を示す定数、すなわち、“+1”又は“−1”のいずれかである。
【0035】
【数14】
【0036】
このような定数sgnを与える理由としては、主に、確率αt,βt,γtが0乃至1の値をとることから、一般に算出される対数尤度(log likelihood)Iαt,Iβt,Iγtが負値をとることにある。
【0037】
例えば、復号装置1003がソフトウェアとして構成される場合には、正負いずれの値をも処理可能であるため、定数sgnは“+1”又は“−1”のいずれであってもよいが、復号装置1003がハードウェアとして構成される場合には、ビット数の削減を目的として、算出される負値の正負識別符号を反転して正値として扱う方が望ましい。
【0038】
すなわち、定数sgnは、復号装置1003が対数尤度として負値のみを扱う系として構成される場合には、“+1”をとり、復号装置1003が対数尤度として正値のみを扱う系として構成される場合には、“−1”をとる。以下では、このような定数sgnを考慮したアルゴリズムの説明を行うものとする。
【0039】
Max−Log−BCJRアルゴリズムにおいては、これらの対数尤度Iαt,Iβt,Iγtを、それぞれ、次式(15)乃至次式(17)に示すように近似する。ここで、次式(15)及び次式(16)に示すmsgn(x,y)は、定数sgnが“+1”の場合には、x,yのうち大きい値を有するものを選択する関数max(x,y)を示し、定数sgnが“−1”の場合には、x,yのうち小さい値を有するものを選択する関数min(x,y)を示すものである。次式(15)における右辺のステートm’における関数msgnは、ステートmへの遷移が存在するステートm’の中で求めるものとし、次式(16)における右辺のステートm’における関数msgnは、ステートmからの遷移が存在するステートm’の中で求めるものとする。
【0040】
【数15】
【0041】
【数16】
【0042】
【数17】
【0043】
また、Max−Log−BCJRアルゴリズムにおいては、対数軟出力Iλtについても同様に、次式(18)に示すように近似する。ここで、次式(18)における右辺第1項の関数msgnは、入力が“1”のときにステートmへの遷移が存在するステートm’の中で求め、第2項の関数msgnは、入力が“0”のときにステートmへの遷移が存在するステートm’の中で求めるものとする。
【0044】
【数18】
【0045】
したがって、復号装置1003は、Max−Log−BCJRアルゴリズムを適用して軟出力復号を行う場合には、これらの関係に基づいて、図115に示す一連の工程を経ることにより軟出力λtを求める。
【0046】
まず、復号装置1003は、同図に示すように、ステップS1011において、ytを受信する毎に、上式(15)及び上式(17)を用いて、対数尤度Iαt(m)及びIγt(m’,m)を算出する。
【0047】
続いて、復号装置1003は、ステップS1012において、系列Y1 Tの全てを受信した後に、上式(16)を用いて、全ての時刻tにおける各ステートmについて、対数尤度Iβt(m)を算出する。
【0048】
そして、復号装置1003は、ステップS1013において、ステップS1011及びステップS1012において算出した対数尤度Iαt,Iβt及びIγtを上式(18)に代入し、各時刻tにおける対数軟出力Iλtを算出する。
【0049】
復号装置1003は、このような一連の処理を経ることによって、Max−Log−BCJRアルゴリズムを適用した軟出力復号を行うことができる。
【0050】
このように、Max−Log−BCJRアルゴリズムは、積演算が含まれないことから、BCJRアルゴリズムと比較して、演算量を大幅に削減することができる。
【0051】
つぎに、Log−BCJRアルゴリズムについて説明する。Log−BCJRアルゴリズムは、Max−Log−BCJRアルゴリズムによる近似の精度をより向上させたものである。具体的には、Log−BCJRアルゴリズムは、上式(13)に示した確率の和演算を次式(19)に示すように補正項を追加することで変形し、和演算の正確な対数値を求めるものである。ここでは、このような補正をlog−sum補正と称するものとする。
【0052】
【数19】
【0053】
ここで、上式(19)における左辺に示す演算をlog−sum演算と称するものとし、このlog−sum演算の演算子を、「S. S. Pietrobon, “Implemntation and performance of a turbo/MAP decoder”, Int. J. Satellite Commun., vol. 16, pp. 23-46, Jan.-Feb. 1998」に記載されている記数法を踏襲し、次式(20)に示すように、便宜上“#”(ただし、同論文中では、“E”。)と表すものとする。
【0054】
【数20】
【0055】
なお、上式(19)及び上式(20)は、上述した定数sgnが“+1”の場合を示している。定数sgnが“−1”の場合には、上式(19)及び上式(20)に相当する演算は、それぞれ、次式(21)及び次式(22)に示すようになる。
【0056】
【数21】
【0057】
【数22】
【0058】
さらに、log−sum演算の累積加算演算の演算子を、次式(23)に示すように、“#Σ”(ただし、同論文中では、“E”。)と表すものとする。
【0059】
【数23】
【0060】
これらの演算子を用いると、Log−BCJRアルゴリズムにおける対数尤度Iαt,Iβt及び対数軟出力Iλtは、それぞれ、次式(24)乃至次式(26)に示すように表すことができる。なお、対数尤度Iγtは、上式(17)で表されるため、ここでは、その記述を省略する。
【0061】
【数24】
【0062】
【数25】
【0063】
【数26】
【0064】
なお、上式(24)における右辺のステートm’におけるlog−sum演算の累積加算演算は、ステートmへの遷移が存在するステートm’の中で求めるものとし、上式(25)における右辺のステートm’におけるlog−sum演算の累積加算演算は、ステートmからの遷移が存在するステートm’の中で求めるものとする。また、上式(26)における右辺第1項のlog−sum演算の累積加算演算は、入力が“1”のときにステートmへの遷移が存在するステートm’の中で求め、第2項のlog−sum演算の累積加算演算は、入力が“0”のときにステートmへの遷移が存在するステートm’の中で求めるものとする。
【0065】
したがって、復号装置1003は、Log−BCJRアルゴリズムを適用して軟出力復号を行う場合には、これらの関係に基づいて、先に図115に示した一連の工程を経ることにより軟出力λtを求めることができる。
【0066】
まず、復号装置1003は、同図に示すように、ステップS1011において、ytを受信する毎に、上式(24)及び上式(17)を用いて、対数尤度Iαt(m)及びIγt(m’,m)を算出する。
【0067】
続いて、復号装置1003は、ステップS1012において、系列Y1 Tの全てを受信した後に、上式(25)を用いて、全ての時刻tにおける各ステートmについて、対数尤度Iβt(m)を算出する。
【0068】
そして、復号装置1003は、ステップS1013において、ステップS1011及びステップS1012において算出した対数尤度Iαt,Iβt及びIγtを上式(26)に代入し、各時刻tにおける対数軟出力Iλtを算出する。
【0069】
復号装置1003は、このような一連の処理を経ることによって、Log−BCJRアルゴリズムを適用した軟出力復号を行うことができる。なお、上式(19)及び上式(21)において、右辺第2項に示す補正項は、変数|x−y|に対する1次元の関数で表されることから、復号装置1003は、この値を図示しないROM(Read Only Memory)等にテーブルとして予め記憶させておくことによって、正確な確率計算を行うことができる。
【0070】
このようなLog−BCJRアルゴリズムは、Max−Log−BCJRアルゴリズムと比較すると演算量は増えるものの積演算を含むものではなく、その出力は、量子化誤差を除けば、BCJRアルゴリズムの軟出力の対数値そのものに他ならない。
【0071】
【発明が解決しようとする課題】
ところで、上述したBCJRアルゴリズム、Max−Log−BCJRアルゴリズム又はLog−BCJRアルゴリズムは、畳み込み符号等のトレリス符号の復号を可能とするアルゴリズムであるが、このトレリス符号を要素符号とし、複数の要素符号化器をインターリーバを介して連接することにより生成される符号の復号にも適用することができる。すなわち、BCJRアルゴリズム、Max−Log−BCJRアルゴリズム又はLog−BCJRアルゴリズムは、並列連接畳み込み符号(Parallel Concatenated Convolutional Codes;以下、PCCCと記す。)又は縦列連接畳み込み符号(Serially Concatenated Convolutional Codes;以下、SCCCと記す。)や、これらのPCCC又はSCCCを応用して多値変調と組み合わせ、信号点の配置と誤り訂正符号の復号特性とを統括して考慮するターボ符号化変調(Turbo Trellis Coded Modulation;以下、TTCMと記す。)又は縦列連接符号化変調(Serial Concatenated Trellis Coded Modulation;以下、SCTCMと記す。)の復号に適用することができる。
【0072】
これらのPCCC、SCCC、TTCM又はSCTCMを復号する復号装置は、BCJRアルゴリズム、Max−Log−BCJRアルゴリズム又はLog−BCJRアルゴリズムに基づく最大事後確率(Maximum A Posteriori probability;MAP)復号を行う複数の復号器をインターリーバを介して連接し、いわゆる繰り返し復号を行うことになる。
【0073】
ここで、復号装置においては、インターリーバとして、インターリーブ処理を行うものと、このインターリーブ処理と逆の置換を行うデインターリーブ処理を行うものといったように、少なくとも2種類の置換を行うものが必要とされる。
【0074】
しかしながら、インターリーブ処理とデインターリーブ処理とを同一の構成で行うことができるインターリーバを構成することは困難である。特に、インターリーバをハードウェアとして構成する場合には、困難であることから、復号装置は、インターリーブ処理を行うインターリーバと、デインターリーブ処理を行うインターリーバとを個別に用意する必要があった。
【0075】
また、インターリーブ処理とデインターリーブ処理とを同一の構成で行うことができるインターリーバを構成する場合には、シーケンシャルなアドレスデータを用いて、記憶回路に対するデータの書き込みを行い、ランダムなアドレスデータを用いて、記憶回路からのデータの読み出しを行うことによって、インターリーブ処理を行うとともに、デインターリーブ処理を行う際には、読み出し用のアドレスデータを生成するために、インターリーブ処理で用いたアドレスデータを逆変換することが考えられる。
【0076】
しかしながら、このようなインターリーバを用いて繰り返し復号を行う場合には、デインターリーブ処理で用いたアドレスデータをインターリーブ処理に用いるための変換用のアドレスデータと、インターリーブ処理で用いたアドレスデータをデインターリーブ処理に用いるための逆変換用のアドレスデータとの、2通りのアドレスデータを個別に保持する必要があり、回路規模を圧迫する虞がある。
【0077】
本発明は、このような実情に鑑みてなされたものであり、少ない回路規模の単純な構成で、インターリーブ処理とデインターリーブ処理とを同一の構成で実現して復号を行うことができ、利便に優れたインターリーブ装置及びインターリーブ方法を提供することを目的とする。また、本発明は、少ない回路規模の単純な構成で、インターリーブ処理とデインターリーブ処理とを同一の構成で実現して復号を行うことができ、利便に優れた繰り返し復号に適した復号装置及び復号方法を提供することを目的とする。
【0078】
【課題を解決するための手段】
上述した目的を達成する本発明にかかるインターリーブ装置は、複数の要素符号をインターリーバを介して連接して生成された符号を繰り返し復号するために用いるインターリーブ装置であって、データを記憶する複数の記憶手段と、シーケンシャルな第1のアドレスデータと、シーケンシャルな第2のアドレスデータとを発生するアドレス発生手段と、インターリーバと同一の置換位置情報に基づいて、入力されるデータの順序を置換して並べ替えるインターリーブ処理を行う場合には、第1のアドレスデータを記憶手段に対するデータの書き込みに用いるとともに、アドレス発生手段により発生された第2のアドレスデータに対応してアドレス用記憶手段から読み出されるランダムな第3のアドレスデータを、記憶手段からのデータの読み出しに用い、インターリーバにより並べ替えられた情報の配列を元に戻すように、入力されるデータの順序を置換して並べ替えるデインターリーブ処理を行う場合には、第3のアドレスデータを記憶手段に対するデータの書き込みに用いるとともに、第1のアドレスデータを記憶手段からのデータの読み出しに用いるように切り替える切替手段とを備え、入力される複数シンボルのデータに対して、互いに異なるアドレスに基づいて個別的にインターリーブを施す。
【0079】
また、上述した目的を達成する本発明にかかるインターリーブ装置は、複数の要素符号をインターリーバを介して連接して生成された符号を繰り返し復号するために用いるインターリーブ装置であって、データを記憶する複数の記憶手段と、シーケンシャルな第1のアドレスデータと、シーケンシャルな第2のアドレスデータとを発生するアドレス発生手段と、インターリーバと同一の置換位置情報に基づいて、入力されるデータの順序を置換して並べ替えるインターリーブ処理を行う場合には、第1のアドレスデータを記憶手段に対するデータの書き込みに用いるとともに、アドレス発生手段により発生された第2のアドレスデータに対応してアドレス用記憶手段から読み出されるランダムな第3のアドレスデータを、記憶手段からのデータの読み出しに用い、インターリーバにより並べ替えられた情報の配列を元に戻すように、入力されるデータの順序を置換して並べ替えるデインターリーブ処理を行う場合には、第3のアドレスデータを記憶手段に対するデータの書き込みに用いるとともに、第1のアドレスデータを記憶手段からのデータの読み出しに用いるように切り替える切替手段とを備え、入力される複数シンボルのデータに対して、各ビットの組み合わせを保持するようにインターリーブを施す。
このような本発明にかかるインターリーブ装置は、インターリーブ処理とデインターリーブ処理との間で同一のアドレスデータを共用し、切替手段によって、これらのアドレスデータを、インターリーブ処理とデインターリーブ処理とに応じて切り替える。
【0080】
また、上述した目的を達成する本発明にかかるインターリーブ方法は、複数の要素符号をインターリーブ工程を介して連接して生成された符号を繰り返し復号するために用いるインターリーブ方法であって、シーケンシャルな第1のアドレスデータと、シーケンシャルな第2のアドレスデータとを発生するアドレス発生工程と、インターリーバと同一の置換位置情報に基づいて、入力されるデータの順序を置換して並べ替えるインターリーブ処理を行う場合には、第1のアドレスデータを、データを記憶する複数の記憶手段に対するデータの書き込みに用いるとともに、アドレス発生工程にて発生された第2のアドレスデータに対応してアドレス用記憶手段から読み出されるランダムな第3のアドレスデータを、記憶手段からのデータの読み出しに用い、インターリーバにより並べ替えられた情報の配列を元に戻すように、入力されるデータの順序を置換して並べ替えるデインターリーブ処理を行う場合には、第3のアドレスデータを記憶手段に対するデータの書き込みに用いるとともに、第1のアドレスデータを記憶手段からのデータの読み出しに用いるように切り替える切替工程とを備え、入力される複数シンボルのデータに対して、互いに異なるアドレスに基づいて個別的にインターリーブを施す。
【0081】
また、上述した目的を達成する本発明にかかるインターリーブ方法は、複数の要素符号をインターリーブ工程を介して連接して生成された符号を繰り返し復号するために用いるインターリーブ方法であって、シーケンシャルな第1のアドレスデータと、シーケンシャルな第2のアドレスデータとを発生するアドレス発生工程と、インターリーバと同一の置換位置情報に基づいて、入力されるデータの順序を置換して並べ替えるインターリーブ処理を行う場合には、第1のアドレスデータを、データを記憶する複数の記憶手段に対するデータの書き込みに用いるとともに、アドレス発生工程にて発生された第2のアドレスデータに対応してアドレス用記憶手段から読み出されるランダムな第3のアドレスデータを、記憶手段からのデータの読み出しに用い、インターリーバにより並べ替えられた情報の配列を元に戻すように、入力されるデータの順序を置換して並べ替えるデインターリーブ処理を行う場合には、第3のアドレスデータを記憶手段に対するデータの書き込みに用いるとともに、第1のアドレスデータを記憶手段からのデータの読み出しに用いるように切り替える切替工程とを備え、入力される複数シンボルのデータに対して、各ビットの組み合わせを保持するようにインターリーブを施す。
このような本発明にかかるインターリーブ方法は、インターリーブ処理とデインターリーブ処理との間で同一のアドレスデータを共用し、これらのアドレスデータを、インターリーブ処理とデインターリーブ処理とに応じて切り替える。
【0082】
また、上述した目的を達成する本発明にかかる復号装置は、軟入力とされる受信値に基づいて任意のステートを通過する確率を求め、この確率を用いて、複数の要素符号をインターリーバを介して連接して生成された符号を繰り返し復号するための、要素符号に対応する復号装置であって、受信値及び事前確率情報を入力して軟出力復号を行い、各時刻における軟出力及び/又は外部情報を生成する軟出力復号手段と、軟出力復号手段により生成された外部情報を入力し、インターリーバと同一の置換位置情報に基づいて、外部情報の順序を置換して並べ替えるインターリーブ処理、又は、インターリーバにより並べ替えられた情報の配列を元に戻すように、外部情報の順序を置換して並べ替えるデインターリーブ処理を行うインターリーブ手段とを備え、インターリーブ手段は、データを記憶する複数の記憶手段と、シーケンシャルな第1のアドレスデータと、シーケンシャルな第2のアドレスデータとを発生するアドレス発生手段と、インターリーバと同一の置換位置情報に基づいて、入力されるデータの順序を置換して並べ替えるインターリーブ処理を行う場合には、第1のアドレスデータを記憶手段に対するデータの書き込みに用いるとともに、アドレス発生手段により発生された第2のアドレスデータに対応してアドレス用記憶手段から読み出されるランダムな第3のアドレスデータを、記憶手段からのデータの読み出しに用い、インターリーバにより並べ替えられた情報の配列を元に戻すように、入力されるデータの順序を置換して並べ替えるデインターリーブ処理を行う場合には、第3のアドレスデータを記憶手段に対するデータの書き込みに用いるとともに、第1のアドレスデータを記憶手段からのデータの読み出しに用いるように切り替える切替手段とを有し、インターリーブ手段は、入力される複数シンボルのデータに対して、互いに異なるアドレスに基づいて個別的にインターリーブを施す。
【0083】
また、上述した目的を達成する本発明にかかる復号装置は、軟入力とされる受信値に基づいて任意のステートを通過する確率を求め、この確率を用いて、複数の要素符号をインターリーバを介して連接して生成された符号を繰り返し復号するための、要素符号に対応する復号装置であって、受信値及び事前確率情報を入力して軟出力復号を行い、各時刻における軟出力及び/又は外部情報を生成する軟出力復号手段と、軟出力復号手段により生成された外部情報を入力し、インターリーバと同一の置換位置情報に基づいて、外部情報の順序を置換して並べ替えるインターリーブ処理、又は、インターリーバにより並べ替えられた情報の配列を元に戻すように、外部情報の順序を置換して並べ替えるデインターリーブ処理を行うインターリーブ手段とを備え、インターリーブ手段は、データを記憶する複数の記憶手段と、シーケンシャルな第1のアドレスデータと、シーケンシャルな第2のアドレスデータとを発生するアドレス発生手段と、インターリーバと同一の置換位置情報に基づいて、入力されるデータの順序を置換して並べ替えるインターリーブ処理を行う場合には、第1のアドレスデータを記憶手段に対するデータの書き込みに用いるとともに、アドレス発生手段により発生された第2のアドレスデータに対応してアドレス用記憶手段から読み出されるランダムな第3のアドレスデータを、記憶手段からのデータの読み出しに用い、インターリーバにより並べ替えられた情報の配列を元に戻すように、入力されるデータの順序を置換して並べ替えるデインターリーブ処理を行う場合には、第3のアドレスデータを記憶手段に対するデータの書き込みに用いるとともに、第1のアドレスデータを記憶手段からのデータの読み出しに用いるように切り替える切替手段とを有し、インターリーブ手段は、入力される複数シンボルのデータに対して、各ビットの組み合わせを保持するようにインターリーブを施す。
このような本発明にかかる復号装置は、軟出力復号して得られた外部情報をインターリーブ手段に入力し、インターリーブ処理とデインターリーブ処理との間で同一のアドレスデータを共用し、切替手段によって、これらのアドレスデータを、インターリーブ処理とデインターリーブ処理とに応じて切り替える。
【0084】
また、上述した目的を達成する本発明にかかる復号方法は、軟入力とされる受信値に基づいて任意のステートを通過する確率を求め、この確率を用いて、複数の要素符号を第1のインターリーブ工程を介して連接して生成された符号を繰り返し復号するための、要素符号に対応する復号方法であって、受信値及び事前確率情報を入力して軟出力復号を行い、各時刻における軟出力及び/又は外部情報を生成する軟出力復号工程と、軟出力復号工程にて生成された外部情報を入力し、第1のインターリーブ工程と同一の置換位置情報に基づいて、外部情報の順序を置換して並べ替えるインターリーブ処理、又は、第1のインターリーブ工程にて並べ替えられた情報の配列を元に戻すように、外部情報の順序を置換して並べ替えるデインターリーブ処理を行う第2のインターリーブ工程とを備え、第2のインターリーブ工程は、シーケンシャルな第1のアドレスデータと、シーケンシャルな第2のアドレスデータとを発生するアドレス発生工程と、インターリーブ処理を行う場合には、第1のアドレスデータを、データを記憶する複数の記憶手段に対するデータの書き込みに用いるとともに、アドレス発生工程にて発生された第2のアドレスデータに対応してアドレス用記憶手段から読み出されるランダムな第3のアドレスデータを、記憶手段からのデータの読み出しに用い、デインターリーブ処理を行う場合には、第3のアドレスデータを記憶手段に対するデータの書き込みに用いるとともに、第1のアドレスデータを記憶手段からのデータの読み出しに用いるように切り替える切替工程とを有し、入力される複数シンボルのデータに対して、互いに異なるアドレスに基づいて個別的にインターリーブを施す。
【0085】
また、上述した目的を達成する本発明にかかる復号方法は、軟入力とされる受信値に基づいて任意のステートを通過する確率を求め、この確率を用いて、複数の要素符号を第1のインターリーブ工程を介して連接して生成された符号を繰り返し復号するための、要素符号に対応する復号方法であって、受信値及び事前確率情報を入力して軟出力復号を行い、各時刻における軟出力及び/又は外部情報を生成する軟出力復号工程と、軟出力復号工程にて生成された外部情報を入力し、第1のインターリーブ工程と同一の置換位置情報に基づいて、外部情報の順序を置換して並べ替えるインターリーブ処理、又は、第1のインターリーブ工程にて並べ替えられた情報の配列を元に戻すように、外部情報の順序を置換して並べ替えるデインターリーブ処理を行う第2のインターリーブ工程とを備え、第2のインターリーブ工程は、シーケンシャルな第1のアドレスデータと、シーケンシャルな第2のアドレスデータとを発生するアドレス発生工程と、インターリーブ処理を行う場合には、第1のアドレスデータを、データを記憶する複数の記憶手段に対するデータの書き込みに用いるとともに、アドレス発生工程にて発生された第2のアドレスデータに対応してアドレス用記憶手段から読み出されるランダムな第3のアドレスデータを、記憶手段からのデータの読み出しに用い、デインターリーブ処理を行う場合には、第3のアドレスデータを記憶手段に対するデータの書き込みに用いるとともに、第1のアドレスデータを記憶手段からのデータの読み出しに用いるように切り替える切替工程とを有し、入力される複数シンボルのデータに対して、各ビットの組み合わせを保持するようにインターリーブを施す。
このような本発明にかかる復号方法は、軟出力復号して得られた外部情報を第2のインターリーブ工程にて用いるように入力し、インターリーブ処理とデインターリーブ処理との間で同一のアドレスデータを共用し、これらのアドレスデータを、インターリーブ処理とデインターリーブ処理とに応じて切り替える。
【0086】
また、上述した目的を達成する本発明にかかる復号装置は、軟入力とされる受信値に基づいて任意のステートを通過する確率を求め、この確率を用いて、複数の要素符号をインターリーバを介して連接して生成された符号を繰り返し復号する復号装置であって、当該復号装置は、連接された複数の要素復号器からなり、これらの要素復号器は、それぞれ、受信値及び事前確率情報を入力して軟出力復号を行い、各時刻における軟出力及び/又は外部情報を生成する軟出力復号手段と、この軟出力復号手段により生成された外部情報を入力し、インターリーバと同一の置換位置情報に基づいて、外部情報の順序を置換して並べ替えるインターリーブ処理、又は、インターリーバにより並べ替えられた情報の配列を元に戻すように、外部情報の順序を置換して並べ替えるデインターリーブ処理を行うインターリーブ手段とを備え、インターリーブ手段は、データを記憶する複数の記憶手段と、シーケンシャルな第1のアドレスデータと、シーケンシャルな第2のアドレスデータとを発生するアドレス発生手段と、インターリーバと同一の置換位置情報に基づいて、入力されるデータの順序を置換して並べ替えるインターリーブ処理を行う場合には、第1のアドレスデータを記憶手段に対するデータの書き込みに用いるとともに、アドレス発生手段により発生された第2のアドレスデータに対応してアドレス用記憶手段から読み出されるランダムな第3のアドレスデータを、記憶手段からのデータの読み出しに用い、インターリーバにより並べ替えられた情報の配列を元に戻すように、入力されるデータの順序を置換して並べ替えるデインターリーブ処理を行う場合には、第3のアドレスデータを記憶手段に対するデータの書き込みに用いるとともに、第1のアドレスデータを記憶手段からのデータの読み出しに用いるように切り替える切替手段とを有することを特徴としている。
【0087】
このような本発明にかかる復号装置は、繰り返し復号を行う際に、軟出力復号して得られた外部情報をインターリーブ手段に入力し、インターリーブ処理とデインターリーブ処理との間で同一のアドレスデータを共用し、切替手段によって、これらのアドレスデータを、インターリーブ処理とデインターリーブ処理とに応じて切り替える。
【0088】
さらに、上述した目的を達成する本発明にかかる復号方法は、軟入力とされる受信値に基づいて任意のステートを通過する確率を求め、この確率を用いて、複数の要素符号を第1のインターリーブ工程を介して連接して生成された符号を繰り返し復号する復号方法であって、当該復号方法は、複数の要素復号工程が連続して行われるものであり、これらの要素復号工程は、それぞれ、受信値及び事前確率情報を入力して軟出力復号を行い、各時刻における軟出力及び/又は外部情報を生成する軟出力復号工程と、この軟出力復号工程にて生成された外部情報を入力し、第1のインターリーブ工程と同一の置換位置情報に基づいて、外部情報の順序を置換して並べ替えるインターリーブ処理、又は、第1のインターリーブ工程にて並べ替えられた情報の配列を元に戻すように、外部情報の順序を置換して並べ替えるデインターリーブ処理を行う第2のインターリーブ工程とを備え、第2のインターリーブ工程は、シーケンシャルな第1のアドレスデータと、シーケンシャルな第2のアドレスデータとを発生するアドレス発生工程と、インターリーブ処理を行う場合には、第1のアドレスデータを、データを記憶する複数の記憶手段に対するデータの書き込みに用いるとともに、アドレス発生工程にて発生された第2のアドレスデータに対応してアドレス用記憶手段から読み出されるランダムな第3のアドレスデータを、記憶手段からのデータの読み出しに用い、デインターリーブ処理を行う場合には、第3のアドレスデータを記憶手段に対するデータの書き込みに用いるとともに、第1のアドレスデータを記憶手段からのデータの読み出しに用いるように切り替える切替工程とを有することを特徴としている。
【0089】
このような本発明にかかる復号方法は、繰り返し復号を行う際に、軟出力復号して得られた外部情報を第2のインターリーブ工程にて用いるように入力し、インターリーブ処理とデインターリーブ処理との間で同一のアドレスデータを共用し、これらのアドレスデータを、インターリーブ処理とデインターリーブ処理とに応じて切り替える。
【0090】
【発明の実施の形態】
以下、本発明を適用した具体的な実施の形態について図面を参照しながら詳細に説明する。
【0091】
この実施の形態は、図1に示すように、ディジタル情報を図示しない送信装置が備える符号化装置1により符号化し、その出力を雑音のある無記憶通信路2を介して図示しない受信装置に入力して、この受信装置が備える復号装置3により復号する通信モデルに適用したデータ送受信システムである。
【0092】
このデータ送受信システムにおいて、符号化装置1は、畳み込み符号等のトレリス符号を要素符号とする並列連接畳み込み符号(Parallel Concatenated Convolutional Codes;以下、PCCCと記す。)又は縦列連接畳み込み符号(Serially Concatenated Convolutional Codes;以下、SCCCと記す。)や、これらのPCCC又はSCCCを応用して多値変調と組み合わせたターボ符号化変調(Turbo Trellis Coded Modulation;以下、TTCMと記す。)又は縦列連接符号化変調(Serial Concatenated Trellis Coded Modulation;以下、SCTCMと記す。)を行うものとして構成される。これらの符号化は、いわゆるターボ符号化(Turbo coding)の一種として知られているものである。
【0093】
一方、復号装置3は、符号化装置1により符号化がなされた符号の復号を行うものであって、「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」に記載されているMax−Log−MAPアルゴリズム又はLog−MAPアルゴリズム(以下、Max−Log−BCJRアルゴリズム又はLog−BCJRアルゴリズムと称する。)に基づく最大事後確率(Maximum A Posteriori probability;以下、MAPと記す。)復号を行い、いわゆる確率α,β,γ、及び軟出力(soft-output)λを自然対数を用いて対数尤度(log likelihood)の形式で対数表記した対数尤度Iα,Iβ,Iγ、及びいわゆる事後確率情報(a posteriori probability information)に対応する対数軟出力Iλを求める軟出力復号回路と、入力したデータを並べ替えるインターリーバとを少なくとも含むモジュールを、1つの要素復号器とし、複数の要素復号器を連接することによって、繰り返し復号を行うものとして構成される。
【0094】
特に、復号装置3は、軟出力復号して得られたいわゆる外部情報(extrinsic information)をインターリーバに入力し、インターリーブ処理とデインターリーブ処理との間で同一のアドレスデータを共用し、これらのアドレスデータを、インターリーブ処理とデインターリーブ処理とに応じて切り替えるものである。
【0095】
なお、以下では、復号装置3における各要素復号器は、Log−BCJRアルゴリズムに基づくMAP復号を行うものとして説明する。
【0096】
以下、下記目次に沿って内容を説明していく。
【0097】
目次
1. PCCC、SCCC、TTCM及びSCTCMによる符号化・復号を行う符号化装置及び復号装置の概略
1−1 PCCCによる符号化・復号を行う符号化装置及び復号装置
1−2 SCCCによる符号化・復号を行う符号化装置及び復号装置
2. 要素復号器の詳細
2−1 要素復号器の全体構成
2−2 軟出力復号回路の詳細
2−3 インターリーバの詳細
3. 要素復号器を連接して構成される復号装置
4. 要素復号器の全体に関する特徴
4−1 符号尤度の切り替え機能
4−2 受信値の遅延機能
4−3 復号受信値選択機能
4−4 復号用の記憶回路と遅延用の記憶回路の共用
4−5 フレーム先頭情報の遅延機能
4−6 軟出力復号回路又はインターリーバ単体動作機能
4−7 遅延モード切り替え機能
4−8 次段情報生成機能
4−9 システム検証機能
5. 軟出力復号回路に関する特徴
5−1 符号情報の持たせ方
5−1−1 トレリス上の全枝の入出力パターンの算出
5−1−2 遷移元のステートと遷移先のステートとの間での番号付け
5−1−3 時間軸に沿った番号付け及び時間軸とは逆順に沿った番号付け
5−1−4 トレリス全体の一意性に基づく番号付け
5−2 終結情報の入力方法
5−2−1 入力ビット数分の情報の終結期間分の入力
5−2−2 終結ステートを示す情報の1タイムスロットでの入力
5−3 消去位置の処理
5−4 対数尤度Iγの算出及び分配
5−4−1 全入出力パターン分の対数尤度Iγの算出・分配
5−4−2 少なくとも一部の入出力パターン分の対数尤度Iγの算出・分配
5−4−3 全入出力パターン分の対数尤度Iγに対する1時刻毎の正規化
5−4−4 少なくとも一部の入出力パターン分の対数尤度Iγに対する正規化
5−5 対数尤度Iα,Iβの算出
5−5−1 対数尤度Iαと対数尤度Iγとの和の算出
5−5−2 パラレルパスに対する前処理
5−5−3 加算比較選択回路の共用
5−5−4 対数軟出力Iλの算出用の対数尤度Iγの出力
5−5−5 パラレルパスに対する対数尤度Iαと対数尤度Iγとの和の算出
5−5−6 符号構成に応じた対数尤度の選択
5−5−7 対数尤度Iα,Iβに対する正規化
5−5−8 log−sum補正における補正項の算出
5−5−9 log−sum演算における選択用の制御信号の生成
5−6 対数軟出力Iλの算出
5−6−1 イネーブル信号を用いたlog−sum演算の累積加算演算
5−6−2 イネーブル信号を用いないlog−sum演算の累積加算演算
5−7 外部情報に対する正規化
5−8 受信値の硬判定
6. インターリーバに関する特徴
6−1 複数種類のインターリーブ機能
6−2 インターリーブ用の記憶回路と遅延用の記憶回路の共用
6−3 クロック阻止信号による記憶回路の動作制御
6−4 デインターリーブ機能
6−5 書き込みアドレス及び読み出しアドレスの発生
6−6 インターリーブ長分の遅延機能
6−7 アドレス空間の利用方法
6−8 パーシャルライト機能によるデータの書き込み及び読み出し
6−9 偶数長遅延及び奇数長遅延への対応
6−10 入出力順序入れ替え機能
7. まとめ
【0098】
1. PCCC、SCCC、TTCM及びSCTCMによる符号化・復号を行う符号化装置及び復号装置の概略
まず、本発明の外延をより明確にするために、本発明の詳細な説明に先立って、図2及び図3に示すPCCCによる符号化・復号を行う符号化装置1’及び復号装置3’と、図4及び図5に示すSCCCによる符号化・復号を行う符号化装置1’’及び復号装置3’’とについて説明する。これらの符号化装置1’,1’’は、符号化装置1の例として位置付けられるものであり、復号装置3’,3’’は、復号装置3の例として位置付けられるものである。特に、復号装置3’,3’’は、要素復号器を連接することにより構成可能とされるものである。
【0099】
1−1 PCCCによる符号化・復号を行う符号化装置及び復号装置
最初に、PCCCによる符号化を行う符号化装置1’と、この符号化装置1’による符号の復号を行う復号装置3’について説明する。
【0100】
符号化装置1’としては、図2に示すように、入力したデータを遅延させる遅延器11と、畳み込み演算を行う2つの畳み込み符号化器12,14と、入力したデータの順序を並べ替えるインターリーバ13とを備えるものがある。この符号化装置1’は、入力した1ビットの入力データD1に対して、符号化率が“1/3”の並列連接畳み込み演算を行い、3ビットの出力データD4,D5,D6を生成し、例えば2相位相(Binary Phase Shift Keying;以下、BPSKと記す。)変調方式や4相位相(Quadrature Phase Shift Keying;以下、QPSKと記す。)変調方式による変調を行う図示しない変調器を介して外部に出力する。
【0101】
遅延器11は、3ビットの出力データD4,D5,D6が出力されるタイミングを合わせるために備えられるものであって、1ビットの入力データD1を入力すると、この入力データD1をインターリーバ13が要する処理時間と同時間だけ遅延させる。遅延器11は、遅延させて得られた遅延データD2を、出力データD4として外部に出力するとともに、後段の畳み込み符号化器12に供給する。
【0102】
畳み込み符号化器12は、遅延器11から出力された1ビットの遅延データD2を入力すると、この遅延データD2に対して畳み込み演算を行い、演算結果を出力データD5として外部に出力する。
【0103】
インターリーバ13は、1つのビット系列からなる入力データD1を入力し、この入力データD1を構成する各ビットの順序を並べ替え、生成したインターリーブデータD3を後段の畳み込み符号化器14に供給する。
【0104】
畳み込み符号化器14は、インターリーバ13から供給される1ビットのインターリーブデータD3を入力すると、このインターリーブデータD3に対して畳み込み演算を行い、演算結果を出力データD6として外部に出力する。
【0105】
このような符号化装置1’は、1ビットの入力データD1を入力すると、この入力データD1を組織成分の出力データD4として、遅延器11を介してそのまま外部に出力するとともに、畳み込み符号化器12による遅延データD2の畳み込み演算の結果得られる出力データD5と、畳み込み符号化器14によるインターリーブデータD3の畳み込み演算の結果得られる出力データD6とを外部に出力することによって、全体として、符号化率が“1/3”の並列連接畳み込み演算を行う。この符号化装置1’により符号化されたデータは、図示しない変調器により所定の変調方式に基づいて信号点のマッピングが行われ、無記憶通信路2を介して受信装置に出力される。
【0106】
一方、符号化装置1’による符号の復号を行う復号装置3’としては、図3に示すように、軟出力復号を行う2つの軟出力復号回路15,17と、入力したデータの順序を並べ替えるインターリーバ16と、入力したデータの順序を元に戻す2つのデインターリーバ18,20と、2つのデータを加算する加算器19とを備えるものがある。この復号装置3’は、無記憶通信路2上で発生したノイズの影響により軟入力(soft-input)とされる受信値D7から符号化装置1’における入力データD1を推定し、復号データD13として出力する。
【0107】
軟出力復号回路15は、符号化装置1’における畳み込み符号化器12に対応して備えられるものであり、Log−BCJRに基づくMAP復号を行う。軟出力復号回路15は、軟入力の受信値D7を入力するとともに、デインターリーバ18から出力された軟入力の情報ビットに対する事前確率情報(a priori probability information)D8を入力し、これらの受信値D7と事前確率情報D8とを用いて、軟出力復号を行う。そして、軟出力復号回路15は、符号の拘束条件により求められる情報ビットに対する外部情報D9を生成し、この外部情報D9を後段のインターリーバ16に軟出力として出力する。
【0108】
インターリーバ16は、軟出力復号回路15から出力された軟入力である情報ビットに対する外部情報D9に対して、符号化装置1’におけるインターリーバ13と同一の置換位置情報に基づいたインターリーブを施す。インターリーバ16は、インターリーブして得られたデータを後段の軟出力復号回路17における情報ビットに対する事前確率情報D10として出力するとともに、後段の加算器19に出力する。
【0109】
軟出力復号回路17は、符号化装置1’における畳み込み符号化器14に対応して備えられるものであり、軟出力復号回路15と同様に、Log−BCJRアルゴリズムに基づくMAP復号を行う。軟出力復号回路17は、軟入力の受信値D7を入力するとともに、インターリーバ16から出力された軟入力の情報ビットに対する事前確率情報D10を入力し、これらの受信値D7と事前確率情報D10とを用いて、軟出力復号を行う。そして、軟出力復号回路17は、符号の拘束条件により求められる情報ビットに対する外部情報D11を生成し、この外部情報D11をデインターリーバ18に軟出力として出力するとともに、加算器19に出力する。
【0110】
デインターリーバ18は、符号化装置1’におけるインターリーバ13によりインターリーブされたインターリーブデータD3のビット配列を、元の入力データD1のビット配列に戻すように、軟出力復号回路17から出力される軟入力の外部情報D11にデインターリーブを施す。デインターリーバ18は、デインターリーブして得られたデータを軟出力復号回路15における情報ビットに対する事前確率情報D8として出力する。
【0111】
加算器19は、インターリーバ16から出力された軟入力の情報ビットに対する事前確率情報D10と、軟出力復号回路17から出力された情報ビットに対する外部情報D11とを加算する。加算器19は、得られたデータD12を後段のデインターリーバ20に軟出力として出力する。
【0112】
デインターリーバ20は、符号化装置1’におけるインターリーバ13によりインターリーブされたインターリーブデータD3のビット配列を、元の入力データD1のビット配列に戻すように、加算器19から出力される軟出力のデータD12にデインターリーブを施す。デインターリーバ20は、デインターリーブして得られたデータを復号データD13として外部に出力する。
【0113】
このような復号装置3’は、符号化装置1’における畳み込み符号化器12,14のそれぞれに対応する軟出力復号回路15,17を備えることによって、復号複雑度が高い符号を複雑度の小さい要素に分解し、軟出力復号回路15,17の間の相互作用により特性を逐次的に向上させることができる。復号装置3’は、受信値D7を受信すると、所定の繰り返し回数での繰り返し復号を行い、この復号動作の結果得られた軟出力の外部情報に基づいて、復号データD13を出力する。
【0114】
なお、TTCMによる符号化を行う符号化装置は、符号化装置1’の最終段に、例えば8相位相(8-Phase Shift Keying;以下、8PSKと記す。)変調方式による変調を行う変調器を備えることによって実現することができる。また、TTCMによる符号の復号を行う復号装置は、復号装置3’と同様の構成で実現することができ、受信値として、同相成分及び直交成分のシンボルを直接入力することになる。
【0115】
1−2 SCCCによる符号化・復号を行う符号化装置及び復号装置
つぎに、SCCCによる符号化を行う符号化装置1’’と、この符号化装置1’’による符号の復号を行う復号装置3’’について説明する。
【0116】
符号化装置1’’としては、図4に示すように、外符号と呼ばれる符号の符号化を行う畳み込み符号化器31と、入力したデータの順序を並べ替えるインターリーバ32と、内符号と呼ばれる符号の符号化を行う畳み込み符号化器33とを備えるものがある。この符号化装置1’’は、入力した1ビットの入力データD21に対して、符号化率が“1/3”の縦列連接畳み込み演算を行い、3ビットの出力データD26,D27,D28を生成し、例えばBPSK変調方式やQPSK変調方式による変調を行う図示しない変調器を介して外部に出力する。
【0117】
畳み込み符号化器31は、1ビットの入力データD21を入力すると、この入力データD21に対して畳み込み演算を行い、演算結果を2ビットの符号化データD22,D23として後段のインターリーバ32に供給する。すなわち、畳み込み符号化器31は、外符号の符号化として符号化率が“1/2”の畳み込み演算を行い、生成した符号化データD22,D23を後段のインターリーバ32に供給する。
【0118】
インターリーバ32は、畳み込み符号化器31から供給された2つのビット系列からなる符号化データD22,D23を入力し、これらの符号化データD22,D23を構成する各ビットの順序を並べ替え、生成した2つのビット系列からなるインターリーブデータD24,D25を後段の畳み込み符号化器33に供給する。
【0119】
畳み込み符号化器33は、インターリーバ32から供給される2ビットのインターリーブデータD24,D25を入力すると、これらのインターリーブデータD24,D25に対して畳み込み演算を行い、演算結果を3ビットの出力データD26,D27,D28として外部に出力する。すなわち、畳み込み符号化器33は、内符号の符号化として符号化率が“2/3”の畳み込み演算を行い、出力データD26,D27,D28を外部に出力する。
【0120】
このような符号化装置1’’は、畳み込み符号化器31により外符号の符号化として符号化率が“1/2”の畳み込み演算を行い、畳み込み符号化器33により内符号の符号化として符号化率が“2/3”の畳み込み演算を行うことによって、全体として、符号化率が“(1/2)×(2/3)=1/3”の縦列連接畳み込み演算を行う。この符号化装置1’’により符号化されたデータは、図示しない変調器により所定の変調方式に基づいて信号点のマッピングが行われ、無記憶通信路2を介して受信装置に出力される。
【0121】
一方、符号化装置1’’による符号の復号を行う復号装置3’’としては、図5に示すように、軟出力復号を行う2つの軟出力復号回路34,36と、入力したデータの順序を元に戻すデインターリーバ35と、入力したデータの順序を並べ替えるインターリーバ37とを備えるものがある。この復号装置3’’は、無記憶通信路2上で発生したノイズの影響により軟入力とされる受信値D29から符号化装置1’’における入力データD21を推定し、復号データD36として出力する。
【0122】
軟出力復号回路34は、符号化装置1’’における畳み込み符号化器33に対応して備えられるものであり、Log−BCJRに基づくMAP復号を行う。軟出力復号回路34は、軟入力の受信値D29を入力するとともに、インターリーバ37から出力された軟入力の情報ビットに対する事前確率情報D30を入力し、これらの受信値D29と事前確率情報D30とを用いて、Log−BCJRアルゴリズムに基づくMAP復号を行い、内符号の軟出力復号を行う。そして、軟出力復号回路34は、符号の拘束条件により求められる情報ビットに対する外部情報D31を生成し、この外部情報D31を後段のデインターリーバ35に軟出力として出力する。なお、この外部情報D31は、符号化装置1’’におけるインターリーバ32によりインターリーブされたインターリーブデータD24,D25に対応するものである。
【0123】
デインターリーバ35は、符号化装置1’’におけるインターリーバ32によりインターリーブされたインターリーブデータD24,D25のビット配列を、それぞれ、元の符号化データD22,D23のビット配列に戻すように、軟出力復号回路34から出力される軟入力の外部情報D31にデインターリーブを施す。デインターリーバ35は、デインターリーブして得られたデータを後段の軟出力復号回路36における符号ビットに対する事前確率情報D32として出力する。
【0124】
軟出力復号回路36は、符号化装置1’’における畳み込み符号化器31に対応して備えられるものであり、Log−BCJRに基づくMAP復号を行う。軟出力復号回路36は、デインターリーバ35から出力された軟入力の符号ビットに対する事前確率情報D32を入力するとともに、値が“0”である情報ビットに対する事前確率情報D33を入力し、これらの事前確率情報D32,D33を用いて、Log−BCJRアルゴリズムに基づくMAP復号を行い、外符号の軟出力復号を行う。軟出力復号回路36は、符号の拘束条件により求められる外部情報D34,D35を生成し、外部情報D34を復号データD36として外部に出力するとともに、外部情報D35をインターリーバ37に軟出力として出力する。
【0125】
インターリーバ37は、軟出力復号回路36から出力された軟入力である符号ビットに対する外部情報D35に対して、符号化装置1’’におけるインターリーバ32と同一の置換位置情報に基づいたインターリーブを施す。インターリーバ37は、インターリーブして得られたデータを軟出力復号回路34における情報ビットに対する事前確率情報D30として出力する。
【0126】
このような復号装置3’’は、符号化装置1’’における畳み込み符号化器31,33のそれぞれに対応する軟出力復号回路36,34を備えることによって、復号装置3’と同様に、復号複雑度が高い符号を複雑度の小さい要素に分解し、軟出力復号回路34,36の間の相互作用により特性を逐次的に向上させることができる。復号装置3’’は、受信値D29を受信すると、所定の繰り返し回数での繰り返し復号を行い、この復号動作の結果得られた軟出力の外部情報に基づいて、復号データD36を出力する。
【0127】
なお、SCTCMによる符号化を行う符号化装置は、符号化装置1’’の最終段に、例えば8PSK変調方式による変調を行う変調器を備えることによって実現することができる。また、SCTCMによる符号の復号を行う復号装置は、復号装置3’’と同様の構成で実現することができ、受信値として、同相成分及び直交成分のシンボルを直接入力することになる。
【0128】
2. 要素復号器の詳細
本発明の実施の形態として示す復号装置3は、図3中破線部又は図5中破線部に示すように、軟出力復号回路とインターリーバ若しくはデインターリーバとを少なくとも含むモジュールを上述した要素復号器とし、複数の要素復号器を連接してPCCC、SCCC、TTCM又はSCTCMのうち、任意の符号を復号するものである。ここで、デインターリーバは、インターリーバと逆の置換位置情報に基づいてデータを並べ替えるものであることから、インターリーバの1形態として擬制することができる。そこで、要素復号器としては、軟出力復号回路とインターリーバとを備えるものであればよく、インターリーブ処理とデインターリーブ処理とを、インターリーバとデインターリーバとの機能の切り替えを行うことで実現することができる。そこで、以下では、特に区別を要しない場合には、インターリーバはデインターリーバの機能を併有するものとして説明する。
【0129】
さて、このような復号装置3における要素復号器について、以下詳細に説明する。なお、以下では、必要に応じて、符号化装置1における各要素符号化器が備えるシフトレジスタの内容を表すM個のステート(遷移状態)をm(0,1,・・・,M−1)で表し、時刻tのステートをStで表す。さらに、1タイムスロットにkビットの情報が入力されるものとすると、時刻tにおける入力をit=(it1,it2,・・・,itk)で表し、入力系統をI1 T=(i1,i2,・・・,iT)で表す。このとき、ステートm’からステートmへの遷移がある場合には、その遷移に対応する情報ビットをi(m’,m)=(i1(m’,m),i2(m’,m),・・・,ik(m’,m))で表す。さらにまた、1タイムスロットにnビットの符号が出力されるものとすると、時刻tにおける出力をxt=(xt1,xt2,・・・,xtn)で表し、出力系統をX1 T=(x1,x2,・・・,xT)で表す。このとき、ステートm’からステートmへの遷移がある場合には、その遷移に対応する符号ビットをx(m’,m)=(x1(m’,m),x2(m’,m),・・・,xn(m’,m))で表す。また、無記憶通信路2は、X1 Tを入力とし、Y1 Tを出力するものとする。ここで、1タイムスロットにnビットの受信値が出力されるものとすると、時刻tにおける出力をyt=(yt1,yt2,・・・,ytn)で表し、Y1 T=(y1,y2,・・・,yT)で表す。
【0130】
2−1 要素復号器の全体構成
ここでは、要素復号器の全体構成について、図6乃至図8を用いて説明する。
【0131】
図6に概略を示す要素復号器50は、大規模集積回路(Large‐Scale Integrated circuit;以下、LSIと記す。)として各部を単一半導体基板に集積させ、1チップとして構成される。要素復号器50は、各部を制御する制御回路60と、復号する受信値を選択する復号受信値選択回路70と、フレームの先頭を検出するエッジ検出回路80と、軟出力復号を行う軟出力復号回路90と、入力したデータの順序を並べ替えるインターリーバ100と、このインターリーバ100が参照する置換先のアドレスデータを保持するアドレス用記憶回路110と、10個のセレクタ1201,1202,1203,1204,1205,1206,1207,1208,1209,12010と、システムの検証のために用いられる信号線130とを備える。
【0132】
ここで、同図に示す要素復号器50の左半分部分の詳細を図7に示し、右半分部分の詳細を図8に示す。
【0133】
制御回路60は、復号受信値選択回路70、軟出力復号回路90、インターリーバ100、アドレス用記憶回路110、及び、9個のセレクタ1202,1203,1204,1205,1206,1207,1208,1209,12010に対して、それぞれ、各種情報を生成して供給するとともに、アドレス用記憶回路110からの情報を受け取り、各部の動作を制御する。
【0134】
具体的には、制御回路60は、復号受信値選択回路70に対して、受信値R(受信値TR)のうち、復号すべき受信値である復号受信値TSRを選択させるための受信値選択情報CRSを生成して供給する。
【0135】
また、制御回路60は、軟出力復号回路90に対して、受信値Rとして入力されるデータが、実際には受信値又は外部情報のいずれであるのか、さらには、符号化装置1がTTCMやSCTCMによる符号化を行うものであった場合におけるI/Q値であるのか、といった受信値Rの形式を示す受信値形式情報CRTYと、事前確率情報がビット単位で入力されるのかシンボル単位で入力されるのか、といった事前確率情報の形式を示す事前確率情報形式情報CAPPと、符号化装置1における要素符号化器の符号化率を示す符号化率情報CRATと、符号化装置1における要素符号化器の生成行列を示す生成行列情報CGと、符号化装置1がTTCMやSCTCMによる符号化を行うものであった場合における信号点の配置を示す信号点配置情報CSIGとを生成して供給する。
【0136】
さらに、制御回路60は、インターリーバ100に対して、いかなるインターリーブを行うかの種別を示すインターリーバタイプ情報CINTと、インターリーブ長を示すインターリーブ長情報CINLと、後述するように複数シンボル間で順序を相互に置換するための入出力置換情報といった当該インターリーバ100の処理内容に関するインターリーバ入出力置換情報CIPTと、符号の終結位置を示す終結位置情報CNFTと、符号の終結期間を示す終結期間情報CNFLと、符号の終結ステートを示す終結ステート情報CNFDと、符号がパンクチャされている場合におけるパンクチャ周期を示すパンクチャ周期情報CNELと、パンクチャパターンを示すパンクチャパターン情報CNEPとを生成して供給する。また、制御回路60は、インターリーバ100に対して、後述する動作モードを示す動作モード情報CBFを生成して供給する。
【0137】
さらにまた、制御回路60は、アドレス用記憶回路110にインターリーバ100が参照する置換先のアドレスデータを書き込む場合には、このアドレス用記憶回路110対して、インターリーバタイプ情報CINTと、アドレス用記憶回路110のアドレスを示すアドレスCIADと、インターリーバ100が参照する置換先のアドレスデータである書き込みデータCIWDとを供給する。
【0138】
また、制御回路60は、6個のセレクタ1202,1203,1204,1205,1206,1207に対して、動作モード情報CBFを供給するとともに、3つのセレクタ1208,1209,12010に対して、後述する検証モードであるか否かを示す検証モード情報CTHRを供給する。
【0139】
一方、制御回路60は、アドレス用記憶回路110に保持されているインターリーバ100が参照する置換先のアドレスデータである読み出しアドレスデータADAを入力する。
【0140】
このような制御回路60は、復号受信値選択回路70、軟出力復号回路90、インターリーバ100、及び、セレクタ1202,1203,1204,1205,1206,1207,1208,1209,12010に対して、生成した各種情報を供給し、各部の動作を制御するとともに、アドレス用記憶回路110に対するアドレスデータの書き込み制御・動作等を行う。
【0141】
復号受信値選択回路70は、後述するように、任意の符号の復号を行うために設けられるものであって、制御回路60から供給される受信値選択情報CRSに基づいて、入力された受信値TRのうち、復号受信値TSRを選択する。復号受信値選択回路70は、選択した復号受信値TSRを軟出力復号回路90に供給する。
【0142】
具体的には、復号受信値選択回路70は、例えば受信値TRが6系統の受信値TR0,TR1,TR2,TR3,TR4,TR5からなり、このうち4系統の受信値を復号受信値TSR0,TSR1,TSR2,TSR3として選択するものとすると、例えば図9に示すように、4つのセレクタ71,72,73,74を有するものとして実現することができる。このとき、制御回路60から供給される受信値選択情報CRSは、各セレクタ71,72,73,74に対して個別に与えられ、4系統の受信値選択情報CRS0,CRS1,CRS2,CRS3からなる。
【0143】
すなわち、セレクタ71は、受信値選択情報CRS0に基づいて、受信値TR0,TR1,TR2,TR3,TR4,TR5のうち、所定の受信値を選択し、復号受信値TSR0として軟出力復号回路90に供給する。
【0144】
また、セレクタ72は、受信値選択情報CRS1に基づいて、受信値TR0,TR1,TR2,TR3,TR4,TR5のうち、所定の受信値を選択し、復号受信値TSR1として軟出力復号回路90に供給する。
【0145】
さらに、セレクタ73は、受信値選択情報CRS2に基づいて、受信値TR0,TR1,TR2,TR3,TR4,TR5のうち、所定の受信値を選択し、復号受信値TSR2として軟出力復号回路90に供給する。
【0146】
そして、セレクタ74は、受信値選択情報CRS3に基づいて、受信値TR0,TR1,TR2,TR3,TR4,TR5のうち、所定の受信値を選択し、復号受信値TSR3として軟出力復号回路90に供給する。
【0147】
このように、復号受信値選択回路70は、制御回路60から供給される受信値選択情報CRSに基づいて、復号受信値TSRを選択し、軟出力復号回路90に供給する。
【0148】
エッジ検出回路80は、外部から供給されるインターリーブの開始位置、すなわち、フレームの先頭を示すインターリーブ開始位置信号ILS(インターリーブ開始位置信号TILS)を入力し、入力される受信値TRを構成するフレームの先頭を検出する。エッジ検出回路80は、検出したフレームの先頭を示すエッジ信号TEILSを軟出力復号回路90及びセレクタ1205に供給する。
【0149】
具体的には、エッジ検出回路80は、例えば図10に示すように、レジスタ81と、ANDゲート82とを有するものとして実現することができる。
【0150】
レジスタ81は、例えば1ビットからなるインターリーブ開始位置信号TILSを1クロックだけ保持する。レジスタ81は、保持した遅延インターリーブ開始位置信号TILSDをANDゲート82に供給する。
【0151】
ANDゲート82は、インターリーブ開始位置信号TILSと、レジスタ81から供給される1クロック前のインターリーブ開始位置信号TILSである遅延インターリーブ開始位置信号TILSDを反転したデータとの論理積をとる。ANDゲート82は、得られた論理積をエッジ信号TEILSとして軟出力復号回路90及びセレクタ1205に供給する。
【0152】
すなわち、エッジ検出回路80は、例えば外部から供給されるインターリーブ開始位置信号TILSが“0”から“1”へと切り替わることを検出すればよく、ANDゲート82による論理積をとることによって、受信値TRを構成するフレームの先頭が入力されたことを検出することができる。
【0153】
軟出力復号回路90は、復号受信値選択回路70から供給される復号受信値TSRと、事前確率情報として外部から供給される外部情報又はインターリーブデータEXT(外部情報又はインターリーブデータTEXT)とを用いて、Log−BCJRアルゴリズムに基づくMAP復号を行う。
【0154】
このとき、軟出力復号回路90は、制御回路60から供給される受信値形式情報CRTYと、事前確率情報形式情報CAPPと、符号化率情報CRATと、生成行列情報CGと、必要に応じて信号点配置情報CSIGとの他、外部から供給されるパンクチャパターンを示す消去情報ERS(消去情報TERS)及び事前確率情報消去情報EAP(事前確率情報消去情報TEAP)と、符号の終結時刻を示す終結時刻情報TNP(終結時刻情報TTNP)と、終結ステートを示す終結ステート情報TNS(終結ステート情報TTNS)とを用いて、復号処理を行う。
【0155】
軟出力復号回路90は、復号処理の結果得られた軟出力SOL及び外部情報SOEをセレクタ1201に供給する。このとき、軟出力復号回路90は、外部から供給される出力データ選択制御信号ITM(出力データ選択制御信号CITM)に基づいて、情報シンボル又は情報ビットに対する情報と符号シンボル又は符号ビットに対する情報とを選択的に出力する。また、軟出力復号回路90は、硬判定をした場合には、復号値である軟出力を硬判定して得られた復号値硬判定情報SDH及び受信値を硬判定して得られた受信値硬判定情報SRHを外部に出力する。このときも、軟出力復号回路90は、出力データ選択制御信号CITMに基づいて、情報シンボル又は情報ビットに対する情報と符号シンボル又は符号ビットに対する情報とを選択的に出力する。
【0156】
また、軟出力復号回路90は、後述するように、受信値TR、外部情報又はインターリーブデータTEXT、及び、エッジ検出回路80から供給されるエッジ信号TEILSを、それぞれ、遅延させることもできる。この場合、軟出力復号回路90は、受信値TRを遅延させた遅延受信値SDRをセレクタ1203,1206に供給し、外部情報又はインターリーブデータTEXTを遅延させた遅延外部情報SDEXをセレクタ1202に供給し、エッジ信号TEILSを遅延させた遅延エッジ信号SDILSをセレクタ1205に供給する。
【0157】
なお、軟出力復号回路90の詳細については“2−2”において述べる。
【0158】
インターリーバ100は、セレクタ1204から供給されたデータTIIに対して、図示しない符号化装置1におけるインターリーバと同一の置換位置情報に基づいたインターリーブ、若しくは、符号化装置1におけるインターリーバによりインターリーブされたインターリーブデータのビット配列を元のデータのビット配列に戻すようなデインターリーブを施す。このとき、インターリーバ100は、外部から供給されるインターリーブモード信号DIN(インターリーブモード信号CDIN)に基づいて、インターリーバ又はデインターリーバとして機能する。
【0159】
インターリーバ100は、セレクタ1205から供給されるインターリーブ開始位置信号TISを入力すると、アドレス用記憶回路110に対して、アドレスデータIAAを与えてアドレスを指定することによって、当該アドレス用記憶回路110に保持されているアドレスデータを読み出しアドレスデータADAとして読み出し、この読み出しアドレスデータADAに基づいて、インターリーブ又はデインターリーブを行う。このとき、インターリーバ100は、制御回路60から供給されるインターリーバタイプ情報CINTと、インターリーブ長情報CINLと、インターリーバ入出力置換情報CIPTとを用いて、インターリーブ又はデインターリーブを行う。インターリーバ100は、インターリーブ又はデインターリーブして得られたインターリーバ出力データIIOをセレクタ1207に供給する。
【0160】
また、インターリーバ100は、後述するように、セレクタ1203から供給される受信値TR又は遅延受信値SDRのうちのいずれか一方のデータTDIを遅延させることもできる。このとき、インターリーバ100は、制御回路60から供給される動作モード情報CBFに基づいて、データTDIを遅延させる。インターリーバ100は、データTDIを遅延させて得られたインターリーブ長遅延受信値IDOをセレクタ1206に供給する。
【0161】
さらに、インターリーバ100は、後述するように、制御回路60から供給される終結位置情報CNFTと、終結期間情報CNFLと、終結ステート情報CNFDと、パンクチャ周期情報CNELと、パンクチャパターン情報CNEPとに基づいて、当該要素復号器を複数連接した場合において、次段の要素復号器における符号の終結時刻及び終結ステートを示す終結時刻情報IGT及び終結ステート情報IGSと、符号のパンクチャ位置を示す消去位置情報IGE及びインターリーバ無出力位置情報INOとを生成する。これと同時に、インターリーバ100は、セレクタ1205から供給されるインターリーブ開始位置信号TISを遅延させ、遅延インターリーブ開始位置信号IDSを生成する。インターリーバ100は、生成した終結時刻情報IGT、終結ステート情報IGS、消去位置情報IGE、インターリーバ無出力位置情報INO、及び、遅延インターリーブ開始位置信号IDSを、生成次段情報として、フレームの先頭に同期させ、セレクタ12010に供給する。
【0162】
なお、インターリーバ100の詳細については“2−3”において述べる。
【0163】
アドレス用記憶回路110は、図示しないが、例えば、複数バンクのRAM(Random Access Memory)や選択回路等を有し、インターリーバ100によるインターリーブ又はデインターリーブの際に参照されるデータの置換位置情報をアドレスデータとして保持する。このアドレス用記憶回路110に保持されているアドレスデータは、インターリーバ100により当該アドレス用記憶回路110のアドレスがアドレスデータIAAとして指定されることによって、読み出しアドレスデータADAとして読み出される。また、アドレス用記憶回路110に対するアドレスデータの書き込みは、制御回路60により行われ、当該アドレス用記憶回路110のアドレスがアドレスCIADとして指定されることによって、アドレスデータが書き込みデータCIWDとして書き込まれる。このようにすることによって、アドレス用記憶回路110には、任意のインターリーブのパターンを書き込むことができる。なお、アドレス用記憶回路110は、インターリーバ100の内部に備えるようにしてもよい。すなわち、要素復号器50は、インターリーバ100とアドレス用記憶回路110との両者を以て、インターリーブ処理又はデインターリーブ処理を行う。
【0164】
セレクタ1201は、出力データ選択制御信号CITMに基づいて、軟出力復号回路90から供給される軟出力SOLと外部情報SOEとのうち、いずれか一方を選択し、データTLXとしてセレクタ1202に供給する。すなわち、セレクタ1201は、軟出力復号回路90が、繰り返し復号における過程で外部情報を出力すべきものであるのか、或いは、最終結果としての軟出力を出力すべきものであるのかを、決定するために設けられるものである。
【0165】
セレクタ1202は、動作モード情報CBFに基づいて、軟出力復号回路90から供給される遅延外部情報SDEXと、セレクタ1201から供給されるデータTLXとのうち、いずれか一方を選択し、データTDLXとして、セレクタ1204,1207に供給する。
【0166】
ここで、要素復号器50の動作モードについて説明する。要素復号器50は、例えば6つの動作モードを有する。第1には、軟出力復号回路90及びインターリーバ100が、それぞれ、通常の軟出力復号処理及びインターリーブ処理を行うモードである。第2には、軟出力復号回路90のみが通常の軟出力復号処理を行うモードである。第3には、インターリーバ100のみが通常のインターリーブ処理を行うモードである。第4には、軟出力復号回路90及びインターリーバ100が、それぞれ、通常の軟出力復号処理及びインターリーブ処理を行わずに、遅延回路として機能するモードである。第5には、軟出力復号回路90のみが通常の軟出力復号処理を行わずに、遅延回路として機能するモードである。第6には、インターリーバ100のみが通常のインターリーブ処理を行わずに、遅延回路として機能するモードである。これらの動作モードは、制御回路60により決定され、動作モード情報CBFとして各部に供給される。以下では、必要に応じて、第1のモード乃至第3のモードを通常モードと総称し、第4のモード乃至第6のモードを遅延モードと総称する。
【0167】
具体的には、セレクタ1202は、動作モード情報CBFが、軟出力復号回路90が要する処理時間と同時間の遅延、インターリーバ100が要する処理時間と同時間の遅延、又は、軟出力復号回路90及びインターリーバ100が要する処理時間と同時間の遅延のいずれかを行うべき遅延モードを示すものであった場合には、遅延外部情報SDEXを選択して出力し、動作モード情報CBFが、軟出力復号回路90及び/又はインターリーバ100による遅延を行わず、軟出力復号回路90及び/又はインターリーバ100による処理を行う通常モードを示すものであった場合には、データTLXを選択して出力する。すなわち、セレクタ1202は、要素復号器50の動作モードが遅延モードであるのか、或いは、通常モードであるのかを、決定するために設けられるものであり、各動作モードに応じて、出力するデータを選択する。
【0168】
セレクタ1203は、動作モード情報CBFに基づいて、受信値TRと、軟出力復号回路90から供給される遅延受信値SDRとのうち、いずれか一方を選択し、データTDIとしてインターリーバ100に供給する。具体的には、セレクタ1203は、動作モード情報CBFが、インターリーバ100による処理のみを行う通常モード、又は、インターリーバ100が要する処理時間と同時間の遅延を行うべき遅延モードを示すものであった場合には、受信値TRを選択して出力し、動作モード情報CBFが、それ以外の通常モード又は遅延モードを示すものであった場合には、遅延受信値SDRを選択して出力する。すなわち、セレクタ1203は、インターリーバ100に入力されるデータとして、軟出力復号回路90による軟出力復号処理又は軟出力復号回路90が要する処理時間と同時間の遅延を行ったものを用いるか否かを決定するために設けられるものであり、各動作モードに応じて、出力するデータを選択する。
【0169】
セレクタ1204は、動作モード情報CBFに基づいて、外部情報又はインターリーブデータTEXTと、セレクタ1202から供給されるデータTDLXとのうち、いずれか一方を選択し、データTIIとしてインターリーバ100に供給する。具体的には、セレクタ1204は、動作モード情報CBFが、インターリーバ100による処理のみを行う通常モード、又は、インターリーバ100が要する処理時間と同時間の遅延を行うべき遅延モードを示すものであった場合には、外部情報又はインターリーブデータTEXTを選択して出力し、動作モード情報CBFが、それ以外の通常モード又は遅延モードを示すものであった場合には、データTDLXを選択して出力する。すなわち、セレクタ1204は、インターリーバ100に入力されるデータとして、軟出力復号回路90による軟出力復号処理又は軟出力復号回路90が要する処理時間と同時間の遅延を行ったものを用いるか否かを決定するために設けられるものであり、各動作モードに応じて、出力するデータを選択する。
【0170】
セレクタ1205は、動作モード情報CBFに基づいて、エッジ検出回路80から供給されるエッジ信号TEILSと、軟出力復号回路90から供給される遅延エッジ信号SDILSとのうち、いずれか一方を選択し、インターリーブ開始位置信号TISとしてインターリーバ100に供給する。具体的には、セレクタ1205は、動作モード情報CBFが、インターリーバ100による処理のみを行う通常モード、又は、インターリーバ100が要する処理時間と同時間の遅延を行うべき遅延モードを示すものであった場合には、エッジ信号TEILSを選択して出力し、動作モード情報CBFが、それ以外の通常モード又は遅延モードを示すものであった場合には、遅延エッジ信号SDILSを選択して出力する。すなわち、セレクタ1205は、インターリーバ100に入力されるデータとして、軟出力復号回路90による軟出力復号処理又は軟出力復号回路90が要する処理時間と同時間の遅延を行ったものを用いるか否かを決定するために設けられるものであり、各動作モードに応じて、出力するデータを選択する。
【0171】
セレクタ1206は、動作モード情報CBFに基づいて、軟出力復号回路90から供給される遅延受信値SDRと、インターリーバ100から供給されるインターリーブ長遅延受信値IDOとのうち、いずれか一方を選択し、遅延受信値TDRとしてセレクタ1208に供給する。具体的には、セレクタ1206は、動作モード情報CBFが、軟出力復号回路90による処理のみを行う通常モード、又は、軟出力復号回路90が要する処理時間と同時間の遅延を行うべき遅延モードを示すものであった場合には、遅延受信値SDRを選択して出力し、それ以外の通常モード又は遅延モードを示すものであった場合には、インターリーブ長遅延受信値IDOを選択して出力する。すなわち、セレクタ1206は、出力すべきデータとして、インターリーバ100によるインターリーブ処理又はインターリーバ100が要する処理時間と同時間の遅延を行ったものを用いるか否かを決定するために設けられるものであり、各動作モードに応じて、出力するデータを選択する。
【0172】
セレクタ1207は、動作モード情報CBFに基づいて、インターリーバ100から供給されるインターリーバ出力データIIOと、セレクタ1202から供給されるデータTDLXとのうち、いずれか一方を選択し、軟出力TSOとしてセレクタ1209に供給する。具体的には、セレクタ1207は、動作モード情報CBFが、軟出力復号回路90による処理のみを行う通常モード、又は、軟出力復号回路90が要する処理時間と同時間の遅延を行うべき遅延モードを示すものであった場合には、データTDLXを選択して出力し、それ以外の通常モード又は遅延モードを示すものであった場合には、インターリーバ出力データIIOを選択して出力する。すなわち、セレクタ1207は、出力すべきデータとして、インターリーバ100によるインターリーブ処理又はインターリーバ100が要する処理時間と同時間の遅延を行ったものを用いるか否かを決定するために設けられるものであり、各動作モードに応じて、出力するデータを選択する。
【0173】
セレクタ1208は、検証モード情報CTHRに基づいて、セレクタ1206から供給される遅延受信値TDRと、信号線130により伝送されてくるスルー信号とのうち、いずれか一方を選択し、遅延受信値TRNとして外部に出力する。なお、遅延受信値TRNは、遅延受信値RNとして出力される。すなわち、セレクタ1208は、次段の要素復号器に対する遅延受信値を出力するのか、システムの検証を行うのかを、決定するために設けられるものである。
【0174】
セレクタ1209は、検証モード情報CTHRに基づいて、セレクタ1207から供給される軟出力TSOと、信号線130により伝送されてくるスルー信号とのうち、いずれか一方を選択し、軟出力TINTとして外部に出力する。なお、この軟出力TINTは、軟出力INTとして出力される。すなわち、セレクタ1209は、次段の要素復号器に対する軟出力を出力するのか、システムの検証を行うのかを、決定するために設けられるものである。
【0175】
セレクタ12010は、検証モード情報CTHRに基づいて、インターリーバ100から供給される終結時刻情報IGT及び終結ステート情報IGSと、消去位置情報IGE及びインターリーバ無出力位置情報INOと、遅延インターリーブ開始位置信号IDSとからなる生成次段情報と、信号線130により伝送されてくるスルー信号とのうち、いずれか一方を選択し、次段終結時刻情報TTNPN及び次段終結ステート情報TTNSNと、次段消去位置情報TERSN及び次段事前確率情報消去情報TEAPNと、次段インターリーブ開始位置信号TILSNとして外部に出力する。なお、これらの次段終結時刻情報TTNPN、次段終結ステート情報TTNSN、次段消去位置情報TERSN、次段事前確率情報消去情報TEAPN、及び、次段インターリーブ開始位置信号TILSNは、それぞれ、次段終結時刻情報TNPN、次段終結ステート情報TNSN、次段消去位置情報ERSN、次段事前確率情報消去情報EAPN、及び、次段インターリーブ開始位置信号ILSNとして出力される。すなわち、セレクタ12010は、次段の要素復号器に対する次段情報を出力するのか、システムの検証を行うのかを、決定するために設けられるものである。
【0176】
信号線130は、後述するように、主に、複数の要素復号器50を連接することにより上述した復号装置3’,3’’と同様の復号装置3を構成した場合におけるシステムの検証を行うために用いられるものである。信号線130は、受信値TR、外部情報又はインターリーブデータTEXT、消去情報TERS、事前確率情報消去情報TEAP、終結時刻情報TTNP、終結ステート情報TTNS、及び、インターリーブ開始位置信号TILSのそれぞれを伝送するための信号線を束ねて構成され、これらの信号をセレクタ1208,1209,12010に供給する。
【0177】
このような要素復号器50は、例えば、図3中破線部又は図5中破線部に示したように、軟出力復号回路とインターリーバ若しくはデインターリーバとを少なくとも含むモジュールと等価なものである。この要素復号器50は、複数連接されることによって、PCCC、SCCC、TTCM又はSCTCMのうち、任意の符号を復号することができる復号装置3を構成することができる。なお、要素復号器50の全体に関する各種特徴については、後述する“4.”においてさらに説明する。
【0178】
以下、軟出力復号回路90及びインターリーバ100についてさらに詳細に説明していく。
【0179】
2−2 軟出力復号回路の詳細
まず、軟出力復号回路90について詳述する。軟出力復号回路90は、図11に概略を示すように、符号化装置1における要素符号化器の符号情報を生成する符号情報生成回路151と、符号化装置1におけるパンクチャパターンを示す内部消去情報を生成する内部消去情報生成回路152と、符号化装置1における終結情報を生成する終結情報生成回路153と、復号処理のために入力されるべき受信値と事前確率情報とを選択するとともに、符号出力が存在しない位置を尤度が“0”のシンボルに置き換える受信値及び事前確率情報選択回路154と、受信データと遅延用のデータとをともに記憶する受信データ及び遅延用記憶回路155と、第1の対数尤度である対数尤度Iγを算出するIγ算出回路156と、符号化装置1に応じて算出した対数尤度Iγを分配するIγ分配回路157と、第2の対数尤度である対数尤度Iαを算出するIα算出回路158と、第3の対数尤度である対数尤度Iβを算出するIβ算出回路159と、算出した対数尤度Iβを記憶するIβ記憶回路160と、対数軟出力Iλを算出する軟出力算出回路161と、受信値と事前確率情報とを分離する受信値又は事前確率情報分離回路162と、外部情報を算出する外部情報算出回路163と、対数軟出力Iλの振幅を調整するとともに所定のダイナミックレンジにクリップ(clip)する振幅調整及びクリップ回路164と、復号値である軟出力及び受信値を硬判定する硬判定回路165とを有する。
【0180】
ここで、同図に示す軟出力復号回路90の左半分部分の詳細を図12に示し、右半分部分の詳細を図13に示す。
【0181】
符号情報生成回路151は、制御回路60から供給される符号化率情報CRATと生成行列情報CGとに基づいて、符号化装置1における要素符号化器の符号情報を生成する。具体的には、符号情報生成回路151は、符号化装置1における要素符号化器の入力ビット数を示す入力ビット数情報INと、符号化装置1における要素符号化器が畳み込み符号化器である場合に、その畳み込み符号化器がいわゆるボーゼンクラフト(Wozencraft)型であるかマッシィ(Massey)型であるかを示す型情報WMと、符号化装置1における要素符号化器のシフトレジスタ、すなわち、ステート(遷移状態)を表すメモリの数を示すメモリ数情報MNと、符号化装置1における要素符号化器の状態遷移図であるトレリスにおいて、各枝に関する時間軸に沿った入出力情報を示す枝入出力情報BIOと、符号化装置1における要素符号化器からの出力が存在しており、対応する受信値が存在していることを表す出力位置の有効性を示す有効出力位置情報PEとを生成する。
【0182】
ここで、ボーゼンクラフト型の畳み込み符号化器とマッシィ型の畳み込み符号化器とについて説明する。
【0183】
ボーゼンクラフト型の畳み込み符号化器は、遅延素子と組み合わせ回路とからなり、遅延素子に対して時系列にデータが保持されるものである。ボーゼンクラフト型の畳み込み符号化器の例としては、例えば図14に示すように、4つのシフトレジスタ2011,2012,2013,2014と、16個の排他的論理和回路2021,2022,2023,2024,2025,2026,2027,2028,2029,20210,20211,20212,20213,20214,20215,20216及び20個のANDゲートG0[0],GB[0],GB[1],GB[2],GB[3],G1[0],G1[1],G1[2],G1[3],G1[4],G2[0],G2[1],G2[2],G2[3],G2[4],G3[0],G3[1],G3[2],G3[3],G3[4]で表される組み合わせ回路とを有し、符号化率が“1/4”の畳み込み演算を行うものがある。なお、この畳み込み符号化器において、ANDゲートG0[0],GB[0],GB[1],GB[2],GB[3],G1[0],G1[1],G1[2],G1[3],G1[4],G2[0],G2[1],G2[2],G2[3],G2[4],G3[0],G3[1],G3[2],G3[3],G3[4]は、符号構成により結線するか否かを示すものであり、全てのANDゲートが用いられるわけではない。すなわち、この畳み込み符号化器は、これらのANDゲートG0[0],GB[0],GB[1],GB[2],GB[3],G1[0],G1[1],G1[2],G1[3],G1[4],G2[0],G2[1],G2[2],G2[3],G2[4],G3[0],G3[1],G3[2],G3[3],G3[4]によって、組み合わせ回路が変化し、符号構成が変化するものであって、ステート数が最大で“24=16”のボーゼンクラフト型の畳み込み演算を行うことができるものである。この畳み込み符号化器の生成行列Gは次式(27)で表される。次式(27)において、GB(D),G1(D),G2(D),G3(D)は、それぞれ、次式(28)乃至次式(31)で表される。
【0184】
【数27】
【0185】
【数28】
【0186】
【数29】
【0187】
【数30】
【0188】
【数31】
【0189】
また、ボーゼンクラフト型の畳み込み符号化器の例としては、例えば図15に示すように、3つのシフトレジスタ2031,2032,2033と、12個の排他的論理和回路2041,2042,2043,2044,2045,2046,2047,2048,2049,20410,20411,20412及び15個のANDゲートG1[0],G1[1],G1[2],G1[3],G1[4],G2[0],G2[1],G2[2],G2[3],G2[4],G3[0],G3[1],G3[2],G3[3],G3[4]で表される組み合わせ回路とを有し、符号化率が“2/3”の畳み込み演算を行うものがある。なお、この畳み込み符号化器においても、ANDゲートG1[0],G1[1],G1[2],G1[3],G1[4],G2[0],G2[1],G2[2],G2[3],G2[4],G3[0],G3[1],G3[2],G3[3],G3[4]は、符号構成により結線するか否かを示すものであり、全てのANDゲートが用いられるわけではなく、組み合わせ回路が変化し、符号構成が変化するものであって、ステート数が最大で“23=8”のボーゼンクラフト型の畳み込み演算を行うことができるものである。この畳み込み符号化器の生成行列Gは次式(32)で表される。次式(32)において、G11(D),G21(D),G31(D),G12(D),G22(D),G32(D)は、それぞれ、次式(33)乃至次式(38)で表される。
【0190】
【数32】
【0191】
【数33】
【0192】
【数34】
【0193】
【数35】
【0194】
【数36】
【0195】
【数37】
【0196】
【数38】
【0197】
一方、マッシィ型の畳み込み符号化器は、遅延素子と組み合わせ回路とからなり、入力ビットのいずれかが組織成分としてそのまま出力される構成とされるものであり、遅延素子に対して時系列にデータが保持されないものである。マッシィ型の畳み込み符号化器の例としては、例えば図16に示すように、3つのシフトレジスタ2051,2052,2053と、4つの排他的論理和回路2061,2062,2063,2064及び11個のANDゲートGB[0],GB[1],GB[2],G1[0],G1[1],G1[2],G1[3],G2[0],G2[1],G2[2],G2[3]で表される組み合わせ回路とを有し、符号化率が“2/3”の畳み込み演算を行うものがある。なお、この畳み込み符号化器においても、ANDゲートGB[0],GB[1],GB[2],G1[0],G1[1],G1[2],G1[3],G2[0],G2[1],G2[2],G2[3]は、符号構成により結線するか否かを示すものであり、全てのANDゲートが用いられるわけではなく、組み合わせ回路が変化し、符号構成が変化するものであって、ステート数が最大で“23=8”のマッシィ型の畳み込み演算を行うことができるものである。この畳み込み符号化器の生成行列Gは次式(39)で表される。次式(39)において、GB(D),G1(D),G2(D)は、それぞれ、次式(40)乃至次式(42)で表される。
【0198】
【数39】
【0199】
【数40】
【0200】
【数41】
【0201】
【数42】
【0202】
また、マッシィ型の畳み込み符号化器の例としては、例えば図17に示すように、2つのシフトレジスタ2071,2072と、3つの排他的論理和回路2081,2082,2083及び11個のANDゲートGB[0],GB[1],G1[0],G1[1],G1[2],G2[0],G2[1],G2[2],G3[0],G3[1],G3[2]で表される組み合わせ回路とを有し、符号化率が“3/3”の畳み込み演算を行うものがある。なお、この畳み込み符号化器においても、ANDゲートGB[0],GB[1],G1[0],G1[1],G1[2],G2[0],G2[1],G2[2],G3[0],G3[1],G3[2]は、符号構成により結線するか否かを示すものであり、全てのANDゲートが用いられるわけではなく、組み合わせ回路が変化し、符号構成が変化するものであって、ステート数が最大で“22=4”のマッシィ型の畳み込み演算を行うことができるものである。この畳み込み符号化器の生成行列Gは次式(43)で表される。次式(43)において、GB(D),G1(D),G2(D),G3(D)は、それぞれ、次式(44)乃至次式(47)で表される。
【0203】
【数43】
【0204】
【数44】
【0205】
【数45】
【0206】
【数46】
【0207】
【数47】
【0208】
ここで、符号情報生成回路151により生成される情報について具体的に説明するために、各畳み込み符号化器の具体例を示す。
【0209】
まず、図14に示したボーゼンクラフト型の畳み込み符号化器としては、15個のANDゲートG0[0],GB[2],GB[3],G1[0],G1[1],G1[3],G1[4],G2[0],G2[2],G2[4],G3[0],G3[1],G3[2],G3[3],G3[4]を結線すると、図18に示すように、4つのシフトレジスタ2011,2012,2013,2014と、11個の排他的論理和回路2021,2024,2025,2027,2028,20210,20212,20213,20214,20215,20216とを有するものが考えられる。この畳み込み符号化器は、1ビットの入力データi0を入力すると、この入力データi0に対して畳み込み演算を行い、演算結果を4ビットの出力データO0,O1,O2,O3として出力する。
【0210】
この畳み込み符号化器におけるトレリスを記述すると、図19に示すようになる。同図において、各枝に付されたラベルは枝番号を示している。この枝番号に対する遷移前後のステートと入力データ/出力データとの関係は、次表1に示すようになる。ここでは、ステートは、シフトレジスタ2014、シフトレジスタ2013、シフトレジスタ2012及びシフトレジスタ2011の内容を順次並べたものであり、“0000”、“0001”、“0010”、“0011”、“0100”、“0101”、“0110”、“0111”、“1000”、“1001”、“1010”、“1011”、“1100”、“1101”、“1110”、“1111”のステート番号を、それぞれ、“0”、“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”、“10”、“11”、“12”、“13”、“14”、“15”と表している。また、入力データ/出力データは、i0/O3,O2,O1,O0である。
【0211】
【表1】
【0212】
このように、図18に示す畳み込み符号化器におけるステート数は16となり、トレリスは、各ステートから次時刻におけるステートへと2本のパスが到達する構造であり、全32本の枝を有する構造を有するものとなる。
【0213】
符号情報生成部151は、この畳み込み符号化器の場合、入力ビット数情報INとして“1ビット”を、型情報WMとして“ボーゼンクラフト型”を、メモリ数情報MNとして“4”を、枝入出力情報BIOとして表1に示すような各枝の入出力パターンを生成する。
【0214】
また、図15に示したボーゼンクラフト型の畳み込み符号化器としては、9個のANDゲートG1[2],G1[3],G2[0],G2[4],G3[0],G3[1],G3[2],G3[3],G3[4]を結線すると、図20に示すように、3つのシフトレジスタ2031,2032,2033と、6個の排他的論理和回路2045,2046,2049,20410,20411,20412とを有するものが考えられる。この畳み込み符号化器は、2ビットの入力データi0,i1を入力すると、これらの入力データi0,i1に対して畳み込み演算を行い、演算結果を3ビットの出力データO0,O1,O2として出力する。
【0215】
この畳み込み符号化器におけるトレリスを記述すると、図21に示すようになる。同図において、各枝に付されたラベルは枝番号を示している。この枝番号に対する遷移前後のステートと入力データ/出力データとの関係は、次表2に示すようになる。ここでは、ステートは、シフトレジスタ2033、シフトレジスタ2032及びシフトレジスタ2031の内容を順次並べたものであり、“000”、“001”、“010”、“011”、“100”、“101”、“110”、“111”のステート番号を、それぞれ、“0”、“1”、“2”、“3”、“4”、“5”、“6”、“7”と表している。また、入力データ/出力データは、i1,i0/O2,O1,O0である。
【0216】
【表2】
【0217】
このように、図20に示す畳み込み符号化器におけるステート数は8となり、トレリスは、各ステートから次時刻におけるステートへと4本のパスが到達する構造であり、全32本の枝を有するものとなる。
【0218】
符号情報生成部151は、この畳み込み符号化器の場合、入力ビット数情報INとして“2ビット”を、型情報WMとして“ボーゼンクラフト型”を、メモリ数情報MNとして“3”を、枝入出力情報BIOとして表2に示すような各枝の入出力パターンを生成する。
【0219】
さらに、図16に示したマッシィ型の畳み込み符号化器としては、3つのANDゲートGB[2],G1[2],G2[1]を結線すると、図22に示すように、3つのシフトレジスタ2051,2052,2053と、2つの排他的論理和回路2062,2063とを有するものが考えられる。この畳み込み符号化器は、2ビットの入力データi0,i1を入力すると、これらの入力データi0,i1に対して再帰的組織畳み込み演算を行い、演算結果を3ビットの出力データO0,O1,O2として出力する。
【0220】
この畳み込み符号化器におけるトレリスを記述すると、図23に示すようになる。同図において、各枝に付されたラベルは枝番号を示している。この枝番号に対する遷移前後のステートと入力データ/出力データとの関係は、次表3に示すようになる。ここでは、ステートは、シフトレジスタ2051、シフトレジスタ2052及びシフトレジスタ2053の内容を順次並べたものであり、“000”、“001”、“010”、“011”、“100”、“101”、“110”、“111”のステート番号を、それぞれ、“0”、“1”、“2”、“3”、“4”、“5”、“6”、“7”と表している。また、入力データ/出力データは、i1,i0/O2,O1,O0である。
【0221】
【表3】
【0222】
このように、図22に示す畳み込み符号化器におけるステート数は8となり、トレリスは、各ステートから次時刻におけるステートへと4本のパスが到達する構造であり、全32本の枝を有するものとなる。
【0223】
符号情報生成部151は、この畳み込み符号化器の場合、入力ビット数情報INとして“2ビット”を、型情報WMとして“マッシィ型”を、メモリ数情報MNとして“3”を、枝入出力情報BIOとして表3に示すような各枝の入出力パターンを生成する。
【0224】
さらにまた、図17に示したマッシィ型の畳み込み符号化器としては、6個のANDゲートGB[1],G1[0],G1[1],G1[2],G2[0],G3[0]を結線すると、図24に示すように、2つのシフトレジスタ2071,2072と、3つの排他的論理和回路2081,2082,2083とを有するものが考えられる。この畳み込み符号化器は、3ビットの入力データi0,i1,i2を入力すると、これらの入力データi0,i1,i2に対して再帰的組織畳み込み演算を行い、演算結果を3ビットの出力データO0,O1,O2として出力する。
【0225】
この畳み込み符号化器におけるトレリスを記述すると、図25に示すようになる。同図において、各枝に付されたラベルは枝番号を示している。この枝番号に対する遷移前後のステートと入力データ/出力データとの関係は、次表4に示すようになる。ここでは、ステートは、シフトレジスタ2071及びシフトレジスタ2072の内容を順次並べたものであり、“00”、“01”、“10”、“11”のステート番号を、それぞれ、“0”、“1”、“2”、“3”と表している。また、入力データ/出力データは、i2,i1,i0/O2,O1,O0である。
【0226】
【表4】
【0227】
このように、図24に示す畳み込み符号化器におけるステート数は4となり、トレリスは、各ステートから次時刻におけるステートへと4組のパラレルパスが到達する構造であり、全32本の枝を有するものとなる。
【0228】
符号情報生成部151は、この畳み込み符号化器の場合、入力ビット数情報INとして“3ビット”を、型情報WMとして“マッシィ型”を、メモリ数情報MNとして“2”を、枝入出力情報BIOとして表4に示すような各枝の入出力パターンを生成する。
【0229】
このように、符号情報生成回路151は、符号化装置1における要素符号化器に応じた符号情報を生成する。特に、符号情報生成回路151は、符号に応じたトレリス上の全ての枝の入出力パターンを算出し、枝入出力情報BIOを生成するが、これについては、さらに後述する。符号情報生成回路151は、生成した入力ビット数情報INを、終結情報生成回路153、受信値及び事前確率情報154、Iγ算出回路156、Iγ分配回路157、Iα算出回路158、Iβ算出回路159、軟出力算出回路161、受信値又は事前確率情報分離回路162、及び、硬判定回路165に供給する。また、符号情報生成回路151は、生成した型情報WMを、Iγ算出回路156、Iγ分配回路157、Iα算出回路158及びIβ算出回路159に供給する。さらに、符号情報生成回路151は、生成したメモリ数情報MNを、終結情報生成回路153、Iγ分配回路157、Iα算出回路158、Iβ算出回路159、及び、軟出力算出回路161に供給する。さらにまた、符号情報生成回路151は、生成した枝入出力情報BIOを、Iγ分配回路157及び軟出力算出回路161に供給する。また、符号情報生成回路151は、生成した有効出力位置情報PEを内部消去情報生成回路152に供給する。
【0230】
内部消去情報生成回路152は、外部から供給される消去情報TERSと、符号情報生成回路151から供給される有効出力位置情報PEとに基づいて、パンクチャパターンと有効出力位置とを総括的に考慮して得られる符号出力が存在しない位置を示す内部消去位置情報IERSを生成する。
【0231】
具体的には、内部消去情報生成回路152は、例えば図26に示すように、4つのORゲート2111,2112,2113,2114を有するものとして実現することができる。
【0232】
ORゲート2111,2112,2113,2114は、それぞれ、消去情報TERSと、符号情報生成回路151から供給される有効出力位置情報PEを反転したデータとの論理和をとる。ORゲート2111,2112,2113,2114は、それぞれ、得られた論理和を内部消去位置情報IERSとして受信値及び事前確率情報選択回路154に供給する。
【0233】
このように、内部消去情報生成回路152は、ORゲート2111,2112,2113,2114による論理和をとることによって、符号出力が存在しない位置を示す内部消去位置情報IERSを生成する。
【0234】
終結情報生成回路153は、外部から供給される終結時刻情報TTNP及び終結ステート情報TTNSと、符号情報生成回路151から供給される入力ビット数情報IN及びメモリ数情報MNとに基づいて、符号化装置1における終結情報を生成する。具体的には、終結情報生成回路153は、終結時刻情報TTNP、終結ステート情報TTNS、入力ビット数情報IN及びメモリ数情報MNに基づいて、符号化装置1における終結時刻を示す終結時刻情報TPM及び終結ステートを示す終結ステート情報TSMを生成する。
【0235】
終結情報生成回路153は、例えば図27に示すように、複数のレジスタ2121,2122,2123,2124,2125,2126と、複数のセレクタ2131,2132,2133,2134,2135,2136,2137,2138,2139と、ANDゲート214とを有するものとして実現することができる。
【0236】
レジスタ2121は、外部から供給される終結時刻情報TTNPを1クロックだけ保持し、保持した終結時刻情報TTNPをレジスタ2122及びセレクタ2133に供給する。
【0237】
レジスタ2122は、レジスタ2121から供給される終結時刻情報TTNPを1クロックだけ保持し、保持した終結時刻情報TTNPをレジスタ2123及びセレクタ2134に供給する。
【0238】
レジスタ2123は、レジスタ2122から供給される終結時刻情報TTNPを1クロックだけ保持し、保持した終結時刻情報TTNPをセレクタ2135に供給する。
【0239】
レジスタ2124は、外部から供給される終結ステート情報TTNSを1クロックだけ保持し、保持した終結ステート情報TTNSをレジスタ2125及びセレクタ2136に供給する。
【0240】
レジスタ2125は、レジスタ2124から供給される終結ステート情報TTNSを1クロックだけ保持し、保持した終結ステート情報TTNSをレジスタ2126及びセレクタ2137に供給する。
【0241】
レジスタ2126は、レジスタ2125から供給される終結ステート情報TTNSを1クロックだけ保持し、保持した終結ステート情報TTNSをセレクタ2138に供給する。
【0242】
セレクタ2131は、入力ビット数情報INに基づいて、メモリ数情報MNのうち、例えば、符号化装置1における要素符号化器のメモリ数が“1”であることを示す情報と、メモリ数が“2”であることを示す情報とのうち、いずれか一方を選択する。具体的には、セレクタ2131は、例えば、符号化装置1における入力ビット数が“1”である場合には、メモリ数が“1”であることを示す情報を選択する。セレクタ2131は、選択したデータを選択用の制御信号としてセレクタ2133に供給する。
【0243】
セレクタ2132は、入力ビット数情報INに基づいて、メモリ数情報MNのうち、例えば、符号化装置1における要素符号化器のメモリ数が“2”であることを示す情報と、メモリ数が“3”であることを示す情報とのうち、いずれか一方を選択する。具体的には、セレクタ2132は、例えば、符号化装置1における入力ビット数が“1”である場合には、メモリ数が“2”であることを示す情報を選択する。セレクタ2132は、選択したデータを選択用の制御信号としてセレクタ2134に供給する。
【0244】
セレクタ2133は、セレクタ2131により選択されたデータに基づいて、レジスタ2121から供給される終結時刻情報TTNPと値が“1”であるデータとのうち、いずれか一方を選択する。具体的には、セレクタ2133は、符号化装置1における要素符号化器のメモリ数が“1”である場合には、レジスタ2121から供給される終結時刻情報TTNPを選択する。セレクタ2133は、選択したデータをANDゲート214に供給する。
【0245】
セレクタ2134は、セレクタ2132により選択されたデータに基づいて、レジスタ2122から供給される終結時刻情報TTNPと値が“1”であるデータとのうち、いずれか一方を選択する。具体的には、セレクタ2134は、符号化装置1における要素符号化器のメモリ数が“2”である場合には、レジスタ2122から供給される終結時刻情報TTNPを選択する。セレクタ2134は、選択したデータをANDゲート214に供給する。
【0246】
セレクタ2135は、メモリ数情報MNに基づいて、レジスタ2123から供給される終結時刻情報TTNPと値が“1”であるデータとのうち、いずれか一方を選択する。具体的には、セレクタ2135は、符号化装置1における要素符号化器のメモリ数が“3”である場合には、レジスタ2123から供給される終結時刻情報TTNPを選択する。セレクタ2135は、選択したデータをANDゲート214に供給する。
【0247】
セレクタ2136は、メモリ数情報MNに基づいて、レジスタ2124から供給される終結ステート情報TTNSと値が“0”であるデータとのうち、いずれか一方を選択する。具体的には、セレクタ2136は、符号化装置1における要素符号化器のメモリ数が“1”である場合には、レジスタ2124から供給される終結ステート情報TTNSを選択する。セレクタ2136は、選択したデータをセレクタ2138に供給する。
【0248】
セレクタ2137は、メモリ数情報MNに基づいて、レジスタ2125から供給される終結ステート情報TTNSと値が“0”であるデータとのうち、いずれか一方を選択する。具体的には、セレクタ2137は、符号化装置1における要素符号化器のメモリ数が“2”である場合には、レジスタ2125から供給される終結ステート情報TTNSを選択する。セレクタ2137は、選択したデータをセレクタ2138に供給する。
【0249】
セレクタ2138は、メモリ数情報MNに基づいて、レジスタ2126から供給される終結ステート情報TTNSと値が“0”であるデータとのうち、いずれか一方を選択する。具体的には、セレクタ2138は、符号化装置1における要素符号化器のメモリ数が“3”である場合には、レジスタ2126から供給される終結ステート情報TTNSを選択する。セレクタ2138は、選択したデータをセレクタ2138に供給する。
【0250】
セレクタ2139は、入力ビット数情報INに基づいて、外部から供給される終結ステート情報TTNSと、セレクタ2136,2137,2138から供給されるデータとのうち、いずれか一方を選択する。セレクタ2139は、選択したデータを終結ステート情報TSMとして受信データ及び遅延用記憶回路155に供給する。
【0251】
ANDゲート214は、外部から供給される終結時刻情報TTNPと、セレクタ2133,2134,2135から供給されるデータとの論理積をとる。ANDゲート214は、得られた論理積を終結時刻情報TPMとして受信データ及び遅延用記憶回路155に供給する。
【0252】
このような終結情報生成回路153は、メモリ数情報MNに基づいて、終結期間を把握し、この終結期間に応じたデータの選択をセレクタ2133,2134,2135,2136,2137,2138により行うことによって、任意の終結期間の終結情報を生成することができる。特に、終結情報生成回路153は、後述するように、符号化装置1における要素符号化器がボーゼンクラフト型の畳み込み符号化器であった場合には、終結情報として、入力ビット数分の情報を終結期間分だけ生成することによって、終結ステートを明示する。また、終結情報生成回路153は、後述するように、符号化装置1における要素符号化器が例えばマッシィ型といったボーゼンクラフト型の畳み込み符号化器以外のものであった場合には、終結情報として、終結ステートを示す情報を1タイムスロットで生成することによって、終結ステートを1タイムスロットで明示する。
【0253】
受信値及び事前確率情報選択回路154は、後述するように、任意の符号の復号を行うために設けられるものである。受信値及び事前確率情報選択回路154は、制御回路60から供給される受信値形式情報CRTYと、符号情報生成回路151から供給される入力ビット数情報INと、外部から供給される事前確率情報消去情報TEAPと、内部消去情報生成回路152から供給される内部消去位置情報IERSとに基づいて、入力した復号受信値TSRと外部情報又はインターリーブデータTEXTとのうち、軟出力復号を行うために必要な情報を選択する。また、受信値及び事前確率情報選択回路154は、後述するように、内部消去情報生成回路152から供給される内部消去位置情報IERSに基づいて、符号出力が存在しない位置を尤度が“0”のシンボルに置き換える。すなわち、受信値及び事前確率情報選択回路154は、符号出力が存在しない位置に相当するビットが“0”であるか“1”であるかの確率が“1/2”であるものとするような情報を出力する。
【0254】
具体的には、受信値及び事前確率情報選択回路154は、例えば、復号受信値TSRが4系統の復号受信値TSR0,TSR1,TSR2,TSR3からなるとともに、外部情報又はインターリーブデータTEXTが3系統の外部情報又はインターリーブデータTEXT0,TEXT1,TEXT2からなるものとすると、例えば図28に示すように、16個のセレクタ2151,2152,2153,2154,2155,2156,2157,2158,2159,21510,21511,21512,21513,21514,21515,21516とを有するものとして実現することができる。
【0255】
セレクタ2151は、受信値形式情報CRTYに基づいて、復号受信値TSR0と、外部情報又はインターリーブデータTEXT0とのうち、いずれか一方を選択する。具体的には、セレクタ2151は、受信値形式情報CRTYが外部情報を示すものであった場合には、外部情報又はインターリーブデータTEXT0を選択する。セレクタ2151は、選択したデータをセレクタ2158に供給する。
【0256】
セレクタ2152は、受信値形式情報CRTYに基づいて、復号受信値TSR1と、外部情報又はインターリーブデータTEXT1とのうち、いずれか一方を選択する。具体的には、セレクタ2152は、受信値形式情報CRTYが外部情報を示すものであった場合には、外部情報又はインターリーブデータTEXT1を選択する。セレクタ2152は、選択したデータをセレクタ2159に供給する。
【0257】
セレクタ2153は、受信値形式情報CRTYに基づいて、復号受信値TSR2と、外部情報又はインターリーブデータTEXT2とのうち、いずれか一方を選択する。具体的には、セレクタ2153は、受信値形式情報CRTYが外部情報を示すものであった場合には、外部情報又はインターリーブデータTEXT2を選択する。セレクタ2153は、選択したデータをセレクタ21510に供給する。
【0258】
セレクタ2154は、受信値形式情報CRTYに基づいて、外部情報又はインターリーブデータTEXT0と、値が“0”である事前確率情報とのうち、いずれか一方を選択する。具体的には、セレクタ2154は、受信値形式情報CRTYが外部情報を示すものであった場合には、値が“0”である事前確率情報を選択する。セレクタ2154は、選択したデータをセレクタ21512に供給する。
【0259】
セレクタ2155は、受信値形式情報CRTYに基づいて、外部情報又はインターリーブデータTEXT1と、値が“0”である事前確率情報とのうち、いずれか一方を選択する。具体的には、セレクタ2155は、受信値形式情報CRTYが外部情報を示すものであった場合には、値が“0”である事前確率情報を選択する。セレクタ2155は、選択したデータをセレクタ21513に供給する。
【0260】
セレクタ2156は、受信値形式情報CRTYに基づいて、外部情報又はインターリーブデータTEXT2と、値が“0”である事前確率情報とのうち、いずれか一方を選択する。具体的には、セレクタ2156は、受信値形式情報CRTYが外部情報を示すものであった場合には、値が“0”である事前確率情報を選択する。セレクタ2156は、選択したデータをセレクタ21514に供給する。
【0261】
セレクタ2157は、受信値形式情報CRTYに基づいて、内部消去位置情報IERSのうち、例えば、符号化装置1における要素符号化器から出力される出力ビットのうちの1シンボル目が存在しないことを示す情報と、2シンボル目が存在しないことを示す情報とのうち、いずれか一方を選択する。具体的には、セレクタ2157は、符号化装置1がTTCM又はSCTCMによる符号化を行うものでないことを受信値形式情報CRTYが示すものであった場合には、2シンボル目が存在しないことを示す情報を選択する。セレクタ2157は、選択したデータを選択用の制御信号としてセレクタ2159に供給する。なお、このセレクタ2157による選択動作は、符号化装置1がTTCMやSCTCMによる符号化を行うものであった場合における消去動作に起因するものである。すなわち、符号化装置1がTTCMやSCTCMによる符号化を行うものであった場合における消去動作は、同相成分及び直交成分のシンボルをともに消去するものとなるため、セレクタ2157は、2シンボル目が存在しないことを示す情報を選択することになる。
【0262】
セレクタ2158は、内部消去位置情報IERSに基づいて、セレクタ2151から供給されるデータと、値が“0”である情報とのうち、いずれか一方を選択する。具体的には、セレクタ2158は、内部消去位置情報IERSが符号化装置1における要素符号化器から出力される出力ビットのうちの1シンボル目が存在しないことを示すものであった場合には、値が“0”である情報を選択する。セレクタ2158により選択されたデータは、セレクタ2159,21510,21514,21515,21516から供給されるデータとともに束ねられ、選択受信値及び事前確率情報RAPとして受信データ及び遅延用記憶回路155に供給される。
【0263】
セレクタ2159は、セレクタ2157から供給されるデータに基づいて、セレクタ2152から供給されるデータと、値が“0”である情報とのうち、いずれか一方を選択する。具体的には、セレクタ2159は、セレクタ2157から供給されるデータが符号化装置1における要素符号化器から出力される出力ビットのうちの2シンボル目が存在しないことを示すものであった場合には、値が“0”である情報を選択する。セレクタ2159により選択されたデータは、セレクタ2158,21510,21514,21515,21516から供給されるデータとともに束ねられ、選択受信値及び事前確率情報RAPとして受信データ及び遅延用記憶回路155に供給される。
【0264】
セレクタ21510は、内部消去位置情報IERSに基づいて、セレクタ2153から供給されるデータと、値が“0”である情報とのうち、いずれか一方を選択する。具体的には、セレクタ21510は、内部消去位置情報IERSが符号化装置1における要素符号化器から出力される出力ビットのうちの3シンボル目が存在しないことを示すものであった場合には、値が“0”である情報を選択する。セレクタ21510により選択されたデータは、セレクタ2158,2159,21514,21515,21516から供給されるデータとともに束ねられ、選択受信値及び事前確率情報RAPとして受信データ及び遅延用記憶回路155に供給される。
【0265】
セレクタ21511は、内部消去位置情報IERSに基づいて、復号受信値TSR3と、値が“0”である情報とのうち、いずれか一方を選択する。具体的には、セレクタ21511は、内部消去位置情報IERSが符号化装置1における要素符号化器から出力される出力ビットのうちの4シンボル目が存在しないことを示すものであった場合には、値が“0”である情報を選択する。セレクタ21511は、選択したデータをセレクタ21515に供給する。
【0266】
セレクタ21512は、事前確率情報消去情報TEAPに基づいて、セレクタ2154から供給されるデータと、値が“0”である情報とのうち、いずれか一方を選択する。具体的には、セレクタ21512は、事前確率情報消去情報TEAPがパンクチャされていることを示すものであった場合には、値が“0”である情報を選択する。セレクタ21512は、選択したデータをセレクタ21515,21516に供給する。
【0267】
セレクタ21513は、事前確率情報消去情報TEAPに基づいて、セレクタ2155から供給されるデータと、値が“0”である情報とのうち、いずれか一方を選択する。具体的には、セレクタ21513は、事前確率情報消去情報TEAPがパンクチャされていることを示すものであった場合には、値が“0”である情報を選択する。セレクタ21513は、選択したデータをセレクタ21516に供給する。
【0268】
セレクタ21514は、事前確率情報消去情報TEAPに基づいて、セレクタ2156から供給されるデータと、値が“0”である情報とのうち、いずれか一方を選択する。具体的には、セレクタ21514は、事前確率情報消去情報TEAPがパンクチャされていることを示すものであった場合には、値が“0”である情報を選択する。セレクタ21514により選択されたデータは、セレクタ2158,2159,21510,21515,21516から供給されるデータとともに束ねられ、選択受信値及び事前確率情報RAPとして受信データ及び遅延用記憶回路155に供給される。
【0269】
セレクタ21515は、入力ビット数情報INに基づいて、セレクタ21511から供給されるデータと、セレクタ21512から供給されるデータとのうち、いずれか一方を選択する。具体的には、セレクタ21515は、符号化装置1における要素符号化器の符号化率が“1/n”で表され、且つ、入力ビット数が“1”であることを入力ビット数情報INが示すものであった場合には、セレクタ21511から供給されるデータを選択する。セレクタ21515により選択されたデータは、セレクタ2158,2159,21510,21514,21516から供給されるデータとともに束ねられ、選択受信値及び事前確率情報RAPとして受信データ及び遅延用記憶回路155に供給される。
【0270】
セレクタ21516は、入力ビット数情報INに基づいて、セレクタ21512から供給されるデータと、セレクタ21513から供給されるデータとのうち、いずれか一方を選択する。具体的には、セレクタ21516は、符号化装置1における要素符号化器の符号化率が“1/n”で表され、且つ、入力ビット数が“1”であることを入力ビット数情報INが示すものであった場合には、セレクタ21512から供給されるデータを選択する。セレクタ21516により選択されたデータは、セレクタ2158,2159,21510,21514,21515から供給されるデータとともに束ねられ、選択受信値及び事前確率情報RAPとして受信データ及び遅延用記憶回路155に供給される。
【0271】
このような受信値及び事前確率情報選択回路154は、セレクタ2151,2152,2153,2154,2155,2156により復号受信値TSRと外部情報又はインターリーブデータTEXTとを選択することによって、これらの復号受信値TSRと外部情報又はインターリーブデータTEXTとを符号尤度として切り替えることができ、軟出力復号を行うために入力されるべき情報を適切に選択することができる。また、受信値及び事前確率情報選択回路154は、セレクタ2158,2159,21510,21511,21512,21513,21514による選択動作を行うことによって、符号出力が存在しない位置を尤度が“0”のシンボルに置き換えることができる。
【0272】
受信データ及び遅延用記憶回路155は、図示しないが、例えば、複数バンクのRAMと、制御回路と、選択回路とを有する。受信データ及び遅延用記憶回路155は、終結情報生成回路153から供給される終結時刻情報TPM及び終結ステート情報TSMと、受信値及び事前確率情報選択回路154から供給される選択受信値及び事前確率情報RAPとを記憶する。
【0273】
そして、受信データ及び遅延用記憶回路155は、内部の制御回路による制御の下に、記憶した終結時刻情報TPM及び終結ステート情報TSMのうち、所定の情報を選択回路により選択し、Iα算出回路158にて用いる終結情報TAL、Iβ算出回路159にて用いる終結情報TB0,TB1として出力する。終結情報TALは、所定の遅延が施された後、終結情報TALDとしてIα算出回路158に供給される。また、終結情報TB0,TB1は、それぞれ、所定の遅延が施された後、終結情報TB0D,TB1DとしてIβ算出回路159に供給される。
【0274】
また、受信データ及び遅延用記憶回路155は、内部の制御回路による制御の下に、記憶した選択受信値及び事前確率情報RAPのうち、所定の情報を選択回路により選択し、Iα算出回路158にて用いる受信データDA、Iβ算出回路159にて用いる2系統の受信データDB0,DB1として出力する。受信データDAは、Iγ算出回路156に供給されるとともに、所定の遅延が施された後、遅延受信データDADとして受信値又は事前確率情報分離回路162に供給される。また、受信データDB0,DB1は、それぞれ、Iγ算出回路156に供給される。
【0275】
なお、要素復号器50は、連続データを処理する方法として知られるいわゆるスライディングウィンドウ処理を行うが、このスライディングウィンドウ処理を行う際の受信データ及び遅延用記憶回路155及び後述するIβ記憶回路160におけるメモリマネジメントの手法として、本願出願人が既に国際特許出願している国際公開番号WO99/62183号公報に記載されているものを採用している。すなわち、要素復号器50は、簡略的に説明すると、受信データ及び遅延用記憶回路155から、所定の打ち切り長で区切られた受信データを読み出し、Iβ記憶回路160によって、対数尤度Iβを記憶することによって、最終的に対数軟出力Iλが本来の時系列順に求められるようなメモリマネジメントを行う。ただし、要素復号器50は、国際公開番号WO99/62183号公報に記載されているように、対数尤度Iγを算出してからメモリマネジメントを行うのではなく、受信データを受信データ及び遅延用記憶回路155に記憶してから、適切なメモリマネジメントの下に受信データを読み出し、対数尤度Iγを算出している。
【0276】
さらに、受信データ及び遅延用記憶回路155は、後述するように、遅延用のデータを記憶することもできる。すなわち、受信データ及び遅延用記憶回路155は、受信値TRと、エッジ検出回路80から供給されるエッジ信号TEILSとを記憶し、軟出力復号回路90が要する処理時間と同時間だけ遅延させる。受信データ及び遅延用記憶回路155は、受信値TRを遅延させて得られた遅延受信値PDRを、遅延受信値SDRとしてセレクタ1203,1206に供給する。また、受信データ及び遅延用記憶回路155は、エッジ信号TEILSを遅延させて得られた遅延エッジ信号PDILを、遅延エッジ信号SDILSとしてセレクタ1205に供給する。
【0277】
Iγ算出回路156は、受信データ及び遅延用記憶回路155から供給される受信データDA,DB0,DB1を用いて、対数尤度Iγを算出する。具体的には、Iγ算出回路156は、“2.”の冒頭に記載した表記に基づくと、受信値yt毎に、次式(48)に示す演算を行い、各時刻tにおける対数尤度Iγを算出する。なお、次式(48)に示すsgnは、正負を識別する符号を示す定数、すなわち、“+1”又は“−1”のいずれかである。この定数sgnは、要素復号器50が対数尤度として負値のみを扱う系として構成される場合には、“+1”をとり、要素復号器50が対数尤度として正値のみを扱う系として構成される場合には、“−1”をとる。すなわち、Iγ算出回路156は、受信値yt毎に、符号の出力パターンと受信値により決定される確率γを対数表記した対数尤度Iγ又は確率γを対数表記して正負識別符号を反転した対数尤度Iγを算出する。
【0278】
【数48】
【0279】
なお、以下では、必要に応じて、要素復号器50が対数尤度として負値又は正値のみを扱う系として構成される場合における議論を行うものの、特に断りがない場合は、定数sgnが“−1”である場合、すなわち、要素復号器50が対数尤度として正値のみを扱う系として構成され、確率が高いものほど小さい値で表すものとして説明する。
【0280】
このとき、Iγ算出回路156は、制御回路60から供給される受信値形式情報CRTY、事前確率情報形式情報CAPP、及び、符号化装置1がTTCMやSCTCMによる符号化を行うものであった場合には信号点配置情報CSIGと、符号情報生成回路151から供給される入力ビット数情報IN及び型情報WMとに基づいて、対数尤度Iγを算出する。Iγ算出回路156は、算出した対数尤度IγをIγ分配回路157に供給する。すなわち、Iγ算出回路156は、Iα算出回路158にて用いる対数尤度Iγを対数尤度GAとしてIγ分配回路157に供給するとともに、Iβ算出回路159にて用いる対数尤度Iγを対数尤度GB0,GB1としてIγ分配回路157に供給する。
【0281】
このようなIγ算出回路156は、例えば図29に示すように、2系統の対数尤度Iβ0,Iβ1のうち、対数尤度Iβ0を算出するために用いる対数尤度Iγを算出するIβ0用Iγ算出回路2201と、対数尤度Iβ1を算出するために用いる対数尤度Iγを算出するIβ1用Iγ算出回路2202と、対数尤度Iαを算出するために用いる対数尤度Iγを算出するIα用Iγ算出回路2203とを有するものとして実現することができる。ここで、これらのIβ0用Iγ算出回路2201、Iβ1用Iγ算出回路2202及びIα用Iγ算出回路2203は、入力されるデータが異なるのみで同一の構成で実現できることから、ここでは、Iβ0用Iγ算出回路2201のみの説明を行い、Iβ1用Iγ算出回路2202及びIα用Iγ算出回路2203の説明は図示とともに省略する。
【0282】
Iβ0用Iγ算出回路2201は、情報・符号Iγ算出回路221と、Iγ正規化回路222とを有する。
【0283】
情報・符号Iγ算出回路221は、後述するように、受信値及び事前確率情報からなる受信データDB0を入力すると、受信値形式情報CRTY、事前確率情報形式情報CAPP、信号点配置情報CSIG及び入力ビット数情報INに基づいて、あり得る全ての入出力パターン分の対数尤度Iγ又は少なくとも一部の入出力パターン分の対数尤度Iγを算出する。
【0284】
このとき、情報・符号Iγ算出回路221は、符号化装置1がTTCMやSCTCMによる符号化を行うものでない場合には、入力した受信データDB0から、事前確率情報といわゆる通信路値との和を対数尤度Iγとして算出する。
【0285】
また、情報・符号Iγ算出回路221は、符号化装置1がTTCMやSCTCMによる符号化を行うものであった場合には、入力した受信データDB0の内積を算出することによって、対数尤度Iγを算出する。これは、I/Q平面上でのユークリッド距離が対数尤度Iγとなるが、PSK変調方式の場合には、符号化装置からの出力の送信振幅が一定値をとることから、ユークリッド距離を求めることは、内積を求めることと等価となるからである。
【0286】
情報・符号Iγ算出回路221は、算出した対数尤度Iγを、Iγ正規化回路222に供給する。
【0287】
Iγ正規化回路222は、後述するように、情報・符号Iγ算出回路221による演算結果の分布の偏りを是正するための正規化を行う。具体的には、Iγ正規化回路222は、情報・符号Iγ算出回路221により算出された複数の対数尤度Iγのうち、確率が最大値を有するものに対応する対数尤度を、とり得る確率の最大値に対応する対数尤度に合わせるように、各対数尤度に対して所定の演算を施す。すなわち、Iγ正規化回路222は、要素復号器50が対数尤度を負値として扱う場合には、情報・符号Iγ算出回路221により算出された複数の対数尤度Iγのうち、最大値を有するものを、要素復号器50が表現可能な最大値に合わせるように、複数の対数尤度Iγのそれぞれに対して所定の値を加算するような正規化を行う。また、Iγ正規化回路222は、要素復号器50が対数尤度を正値として扱う場合には、情報・符号Iγ算出回路221により算出された複数の対数尤度Iγのうち、最小値を有するものを、要素復号器50が表現可能な最小値に合わせるように、複数の対数尤度Iγのそれぞれから所定の値を減算するような正規化を行う。Iγ正規化回路222は、正規化後の対数尤度Iγを、必要なダイナミックレンジに応じてクリッピングを行い、対数尤度GB0としてIγ分配回路157に供給する。
【0288】
このようなIβ0用Iγ算出回路2201は、対数尤度Iβ0を算出するために用いる対数尤度Iγを算出し、対数尤度GB0としてIγ分配回路157に供給する。
【0289】
また、Iβ1用Iγ算出回路2202は、Iβ0用Iγ算出回路2201に入力される受信データDB0の代わりに、受信データDB1を入力し、Iβ0用Iγ算出回路2201と同様の処理を行う。Iβ1用Iγ算出回路2202は、対数尤度Iβ1を算出するために用いる対数尤度Iγを算出し、対数尤度GB1としてIγ分配回路157に供給する。
【0290】
同様に、Iα用Iγ算出回路2203は、Iβ0用Iγ算出回路2201に入力される受信データDB0の代わりに、受信データDAを入力し、Iβ0用Iγ算出回路2201と同様の処理を行う。Iα用Iγ算出回路2203は、対数尤度Iαを算出するために用いる対数尤度Iγを算出し、対数尤度GAとしてIγ分配回路157に供給する。
【0291】
このようなIγ算出回路156は、受信データDA,DB0,DB1を用いて、対数尤度Iγとして算出した対数尤度GA,GB0,GB1を生成し、これらの対数尤度GA,GB0,GB1をIγ分配回路157に供給する。
【0292】
Iγ分配回路157は、後述するように、Iγ算出回路156から供給される対数尤度GA,GB0,GB1を、それぞれ、符号構成に応じて分配する。すなわち、Iγ分配回路157は、符号構成に応じたトレリス上の枝に対応するように、対数尤度GA,GB0,GB1を分配する。このとき、Iγ分配回路157は、制御回路60から供給される生成行列情報CGと、符号情報生成回路151から供給される入力ビット数情報IN、型情報WM、メモリ数情報MN及び枝入出力情報BIOとに基づいて、対数尤度GA,GB0,GB1を分配する。
【0293】
また、Iγ分配回路157は、後述するように、トレリス上にパラレルパスが存在する符号を復号する際には、これらのパラレルパスを束ねる機能を兼ね備える。
【0294】
Iγ分配回路157は、分配して得られた対数尤度IγをIα算出回路158及びIβ算出回路159に供給する。すなわち、Iγ分配回路157は、Iα算出回路158にて用いる対数尤度Iγを対数尤度DGAとしてIα算出回路158に供給するとともに、Iβ算出回路159にて用いる対数尤度Iγを対数尤度DGB0,DGB1としてIβ算出回路159に供給する。また、Iγ分配回路157は、後述するように、パラレルパスを束ねない状態で得られる対数尤度Iγを対数尤度DGABとしてIα算出回路158に供給する。
【0295】
具体的には、Iγ分配回路157は、例えば図30に示すように、符号構成に応じたトレリス上の枝の入出力情報を算出する枝入出力情報算出回路223と、2系統の対数尤度Iβ0,Iβ1のうち、対数尤度Iβ0を算出するために用いる対数尤度Iγを分配するIβ0用Iγ分配回路2241と、対数尤度Iβ1を算出するために用いる対数尤度Iγを分配するIβ1用Iγ分配回路2242と、対数尤度Iαを算出するために用いる対数尤度Iγを分配するIα用Iγ分配回路2243と、トレリス上にパラレルパスが存在する符号の場合に、対数尤度Iβ0を算出するために用いる当該パラレルパスを処理するIβ0用パラレルパス処理回路2251と、トレリス上にパラレルパスが存在する符号の場合に、対数尤度Iβ1を算出するために用いる当該パラレルパスを処理するIβ1用パラレルパス処理回路2252と、トレリス上にパラレルパスが存在する符号の場合に、対数尤度Iαを算出するために用いる当該パラレルパスを処理するIα用パラレルパス処理回路2253とを有するものとして実現することができる。
【0296】
枝入出力情報算出回路223は、生成行列情報CGと、入力ビット数情報INと、型情報WMと、メモリ数情報MNと、枝入出力情報BIOとに基づいて、符号構成を識別し、当該符号構成に対応するトレリス上の枝の時間軸とは逆順に沿った枝入出力情報を算出する。枝入出力情報算出回路223は、算出した枝入出力情報BIをIβ0用Iγ分配回路2241及びIβ1用Iγ分配回路2242に供給する。
【0297】
Iβ0用Iγ分配回路2241は、対数尤度GB0を入力すると、枝入出力情報BIに基づいて、符号構成に応じた分配を行う。Iβ0用Iγ分配回路2241は、分配して得られた対数尤度PGB0をIβ0用パラレルパス処理回路2251に供給する。
【0298】
Iβ1用Iγ分配回路2242は、対数尤度GB1を入力すると、枝入出力情報BIに基づいて、符号構成に応じた分配を行う。Iβ1用Iγ分配回路2242は、分配して得られた対数尤度PGB1をIβ1用パラレルパス処理回路2252に供給する。
【0299】
Iα用Iγ分配回路2243は、対数尤度GAを入力すると、枝入出力情報BIOに基づいて、符号構成に応じた分配を行う。Iα用Iγ分配回路2243は、分配して得られた対数尤度PGAをIα用パラレルパス処理回路2253に供給する。また、Iα用Iγ分配回路2243は、分配して得られた対数尤度PGAを、対数尤度DGABとしてIα算出回路158に供給する。
【0300】
Iβ0用パラレルパス処理回路2251は、後述するように、対数尤度PGB0を入力すると、この対数尤度PGB0がパラレルパスに対応するものであった場合には、対数尤度PGB0を束ね、対数尤度DGB0、すなわち、対数尤度Iβ0を算出するために用いる対数尤度Iγとして出力する。また、Iβ0用パラレルパス処理回路2251は、入力した対数尤度PGB0がパラレルパスに対応するものでなかった場合には、この対数尤度PGB0を対数尤度DGB0としてそのまま出力する。このとき、Iβ0用パラレルパス処理回路2251は、入力ビット数情報INに基づいて、出力すべき対数尤度DGB0を選択する。
【0301】
具体的には、Iβ0用パラレルパス処理回路2251は、図31に示すように、復号の対象とする符号のステート数のうちの最大値の数のパラレルパス用log−sum演算回路226nと、2対1の選択を行うセレクタ227とを有する。ここでは、Iβ0用パラレルパス処理回路2251は、トレリス上にパラレルパスが存在する符号のうち、最大で32本の枝を有するトレリスで表され且つ最大で4ステートを有する符号、より具体的には、4ステートに対して各ステートに8本のパスが到達するようなパラレルパスがトレリス上に存在する符号の復号を行うものとし、32本の枝を16個の対数尤度Iγに変換するための16個のパラレルパス用log−sum演算回路2261,2262,2263,・・・,22616を有するものとする。
【0302】
パラレルパス用log−sum演算回路2261は、図32に示すように、2つの差分器2291,2292と、3つのセレクタ230,231,233と、これらのセレクタ230,231,233による選択動作を制御するための制御信号を生成する選択用制御信号生成回路232と、いわゆるlog−sum補正における補正項の値をテーブルとして記憶するROM(Read Only Memory)等から構成されるルックアップテーブル234と、加算器235とを有する。これらの各部のうち、差分器2291,2292、セレクタ230,231及び選択用制御信号生成回路232は、比較及び絶対値算出回路228を構成する。
【0303】
比較及び絶対値算出回路228は、入力した2つのデータの大小を比較し、これらの2つのデータの差分値の絶対値を算出する。
【0304】
差分器2291は、32通りの対数尤度Iγの集合である対数尤度PGB0のうち、2つの対数尤度Iγである対数尤度PG00と対数尤度PG01との差分をとる。厳密には、差分器2291は、対数尤度PG00,PG01が、それぞれ、例えば9ビットからなるものとすると、対数尤度PG00の下位6ビットのデータの最上位ビットに“1”を付したものと、対数尤度PG01の下位6ビットのデータの最上位ビットに“0”を付したものとの差分をとる。差分器2291は、算出した差分値DA1をセレクタ230及び選択用制御信号生成回路232に供給する。
【0305】
差分器2292は、対数尤度PG01と対数尤度PG00との差分をとる。厳密には、差分器2292は、対数尤度PG00,PG01が、それぞれ、例えば9ビットからなるものとすると、対数尤度PG01の下位6ビットのデータの最上位ビットに“1”を付したものと、対数尤度PG00の下位6ビットのデータの最上位ビットに“0”を付したものとの差分をとる。差分器2292は、算出した差分値DA0をセレクタ230及び選択用制御信号生成回路232に供給する。
【0306】
セレクタ230は、選択用制御信号生成回路232から供給される制御信号SL1に基づいて、差分器2291から供給される差分値DA1と、差分器2292から供給される差分値DA0とのうち、値が大きいものを選択する。セレクタ230は、選択して得られたデータCAをセレクタ231に供給する。
【0307】
セレクタ231は、選択用制御信号生成回路232から供給される制御信号SL2に基づいて、セレクタ230から供給されるデータCAと、所定の値Mを有するデータとのうち、いずれか一方を選択する。具体的には、データCAとして供給される差分値に対する補正項の値は、所定の値に漸近する性質を有していることから、セレクタ231は、データCAの値が所定の値Mを超過している場合には、所定の値Mを有するデータを選択する。セレクタ231は、選択して得られたデータDMをルックアップテーブル234に供給する。
【0308】
選択用制御信号生成回路232は、対数尤度PG00,PG01と、差分値DA1,DA0とに基づいて、セレクタ230,233による選択動作を制御するための制御信号SL1を生成するとともに、セレクタ231による選択動作を制御するための制御信号SL2を生成する。この際、選択用制御信号生成回路232は、対数尤度PG00,PG01に基づいて、メトリックの上位ビットと下位ビットとを分割して、選択用の判定文を示す制御信号SL1,SL2を生成するが、これについては後述する。
【0309】
このような比較及び絶対値算出回路228は、対数尤度PG00,PG01の差分値の絶対値を算出する。この際、比較及び絶対値算出回路228においては、後述するように、差分器2291に供給されるデータは、対数尤度PG00,PG01が、それぞれ、例えば9ビットからなるものとすると、対数尤度PG00の下位6ビットのデータの最上位ビットに“1”を付したものと、対数尤度PG01の下位6ビットのデータの最上位ビットに“0”を付したものとである。同様に、比較及び絶対値算出回路228においては、差分器2292に供給されるデータは、対数尤度PG00の下位6ビットのデータの最上位ビットに“0”を付したものと、対数尤度PG01の下位6ビットのデータの最上位ビットに“1”を付したものとである。すなわち、差分器2291,2292には、対数尤度PG00,PG01のうちの下位ビットの最上位ビットに“1”又は“0”が付されたデータが供給されるが、これは、対数尤度PG00,PG01の大小比較を高速に行うためであり、また、選択用制御信号生成回路232によって、メトリックの上位ビットと下位ビットとを分割して、選択用の判定文を作成することに関係がある。これについては後述するものとする。
【0310】
セレクタ233は、選択用制御信号生成回路232から供給される制御信号SL1に基づいて、対数尤度PB00,PG01のうち、値が小さいものを選択する。セレクタ233は、選択して得られたデータSPGを加算器235に供給する。
【0311】
ルックアップテーブル234は、log−sum補正における補正項の値をテーブルとして記憶する。ルックアップテーブル234は、セレクタ231から供給されるデータDMの値に対応する補正項の値をテーブルから読み出し、データRDMとして加算器235に供給する。
【0312】
加算器235は、セレクタ233から供給されるデータSPGと、ルックアップテーブル234から供給されるデータRDMとを加算し、対数尤度Iγを算出する。加算器235は、算出した対数尤度Iγを対数尤度PPG00としてセレクタ227に供給する。
【0313】
このようなパラレルパス用log−sum演算回路2261は、パラレルパスに対応する2つの対数尤度PG00,PG01を束ね、対数尤度PPG00としてセレクタ227に供給する。
【0314】
パラレルパス用log−sum演算回路2262は、パラレルパス用log−sum演算回路2261と同様の構成からなり、パラレルパスに対応する2つの対数尤度PG02,PG03を束ね、対数尤度PPG01としてセレクタ227に供給する。
【0315】
また、パラレルパス用log−sum演算回路2263は、パラレルパス用log−sum演算回路2261と同様の構成からなり、パラレルパスに対応する2つの対数尤度PG04,PG05を束ね、対数尤度PPG02としてセレクタ227に供給する。
【0316】
さらに、パラレルパス用log−sum演算回路22616は、パラレルパス用log−sum演算回路2261と同様の構成からなり、パラレルパスに対応する2つの対数尤度PG030,PG031を束ね、対数尤度PPG15としてセレクタ227に供給する。
【0317】
このように、複数のパラレルパス用log−sum演算回路226nは、それぞれ、パラレルパスに対応する2つの対数尤度を束ねる。各パラレルパス用log−sum演算回路226nにより束ねられて得られた対数尤度PPG00,PPG01,PPG02,・・・,PPG15は、対数尤度PPGとしてセレクタ227に供給される。
【0318】
Iβ0用パラレルパス処理回路2251において、セレクタ227は、入力ビット数情報INに基づいて、Iβ0用Iγ分配回路2241から供給される対数尤度PGB0のうち、下位のメトリックに相当するものと、各パラレルパス用log−sum演算回路226nから供給される対数尤度PPGとのうち、いずれか一方を選択する。具体的には、セレクタ227は、符号化装置1における要素符号化器がトレリス上にパラレルパスが存在する符号化を行うものであった場合には、対数尤度PPGを選択する。すなわち、ここでは、セレクタ227による選択動作を制御するための制御信号として、入力ビット数情報INを用いているが、実際には、トレリス上にパラレルパスが存在する符号であるか否かを示す制御信号がセレクタ227に入力される。
【0319】
このようなIβ0用パラレルパス処理回路2251は、対数尤度PGB0を入力すると、この対数尤度PGB0がパラレルパスに対応するものであった場合には、セレクタ227によって、束ねられた対数尤度PPGを選択し、この対数尤度PPGと、対数尤度PGB0のうち、上位のメトリックに相当するものとを併せ、対数尤度DGB0としてIβ算出回路159に供給する。また、Iβ0用パラレルパス処理回路2251は、対数尤度PGB0がパラレルパスに対応するものでなかった場合には、この対数尤度PGB0を対数尤度DGB0としてそのまま出力する。
【0320】
Iβ1用パラレルパス処理回路2252は、Iβ0用パラレルパス処理回路2251と同様の構成からなるため、詳細な説明は省略するが、対数尤度PGB1を入力すると、この対数尤度PGB1がパラレルパスに対応するものであった場合には、対数尤度PGB1を束ね、対数尤度DGB1、すなわち、対数尤度Iβ1を算出するために用いる対数尤度IγとしてIβ算出回路159に供給する。また、Iβ1用パラレルパス処理回路2252は、入力した対数尤度PGB1がパラレルパスに対応するものでなかった場合には、この対数尤度PGB1を対数尤度DGB1としてそのままIβ算出回路159に供給する。
【0321】
また、Iα用パラレルパス処理回路2253も、Iβ0用パラレルパス処理回路2251と同様の構成からなるため、詳細な説明は省略するが、対数尤度PGAを入力すると、この対数尤度PGAがパラレルパスに対応するものであった場合には、対数尤度PGAを束ね、対数尤度DGA、すなわち、対数尤度Iαを算出するために用いる対数尤度IγとしてIα算出回路158に供給する。また、Iα用パラレルパス処理回路2253は、入力した対数尤度PGAがパラレルパスに対応するものでなかった場合には、この対数尤度PGAを対数尤度DGAとしてそのままIα算出回路158に供給する。
【0322】
このようなIγ分配回路157は、対数尤度GA,GB0,GB1を、それぞれ、符号構成に応じて分配し、さらに、トレリス上にパラレルパスが存在する符号を復号する際には、これらのパラレルパスを束ね、得られた対数尤度DGA,DGABをIα算出回路158に供給するとともに、得られた対数尤度DGB0,DGB1をIβ算出回路159に供給する。
【0323】
Iα算出回路158は、Iγ分配回路157から供給される対数尤度DGA,DGABを用いて、対数尤度Iαを算出する。具体的には、Iα算出回路158は、“2.”の冒頭に記載した表記に基づくと、対数尤度Iγを用いて、次式(49)に示す演算を行い、各時刻tにおける対数尤度Iαを算出する。なお、次式(49)における演算子“#”は、いわゆるlog−sum演算を示すものであり、入力“0”でステートm’からステートmへと遷移するときにおける対数尤度と、入力“1”でステートm’’からステートmへと遷移するときにおける対数尤度とのlog−sum演算を示すものである。より具体的には、Iα算出回路158は、定数sgnが“+1”の場合には、次式(50)に示す演算を行うことによって、一方、定数sgnが“−1”の場合には、次式(51)に示す演算を行うことによって、各時刻tにおける対数尤度Iαを算出する。すなわち、Iα算出回路158は、対数尤度Iγに基づいて、受信値yt毎に、符号化開始ステートから時系列順に各ステートに至る確率αを対数表記した対数尤度Iα又は確率αを対数表記して正負識別符号を反転した対数尤度Iαを算出する。
【0324】
【数49】
【0325】
【数50】
【0326】
【数51】
【0327】
このとき、Iα算出回路158は、制御回路60から供給される生成行列情報CGと、符号情報生成回路151から供給される入力ビット数情報IN、型情報WM及びメモリ数情報MNと、受信データ及び遅延用記憶回路155から供給される終結情報TALDとに基づいて、対数尤度Iαを算出する。Iα算出回路158は、算出した対数尤度Iαと対数尤度Iγとの和を軟出力算出回路161に供給する。すなわち、Iα算出回路158は、後述するように、算出した対数尤度Iαをそのまま出力するのではなく、対数軟出力Iλの算出に用いる対数尤度Iαと対数尤度Iγとの和を、データAGとして出力する。
【0328】
具体的には、Iα算出回路158は、例えば図33に示すように、制御信号を生成する制御信号生成回路240と、トレリス上の各ステートから次時刻におけるステートへと2本のパスが到達するような符号に対して、加算比較選択(add compare select)処理及びlog−sum補正により補正項を追加する処理を行う加算比較選択回路241と、トレリス上の各ステートから次時刻におけるステートへと4本、又は、符号によっては8本のパスが到達するような符号に対して、加算比較選択処理及びlog−sum補正により補正項を追加する処理を行う加算比較選択回路242と、対数尤度Iαと対数尤度Iγとの和を算出するIα+Iγ算出回路243と、3対1の選択を行うセレクタ244とを有するものとして実現することができる。
【0329】
制御信号生成回路240は、生成行列情報CG、入力ビット数情報IN、型情報WM及びメモリ数情報MNを用いて、トレリス上の各ステートから次時刻におけるステートへと4本のパスが到達するような符号における遷移元のステートを算出し、制御信号PSTとして加算比較選択回路242に供給する。
【0330】
加算比較選択回路241は、トレリス上の各ステートから次時刻におけるステートへと2本のパスが到達するような符号に対して、加算比較選択処理及びlog−sum補正により補正項を追加する処理を行うことによって、log−sum演算を行う。
【0331】
具体的には、加算比較選択回路241は、図34に示すように、トレリス上の各ステートから次時刻におけるステートへと2本のパスが到達するような符号のうち、復号の対象とする符号のステート数のうちの最大値の数のlog−sum演算回路245nを有する。ここでは、加算比較選択回路241は、最大で16ステートを有する符号の復号を行うものとし、16個のlog−sum演算回路2451,2452,2453,・・・,24516を有するものとする。
【0332】
これらのlog−sum演算回路2451,2452,2453,・・・,24516には、それぞれ、トレリス上の遷移に基づいて、トレリス上の出力パターンに対応する枝の対数尤度Iγと、各ステートにおける1時刻前の対数尤度Iαが供給される。すなわち、log−sum演算回路2451,2452,2453,・・・,24516には、それぞれ、対数尤度DGAのうち、トレリス上の出力パターンに対応する枝の対数尤度Iγに相当するものと、算出した1時刻前の対数尤度ALのうち、各ステートにおける対数尤度Iαに相当するものとが供給される。そして、log−sum演算回路2451,2452,2453,・・・,24516は、それぞれ、次時刻の各ステートにおける対数尤度Iαを対数尤度ALとして求める。各log−sum演算回路2451,2452,2453,・・・,24516に対する対数尤度ALの分配は、符号構成に応じて異なり、ここではメモリ数情報MNに基づいて、図示しないセレクタ等により決定される。この対数尤度ALの分配については、さらに後述する。
【0333】
具体的には、log−sum演算回路2451は、3つの加算器2461,2462,249と、log−sum補正における補正項の値を算出する補正項算出回路247と、セレクタ248と、Iα正規化回路250とを有する。
【0334】
加算器2461は、対数尤度DGAのうちの対数尤度DGA00を入力するとともに、1時刻前に算出された対数尤度ALのうち、符号に応じて該当するものを対数尤度A0として入力し、これらの対数尤度DGA00,A0を加算する。加算器2461は、加算して得られた対数尤度Iαと対数尤度Iγとの和を示すデータAM0を補正項算出回路247及びセレクタ248に供給する。
【0335】
加算器2462は、対数尤度DGAのうちの対数尤度DGA01を入力するとともに、1時刻前に算出された対数尤度ALのうち、符号に応じて該当するものを対数尤度A1として入力し、これらの対数尤度DGA01,A1を加算する。加算器2462は、加算して得られたIα+Iγを示すデータAM1を補正項算出回路247及びセレクタ248に供給する。
【0336】
補正項算出回路247は、加算器2461から供給されるデータAM0と、加算器2462から供給されるデータAM1とを入力し、補正項の値を示すデータDMを算出する。この補正項算出回路247は、図35に示すように、2つの差分器2511,2512と、log−sum補正における補正項の値をテーブルとして記憶する2つのルックアップテーブル2521,2522と、3つのセレクタ248,254,255による選択動作を制御するための制御信号を生成する選択用制御信号生成回路253と、2つのセレクタ254,255とを有する。
【0337】
差分器2511は、加算器2461から供給されるデータAM0と、加算器2462から供給されるデータAM1との差分をとる。厳密には、差分器2511は、データAM0,AM1が、それぞれ、例えば12ビットからなるものとすると、データAM0の下位6ビットのデータの最上位ビットに“1”を付したものと、データAM1の下位6ビットのデータの最上位ビットに“0”を付したものとの差分をとる。差分器2511は、算出した差分値DA1をルックアップテーブル2521及び選択用制御信号生成回路253に供給する。
【0338】
差分器2512は、データAM1と、データAM0との差分をとる。厳密には、差分器2512は、データAM0,AM1が、それぞれ、例えば12ビットからなるものとすると、データAM1の下位6ビットのデータの最上位ビットに“1”を付したものと、データAM0の下位6ビットのデータの最上位ビットに“0”を付したものとの差分をとる。差分器2512は、算出した差分値DA0をルックアップテーブル2522及び選択用制御信号生成回路253に供給する。
【0339】
ルックアップテーブル2521,2522は、それぞれ、log−sum補正における補正項の値をテーブルとして記憶する。ルックアップテーブル2521は、差分器2511から供給される差分値DA1の値に対応する補正項の値をテーブルから読み出し、データRDA1としてセレクタ254に供給する。また、ルックアップテーブル2522は、差分器2512から供給される差分値DA0の値に対応する補正項の値をテーブルから読み出し、データRDA0としてセレクタ254に供給する。
【0340】
選択用制御信号生成回路253は、データAM0,AM1と、差分値DA1,DA0とに基づいて、セレクタ248,254による選択動作を制御するための制御信号SELを生成するとともに、セレクタ255による選択動作を制御するための制御信号SLを生成する。この際、選択用制御信号生成回路253は、上述した選択用制御信号生成回路232と同様に、データAM0,AM1に基づいて、メトリックの上位ビットと下位ビットとを分割して、選択用の判定文を示す制御信号SEL,SLを生成するが、これについては後述する。
【0341】
セレクタ254は、選択用制御信号生成回路253から供給される制御信号SELに基づいて、ルックアップテーブル2521から供給されるデータRDA1と、ルックアップテーブル2522から供給されるデータRDA0とのうち、いずれか一方を選択する。具体的には、セレクタ254は、データAM0の値がデータAM1の値よりも大きい場合には、ルックアップテーブル2521からのデータRDA1を選択する。すなわち、セレクタ254は、データAM0とデータAM1との差分値の絶対値に対応する補正項の値を選択する。セレクタ254は、選択して得られたデータCAをセレクタ255に供給する。
【0342】
セレクタ255は、選択用制御信号生成回路253から供給される制御信号SLに基づいて、セレクタ254から供給されるデータCAと、所定の値Mを有するデータとのうち、いずれか一方を選択する。具体的には、データCAとして供給される差分値に対する補正項の値は、所定の値に漸近する性質を有していることから、セレクタ255は、データCAの値が所定の値Mを超過している場合には、所定の値Mを有するデータを選択する。セレクタ255は、選択して得られたデータDMを加算器249に供給する。
【0343】
このような補正項算出回路247は、log−sum補正における補正項の値を算出する。この際、補正項算出回路247は、後述するように、入力した2つのデータの差分値の絶対値を算出してから補正項の値を求めるのではなく、複数の補正項の値を算出し、その中から適切なものを選択する。また、補正項算出回路247においては、差分器2511に供給されるデータは、加算器2461から供給されるデータAM0及び加算器2462から供給されるデータAM1が、それぞれ、例えば12ビットからなるものとすると、データAM0の下位6ビットのデータの最上位ビットに“1”を付したものと、データAM1の下位6ビットのデータの最上位ビットに“0”を付したものとである。同様に、補正項算出回路247においては、差分器2512に供給されるデータは、データAM0の下位6ビットのデータの最上位ビットに“0”を付したものと、データAM1の下位6ビットのデータの最上位ビットに“1”を付したものとである。すなわち、差分器2511,2522には、加算器2461,2462から供給されるデータのうちの下位ビットの最上位ビットに“1”又は“0”が付されたデータが供給されるが、これは、データAM0,AM1の大小比較を高速に行うためであり、また、選択用制御信号生成回路253によって、メトリックの上位ビットと下位ビットとを分割して、選択用の判定文を作成することに関係がある。これについては後述するものとする。
【0344】
セレクタ248は、選択用制御信号生成回路253から供給される制御信号SELに基づいて、データAM0,AM1のうち、値が小さいものを選択する。セレクタ248は、選択して得られたデータSAMを加算器249に供給する。
【0345】
加算器249は、セレクタ248から供給されるデータSAMと、補正項算出回路247から供給されるデータDMとを加算し、対数尤度Iαを算出する。加算器247は、算出した対数尤度Iαを対数尤度CMとしてIα正規化回路250に供給する。
【0346】
Iα正規化回路250は、加算器249から供給される対数尤度CMの分布の偏りを是正するための正規化を行う。この正規化処理については各種方法が考えられるが、これについては後述する。また、Iα正規化回路250は、終結情報TALDを用いて、終結処理も行う。Iα正規化回路250は、正規化後の対数尤度Iαを、必要なダイナミックレンジに応じてクリッピングを行い、対数尤度AL00として、所定のlog−sum演算回路2451,2452,2453,・・・,24516に供給する。このとき、対数尤度AL00は、図示しないレジスタにより1時刻分の遅延がなされた後、所定のlog−sum演算回路2451,2452,2453,・・・,24516に供給される。
【0347】
このようなlog−sum演算回路2451は、対数尤度AL00を求めて出力するとともに、データAM0,AM1を束ねてデータAG00として出力する。すなわち、log−sum演算回路2451は、求めた対数尤度AL00を、次時刻における対数尤度Iαの算出に用いるために、所定のlog−sum演算回路2451,2452,2453,・・・,24516に供給するとともに、対数尤度Iαの算出過程において求めた対数尤度Iαと対数尤度Iγとの和Iα+Iγを示すデータAG00を出力する。
【0348】
log−sum演算回路2452は、log−sum演算回路2451と同様の構成からなるため、詳細な説明は省略するが、対数尤度DGAのうちの対数尤度DGA02,DGA03と、1時刻前に算出された対数尤度ALのうち、符号に応じて該当するものを対数尤度A0,A1として入力し、これらの対数尤度DGA02,DGA03,A0,A1を用いて、対数尤度Iαを算出し、対数尤度AL01として、所定のlog−sum演算回路2451,2452,2453,・・・,24516に供給するとともに、対数尤度Iαと対数尤度Iγとの和Iα+Iγを示すデータAG01を出力する。
【0349】
また、log−sum演算回路2453も、log−sum演算回路2451と同様の構成からなるため、詳細な説明は省略するが、対数尤度DGAのうちの対数尤度DGA04,DGA05と、1時刻前に算出された対数尤度ALのうち、符号に応じて該当するものを対数尤度A0,A1として入力し、これらの対数尤度DGA04,DGA05,A0,A1を用いて、対数尤度Iαを算出し、対数尤度AL02として、所定のlog−sum演算回路2451,2452,2453,・・・,24516に供給するとともに、対数尤度Iαと対数尤度Iγとの和Iα+Iγを示すデータAG02を出力する。
【0350】
さらに、log−sum演算回路24516も、log−sum演算回路2451と同様の構成からなるため、詳細な説明は省略するが、対数尤度DGAのうちの対数尤度DGA30,DGA31と、1時刻前に算出された対数尤度ALのうち、符号に応じて該当するものを対数尤度A0,A1として入力し、これらの対数尤度DGA30,DGA31,A0,A1を用いて、対数尤度Iαを算出し、対数尤度AL15として、所定のlog−sum演算回路2451,2452,2453,・・・,24516に供給するとともに、対数尤度Iαと対数尤度Iγとの和Iα+Iγを示すデータAG15を出力する。
【0351】
このような加算比較選択回路241は、トレリス上の各ステートから次時刻におけるステートへと2本のパスが到達するような符号における対数尤度Iαを算出する。加算比較選択回路241は、後述するように、算出した対数尤度Iαを出力するのではなく、対数尤度Iαと対数尤度Iγとの和Iα+Iγを出力する。すなわち、加算比較選択回路241は、log−sum演算回路2451,2452,2453,・・・,24516のそれぞれにより求められたデータAG00,AG01,AG02,・・・,AG15を束ね、データAGTとしてセレクタ244に供給する。
【0352】
加算比較選択回路242は、トレリス上の各ステートから次時刻におけるステートへと4本、又は、符号によっては8本のパスが到達するような符号に対して、加算比較選択処理及びlog−sum補正により補正項を追加する処理を行うことによって、log−sum演算を行う。
【0353】
具体的には、加算比較選択回路242は、図36に示すように、トレリス上の各ステートから次時刻におけるステートへと4本、又は、符号によっては8本のパスが到達するような符号のうち、復号の対象とする符号のステート数のうちの最大値の数のlog−sum演算回路256nを有する。ここでは、加算比較選択回路242は、最大で8ステートを有する符号の復号を行うものとし、8個のlog−sum演算回路2561,・・・,2568を有するものとする。
【0354】
これらのlog−sum演算回路2561,・・・,2568には、それぞれ、上述した加算比較選択回路241におけるlog−sum演算回路2451,2452,2453,・・・,24516と同様に、トレリス上の遷移に基づいて、トレリス上の出力パターンに対応する枝の対数尤度Iγと、各ステートにおける1時刻前の対数尤度Iαが供給される。すなわち、log−sum演算回路2561,・・・,2568には、それぞれ、対数尤度DGAのうち、トレリス上の出力パターンに対応する枝の対数尤度Iγに相当するものと、算出した1時刻前の対数尤度ALのうち、各ステートにおける対数尤度Iαに相当するものとが供給される。そして、log−sum演算回路2561,・・・,2568は、それぞれ、次時刻の各ステートにおける対数尤度Iαを対数尤度ALとして求める。各log−sum演算回路2561,・・・,2568に対する対数尤度ALの分配は、符号構成に応じて異なり、ここでは制御信号PSTに基づいて、図示しないセレクタ等により決定される。この対数尤度ALの分配については、さらに後述する。
【0355】
具体的には、log−sum演算回路2561は、5つの加算器2571,2572,2573,2574,271と、log−sum補正における補正項の値を算出する6個の補正項算出回路2581,2582,2583,2584,2585,2586と、11個のセレクタ259,260,261,262,263,264,265,266,267,268,269と、セレクタ269による選択動作を制御するための制御信号を生成する選択用制御信号生成回路270と、Iα正規化回路272とを有する。
【0356】
加算器2571は、対数尤度DGAのうちの対数尤度DGA00を入力するとともに、1時刻前に算出された対数尤度ALのうち、符号に応じて該当するものを対数尤度A0として入力し、これらの対数尤度DGA00,A0を加算する。加算器2571は、加算して得られた対数尤度Iαと対数尤度Iγとの和を示すデータAM0を補正項算出回路2581,2583,2585及びセレクタ259に供給する。
【0357】
加算器2572は、対数尤度DGAのうちの対数尤度DGA01を入力するとともに、1時刻前に算出された対数尤度ALのうち、符号に応じて該当するものを対数尤度A1として入力し、これらの対数尤度DGA01,A1を加算する。加算器2572は、加算して得られたIα+Iγを示すデータAM1を補正項算出回路2581,2584,2586及びセレクタ259に供給する。
【0358】
加算器2573は、対数尤度DGAのうちの対数尤度DGA02を入力するとともに、1時刻前に算出された対数尤度ALのうち、符号に応じて該当するものを対数尤度A2として入力し、これらの対数尤度DGA02,A2を加算する。加算器2573は、加算して得られたIα+Iγを示すデータAM2を補正項算出回路2582,2583,2584及びセレクタ260に供給する。
【0359】
加算器2574は、対数尤度DGAのうちの対数尤度DGA03を入力するとともに、1時刻前に算出された対数尤度ALのうち、符号に応じて該当するものを対数尤度A3として入力し、これらの対数尤度DGA03,A3を加算する。加算器2574は、加算して得られたIα+Iγを示すデータAM3を補正項算出回路2582,2585,2586及びセレクタ260に供給する。
【0360】
補正項算出回路2581は、先に図35に示した補正項算出回路247と同様の構成からなるため、ここでは詳細を省略するが、加算器2571から供給されるデータAM0と、加算器2572から供給されるデータAM1とを入力し、補正項の値を示すデータDM0を算出する。この際、補正項算出回路2581は、補正項算出回路247と同様に、入力した2つのデータの差分値の絶対値を算出してから補正項の値を求めるのではなく、複数の補正項の値を算出し、その中から適切なものを選択する。また、補正項算出回路2581においては、加算器2571,2572から供給されるデータAM0,AM1のうちの下位ビットの最上位ビットに“1”又は“0”が付されたデータ間の差分をとり、データAM0,AM1の大小比較を高速に行う。補正項算出回路2581は、算出したデータDM0をセレクタ268に供給する。また、補正項算出回路2581は、セレクタ259,261,262,263,264による選択動作を制御するための制御信号SEL0を生成する。
【0361】
補正項算出回路2582は、先に図35に示した補正項算出回路247と同様の構成からなるため、ここでは詳細を省略するが、加算器2573から供給されるデータAM2と、加算器2574から供給されるデータAM3とを入力し、補正項の値を示すデータDM1を算出する。この際、補正項算出回路2582は、補正項算出回路247と同様に、入力した2つのデータの差分値の絶対値を算出してから補正項の値を求めるのではなく、複数の補正項の値を算出し、その中から適切なものを選択する。また、補正項算出回路2582においては、加算器2573,2574から供給されるデータAM2,AM3のうちの下位ビットの最上位ビットに“1”又は“0”が付されたデータ間の差分をとり、データAM2,AM3の大小比較を高速に行う。補正項算出回路2582は、算出したデータDM1をセレクタ268に供給する。また、補正項算出回路2582は、セレクタ260,265,266による選択動作を制御するための制御信号SEL1を生成する。
【0362】
補正項算出回路2583は、先に図35に示した補正項算出回路247と同様の構成からなるため、ここでは詳細を省略するが、加算器2571から供給されるデータAM0と、加算器2573から供給されるデータAM2とを入力し、補正項の値を示すデータDM2を算出する。この際、補正項算出回路2583は、補正項算出回路247と同様に、入力した2つのデータの差分値の絶対値を算出してから補正項の値を求めるのではなく、複数の補正項の値を算出し、その中から適切なものを選択する。また、補正項算出回路2583においては、加算器2571,2573から供給されるデータAM0,AM2のうちの下位ビットの最上位ビットに“1”又は“0”が付されたデータ間の差分をとり、データAM0,AM2の大小比較を高速に行う。補正項算出回路2583は、算出したデータDM2をセレクタ263に供給する。また、補正項算出回路2583は、最終的にセレクタ267,268による選択動作を制御するための制御信号SEL8となる制御信号SEL2を生成し、この制御信号SEL2をセレクタ261及び選択用制御信号生成回路270に供給する。
【0363】
補正項算出回路2584は、先に図35に示した補正項算出回路247と同様の構成からなるため、ここでは詳細を省略するが、加算器2572から供給されるデータAM1と、加算器2573から供給されるデータAM2とを入力し、補正項の値を示すデータDM3を算出する。この際、補正項算出回路2584は、補正項算出回路247と同様に、入力した2つのデータの差分値の絶対値を算出してから補正項の値を求めるのではなく、複数の補正項の値を算出し、その中から適切なものを選択する。また、補正項算出回路2584においては、加算器2572,2573から供給されるデータAM1,AM2のうちの下位ビットの最上位ビットに“1”又は“0”が付されたデータ間の差分をとり、データAM1,AM2の大小比較を高速に行う。補正項算出回路2584は、算出したデータDM3をセレクタ263に供給する。また、補正項算出回路2584は、最終的にセレクタ267,268による選択動作を制御するための制御信号SEL8となる制御信号SEL3を生成し、この制御信号SEL3をセレクタ261及び選択用制御信号生成回路270に供給する。
【0364】
補正項算出回路2585は、先に図35に示した補正項算出回路247と同様の構成からなるため、ここでは詳細を省略するが、加算器2571から供給されるデータAM0と、加算器2574から供給されるデータAM3とを入力し、補正項の値を示すデータDM4を算出する。この際、補正項算出回路2585は、補正項算出回路247と同様に、入力した2つのデータの差分値の絶対値を算出してから補正項の値を求めるのではなく、複数の補正項の値を算出し、その中から適切なものを選択する。また、補正項算出回路2585においては、加算器2571,2574から供給されるデータAM0,AM3のうちの下位ビットの最上位ビットに“1”又は“0”が付されたデータ間の差分をとり、データAM0,AM3の大小比較を高速に行う。補正項算出回路2585は、算出したデータDM4をセレクタ264に供給する。また、補正項算出回路2585は、最終的にセレクタ267,268による選択動作を制御するための制御信号SEL8となる制御信号SEL4を生成し、この制御信号SEL4をセレクタ262及び選択用制御信号生成回路270に供給する。
【0365】
補正項算出回路2586は、先に図35に示した補正項算出回路247と同様の構成からなるため、ここでは詳細を省略するが、加算器2572から供給されるデータAM1と、加算器2574から供給されるデータAM3とを入力し、補正項の値を示すデータDM5を算出する。この際、補正項算出回路2586は、補正項算出回路247と同様に、入力した2つのデータの差分値の絶対値を算出してから補正項の値を求めるのではなく、複数の補正項の値を算出し、その中から適切なものを選択する。また、補正項算出回路2586においては、加算器2572,2574から供給されるデータAM1,AM3のうちの下位ビットの最上位ビットに“1”又は“0”が付されたデータ間の差分をとり、データAM1,AM3の大小比較を高速に行う。補正項算出回路2586は、算出したデータDM5をセレクタ264に供給する。また、補正項算出回路2586は、最終的にセレクタ267,268による選択動作を制御するための制御信号SEL8となる制御信号SEL5を生成し、この制御信号SEL5をセレクタ262及び選択用制御信号生成回路270に供給する。
【0366】
セレクタ259は、補正項算出回路2581から供給される制御信号SEL0に基づいて、データAM0,AM1のうち、値が小さいものを選択する。セレクタ259は、選択して得られたデータSAM0をセレクタ267に供給する。
【0367】
セレクタ260は、補正項算出回路2582から供給される制御信号SEL1に基づいて、データAM2,AM3のうち、値が小さいものを選択する。セレクタ260は、選択して得られたデータSAM1をセレクタ267に供給する。
【0368】
セレクタ261は、補正項算出回路2581から供給される制御信号SEL0に基づいて、制御信号SEL2,SEL3のうち、いずれか一方を選択する。具体的には、セレクタ261は、データAM1よりもデータAM0の方が値が大きい場合には、制御信号SEL3を選択する。セレクタ261は、選択して得られた制御信号SEL6をセレクタ265に供給する。
【0369】
セレクタ262は、補正項算出回路2581から供給される制御信号SEL0に基づいて、制御信号SEL4,SEL5のうち、いずれか一方を選択する。具体的には、セレクタ262は、データAM1よりもデータAM0の方が値が大きい場合には、制御信号SEL5を選択する。セレクタ262は、選択して得られた制御信号SEL7をセレクタ265に供給する。
【0370】
セレクタ263は、補正項算出回路2581から供給される制御信号SEL0に基づいて、データDM2,DM3のうち、いずれか一方を選択する。具体的には、セレクタ263は、データAM1よりもデータAM0の方が値が大きい場合には、データDM3を選択する。セレクタ263は、選択して得られたデータDS0をセレクタ266に供給する。
【0371】
セレクタ264は、補正項算出回路2581から供給される制御信号SEL0に基づいて、データDM4,DM5のうち、いずれか一方を選択する。具体的には、セレクタ264は、データAM1よりもデータAM0の方が値が大きい場合には、データDM5を選択する。セレクタ264は、選択して得られたデータDS1をセレクタ266に供給する。
【0372】
セレクタ265は、補正項算出回路2582から供給される制御信号SEL1に基づいて、制御信号SEL6,SEL7のうち、いずれか一方を選択する。具体的には、セレクタ265は、データAM3よりもデータAM2の方が値が大きい場合には、制御信号SEL7を選択する。セレクタ265は、選択して得られた制御信号SEL8をセレクタ267,268における選択用の制御信号として供給する。
【0373】
セレクタ266は、補正項算出回路2582から供給される制御信号SEL1に基づいて、データDS0,DS1のうち、いずれか一方を選択する。具体的には、セレクタ266は、データAM3よりもデータAM2の方が値が大きい場合には、データDS1を選択する。セレクタ266は、選択して得られたデータDS2をセレクタ269に供給する。
【0374】
セレクタ267は、制御信号SEL8に基づいて、データSAM0,SAM1のうち、いずれか一方を選択する。具体的には、セレクタ267は、制御信号SEL8が制御信号SEL7であった場合には、データSAM1を選択する。セレクタ267は、選択して得られたデータSAM2を加算器271に供給する。
【0375】
セレクタ268は、制御信号SEL8に基づいて、データDM0,DM1のうち、いずれか一方を選択する。具体的には、セレクタ268は、制御信号SEL8が制御信号SEL7であった場合には、データDM1を選択する。セレクタ268は、選択して得られたデータDS3をセレクタ269に供給する。
【0376】
セレクタ269は、選択用制御信号生成回路270から供給される制御信号SEL9に基づいて、データDS2,DS3のうち、いずれか一方を選択する。セレクタ269は、選択して得られたデータRDMを加算器271に供給する。
【0377】
選択用制御信号生成回路270は、制御信号SEL2,SEL3,SEL4,SEL5に基づいて、セレクタ269による選択動作を制御するための制御信号SEL9を生成する。具体的には、選択用制御信号生成回路270は、制御信号SEL2,SEL3,SEL4,SEL5の論理積と、制御信号SEL2,SEL3,SEL4,SEL5の論理積の否定との論理和をとることによって、制御信号SEL9を生成する。
【0378】
加算器271は、セレクタ267から供給されるデータSAM2と、セレクタ269から供給されるデータRDMとを加算し、対数尤度Iαを算出する。加算器271は、算出した対数尤度Iαを対数尤度CMとしてIα正規化回路272に供給する。
【0379】
Iα正規化回路272は、上述したIα正規化回路250と同様に、加算器271から供給される対数尤度CMの分布の偏りを是正するための正規化を行う。また、Iα正規化回路272は、終結情報TALDを用いて、終結処理も行う。Iα正規化回路272は、正規化後の対数尤度Iαを、必要なダイナミックレンジに応じてクリッピングを行い、対数尤度AL00として、所定のlog−sum演算回路2561,・・・,2568に供給する。このとき、対数尤度AL00は、図示しないレジスタにより1時刻分の遅延がなされた後、所定のlog−sum演算回路2561,・・・,2568に供給される。
【0380】
このようなlog−sum演算回路2561は、対数尤度AL00を求めて出力するとともに、データAM0,AM1,AM2,AM3を束ねてデータAG00として出力する。すなわち、log−sum演算回路2561は、求めた対数尤度AL00を、次時刻における対数尤度Iαの算出に用いるために、所定のlog−sum演算回路2561,・・・,2568に供給するとともに、対数尤度Iαの算出過程において求めた対数尤度Iαと対数尤度Iγとの和Iα+Iγを示すデータAG00を出力する。
【0381】
この際、log−sum演算回路2561は、各ステートに到達した4本のパス、又は、符号によっては8本のパスを束ねて得られる4組のパスに対応する尤度を示すデータAM0,AM1,AM2,AM3の中から選択した2つのパスに対応するデータの組み合わせの全てについて尤度の大小を比較することによって、これらのデータAM0,AM1,AM2,AM3のうち、尤度の高い少なくとも2つ以上のパスに対応するデータを求め、これらのパスに対応するデータの中から、最も尤度の高いパスである最尤パスに対応するデータを選択する。より具体的には、log−sum演算回路2561は、データAM0,AM1,AM2,AM3について、いわば勝ち抜き戦に喩えられる動作を行うことによって、データAM0の値、データAM1の値、データAM2の値及びデータAM3の値の大小を比較し、最尤パスに対応するデータを選択する。
【0382】
また、log−sum演算回路2568は、log−sum演算回路2561と同様の構成からなるため、詳細な説明は省略するが、対数尤度DGAのうちの対数尤度DGA28,DGA29,DGA30,DGA31と、1時刻前に算出された対数尤度ALのうち、符号に応じて該当するものを対数尤度A0,A1,A2,A3として入力し、これらの対数尤度DGA28,DGA29,DGA30,DGA31,A0,A1,A2,A3を用いて、対数尤度Iαを算出し、対数尤度AL07として、所定のlog−sum演算回路2561,・・・,2568に供給するとともに、対数尤度Iαと対数尤度Iγとの和Iα+Iγを示すデータAG07を出力する。
【0383】
このような加算比較選択回路242は、トレリス上の各ステートから次時刻におけるステートへと4本、又は、符号によっては8本のパスが到達するような符号における対数尤度Iαを算出する。加算比較選択回路242は、上述した加算比較選択回路241と同様に、算出した対数尤度Iαを出力するのではなく、対数尤度Iαと対数尤度Iγとの和Iα+Iγを出力する。すなわち、加算比較選択回路242は、log−sum演算回路2561,・・・,2568のそれぞれにより求められたデータAG00,・・・,AG07を束ね、データAGFとしてセレクタ244に供給する。また、加算比較選択回路242は、log−sum演算回路2561,・・・,2568のそれぞれにより求められた対数尤度AL00,・・・,AL07を束ね、対数尤度ALとしてIα+Iγ算出回路243に供給する。なお、加算比較選択回路242は、本来は、トレリス上の各ステートから次時刻におけるステートへと4本のパスが到達するような符号における対数尤度Iαを求めるために設けられるものであるが、上述したように、符号によっては8本のパスが到達するような符号における対数尤度Iαを求めることができる。これについては、“5−5−3”及び“5−5−5”に詳述する。
【0384】
Iα+Iγ算出回路243は、後述するように、例えば先に図17に示した畳み込み符号化器による符号のように、トレリス上にパラレルパスが存在する符号を復号するために設けられるものであり、対数尤度Iαと対数尤度Iγとの和を算出する。具体的には、Iα+Iγ算出回路243は、図37に示すように、3つのセレクタ273,274,275と、ここでは4つのIα+Iγ算出セル回路2761,2762,2763,2764とを有する。
【0385】
セレクタ273は、メモリ数情報MNに基づいて、加算比較選択回路242から供給される対数尤度ALのうち、符号に応じて該当する所定の対数尤度AL00,AL01のうち、いずれか一方を選択する。セレクタ273は、選択して得られた対数尤度AL01SをIα+Iγ算出セル回路2761,2762,2763,2764に供給する。
【0386】
セレクタ274は、メモリ数情報MNに基づいて、加算比較選択回路242から供給される対数尤度ALのうち、符号に応じて該当する所定の対数尤度AL01,AL02のうち、いずれか一方を選択する。セレクタ274は、選択して得られた対数尤度AL02SをIα+Iγ算出セル回路2761,2762,2763,2764に供給する。
【0387】
セレクタ275は、メモリ数情報MNに基づいて、加算比較選択回路242から供給される対数尤度ALのうち、符号に応じて該当する所定の対数尤度AL01,AL03のうち、いずれか一方を選択する。セレクタ275は、選択して得られた対数尤度AL03SをIα+Iγ算出セル回路2761,2762,2763,2764に供給する。
【0388】
Iα+Iγ算出セル回路2761は、8個の加算器2771,2772,2773,2774,2775,2776,2777,2778を有する。
【0389】
加算器2771は、Iγ分配回路157から供給される対数尤度DGABのうち、符号に応じて該当する所定の対数尤度DGAB00と、加算比較選択回路242から供給される対数尤度ALのうち、符号に応じて該当する所定の対数尤度AL00とを加算する。加算器2771は、加算して得られたデータをデータAM0として出力する。
【0390】
加算器2772は、Iγ分配回路157から供給される対数尤度DGABのうち、符号に応じて該当する所定の対数尤度DGAB01と、加算比較選択回路242から供給される対数尤度ALのうち、符号に応じて該当する所定の対数尤度AL00とを加算する。加算器2772は、加算して得られたデータをデータAM1として出力する。
【0391】
加算器2773は、Iγ分配回路157から供給される対数尤度DGABのうち、符号に応じて該当する所定の対数尤度DGAB02と、セレクタ273から供給される対数尤度AL01Sとを加算する。加算器2773は、加算して得られたデータをデータAM2として出力する。
【0392】
加算器2774は、Iγ分配回路157から供給される対数尤度DGABのうち、符号に応じて該当する所定の対数尤度DGAB03と、セレクタ273から供給される対数尤度AL01Sとを加算する。加算器2774は、加算して得られたデータをデータAM3として出力する。
【0393】
加算器2775は、Iγ分配回路157から供給される対数尤度DGABのうち、符号に応じて該当する所定の対数尤度DGAB04と、セレクタ274から供給される対数尤度AL02Sとを加算する。加算器2775は、加算して得られたデータをデータAM4として出力する。
【0394】
加算器2776は、Iγ分配回路157から供給される対数尤度DGABのうち、符号に応じて該当する所定の対数尤度DGAB05と、セレクタ274から供給される対数尤度AL02Sとを加算する。加算器2776は、加算して得られたデータをデータAM5として出力する。
【0395】
加算器2777は、Iγ分配回路157から供給される対数尤度DGABのうち、符号に応じて該当する所定の対数尤度DGAB06と、セレクタ275から供給される対数尤度AL03Sとを加算する。加算器2777は、加算して得られたデータをデータAM6として出力する。
【0396】
加算器2778は、Iγ分配回路157から供給される対数尤度DGABのうち、符号に応じて該当する所定の対数尤度DGAB07と、セレクタ275から供給される対数尤度AL03Sとを加算する。加算器2778は、加算して得られたデータをデータAM7として出力する。
【0397】
このようなIα+Iγ算出セル回路2761は、Iγ分配回路157によりパラレルパスを束ねない状態で得られる対数尤度Iγを示す対数尤度DGABと、加算比較選択回路242により算出される対数尤度ALとを加算することによって、パラレルパスを束ねた場合に対数軟出力Iλを求める際に用いる対数尤度Iαと対数尤度Iγとの和を算出する。Iα+Iγ算出セル回路2761は、算出したデータAM0,AM1,AM2,AM3,AM4,AM5,AM6,AM7をデータAG00として出力する。
【0398】
また、Iα+Iγ算出セル回路2762は、Iα+Iγ算出セル回路2761と同様の構成からなるため、詳細な説明は省略するが、対数尤度DGABのうち、符号に応じて該当する所定の対数尤度DGAB08,DGAB09,DGAB10,DGAB11,DGAB12,DGAB13,DGAB14,DGAB15と、対数尤度ALのうち、符号に応じて該当する所定の対数尤度AL00と、対数尤度AL01S,AL02S,AL03Sとを用いて、パラレルパスを束ねた場合に対数軟出力Iλを求める際に用いる対数尤度Iαと対数尤度Iγとの和を算出する。Iα+Iγ算出セル回路2762は、算出したデータをデータAG01として出力する。
【0399】
さらに、Iα+Iγ算出セル回路2763は、Iα+Iγ算出セル回路2761と同様の構成からなるため、詳細な説明は省略するが、対数尤度DGABのうち、符号に応じて該当する所定の対数尤度DGAB16,DGAB17,DGAB18,DGAB19,DGAB20,DGAB21,DGAB22,DGAB23と、対数尤度ALのうち、符号に応じて該当する所定の対数尤度AL00と、対数尤度AL01S,AL02S,AL03Sとを用いて、パラレルパスを束ねた場合に対数軟出力Iλを求める際に用いる対数尤度Iαと対数尤度Iγとの和を算出する。Iα+Iγ算出セル回路2763は、算出したデータをデータAG02として出力する。
【0400】
さらにまた、Iα+Iγ算出セル回路2764は、Iα+Iγ算出セル回路2761と同様の構成からなるため、詳細な説明は省略するが、対数尤度DGABのうち、符号に応じて該当する所定の対数尤度DGAB24,DGAB25,DGAB26,DGAB27,DGAB28,DGAB29,DGAB30,DGAB31と、対数尤度ALのうち、符号に応じて該当する所定の対数尤度AL00と、対数尤度AL01S,AL02S,AL03Sとを用いて、パラレルパスを束ねた場合に対数軟出力Iλを求める際に用いる対数尤度Iαと対数尤度Iγとの和を算出する。Iα+Iγ算出セル回路2764は、算出したデータをデータAG03として出力する。
【0401】
このようなIα+Iγ算出回路243は、対数尤度Iαと対数尤度Iγとの和を算出し、算出したデータAG00,AG01,AG02,AG03を束ね、データAGEとしてセレクタ244に供給する。
【0402】
セレクタ244は、入力ビット数情報INに基づいて、加算比較選択回路241から供給される対数尤度Iαと対数尤度Iγとの和を示すデータAGTと、加算比較選択回路242から供給される対数尤度Iαと対数尤度Iγとの和を示すデータAGFと、Iα+Iγ算出回路243から供給される対数尤度Iαと対数尤度Iγとの和を示すデータAGEとのうち、いずれか一のデータを選択する。具体的には、セレクタ244は、符号化装置1における要素符号化器による符号が、トレリス上にパラレルパスが存在せず且つ各ステートから次時刻におけるステートへと2本のパスが到達するような符号であった場合には、データAGTを選択し、符号化装置1における要素符号化器による符号が、トレリス上にパラレルパスが存在せず且つ各ステートから次時刻におけるステートへと4本のパスが到達するような符号であった場合には、データAGFを選択し、符号化装置1における要素符号化器による符号が、最大で32本の枝を有するトレリスで表され且つ最大で4ステートを有する符号、より具体的には、4ステートに対して各ステートに8本のパスが到達するようなパラレルパスがトレリス上に存在する符号であった場合には、データAGEを選択する。すなわち、ここでは、セレクタ244による選択動作を制御するための制御信号として、入力ビット数情報INを用いているが、実際には、符号構成の示す制御信号がセレクタ244に入力される。
【0403】
このようなIα算出回路158は、対数尤度Iαを算出し、この算出した対数尤度Iαをそのまま出力するのではなく、対数軟出力Iλの算出に用いる対数尤度Iαと対数尤度Iγとの和を、データAGとして出力する。このデータAGは、所定の遅延が施された後、データAGDとして軟出力算出回路161に供給される。
【0404】
Iβ算出回路159は、Iγ分配回路157から供給される対数尤度DGB0,DGB1を用いて、対数尤度Iβを算出する。具体的には、Iβ算出回路159は、“2.”の冒頭に記載した表記に基づくと、対数尤度Iγを用いて、次式(52)に示す演算を行い、各時刻tにおける2系統の対数尤度Iβを並列的に算出する。なお、次式(52)における演算子“#”は、上述したように、log−sum演算を示すものであり、入力“0”でステートm’からステートmへと遷移するときにおける対数尤度と、入力“1”でステートm’’からステートmへと遷移するときにおける対数尤度とのlog−sum演算を示すものである。より具体的には、Iβ算出回路159は、定数sgnが“+1”の場合には、次式(53)に示す演算を行うことによって、一方、定数sgnが“−1”の場合には、次式(54)に示す演算を行うことによって、各時刻tにおける対数尤度Iβを算出する。すなわち、Iβ算出回路159は、対数尤度Iγに基づいて、受信値yt毎に、打ち切りステートから時系列の逆順に各ステートに至る確率βを対数表記した対数尤度Iβ又は確率βを対数表記して正負識別符号を反転した対数尤度Iβを算出する。
【0405】
【数52】
【0406】
【数53】
【0407】
【数54】
【0408】
このとき、Iβ算出回路159は、制御回路60から供給される生成行列情報CGと、符号情報生成回路151から供給される入力ビット数情報IN、型情報WM及びメモリ数情報MNと、受信データ及び遅延用記憶回路155から供給される終結情報TB0D,TB1Dとに基づいて、対数尤度Iβを算出する。Iβ算出回路159は、算出した2系統の対数尤度Iβを、対数尤度B0,B1としてIβ記憶回路160に供給する。
【0409】
具体的には、Iβ算出回路159は、例えば図38に示すように、制御信号を生成する制御信号生成回路280と、2系統の対数尤度Iβのうちの一方の対数尤度Iβ0を算出するためのIβ0用加算比較選択回路281と、対数尤度Iβ1を算出するためのIβ1用加算比較選択回路282とを有するものとして実現することができる。
【0410】
制御信号生成回路280は、生成行列情報CG、入力ビット数情報IN、型情報WM及びメモリ数情報MNを用いて、トレリス上の各ステートから次時刻におけるステートへと4本のパスが到達するような符号における遷移先のステートを算出し、制御信号NSTとしてIβ0用加算比較選択回路281及びIβ1用加算比較選択回路282に供給する。
【0411】
Iβ0用加算比較選択回路281は、対数尤度Iβ0を算出するために設けられるものである。Iβ0用加算比較選択回路281は、トレリス上の各ステートから次時刻におけるステートへと2本のパスが到達するような符号に対して、加算比較選択処理及びlog−sum補正により補正項を追加する処理を行う加算比較選択回路283と、トレリス上の各ステートから次時刻におけるステートへと4本、又は、符号によっては8本のパスが到達するような符号に対して、加算比較選択処理及びlog−sum補正により補正項を追加する処理を行う加算比較選択回路284と、2対1の選択を行うセレクタ285とを有する。
【0412】
加算比較選択回路283は、トレリス上の各ステートから次時刻におけるステートへと2本のパスが到達するような符号に対して、加算比較選択処理及びlog−sum補正により補正項を追加する処理を行うことによって、log−sum演算を行う。
【0413】
具体的には、加算比較選択回路283は、図39に示すように、上述した加算比較選択回路241と同様に、トレリス上の各ステートから次時刻におけるステートへと2本のパスが到達するような符号のうち、復号の対象とする符号のステート数のうちの最大値の数のlog−sum演算回路286nを有する。ここでは、加算比較選択回路283は、最大で16ステートを有する符号の復号を行うものとし、16個のlog−sum演算回路2861,2862,2863,・・・,28616を有するものとする。
【0414】
これらのlog−sum演算回路2861,2862,2863,・・・,28616には、それぞれ、トレリス上の遷移に基づいて、トレリス上の出力パターンに対応する枝の対数尤度Iγと、各ステートにおける1時刻前の対数尤度Iβ0が供給される。すなわち、log−sum演算回路2861,2862,2863,・・・,28616には、それぞれ、対数尤度DGB0のうち、トレリス上の出力パターンに対応する枝の対数尤度Iγに相当するものと、算出した1時刻前の対数尤度BTTのうち、各ステートにおける対数尤度Iβ0に相当するものとが供給される。そして、log−sum演算回路2861,2862,2863,・・・,28616は、それぞれ、次時刻の各ステートにおける対数尤度Iβを対数尤度BTTとして求める。各log−sum演算回路2861,2862,2863,・・・,28616に対する対数尤度BTTの分配は、符号構成に応じて異なり、ここではメモリ数情報MNに基づいて、図示しないセレクタ等により決定される。この対数尤度BTTの分配については、さらに後述する。
【0415】
具体的には、log−sum演算回路2861は、3つの加算器2871,2872,290と、log−sum補正における補正項の値を算出する補正項算出回路288と、セレクタ289と、Iβ0正規化回路291とを有する。
【0416】
加算器2871は、対数尤度DGB0のうちの対数尤度DGB00を入力するとともに、1時刻前に算出された対数尤度BTTのうち、符号に応じて該当するものを対数尤度B0として入力し、これらの対数尤度DGB00,B0を加算する。加算器2871は、加算して得られた対数尤度Iβと対数尤度Iγとの和を示すデータAM0を補正項算出回路288及びセレクタ289に供給する。
【0417】
加算器2872は、対数尤度DGB0のうちの対数尤度DGB01を入力するとともに、1時刻前に算出された対数尤度BTTのうち、符号に応じて該当するものを対数尤度B1として入力し、これらの対数尤度DGB01,B1を加算する。加算器2872は、加算して得られたIβ0+Iγを示すデータAM1を補正項算出回路288及びセレクタ289に供給する。
【0418】
補正項算出回路288は、先に図35に示した補正項算出回路247と同様の構成からなるため、ここでは詳細を省略するが、加算器2871から供給されるデータAM0と、加算器2872から供給されるデータAM1とを入力し、補正項の値を示すデータDMを算出する。この際、補正項算出回路288は、補正項算出回路247と同様に、入力した2つのデータの差分値の絶対値を算出してから補正項の値を求めるのではなく、複数の補正項の値を算出し、その中から適切なものを選択する。また、補正項算出回路288においては、加算器2871,2872から供給されるデータAM0,AM1のうちの下位ビットの最上位ビットに“1”又は“0”が付されたデータ間の差分をとり、データAM0,AM1の大小比較を高速に行う。補正項算出回路288は、算出したデータDMを加算器290に供給する。また、補正項算出回路288は、セレクタ289による選択動作を制御するための制御信号SELを生成する。
【0419】
セレクタ289は、補正項算出回路288から供給される制御信号SELに基づいて、データAM0,AM1のうち、値が小さいものを選択する。セレクタ289は、選択して得られたデータSAMを加算器290に供給する。
【0420】
加算器290は、セレクタ289から供給されるデータSAMと、補正項算出回路288から供給されるデータDMとを加算し、対数尤度Iβ0を算出する。加算器290は、算出した対数尤度Iβ0を対数尤度CMとしてIβ0正規化回路291に供給する。
【0421】
Iβ0正規化回路291は、上述したIα正規化回路250と同様に、加算器290から供給される対数尤度CMの分布の偏りを是正するための正規化を行う。また、Iβ0正規化回路291は、終結情報TB0Dを用いて、終結処理も行う。Iβ0正規化回路291は、正規化後の対数尤度Iβ0を、必要なダイナミックレンジに応じてクリッピングを行い、対数尤度BT00として、所定のlog−sum演算回路2861,2862,2863,・・・,28616に供給する。このとき、対数尤度BT00は、図示しないレジスタにより1時刻分の遅延がなされた後、所定のlog−sum演算回路2861,2862,2863,・・・,28616に供給される。
【0422】
このようなlog−sum演算回路2861は、対数尤度BT00を求めて出力する。すなわち、log−sum演算回路2861は、求めた対数尤度BT00を、次時刻における対数尤度Iβ0の算出に用いるために、所定のlog−sum演算回路2861,2862,2863,・・・,28616に供給するとともに、外部に出力する。
【0423】
log−sum演算回路2862は、log−sum演算回路2861と同様の構成からなるため、詳細な説明は省略するが、対数尤度DGB0のうちの対数尤度DGB02,DGB03と、1時刻前に算出された対数尤度BTTのうち、符号に応じて該当するものを対数尤度B0,B1として入力し、これらの対数尤度DGB02,DGB03,B0,B1を用いて、対数尤度Iβ0を算出し、対数尤度BT01として、所定のlog−sum演算回路2861,2862,2863,・・・,28616に供給するとともに、外部に出力する。
【0424】
また、log−sum演算回路2863も、log−sum演算回路2861と同様の構成からなるため、詳細な説明は省略するが、対数尤度DGB0のうちの対数尤度DGB04,DGB05と、1時刻前に算出された対数尤度BTTのうち、符号に応じて該当するものを対数尤度B0,B1として入力し、これらの対数尤度DGB04,DGB05,B0,B1を用いて、対数尤度Iβ0を算出し、対数尤度BT02として、所定のlog−sum演算回路2861,2862,2863,・・・,28616に供給するとともに、外部に出力する。
【0425】
さらに、log−sum演算回路28616も、log−sum演算回路2861と同様の構成からなるため、詳細な説明は省略するが、対数尤度DGB0のうちの対数尤度DGB30,DGB31と、1時刻前に算出された対数尤度BTTのうち、符号に応じて該当するものを対数尤度B0,B1として入力し、これらの対数尤度DGB30,DGB31,B0,B1を用いて、対数尤度Iβ0を算出し、対数尤度BT15として、所定のlog−sum演算回路2861,2862,2863,・・・,28616に供給するとともに、外部に出力する。
【0426】
このような加算比較選択回路283は、トレリス上の各ステートから次時刻におけるステートへと2本のパスが到達するような符号における対数尤度Iβ0を算出する。加算比較選択回路283は、log−sum演算回路2861,2862,2863,・・・,28616のそれぞれにより求められたデータBT00,BT01,BT02,・・・,BT15を束ね、対数尤度BTTとしてセレクタ285に供給する。
【0427】
加算比較選択回路284は、トレリス上の各ステートから次時刻におけるステートへと4本、又は、符号によっては8本のパスが到達するような符号に対して、加算比較選択処理及びlog−sum補正により補正項を追加する処理を行うことによって、log−sum演算を行う。
【0428】
具体的には、加算比較選択回路284は、図40に示すように、上述した加算比較選択回路242と同様に、トレリス上の各ステートから次時刻におけるステートへと4本、又は、符号によっては8本のパスが到達するような符号のうち、復号の対象とする符号のステート数のうちの最大値の数のlog−sum演算回路292nを有する。ここでは、加算比較選択回路284は、最大で8ステートを有する符号の復号を行うものとし、8個のlog−sum演算回路2921,・・・,2928を有するものとする。
【0429】
これらのlog−sum演算回路2921,・・・,2928には、それぞれ、上述した加算比較選択回路283におけるlog−sum演算回路2861,2862,2863,・・・,28616と同様に、トレリス上の遷移に基づいて、トレリス上の出力パターンに対応する枝の対数尤度Iγと、各ステートにおける1時刻前の対数尤度Iβ0が供給される。すなわち、log−sum演算回路2921,・・・,2928には、それぞれ、対数尤度DGB0のうち、トレリス上の出力パターンに対応する枝の対数尤度Iγに相当するものと、算出した1時刻前の対数尤度BTFのうち、各ステートにおける対数尤度Iβ0に相当するものとが供給される。そして、log−sum演算回路2921,・・・,2928は、それぞれ、次時刻の各ステートにおける対数尤度Iβ0を対数尤度BTFとして求める。各log−sum演算回路2921,・・・,2928に対する対数尤度BTFの分配は、符号構成に応じて異なり、ここでは制御信号NSTに基づいて、図示しないセレクタ等により決定される。この対数尤度BTFの分配については、さらに後述する。
【0430】
具体的には、log−sum演算回路2921は、5つの加算器2931,2932,2933,2934,307と、log−sum補正における補正項の値を算出する6個の補正項算出回路2941,2942,2943,2944,2945,2946と、11個のセレクタ295,296,297,298,299,300,301,302,303,304,305と、セレクタ305による選択動作を制御するための制御信号を生成する選択用制御信号生成回路306と、Iβ0正規化回路308とを有する。
【0431】
加算器2931は、対数尤度DGB0のうちの対数尤度DGB00を入力するとともに、1時刻前に算出された対数尤度BTFのうち、符号に応じて該当するものを対数尤度B0として入力し、これらの対数尤度DGB00,B0を加算する。加算器2931は、加算して得られた対数尤度Iβ0と対数尤度Iγとの和を示すデータAM0を補正項算出回路2941,2943,2945及びセレクタ295に供給する。
【0432】
加算器2932は、対数尤度DGB0のうちの対数尤度DGB01を入力するとともに、1時刻前に算出された対数尤度BTFのうち、符号に応じて該当するものを対数尤度B1として入力し、これらの対数尤度DGB01,B1を加算する。加算器2932は、加算して得られたIβ0+Iγを示すデータAM1を補正項算出回路2941,2944,2946及びセレクタ295に供給する。
【0433】
加算器2933は、対数尤度DGB0のうちの対数尤度DGB02を入力するとともに、1時刻前に算出された対数尤度BTFのうち、符号に応じて該当するものを対数尤度B2として入力し、これらの対数尤度DGB02,B2を加算する。加算器2933は、加算して得られたIβ0+Iγを示すデータAM2を補正項算出回路2942,2943,2944及びセレクタ296に供給する。
【0434】
加算器2934は、対数尤度DGB0のうちの対数尤度DGB03を入力するとともに、1時刻前に算出された対数尤度BTFのうち、符号に応じて該当するものを対数尤度B3として入力し、これらの対数尤度DGB03,B3を加算する。加算器2934は、加算して得られたIβ0+Iγを示すデータAM3を補正項算出回路2942,2945,2946及びセレクタ296に供給する。
【0435】
補正項算出回路2941は、先に図35に示した補正項算出回路247と同様の構成からなるため、ここでは詳細を省略するが、加算器2931から供給されるデータAM0と、加算器2932から供給されるデータAM1とを入力し、補正項の値を示すデータDM0を算出する。この際、補正項算出回路2941は、補正項算出回路247と同様に、入力した2つのデータの差分値の絶対値を算出してから補正項の値を求めるのではなく、複数の補正項の値を算出し、その中から適切なものを選択する。また、補正項算出回路2941においては、加算器2931,2932から供給されるデータAM0,AM1のうちの下位ビットの最上位ビットに“1”又は“0”が付されたデータ間の差分をとり、データAM0,AM1の大小比較を高速に行う。補正項算出回路2941は、算出したデータDM0をセレクタ304に供給する。また、補正項算出回路2941は、セレクタ295,297,298,299,300による選択動作を制御するための制御信号SEL0を生成する。
【0436】
補正項算出回路2942は、先に図35に示した補正項算出回路247と同様の構成からなるため、ここでは詳細を省略するが、加算器2933から供給されるデータAM2と、加算器2934から供給されるデータAM3とを入力し、補正項の値を示すデータDM1を算出する。この際、補正項算出回路2942は、補正項算出回路247と同様に、入力した2つのデータの差分値の絶対値を算出してから補正項の値を求めるのではなく、複数の補正項の値を算出し、その中から適切なものを選択する。また、補正項算出回路2942においては、加算器2933,2934から供給されるデータAM2,AM3のうちの下位ビットの最上位ビットに“1”又は“0”が付されたデータ間の差分をとり、データAM2,AM3の大小比較を高速に行う。補正項算出回路2942は、算出したデータDM1をセレクタ304に供給する。また、補正項算出回路2942は、セレクタ296,301,302による選択動作を制御するための制御信号SEL1を生成する。
【0437】
補正項算出回路2943は、先に図35に示した補正項算出回路247と同様の構成からなるため、ここでは詳細を省略するが、加算器2931から供給されるデータAM0と、加算器2933から供給されるデータAM2とを入力し、補正項の値を示すデータDM2を算出する。この際、補正項算出回路2943は、補正項算出回路247と同様に、入力した2つのデータの差分値の絶対値を算出してから補正項の値を求めるのではなく、複数の補正項の値を算出し、その中から適切なものを選択する。また、補正項算出回路2943においては、加算器2931,2933から供給されるデータAM0,AM2のうちの下位ビットの最上位ビットに“1”又は“0”が付されたデータ間の差分をとり、データAM0,AM2の大小比較を高速に行う。補正項算出回路2943は、算出したデータDM2をセレクタ299に供給する。また、補正項算出回路2943は、最終的にセレクタ303,304による選択動作を制御するための制御信号SEL8となる制御信号SEL2を生成し、この制御信号SEL2をセレクタ297及び選択用制御信号生成回路306に供給する。
【0438】
補正項算出回路2944は、先に図35に示した補正項算出回路247と同様の構成からなるため、ここでは詳細を省略するが、加算器2932から供給されるデータAM1と、加算器2933から供給されるデータAM2とを入力し、補正項の値を示すデータDM3を算出する。この際、補正項算出回路2944は、補正項算出回路247と同様に、入力した2つのデータの差分値の絶対値を算出してから補正項の値を求めるのではなく、複数の補正項の値を算出し、その中から適切なものを選択する。また、補正項算出回路2944においては、加算器2932,2933から供給されるデータAM1,AM2のうちの下位ビットの最上位ビットに“1”又は“0”が付されたデータ間の差分をとり、データAM1,AM2の大小比較を高速に行う。補正項算出回路2944は、算出したデータDM3をセレクタ299に供給する。また、補正項算出回路2944は、最終的にセレクタ303,304による選択動作を制御するための制御信号SEL8となる制御信号SEL3を生成し、この制御信号SEL3をセレクタ297及び選択用制御信号生成回路306に供給する。
【0439】
補正項算出回路2945は、先に図35に示した補正項算出回路247と同様の構成からなるため、ここでは詳細を省略するが、加算器2931から供給されるデータAM0と、加算器2934から供給されるデータAM3とを入力し、補正項の値を示すデータDM4を算出する。この際、補正項算出回路2945は、補正項算出回路247と同様に、入力した2つのデータの差分値の絶対値を算出してから補正項の値を求めるのではなく、複数の補正項の値を算出し、その中から適切なものを選択する。また、補正項算出回路2945においては、加算器2931,2934から供給されるデータAM0,AM3のうちの下位ビットの最上位ビットに“1”又は“0”が付されたデータ間の差分をとり、データAM0,AM3の大小比較を高速に行う。補正項算出回路2945は、算出したデータDM4をセレクタ300に供給する。また、補正項算出回路2945は、最終的にセレクタ303,304による選択動作を制御するための制御信号SEL8となる制御信号SEL4を生成し、この制御信号SEL4をセレクタ298及び選択用制御信号生成回路306に供給する。
【0440】
補正項算出回路2946は、先に図35に示した補正項算出回路247と同様の構成からなるため、ここでは詳細を省略するが、加算器2932から供給されるデータAM1と、加算器2934から供給されるデータAM3とを入力し、補正項の値を示すデータDM5を算出する。この際、補正項算出回路2946は、補正項算出回路247と同様に、入力した2つのデータの差分値の絶対値を算出してから補正項の値を求めるのではなく、複数の補正項の値を算出し、その中から適切なものを選択する。また、補正項算出回路2946においては、加算器2932,2934から供給されるデータAM1,AM3のうちの下位ビットの最上位ビットに“1”又は“0”が付されたデータ間の差分をとり、データAM1,AM3の大小比較を高速に行う。補正項算出回路2946は、算出したデータDM5をセレクタ300に供給する。また、補正項算出回路2946は、最終的にセレクタ303,304による選択動作を制御するための制御信号SEL8となる制御信号SEL5を生成し、この制御信号SEL5をセレクタ298及び選択用制御信号生成回路306に供給する。
【0441】
セレクタ295は、補正項算出回路2941から供給される制御信号SEL0に基づいて、データAM0,AM1のうち、値が小さいものを選択する。セレクタ295は、選択して得られたデータSAM0をセレクタ303に供給する。
【0442】
セレクタ296は、補正項算出回路2942から供給される制御信号SEL1に基づいて、データAM2,AM3のうち、値が小さいものを選択する。セレクタ296は、選択して得られたデータSAM1をセレクタ303に供給する。
【0443】
セレクタ297は、補正項算出回路2941から供給される制御信号SEL0に基づいて、制御信号SEL2,SEL3のうち、いずれか一方を選択する。具体的には、セレクタ297は、データAM1よりもデータAM0の方が値が大きい場合には、制御信号SEL3を選択する。セレクタ297は、選択して得られた制御信号SEL6をセレクタ301に供給する。
【0444】
セレクタ298は、補正項算出回路2941から供給される制御信号SEL0に基づいて、制御信号SEL4,SEL5のうち、いずれか一方を選択する。具体的には、セレクタ298は、データAM1よりもデータAM0の方が値が大きい場合には、制御信号SEL5を選択する。セレクタ298は、選択して得られた制御信号SEL7をセレクタ301に供給する。
【0445】
セレクタ299は、補正項算出回路2941から供給される制御信号SEL0に基づいて、データDM2,DM3のうち、いずれか一方を選択する。具体的には、セレクタ299は、データAM1よりもデータAM0の方が値が大きい場合には、データDM3を選択する。セレクタ299は、選択して得られたデータDS0をセレクタ302に供給する。
【0446】
セレクタ300は、補正項算出回路2941から供給される制御信号SEL0に基づいて、データDM4,DM5のうち、いずれか一方を選択する。具体的には、セレクタ300は、データAM1よりもデータAM0の方が値が大きい場合には、データDM5を選択する。セレクタ300は、選択して得られたデータDS1をセレクタ302に供給する。
【0447】
セレクタ301は、補正項算出回路2942から供給される制御信号SEL1に基づいて、制御信号SEL6,SEL7のうち、いずれか一方を選択する。具体的には、セレクタ301は、データAM3よりもデータAM2の方が値が大きい場合には、制御信号SEL7を選択する。セレクタ301は、選択して得られた制御信号SEL8をセレクタ303,304における選択用の制御信号として供給する。
【0448】
セレクタ302は、補正項算出回路2942から供給される制御信号SEL1に基づいて、データDS0,DS1のうち、いずれか一方を選択する。具体的には、セレクタ302は、データAM3よりもデータAM2の方が値が大きい場合には、データDS1を選択する。セレクタ302は、選択して得られたデータDS2をセレクタ305に供給する。
【0449】
セレクタ303は、制御信号SEL8に基づいて、データSAM0,SAM1のうち、いずれか一方を選択する。具体的には、セレクタ303は、制御信号SEL8が制御信号SEL7であった場合には、データSAM1を選択する。セレクタ303は、選択して得られたデータSAM2を加算器307に供給する。
【0450】
セレクタ304は、制御信号SEL8に基づいて、データDM0,DM1のうち、いずれか一方を選択する。具体的には、セレクタ304は、制御信号SEL8が制御信号SEL7であった場合には、データDM1を選択する。セレクタ304は、選択して得られたデータDS3をセレクタ305に供給する。
【0451】
セレクタ305は、選択用制御信号生成回路306から供給される制御信号SEL9に基づいて、データDS2,DS3のうち、いずれか一方を選択する。セレクタ305は、選択して得られたデータRDMを加算器307に供給する。
【0452】
選択用制御信号生成回路306は、制御信号SEL2,SEL3,SEL4,SEL5に基づいて、セレクタ305による選択動作を制御するための制御信号SEL9を生成する。具体的には、選択用制御信号生成回路306は、制御信号SEL2,SEL3,SEL4,SEL5の論理積と、制御信号SEL2,SEL3,SEL4,SEL5の論理積の否定との論理和をとることによって、制御信号SEL9を生成する。
【0453】
加算器307は、セレクタ303から供給されるデータSAM2と、セレクタ305から供給されるデータRDMとを加算し、対数尤度Iβ0を算出する。加算器307は、算出した対数尤度Iβ0を対数尤度CMとしてIβ0正規化回路308に供給する。
【0454】
Iβ0正規化回路308は、上述したIβ0正規化回路291と同様に、加算器307から供給される対数尤度CMの分布の偏りを是正するための正規化を行う。また、Iβ0正規化回路308は、終結情報TB0Dを用いて、終結処理も行う。Iβ0正規化回路308は、正規化後の対数尤度Iβ0を、必要なダイナミックレンジに応じてクリッピングを行い、対数尤度BT00として、所定のlog−sum演算回路2921,・・・,2928に供給する。このとき、対数尤度BT00は、図示しないレジスタにより1時刻分の遅延がなされた後、所定のlog−sum演算回路2921,・・・,2928に供給される。
【0455】
このようなlog−sum演算回路2921は、対数尤度BT00を求めて出力する。すなわち、log−sum演算回路2921は、求めた対数尤度BT00を、次時刻における対数尤度Iβ0の算出に用いるために、所定のlog−sum演算回路2021,・・・,2928に供給するとともに、外部に出力する。
【0456】
この際、log−sum演算回路2921は、各ステートに到達した4本のパス、又は、符号によっては8本のパスを束ねて得られる4組のパスに対応する尤度を示すデータAM0,AM1,AM2,AM3の中から選択した2つのパスに対応するデータの組み合わせの全てについて尤度の大小を比較することによって、これらのデータAM0,AM1,AM2,AM3のうち、尤度の高い少なくとも2つ以上のパスに対応するデータを求め、これらのパスに対応するデータの中から、最も尤度の高いパスである最尤パスに対応するデータを選択する。より具体的には、log−sum演算回路2921は、データAM0,AM1,AM2,AM3について、いわば勝ち抜き戦に喩えられる動作を行うことによって、データAM0の値、データAM1の値、データAM2の値及びデータAM3の値の大小を比較し、最尤パスに対応するデータを選択する。
【0457】
また、log−sum演算回路2928は、log−sum演算回路2921と同様の構成からなるため、詳細な説明は省略するが、対数尤度DGB0のうちの対数尤度DGB28,DGB29,DGB30,DGB31と、1時刻前に算出された対数尤度BTFのうち、符号に応じて該当するものを対数尤度B0,B1,B2,B3として入力し、これらの対数尤度DGB28,DGB29,DGB30,DGB31,B0,B1,B2,B3を用いて、対数尤度Iβ0を算出し、対数尤度BT07として、所定のlog−sum演算回路2921,・・・,2928に供給するとともに、外部に出力する。
【0458】
このような加算比較選択回路284は、トレリス上の各ステートから次時刻におけるステートへと4本、又は、符号によっては8本のパスが到達するような符号における対数尤度Iβ0を算出する。加算比較選択回路284は、log−sum演算回路2921,・・・,2928のそれぞれにより求められたデータBT00,・・・,BT07を束ね、データBTFとしてセレクタ285に供給する。なお、加算比較選択回路284は、上述した加算比較選択回路242と同様に、本来は、トレリス上の各ステートから次時刻におけるステートへと4本のパスが到達するような符号における対数尤度Iβ0を求めるために設けられるものであるが、上述したように、符号によっては8本のパスが到達するような符号における対数尤度Iβ0を求めることができる。これについては、“5−5−3”及び“5−5−5”に詳述する。
【0459】
セレクタ285は、入力ビット数情報INに基づいて、加算比較選択回路283から供給される対数尤度Iβ0を示す対数尤度BTTと、加算比較選択回路284から供給される対数尤度Iβ0を示すデータBTFとのうち、いずれか一方を選択する。具体的には、セレクタ285は、符号化装置1における要素符号化器による符号が、トレリス上にパラレルパスが存在せず且つ各ステートから次時刻におけるステートへと2本のパスが到達するような符号であった場合には、対数尤度BTTを選択し、符号化装置1における要素符号化器による符号が、トレリス上にパラレルパスが存在せず且つ各ステートから次時刻におけるステートへと4本のパスが到達するような符号であった場合には、対数尤度BTFを選択する。すなわち、ここでは、セレクタ285による選択動作を制御するための制御信号として、入力ビット数情報INを用いているが、実際には、符号構成の示す制御信号がセレクタ285に入力される。
【0460】
このようなIβ0用加算比較選択回路281は、対数尤度Iβ0を算出し、この算出した対数尤度Iβ0を、対数尤度B0として出力する。この対数尤度B0は、Iβ記憶回路160に供給される。
【0461】
一方、Iβ1用加算比較選択回路282は、対数尤度Iβ1を算出するために設けられるものである。Iβ1用加算比較選択回路282は、Iβ0用加算比較選択回路281と同様の構成からなるため、詳細な説明は省略するが、対数尤度DGB0及び終結情報TB0Dの代わりに対数尤度DGB1及び終結情報TB1Dを入力して対数尤度Iβ1を算出し、この算出した対数尤度Iβ1を、対数尤度B1として出力する。この対数尤度B1は、Iβ記憶回路160に供給される。
【0462】
このようなIβ算出回路159は、2系統の対数尤度Iβ0,Iβ1を並列的に算出し、これらの算出した対数尤度Iβ0,Iβ1を、それぞれ、対数尤度B0,B1としてIβ記憶回路160に供給する。
【0463】
Iβ記憶回路160は、図示しないが、例えば、複数バンクのRAMと、制御回路と、選択回路とを有する。Iβ記憶回路160は、Iβ算出回路159から供給される対数尤度B0,B1を記憶する。そして、Iβ記憶回路160は、内部の制御回路による制御の下に、記憶した対数尤度B0,B1のうち、所定の情報を選択回路により選択し、対数軟出力Iλを算出するために用いる対数尤度BTとして、軟出力算出回路161に供給する。なお、要素復号器50は、上述したように、スライディングウィンドウ処理を行う際のIβ記憶回路160におけるメモリマネジメントの手法として、国際公開番号WO99/62183号公報に記載されているものを採用しており、上述した受信データ及び遅延用記憶回路155に対するメモリマネジメントを行うとともに、Iβ記憶回路160に対するメモリマネジメントを行うことによって、最終的に対数軟出力Iλを本来の時系列順に求めることができる。
【0464】
軟出力算出回路161は、Iα算出回路158から供給されるデータAGDと、Iβ記憶回路160から供給される対数尤度BTとを用いて、対数軟出力Iλを算出する。具体的には、軟出力算出回路161は、“2.”の冒頭に記載した表記に基づくと、対数尤度Iγ、対数尤度Iα及び対数尤度Iβを用いて、次式(55)に示す演算を行い、各時刻tにおける対数軟出力Iλを算出する。なお、次式(55)における演算子“#Σ”は、上述した演算子“#”で表されるlog−sum演算の累積加算演算を示すものである。
【0465】
【数55】
【0466】
また、軟出力算出回路161は、シンボル単位又はビット単位で対数軟出力Iλを算出することもできる。軟出力算出回路161は、外部から供給される出力データ選択制御信号CITMと、制御回路60から供給される事前確率情報形式情報CAPPと、符号情報生成回路151から供給される入力ビット数情報IN、メモリ数情報MN及び枝入出力情報BIOとに基づいて、情報シンボル又は情報ビットに対する事後確率情報に対応する対数軟出力Iλ、又は、符号シンボル又は符号ビットに対する事後確率情報に対応する対数軟出力Iλを算出する。軟出力算出回路161は、シンボル単位で算出した対数軟出力Iλ又はビット単位で算出した対数軟出力Iλを、それぞれ、対数軟出力SLM,BLMとして、外部情報算出回路163、振幅調整及びクリップ回路164、及び、硬判定回路165に供給する。
【0467】
具体的には、軟出力算出回路161は、例えば図41に示すように、対数尤度Iαと対数尤度Iγと対数尤度Iβとの和を算出するIα+Iγ+Iβ算出回路310と、イネーブル信号を生成するイネーブル信号生成回路311と、例えば6個のlog−sum演算回路3121,3122,3123,3124,3125,3126と、対数軟出力Iλを算出するIλ算出回路313とを有するものとして実現することができる。
【0468】
Iα+Iγ+Iβ算出回路310は、対数尤度Iβを分配するIβ分配回路314と、復号の対象とする符号のステート数のうちの最大値、ここでは32個の加算器3151,3152,3153,3154,3155,3156,・・・,31531,31532とを有する。
【0469】
Iβ分配回路314は、Iβ記憶回路160から供給される対数尤度BTを符号構成に応じて分配する。すなわち、Iβ分配回路314は、符号構成に応じたトレリスに対応するように、対数尤度BTを分配する。このとき、Iβ分配回路314は、符号情報生成回路151から供給される入力ビット数情報INに基づいて、対数尤度BTを分配する。Iβ分配回路314は、分配して得られた対数尤度Iβを加算器3151,3152,3153,3154,3155,3156,・・・,31531,31532に供給する。すなわち、Iβ分配回路314は、対数軟出力Iλの算出に用いる対数尤度Iβを対数尤度BTDとして加算器3151,3152,3153,3154,3155,3156,・・・,31531,31532に供給する。
【0470】
加算器3151は、Iα算出回路158から供給される対数尤度Iαと対数尤度Iγとの和を示すデータAGDのうちのデータAG00と、Iβ分配回路314から供給される対数尤度BTDのうちの対数尤度BTD00とを加算する。加算器3151は、加算して得られた対数尤度Iαと対数尤度Iγと対数尤度Iβとの和をデータAGB00として出力する。
【0471】
加算器3152は、Iα算出回路158から供給されるデータAGDのうちのデータAG01と、Iβ分配回路314から供給される対数尤度BTDのうちの対数尤度BTD00とを加算する。加算器3152は、加算して得られた対数尤度Iαと対数尤度Iγと対数尤度Iβとの和をデータAGB01として出力する。
【0472】
加算器3153は、Iα算出回路158から供給されるデータAGDのうちのデータAG02と、Iβ分配回路314から供給される対数尤度BTDのうちの対数尤度BTD01とを加算する。加算器3153は、加算して得られた対数尤度Iαと対数尤度Iγと対数尤度Iβとの和をデータAGB02として出力する。
【0473】
加算器3154は、Iα算出回路158から供給されるデータAGDのうちのデータAG03と、Iβ分配回路314から供給される対数尤度BTDのうちの対数尤度BTD01とを加算する。加算器3154は、加算して得られた対数尤度Iαと対数尤度Iγと対数尤度Iβとの和をデータAGB03として出力する。
【0474】
加算器3155は、Iα算出回路158から供給されるデータAGDのうちのデータAG04と、Iβ分配回路314から供給される対数尤度BTDのうちの対数尤度BTD02とを加算する。加算器3155は、加算して得られた対数尤度Iαと対数尤度Iγと対数尤度Iβとの和をデータAGB04として出力する。
【0475】
加算器3156は、Iα算出回路158から供給されるデータAGDのうちのデータAG05と、Iβ分配回路314から供給される対数尤度BTDのうちの対数尤度BTD02とを加算する。加算器3156は、加算して得られた対数尤度Iαと対数尤度Iγと対数尤度Iβとの和をデータAGB05として出力する。
【0476】
加算器31531は、Iα算出回路158から供給されるデータAGDのうちのデータAG30と、Iβ分配回路314から供給される対数尤度BTDのうちの対数尤度BTD15とを加算する。加算器31531は、加算して得られた対数尤度Iαと対数尤度Iγと対数尤度Iβとの和をデータAGB30として出力する。
【0477】
加算器31532は、Iα算出回路158から供給されるデータAGDのうちのデータAG31と、Iβ分配回路314から供給される対数尤度BTDのうちの対数尤度BTD15とを加算する。加算器31532は、加算して得られた対数尤度Iαと対数尤度Iγと対数尤度Iβとの和をデータAGB31として出力する。
【0478】
このようなIα+Iγ+Iβ算出回路310は、対数尤度Iαと対数尤度Iγと対数尤度Iβとの和を算出し、算出したデータAGB00,AGB01,AGB02,AGB03,AGB04,AGB05,・・・,AGB30,AGB31を束ね、データAGBとしてlog−sum演算回路3121,3122,3123,3124,3125,3126に供給する。
【0479】
イネーブル信号生成回路311は、セレクタ3231,3232,3233,3234による選択動作を制御するための制御信号を生成する選択用制御信号生成回路316と、シンボル該当枝選出回路319及びビット該当枝選出回路320,321,322により選出されるべき枝を選択するための有効枝選択回路317と、対数軟出力Iλの算出時に参照すべき枝入出力情報BIOを選択する出力データ選択回路318と、シンボル単位で対数軟出力Iλを算出する際に当該シンボルに該当する枝を選出するシンボル該当枝選出回路319と、ビット単位で対数軟出力Iλを算出する際に当該ビットに該当する枝を選出するビット該当枝選出回路320,321,322と、セレクタ3231,3232,3233,3234とを有する。
【0480】
選択用制御信号生成回路316は、外部から供給される出力データ選択制御信号CITMと、制御回路60から供給される事前確率情報形式情報CAPPとに基づいて、セレクタ3231,3232,3233,3234による選択動作を制御するための制御信号APを生成する。
【0481】
有効枝選択回路317は、符号情報生成回路151から供給される入力ビット数情報IN及びメモリ数情報MNに基づいて、シンボル該当枝選出回路319及びビット該当枝選出回路320,321,322のそれぞれに入力される枝入出力情報BIOが有効であるか否かを示す制御信号M1,M2,M3を生成する。すなわち、有効枝選択回路317は、シンボル該当枝選出回路319及びビット該当枝選出回路320,321,322のそれぞれにより選出されるべき枝を選択するための制御信号M1,M2,M3を生成する。有効枝選択回路317は、生成した制御信号M1,M2をビット該当枝選出回路320,321,322に供給するとともに、制御信号M3をシンボル該当枝選出回路319及びビット該当枝選出回路320,321,322に供給する。
【0482】
出力データ選択回路318は、外部から供給される出力データ選択制御信号CITMと、符号情報生成回路151から供給される入力ビット数情報INとに基づいて、符号情報生成回路151から供給される枝入出力情報BIOの中から、符号構成に応じた枝に対応するものを選択する。出力データ選択回路318は、選択した枝入出力情報BIO0をビット該当枝選出回路320に供給するとともに、選択した枝入出力情報BIO1をビット該当枝選出回路321に供給するとともに、選択した枝入出力情報BIO2をビット該当枝選出回路322に供給する。
【0483】
シンボル該当枝選出回路319は、シンボル単位で対数軟出力Iλを算出するために設けられるものである。シンボル該当枝選出回路319は、符号情報生成回路151から供給される枝入出力情報BIOを用いて、当該シンボルに該当する枝を選出する。このとき、シンボル該当枝選出回路319は、有効枝選択回路317から供給される制御信号M3に基づいて枝を選出する。シンボル該当枝選出回路319は、選出した枝に対応する入力が“0”であるか“1”であるかを示すイネーブル信号SEN0,SEN1,SEN2,SEN3を生成し、イネーブル信号SEN0をセレクタ3231に供給するとともに、イネーブル信号SEN1をセレクタ3232に供給するとともに、イネーブル信号SEN2をセレクタ3233に供給するとともに、イネーブル信号SEN3をセレクタ3234に供給する。
【0484】
ビット該当枝選出回路320は、ビット単位で対数軟出力Iλを算出するために設けられるものである。ビット該当枝選出回路320は、出力データ選択回路318から供給される枝入出力情報BIO0を用いて、当該ビットに該当する枝を選出する。このとき、ビット該当枝選出回路320は、有効枝選択回路317から供給される制御信号M1,M2,M3に基づいて枝を選出する。ビット該当枝選出回路320は、選出した枝に対応する入力が“0”であるか“1”であるかを示すイネーブル信号EN00,EN01を生成し、イネーブル信号EN00をセレクタ3231に供給するとともに、イネーブル信号EN01をセレクタ3232に供給する。
【0485】
ビット該当枝選出回路321は、ビット該当枝選出回路320と同様に、ビット単位で対数軟出力Iλを算出するために設けられるものである。ビット該当枝選出回路321は、出力データ選択回路318から供給される枝入出力情報BIO1を用いて、当該ビットに該当する枝を選出する。このとき、ビット該当枝選出回路321は、有効枝選択回路317から供給される制御信号M1,M2,M3に基づいて枝を選出する。ビット該当枝選出回路321は、選出した枝に対応する入力が“0”であるか“1”であるかを示すイネーブル信号EN10,EN11を生成し、イネーブル信号EN10をセレクタ3233に供給するとともに、イネーブル信号EN11をセレクタ3234に供給する。
【0486】
ビット該当枝選出回路322は、ビット該当枝選出回路320と同様に、ビット単位で対数軟出力Iλを算出するために設けられるものである。ビット該当枝選出回路322は、出力データ選択回路318から供給される枝入出力情報BIO2を用いて、当該ビットに該当する枝を選出する。このとき、ビット該当枝選出回路322は、有効枝選択回路317から供給される制御信号M1,M2,M3に基づいて枝を選出する。ビット該当枝選出回路322は、選出した枝に対応する入力が“0”であるか“1”であるかを示すイネーブル信号EN20,EN21を生成し、イネーブル信号EN20をlog−sum演算回路3125に供給するとともに、イネーブル信号EN21をlog−sum演算回路3126に供給する。
【0487】
セレクタ3231は、選択用制御信号生成回路316から供給される制御信号APに基づいて、シンボル該当枝選出回路319から供給されるイネーブル信号SEN0と、ビット該当枝選出回路320から供給されるイネーブル信号EN00とのうち、いずれか一方を選択する。具体的には、セレクタ3231は、制御信号APが、情報シンボル又は情報ビットに対する情報を出力する旨を出力データ選択制御信号CITMが示し、且つ、シンボル単位である旨を事前確率情報形式情報CAPPが示すものであった場合には、シンボル該当枝選出回路319から供給されるイネーブル信号SEN0を選択する。セレクタ3231は、選択したイネーブル信号ENS0をlog−sum演算回路3121に供給する。
【0488】
セレクタ3232は、選択用制御信号生成回路316から供給される制御信号APに基づいて、シンボル該当枝選出回路319から供給されるイネーブル信号SEN1と、ビット該当枝選出回路320から供給されるイネーブル信号EN01とのうち、いずれか一方を選択する。具体的には、セレクタ3232は、制御信号APが、情報シンボル又は情報ビットに対する情報を出力する旨を出力データ選択制御信号CITMが示し、且つ、シンボル単位である旨を事前確率情報形式情報CAPPが示すものであった場合には、シンボル該当枝選出回路319から供給されるイネーブル信号SEN1を選択する。セレクタ3232は、選択したイネーブル信号ENS1をlog−sum演算回路3122に供給する。
【0489】
セレクタ3233は、選択用制御信号生成回路316から供給される制御信号APに基づいて、シンボル該当枝選出回路319から供給されるイネーブル信号SEN2と、ビット該当枝選出回路321から供給されるイネーブル信号EN10とのうち、いずれか一方を選択する。具体的には、セレクタ3233は、制御信号APが、情報シンボル又は情報ビットに対する情報を出力する旨を出力データ選択制御信号CITMが示し、且つ、シンボル単位である旨を事前確率情報形式情報CAPPが示すものであった場合には、シンボル該当枝選出回路319から供給されるイネーブル信号SEN2を選択する。セレクタ3233は、選択したイネーブル信号ENS2をlog−sum演算回路3123に供給する。
【0490】
セレクタ3234は、選択用制御信号生成回路316から供給される制御信号APに基づいて、シンボル該当枝選出回路319から供給されるイネーブル信号SEN3と、ビット該当枝選出回路321から供給されるイネーブル信号EN11とのうち、いずれか一方を選択する。具体的には、セレクタ3234は、制御信号APが、情報シンボル又は情報ビットに対する情報を出力する旨を出力データ選択制御信号CITMが示し、且つ、シンボル単位である旨を事前確率情報形式情報CAPPが示すものであった場合には、シンボル該当枝選出回路319から供給されるイネーブル信号SEN3を選択する。セレクタ3234は、選択したイネーブル信号ENS3をlog−sum演算回路3124に供給する。
【0491】
このようなイネーブル信号生成回路311は、出力データ選択制御信号CITM、事前確率情報形式情報CAPP、メモリ数情報MN及び枝入出力情報BIOを用いて、選出した枝に対応するイネーブル信号ENS0,ENS1,ENS2,ENS3,EN20,EN21を生成し、log−sum演算回路3121,3122,3123,3124,3125,3126に供給する。
【0492】
log−sum演算回路3121は、図42に示すように、復号の対象とする符号のステート数のうちの最大値をMとすると、M×2−1で表される数のlog−sum演算セル回路325nを有する。ここでは、log−sum演算回路3121は、最大で16ステートを有する符号の復号を行うものとし、31個のlog−sum演算セル回路3251,・・・,32531を有するものとする。
【0493】
log−sum演算セル回路3251は、2つの差分器3261,3262と、6個のセレクタ327,328,329,332,336,338と、セレクタ327,328,329による選択動作を制御するための制御信号を生成する選択用制御信号生成回路330と、セレクタ332による選択動作を制御するための制御信号を生成する選択用制御信号生成回路331と、ANDゲート333と、ORゲート334と、log−sum補正における補正項の値をテーブルとして記憶するルックアップテーブル335と、加算器337とを有する。
【0494】
差分器3261は、Iα+Iγ+Iβ算出回路310から供給されるデータAGBのうち、符号に応じて該当する所定のデータAGB000,AGB001の差分をとる。厳密には、差分器3261は、データAGB000,AGB001が、それぞれ、例えば13ビットからなるものとすると、データAGB000の下位6ビットのデータの最上位ビットに“1”を付したものと、データAGB001の下位6ビットのデータの最上位ビットに“0”を付したものとの差分をとる。差分器3261は、算出した差分値DA1をセレクタ327及び選択用制御信号生成回路330に供給する。
【0495】
差分器3262は、Iα+Iγ+Iβ算出回路310から供給されるデータAGBのうち、符号に応じて該当する所定のデータAGB001,AGB000の差分をとる。厳密には、差分器3262は、データAGB000,AGB001が、それぞれ、例えば13ビットからなるものとすると、データAGB001の下位6ビットのデータの最上位ビットに“1”を付したものと、データAGB000の下位6ビットのデータの最上位ビットに“0”を付したものとの差分をとる。差分器3262は、算出した差分値DA0をセレクタ328及び選択用制御信号生成回路330に供給する。
【0496】
セレクタ327は、選択用制御信号生成回路330から供給される制御信号SL1に基づいて、差分器3261から供給される差分値DA1と、所定の値N1を有するデータとのうち、いずれか一方を選択する。具体的には、差分値DA1に対する補正項の値は、所定の値に漸近する性質を有していることから、セレクタ327は、差分値DA1の値が所定の値N1を超過している場合には、所定の値N1を有するデータを選択する。セレクタ327は、選択して得られたデータSDA1をセレクタ329に供給する。
【0497】
セレクタ328は、選択用制御信号生成回路330から供給される制御信号SL1に基づいて、差分器3262から供給される差分値DA0と、所定の値N1を有するデータとのうち、いずれか一方を選択する。具体的には、差分値DA0に対する補正項の値は、所定の値に漸近する性質を有していることから、セレクタ328は、差分値DA0の値が所定の値N1を超過している場合には、所定の値N1を有するデータを選択する。セレクタ328は、選択して得られたデータSDA0をセレクタ329に供給する。
【0498】
セレクタ329は、選択用制御信号生成回路330から供給される制御信号SL2に基づいて、セレクタ327から供給されるデータSDA1と、セレクタ328から供給されるデータSDA0とのうち、いずれか一方を選択する。具体的には、セレクタ329は、データAGB000の値がデータAGB001の値よりも大きい場合には、セレクタ327から供給されるデータSDA1を選択する。セレクタ329は、選択して得られたデータDMをルックアップテーブル335に供給する。
【0499】
選択用制御信号生成回路330は、データAGB00,AGB01と、差分値DA1,DA0とに基づいて、セレクタ327,328による選択動作を制御するための制御信号SL1を生成するとともに、セレクタ329による選択動作を制御するための制御信号SL2を生成する。選択用制御信号生成回路330は、生成した制御信号SL2を選択用制御信号生成回路331にも供給する。この際、選択用制御信号生成回路330は、上述した選択用制御信号生成回路232と同様に、データAGB00,AGB01に基づいて、メトリックの上位ビットと下位ビットとを分割して、選択用の判定文を示す制御信号SL1,SL2を生成するが、これについては後述する。
【0500】
選択用制御信号生成回路331は、イネーブル信号生成回路311から供給されるイネーブル信号ENS0のうちのイネーブル信号EN000,EN001と、制御信号SL2とに基づいて、セレクタ332による選択動作を制御するための制御信号SELを生成する。
【0501】
セレクタ332は、選択用制御信号生成回路331から供給される制御信号SELに基づいて、データAGB000,AGB001のうち、いずれか一方を選択する。セレクタ332は、選択して得られたデータDAGを加算器337に供給する。
【0502】
ANDゲート333は、イネーブル信号EN000,EN001の論理積をとる。ANDゲート333は、得られた論理積ENAを選択用の制御信号としてセレクタ336に供給する。
【0503】
ORゲート334は、イネーブル信号EN000,EN001の論理和をとる。ORゲート334は、得られた論理和ENを選択用の制御信号としてセレクタ338に供給するとともに、イネーブル信号EN100としてlog−sum演算セル回路32517に供給する。
【0504】
ルックアップテーブル335は、log−sum補正における補正項の値をテーブルとして記憶する。ルックアップテーブル335は、セレクタ329から供給されるデータDMの値に対応する補正項の値をテーブルから読み出し、データRDMとしてセレクタ336に供給する。
【0505】
セレクタ336は、ANDゲート333から供給される論理積ENAに基づいて、ルックアップテーブル335から供給されるデータRDMと、所定の値N2を有するデータとのうち、いずれか一方を選択する。具体的には、セレクタ336は、論理積ENAが“1”であった場合には、データRDMを選択する。セレクタ336は、選択して得られたデータSDMを加算器337に供給する。なお、所定の値N2は、後述するデータCAGの正負識別符号を統一するように加算するオフセット値である。すなわち、データAGB000,AGB001のうちのいずれか一方であるデータDAGは、正負を跨いだ値をとることが考えられるが、正負両方の値を表現することは、回路規模の増大を招く。そこで、log−sum演算セル回路3251においては、データDAGの正負識別符号を統一するように、後述する加算器337により加算すべき所定の値N2を導入している。
【0506】
加算器337は、セレクタ332から供給されるデータDAGと、セレクタ336から供給されるデータSDMとを加算する。加算器337は、算出したデータCAGをセレクタ338に供給する。
【0507】
セレクタ338は、ORゲート334から供給される論理和ENに基づいて、加算器337から供給されるデータCAGと、所定の値N3を有するデータとのうち、いずれか一方を選択する。具体的には、セレクタ338は、論理和ENが“1”であった場合には、データCAGを選択する。セレクタ338は、選択して得られたデータAGLをlog−sum演算セル回路32517に供給する。
【0508】
このようなlog−sum演算回路3251は、Iα+Iγ+Iβ算出回路310から供給されるデータAGB000及びデータAGB001、並びに、イネーブル信号生成回路311から供給されるイネーブル信号EN000及びイネーブル信号EN001を用いて、後述するように、いわば勝ち抜き戦における第1回戦に喩えられる動作を行うことによって、対数軟出力Iλを算出する際に行われるlog−sum演算の累積加算演算における一のlog−sum演算を行う。log−sum演算回路3251は、算出したデータAGLをデータAGB100として、勝ち抜き戦における第2回戦に喩えられる動作を行うlog−sum演算セル回路32517に供給するとともに、イネーブル信号EN100をlog−sum演算セル回路32517に供給する。
【0509】
log−sum演算回路3252は、log−sum演算回路3251と同様の構成からなるため、詳細な説明は省略するが、Iα+Iγ+Iβ算出回路310から供給されるデータAGB002及びデータAGB003、並びに、イネーブル信号生成回路311から供給されるイネーブル信号EN002及びイネーブル信号EN003を用いて、勝ち抜き戦における第1回戦に喩えられる動作を行うことによって、log−sum演算の累積加算演算における一のlog−sum演算を行う。log−sum演算回路3252は、算出したデータAGLをデータAGB101として、log−sum演算セル回路32517に供給するとともに、イネーブル信号EN101をlog−sum演算セル回路32517に供給する。
【0510】
log−sum演算回路3253は、log−sum演算回路3251と同様の構成からなるため、詳細な説明は省略するが、Iα+Iγ+Iβ算出回路310から供給されるデータAGB004及びデータAGB005、並びに、イネーブル信号生成回路311から供給されるイネーブル信号EN004及びイネーブル信号EN005を用いて、勝ち抜き戦における第1回戦に喩えられる動作を行うことによって、log−sum演算の累積加算演算における一のlog−sum演算を行う。log−sum演算回路3253は、算出したデータAGLをデータAGB102として、勝ち抜き戦における第2回戦に喩えられる動作を行うlog−sum演算セル回路32518に供給するとともに、イネーブル信号EN102をlog−sum演算セル回路32518に供給する。
【0511】
log−sum演算回路3254は、log−sum演算回路3251と同様の構成からなるため、詳細な説明は省略するが、Iα+Iγ+Iβ算出回路310から供給されるデータAGB006及びデータAGB007、並びに、イネーブル信号生成回路311から供給されるイネーブル信号EN006及びイネーブル信号EN007を用いて、勝ち抜き戦における第1回戦に喩えられる動作を行うことによって、log−sum演算の累積加算演算における一のlog−sum演算を行う。log−sum演算回路3254は、算出したデータAGLをデータAGB103として、log−sum演算セル回路32518に供給するとともに、イネーブル信号EN103をlog−sum演算セル回路32518に供給する。
【0512】
log−sum演算回路3255は、log−sum演算回路3251と同様の構成からなるため、詳細な説明は省略するが、Iα+Iγ+Iβ算出回路310から供給されるデータAGB008及びデータAGB009、並びに、イネーブル信号生成回路311から供給されるイネーブル信号EN008及びイネーブル信号EN009を用いて、勝ち抜き戦における第1回戦に喩えられる動作を行うことによって、log−sum演算の累積加算演算における一のlog−sum演算を行う。log−sum演算回路3255は、算出したデータAGLをデータAGB104として、勝ち抜き戦における第2回戦に喩えられる動作を行うlog−sum演算セル回路32519に供給するとともに、イネーブル信号EN104をlog−sum演算セル回路32519に供給する。
【0513】
log−sum演算回路3256は、log−sum演算回路3251と同様の構成からなるため、詳細な説明は省略するが、Iα+Iγ+Iβ算出回路310から供給されるデータAGB010及びデータAGB011、並びに、イネーブル信号生成回路311から供給されるイネーブル信号EN010及びイネーブル信号EN011を用いて、勝ち抜き戦における第1回戦に喩えられる動作を行うことによって、log−sum演算の累積加算演算における一のlog−sum演算を行う。log−sum演算回路3256は、算出したデータAGLをデータAGB105として、log−sum演算セル回路32519に供給するとともに、イネーブル信号EN105をlog−sum演算セル回路32519に供給する。
【0514】
log−sum演算回路3257は、log−sum演算回路3251と同様の構成からなるため、詳細な説明は省略するが、Iα+Iγ+Iβ算出回路310から供給されるデータAGB012及びデータAGB013、並びに、イネーブル信号生成回路311から供給されるイネーブル信号EN012及びイネーブル信号EN013を用いて、勝ち抜き戦における第1回戦に喩えられる動作を行うことによって、log−sum演算の累積加算演算における一のlog−sum演算を行う。log−sum演算回路3257は、算出したデータAGLをデータAGB106として、勝ち抜き戦における第2回戦に喩えられる動作を行うlog−sum演算セル回路32520に供給するとともに、イネーブル信号EN106をlog−sum演算セル回路32520に供給する。
【0515】
log−sum演算回路3258は、log−sum演算回路3251と同様の構成からなるため、詳細な説明は省略するが、Iα+Iγ+Iβ算出回路310から供給されるデータAGB014及びデータAGB015、並びに、イネーブル信号生成回路311から供給されるイネーブル信号EN014及びイネーブル信号EN015を用いて、勝ち抜き戦における第1回戦に喩えられる動作を行うことによって、log−sum演算の累積加算演算における一のlog−sum演算を行う。log−sum演算回路3258は、算出したデータAGLをデータAGB107として、log−sum演算セル回路32520に供給するとともに、イネーブル信号EN107をlog−sum演算セル回路32520に供給する。
【0516】
log−sum演算回路3259は、log−sum演算回路3251と同様の構成からなるため、詳細な説明は省略するが、Iα+Iγ+Iβ算出回路310から供給されるデータAGB016及びデータAGB017、並びに、イネーブル信号生成回路311から供給されるイネーブル信号EN016及びイネーブル信号EN017を用いて、勝ち抜き戦における第1回戦に喩えられる動作を行うことによって、log−sum演算の累積加算演算における一のlog−sum演算を行う。log−sum演算回路3259は、算出したデータAGLをデータAGB108として、勝ち抜き戦における第2回戦に喩えられる動作を行うlog−sum演算セル回路32521に供給するとともに、イネーブル信号EN108をlog−sum演算セル回路32521に供給する。
【0517】
log−sum演算回路32510は、log−sum演算回路3251と同様の構成からなるため、詳細な説明は省略するが、Iα+Iγ+Iβ算出回路310から供給されるデータAGB018及びデータAGB019、並びに、イネーブル信号生成回路311から供給されるイネーブル信号EN018及びイネーブル信号EN019を用いて、勝ち抜き戦における第1回戦に喩えられる動作を行うことによって、log−sum演算の累積加算演算における一のlog−sum演算を行う。log−sum演算回路32510は、算出したデータAGLをデータAGB109として、log−sum演算セル回路32521に供給するとともに、イネーブル信号EN109をlog−sum演算セル回路32521に供給する。
【0518】
log−sum演算回路32511は、log−sum演算回路3251と同様の構成からなるため、詳細な説明は省略するが、Iα+Iγ+Iβ算出回路310から供給されるデータAGB020及びデータAGB021、並びに、イネーブル信号生成回路311から供給されるイネーブル信号EN020及びイネーブル信号EN021を用いて、勝ち抜き戦における第1回戦に喩えられる動作を行うことによって、log−sum演算の累積加算演算における一のlog−sum演算を行う。log−sum演算回路32511は、算出したデータAGLをデータAGB110として、勝ち抜き戦における第2回戦に喩えられる動作を行うlog−sum演算セル回路32522に供給するとともに、イネーブル信号EN110をlog−sum演算セル回路32522に供給する。
【0519】
log−sum演算回路32512は、log−sum演算回路3251と同様の構成からなるため、詳細な説明は省略するが、Iα+Iγ+Iβ算出回路310から供給されるデータAGB022及びデータAGB023、並びに、イネーブル信号生成回路311から供給されるイネーブル信号EN022及びイネーブル信号EN023を用いて、勝ち抜き戦における第1回戦に喩えられる動作を行うことによって、log−sum演算の累積加算演算における一のlog−sum演算を行う。log−sum演算回路32512は、算出したデータAGLをデータAGB111として、log−sum演算セル回路32522に供給するとともに、イネーブル信号EN111をlog−sum演算セル回路32522に供給する。
【0520】
log−sum演算回路32513は、log−sum演算回路3251と同様の構成からなるため、詳細な説明は省略するが、Iα+Iγ+Iβ算出回路310から供給されるデータAGB024及びデータAGB025、並びに、イネーブル信号生成回路311から供給されるイネーブル信号EN024及びイネーブル信号EN025を用いて、勝ち抜き戦における第1回戦に喩えられる動作を行うことによって、log−sum演算の累積加算演算における一のlog−sum演算を行う。log−sum演算回路32513は、算出したデータAGLをデータAGB112として、勝ち抜き戦における第2回戦に喩えられる動作を行うlog−sum演算セル回路32523に供給するとともに、イネーブル信号EN112をlog−sum演算セル回路32523に供給する。
【0521】
log−sum演算回路32514は、log−sum演算回路3251と同様の構成からなるため、詳細な説明は省略するが、Iα+Iγ+Iβ算出回路310から供給されるデータAGB026及びデータAGB027、並びに、イネーブル信号生成回路311から供給されるイネーブル信号EN026及びイネーブル信号EN027を用いて、勝ち抜き戦における第1回戦に喩えられる動作を行うことによって、log−sum演算の累積加算演算における一のlog−sum演算を行う。log−sum演算回路32514は、算出したデータAGLをデータAGB113として、log−sum演算セル回路32523に供給するとともに、イネーブル信号EN113をlog−sum演算セル回路32523に供給する。
【0522】
log−sum演算回路32515は、log−sum演算回路3251と同様の構成からなるため、詳細な説明は省略するが、Iα+Iγ+Iβ算出回路310から供給されるデータAGB028及びデータAGB029、並びに、イネーブル信号生成回路311から供給されるイネーブル信号EN028及びイネーブル信号EN029を用いて、勝ち抜き戦における第1回戦に喩えられる動作を行うことによって、log−sum演算の累積加算演算における一のlog−sum演算を行う。log−sum演算回路32515は、算出したデータAGLをデータAGB114として、勝ち抜き戦における第2回戦に喩えられる動作を行うlog−sum演算セル回路32524に供給するとともに、イネーブル信号EN114をlog−sum演算セル回路32524に供給する。
【0523】
log−sum演算回路32516は、log−sum演算回路3251と同様の構成からなるため、詳細な説明は省略するが、Iα+Iγ+Iβ算出回路310から供給されるデータAGB030及びデータAGB031、並びに、イネーブル信号生成回路311から供給されるイネーブル信号EN030及びイネーブル信号EN031を用いて、勝ち抜き戦における第1回戦に喩えられる動作を行うことによって、log−sum演算の累積加算演算における一のlog−sum演算を行う。log−sum演算回路32516は、算出したデータAGLをデータAGB115として、log−sum演算セル回路32524に供給するとともに、イネーブル信号EN115をlog−sum演算セル回路32524に供給する。
【0524】
log−sum演算回路32517は、log−sum演算回路3251と同様の構成からなるため、詳細な説明は省略するが、log−sum演算セル回路3251から供給されるデータAGB100及びイネーブル信号EN100、並びに、log−sum演算セル回路3252から供給されるデータAGB101及びイネーブル信号EN101を用いて、勝ち抜き戦における第2回戦に喩えられる動作を行うことによって、log−sum演算の累積加算演算における一のlog−sum演算を行う。log−sum演算回路32517は、算出したデータAGLをデータAGB200として、勝ち抜き戦における第3回戦に喩えられる動作を行うlog−sum演算セル回路32525に供給するとともに、イネーブル信号EN200をlog−sum演算セル回路32525に供給する。
【0525】
log−sum演算回路32518は、log−sum演算回路3251と同様の構成からなるため、詳細な説明は省略するが、log−sum演算セル回路3253から供給されるデータAGB102及びイネーブル信号EN102、並びに、log−sum演算セル回路3254から供給されるデータAGB103及びイネーブル信号EN103を用いて、勝ち抜き戦における第2回戦に喩えられる動作を行うことによって、log−sum演算の累積加算演算における一のlog−sum演算を行う。log−sum演算回路32518は、算出したデータAGLをデータAGB201として、log−sum演算セル回路32525に供給するとともに、イネーブル信号EN201をlog−sum演算セル回路32525に供給する。
【0526】
log−sum演算回路32519は、log−sum演算回路3251と同様の構成からなるため、詳細な説明は省略するが、log−sum演算セル回路3255から供給されるデータAGB104及びイネーブル信号EN104、並びに、log−sum演算セル回路3256から供給されるデータAGB105及びイネーブル信号EN105を用いて、勝ち抜き戦における第2回戦に喩えられる動作を行うことによって、log−sum演算の累積加算演算における一のlog−sum演算を行う。log−sum演算回路32519は、算出したデータAGLをデータAGB202として、勝ち抜き戦における第3回戦に喩えられる動作を行うlog−sum演算セル回路32526に供給するとともに、イネーブル信号EN202をlog−sum演算セル回路32526に供給する。
【0527】
log−sum演算回路32520は、log−sum演算回路3251と同様の構成からなるため、詳細な説明は省略するが、log−sum演算セル回路3257から供給されるデータAGB106及びイネーブル信号EN106、並びに、log−sum演算セル回路3258から供給されるデータAGB107及びイネーブル信号EN107を用いて、勝ち抜き戦における第2回戦に喩えられる動作を行うことによって、log−sum演算の累積加算演算における一のlog−sum演算を行う。log−sum演算回路32520は、算出したデータAGLをデータAGB203として、log−sum演算セル回路32526に供給するとともに、イネーブル信号EN203をlog−sum演算セル回路32526に供給する。
【0528】
log−sum演算回路32521は、log−sum演算回路3251と同様の構成からなるため、詳細な説明は省略するが、log−sum演算セル回路3259から供給されるデータAGB108及びイネーブル信号EN108、並びに、log−sum演算セル回路32510から供給されるデータAGB109及びイネーブル信号EN109を用いて、勝ち抜き戦における第2回戦に喩えられる動作を行うことによって、log−sum演算の累積加算演算における一のlog−sum演算を行う。log−sum演算回路32521は、算出したデータAGLをデータAGB204として、勝ち抜き戦における第3回戦に喩えられる動作を行うlog−sum演算セル回路32527に供給するとともに、イネーブル信号EN204をlog−sum演算セル回路32527に供給する。
【0529】
log−sum演算回路32522は、log−sum演算回路3251と同様の構成からなるため、詳細な説明は省略するが、log−sum演算セル回路32511から供給されるデータAGB110及びイネーブル信号EN110、並びに、log−sum演算セル回路32512から供給されるデータAGB111及びイネーブル信号EN111を用いて、勝ち抜き戦における第2回戦に喩えられる動作を行うことによって、log−sum演算の累積加算演算における一のlog−sum演算を行う。log−sum演算回路32522は、算出したデータAGLをデータAGB205として、log−sum演算セル回路32527に供給するとともに、イネーブル信号EN205をlog−sum演算セル回路32527に供給する。
【0530】
log−sum演算回路32523は、log−sum演算回路3251と同様の構成からなるため、詳細な説明は省略するが、log−sum演算セル回路32513から供給されるデータAGB112及びイネーブル信号EN112、並びに、log−sum演算セル回路32514から供給されるデータAGB113及びイネーブル信号EN113を用いて、勝ち抜き戦における第2回戦に喩えられる動作を行うことによって、log−sum演算の累積加算演算における一のlog−sum演算を行う。log−sum演算回路32523は、算出したデータAGLをデータAGB206として、勝ち抜き戦における第3回戦に喩えられる動作を行うlog−sum演算セル回路32528に供給するとともに、イネーブル信号EN206をlog−sum演算セル回路32528に供給する。
【0531】
log−sum演算回路32524は、log−sum演算回路3251と同様の構成からなるため、詳細な説明は省略するが、log−sum演算セル回路32515から供給されるデータAGB114及びイネーブル信号EN114、並びに、log−sum演算セル回路32516から供給されるデータAGB115及びイネーブル信号EN115を用いて、勝ち抜き戦における第2回戦に喩えられる動作を行うことによって、log−sum演算の累積加算演算における一のlog−sum演算を行う。log−sum演算回路32524は、算出したデータAGLをデータAGB207として、log−sum演算セル回路32528に供給するとともに、イネーブル信号EN207をlog−sum演算セル回路32528に供給する。
【0532】
log−sum演算回路32525は、log−sum演算回路3251と同様の構成からなるため、詳細な説明は省略するが、log−sum演算セル回路32517から供給されるデータAGB200及びイネーブル信号EN200、並びに、log−sum演算セル回路32518から供給されるデータAGB201及びイネーブル信号EN201を用いて、勝ち抜き戦における第3回戦に喩えられる動作を行うことによって、log−sum演算の累積加算演算における一のlog−sum演算を行う。log−sum演算回路32525は、算出したデータAGLをデータAGB300として、勝ち抜き戦における第4回戦に喩えられる動作を行うlog−sum演算セル回路32529に供給するとともに、イネーブル信号EN300をlog−sum演算セル回路32529に供給する。
【0533】
log−sum演算回路32526は、log−sum演算回路3251と同様の構成からなるため、詳細な説明は省略するが、log−sum演算セル回路32519から供給されるデータAGB202及びイネーブル信号EN202、並びに、log−sum演算セル回路32520から供給されるデータAGB203及びイネーブル信号EN203を用いて、勝ち抜き戦における第3回戦に喩えられる動作を行うことによって、log−sum演算の累積加算演算における一のlog−sum演算を行う。log−sum演算回路32526は、算出したデータAGLをデータAGB301として、log−sum演算セル回路32529に供給するとともに、イネーブル信号EN301をlog−sum演算セル回路32529に供給する。
【0534】
log−sum演算回路32527は、log−sum演算回路3251と同様の構成からなるため、詳細な説明は省略するが、log−sum演算セル回路32521から供給されるデータAGB204及びイネーブル信号EN204、並びに、log−sum演算セル回路32522から供給されるデータAGB205及びイネーブル信号EN205を用いて、勝ち抜き戦における第3回戦に喩えられる動作を行うことによって、log−sum演算の累積加算演算における一のlog−sum演算を行う。log−sum演算回路32527は、算出したデータAGLをデータAGB302として、勝ち抜き戦における第4回戦に喩えられる動作を行うlog−sum演算セル回路32530に供給するとともに、イネーブル信号EN302をlog−sum演算セル回路32530に供給する。
【0535】
log−sum演算回路32528は、log−sum演算回路3251と同様の構成からなるため、詳細な説明は省略するが、log−sum演算セル回路32523から供給されるデータAGB206及びイネーブル信号EN206、並びに、log−sum演算セル回路32524から供給されるデータAGB207及びイネーブル信号EN207を用いて、勝ち抜き戦における第3回戦に喩えられる動作を行うことによって、log−sum演算の累積加算演算における一のlog−sum演算を行う。log−sum演算回路32528は、算出したデータAGLをデータAGB303として、log−sum演算セル回路32530に供給するとともに、イネーブル信号EN303をlog−sum演算セル回路32530に供給する。
【0536】
log−sum演算回路32529は、log−sum演算回路3251と同様の構成からなるため、詳細な説明は省略するが、log−sum演算セル回路32525から供給されるデータAGB300及びイネーブル信号EN300、並びに、log−sum演算セル回路32526から供給されるデータAGB301及びイネーブル信号EN301を用いて、勝ち抜き戦における第4回戦に喩えられる動作を行うことによって、log−sum演算の累積加算演算における一のlog−sum演算を行う。log−sum演算回路32529は、算出したデータAGLをデータAGB400として、勝ち抜き戦における第5回戦、ここでは決勝戦に喩えられる動作を行うlog−sum演算セル回路32531に供給するとともに、イネーブル信号EN400をlog−sum演算セル回路32531に供給する。
【0537】
log−sum演算回路32530は、log−sum演算回路3251と同様の構成からなるため、詳細な説明は省略するが、log−sum演算セル回路32527から供給されるデータAGB302及びイネーブル信号EN302、並びに、log−sum演算セル回路32528から供給されるデータAGB303及びイネーブル信号EN303を用いて、勝ち抜き戦における第4回戦に喩えられる動作を行うことによって、log−sum演算の累積加算演算における一のlog−sum演算を行う。log−sum演算回路32530は、算出したデータAGLをデータAGB401として、log−sum演算セル回路32531に供給するとともに、イネーブル信号EN401をlog−sum演算セル回路32531に供給する。
【0538】
log−sum演算回路32531は、log−sum演算回路3251と同様の構成からなるため、詳細な説明は省略するが、log−sum演算セル回路32529から供給されるデータAGB400及びイネーブル信号EN400、並びに、log−sum演算セル回路32530から供給されるデータAGB401及びイネーブル信号EN401を用いて、勝ち抜き戦における決勝戦に喩えられる動作を行うことによって、log−sum演算の累積加算演算における一のlog−sum演算を行う。log−sum演算回路32531は、算出したイネーブル信号EN500を出力することはないが、算出したデータAGLをデータAGB500として出力する。なお、データAGB500は、データL00としてIλ算出回路313に供給される。
【0539】
このようなlog−sum演算回路3121は、データAGBとイネーブル信号ENS0とを用いて、トレリス上の各枝に対応するイネーブル信号に基づいた勝ち抜き戦に喩えられる動作を行うことによって、例えばトレリス上の枝の入力が“0”であるlog−sum演算の累積加算演算を行い、データL00を算出する。
【0540】
log−sum演算回路3122は、log−sum演算回路3121と同様の構成からなるため、詳細な説明は省略するが、データAGBとイネーブル信号ENS1とを用いて、log−sum演算回路3121と同様に、トレリス上の各枝に対応するイネーブル信号に基づいた勝ち抜き戦に喩えられる動作を行うことによって、例えばトレリス上の枝の入力が“1”であるlog−sum演算の累積加算演算を行い、データL01を算出する。log−sum演算回路3122は、算出したデータL01をIλ算出回路313に供給する。
【0541】
また、log−sum演算回路3123も、log−sum演算回路3121と同様の構成からなるため、詳細な説明は省略するが、データAGBとイネーブル信号ENS2とを用いて、log−sum演算回路3121と同様に、トレリス上の各枝に対応するイネーブル信号に基づいた勝ち抜き戦に喩えられる動作を行うことによって、例えばトレリス上の枝の入力が“0”であるlog−sum演算の累積加算演算を行い、データL10を算出する。log−sum演算回路3123は、算出したデータL10をIλ算出回路313に供給する。
【0542】
さらに、log−sum演算回路3124も、log−sum演算回路3121と同様の構成からなるため、詳細な説明は省略するが、データAGBとイネーブル信号ENS3とを用いて、log−sum演算回路3121と同様に、トレリス上の各枝に対応するイネーブル信号に基づいた勝ち抜き戦に喩えられる動作を行うことによって、例えばトレリス上の枝の入力が“1”であるlog−sum演算の累積加算演算を行い、データL11を算出する。log−sum演算回路3124は、算出したデータL11をIλ算出回路313に供給する。
【0543】
さらにまた、log−sum演算回路3125も、log−sum演算回路3121と同様の構成からなるため、詳細な説明は省略するが、データAGBとイネーブル信号ENS20とを用いて、log−sum演算回路3121と同様に、トレリス上の各枝に対応するイネーブル信号に基づいた勝ち抜き戦に喩えられる動作を行うことによって、例えばトレリス上の枝の入力が“0”であるlog−sum演算の累積加算演算を行い、データL20を算出する。log−sum演算回路3125は、算出したデータL20をIλ算出回路313に供給する。
【0544】
また、log−sum演算回路3126も、log−sum演算回路3121と同様の構成からなるため、詳細な説明は省略するが、データAGBとイネーブル信号ENS21とを用いて、log−sum演算回路3121と同様に、トレリス上の各枝に対応するイネーブル信号に基づいた勝ち抜き戦に喩えられる動作を行うことによって、例えばトレリス上の枝の入力が“1”であるlog−sum演算の累積加算演算を行い、データL21を算出する。log−sum演算回路3126は、算出したデータL21をIλ算出回路313に供給する。
【0545】
Iλ算出回路313は、3つの差分器3241,3242,3243を有する。
【0546】
差分器3241は、log−sum演算回路3121から供給されるデータL00と、log−sum演算回路3122から供給されるデータL01との差分をとる。差分器3241により算出されたデータLM0は、例えば2の補数(2's complement)表記変換等が施される。
【0547】
差分器3242は、log−sum演算回路3123から供給されるデータL10と、log−sum演算回路3124から供給されるデータL11との差分をとる。差分器3242により算出されたデータLM1は、例えば2の補数表記変換等が施される。
【0548】
差分器3243は、log−sum演算回路3124から供給されるデータL20と、log−sum演算回路3126から供給されるデータL21との差分をとる。差分器3243により算出されたデータLM2は、例えば2の補数表記変換等が施される。
【0549】
このようなIλ算出回路313は、log−sum演算回路3121,3122,3123,3124のそれぞれから供給され、いわゆるストレートバイナリ(straight binary)表記とされるデータL00,L01,L10,L11を束ね、シンボル単位で算出した対数軟出力SLMとして出力する。また、Iλ算出回路313は、差分器3241,3242,3243のそれぞれにより算出した2の補数表記とされるデータLM0,LM1,LM2を束ね、ビット単位で算出した対数軟出力BLMとして出力する。
【0550】
以上のように構成される軟出力算出回路161は、イネーブル信号を用いた勝ち抜き戦に喩えられる動作を行うことによって、トレリス上の各枝の入力に応じたlog−sum演算の累積加算演算を実現し、シンボル単位又はビット単位で対数軟出力Iλを算出することができ、それぞれ、対数軟出力SLM,BLMとして出力する。これらの対数軟出力SLM,BLMは、外部情報算出回路163、振幅調整及びクリップ回路164、及び、硬判定回路165に供給される。
【0551】
受信値又は事前確率情報分離回路162は、受信データ及び遅延用記憶回路155から出力され、所定の遅延が施された遅延受信データDADから、受信値又は事前確率情報を分離して取り出すものである。受信値又は事前確率情報分離回路162は、制御回路60から供給される受信値形式情報CRTYと、符号情報生成回路151から供給される入力ビット数情報INとに基づいて、入力した遅延受信データDADを分離する。
【0552】
具体的には、受信値又は事前確率情報分離回路162は、例えば図43に示すように、4つのセレクタ341,342,343,344を有するものとして実現することができる。
【0553】
セレクタ341は、入力ビット数情報INに基づいて、遅延受信データDADのうちの遅延受信データDAD3,DAD4のうち、いずれか一方を選択する。具体的には、セレクタ341は、要素符号化器に対する入力ビット数が“1”であった場合には、遅延受信データDAD4を選択する。セレクタ341は、選択したデータを遅延受信データDASとして出力する。
【0554】
セレクタ342は、受信値形式情報CRTYに基づいて、遅延受信データDADのうちの遅延受信データDAD0と、セレクタ341から供給される遅延受信データDASとのうち、いずれか一方を選択する。具体的には、セレクタ342は、受信値形式情報CRTYが外部情報を示すものであった場合には、遅延受信データDAD0を選択する。セレクタ342は、選択したデータを遅延受信データPD0として出力する。
【0555】
セレクタ343は、受信値形式情報CRTYに基づいて、遅延受信データDADのうちの遅延受信データDAD1,DAD4のうち、いずれか一方を選択する。具体的には、セレクタ343は、受信値形式情報CRTYが外部情報を示すものであった場合には、遅延受信データDAD1を選択する。セレクタ343は、選択したデータを遅延受信データPD1として出力する。
【0556】
セレクタ344は、受信値形式情報CRTYに基づいて、遅延受信データDADのうちの遅延受信データDAD2,DAD5のうち、いずれか一方を選択する。具体的には、セレクタ344は、受信値形式情報CRTYが外部情報を示すものであった場合には、遅延受信データDAD2を選択する。セレクタ344は、選択したデータを遅延受信データPD2として出力する。
【0557】
このような受信値又は事前確率情報分離回路162は、入力した遅延受信データDADのうち、遅延受信データDAD0,DAD1,DAD2,DAD3を束ね、いわゆるオフセットバイナリ(offset binary)表記とされる遅延受信値DRCとして出力するとともに、遅延受信データDAS,DAD4,DAD5を束ね、遅延事前確率情報DAPとして出力するとともに、遅延受信データPD0,PD1,PD2を束ね、遅延外部情報DEXとして出力する。遅延受信値DRCは、外部情報算出回路163及び硬判定回路165に供給され、遅延事前確率情報DAPは、外部情報算出回路163に供給され、遅延外部情報DEXは、そのまま、遅延外部情報SDEXとしてセレクタ1202に供給される。
【0558】
外部情報算出回路163は、軟出力算出回路161から供給される対数軟出力SLM又は対数軟出力BLMと、受信値又は事前確率情報分離回路162から供給される遅延受信値DRC又は遅延事前確率情報DAPとを用いて、外部情報OEを算出する。
【0559】
具体的には、外部情報算出回路163は、例えば図44に示すように、情報ビットに対する外部情報を算出する情報ビット外部情報算出回路350と、情報シンボルに対する外部情報を算出する情報シンボル外部情報算出回路351と、符号に対する外部情報を算出する符号外部情報算出回路352と、2つのセレクタ353,354とを有するものとして実現することができる。
【0560】
情報ビット外部情報算出回路350は、例えば3つの外部情報算出セル回路3551,3552,3553を有する。これらの外部情報算出セル回路3551,3552,3553は、それぞれ、実質的には、対数軟出力BLMと遅延事前確率情報DAPとの差分をとる図示しない差分器から構成される。
【0561】
外部情報算出セル回路3551は、対数軟出力BLMのうちの対数軟出力BLM0と、遅延事前確率情報DAPのうちの遅延事前確率情報DAP0との差分を算出し、この差分値に対して、振幅調整及びクリッピングを施し、さらにオフセットバイナリ表記変換等を施した後、外部情報EX0として出力する。
【0562】
外部情報算出セル回路3552は、対数軟出力BLMのうちの対数軟出力BLM1と、遅延事前確率情報DAPのうちの遅延事前確率情報DAP1との差分を算出し、この差分値に対して、振幅調整及びクリッピングを施し、さらにオフセットバイナリ表記変換等を施した後、外部情報EX1として出力する。
【0563】
外部情報算出セル回路3553は、対数軟出力BLMのうちの対数軟出力BLM2と、遅延事前確率情報DAPのうちの遅延事前確率情報DAP2との差分を算出し、この差分値に対して、振幅調整及びクリッピングを施し、さらにオフセットバイナリ表記変換等を施した後、外部情報EX2として出力する。
【0564】
このような情報ビット外部情報算出回路350は、例えば3系統の外部情報EX0,EX1,EX2をビット単位で算出し、これらの外部情報EX0,EX1,EX2を束ねて外部情報EXBとしてセレクタ353に供給する。
【0565】
情報シンボル外部情報算出回路351は、例えば4つの外部情報算出セル回路3561,3562,3563,3564と、正規化回路357とを有する。これらの各部のうち、外部情報算出セル回路3561,3562,3563,3564は、それぞれ、外部情報算出セル回路3551,3552,3553と同様に、実質的には、対数軟出力SLMと遅延事前確率情報DAPとの差分をとる図示しない差分器から構成される。
【0566】
外部情報算出セル回路3561は、対数軟出力SLMのうちの対数軟出力SLM0と、所定の値Mを有するデータとの差分を算出し、この差分値に対して、振幅調整及びクリッピングを施した後、外部情報ED0として正規化回路357に供給する。
【0567】
外部情報算出セル回路3562は、対数軟出力SLMのうちの対数軟出力SLM1と、遅延事前確率情報DAPのうちの遅延事前確率情報DAP0との差分を算出し、この差分値に対して、振幅調整及びクリッピングを施した後、外部情報ED1として正規化回路357に供給する。
【0568】
外部情報算出セル回路3563は、対数軟出力SLMのうちの対数軟出力SLM2と、遅延事前確率情報DAPのうちの遅延事前確率情報DAP1との差分を算出し、この差分値に対して、振幅調整及びクリッピングを施した後、外部情報ED2として正規化回路357に供給する。
【0569】
外部情報算出セル回路3564は、対数軟出力SLMのうちの対数軟出力SLM3と、遅延事前確率情報DAPのうちの遅延事前確率情報DAP2との差分を算出し、この差分値に対して、振幅調整及びクリッピングを施した後、外部情報ED3として正規化回路357に供給する。
【0570】
正規化回路357は、後述するように、外部情報算出セル回路3561,3562,3563,3564により算出された外部情報ED0,ED1,ED2,ED3の分布の偏りを是正し且つ情報量を削減するための正規化を行う。具体的には、正規化回路357は、外部情報算出セル回路3561,3562,3563,3564により算出された外部情報ED0,ED1,ED2,ED3のうち、最大値を有するものを、例えば“0”といった所定の値に合わせるように、外部情報ED0,ED1,ED2,ED3のそれぞれに対して所定の値を加算した後、必要なダイナミックレンジに応じてクリッピングを行い、さらに、ある1つのシンボルに対する外部情報の値を、他の全てのシンボルに対する外部情報の値から差分するような正規化を行う。正規化回路357は、正規化後の外部情報を外部情報EX0,EX1,EX2として出力する。
【0571】
このような情報シンボル外部情報算出回路351は、例えば3系統の外部情報EX0,EX1,EX2をシンボル単位で算出し、これらの外部情報EX0,EX1,EX2を束ねて外部情報EXSとしてセレクタ353に供給する。
【0572】
符号外部情報算出回路352は、例えば3つの外部情報算出セル回路3581,3582,3583を有する。これらの外部情報算出セル回路3581,3582,3583は、それぞれ、外部情報算出セル回路3551,3552,3553と同様に、実質的には、対数軟出力BLMと遅延受信値DRCとの差分をとる図示しない差分器から構成される。
【0573】
外部情報算出セル回路3581は、対数軟出力BLMのうちの対数軟出力BLM0と、遅延受信値DRCのうちの遅延受信値APS0との差分を算出し、この差分値に対して、振幅調整及びクリッピングを施し、さらにオフセットバイナリ表記変換等を施した後、外部情報EX0として出力する。
【0574】
外部情報算出セル回路3582は、対数軟出力BLMのうちの対数軟出力BLM1と、遅延受信値DRCのうちの遅延受信値APS1との差分を算出し、この差分値に対して、振幅調整及びクリッピングを施し、さらにオフセットバイナリ表記変換等を施した後、外部情報EX1として出力する。
【0575】
外部情報算出セル回路3583は、対数軟出力BLMのうちの対数軟出力BLM2と、遅延受信値DRCのうちの遅延受信値APS2との差分を算出し、この差分値に対して、振幅調整及びクリッピングを施し、オフセットバイナリ表記変換等を施した後、外部情報EX2として出力する。
【0576】
このような符号外部情報算出回路352は、例えば3系統の外部情報EX0,EX1,EX2を算出し、これらの外部情報EX0,EX1,EX2を束ねて外部情報EXCとしてセレクタ354に供給する。
【0577】
セレクタ353は、事前確率情報形式情報CAPPに基づいて、情報ビット外部情報算出回路350から供給される外部情報EXBと、情報シンボル外部情報算出回路351から供給される外部情報EXSとのうち、いずれか一方を選択する。具体的には、セレクタ353は、事前確率情報形式情報CAPPがシンボル単位であることを示すものであった場合には、外部情報EXSを選択する。セレクタ353は、選択して得られた外部情報ESをセレクタ354に供給する。
【0578】
セレクタ354は、出力データ選択制御信号CITMに基づいて、セレクタ353から供給される外部情報ESと、符号外部情報算出回路352から供給される外部情報EXCとのうち、いずれか一方を選択する。具体的には、セレクタ354は、出力データ選択制御信号CITMが符号に対する情報を出力する旨を示すものであった場合には、外部情報EXCを選択する。セレクタ354は、選択して得られた外部情報OEを外部に出力する。
【0579】
このような外部情報算出回路163は、入力した対数軟出力SLM又は対数軟出力BLMと、遅延受信値DCR又は遅延事前確率情報DAPとを用いて、外部情報OEを算出し、この外部情報OEを、そのまま、外部情報SOEとしてセレクタ1201に供給する。
【0580】
振幅調整及びクリップ回路164は、図示しないが、シンボル単位の対数軟出力SLMの振幅を調整するとともに所定のダイナミックレンジにクリップする回路と、ビット単位の対数軟出力BLMの振幅を調整するとともに所定のダイナミックレンジにクリップする回路とを有する。このとき、振幅調整及びクリップ回路164は、外部から供給される出力データ選択制御信号CITMと、制御回路60から供給される事前確率情報形式情報CAPPとに基づいて、対数軟出力SLM,BLMのそれぞれの振幅を調整するとともに所定のダイナミックレンジにクリップしたデータのうち、いずれか一方を、振幅調整後の対数軟出力OLとして出力する。この対数軟出力OLは、そのまま、軟出力SOLとしてセレクタ1201に供給される。
【0581】
硬判定回路165は、復号値である対数軟出力SLM,BLMを硬判定するとともに、遅延受信値DRCを硬判定する。このとき、硬判定回路165は、外部から供給される出力データ選択制御信号CITMと、制御回路60から供給される受信値形式情報CRTY、事前確率情報形式情報CAPP及び信号点配置情報CSIGとに基づいて、対数軟出力SLM,BLM及び遅延受信値DRCを硬判定する。なお、ここでは、符号化装置1がTTCMやSCTCMによる符号化を行うものであった場合には、この符号化装置1は、8PSK変調方式による変調を行うものとし、信号点配置情報CSIGは、8系統の信号点配置情報CSIG0,CSIG1,CSIG2,CSIG3,CSIG4,CSIG5,CSIG6,CSIG7からなるものとする。
【0582】
具体的には、硬判定回路165は、例えば図45に示すように、インバータ360と、値が最小であるシンボルを算出する最小シンボル算出回路361と、後述するセレクタ369による選択動作を制御するための制御信号を生成する選択用制御信号生成回路368と、セレクタ369,371と、符号化装置1がTTCMやSCTCMによる符号化を行うものであった場合におけるI/Q値のデマッピングを行うI/Qデマップ回路370とを有するものとして実現することができる。
【0583】
インバータ360は、軟出力算出回路161から供給され、2の補数表記とされる対数軟出力BLMのうち、所定のビット群を反転し、復号ビット硬判定情報BHDとして出力する。
【0584】
最小シンボル算出回路361は、例えば、3つの比較回路362,364,366と、3つのセレクタ363,365,367とを有するものとして実現することができる。
【0585】
比較回路362は、軟出力算出回路161から供給され、ストレートバイナリ表記とされる対数軟出力SLMのうち、対数軟出力SLM0,SLM1の大小関係を比較する。比較回路362は、求めた大小関係を示す制御信号SL0をセレクタ367に供給するとともに、選択用の制御信号としてセレクタ363に供給する。
【0586】
セレクタ363は、比較回路362から供給される制御信号SL0に基づいて、対数軟出力SLM0,SLM1のうち、値が小さいものを選択する。セレクタ363は、選択して得られたデータSSL0を比較回路366に供給する。
【0587】
比較回路364は、軟出力算出回路161から供給される対数軟出力SLMのうち、対数軟出力SLM2,SLM3の大小関係を比較する。比較回路364は、求めた大小関係を示す制御信号SL1をセレクタ367に供給するとともに、選択用の制御信号としてセレクタ365に供給する。
【0588】
セレクタ365は、比較回路364から供給される制御信号SL1に基づいて、対数軟出力SLM2,SLM3のうち、値が小さいものを選択する。セレクタ365は、選択して得られたデータSSL1を比較回路366に供給する。
【0589】
比較回路366は、セレクタ363から供給されるデータSSL0と、セレクタ365から供給されるデータSSL1との大小関係を比較する。比較回路366は、求めた大小関係を示す制御信号SEL1を選択用の制御信号としてセレクタ367に供給する。
【0590】
セレクタ367は、比較回路366から供給される制御信号SEL1に基づいて、比較回路362から供給される制御信号SL0と、比較回路364から供給される制御信号SL1とのうち、いずれか一方を選択する。具体的には、セレクタ367は、データSSL0の値がデータSSL1の値よりも大きい場合には、制御信号SL1を選択する。セレクタ367は、選択して得られたデータを制御信号SEL0として出力する。
【0591】
このような最小シンボル算出回路361は、シンボル単位の対数軟出力SLMのうち、値が最小であるものを算出し、制御信号SEL0,SEL1を束ねた復号シンボル硬判定情報SHDとして、セレクタ369に供給する。
【0592】
選択用制御信号生成回路368は、外部から供給される出力データ選択制御信号CITMと、制御回路60から供給される事前確率情報形式情報CAPPとに基づいて、セレクタ369による選択動作を制御するための制御信号AISを生成する。
【0593】
セレクタ369は、選択用制御信号生成回路368から供給される制御信号AISに基づいて、インバータ360から供給される復号ビット硬判定情報BHDと、最小シンボル算出回路361から供給される復号シンボル硬判定情報SHDとのうち、いずれか一方を選択する。具体的には、セレクタ369は、制御信号AISが、情報シンボル又は情報ビットに対する情報を出力する旨を出力データ選択制御信号CITMが示し、且つ、シンボル単位である旨を事前確率情報形式情報CAPPが示すものであった場合には、復号シンボル硬判定情報SHDを選択する。セレクタ369は、選択したデータを復号値硬判定情報DHD1として出力する。
【0594】
硬判定回路165は、これらの各部によって、復号ビット硬判定情報BHDと復号シンボル硬判定情報SHDとを求め、セレクタ369により選択された復号値硬判定情報DHD1を、復号値硬判定情報DHDとして出力する。この復号値硬判定情報DHDは、そのまま、復号値硬判定情報SDHとして外部に出力される。
【0595】
なお、硬判定回路165は、復号ビット硬判定情報BHDを求めるにあたって、インバータ360を用いているが、これは、データの表記法に起因するものである。すなわち、復号ビット硬判定情報BHDは、上述したように、2の補数表記とされる対数軟出力BLMを前提に求められるものである。そのため、硬判定回路165は、インバータ360によって、対数軟出力BLMのうち、所定のビット群、具体的には最上位ビットを反転して得られた反転ビットを用いて判定することによって、ビット単位で算出した対数軟出力BLMを硬判定することができる。
【0596】
また、硬判定回路165において、I/Qデマップ回路370は、例えば、デマッピング用のテーブルを記憶するルックアップテーブル372と、7個のセレクタ373,374,375,376,377,379,380と、セレクタ379,380による選択動作を制御するための制御信号を生成する選択用制御信号生成回路378とを有するものとして実現することができる。
【0597】
ルックアップテーブル372は、受信値のデマッピング用のテーブルを記憶する。具体的には、ルックアップテーブル372は、後述するように、I/Q平面におけるI軸に対する境界値をテーブルとして記憶する。ルックアップテーブル372は、オフセットバイナリ表記とされる遅延受信値DRCのうち、同相成分に対応する遅延受信値IRの値と、直交成分に対応する遅延受信値QRの値との組み合わせに対応する境界値をテーブルから読み出し、例えば4系統の境界値データBDR0,BDR1,BDR2,BDR3として選択用制御信号生成回路378に供給する。
【0598】
セレクタ373は、遅延受信値QRに基づいて、信号点配置情報CSIG2,CSIG6のうち、いずれか一方を選択する。具体的には、セレクタ373は、遅延受信値QRが正値を示すものであった場合には、信号点配置情報CSIG2を選択する。セレクタ373は、選択したデータを信号点配置情報SSSS0としてセレクタ380に供給する。
【0599】
セレクタ374は、遅延受信値QRに基づいて、信号点配置情報CSIG3,CSIG5のうち、いずれか一方を選択する。具体的には、セレクタ374は、遅延受信値QRが正値を示すものであった場合には、信号点配置情報CSIG3を選択する。セレクタ374は、選択したデータを信号点配置情報SS0としてセレクタ376に供給する。
【0600】
セレクタ375は、遅延受信値QRに基づいて、信号点配置情報CSIG1,CSIG7のうち、いずれか一方を選択する。具体的には、セレクタ375は、遅延受信値QRが正値を示すものであった場合には、信号点配置情報CSIG1を選択する。セレクタ375は、選択したデータを信号点配置情報SS1としてセレクタ376に供給する。
【0601】
セレクタ376は、遅延受信値IRに基づいて、セレクタ374から供給される信号点配置情報SS0と、セレクタ375から供給される信号点配置情報SS1とのうち、いずれか一方を選択する。具体的には、セレクタ376は、遅延受信値IRが正値を示すものであった場合には、信号点配置情報SS1を選択する。セレクタ376は、選択したデータを信号点配置情報SSS0としてセレクタ379に供給する。
【0602】
セレクタ377は、遅延受信値IRに基づいて、所定の値Mを有するデータと、信号点配置情報CSIG4とのうち、いずれか一方を選択する。具体的には、セレクタ377は、遅延受信値IRが正値を示すものであった場合には、所定の値Mを有するデータを選択する。セレクタ377は、選択したデータを信号点配置情報SSS1としてセレクタ379に供給する。
【0603】
選択用制御信号生成回路378は、遅延受信値QRと、ルックアップテーブル372から供給される境界値データBDR0,BDR1,BDR2,BDR3とに基づいて、セレクタ379による選択動作を制御するための制御信号SEL5を生成するとともに、セレクタ380による選択動作を制御するための制御信号SEL6を生成する。
【0604】
セレクタ379は、選択用制御信号生成回路378から供給される制御信号SEL5に基づいて、信号点配置情報SSS0,SSS1のうち、いずれか一方を選択する。セレクタ379は、選択したデータを信号点配置情報SSSS1としてセレクタ380に供給する。
【0605】
セレクタ380は、選択用制御信号生成回路378から供給される制御信号SEL6に基づいて、信号点配置情報SSSS0,SSSS1のうち、いずれか一方を選択する。セレクタ380は、選択したデータを受信値硬判定情報IRHとしてセレクタ371に供給する。
【0606】
このようなI/Qデマップ回路370は、符号化装置1がTTCMやSCTCMによる符号化を行うものであった場合における受信値硬判定情報IRHを求める。
【0607】
さらに、硬判定回路165において、セレクタ371は、遅延受信値DCRのうちの所定のビット群からなり、オフセットバイナリ表記の硬判定結果を示す受信値硬判定情報BRHと、I/Qデマップ回路370から供給される受信値硬判定情報IRHとのうち、いずれか一方を選択する。具体的には、セレクタ371は、符号化装置1がTTCMやSCTCMによる符号化を行うものであることを受信値形式情報CRTYが示すものであった場合には、受信値硬判定情報IRHを選択する。セレクタ371は、選択したデータを受信値硬判定情報RHDとして出力する。この受信値硬判定情報RHDは、そのまま、受信値硬判定情報SRHとして外部に出力される。
【0608】
なお、硬判定回路165は、受信値硬判定情報BRHを求めるにあたって、上述した復号ビット硬判定情報BHDを求める場合のようにビット反転処理を行わないが、これは、データの表記法に起因するものである。すなわち、受信値硬判定情報BRHは、上述したように、オフセットバイナリ表記とされる遅延受信値DRCを前提に求められるものである。そのため、硬判定回路165は、遅延受信値DRCのうちの所定のビット群、具体的には最上位ビットを用いて判定することによって、遅延受信値DRCを硬判定することができる。
【0609】
このような硬判定回路165は、復号値である対数軟出力SLM,BLMを硬判定して復号値硬判定情報SDHを求めるとともに、遅延受信値DRCを硬判定して受信値硬判定情報SRHを求める。これらの復号値硬判定情報SDH及び受信値硬判定情報SRHは、それぞれ、復号値硬判定情報DHD及び受信値硬判定情報RHDとして外部に出力され、必要に応じてモニタされる。
【0610】
以上説明した軟出力復号回路90は、軟入力の復号受信値TSRを入力すると、Iγ算出回路156及びIγ分配回路157によって、受信値を受信する毎に、対数尤度Iγを算出し、Iα算出回路158によって、対数尤度Iαを算出した後、全ての受信値を受信すると、Iβ算出回路159によって、全ての時刻における各ステートについて、対数尤度Iβを算出する。そして、要素復号器50は、軟出力算出回路161によって、算出した対数尤度Iα,Iβ及びIγを用いて、各時刻における対数軟出力Iλを算出し、この対数軟出力Iλを外部に出力するか、若しくは、外部情報算出回路163に供給する。また、要素復号器50は、外部情報算出回路163によって、各時刻における外部情報を算出する。このように、要素復号器50は、復号受信値TSRと外部情報又はインターリーブデータTEXTとを用いて、Log−BCJRアルゴリズムを適用した軟出力復号を行うことができる。特に、軟出力復号回路90は、PCCC、SCCC、TTCM又はSCTCMにおける要素符号化器の符号構成に拘泥せず、任意の符号に対する軟出力復号を行うことができる。
【0611】
なお、軟出力復号回路90に関する各種特徴については、後述する“5.”においてさらに説明する。
【0612】
2−3 インターリーバの詳細
つぎに、インターリーバ100について詳述する。具体的な構成の説明に先立って、インターリーバ100の基本的な設計概念について説明する。
【0613】
インターリーバ100は、後述するように、インターリーブ処理及びデインターリーブ処理を行うとともに、入力した受信値を遅延させることもできる。そのため、インターリーバ100は、入力した受信値を遅延させるためのRAMと、入力したデータにインターリーブを施すためのRAMとを備えるものとする。なお、これらのRAMは、後述するように、実際には、共用されるものであって、施すべきインターリーブの種類を含む符号構成を示すモードに応じて切り替えられて使用されるものである。
【0614】
遅延用のRAMは、例えば図46に示すように、インターリーバ100が有する後述する制御回路からは、バンクA,Bからなるデュアルポートの1つのRAMに見えるように構成される。ここで、制御回路は、このRAMに対するデータの書き込みに用いる書き込みアドレスと、データの読み出しに用いる読み出しアドレスとによって、同時に偶数アドレス又は奇数アドレスにアクセスすることはできないものとする。インターリーバ100においては、この遅延用のRAMを用いて偶数長遅延させる場合には、例えば、0,1,2,3,4,・・・,DL−2,DL−1,0,1,2,・・・といった書き込みアドレスに基づいて、RAMにおける各アドレスにデータが記憶される。そして、インターリーバ100においては、例えば、1,2,3,4,5,・・・,DL−1,0,1,2,3,・・・といった読み出しアドレスに基づいて、RAMにおける各アドレスからデータが読み出される。また、インターリーバ100は、奇数長遅延させる場合には、偶数長遅延させた出力をレジスタ等に保持させることにより実現する。実際には、遅延用のRAMは、例えば図47に示すように、バンクA,Bのそれぞれの上位アドレス及び下位アドレス用の複数個のRAMから構成される。そのため、インターリーバ100においては、例えば図48に示すように、制御回路により発生したアドレスを適切に変換して各RAMに与える必要がある。なお、図47において、アドレスの最上位ビットを反転させているのは、後述するように、複数のシンボルを入出力する際に、アドレスの指定を簡易にするためである。
【0615】
一方、インターリーブ用のRAMは、例えば図49に示すように、制御回路からは、バンクA,Bからなる2つのRAMに見えるように構成される。インターリーバ100は、上述したように、インターリーブ処理とデインターリーブ処理とを切り替えることができる。そこで、インターリーバ100においては、インターリーブ処理を行う場合には、通常、例えば0,1,2,3,・・・といったようにカウントアップ、又は、・・・,3,2,1,0といったようにカウントダウンしていくことにより発生されるシーケンシャルな書き込みアドレスに基づいて、書き込み用のバンクAとしてのRAMにおける各アドレスにデータが記憶される。そして、インターリーバ100においては、ランダムな読み出しアドレスに基づいて、読み出し用のバンクBとしてのRAMにおける各アドレスからデータが読み出される。一方、インターリーバ100においては、デインターリーブ処理を行う場合には、インターリーブ処理とは逆に、ランダムな書き込みアドレスに基づいて、書き込み用のバンクAとしてのRAMにおける各アドレスにデータが記憶されるとともに、シーケンシャルな読み出しアドレスに基づいて、読み出し用のバンクBとしてのRAMにおける各アドレスからデータが読み出される。インターリーバ100においては、例えば図50に示すように、シーケンシャルな書き込みアドレスとランダムな読み出しアドレスとに基づいて、バンクA,Bのそれぞれに用いるアドレスに変換し、各RAMに与えることになる。
【0616】
つぎに、インターリーバ100から見たアドレス用記憶回路110に対する入出力について説明する。
【0617】
アドレス用記憶回路110は、基本的に、インターリーバ100から供給されるシーケンシャルなアドレスデータIAAに基づいて、例えば3系統のランダムなアドレスデータである読み出しアドレスデータADA0,ADA1,ADA2を出力するものとする。このように、インターリーバ100に対して、アドレス用記憶回路110から複数系統の読み出しアドレスデータADAが与えられることによって、インターリーバ100は、最大で3シンボルのデータに対する複数種類のインターリーブを行うことができる。
【0618】
例えば、インターリーバ100は、図51(A)に示すように、1シンボルの入力データに対して、ランダムなインターリーブを施す場合には、アドレス用記憶回路110からの3系統の読み出しアドレスデータADA0,ADA1,ADA2のうち、読み出しアドレスデータADA0を用いて、インターリーブを行う。なお、以下の説明では、ランダムなインターリーブをランダムインターリーブと称するものとする。
【0619】
また、インターリーバ100は、同図(B)に示すように、2シンボルの入力データに対して、ランダムインターリーブを施す場合には、アドレス用記憶回路110からの3系統の読み出しアドレスデータADA0,ADA1,ADA2のうち、読み出しアドレスデータADA0,ADA1を用いて、インターリーブを行う。
【0620】
さらに、インターリーバ100は、同図(C)に示すように、2シンボルの入力データに対して、互いに異なるアドレスに基づいて個別的にインターリーブを施す場合には、アドレス用記憶回路110からの3系統の読み出しアドレスデータADA0,ADA1,ADA2のうち、読み出しアドレスデータADA0,ADA1を用いて、インターリーブを行う。なお、以下の説明では、このようなインターリーブをインライン(inline)インターリーブと称するものとする。
【0621】
さらにまた、インターリーバ100は、同図(D)に示すように、2シンボルの入力データに対して、各ビットの組み合わせを保持するように、すなわち、各シンボルに対して同一のアドレスに基づいたインターリーブを施す場合には、アドレス用記憶回路110からの3系統の読み出しアドレスデータADA0,ADA1,ADA2のうち、読み出しアドレスデータADA0,ADA1を用いて、インターリーブを行う。なお、以下の説明では、このようなインターリーブをペアワイズ(pair wise)インターリーブと称するものとする。
【0622】
また、インターリーバ100は、同図(E)に示すように、3シンボルの入力データに対して、ランダムインターリーブを施す場合には、アドレス用記憶回路110からの3系統の読み出しアドレスデータADA0,ADA1,ADA2の全てを用いて、インターリーブを行う。
【0623】
さらに、インターリーバ100は、同図(F)に示すように、3シンボルの入力データに対して、インラインインターリーブを施す場合には、アドレス用記憶回路110からの3系統の読み出しアドレスデータADA0,ADA1,ADA2の全てを用いて、インターリーブを行う。
【0624】
さらにまた、インターリーバ100は、同図(G)に示すように、3シンボルの入力データに対して、ペアワイズインターリーブを施す場合には、アドレス用記憶回路110からの3系統の読み出しアドレスデータADA0,ADA1,ADA2の全てを用いて、インターリーブを行う。
【0625】
このように、インターリーバ100は、アドレス用記憶回路110から与えられる複数系統の読み出しアドレスデータADAを用いて、複数種類のインターリーブを行うことができる。なお、複数種類のインターリーブとは、当該インターリーブと逆の置換を行う複数種類のデインターリーブを含むことは勿論である。インターリーバ100は、複数個のRAMを有し、インターリーブの種別に応じて、使用するRAMを適切に選択して切り替えることによって、複数種類のインターリーブを実現する。
【0626】
なお、複数のRAMの具体的な利用方法については後述する。
【0627】
さて、このようなインターリーブ処理又はデインターリーブ処理を行うことが可能であるインターリーバ100は、例えば図52に示すように構成される。インターリーバ100は、アドレス発生等の各種処理を行う制御回路400と、遅延アドレスを発生する遅延アドレス発生回路401と、奇数長遅延を補償するための奇数長遅延補償回路402と、入力したアドレスデータをインターリーブ用のアドレスデータに変換するインターリーブアドレス変換回路403と、入力したアドレスデータを遅延用のアドレスデータに変換する遅延アドレス変換回路404と、後述する記憶回路4071,4072,・・・,40716に分配するアドレスデータを選択するアドレス選択回路405と、記憶回路4071,4072,・・・,40716に分配するデータを選択する入力データ選択回路406と、例えば16個の記憶回路4071,4072,・・・,40716と、出力するデータを選択する出力データ選択回路408とを有する。
【0628】
制御回路400は、後述する記憶回路4071,4072,・・・,40716に対するデータの書き込み及び/または読み出しを制御するものであって、セレクタ1205から供給されるインターリーブ開始位置信号TISを入力すると、インターリーブ又はデインターリーブの際に用いる書き込みアドレスと読み出しアドレスとを発生する。このとき、制御回路400は、外部から供給されるインターリーブモード信号CDINと、制御回路60から供給されるインターリーブ長情報CINL及びインターリーブ長だけ遅延すべき旨を示す動作モード情報CBFとに基づいて、書き込みアドレスと読み出しアドレスとを発生する。制御回路400は、発生したシーケンシャルなアドレスデータである書き込みアドレスデータIWAをインターリーブアドレス変換回路403に供給する。また、制御回路400は、発生したシーケンシャルなアドレスデータIAAをアドレス用記憶回路110に供給するとともに、インターリーブ長遅延読み出しアドレスデータIRAとしてインターリーブアドレス変換回路403に供給する。
【0629】
さらに、制御回路400は、後述するように、制御回路60から供給される終結位置情報CNFTと、終結期間情報CNFLと、終結ステート情報CNFDと、パンクチャ周期情報CNELと、パンクチャパターン情報CNEPとを入力すると、インターリーブ長情報CINLに基づいて、インターリーバ無出力位置情報CNOと、遅延インターリーブ開始位置信号CDSとを生成するとともに、終結時刻情報CGTと、終結ステート情報CGSと、消去位置情報CGEとを生成する。制御回路400は、インターリーブ長分の時間の経過後に、生成したこれらの情報を、それぞれ、インターリーバ無出力位置情報INO、遅延インターリーブ開始位置信号IDS、終結時刻情報IGTと、終結ステート情報IGSと、消去位置情報IGEとして、フレームの先頭に同期させてセレクタ12010に供給する。また、制御回路400は、生成したインターリーバ無出力位置情報CNOをアドレス選択回路405にも供給する。
【0630】
なお、後述するが、制御回路400により発生されたシーケンシャルなアドレスデータである書き込みアドレスデータIWAは、インターリーブモード信号CDINが、当該インターリーバ100がインターリーブ処理を行う旨を指示するものであった場合には、記憶回路4071,4072,・・・,40716に対するデータの書き込みに用いるアドレスデータとなるが、インターリーブモード信号CDINが、当該インターリーバ100がデインターリーブ処理を行う旨を指示するものであった場合には、記憶回路4071,4072,・・・,40716からのデータの読み出しに用いるアドレスデータとなる。同様に、制御回路400により発生されたシーケンシャルなアドレスデータIAAは、インターリーブモード信号CDINが、当該インターリーバ100がインターリーブ処理を行う旨を指示するものであった場合には、記憶回路4071,4072,・・・,40716からのデータの読み出しに用いるランダムなアドレスデータをアドレス用記憶回路110から読み出すためのものとなるが、インターリーブモード信号CDINが、当該インターリーバ100がデインターリーブ処理を行う旨を指示するものであった場合には、記憶回路4071,4072,・・・,40716に対するデータの書き込みに用いるランダムなアドレスデータをアドレス用記憶回路110から読み出すためのものとなる。
【0631】
また、制御回路400は、書き込みアドレスと読み出しアドレスとを発生する際には、図示しないカウンタによりカウントアップしていくことによって、シーケンシャルなアドレスデータを発生するが、書き込みアドレス用のカウンタと、読み出しアドレス用のカウンタとは、後述するが、個別に設けられるものである。
【0632】
遅延アドレス発生回路401は、制御回路60から供給されるインターリーブ長情報CINLに基づいて、遅延用のアドレスデータを発生する。遅延アドレス発生回路401は、発生した書き込み用のアドレスデータである遅延用書き込みアドレスデータDWAと、読み出し用のアドレスデータである遅延用読み出しアドレスデータDRAとを遅延アドレス変換回路404に供給する。
【0633】
奇数長遅延補償回路402は、奇数長遅延を補償するために設けられるものである。すなわち、インターリーバ100は、上述したように、遅延を行う際には2バンクのRAMを用いて構成される。そして、インターリーバ100は、後述するように、各バンクの間で1タイムスロット毎にデータの書き込み及び読み出しを切り替えることから、遅延長、すなわち、インターリーブ長の半分のタイムスロット分のワード数のRAMを2バンク用いることによって、データの遅延を実現することができる。しかしながら、インターリーバ100は、この場合には、遅延長が偶数長に限定されることになる。そこで、奇数長遅延補償回路402は、奇数長遅延に対応するために設けられるものであって、制御回路60から供給されるインターリーブ長情報CINLに基づいて、偶数長遅延を行う場合には、データTDIに対して、RAMによる遅延のみを行い、奇数長遅延を行う場合には、データTDIに対して、RAMによる遅延長−1分の遅延と、レジスタによる1タイムスロット分の遅延を行うように、遅延の対象とするデータであるデータTDIを選択する。
【0634】
具体的には、奇数長遅延補償回路402は、データTDIが6系統のデータTDI0,TDI1,TDI2,TDI3,TDI4,TDI5からなるものとすると、例えば図53に示すように、6個のレジスタ4101,4102,4103,4104,4105,4106と、6個のセレクタ4111,4112,4113,4114,4115,4116とを有するものとして実現することができる。
【0635】
レジスタ4101は、データTDI0を入力すると、このデータTDI0を1タイムスロット分だけ保持する。レジスタ4101は、保持したデータDDD0をセレクタ4111に供給する。
【0636】
レジスタ4102は、データTDI1を入力すると、このデータTDI1を1タイムスロット分だけ保持する。レジスタ4102は、保持したデータDDD1をセレクタ4112に供給する。
【0637】
レジスタ4103は、データTDI2を入力すると、このデータTDI2を1タイムスロット分だけ保持する。レジスタ4103は、保持したデータDDD2をセレクタ4113に供給する。
【0638】
レジスタ4104は、データTDI3を入力すると、このデータTDI3を1タイムスロット分だけ保持する。レジスタ4104は、保持したデータDDD3をセレクタ4114に供給する。
【0639】
レジスタ4105は、データTDI4を入力すると、このデータTDI4を1タイムスロット分だけ保持する。レジスタ4105は、保持したデータDDD4をセレクタ4115に供給する。
【0640】
レジスタ4106は、データTDI5を入力すると、このデータTDI5を1タイムスロット分だけ保持する。レジスタ4106は、保持したデータDDD5をセレクタ4116に供給する。
【0641】
セレクタ4111は、インターリーブ長情報CINLに基づいて、レジスタ4101から供給されるデータDDD0と、データTDI0とのうち、いずれか一方を選択する。具体的には、セレクタ4111は、インターリーブ長が偶数長であった場合には、データTDI0を選択する。セレクタ4111は、選択したデータDS0を、データD0として入力データ選択回路406に供給する。なお、このセレクタ4111に入力されるインターリーブ長情報CINLは、実際には、当該インターリーブ長情報CINLを表すビット列の最下位ビットで足りることはいうまでもない。
【0642】
セレクタ4112は、インターリーブ長情報CINLに基づいて、レジスタ4102から供給されるデータDDD1と、データTDI1とのうち、いずれか一方を選択する。具体的には、セレクタ4112は、インターリーブ長が偶数長であった場合には、データTDI1を選択する。セレクタ4112は、選択したデータDS1を、データD1として入力データ選択回路406に供給する。なお、このセレクタ4112に入力されるインターリーブ長情報CINLは、実際には、当該インターリーブ長情報CINLを表すビット列の最下位ビットで足りることはいうまでもない。
【0643】
セレクタ4113は、インターリーブ長情報CINLに基づいて、レジスタ4103から供給されるデータDDD2と、データTDI2とのうち、いずれか一方を選択する。具体的には、セレクタ4113は、インターリーブ長が偶数長であった場合には、データTDI2を選択する。セレクタ4113は、選択したデータDS2を、データD2として入力データ選択回路406に供給する。なお、このセレクタ4113に入力されるインターリーブ長情報CINLは、実際には、当該インターリーブ長情報CINLを表すビット列の最下位ビットで足りることはいうまでもない。
【0644】
セレクタ4114は、インターリーブ長情報CINLに基づいて、レジスタ4104から供給されるデータDDD3と、データTDI3とのうち、いずれか一方を選択する。具体的には、セレクタ4114は、インターリーブ長が偶数長であった場合には、データTDI3を選択する。セレクタ4114は、選択したデータDS3を、データD3として入力データ選択回路406に供給する。なお、このセレクタ4114に入力されるインターリーブ長情報CINLは、実際には、当該インターリーブ長情報CINLを表すビット列の最下位ビットで足りることはいうまでもない。
【0645】
セレクタ4115は、インターリーブ長情報CINLに基づいて、レジスタ4105から供給されるデータDDD4と、データTDI4とのうち、いずれか一方を選択する。具体的には、セレクタ4115は、インターリーブ長が偶数長であった場合には、データTDI4を選択する。セレクタ4115は、選択したデータDS4を、データD4として入力データ選択回路406に供給する。なお、このセレクタ4115に入力されるインターリーブ長情報CINLは、実際には、当該インターリーブ長情報CINLを表すビット列の最下位ビットで足りることはいうまでもない。
【0646】
セレクタ4116は、インターリーブ長情報CINLに基づいて、レジスタ4106から供給されるデータDDD5と、データTDI5とのうち、いずれか一方を選択する。具体的には、セレクタ4116は、インターリーブ長が偶数長であった場合には、データTDI5を選択する。セレクタ4116は、選択したデータDS5を、データD5として入力データ選択回路406に供給する。なお、このセレクタ4116に入力されるインターリーブ長情報CINLは、実際には、当該インターリーブ長情報CINLを表すビット列の最下位ビットで足りることはいうまでもない。
【0647】
このような奇数長遅延補償回路402は、データTDIを入力すると、偶数長遅延の場合には、データTDIをレジスタを通さないで出力し、奇数長遅延の場合には、データTDIをレジスタにより1タイムスロットだけ保持してから出力する。
【0648】
インターリーブアドレス変換回路403は、外部から供給されるインターリーブモード信号CDINと、制御回路60から供給されるインターリーバタイプ情報CINT及びインターリーブ長だけ遅延すべき旨を示す動作モード情報CBFとに基づいて、制御回路400から供給されるシーケンシャルなアドレスデータである書き込みアドレスデータIWA及びインターリーブ長遅延読み出しアドレスデータIRAと、アドレス用記憶回路110から供給されるランダムなアドレスデータである読み出しアドレスデータADAとのうち、所望のアドレスデータを選択し、インターリーブ用のアドレスデータに変換する。インターリーブアドレス変換回路403は、変換して得られた例えば6系統のアドレスデータAA0,BA0,AA1,BA1,AA2,BA2をアドレス選択回路405に供給する。また、インターリーブアドレス変換回路403は、入力した情報に基づいて、出力データ選択回路408における選択動作を指示するための例えば4系統の制御信号IOBS,IOBP0,IOBP1,IOBP2を生成し、これらの制御信号を出力データ選択回路408に供給する。
【0649】
遅延アドレス変換回路404は、遅延アドレス発生回路401から供給される遅延用書き込みアドレスデータDWAと、遅延用読み出しアドレスデータDRAとのうち、所望のアドレスデータを選択し、遅延用のアドレスデータに変換する。遅延アドレス変換回路404は、変換して得られた例えば2系統のアドレスデータDAA,DBAをアドレス選択回路405に供給する。また、遅延アドレス変換回路404は、入力した情報に基づいて、出力データ選択回路408における選択動作を指示するための例えば2系統の制御信号DOBS,DOBPを生成し、これらの制御信号を出力データ選択回路408に供給する。
【0650】
アドレス選択回路405は、制御回路60から供給されるインターリーバタイプ情報CINTと、制御回路400から供給されるインターリーバ無出力位置情報CNOとに基づいて、インターリーブアドレス変換回路403から供給されるアドレスデータAA0,BA0,AA1,BA1,AA2,BA2と、遅延アドレス変換回路404から供給されるアドレスデータDAA,DBAとのうち、記憶回路4071,4072,・・・,40716に分配するアドレスデータを選択する。アドレス選択回路405は、選択したアドレスデータAR00,AR01,・・・,AR15を、それぞれ、記憶回路4071,4072,・・・,40716に供給する。
【0651】
また、アドレス選択回路405には、インターリーバタイプ情報CINTと、インターリーバ無出力位置情報CNOとの他に、図示しないが、制御回路400により生成され且つインターリーブアドレス変換回路405を経て入力される制御信号であって、インターリーブ又はデインターリーブを行う際における記憶回路4071,4072,・・・,40716に対する書き込み許可信号や書き込み用のバンクを示す信号と、遅延アドレス変換回路404により生成される制御信号であって、遅延を行う際における記憶回路4071,4072,・・・,40716に対する書き込み許可信号や書き込み用のバンクを示す信号とが入力される。アドレス選択回路405は、これらの情報に基づいて、記憶回路4071,4072,・・・,40716に対する書き込み許可信号XWEと、記憶回路4071,4072,・・・,40716に対するクロック信号を阻止するためのクロック阻止(clock inhibit)信号IHと、記憶回路4071,4072,・・・,40716に対するデータの書き込みをいわゆるパーシャルライト(partial write)として行わせるためのパーシャルライト制御信号PWとを生成する。アドレス選択回路405は、これらの書き込み許可信号XWE、クロック阻止信号IH及びパーシャルライト制御信号PWを、記憶回路4071,4072,・・・,40716に供給する。
【0652】
入力データ選択回路406には、セレクタ1204から供給される例えば3系統のデータTII0,TII1,TII2がデータI0,I1,I2として入力されるとともに、奇数長遅延補償回路402から供給されるデータD0,D1,D2,D3,D4,D5が入力される。入力データ選択回路406は、外部から供給されるインターリーブモード信号CDINと、制御回路60から供給されるインターリーバタイプ情報CINT及びインターリーバ入出力置換情報CIPTとに基づいて、データI0,I1,I2,D0,D1,D2,D3,D4,D5のうち、記憶回路4071,4072,・・・,40716に分配するデータを選択する。特に、入力データ選択回路406は、入力したデータにインターリーブ又はデインターリーブを施す場合には、データI0,I1,I2を入力し、これらのデータI0,I1,I2のうち、記憶回路4071,4072,・・・,40716に分配するデータを選択する。また、入力データ選択回路406は、入力したデータを遅延させる場合には、遅延用のデータD0,D1,D2,D3,D4,D5を入力し、これらのデータD0,D1,D2,D3,D4,D5のうち、記憶回路4071,4072,・・・,40716に分配するデータを選択する。入力データ選択回路406は、選択したデータIR00,IR01,・・・,IR15を、それぞれ、記憶回路4071,4072,・・・,40716に供給する。
【0653】
なお、この入力データ選択回路406は、後述するように、複数シンボルに対してインターリーブを施す場合に、各シンボル間で相互に置換する機能を有する。すなわち、入力データ選択回路406は、インターリーバ入出力置換情報CIPTに基づいて、入力したデータI0,I1,I2について、各シンボルの順序を入れ替える機能を有する。
【0654】
記憶回路4071,4072,・・・,40716は、それぞれ、パーシャルライト機能を有するRAMの他、複数のセレクタ等を有する。記憶回路4071,4072,・・・,40716は、それぞれ、アドレス選択回路405から供給されるアドレスデータAR00,AR01,・・・,AR15により指定されたアドレスに対して、入力データ選択回路406から供給されるデータIR00,IR01,・・・,IR15を書き込み、記憶する。そして、記憶回路4071,4072,・・・,40716は、それぞれ、アドレス選択回路405から供給されるアドレスデータAR00,AR01,・・・,AR15により指定されたアドレスから、記憶しているデータを読み出し、データOR00,OR01,・・・,OR15として出力データ選択回路408に供給する。このとき、記憶回路4071,4072,・・・,40716は、それぞれ、アドレス選択回路405から供給される書き込み許可信号XWEに基づいて、データの書き込みを開始する。また、記憶回路4071,4072,・・・,40716は、それぞれ、クロック阻止信号IHに基づいて、書き込み及び/又は読み出しを含む一切の動作を停止することもできる。
【0655】
さらに、記憶回路4071,4072,・・・,40716は、それぞれ、パーシャルライト制御信号PWに基づいて、パーシャルライト機能によるデータの書き込みを行うこともできる。すなわち、通常のRAMにおいては、その書き込み動作は、あるアドレスが指定された場合に、このアドレスに対応するビット数分のメモリセルが選択され、これらの全てのメモリセルに情報を一度に書き込むことにより行われる。一方、パーシャルライトのRAMにおいては、その書き込み動作は、選択された全てのメモリセルに情報を一度に書き込むものではなく、アドレスにより選択されたメモリセルのうち、任意のビットのメモリセルにのみ書き込むことにより行われる。記憶回路4071,4072,・・・,40716は、それぞれ、このようなパーシャルライト機能を有するRAMを有しており、パーシャルライト制御信号PWに基づいて、指定アドレスの一部分への情報の書き込みを行うこともできる。
【0656】
インターリーバ100は、これらの記憶回路4071,4072,・・・,40716に対するデータの書き込み及び/又は読み出しを制御することによって、インターリーブ処理及びデインターリーブ処理、並びに、受信値の遅延処理を実現することができる。
【0657】
具体的には、記憶回路4071,4072,・・・,40716は、それぞれ、例えば図54に示すように、インバータ420と、5つのセレクタ421,422,423,425,426と、パーシャルライト機能付きのRAM424とを有するものとして実現することができる。なお、同図においては、記憶回路407と総称する。また、同図においては、アドレス選択回路405から供給されるアドレスデータAR00,AR01,・・・,AR15をアドレスデータARと総称するとともに、入力データ選択回路406から供給されるデータIR00,IR01,・・・,IR15をデータIRと総称するものとし、さらに、出力データ選択回路408に供給するデータOR00,OR01,・・・,OR15をデータORと総称するものとする。
【0658】
インバータ420は、アドレスデータARの最上位ビットを入力し、この最上位ビットを反転する。インバータ420は、反転して得られた反転ビットIARをセレクタ421に供給する。
【0659】
セレクタ421は、アドレス選択回路405から供給されるパーシャルライト制御信号PWに基づいて、インバータ420から供給される反転ビットIARと、値が“0”であるビットとのうち、いずれか一方を選択し、1ビットのデータHPWとして出力する。具体的には、セレクタ421は、パーシャルライト制御信号PWが、パーシャルライト機能によるデータの書き込みを指示するものであった場合には、反転ビットIARを選択する。このセレクタ421により選択されたデータHPWは、例えば8ビットにパラレル変換され、データVIHとしてRAM424に供給される。
【0660】
セレクタ422は、アドレス選択回路405から供給されるパーシャルライト制御信号PWに基づいて、アドレスデータARの最上位ビットと、値が“0”であるビットとのうち、いずれか一方を選択し、1ビットのデータLPWとして出力する。具体的には、セレクタ422は、パーシャルライト制御信号PWが、パーシャルライト機能によるデータの書き込みを指示するものであった場合には、アドレスデータARの最上位ビットを選択する。このセレクタ422により選択されたデータLPWは、例えば8ビットにパラレル変換され、データVILとしてRAM424に供給される。
【0661】
セレクタ423には、データIRが上位ビットと下位ビットとに分割されて入力される。例えば、セレクタ423には、データIRが16ビットからなる場合には、上位8ビットのデータIR[15:8]と、下位8ビットのデータIR[7:0]が入力される。セレクタ423は、アドレス選択回路405から供給されるパーシャルライト制御信号PWに基づいて、データIRの上位ビットと下位ビットとのうち、いずれか一方を選択する。具体的には、セレクタ423は、パーシャルライト制御信号PWが、パーシャルライト機能によるデータの書き込みを指示するものであった場合には、データIRの下位ビットを選択する。このセレクタ423により選択されたデータIR1は、データIRの下位ビットのデータIR0と束ねられ、データI(={IR1,IR0})としてRAM424に供給される。
【0662】
RAM424は、簡潔に言えば、アドレスデータARに基づいて、データIRの書き込み及びデータORの読み出しを行うものであるが、上述したように、パーシャルライト機能を有することから、単純に、アドレスデータAR及びデータIRを入力し、データORを出力する構成とはなっていない。
【0663】
RAM424には、アドレス選択回路405から供給される書き込み許可信号XWE及びクロック阻止信号IHが供給される。RAM424は、書き込み許可信号XWEが入力されると、データの書き込みが可能な状態となる。RAM424には、アドレスデータARの最上位ビットを除いたデータであるアドレスデータIAと、データVIH,VILとに基づいて、データI(={IR1,IR0})が書き込まれる。また、RAM424からは、アドレスデータIAと、データVIH,VILとに基づいて、データOH,OLが読み出される。これらのデータOH,OLは、ともに、セレクタ425,426に供給される。また、RAM424は、クロック阻止信号IHが入力されると、書き込み及び/又は読み出しを含む一切の動作を停止する。
【0664】
なお、RAM424に対して入出力される各データの詳細については後述するものとする。
【0665】
セレクタ425は、セレクタ422から供給されたデータLPWに所定の遅延が施されたデータLPDに基づいて、RAM424から供給されるデータOH,OLのうち、いずれか一方を選択し、データSOHとして出力する。具体的には、セレクタ425は、データLPDが“0”であった場合には、データOHを選択し、データLPDが“1”であった場合には、データOLを選択する。すなわち、セレクタ425は、パーシャルライト機能によるデータの書き込み及び読み出しを考慮し、アドレス方向で、上位ビットのデータ又は下位ビットのデータのうちのいずれを出力すべきかを決定するために設けられるものである。
【0666】
セレクタ426は、セレクタ422から供給されたデータLPWに所定の遅延が施されたデータLPDに基づいて、RAM424から供給されるデータOH,OLのうち、いずれか一方を選択し、データSOLとして出力する。具体的には、セレクタ426は、データLPDが“0”であった場合には、データOLを選択し、データLPDが“1”であった場合には、データOHを選択する。すなわち、セレクタ426は、セレクタ425と同様に、パーシャルライト機能によるデータの書き込み及び読み出しを考慮し、アドレス方向で、上位ビットのデータ又は下位ビットのデータのうちのいずれを出力すべきかを決定するために設けられるものである。
【0667】
なお、セレクタ425により選択されたデータSOHと、セレクタ426により選択されたデータSOLとは、データOR(={SOH,SOL})として、出力データ選択回路408に供給される。
【0668】
このような記憶回路4071,4072,・・・,40716は、それぞれ、アドレスデータAR00,AR01,・・・,AR15に基づいて、データIR00,IR01,・・・,IR15の書き込み、及び、データOR00,OR01,・・・,OR15の読み出しを行う。
【0669】
なお、記憶回路4071,4072,・・・,40716は、それぞれ、上述したように、パーシャルライト機能によるデータの書き込みを可能とするが、これについては後述する。
【0670】
出力データ選択回路408は、外部から供給されるインターリーブモード信号CDINと、制御回路60から供給されるインターリーバタイプ情報CINT及びインターリーバ入出力置換情報CIPTと、インターリーブアドレス変換回路403から供給される制御信号IOBS,IOBP0,IOBP1,IOBP2と、遅延アドレス変換回路404から供給される制御信号DOBS,DOBPとに基づいて、記憶回路4071,4072,・・・,40716のそれぞれから供給されるデータOR00,OR01,・・・,OR15のうち、出力すべきデータを選択する。出力データ選択回路408は、入力したデータにインターリーブ又はデインターリーブを施した場合には、選択したデータを、例えば3系統のインターリーバ出力データIIO0,IIO1,IIO2として、それぞれ、セレクタ1207に供給する。また、出力データ選択回路408は、入力したデータを遅延させた場合には、選択したデータを、例えば6系統のインターリーブ長遅延受信値IDO0,IDO1,IDO2,IDO3,IDO4,IDO5として、それぞれ、セレクタ1206に供給する。
【0671】
なお、この出力データ選択回路408は、後述するように、複数シンボルに対してデインターリーブを施す場合に、各シンボル間で相互に置換する機能を有する。すなわち、出力データ選択回路408は、インターリーバ入出力置換情報CIPTに基づいて、出力するインターリーバ出力データIIO0,IIO1,IIO2について、各シンボルの順序を入れ替える機能を有する。
【0672】
以上説明したインターリーバ100は、インターリーブ処理を行う場合には、制御回路400により発生したシーケンシャルなアドレスデータである書き込みアドレスデータIWAを用いて、アドレス選択回路405によって、適切な記憶回路4071,4072,・・・,40716にアドレスを分配するとともに、入力データ選択回路406によって、データI0,I1,I2を適切な記憶回路4071,4072,・・・,40716にアドレスを分配し、これらの記憶回路4071,4072,・・・,40716にデータを書き込む。一方、インターリーバ100は、制御回路400により発生したシーケンシャルなアドレスデータIAAに基づいてアドレス用記憶回路110から読み出されたランダムなアドレスデータである読み出しアドレスデータADAを用いて、アドレス選択回路405によって、適切な記憶回路4071,4072,・・・,40716にアドレスを分配し、記憶回路4071,4072,・・・,40716に記憶されているデータを読み出す。そして、インターリーバ100は、出力データ選択回路408によって、適切な記憶回路4071,4072,・・・,40716から出力されるデータを選択し、インターリーバ出力データIIO0,IIO1,IIO2として出力する。このようにすることによって、インターリーバ100は、インターリーブ処理を行うことができる。
【0673】
また、インターリーバ100は、デインターリーブ処理を行う場合には、制御回路400により発生したシーケンシャルなアドレスデータIAAに基づいてアドレス用記憶回路110から読み出されたランダムなアドレスデータである読み出しアドレスデータADAを用いて、アドレス選択回路405によって、適切な記憶回路4071,4072,・・・,40716にアドレスを分配するとともに、入力データ選択回路406によって、データI0,I1,I2を適切な記憶回路4071,4072,・・・,40716にアドレスを分配し、これらの記憶回路4071,4072,・・・,40716にデータを書き込む。一方、インターリーバ100は、制御回路400により発生したシーケンシャルなアドレスデータである書き込みアドレスデータIWAを用いて、アドレス選択回路405によって、適切な記憶回路4071,4072,・・・,40716にアドレスを分配し、記憶回路4071,4072,・・・,40716に記憶されているデータを読み出す。そして、インターリーバ100は、出力データ選択回路408によって、適切な記憶回路4071,4072,・・・,40716から出力されるデータを選択し、インターリーバ出力データIIO0,IIO1,IIO2として出力する。このようにすることによって、インターリーバ100は、デインターリーブ処理を行うことができる。
【0674】
さらに、インターリーバ100は、入力したデータを遅延させる場合には、制御回路400により発生した書き込みアドレスデータIWAを用いて、アドレス選択回路405によって、適切な記憶回路4071,4072,・・・,40716にアドレスを分配するとともに、入力データ選択回路406によって、データD0,D1,D2,D3,D4,D5を適切な記憶回路4071,4072,・・・,40716にアドレスを分配し、これらの記憶回路4071,4072,・・・,40716にデータを書き込む。一方、インターリーバ100は、制御回路400により発生したシーケンシャルなアドレスデータであるインターリーブ長遅延読み出しアドレスデータIRAを用いて、アドレス選択回路405によって、適切な記憶回路4071,4072,・・・,40716にアドレスを分配し、記憶回路4071,4072,・・・,40716に記憶されているデータを読み出す。そして、インターリーバ100は、出力データ選択回路408によって、適切な記憶回路4071,4072,・・・,40716から出力されるデータを選択し、インターリーブ長遅延受信値IDO0,IDO1,IDO2,IDO3,IDO4,IDO5として出力する。このようにすることによって、インターリーバ100は、入力したデータを遅延させることができる。
【0675】
つぎに、インターリーバ100におけるRAMの利用方法の具体例について説明する。
【0676】
要素復号器50は、データ用のRAMとして、インターリーバ100における記憶回路4071,4072,・・・,40716のそれぞれが有する16個のRAMを備え、アドレス用のRAMとして、アドレス用記憶回路110が有する複数のRAMを備える。ここでは、記憶回路4071,4072,・・・,40716のそれぞれが有する16個のRAMは、16ビット×4096ワードの記憶容量を有するものとし、アドレス用記憶回路110は、14ビット×4096ワードの記憶容量を有する6個のRAMを備えるものとする。また、記憶回路4071,4072,・・・,40716におけるRAMを、それぞれ、RAMD01,D02,・・・,D16と称するとともに、アドレス用記憶回路110におけるRAMを、RAMAと称するものとする。
【0677】
まず、1シンボルの入力データに対して、ランダムインターリーブを施す例について説明する。ここでは、符号化装置1が、符号化率が“1/6以上”のPCCCを行うものであり、入力されるデータの容量が“16キロワード以下”であるものとする。
【0678】
この場合、インターリーバ100は、1シンボルのデータについてインターリーブを施すとともに、6シンボルのデータについて遅延を施す必要がある。そこで、インターリーバ100は、例えば図55(A)に示すように、16個のRAMD01,D02,・・・,D16のうち、12個のRAMD01,D02,D03,D04,D05,D06,D07,D08,D09,D10,D11,D12を遅延に用いるとともに、同図(B)に示すように、残りの4つのRAMD13,D14,D15,D16をインターリーブに用いる。また、アドレス用のRAMとしては、同図(C)に示すように、6個のRAMAのうち、任意の4つのRAMAを用いればよい。したがって、インターリーバ100及びアドレス用記憶回路110は、同図(D)に示すように、2つのRAMAを用いないことになる。
【0679】
より具体的には、インターリーバ100は、同図(A)及び同図(B)に示すように、RAMD01,D02,D05,D06,D09,D10,D13,D14を、上述したバンクA(A0,A1)として用い、RAMD03,D04,D07,D08,D11,D12,D15,D16を、上述したバンクB(B0,B1)として用いる。すなわち、インターリーバ100は、RAMD01,D02,D05,D06,D09,D10,D13,D14に対してデータを書き込んでいる場合には、RAMD03,D04,D07,D08,D11,D12,D15,D16からデータを読み出し、RAMD03,D04,D07,D08,D11,D12,D15,D16に対してデータを書き込んでいる場合には、RAMD01,D02,D05,D06,D09,D10,D13,D14からデータを読み出す。
【0680】
RAMD01,D02には、それぞれ、アドレス選択回路405から供給されるアドレスデータAR00,AR01に基づいて、入力データ選択回路406からデータIR00,IR01として、遅延用のデータD0,D1が供給され、書き込まれる。このとき、RAMD01には、データD0,D1のうち、0乃至4キロワード分のデータが書き込まれ、RAMD02には、4乃至8キロワード分のデータが書き込まれる。また、RAMD05,D06には、それぞれ、アドレス選択回路405から供給されるアドレスデータAR04,AR05に基づいて、入力データ選択回路406からデータIR04,IR05として、遅延用のデータD2,D3が供給され、書き込まれる。このとき、RAMD05には、データD2,D3のうち、0乃至4キロワード分のデータが書き込まれ、RAMD06には、4乃至8キロワード分のデータが書き込まれる。さらに、RAMD09,D10には、それぞれ、アドレス選択回路405から供給されるアドレスデータAR08,AR09に基づいて、入力データ選択回路406からデータIR08,IR09として、遅延用のデータD4,D5が供給され、書き込まれる。このとき、RAMD09には、データD4,D5のうち、0乃至4キロワード分のデータが書き込まれ、RAMD10には、4乃至8キロワード分のデータが書き込まれる。
【0681】
これと同時に、RAMD03,D04,D07,D08,D11,D12からは、それぞれ、記憶しているデータが、データOR02,OR03,OR06,OR07,OR10,OR11として読み出され、出力データ選択回路408に供給される。なお、データの読み出しは、データの書き込み時と同様に、アドレス選択回路405から供給されるアドレスデータに基づいて行われる。
【0682】
同様に、RAMD03,D04には、それぞれ、アドレス選択回路405から供給されるアドレスデータAR02,AR03に基づいて、入力データ選択回路406からデータIR02,IR03として、遅延用のデータD0,D1が供給され、書き込まれる。このとき、RAMD03には、データD0,D1のうち、0乃至4キロワード分のデータが書き込まれ、RAMD04には、4乃至8キロワード分のデータが書き込まれる。また、RAMD07,D08には、それぞれ、アドレス選択回路405から供給されるアドレスデータAR06,AR07に基づいて、入力データ選択回路406からデータIR06,IR07として、遅延用のデータD2,D3が供給され、書き込まれる。このとき、RAMD07には、データD2,D3のうち、0乃至4キロワード分のデータが書き込まれ、RAMD08には、4乃至8キロワード分のデータが書き込まれる。さらに、RAMD11,D12には、それぞれ、アドレス選択回路405から供給されるアドレスデータAR10,AR11に基づいて、入力データ選択回路406からデータIR10,IR11として、遅延用のデータD4,D5が供給され、書き込まれる。このとき、RAMD11には、データD4,D5のうち、0乃至4キロワード分のデータが書き込まれ、RAMD12には、4乃至8キロワード分のデータが書き込まれる。
【0683】
これと同時に、RAMD01,D02,D05,D06,D09,D10からは、それぞれ、記憶しているデータが、データOR00,OR01,OR04,OR05,OR08,OR09として読み出され、出力データ選択回路408に供給される。なお、データの読み出しは、データの書き込み時と同様に、アドレス選択回路405から供給されるアドレスデータに基づいて行われる。
【0684】
また、RAMD13,D14,D15,D16は、それぞれ、パーシャルライト制御信号PWに基づいて、パーシャルライトのRAMとして機能し、擬似的に8ビット×8192ワードの記憶容量を有するRAMとして作用する。
【0685】
RAMD13,D14には、それぞれ、アドレス選択回路405から供給されるアドレスデータAR12,AR13に基づいて、入力データ選択回路406からデータIR12,IR13として、インターリーブ用のデータI0が供給され、書き込まれる。このとき、RAMD13には、データI0のうち、0乃至8キロワード分のデータが書き込まれ、RAMD14には、8乃至16キロワード分のデータが書き込まれる。
【0686】
これと同時に、RAMD15,D16からは、それぞれ、記憶しているデータが、データOR14,OR15として読み出され、出力データ選択回路408に供給される。なお、データの読み出しは、データの書き込み時と同様に、アドレス選択回路405から供給されるアドレスデータに基づいて行われる。
【0687】
同様に、RAMD15,D16には、それぞれ、アドレス選択回路405から供給されるアドレスデータAR14,AR15に基づいて、入力データ選択回路406からデータIR15,IR16として、インターリーブ用のデータI0が供給され、書き込まれる。このとき、RAMD15には、データI0のうち、0乃至8キロワード分のデータが書き込まれ、RAMD16には、8乃至16キロワード分のデータが書き込まれる。
【0688】
これと同時に、RAMD13,D14からは、それぞれ、記憶しているデータが、データOR12,OR13として読み出され、出力データ選択回路408に供給される。なお、データの読み出しは、データの書き込み時と同様に、アドレス選択回路405から供給されるアドレスデータに基づいて行われる。
【0689】
このようにすることによって、インターリーバ100は、符号化装置1によって、符号化率が“1/6以上”のPCCCが行われ、データの容量が“16キロワード以下”である1シンボルの入力データに対して、ランダムインターリーブ及び遅延を施すことができる。
【0690】
つぎに、2シンボルの入力データに対して、ランダムインターリーブを施す例について説明する。ここでは、符号化装置1が、符号化率が“1/3以上”のSCCCを行うものであり、入力されるデータの容量が“8キロワード以下”であるものとする。
【0691】
この場合、インターリーバ100は、2シンボルのデータについてインターリーブを施すとともに、6シンボルのデータについて遅延を施す必要がある。そこで、インターリーバ100は、例えば図56(A)に示すように、16個のRAMD01,D02,・・・,D16のうち、6個のRAMD01,D02,D03,D04,D05,D07を遅延に用いるとともに、同図(B)に示すように、8個のRAMD09,D10,D11,D12,D13,D14,D15,D16をインターリーブに用いる。また、アドレス用のRAMとしては、同図(C)に示すように、6個のRAMAのうち、任意の4つのRAMAを用いればよい。したがって、インターリーバ100及びアドレス用記憶回路110は、同図(D)に示すように、2つのRAMD06,D08と、2つのRAMAとを用いないことになる。
【0692】
より具体的には、インターリーバ100は、同図(A)及び同図(B)に示すように、RAMD01,D02,D05,D09,D10,D13,D14を、上述したバンクA(A0)として用い、RAMD03,D04,D07,D11,D12,D15,D16を、上述したバンクB(B0)として用いる。すなわち、インターリーバ100は、RAMD01,D02,D05,D09,D10,D13,D14に対してデータを書き込んでいる場合には、RAMD03,D04,D07,D11,D12,D15,D16からデータを読み出し、RAMD03,D04,D07,D11,D12,D15,D16に対してデータを書き込んでいる場合には、RAMD01,D02,D05,D09,D10,D13,D14からデータを読み出す。
【0693】
RAMD01には、アドレス選択回路405から供給されるアドレスデータAR00に基づいて、入力データ選択回路406からデータIR00として、遅延用のデータD0,D1が供給され、書き込まれる。このとき、RAMD01には、0乃至4キロワード分のデータD0,D1が書き込まれる。また、RAMD05には、アドレス選択回路405から供給されるアドレスデータAR04に基づいて、入力データ選択回路406からデータIR04として、遅延用のデータD2,D3が供給され、書き込まれる。このとき、RAMD05には、0乃至4キロワード分のデータD2,D3が書き込まれる。さらに、RAMD02には、アドレス選択回路405から供給されるアドレスデータAR01に基づいて、入力データ選択回路406からデータIR01として、遅延用のデータD4,D5が供給され、書き込まれる。このとき、RAMD02には、0乃至4キロワード分のデータD4,D5が書き込まれる。
【0694】
これと同時に、RAMD03,D04,D07からは、それぞれ、記憶しているデータが、データOR02,OR03,OR06として読み出され、出力データ選択回路408に供給される。なお、データの読み出しは、データの書き込み時と同様に、アドレス選択回路405から供給されるアドレスデータに基づいて行われる。
【0695】
同様に、RAMD03には、アドレス選択回路405から供給されるアドレスデータAR02に基づいて、入力データ選択回路406からデータIR02として、遅延用のデータD0,D1が供給され、書き込まれる。このとき、RAMD03には、0乃至4キロワード分のデータD0,D1が書き込まれる。また、RAMD07には、アドレス選択回路405から供給されるアドレスデータAR06に基づいて、入力データ選択回路406からデータIR06として、遅延用のデータD2,D3が供給され、書き込まれる。このとき、RAMD07には、0乃至4キロワード分のデータD2,D3が書き込まれる。さらに、RAMD04には、アドレス選択回路405から供給されるアドレスデータAR03に基づいて、入力データ選択回路406からデータIR03として、遅延用のデータD4,D5が供給され、書き込まれる。このとき、RAMD04には、0乃至4キロワード分のデータD4,D5が書き込まれる。
【0696】
これと同時に、RAMD01,D02,D05からは、それぞれ、記憶しているデータが、データOR00,OR01,OR04として読み出され、出力データ選択回路408に供給される。なお、データの読み出しは、データの書き込み時と同様に、アドレス選択回路405から供給されるアドレスデータに基づいて行われる。
【0697】
また、RAMD09,D10,D11,D12,D13,D14,D15,D16は、それぞれ、パーシャルライト制御信号PWに基づいて、パーシャルライトのRAMとして機能し、擬似的に8ビット×8192ワードの記憶容量を有するRAMとして作用する。
【0698】
RAMD13には、アドレス選択回路405から供給されるアドレスデータAR12に基づいて、入力データ選択回路406からデータIR12として、インターリーブ用のデータI0が供給され、書き込まれる。このとき、RAMD13には、0乃至8キロワード分のデータI0が書き込まれる。また、RAMD14にも、RAMD13と同様に、アドレス選択回路405から供給されるアドレスデータAR13に基づいて、入力データ選択回路406からデータIR13として、インターリーブ用のデータI0が供給され、書き込まれる。このとき、RAMD14には、0乃至8キロワード分のデータI0が書き込まれる。さらに、RAMD09には、アドレス選択回路405から供給されるアドレスデータAR08に基づいて、入力データ選択回路406からデータIR08として、インターリーブ用のデータI1が供給され、書き込まれる。このとき、RAMD09には、0乃至8キロワード分のデータI1が書き込まれる。また、RAMD10にも、RAMD09と同様に、アドレス選択回路405から供給されるアドレスデータAR09に基づいて、入力データ選択回路406からデータIR09として、インターリーブ用のデータI1が供給され、書き込まれる。このとき、RAMD10には、0乃至8キロワード分のデータI1が書き込まれる。
【0699】
これと同時に、RAMD11,D15からは、それぞれ、記憶しているデータが、データOR10,OR14として読み出され、2シンボルのデータのうち、1系統のシンボルデータとして、出力データ選択回路408に供給される。また、RAMD12,D16からは、それぞれ、記憶しているデータが、データOR11,OR15として読み出され、2シンボルのデータのうち、他の1系統のシンボルデータとして、出力データ選択回路408に供給される。なお、データの読み出しは、データの書き込み時と同様に、アドレス選択回路405から供給されるアドレスデータに基づいて行われる。
【0700】
同様に、RAMD15には、アドレス選択回路405から供給されるアドレスデータAR14に基づいて、入力データ選択回路406からデータIR14として、インターリーブ用のデータI0が供給され、書き込まれる。このとき、RAMD15には、0乃至8キロワード分のデータI0が書き込まれる。また、RAMD16にも、RAMD15と同様に、アドレス選択回路405から供給されるアドレスデータAR15に基づいて、入力データ選択回路406からデータIR15として、インターリーブ用のデータI0が供給され、書き込まれる。このとき、RAMD16には、0乃至8キロワード分のデータI0が書き込まれる。さらに、RAMD11には、アドレス選択回路405から供給されるアドレスデータAR10に基づいて、入力データ選択回路406からデータIR10として、インターリーブ用のデータI1が供給され、書き込まれる。このとき、RAMD11には、0乃至8キロワード分のデータI1が書き込まれる。また、RAMD12にも、RAMD11と同様に、アドレス選択回路405から供給されるアドレスデータAR11に基づいて、入力データ選択回路406からデータIR11として、インターリーブ用のデータI1が供給され、書き込まれる。このとき、RAMD12には、0乃至8キロワード分のデータI1が書き込まれる。
【0701】
これと同時に、RAMD09,D13からは、それぞれ、記憶しているデータが、データOR08,OR12として読み出され、2シンボルのデータのうち、1系統のシンボルデータとして、出力データ選択回路408に供給される。また、RAMD10,D14からは、それぞれ、記憶しているデータが、データOR09,OR13として読み出され、2シンボルのデータのうち、他の1系統のシンボルデータとして、出力データ選択回路408に供給される。なお、データの読み出しは、データの書き込み時と同様に、アドレス選択回路405から供給されるアドレスデータに基づいて行われる。
【0702】
このようにすることによって、インターリーバ100は、符号化装置1によって、符号化率が“1/3以上”のSCCCが行われ、データの容量が“8キロワード以下”である2シンボルの入力データに対して、ランダムインターリーブ及び遅延を施すことができる。
【0703】
つぎに、2シンボルの入力データに対して、インラインインターリーブを施す例について説明する。ここでは、符号化装置1が、パンクチャされたSCCCを行うものであり、入力されるデータの容量が“12キロワード以下”であるものとする。
【0704】
この場合、インターリーバ100は、2シンボルのデータについてインターリーブを施すとともに、4シンボルのデータについて遅延を施す必要がある。そこで、インターリーバ100は、例えば図57(A)に示すように、16個のRAMD01,D02,・・・,D16のうち、8個のRAMD01,D02,D03,D04,D05,D06,D07,D08を遅延に用いるとともに、同図(B)に示すように、8個のRAMD09,D10,D11,D12,D13,D14,D15,D16をインターリーブに用いる。また、アドレス用のRAMとしては、同図(C)に示すように、6個のRAMAの全てを用いることになる。
【0705】
より具体的には、インターリーバ100は、同図(A)及び同図(B)に示すように、RAMD01,D02,D05,D06,D09,D10,D13,D14を、上述したバンクA(A0,A1)として用い、RAMD03,D04,D07,D08,D11,D12,D15,D16を、上述したバンクB(B0,B1)として用いる。すなわち、インターリーバ100は、RAMD01,D02,D05,D06,D09,D10,D13,D14に対してデータを書き込んでいる場合には、RAMD03,D04,D07,D08,D11,D12,D15,D16からデータを読み出し、RAMD03,D04,D07,D08,D11,D12,D15,D16に対してデータを書き込んでいる場合には、RAMD01,D02,D05,D06,D09,D10,D13,D14からデータを読み出す。
【0706】
RAMD01,D02には、それぞれ、アドレス選択回路405から供給されるアドレスデータAR00,AR01に基づいて、入力データ選択回路406からデータIR00,IR01として、遅延用のデータD0,D1が供給され、書き込まれる。このとき、RAMD02は、同図(A)中斜線部に示すように、ワード方向に半分の記憶領域にのみデータD0,D1を記憶し、残りの記憶領域には、データを記憶することはない。すなわち、RAMD01には、データD0,D1のうち、0乃至4キロワード分のデータが書き込まれ、RAMD02には、4乃至6キロワード分のデータが書き込まれる。また、RAMD05,D06には、それぞれ、アドレス選択回路405から供給されるアドレスデータAR04,AR05に基づいて、入力データ選択回路406からデータIR04,IR05として、遅延用のデータD2,D3が供給され、書き込まれる。このとき、RAMD06は、同図(A)中斜線部に示すように、RAMD02と同様に、ワード方向に半分の記憶領域にのみデータD2,D3を記憶し、残りの記憶領域には、データを記憶することはない。すなわち、RAMD05には、データD2,D3のうち、0乃至4キロワード分のデータが書き込まれ、RAMD06には、4乃至6キロワード分のデータが書き込まれる。
【0707】
これと同時に、RAMD03,D04,D07,D08からは、それぞれ、記憶しているデータが、データOR02,OR03,OR06,OR07として読み出され、出力データ選択回路408に供給される。このとき、RAMD04,D08は、それぞれ、同図(A)中斜線部に示すように、ワード方向に半分の記憶領域にのみデータを記憶しており、残りの記憶領域には、データが記憶されていない。なお、データの読み出しは、データの書き込み時と同様に、アドレス選択回路405から供給されるアドレスデータに基づいて行われる。
【0708】
同様に、RAMD03,D04には、それぞれ、アドレス選択回路405から供給されるアドレスデータAR02,AR03に基づいて、入力データ選択回路406からデータIR02,IR03として、遅延用のデータD0,D1が供給され、書き込まれる。このとき、RAMD04は、同図(A)中斜線部に示すように、ワード方向に半分の記憶領域にのみデータD0,D1を記憶し、残りの記憶領域には、データを記憶することはない。すなわち、RAMD03には、データD0,D1のうち、0乃至4キロワード分のデータが書き込まれ、RAMD04には、4乃至6キロワード分のデータが書き込まれる。また、RAMD07,D08には、それぞれ、アドレス選択回路405から供給されるアドレスデータAR06,AR07に基づいて、入力データ選択回路406からデータIR06,IR07として、遅延用のデータD2,D3が供給され、書き込まれる。このとき、RAMD08は、同図(A)中斜線部に示すように、RAMD04と同様に、ワード方向に半分の記憶領域にのみデータD2,D3を記憶し、残りの記憶領域には、データを記憶することはない。すなわち、RAMD07には、データD2,D3のうち、0乃至4キロワード分のデータが書き込まれ、RAMD08には、4乃至6キロワード分のデータが書き込まれる。
【0709】
これと同時に、RAMD01,D02,D05,D06からは、それぞれ、記憶しているデータが、データOR00,OR01,OR04,OR05として読み出され、出力データ選択回路408に供給される。このとき、RAMD02,D06は、それぞれ、同図(A)中斜線部に示すように、ワード方向に半分の記憶領域にのみデータを記憶しており、残りの記憶領域には、データが記憶されていない。なお、データの読み出しは、データの書き込み時と同様に、アドレス選択回路405から供給されるアドレスデータに基づいて行われる。
【0710】
また、RAMD09,D10,D11,D12,D13,D14,D15,D16は、それぞれ、パーシャルライト制御信号PWに基づいて、パーシャルライトのRAMとして機能し、擬似的に8ビット×8192ワードの記憶容量を有するRAMとして作用する。
【0711】
RAMD13,D14には、それぞれ、アドレス選択回路405から供給されるアドレスデータAR12,AR13に基づいて、入力データ選択回路406からデータIR12,IR13として、インターリーブ用のデータI0が供給され、書き込まれる。このとき、RAMD14は、同図(B)中斜線部に示すように、ワード方向に半分の記憶領域にのみデータI0を記憶し、残りの記憶領域には、データを記憶することはない。すなわち、RAMD13には、データI0のうち、0乃至8キロワード分のデータが書き込まれ、RAMD14には、8乃至12キロワード分のデータが書き込まれる。また、RAMD09,D10には、それぞれ、アドレス選択回路405から供給されるアドレスデータAR08,AR09に基づいて、入力データ選択回路406からデータIR08,IR09として、インターリーブ用のデータI1が供給され、書き込まれる。このとき、RAMD10は、同図(B)中斜線部に示すように、RAMD14と同様に、ワード方向に半分の記憶領域にのみデータI1を記憶し、残りの記憶領域には、データを記憶することはない。すなわち、RAMD09には、データI1のうち、0乃至8キロワード分のデータが書き込まれ、RAMD10には、8乃至12キロワード分のデータが書き込まれる。
【0712】
これと同時に、RAMD15,D16からは、それぞれ、記憶しているデータが、データOR14,OR15として読み出され、2シンボルのデータのうち、1系統のシンボルデータとして、出力データ選択回路408に供給される。このとき、RAMD16は、同図(B)中斜線部に示すように、ワード方向に半分の記憶領域にのみデータを記憶しており、残りの記憶領域には、データが記憶されていない。また、RAMD11,D12からは、それぞれ、記憶しているデータが、データOR10,OR11として読み出され、2シンボルのデータのうち、他の1系統のシンボルデータとして、出力データ選択回路408に供給される。このとき、RAMD12は、同図(B)中斜線部に示すように、RAMD16と同様に、ワード方向に半分の記憶領域にのみデータを記憶しており、残りの記憶領域には、データが記憶されていない。なお、データの読み出しは、データの書き込み時と同様に、アドレス選択回路405から供給されるアドレスデータに基づいて行われる。
【0713】
同様に、RAMD15,D16には、それぞれ、アドレス選択回路405から供給されるアドレスデータAR14,AR15に基づいて、入力データ選択回路406からデータIR14,IR15として、インターリーブ用のデータI0が供給され、書き込まれる。このとき、RAMD16は、同図(B)中斜線部に示すように、ワード方向に半分の記憶領域にのみデータI0を記憶し、残りの記憶領域には、データを記憶することはない。すなわち、RAMD15には、データI0のうち、0乃至8キロワード分のデータが書き込まれ、RAMD16には、8乃至12キロワード分のデータが書き込まれる。また、RAMD11,D12には、それぞれ、アドレス選択回路405から供給されるアドレスデータAR10,AR11に基づいて、入力データ選択回路406からデータIR10,IR11として、インターリーブ用のデータI1が供給され、書き込まれる。このとき、RAMD12は、同図(B)中斜線部に示すように、RAMD16と同様に、ワード方向に半分の記憶領域にのみデータI1を記憶し、残りの記憶領域には、データを記憶することはない。すなわち、RAMD11には、データI1のうち、0乃至8キロワード分のデータが書き込まれ、RAMD12には、8乃至12キロワード分のデータが書き込まれる。
【0714】
これと同時に、RAMD13,D14からは、それぞれ、記憶しているデータが、データOR12,OR13として読み出され、2シンボルのデータのうち、1系統のシンボルデータとして、出力データ選択回路408に供給される。このとき、RAMD14は、同図(B)中斜線部に示すように、ワード方向に半分の記憶領域にのみデータを記憶しており、残りの記憶領域には、データが記憶されていない。また、RAMD09,D10からは、それぞれ、記憶しているデータが、データOR08,OR09として読み出され、2シンボルのデータのうち、他の1系統のシンボルデータとして、出力データ選択回路408に供給される。このとき、RAMD10は、同図(B)中斜線部に示すように、RAMD14と同様に、ワード方向に半分の記憶領域にのみデータを記憶しており、残りの記憶領域には、データが記憶されていない。なお、データの読み出しは、データの書き込み時と同様に、アドレス選択回路405から供給されるアドレスデータに基づいて行われる。
【0715】
このようにすることによって、インターリーバ100は、符号化装置1によって、パンクチャされたSCCCが行われ、データの容量が“12キロワード以下”である2シンボルの入力データに対して、インラインインターリーブ及び遅延を施すことができる。
【0716】
つぎに、2シンボルの入力データに対して、ペアワイズインターリーブを施す例について説明する。ここでは、符号化装置1がSCCCを行うものであるものとする。
【0717】
この場合、インターリーバ100は、2シンボルのデータについてインターリーブを施すとともに、4シンボルのデータについて遅延を施す必要がある。そこで、インターリーバ100は、例えば図58(A)に示すように、16個のRAMD01,D02,・・・,D16のうち、8個のRAMD01,D02,D03,D04,D05,D06,D07D08を遅延に用いるとともに、同図(B)に示すように、8個のRAMD09,D10,D11,D12,D13,D14,D15,D16をインターリーブに用いる。また、アドレス用のRAMとしては、同図(C)に示すように、6個のRAMAのうち、任意の4つのRAMAを用いればよい。したがって、インターリーバ100及びアドレス用記憶回路110は、同図(D)に示すように、2つのRAMAを用いないことになる。
【0718】
より具体的には、インターリーバ100は、同図(A)及び同図(B)に示すように、RAMD01,D02,D05,D06,D09,D10,D13,D14を、上述したバンクA(A0,A1)として用い、RAMD03,D04,D07,D08,D11,D12,D15,D16を、上述したバンクB(B0,B1)として用いる。すなわち、インターリーバ100は、RAMD01,D02,D05,D06,D09,D10,D13,D14に対してデータを書き込んでいる場合には、RAMD03,D04,D07,D08,D11,D12,D15,D16からデータを読み出し、RAMD03,D04,D07,D08,D11,D12,D15,D16に対してデータを書き込んでいる場合には、RAMD01,D02,D05,D06,D09,D10,D13,D14からデータを読み出す。このとき、RAMD13,D14と、RAMD09,D10とは、同一のアドレスに基づいて動作し、RAMD15,D16と、RAMD11,D12とは、同一のアドレスに基づいて動作する。
【0719】
RAMD01,D02には、それぞれ、アドレス選択回路405から供給されるアドレスデータAR00,AR01に基づいて、入力データ選択回路406からデータIR00,IR01として、遅延用のデータD0,D1が供給され、書き込まれる。このとき、RAMD01には、データD0,D1のうち、0乃至4キロワード分のデータが書き込まれ、RAMD02には、4乃至8キロワード分のデータが書き込まれる。また、RAMD05,D06には、それぞれ、アドレス選択回路405から供給されるアドレスデータAR04,AR05に基づいて、入力データ選択回路406からデータIR04,IR05として、遅延用のデータD2,D3が供給され、書き込まれる。このとき、RAMD05には、データD2,D3のうち、0乃至4キロワード分のデータが書き込まれ、RAMD06には、4乃至8キロワード分のデータが書き込まれる。
【0720】
これと同時に、RAMD03,D04,D07,D08からは、それぞれ、記憶しているデータが、データOR02,OR03,OR06,OR07として読み出され、出力データ選択回路408に供給される。なお、データの読み出しは、データの書き込み時と同様に、アドレス選択回路405から供給されるアドレスデータに基づいて行われる。
【0721】
同様に、RAMD03,D04には、それぞれ、アドレス選択回路405から供給されるアドレスデータAR02,AR03に基づいて、入力データ選択回路406からデータIR02,IR03として、遅延用のデータD0,D1が供給され、書き込まれる。このとき、RAMD03には、データD0,D1のうち、0乃至4キロワード分のデータが書き込まれ、RAMD04には、4乃至8キロワード分のデータが書き込まれる。また、RAMD07,D08には、それぞれ、アドレス選択回路405から供給されるアドレスデータAR06,AR07に基づいて、入力データ選択回路406からデータIR06,IR07として、遅延用のデータD2,D3が供給され、書き込まれる。このとき、RAMD07には、データD2,D3のうち、0乃至4キロワード分のデータが書き込まれ、RAMD08には、4乃至8キロワード分のデータが書き込まれる。
【0722】
これと同時に、RAMD01,D02,D05,D06からは、それぞれ、記憶しているデータが、データOR00,OR01,OR04,OR05として読み出され、出力データ選択回路408に供給される。なお、データの読み出しは、データの書き込み時と同様に、アドレス選択回路405から供給されるアドレスデータに基づいて行われる。
【0723】
また、RAMD09,D10,D11,D12,D13,D14,D15,D16は、それぞれ、パーシャルライト制御信号PWに基づいて、パーシャルライトのRAMとして機能し、擬似的に8ビット×8192ワードの記憶容量を有するRAMとして作用する。
【0724】
RAMD13,D14には、それぞれ、アドレス選択回路405から供給されるアドレスデータAR12,AR13に基づいて、入力データ選択回路406からデータIR12,IR13として、インターリーブ用のデータI0が供給され、書き込まれる。このとき、RAMD13には、データI0のうち、0乃至8キロワード分のデータが書き込まれ、RAMD14には、8乃至16キロワード分のデータが書き込まれる。また、RAMD09,D10には、それぞれ、アドレス選択回路405から供給されるアドレスデータAR08,AR09に基づいて、入力データ選択回路406からデータIR08,IR09として、インターリーブ用のデータI1が供給され、書き込まれる。このとき、RAMD09には、データI1のうち、0乃至8キロワード分のデータが書き込まれ、RAMD10には、8乃至16キロワード分のデータが書き込まれる。
【0725】
これと同時に、RAMD15,D16からは、それぞれ、記憶しているデータが、データOR14,OR15として読み出され、2シンボルのデータのうち、1系統のシンボルデータとして、出力データ選択回路408に供給される。また、RAMD11,D12からは、それぞれ、記憶しているデータが、データOR10,OR11として読み出され、2シンボルのデータのうち、他の1系統のシンボルデータとして、出力データ選択回路408に供給される。なお、データの読み出しは、データの書き込み時と同様に、アドレス選択回路405から供給されるアドレスデータに基づいて行われる。
【0726】
同様に、RAMD15,D16には、それぞれ、アドレス選択回路405から供給されるアドレスデータAR14,AR15に基づいて、入力データ選択回路406からデータIR14,IR15として、インターリーブ用のデータI0が供給され、書き込まれる。このとき、RAMD15には、データI0のうち、0乃至8キロワード分のデータが書き込まれ、RAMD16には、8乃至16キロワード分のデータが書き込まれる。また、RAMD11,D12には、それぞれ、アドレス選択回路405から供給されるアドレスデータAR10,AR11に基づいて、入力データ選択回路406からデータIR10,IR11として、インターリーブ用のデータI1が供給され、書き込まれる。このとき、RAMD11には、データI1のうち、0乃至8キロワード分のデータが書き込まれ、RAMD12には、8乃至16キロワード分のデータが書き込まれる。
【0727】
これと同時に、RAMD13,D14からは、それぞれ、記憶しているデータが、データOR12,OR13として読み出され、2シンボルのデータのうち、1系統のシンボルデータとして、出力データ選択回路408に供給される。また、RAMD09,D10からは、それぞれ、記憶しているデータが、データOR08,OR09として読み出され、2シンボルのデータのうち、他の1系統のシンボルデータとして、出力データ選択回路408に供給される。なお、データの読み出しは、データの書き込み時と同様に、アドレス選択回路405から供給されるアドレスデータに基づいて行われる。
【0728】
このようにすることによって、インターリーバ100は、符号化装置1によりSCCCが行われた2シンボルの入力データに対して、ペアワイズインターリーブ及び遅延を施すことができる。
【0729】
つぎに、3シンボルの入力データに対して、ランダムインターリーブを施す例について説明する。ここでは、符号化装置1が、符号化率が“1/3以上”のSCCCを行うものであり、入力されるデータの容量が“4キロワード以下”であるものとする。
【0730】
この場合、インターリーバ100は、3シンボルのデータについてインターリーブを施すとともに、4シンボルのデータについて遅延を施す必要がある。そこで、インターリーバ100は、例えば図59(A)に示すように、16個のRAMD01,D02,・・・,D16のうち、4つのRAMD01,D03,D05,D07を遅延に用いるとともに、同図(B)に示すように、12個のRAMD02,D04,D06,D08,D09,D10,D11,D12,D13,D14,D15,D16をインターリーブに用いる。また、アドレス用のRAMとしては、同図(C)に示すように、6個のRAMAのうち、任意の3つのRAMAを用いればよい。したがって、インターリーバ100及びアドレス用記憶回路110は、同図(D)に示すように、3つのRAMAを用いないことになる。
【0731】
より具体的には、インターリーバ100は、同図(A)及び同図(B)に示すように、RAMD01,D02,D05,D06,D09,D10,D13,D14を、上述したバンクA(A0)として用い、RAMD03,D04,D07,D08,D11,D12,D15,D16を、上述したバンクB(B0)として用いる。すなわち、インターリーバ100は、RAMD01,D02,D05,D06,D09,D10,D13,D14に対してデータを書き込んでいる場合には、RAMD03,D04,D07,D08,D11,D12,D15,D16からデータを読み出し、RAMD03,D04,D07,D08,D11,D12,D15,D16に対してデータを書き込んでいる場合には、RAMD01,D02,D05,D06,D09,D10,D13,D14からデータを読み出す。
【0732】
RAMD01には、アドレス選択回路405から供給されるアドレスデータAR00に基づいて、入力データ選択回路406からデータIR00として、遅延用のデータD0,D1が供給され、書き込まれる。このとき、RAMD01は、同図(A)中斜線部に示すように、ワード方向に半分の記憶領域にのみデータD0,D1を記憶し、残りの記憶領域には、データを記憶することはない。すなわち、RAMD01には、0乃至2キロワード分のデータD0,D1が書き込まれる。また、RAMD05には、アドレス選択回路405から供給されるアドレスデータAR04に基づいて、入力データ選択回路406からデータIR04として、遅延用のデータD2,D3が供給され、書き込まれる。このとき、RAMD05は、同図(A)中斜線部に示すように、RAMD01と同様に、ワード方向に半分の記憶領域にのみデータD2,D3を記憶し、残りの記憶領域には、データを記憶することはない。すなわち、RAMD05には、0乃至2キロワード分のデータD2,D3が書き込まれる。
【0733】
これと同時に、RAMD03,D07からは、それぞれ、記憶しているデータが、データOR02,OR06として読み出され、出力データ選択回路408に供給される。このとき、RAMD03,D07は、それぞれ、同図(A)中斜線部に示すように、ワード方向に半分の記憶領域にのみデータを記憶しており、残りの記憶領域には、データが記憶されていない。なお、データの読み出しは、データの書き込み時と同様に、アドレス選択回路405から供給されるアドレスデータに基づいて行われる。
【0734】
同様に、RAMD03には、アドレス選択回路405から供給されるアドレスデータAR02に基づいて、入力データ選択回路406からデータIR02として、遅延用のデータD0,D1が供給され、書き込まれる。このとき、RAMD03は、同図(A)中斜線部に示すように、ワード方向に半分の記憶領域にのみデータD2,D3を記憶し、残りの記憶領域には、データを記憶することはない。すなわち、RAMD03には、0乃至2キロワード分のデータD0,D1が書き込まれる。また、RAMD07には、アドレス選択回路405から供給されるアドレスデータAR06に基づいて、入力データ選択回路406からデータIR06として、遅延用のデータD2,D3が供給され、書き込まれる。このとき、RAMD07は、同図(A)中斜線部に示すように、RAMD03と同様に、ワード方向に半分の記憶領域にのみデータD2,D3を記憶し、残りの記憶領域には、データを記憶することはない。すなわち、RAMD07には、0乃至2キロワード分のデータD2,D3が書き込まれる。
【0735】
これと同時に、RAMD01,D05からは、それぞれ、記憶しているデータが、データOR00,OR04として読み出され、出力データ選択回路408に供給される。このとき、RAMD01,D05は、それぞれ、同図(A)中斜線部に示すように、ワード方向に半分の記憶領域にのみデータを記憶しており、残りの記憶領域には、データが記憶されていない。なお、データの読み出しは、データの書き込み時と同様に、アドレス選択回路405から供給されるアドレスデータに基づいて行われる。
【0736】
また、RAMD02,D04,D06,D08,D09,D10,D11,D12,D13,D14,D15,D16は、それぞれ、パーシャルライトのRAMとして機能せず、通常の記憶容量を有するRAMとして作用する。
【0737】
RAMD13には、アドレス選択回路405から供給されるアドレスデータAR12に基づいて、入力データ選択回路406からデータIR12として、インターリーブ用のデータI0が供給され、書き込まれる。このとき、RAMD13は、同図(B)中斜線部に示すように、ビット方向に半分の記憶領域にのみデータI0を記憶し、残りの記憶領域には、データを記憶しない、若しくは、同じデータI0を記憶する。また、RAMD09には、アドレス選択回路405から供給されるアドレスデータAR08に基づいて、入力データ選択回路406からデータIR08として、インターリーブ用のデータI1,I2が供給され、書き込まれる。さらに、RAMD14には、アドレス選択回路405から供給されるアドレスデータAR13に基づいて、入力データ選択回路406からデータIR13として、インターリーブ用のデータI0が供給され、書き込まれる。このとき、RAMD14は、同図(B)中斜線部に示すように、RAMD13と同様に、ビット方向に半分の記憶領域にのみデータI0を記憶し、残りの記憶領域には、データを記憶しない、若しくは、同じデータI0を記憶する。また、RAMD10には、アドレス選択回路405から供給されるアドレスデータAR09に基づいて、入力データ選択回路406からデータIR09として、インターリーブ用のデータI1,I2が供給され、書き込まれる。さらにまた、RAMD06には、アドレス選択回路405から供給されるアドレスデータAR05に基づいて、入力データ選択回路406からデータIR05として、インターリーブ用のデータI0が供給され、書き込まれる。このとき、RAMD06は、同図(B)中斜線部に示すように、RAMD13と同様に、ビット方向に半分の記憶領域にのみデータI0を記憶し、残りの記憶領域には、データを記憶しない、若しくは、同じデータI0を記憶する。また、RAMD02には、アドレス選択回路405から供給されるアドレスデータAR01に基づいて、入力データ選択回路406からデータIR01として、インターリーブ用のデータI1,I2が供給され、書き込まれる。
【0738】
これと同時に、RAMD11,D15からは、それぞれ、記憶しているデータが、データOR10,OR14として読み出され、3シンボルのデータのうち、1系統のシンボルデータとして、出力データ選択回路408に供給される。このとき、RAMD15は、同図(B)中斜線部に示すように、ビット方向に半分の記憶領域にのみデータを記憶しており、残りの記憶領域には、データが記憶されていない、若しくは、同じデータが記憶されている。また、RAMD11からは、2系統のデータが出力されるが、これらのデータは、図示しないセレクタにより一方が選択され、出力データ選択回路408に供給される。さらに、RAMD12,D16からは、それぞれ、記憶しているデータが、データOR11,OR15として読み出され、3シンボルのデータのうち、他の1系統のシンボルデータとして、出力データ選択回路408に供給される。このとき、RAMD16は、同図(B)中斜線部に示すように、RAMD15と同様に、ビット方向に半分の記憶領域にのみデータを記憶しており、残りの記憶領域には、データが記憶されていない、若しくは、同じデータが記憶されている。また、RAMD12からは、2系統のデータが出力されるが、これらのデータは、図示しないセレクタにより一方が選択され、出力データ選択回路408に供給される。さらにまた、RAMD04,D08からは、それぞれ、記憶しているデータが、データOR03,OR07として読み出され、3シンボルのデータのうち、さらに他の1系統のシンボルデータとして、出力データ選択回路408に供給される。このとき、RAMD08は、同図(B)中斜線部に示すように、RAMD15と同様に、ビット方向に半分の記憶領域にのみデータを記憶しており、残りの記憶領域には、データが記憶されていない、若しくは、同じデータが記憶されている。また、RAMD04からは、2系統のデータが出力されるが、これらのデータは、図示しないセレクタにより一方が選択され、出力データ選択回路408に供給される。なお、データの読み出しは、データの書き込み時と同様に、アドレス選択回路405から供給されるアドレスデータに基づいて行われる。
【0739】
同様に、RAMD15には、アドレス選択回路405から供給されるアドレスデータAR14に基づいて、入力データ選択回路406からデータIR14として、インターリーブ用のデータI0が供給され、書き込まれる。このとき、RAMD15は、同図(B)中斜線部に示すように、ビット方向に半分の記憶領域にのみデータI0を記憶し、残りの記憶領域には、データを記憶しない、若しくは、同じデータI0を記憶する。また、RAMD11には、アドレス選択回路405から供給されるアドレスデータAR10に基づいて、入力データ選択回路406からデータIR10として、インターリーブ用のデータI1,I2が供給され、書き込まれる。さらに、RAMD16には、アドレス選択回路405から供給されるアドレスデータAR15に基づいて、入力データ選択回路406からデータIR15として、インターリーブ用のデータI0が供給され、書き込まれる。このとき、RAMD16は、同図(B)中斜線部に示すように、RAMD15と同様に、ビット方向に半分の記憶領域にのみデータI0を記憶し、残りの記憶領域には、データを記憶しない、若しくは、同じデータI0を記憶する。また、RAMD12には、アドレス選択回路405から供給されるアドレスデータAR11に基づいて、入力データ選択回路406からデータIR11として、インターリーブ用のデータI1,I2が供給され、書き込まれる。さらにまた、RAMD08には、アドレス選択回路405から供給されるアドレスデータAR07に基づいて、入力データ選択回路406からデータIR07として、インターリーブ用のデータI0が供給され、書き込まれる。このとき、RAMD08は、同図(B)中斜線部に示すように、RAMD15と同様に、ビット方向に半分の記憶領域にのみデータI0を記憶し、残りの記憶領域には、データを記憶しない、若しくは、同じデータI0を記憶する。また、RAMD04には、アドレス選択回路405から供給されるアドレスデータAR03に基づいて、入力データ選択回路406からデータIR03として、インターリーブ用のデータI1,I2が供給され、書き込まれる。
【0740】
これと同時に、RAMD11,D15からは、それぞれ、記憶しているデータが、データOR10,OR14として読み出され、3シンボルのデータのうち、1系統のシンボルデータとして、出力データ選択回路408に供給される。このとき、RAMD15は、同図(B)中斜線部に示すように、ビット方向に半分の記憶領域にのみデータを記憶しており、残りの記憶領域には、データが記憶されていない、若しくは、同じデータが記憶されている。また、RAMD11からは、2系統のデータが出力されるが、これらのデータは、図示しないセレクタにより一方が選択され、出力データ選択回路408に供給される。さらに、RAMD12,D16からは、それぞれ、記憶しているデータが、データOR11,OR15として読み出され、3シンボルのデータのうち、他の1系統のシンボルデータとして、出力データ選択回路408に供給される。このとき、RAMD16は、同図(B)中斜線部に示すように、RAMD15と同様に、ビット方向に半分の記憶領域にのみデータを記憶しており、残りの記憶領域には、データが記憶されていない、若しくは、同じデータが記憶されている。また、RAMD12からは、2系統のデータが出力されるが、これらのデータは、図示しないセレクタにより一方が選択され、出力データ選択回路408に供給される。さらにまた、RAMD04,D08からは、それぞれ、記憶しているデータが、データOR03,OR07として読み出され、3シンボルのデータのうち、さらに他の1系統のシンボルデータとして、出力データ選択回路408に供給される。このとき、RAMD08は、同図(B)中斜線部に示すように、RAMD15と同様に、ビット方向に半分の記憶領域にのみデータを記憶しており、残りの記憶領域には、データが記憶されていない、若しくは、同じデータが記憶されている。また、RAMD04からは、2系統のデータが出力されるが、これらのデータは、図示しないセレクタにより一方が選択され、出力データ選択回路408に供給される。なお、データの読み出しは、データの書き込み時と同様に、アドレス選択回路405から供給されるアドレスデータに基づいて行われる。
【0741】
このようにすることによって、インターリーバ100は、符号化装置1によって、符号化率が“1/3以上”のSCCCが行われ、データの容量が“4キロワード以下”である3シンボルの入力データに対して、ランダムインターリーブ及び遅延を施すことができる。
【0742】
つぎに、3シンボルの入力データに対して、インラインインターリーブを施す例について説明する。ここでは、符号化装置1が、符号化率が“2/3”のSCTCMを行うものであり、入力されるデータの容量が“16キロワード以下”であるものとする。
【0743】
この場合、インターリーバ100は、3シンボルのデータについてインターリーブを施すとともに、6シンボルのデータについて遅延を施す必要がある。そこで、インターリーバ100は、例えば図60(A)に示すように、16個のRAMD01,D02,・・・,D16のうち、6個のRAMD01,D02,D03,D04,D05,D07を遅延に用いるとともに、同図(B)に示すように、6個のRAMD09,D11,D13,D14,D15,D16をインターリーブに用いる。また、アドレス用のRAMとしては、同図(C)に示すように、6個のRAMAの全てを用いることになる。ただし、これらの6個のRAMAは、それぞれ、同図(C)中斜線部に示すように、ビット方向に14ビットの記憶領域を有するうち、13ビット分の記憶領域のみを用いる。したがって、インターリーバ100及びアドレス用記憶回路110は、同図(D)に示すように、4つのRAMD06,D08,D10,D12を用いないことになる。
【0744】
より具体的には、インターリーバ100は、同図(A)及び同図(B)に示すように、RAMD01,D02,D05,D09,D13,D14を、上述したバンクA(A0)として用い、RAMD03,D04,D07,D11,D15,D16を、上述したバンクB(B0)として用いる。すなわち、インターリーバ100は、RAMD01,D02,D05,D09,D13,D14に対してデータを書き込んでいる場合には、RAMD03,D04,D07,D11,D15,D16からデータを読み出し、RAMD03,D04,D07,D11,D15,D16に対してデータを書き込んでいる場合には、RAMD01,D02,D05,D09,D13,D14からデータを読み出す。
【0745】
RAMD01には、アドレス選択回路405から供給されるアドレスデータAR00に基づいて、入力データ選択回路406からデータIR00として、遅延用のデータD0,D1が供給され、書き込まれる。このとき、RAMD01には、0乃至4キロワード分のデータD0,D1が書き込まれる。また、RAMD05には、アドレス選択回路405から供給されるアドレスデータAR04に基づいて、入力データ選択回路406からデータIR04として、遅延用のデータD2,D3が供給され、書き込まれる。このとき、RAMD05には、0乃至4キロワード分のデータD2,D3が書き込まれる。さらに、RAMD02には、アドレス選択回路405から供給されるアドレスデータAR01に基づいて、入力データ選択回路406からデータIR01として、遅延用のデータD4,D5が供給され、書き込まれる。このとき、RAMD02には、0乃至4キロワード分のデータD4,D5が書き込まれる。
【0746】
これと同時に、RAMD03,D04,D07からは、それぞれ、記憶しているデータが、データOR02,OR03,OR06として読み出され、出力データ選択回路408に供給される。なお、データの読み出しは、データの書き込み時と同様に、アドレス選択回路405から供給されるアドレスデータに基づいて行われる。
【0747】
同様に、RAMD03には、アドレス選択回路405から供給されるアドレスデータAR02に基づいて、入力データ選択回路406からデータIR02として、遅延用のデータD0,D1が供給され、書き込まれる。このとき、RAMD03には、0乃至4キロワード分のデータD0,D1が書き込まれる。また、RAMD07には、アドレス選択回路405から供給されるアドレスデータAR06に基づいて、入力データ選択回路406からデータIR06として、遅延用のデータD2,D3が供給され、書き込まれる。このとき、RAMD07には、0乃至4キロワード分のデータD2,D3が書き込まれる。さらに、RAMD04には、アドレス選択回路405から供給されるアドレスデータAR03に基づいて、入力データ選択回路406からデータIR03として、遅延用のデータD4,D5が供給され、書き込まれる。このとき、RAMD04には、0乃至4キロワード分のデータD4,D5が書き込まれる。
【0748】
これと同時に、RAMD01,D02,D05からは、それぞれ、記憶しているデータが、データOR00,OR01,OR04として読み出され、出力データ選択回路408に供給される。なお、データの読み出しは、データの書き込み時と同様に、アドレス選択回路405から供給されるアドレスデータに基づいて行われる。
【0749】
また、RAMD09,D11,D13,D14,D15,D16は、それぞれ、パーシャルライト制御信号PWに基づいて、パーシャルライトのRAMとして機能し、擬似的に8ビット×8192ワードの記憶容量を有するRAMとして作用する。
【0750】
RAMD13には、アドレス選択回路405から供給されるアドレスデータAR12に基づいて、入力データ選択回路406からデータIR12として、インターリーブ用のデータI0が供給され、書き込まれる。このとき、RAMD13には、0乃至8キロワード分のデータI0が書き込まれる。また、RAMD09には、アドレス選択回路405から供給されるアドレスデータAR08に基づいて、入力データ選択回路406からデータIR08として、インターリーブ用のデータI1が供給され、書き込まれる。このとき、RAMD09には、0乃至8キロワード分のデータI1が書き込まれる。さらに、RAMD14には、アドレス選択回路405から供給されるアドレスデータAR13に基づいて、入力データ選択回路406からデータIR13として、インターリーブ用のデータI2が供給され、書き込まれる。このとき、RAMD14には、0乃至8キロワード分のデータI2が書き込まれる。
【0751】
これと同時に、RAMD15からは、記憶しているデータが、データOR14として読み出され、3シンボルのデータのうち、1系統のシンボルデータとして、出力データ選択回路408に供給される。また、RAMD11からは、記憶しているデータが、データOR10として読み出され、3シンボルのデータのうち、他の1系統のシンボルデータとして、出力データ選択回路408に供給される。さらに、RAMD16からは、記憶しているデータが、データOR15として読み出され、3シンボルのデータのうち、さらに他の1系統のシンボルデータとして、出力データ選択回路408に供給される。なお、データの読み出しは、データの書き込み時と同様に、アドレス選択回路405から供給されるアドレスデータに基づいて行われる。
【0752】
同様に、RAMD15には、アドレス選択回路405から供給されるアドレスデータAR14に基づいて、入力データ選択回路406からデータIR14として、インターリーブ用のデータI0が供給され、書き込まれる。このとき、RAMD15には、0乃至8キロワード分のデータI0が書き込まれる。また、RAMD11には、アドレス選択回路405から供給されるアドレスデータAR10に基づいて、入力データ選択回路406からデータIR10として、インターリーブ用のデータI1が供給され、書き込まれる。このとき、RAMD11には、0乃至8キロワード分のデータI1が書き込まれる。さらに、RAMD16には、アドレス選択回路405から供給されるアドレスデータAR15に基づいて、入力データ選択回路406からデータIR15として、インターリーブ用のデータI2が供給され、書き込まれる。このとき、RAMD16には、0乃至8キロワード分のデータI2が書き込まれる。
【0753】
これと同時に、RAMD13からは、記憶しているデータが、データOR12として読み出され、3シンボルのデータのうち、1系統のシンボルデータとして、出力データ選択回路408に供給される。また、RAMD09からは、記憶しているデータが、データOR08として読み出され、3シンボルのデータのうち、他の1系統のシンボルデータとして、出力データ選択回路408に供給される。さらに、RAMD14からは、記憶しているデータが、データOR13として読み出され、3シンボルのデータのうち、さらに他の1系統のシンボルデータとして、出力データ選択回路408に供給される。なお、データの読み出しは、データの書き込み時と同様に、アドレス選択回路405から供給されるアドレスデータに基づいて行われる。
【0754】
このようにすることによって、インターリーバ100は、符号化装置1によって、符号化率が“2/3”のSCTCMが行われ、データの容量が“16キロワード以下”である3シンボルの入力データに対して、インラインインターリーブ及び遅延を施すことができる。
【0755】
つぎに、3シンボルの入力データに対して、ペアワイズインターリーブを施す例について説明する。ここでは、符号化装置1がTTCMを行うものであり、入力されるデータの容量が“32キロワード以下”であるものとする。
【0756】
この場合、インターリーバ100は、3シンボルのデータについてインターリーブを施すとともに、2シンボルのデータについて遅延を施す必要がある。そこで、インターリーバ100は、例えば図61(A)に示すように、16個のRAMD01,D02,・・・,D16のうち、4つのRAMD01,D02,D03,D04を遅延に用いるとともに、同図(B)に示すように、12個のRAMD05,D06,D07,D08,D09,D10,D11,D12,D13,D14,D15,D16をインターリーブに用いる。また、アドレス用のRAMとしては、同図(C)に示すように、6個のRAMAのうち、任意の4つのRAMAを用いればよい。したがって、インターリーバ100及びアドレス用記憶回路110は、同図(D)に示すように、2つのRAMAを用いないことになる。
【0757】
より具体的には、インターリーバ100は、同図(A)及び同図(B)に示すように、RAMD01,D02,D05,D06,D09,D10,D13,D14を、上述したバンクA(A0,A1)として用い、RAMD03,D04,D07,D08,D11,D12,D15,D16を、上述したバンクB(B0,B1)として用いる。すなわち、インターリーバ100は、RAMD01,D02,D05,D06,D09,D10,D13,D14に対してデータを書き込んでいる場合には、RAMD03,D04,D07,D08,D11,D12,D15,D16からデータを読み出し、RAMD03,D04,D07,D08,D11,D12,D15,D16に対してデータを書き込んでいる場合には、RAMD01,D02,D05,D06,D09,D10,D13,D14からデータを読み出す。このとき、RAMD13,D14と、RAMD09,D10と、RAMD05,D06とは、同一のアドレスに基づいて動作し、RAMD15,D16と、RAMD11,D12と、RAMD07,D08とは、同一のアドレスに基づいて動作する。
【0758】
RAMD01,D02には、それぞれ、アドレス選択回路405から供給されるアドレスデータAR00,AR01に基づいて、入力データ選択回路406からデータIR00,IR01として、遅延用のデータD0,D1が供給され、書き込まれる。このとき、RAMD01には、データD0,D1のうち、0乃至4キロワード分のデータが書き込まれ、RAMD02には、4乃至8キロワード分のデータが書き込まれる。
【0759】
これと同時に、RAMD03,D04からは、それぞれ、記憶しているデータが、データOR02,OR03として読み出され、出力データ選択回路408に供給される。なお、データの読み出しは、データの書き込み時と同様に、アドレス選択回路405から供給されるアドレスデータに基づいて行われる。
【0760】
同様に、RAMD03,D04には、それぞれ、アドレス選択回路405から供給されるアドレスデータAR02,AR03に基づいて、入力データ選択回路406からデータIR02,IR03として、遅延用のデータD0,D1が供給され、書き込まれる。このとき、RAMD03には、データD0,D1のうち、0乃至4キロワード分のデータが書き込まれ、RAMD04には、4乃至8キロワード分のデータが書き込まれる。
【0761】
これと同時に、RAMD01,D02からは、それぞれ、記憶しているデータが、データOR00,OR01として読み出され、出力データ選択回路408に供給される。なお、データの読み出しは、データの書き込み時と同様に、アドレス選択回路405から供給されるアドレスデータに基づいて行われる。
【0762】
また、RAMD05,D06,D07,D08,D09,D10,D11,D12,D13,D14,D15,D16は、それぞれ、パーシャルライト制御信号PWに基づいて、パーシャルライトのRAMとして機能し、擬似的に8ビット×8192ワードの記憶容量を有するRAMとして作用する。
【0763】
RAMD13,D14には、それぞれ、アドレス選択回路405から供給されるアドレスデータAR12,AR13に基づいて、入力データ選択回路406からデータIR12,IR13として、インターリーブ用のデータI0が供給され、書き込まれる。このとき、RAMD13には、データI0のうち、0乃至8キロワード分のデータが書き込まれ、RAMD14には、8乃至16キロワード分のデータが書き込まれる。また、RAMD09,D10には、それぞれ、アドレス選択回路405から供給されるアドレスデータAR08,AR09に基づいて、入力データ選択回路406からデータIR08,IR09として、インターリーブ用のデータI1が供給され、書き込まれる。このとき、RAMD09には、データI1のうち、0乃至8キロワード分のデータが書き込まれ、RAMD10には、8乃至16キロワード分のデータが書き込まれる。さらに、RAMD05,D06には、それぞれ、アドレス選択回路405から供給されるアドレスデータAR04,AR05に基づいて、入力データ選択回路406からデータIR04,IR05として、インターリーブ用のデータI2が供給され、書き込まれる。このとき、RAMD05には、データI2のうち、0乃至8キロワード分のデータが書き込まれ、RAMD06には、8乃至16キロワード分のデータが書き込まれる。
【0764】
これと同時に、RAMD15,D16からは、それぞれ、記憶しているデータが、データOR14,OR15として読み出され、3シンボルのデータのうち、1系統のシンボルデータとして、出力データ選択回路408に供給される。また、RAMD11,D12からは、それぞれ、記憶しているデータが、データOR10,OR11として読み出され、3シンボルのデータのうち、他の1系統のシンボルデータとして、出力データ選択回路408に供給される。さらに、RAMD07,D08からは、それぞれ、記憶しているデータが、データOR06,OR07として読み出され、3シンボルのデータのうち、さらに他の1系統のシンボルデータとして、出力データ選択回路408に供給される。なお、データの読み出しは、データの書き込み時と同様に、アドレス選択回路405から供給されるアドレスデータに基づいて行われる。
【0765】
同様に、RAMD15,D16には、それぞれ、アドレス選択回路405から供給されるアドレスデータAR14,AR15に基づいて、入力データ選択回路406からデータIR14,IR15として、インターリーブ用のデータI0が供給され、書き込まれる。このとき、RAMD15には、データI0のうち、0乃至8キロワード分のデータが書き込まれ、RAMD16には、8乃至16キロワード分のデータが書き込まれる。また、RAMD11,D12には、それぞれ、アドレス選択回路405から供給されるアドレスデータAR10,AR11に基づいて、入力データ選択回路406からデータIR10,IR11として、インターリーブ用のデータI1が供給され、書き込まれる。このとき、RAMD11には、データI1のうち、0乃至8キロワード分のデータが書き込まれ、RAMD12には、8乃至16キロワード分のデータが書き込まれる。さらに、RAMD07,D08には、それぞれ、アドレス選択回路405から供給されるアドレスデータAR06,AR07に基づいて、入力データ選択回路406からデータIR06,IR07として、インターリーブ用のデータI2が供給され、書き込まれる。このとき、RAMD07には、データI2のうち、0乃至8キロワード分のデータが書き込まれ、RAMD08には、8乃至16キロワード分のデータが書き込まれる。
【0766】
これと同時に、RAMD13,D14からは、それぞれ、記憶しているデータが、データOR12,OR13として読み出され、3シンボルのデータのうち、1系統のシンボルデータとして、出力データ選択回路408に供給される。また、RAMD09,D10からは、それぞれ、記憶しているデータが、データOR08,OR09として読み出され、3シンボルのデータのうち、他の1系統のシンボルデータとして、出力データ選択回路408に供給される。さらに、RAMD05,D06からは、それぞれ、記憶しているデータが、データOR04,OR05として読み出され、3シンボルのデータのうち、さらに他の1系統のシンボルデータとして、出力データ選択回路408に供給される。なお、データの読み出しは、データの書き込み時と同様に、アドレス選択回路405から供給されるアドレスデータに基づいて行われる。
【0767】
このようにすることによって、インターリーバ100は、符号化装置1によって、TTCMが行われ、データの容量が“32キロワード以下”である3シンボルの入力データに対して、ペアワイズインターリーブ及び遅延を施すことができる。
【0768】
以上のように、インターリーバ100は、遅延用のRAMとインターリーブ用のRAMとを共用し、施すべきインターリーブの種類を含む符号構成を示すモードに応じて、使用するRAMを切り替え、適切なRAMに対するデータの書き込み及び/又は読み出しを行うことによって、複数種類のインターリーブ処理及び遅延処理を行うことができ、各種符号の復号に利用することができる。
【0769】
なお、インターリーバ100に関する各種特徴については、後述する“6.”においてさらに説明する。
【0770】
3. 要素復号器を連接して構成される復号装置
つぎに、上述した要素復号器50を連接することにより繰り返し復号を行うことができる復号装置3について説明する。
【0771】
上述したように、復号装置3は、要素復号器50を複数連接することにより構成され、符号化装置1によるPCCC、SCCC、TTCM及びSCTCMによる符号に対して、繰り返し復号を行うことができる。
【0772】
復号装置3は、図62に示すように、要素符号の数と少なくとも繰り返し復号の繰り返し回数Nとの積、例えば、2×N個の要素復号器5011,5012,・・・,50N1,50N2とを備える。この復号装置3は、無記憶通信路2上で発生したノイズの影響により軟入力とされる受信値から繰り返し復号により復号データDECを求めることによって、符号化装置1における入力データを推定するものである。この復号装置3において、連続する2つの要素復号器5011,5012や、要素復号器50N1,50N2は、それぞれ、当該復号装置3が先に図3又は図5に示した復号装置3’,3’’を構成する場合には、1回分の繰り返し復号を実現するものである。すなわち、符号化装置1が先に図2に示した符号化装置1’である場合には、要素復号器5011,5012,・・・,50M1,50M2のうち、要素復号器50i1で表されるものは、畳み込み符号化器12に対応して備えられ、且つ、繰り返し回数i回目の復号処理を行うものを示し、要素復号器50i2で表されるものは、畳み込み符号化器14に対応して備えられ、且つ、繰り返し回数i回目の復号処理を行うものを示している。また、符号化装置1が先に図4に示した符号化装置1’’である場合には、要素復号器5011,5012,・・・,50M1,50M2のうち、要素復号器50i1で表されるものは、内符号の符号化を行う畳み込み符号化器33に対応して備えられ、且つ、繰り返し回数i回目の復号処理を行うものを示し、要素復号器50i2で表されるものは、外符号の符号化を行う畳み込み符号化器31に対応して備えられ、且つ、繰り返し回数i回目の復号処理を行うものを示している。
【0773】
具体的には、要素復号器5011には、受信値Rと、事前確率情報としての外部情報又はインターリーブデータEXTとが入力されるとともに、消去情報ERS、事前確率情報消去情報EAP、終結時刻情報TNP、終結ステート情報TNS、及び、インターリーブ開始位置信号ILSが入力される。また、要素復号器5011には、出力データ選択制御信号ITM及びインターリーブモード信号DINが入力される。
【0774】
要素復号器5011は、上述した処理を行うことにより得られた遅延受信値RNと軟出力INTとを出力するとともに、次段消去位置情報ERSN、次段事前確率情報消去情報EAPN、次段終結時刻情報TNPN、次段終結ステート情報TNSN、及び、次段インターリーブ開始位置信号ILSNを出力する。このとき、要素復号器5011は、復号装置3が先に図3に示した復号装置3’であった場合には、インターリーブモード信号DINに基づいて、インターリーバ100を、インターリーブ処理を行うものとして機能させる。また、要素復号器5011は、復号装置3が先に図5に示した復号装置3’’であった場合には、インターリーブモード信号DINに基づいて、インターリーバ100を、デインターリーブ処理を行うものとして機能させる。さらに、要素復号器5011は、出力データ選択制御信号ITMに基づいて、軟出力復号回路90から出力される対数軟出力Iλである軟出力SOL又は外部情報SOEのうちの一方を選択することで、最終的に軟出力INTとして出力されるデータを決定することができる。ここでは、軟出力INTは、外部情報であるものとする。さらにまた、要素復号器5011は、必要に応じて、復号値硬判定情報DHD及び受信値硬判定情報RHDを出力することもできる。
【0775】
また、要素復号器5012には、前段の要素復号器5011から出力された遅延受信値RN、軟出力INT、次段消去位置情報ERSN、次段事前確率情報消去情報EAPN、次段終結時刻情報TNPN、次段終結ステート情報TNSN、及び、次段インターリーブ開始位置信号ILSNが、それぞれ、受信値R、外部情報又はインターリーブデータEXT、消去情報ERS、事前確率情報消去情報EAP、終結時刻情報TNP、終結ステート情報TNS、及び、インターリーブ開始位置信号ILSとして入力される。また、要素復号器5012には、出力データ選択制御信号ITM及びインターリーブモード信号DINが入力される。
【0776】
要素復号器5012は、要素復号器5011と同様に、上述した処理を行うことにより得られた遅延受信値RNと軟出力INTとを出力するとともに、次段消去位置情報ERSN、次段事前確率情報消去情報EAPN、次段終結時刻情報TNPN、次段終結ステート情報TNSN、及び、次段インターリーブ開始位置信号ILSNを出力する。このとき、要素復号器5012は、復号装置3が先に図3に示した復号装置3’であった場合には、インターリーブモード信号DINに基づいて、インターリーバ100を、デインターリーブ処理を行うものとして機能させる。また、要素復号器5012は、復号装置3が先に図5に示した復号装置3’’であった場合には、インターリーブモード信号DINに基づいて、インターリーバ100を、インターリーブ処理を行うものとして機能させる。さらに、要素復号器5012は、出力データ選択制御信号ITMに基づいて、軟出力復号回路90から出力される対数軟出力Iλである軟出力SOL又は外部情報SOEのうちの一方を選択することで、最終的に軟出力INTとして出力されるデータを決定することができる。ここでは、軟出力INTは、外部情報であるものとする。さらにまた、要素復号器5012は、必要に応じて、復号値硬判定情報DHD及び受信値硬判定情報RHDを出力することもできる。
【0777】
このような要素復号器5012は、遅延受信値RN、軟出力INT、次段消去位置情報ERSN、次段事前確率情報消去情報EAPN、次段終結時刻情報TNPN、次段終結ステート情報TNSN、及び、次段インターリーブ開始位置信号ILSNを、それぞれ、図示しない次段の要素復号器5021に出力する。
【0778】
さらに、要素復号器50N1には、図示しない前段の要素復号器50N-12から出力された遅延受信値RN、軟出力INT、次段消去位置情報ERSN、次段事前確率情報消去情報EAPN、次段終結時刻情報TNPN、次段終結ステート情報TNSN、及び、次段インターリーブ開始位置信号ILSNが、それぞれ、受信値R、外部情報又はインターリーブデータEXT、消去情報ERS、事前確率情報消去情報EAP、終結時刻情報TNP、終結ステート情報TNS、及び、インターリーブ開始位置信号ILSとして入力される。また、要素復号器50N1には、出力データ選択制御信号ITM及びインターリーブモード信号DINが入力される。
【0779】
要素復号器50N1は、要素復号器5011と同様に、上述した処理を行うことにより得られた遅延受信値RNと軟出力INTとを出力するとともに、次段消去位置情報ERSN、次段事前確率情報消去情報EAPN、次段終結時刻情報TNPN、次段終結ステート情報TNSN、及び、次段インターリーブ開始位置信号ILSNを出力する。このとき、要素復号器50N1は、復号装置3が先に図3に示した復号装置3’であった場合には、インターリーブモード信号DINに基づいて、インターリーバ100を、インターリーブ処理を行うものとして機能させる。また、要素復号器50N1は、復号装置3が先に図5に示した復号装置3’’であった場合には、インターリーブモード信号DINに基づいて、インターリーバ100を、デインターリーブ処理を行うものとして機能させる。さらに、要素復号器50N1は、出力データ選択制御信号ITMに基づいて、軟出力復号回路90から出力される対数軟出力Iλである軟出力SOL又は外部情報SOEのうちの一方を選択することで、最終的に軟出力INTとして出力されるデータを決定することができる。ここでは、軟出力INTは、外部情報であるものとする。さらにまた、要素復号器50N1は、必要に応じて、復号値硬判定情報DHD及び受信値硬判定情報RHDを出力することもできる。
【0780】
そして、最終段の要素復号器50N2には、前段の要素復号器50N1から出力された遅延受信値RN、軟出力INT、次段消去位置情報ERSN、次段事前確率情報消去情報EAPN、次段終結時刻情報TNPN、次段終結ステート情報TNSN、及び、次段インターリーブ開始位置信号ILSNが、それぞれ、受信値R、外部情報又はインターリーブデータEXT、消去情報ERS、事前確率情報消去情報EAP、終結時刻情報TNP、終結ステート情報TNS、及び、インターリーブ開始位置信号ILSとして入力される。また、要素復号器50N2には、出力データ選択制御信号ITM及びインターリーブモード信号DINが入力される。
【0781】
要素復号器50N2は、上述した処理を行うことにより得られた軟出力INTを出力するとともに、必要に応じて、復号値硬判定情報DHD及び受信値硬判定情報RHDを出力する。このとき、要素復号器50N2は、復号装置3が先に図3に示した復号装置3’であった場合には、インターリーブモード信号DINに基づいて、インターリーバ100を、デインターリーブ処理を行うものとして機能させる。また、要素復号器50N2は、復号装置3が先に図5に示した復号装置3’’であった場合には、インターリーブモード信号DINに基づいて、インターリーバ100を、インターリーブ処理を行うものとして機能させる。さらに、要素復号器50N2は、出力データ選択制御信号ITMに基づいて、軟出力INTと出力すべきデータとして対数軟出力Iλを選択し、この対数軟出力Iλを、最終結果である復号データDECとして出力する。なお、要素復号器50N2は、必要に応じて、遅延受信値RNと軟出力INT、次段消去位置情報ERSN、次段事前確率情報消去情報EAPN、次段終結時刻情報TNPN、次段終結ステート情報TNSN、及び、次段インターリーブ開始位置信号ILSNを出力することもできる。
【0782】
このような復号装置3は、符号化装置1における各要素符号化器に対応する要素復号器50i1,50i2を備えることによって、復号複雑度が高い符号を複雑度の小さい要素に分解し、要素復号器50i1,50i2の間の相互作用により特性を逐次的に向上させることができる。復号装置3は、受信値を受信すると、2×N個の要素復号器5011,5012,・・・,50N1,50N2によって、繰り返し回数が最大でNの繰り返し復号を行い、復号データDECを出力する。
【0783】
なお、復号装置3は、2×N個の要素復号器5011,5012,・・・,50N1,50N2を連接することによって、最大で繰り返し回数がNの繰り返し復号を行うことができるが、要素復号器5011,5012,・・・,50N1,50N2に備わる遅延機能を用いることによって、後述するように、繰り返し回数がN以下の繰り返し復号を行うこともできる。
【0784】
また、TTCM方式及びSCTCM方式による符号の復号を行う復号装置は、上述した復号装置3と同様の構成で実現することができ、受信値として、同相成分及び直交成分のシンボルを直接入力することになる。
【0785】
4. 要素復号器の全体に関する特徴
つぎに、要素復号器50に関する特徴毎の説明を行う。以下の特徴は、要素復号器50の機能として備えられるものであるが、特徴の概念を明確化するために、適宜簡略化した図面を用いて説明する。
【0786】
4−1 符号尤度の切り替え機能
上述した受信値及び事前確率情報選択回路154に関する特徴である。受信値及び事前確率情報選択回路154は、上述したように、任意の符号の復号を行うために設けられるものである。
【0787】
例えば、符号化装置1がPCCC又はTTCMによる符号化を行うものであった場合には、先に図3に示したように、軟出力復号を行うために入力されるべき情報は、受信値と、前段のインターリーバ又はデインターリーバから供給される外部情報となる。また、例えば、符号化装置1がSCCC又はSCTCMによる符号化を行うものであった場合には、先に図5に示したように、内符号の軟出力復号を行うために入力されるべき情報は、受信値と、前段のインターリーバから供給される外部情報となり、外符号の軟出力復号を行うために入力されるべき情報は、デインターリーバから供給される外部情報と、値が“0”である事前確率情報となる。さらに、符号化装置1がパンクチャを行うものであった場合には、その旨を示す情報を事前確率情報として入力する必要がある。このように、要素復号器50は、任意の符号の復号を行うためには、各符号に応じて、軟出力復号を行うために必要な情報を選択する必要がある。
【0788】
そこで、要素復号器50は、受信値及び事前確率情報選択回路154を備えることによって、入力される受信値と事前確率情報とのうち、軟出力復号を行うために入力されるべき情報を符号に応じて適切に選択する。このようにすることによって、要素復号器50は、PCCC、SCCC、TTCM又はSCTCMといった任意の符号を復号することが可能な汎用性のある構造となる。
【0789】
すなわち、復号装置3は、PCCC、SCCC、TTCM又はSCTCMといった任意の符号を、同一配線のLSIからなる要素復号器50を複数連接するだけで繰り返し復号することが可能となる。そのため、復号装置3は、例えば実験を行う場合等にも、ユーザに高い利便を提供することができる。
【0790】
なお、要素復号器50は、受信値及び事前確率情報選択回路154を、必ずしも軟出力復号回路90の内部又は前段に備える必要はない。すなわち、要素復号器50は、前段の要素復号器からの情報の中から、軟出力復号に必要な情報を選択する構成とする必要はない。例えば、要素復号器50は、セレクタ1208,1209,12010の後段に受信値及び事前確率情報選択回路154を設け、遅延受信値TRNと軟出力TINTとを符号尤度として切り替えることによって、次段の要素復号器において軟出力復号を行うために必要な情報を選択するようにしてもよい。
【0791】
図28を用いて説明した受信値及び事前確率情報選択回路154の場合には、復号装置3を構成する隣接する2つの要素復号器50A,50Bは、簡略化すると例えば図63に示す構成として表すことができる。すなわち、要素復号器50Bは、前段の要素復号器50Aから出力された遅延受信値RNを受信値Rとして入力するとともに、軟出力INTを外部情報又はインターリーブデータEXTとして入力し、受信値TRを、遅延するための信号線と復号受信値TSRとするための信号線とを備えるものとして表される。この場合、要素復号器50Bに備えられる受信値及び事前確率情報選択回路154は、実質的には、復号受信値TSRと外部情報又はインターリーブデータTEXTとを選択的に出力するセレクタ501と、外部情報又はインターリーブデータTEXTと値が“0”である事前確率情報とを選択的に出力するセレクタ502とを有するものとして表される。
【0792】
これに対して、セレクタ1208,1209,12010の後段に受信値及び事前確率情報選択回路154を設ける場合には、復号装置3を構成する隣接する2つの要素復号器50C,50Dは、簡略化すると例えば図64に示す構成として表すことができる。すなわち、要素復号器50Cに備えられる受信値及び事前確率情報選択回路154は、実質的には、遅延受信値TRNと軟出力TINTとを選択的に出力するセレクタ503と、軟出力TINTと値が“0”である事前確率情報とを選択的に出力するセレクタ504とを有するものとして表される。この場合、要素復号器50Dは、前段の要素復号器50Cにおけるセレクタ503から出力された遅延受信値RNを受信値Rとして入力するとともに、セレクタ504から出力された軟出力INTを外部情報又はインターリーブデータEXTとして入力し、さらに、遅延受信値TRNを入力することになる。この場合、受信値及び事前確率情報選択回路154は、セレクタ503,504とともに、インターリーバ100の内部に備えられてもよい。
【0793】
このように、要素復号器50は、受信値及び事前確率情報選択回路154を設ける位置について限定されるものではない。ただし、図64に示すように、前段の要素復号器によって、次段の要素復号器における軟出力復号に必要な情報を選択する構成は、2つの要素復号器の間で遅延させた受信値を別途入出力する必要があることから、ピン数を多く要することになる。
【0794】
4−2 受信値の遅延機能
上述した受信データ及び遅延用記憶回路155及びインターリーバ100に関する特徴である。
【0795】
例えば、符号化装置1がPCCC又はTTCMによる符号化を行うものであった場合には、先に図3に示したように、軟出力復号を行うために必要な情報として、受信値が入力される必要がある。また、例えば、符号化装置1がSCCC又はSCTCMによる符号化を行うものであった場合には、先に図5に示したように、内符号の軟出力復号を行うために必要な情報として、受信値が入力される必要がある。
【0796】
そこで、要素復号器50は、上述したように、受信データ及び遅延用記憶回路155を備えることによって、復号の対象とする復号受信値TSR以外の受信値を含めた全ての受信値TRを記憶し、少なくとも軟出力復号回路90が要する処理時間と同時間だけ遅延させるとともに、インターリーバ100によって、受信値TR又は遅延受信値SDRのうちのいずれか一方であるデータTDIを、少なくとも当該インターリーバ100が要する処理時間と同時間だけ遅延させる、すなわち、インターリーブ長分だけ遅延させる。
【0797】
このようにすることによって、復号装置3は、外部にRAMやFIFO(First In First Out)等の遅延用の回路を備える必要がないことから、回路規模を削減することができ、PCCC、SCCC、TTCM又はSCTCMといった任意の符号を、同一配線のLSIからなる要素復号器50を複数連接するだけで繰り返し復号することが可能となる。
【0798】
なお、要素復号器50は、軟出力復号回路90が要する処理時間と同時間だけ受信値を遅延させるために、受信データ及び遅延用記憶回路155を用いる必要はなく、遅延用の回路を別途備えるようにしてもよい。この場合、要素復号器50は、遅延用の回路を軟出力復号回路90に内部に備える必要もない。
【0799】
すなわち、復号装置3を構成する隣接する2つの要素復号器50E,50Fは、簡略化すると例えば図65に示すように、軟出力復号回路90と、インターリーバ100との他に、受信値を遅延させる遅延回路510を備えるものとして表される。勿論、この遅延回路510は、軟出力復号回路90が要する処理時間と同時間だけ遅延させる記憶回路と、インターリーバ100が要する処理時間と同時間だけ遅延させる記憶回路とに分離されていてもよい。このように、要素復号器50は、全ての受信値を遅延させるための遅延線を備えるものであればよい。
【0800】
勿論、要素復号器50は、実際には、インターリーバ100が要する処理時間と同時間の遅延を実現するために、インターリーブ100を用いて後述する手法を採用しているが、これについては後述する。
【0801】
4−3 復号受信値選択機能
上述した復号受信値選択回路70に関する特徴である。復号受信値選択回路70は、上述したように、任意の符号の復号を行うために設けられるものである。
【0802】
軟出力復号を行うために必要とされる受信値は、符号により異なる。そこで、要素復号器50は、復号受信値選択回路70を備えることによって、全ての受信値TRの中から、復号の対象とする受信値TSRを符号に応じて適切に選択する。換言すれば、復号装置3を構成する隣接する2つの要素復号器50G,50Hは、簡略化すると例えば図66に示すように、軟出力復号回路90と、インターリーバ100と、受信値を遅延させる遅延回路510との他に、全ての受信値を遅延させるための遅延線から、所定の信号線を選択的に取り出す復号受信値選択回路70を備えるものとして表される。
【0803】
このように、遅延回路510に入力される受信値の中から、所定の受信値を選択的に取り出すことによって、復号装置3は、PCCC、SCCC、TTCM又はSCTCMといった任意の符号を、同一配線のLSIからなる要素復号器50を複数連接するだけで繰り返し復号することが可能となる。
【0804】
4−4 復号用の記憶回路と遅延用の記憶回路の共用
上述した受信データ及び遅延用記憶回路155に関する特徴である。
【0805】
受信データ及び遅延用記憶回路155は、上述したように、復号に用いる受信データである選択受信値及び事前確率情報RAPと、遅延用のデータである受信値TRとを、ともに記憶する。すなわち、受信データ及び遅延用記憶回路155は、選択受信値及び事前確率情報RAPと受信値TRとを、ともに記憶することができる容量のRAMを有しており、図示しない制御回路による制御の下に、各情報の書き込み及び/又は読み出しを選択的に行う。このとき、受信データ及び遅延用記憶回路155は、Iα算出回路158にて用いる受信データDAと、受信値TRとを、同一のワードに書き込み、受信データDAが読み出されるタイミングに合わせて、記憶している受信値TRを遅延受信値PDRとして出力する。
【0806】
このように、復号装置3は、記憶する対象の用途が異なる記憶回路の共用を図ることで、回路規模を削減することができ、PCCC、SCCC、TTCM又はSCTCMといった任意の符号を、同一配線のLSIからなる要素復号器50を複数連接するだけで繰り返し復号することが可能となる。
【0807】
4−5 フレーム先頭情報の遅延機能
上述した受信データ及び遅延用記憶回路155に関する特徴である。
【0808】
エッジ検出回路80により検出したフレームの先頭を示すエッジ信号TEILSは、インターリーブの開始位置を示すものである。そのため、インターリーバ100は、軟出力復号回路90による軟出力復号の結果得られる情報が入力されるのと同期して、エッジ信号TEILSに相当する信号が入力される必要がある。そのため、エッジ信号TEILSは、軟出力復号回路90が要する処理時間と同時間だけ遅延される必要がある。
【0809】
そこで、要素復号器50は、上述したように、受信データ及び遅延用記憶回路155を備えることによって、軟出力復号回路90に対して、復号する情報のフレーム先頭にエッジ信号TEILSを同期させて入力し、軟出力復号回路90が要する処理時間と同時間だけ遅延させる。このとき、受信データ及び遅延用記憶回路155は、Iα算出回路158にて用いる受信データDAと、エッジ信号TEILSとを、同一のワードに書き込み、受信データDAが読み出されるタイミングに合わせて、記憶しているエッジ信号TEILSを遅延エッジ信号PDILとして出力する。
【0810】
このようにすることによって、復号装置3は、外部にエッジ信号を遅延させるための遅延用の回路を備える必要がなく、さらに、遅延用の回路と受信データの記憶用の回路とを共用できることから、回路規模の削減と利便の向上を図ることができ、PCCC、SCCC、TTCM又はSCTCMといった任意の符号を、同一配線のLSIからなる要素復号器50を複数連接するだけで繰り返し復号することが可能となる。
【0811】
なお、要素復号器50は、エッジ信号を遅延させるために、受信データ及び遅延用記憶回路155を用いる必要はなく、遅延用の回路を軟出力復号回路90の内部に別途備えるようにしてもよい。すなわち、要素復号器50は、エッジ信号を遅延させるための遅延線を備えるものであればよい。
【0812】
また、要素復号器50は、復号する情報のフレーム長が軟出力復号回路90が要する処理時間よりも大きい場合には、復号遅延を計数する図示しないカウンタに基づいて、エッジ信号を遅延又は生成してインターリーバ100に出力するようにしてもよい。
【0813】
4−6 軟出力復号回路又はインターリーバ単体動作機能
上述したセレクタ1204,1207に関する特徴であり、付随的に、上述したセレクタ1203,1205,1206にも関する特徴である。
【0814】
要素復号器50は、符号化装置1による符号を繰り返し復号する際の要素符号化器に対応するものであることは上述した通りであるが、このような用途以外にも、軟出力復号回路90又はインターリーバ100の機能のみを果たすような動作モードを切り替える機能を有する。すなわち、要素復号器50は、上述したように、制御回路60により動作モード情報CBFを生成し、この動作モード情報CBFに基づいて、セレクタ1203,1204,1205,1206,1207による選択動作を行わせることによって、軟出力復号回路90及びインターリーバ100が、それぞれ、通常の軟出力復号処理及びインターリーブ処理を行うモードと、軟出力復号回路90のみが通常の軟出力復号処理を行うモードと、インターリーバ100のみが通常のインターリーブ処理を行うモードとを実現する。
【0815】
具体的には、セレクタ1203は、上述したように、動作モード情報CBFに基づいて、受信値TRと、軟出力復号回路90から供給される遅延受信値SDRとのうち、いずれか一方を選択する。すなわち、要素復号器50は、このセレクタ1203によって、インターリーバ100に入力される受信値として、軟出力復号回路90による軟出力復号処理又は軟出力復号回路90が要する処理時間と同時間の遅延を行ったものを用いるか否かを決定することができる。
【0816】
また、セレクタ1204は、上述したように、動作モード情報CBFに基づいて、外部情報又はインターリーブデータTEXTと、セレクタ1202から供給されるデータTDLXとのうち、いずれか一方を選択する。すなわち、要素復号器50は、このセレクタ1204によって、インターリーバ100に入力される外部情報又は軟出力として、軟出力復号回路90による軟出力復号処理又は軟出力復号回路90が要する処理時間と同時間の遅延を行ったものを用いるか否かを決定することができる。
【0817】
さらに、セレクタ1205は、上述したように、動作モード情報CBFに基づいて、エッジ検出回路80から供給されるエッジ信号TEILSと、軟出力復号回路90から供給される遅延エッジ信号SDILSとのうち、いずれか一方を選択する。すなわち、要素復号器50は、このセレクタ1205によって、インターリーバ100に入力されるエッジ信号として、軟出力復号回路90による軟出力復号処理又は軟出力復号回路90が要する処理時間と同時間の遅延を行ったものを用いるか否かを決定することができる。
【0818】
さらにまた、セレクタ1206は、上述したように、動作モード情報CBFに基づいて、軟出力復号回路90から供給される遅延受信値SDRと、インターリーバ100から供給されるインターリーブ長遅延受信値IDOとのうち、いずれか一方を選択する。すなわち、要素復号器50は、このセレクタ1206によって、出力すべき受信値として、インターリーバ100によるインターリーブ処理又はインターリーバ100が要する処理時間と同時間の遅延を行ったものを用いるか否かを決定することができる。
【0819】
また、セレクタ1207は、上述したように、動作モード情報CBFに基づいて、インターリーバ100から供給されるインターリーバ出力データIIOと、セレクタ1202から供給されるデータTDLXとのうち、いずれか一方を選択する。すなわち、要素復号器50は、このセレクタ1207によって、出力すべき外部情報又は軟出力として、インターリーバ100によるインターリーブ処理又はインターリーバ100が要する処理時間と同時間の遅延を行ったものを用いるか否かを決定することができる。
【0820】
このようにすることによって、要素復号器50は、例えば、軟出力復号処理のみが必要とされるモードの場合には、軟出力復号回路90のみを動作させることができ、一方、インターリーブ処理のみが必要とされるモードの場合には、インターリーバ100のみを動作させることができる。
【0821】
また、要素復号器50は、インターリーバ100のみが通常のインターリーブ処理を行うモードの場合には、符号化装置として用いることもできる。これは、符号化装置における要素符号化器は、通常、遅延素子と組み合わせ回路とからなり、いわゆるFPGA等により容易に実現することができるためである。したがって、要素復号器50は、例えば、先に図2に示した符号化装置1’を実現する場合には、例えば制御回路60等により畳み込み符号化器12,14を実現することができる。また、要素復号器50は、上述したように、インターリーバ100が遅延回路としての機能を併有することから、符号化装置1’におけるインターリーバ13と遅延器11の機能をインターリーバ100により実現することができる。同様に、要素復号器50は、先に図4に示した符号化装置1’’のようなSCCCによる符号化を行う符号化装置も容易に実現することができる。
【0822】
このように、要素復号器50は、動作モードを切り替えることができ、繰り返し復号以外にも、豊富な利用用途と優れた利便を提供することができる。
【0823】
なお、要素復号器50は、セレクタ1203,1204,1205,1206,1207のみで動作モードを切り替えるのではなく、他のセレクタを用いるといったように、別の構成で多種の動作モードを実現するようにしてもよい。
【0824】
4−7 遅延モード切り替え機能
上述したセレクタ1202及びインターリーバ100に関する特徴である。
【0825】
繰り返し復号は、先に図3又は図5に示したように、符号化装置1における要素符号化器の数と同数の要素復号器の組み合わせをもって、1回の復号となる。すなわち、繰り返し復号は、少なくとも2つ以上の要素復号器を1組とし、1回の復号を行う。そして、繰り返し復号は、繰り返し回数を複数とすることで、最終的な復号結果を得る。
【0826】
ここで、各種符号に応じた最適な繰り返し回数を決定するには、通常、繰り返し回数を変更した実験を行う必要がある。この場合、繰り返し回数に応じた数の要素復号器を連接することにより複数の復号装置を構成すれば実験を行うこともできる。また、任意の繰り返し回数の繰り返し復号を行うことが可能な数の要素復号器を連接して1つの復号装置を構成し、この繰り返し回数以下の所望の繰り返し回数に対応する要素復号器からタップを引き出すことによっても、実験を行うことは可能である。
【0827】
しかしながら、前者のような実験を行うには、膨大な数の復号装置を構成する必要があり、多大な労力を要することが考えられる。また、後者のような実験を行う場合にも、復号装置の回路規模が増大する他、繰り返し回数に応じて復号遅延が変化することから、繰り返し回数の変化による復号結果の比較を行うには望ましくない。
【0828】
そこで、要素復号器50は、上述したように、制御回路60により動作モード情報CBFを生成し、この動作モード情報CBFに基づいて、セレクタ1202による選択動作を行わせるとともに、インターリーバ100によるアドレス制御を行わせることによって、入力したデータを、少なくとも軟出力復号回路90が要する処理時間と同時間の遅延、少なくともインターリーバ100が要する処理時間と同時間の遅延、又は、少なくとも軟出力復号回路90及びインターリーバ100が要する処理時間と同時間の遅延をさせる複数の遅延モードを実現する。
【0829】
具体的には、セレクタ1202は、上述したように、動作モード情報CBFが、少なくとも軟出力復号回路90が要する処理時間と同時間の遅延、少なくともインターリーバ100が要する処理時間と同時間の遅延、又は、少なくとも軟出力復号回路90及びインターリーバ100が要する処理時間と同時間の遅延、のいずれかを行うべき遅延モードを示すものであった場合には、遅延外部情報SDEXを選択して出力し、動作モード情報CBFが、少なくとも軟出力復号回路90及び/又はインターリーバ100による遅延を行わず、軟出力復号回路90及び/又はインターリーバ100による処理を行う通常モードを示すものであった場合には、データTLX、すなわち、軟出力復号回路90による復号結果を選択して出力する。さらに換言すれば、要素復号器50は、このセレクタ1202によって、外部情報又は軟出力に対して、少なくとも軟出力復号回路90及び/又はインターリーバ100が要する処理時間と同時間の遅延を行うか否かを決定することができる。
【0830】
また、インターリーバ100は、上述したように、遅延モードを示す動作モード情報CBFを入力すると、アドレス制御を行うことによって、見かけ上、遅延回路として機能することができる。これについては、後述する。
【0831】
このようにすることによって、復号装置3としては、考えられる繰り返し回数の繰り返し復号を行うことが可能な数の要素復号器を連接して構成すれば、任意の繰り返し回数の繰り返し復号を行うことが可能となる。例えば、符号化装置1が先に図2又は図4に示した符号化装置1’,1’’であって、200個の要素復号器を連接して復号装置3を構成した場合、この復号装置3は、繰り返し回数が最高で100回の繰り返し復号を行うことができる。この復号装置3において、繰り返し回数が20回の繰り返し復号を行う場合には、先頭から40個目の要素復号器は、通常の軟出力復号処理及びインターリーブ処理を行い、残りの160個の要素復号器は、少なくとも軟出力復号回路90及びインターリーバ100が要する処理時間と同時間の遅延を行う遅延モードの動作を行えばよい。
【0832】
このように、復号装置3は、複数の遅延モードを有し、これらの遅延モードを切り替えて用いることによって、同一配線のLSIからなる要素復号器50を複数連接するだけで、全体の復号遅延を変化させることなく、繰り返し回数を変更した繰り返し復号を行うことが可能となり、PCCC、SCCC、TTCM又はSCTCMといった任意の符号を、所望の繰り返し回数で繰り返し復号することが可能となる。
【0833】
なお、要素復号器50は、セレクタ1202のみで遅延モードを切り替えるのではなく、例えば“4−6”に示したように、軟出力復号回路90又はインターリーバ100を単体動作させるために、動作モード情報CBFにより選択動作を行うセレクタ1204,1207、さらには付随的に、セレクタ1203,1205,1206といった複数のセレクタを利用することで、多種の遅延モードを実現するようにしてもよい。
【0834】
4−8 次段情報生成機能
上述した制御回路60及びインターリーバ100における制御回路400に関する特徴である。
【0835】
複数の要素復号器を連接して復号装置3を構成した場合、各要素復号器には、符号に関する各種情報が与えられる必要がある。この各種情報としては、終結情報としての終結時刻及び終結ステート、消去情報としてのパンクチャパターン、及び、フレームの先頭情報がある。これらの情報を各要素復号器に対して与えるためには、外部の制御回路等により必要な情報を生成することが考えられるが、部品点数の増加や基板面積の増大を招くことになる。
【0836】
そこで、要素復号器50は、フレームの先頭情報及びインターリーブ長といった情報を把握することができるインターリーバ100を利用することによって、次段の要素復号器に必要な情報を生成して出力する。すなわち、要素復号器50は、上述したように、制御回路60によって、静的な情報である終結位置情報CNFTと、終結期間情報CNFLと、終結ステート情報CNFDと、パンクチャ周期情報CNELと、パンクチャパターン情報CNEPとを生成する。そして、要素復号器50は、制御回路60により生成されるこれらの終結位置情報CNFTと、終結期間情報CNFLと、終結ステート情報CNFDと、パンクチャ周期情報CNELと、パンクチャパターン情報CNEPとがインターリーバ100に対して入力されると、インターリーバ100における制御回路400によって、これらの情報に基づいて、終結時刻情報IGTと、終結ステート情報IGSと、消去位置情報IGEと、インターリーバ無出力位置情報INOとを生成する。そして、インターリーバ100は、制御回路400による制御の下に、制御回路60から情報が入力されてからインターリーブ長分の時間の経過後に、生成した終結時刻情報IGT、終結ステート情報IGS、消去位置情報IGE、インターリーバ無出力位置情報INOを出力する。また、インターリーバ100は、セレクタ1205から供給されるインターリーブ開始位置信号TISを、インターリーブ長分、すなわち、インターリーバ100が要する処理時間と同時間だけ遅延させて遅延インターリーブ開始位置信号IDSを生成して出力する。
【0837】
このようにすることによって、要素復号器50は、生成した終結時刻情報IGT、終結ステート情報IGS、消去位置情報IGE、インターリーバ無出力位置情報INO、及び、遅延インターリーブ開始位置信号IDSを、フレームの先頭に同期させて出力することが容易に可能となる。
【0838】
このように、復号装置3は、各種情報を生成するための制御回路を外部に備える必要がなく、部品点数の削減を図ることができ、PCCC、SCCC、TTCM又はSCTCMといった任意の符号を、同一配線のLSIからなる要素復号器50を複数連接するだけで繰り返し復号することができる。
【0839】
なお、要素復号器50は、インターリーバ100における制御回路400によって、各種情報を生成してフレームの先頭に同期させて出力するのではなく、インターリーブ開始位置信号TILSに同期させて各種情報を生成するようにしてもよい。すなわち、復号装置3は、次段の要素復号器に必要な情報を前段の要素復号器において生成するのではなく、各要素復号器が終結情報及び消去情報といった各種情報を生成する制御回路を備え、入力されたデータのフレームの先頭に同期させて、これらの情報を生成するようにしてもよい。
【0840】
4−9 システム検証機能
上述したセレクタ1208,1209,12010及び信号線130に関する特徴である。
【0841】
要素復号器50は、例えば数百本といった膨大な数のピンを備えるものである。そのため、要素復号器50を複数連接して復号装置3を構成した場合には、例えばはんだ不良等に起因した導通不良の状態が起こりやすい。
【0842】
そこで、要素復号器50は、外部から入力される受信値TR、外部情報又はインターリーブデータTEXT、消去情報TERS、事前確率情報消去情報TEAP、終結時刻情報TTNP、終結ステート情報TTNS、及び、インターリーブ開始位置信号TILSのそれぞれを伝送するための信号線を束ね外部へと通じる信号線130を備え、この信号線130によりスルー信号を伝送することによって、導通検査といったシステムの検証を行う。
【0843】
このとき、要素復号器50は、制御回路60により検証モード情報CTHRを生成し、この検証モード情報CTHRに基づいて、セレクタ1208,1209,12010による選択動作を行わせることによって、システムの検証を行うための検証モードへの切り替えを行う。
【0844】
具体的には、セレクタ1208は、上述したように、検証モード情報CTHRが検証モードを示すものであった場合には、信号線130により伝送されてくるスルー信号を選択し、遅延受信値RNとして、次段の要素復号器において受信値Rが入力される端子に出力する。
【0845】
また、セレクタ1209は、上述したように、検証モード情報CTHRが検証モードを示すものであった場合には、信号線130により伝送されてくるスルー信号を選択し、軟出力INTとして、次段の要素復号器において外部情報又はインターリーブデータEXTが入力される端子に出力する。
【0846】
さらに、セレクタ12010は、上述したように、検証モード情報CTHRが検証モードを示すものであった場合には、信号線130により伝送されてくるスルー信号を選択し、次段終結時刻情報TNPN、次段終結ステート情報TNSN、次段消去位置情報ERSN、次段事前確率情報消去情報EAPN、及び、次段インターリーブ開始位置信号ILSNとして、次段の要素復号器において終結時刻情報TNP、終結ステート情報TNS、消去情報TERS、事前確率情報消去情報TEAP、及び、インターリーブ開始位置信号ILSが入力される端子にそれぞれ出力する。
【0847】
このように、復号装置3は、外部からの入力信号をそのまま外部に出力する機能を有し、検証モードの際にスルー信号を入出力することによって、導通不良箇所を容易に判別することができ、ピン数が多い要素復号器を複数連接した場合であっても、容易にシステムの検証を行うことができ、優れた利便を提供することができる。
【0848】
5. 軟出力復号回路に関する特徴
つぎに、軟出力復号回路90に関する特徴毎の説明を行う。以下の特徴は、軟出力復号回路90の機能として備えられるものであるが、特徴の概念を明確化するために、適宜簡略化した図面を用いて説明する。
【0849】
5−1 符号情報の持たせ方
上述した符号情報生成回路151に関する特徴である。要素復号器50は、例えば先に図14乃至図17に示した畳み込み符号化器といった任意の要素符号化器による符号を、符号に依らず同一の構成で軟出力復号することができるものである。この目的を達成するために、要素復号器50は、以下に示す4つの特徴を有する。
【0850】
5−1−1 トレリス上の全枝の入出力パターンの算出
例えば、先に図14に示した畳み込み符号化器におけるトレリスは、一例を図19に示したように、各ステートから次時刻におけるステートへと2本のパスが到達する構造であり、全32本の枝を有する構造を有するものとなる。また、先に図15に示した畳み込み符号化器におけるトレリスは、一例を図21に示したように、各ステートから次時刻におけるステートへと4本のパスが到達する構造であり、全32本の枝を有するものとなる。さらに、先に図16に示した畳み込み符号化器におけるトレリスは、一例を図23に示したように、各ステートから次時刻におけるステートへと4本のパスが到達する構造であり、全32本の枝を有するものとなる。さらにまた、先に図17に示した畳み込み符号化器におけるトレリスは、一例を図25に示したように、各ステートから次時刻におけるステートへと4組のパラレルパスが到達する構造であり、全32本の枝を有するものとなる。また、これらの畳み込み符号化器は、結線の仕方によりメモリ数が可変となるが、32本以下の枝を有するトレリスとなる。
【0851】
そこで、軟出力復号回路90は、トレリス上の枝の本数が所定の値以下となることに着目し、符号構成を考慮せず、トレリス上の枝を主体に考慮することによって、全ての枝の入出力パターンを算出し、この情報を対数尤度Iγ及び対数軟出力Iλの算出の際に用いる。具体的には、軟出力復号回路90は、符号情報生成回路151によって、トレリス上の全ての枝の入出力パターンを算出し、この情報を枝入出力情報BIOとして、Iγ分配回路157及び軟出力算出回路161に供給する。
【0852】
なお、枝入出力情報BIOは、対数尤度Iαを算出するために、遷移元のステートから遷移先のステートへと、時間軸に沿って算出される情報である。すなわち、枝入出力情報BIOは、遷移先のステートから見て入力される枝を基準とした情報である。一方、軟出力復号回路90においては、対数尤度Iβを算出するために、遷移先のステートから遷移元のステートへと、時間軸とは逆順に沿って算出される枝入出力情報を算出する必要があるが、これは、Iγ分配回路157における枝入出力情報算出回路223によって、枝入出力情報BIとして算出される。すなわち、枝入出力情報BIは、遷移元のステートから見て出力していく枝を基準とした情報である。
【0853】
このようにすることによって、要素復号器50は、所定の本数以下の枝を有する任意のトレリス符号の復号を、同一の構成で行うことができる。すなわち、通常、各符号構成に応じた固有のトレリスに基づいた復号を行う必要があるところを、要素復号器50は、トレリス上の枝に着目することによって、符号構成に依らず、任意の符号の復号を行うことができる。このとき、要素復号器50は、要素符号化器が非線形符号であった場合にも、復号することができる。
【0854】
なお、ここでは、32本以下の枝を有するトレリス構造となる符号の復号を行う場合について説明したが、要素復号器50は、この枝の本数に限定されるものでないことはいうまでもない。
【0855】
以下、ここで示した手法における枝の番号付けとして、3つの具体例を示す。
【0856】
5−1−2 遷移元のステートと遷移先のステートとの間での番号付け
ボーゼンクラフト型の畳み込み符号化器においては、遅延素子に対して時系列にデータが保持されることから、遷移先のステートが限定される。具体的に説明するために、先に図18に示した畳み込み符号化器を用いると、遷移元のステートが“0000”であった場合には、シフトレジスタ2013、シフトレジスタ2012及びシフトレジスタ2011の内容が、次時刻ではシフトレジスタ2014、シフトレジスタ2013及びシフトレジスタ2012の内容にそのまま移行するため、遷移先のステートは、“0000”、“0001”に限定される。このように、ボーゼンクラフト型の畳み込み符号化器においては、メモリ数が決定された時点で遷移先のステートが決定される。そのため、ボーゼンクラフト型の畳み込み符号化器においては、符号構成に依らず、任意のステートと任意のステートとを結ぶ枝の有無を容易に求めることができる。
【0857】
そこで、軟出力復号回路90は、符号情報生成回路151によって、遷移元のステートと遷移先のステートとを結ぶ枝に対して一意に番号付けを行う。すなわち、軟出力復号回路90は、ボーゼンクラフト型の畳み込み符号の復号を行う場合には、トレリスの一意性を利用した枝の番号付けを行う。そして、軟出力復号回路90は、番号付けされた枝毎の入出力パターンを算出し、この情報を時間軸に沿って求められる枝入出力情報BIOとして、Iγ分配回路157及び軟出力算出回路161に供給する。また、軟出力復号回路90は、Iγ分配回路157における枝入出力情報算出回路223によって、少なくともメモリ数情報MN及び枝入出力情報BIOに基づいて、時間軸とは逆順に沿って求められる枝入出力情報BIを算出し、Iβ0用Iγ分配回路2241及びIβ1用Iγ分配回路2242に供給する。
【0858】
具体的には、軟出力復号回路90は、先に図14に示した符号化率が“1/n”で表されるボーゼンクラフト型の畳み込み符号化器の復号を行う場合には、符号情報生成回路151によって、例えば図67に示すように、メモリ数に応じて各枝に対して一意に番号付けを行い、時間軸に沿った枝入出力情報BIOを算出する。すなわち、軟出力復号回路90は、符号情報生成回路151によって、メモリ数が“4”の畳み込み符号化器の復号を行う場合には、同図(A)に示すように番号付けを行い、メモリ数が“3”の畳み込み符号化器の復号を行う場合には、同図(B)に示すように番号付けを行い、メモリ数が“2”の畳み込み符号化器の復号を行う場合には、同図(C)に示すように番号付けを行い、メモリ数が“1”の畳み込み符号化器の復号を行う場合には、同図(D)に示すように番号付けを行う。同図においては、例えば、ステート番号が“0”のステートへと入力される2本の各枝に“0”,“1”の番号を付し、ステート番号が“1”のステートへと入力される2本の各枝に“2”,“3”の番号を付している。
【0859】
一方、軟出力復号回路90は、枝入出力情報算出回路223によって、例えば図68に示すように、メモリ数に応じて各枝に対して一意に番号付けを行い、時間軸とは逆順に沿った枝入出力情報BIを算出する。すなわち、軟出力復号回路90は、枝入出力情報算出回路223によって、メモリ数が“4”の畳み込み符号化器の復号を行う場合には、同図(A)に示すように番号付けを行い、メモリ数が“3”の畳み込み符号化器の復号を行う場合には、同図(B)に示すように番号付けを行い、メモリ数が“2”の畳み込み符号化器の復号を行う場合には、同図(C)に示すように番号付けを行い、メモリ数が“1”の畳み込み符号化器の復号を行う場合には、同図(D)に示すように番号付けを行う。同図においては、例えば、ステート番号が“0”のステートから出力していく2本の各枝に“0”,“1”の番号を付し、ステート番号が“1”のステートから出力していく2本の各枝に“2”,“3”の番号を付している。
【0860】
また、軟出力復号回路90は、先に図15に示した符号化率が“2/3”で表されるボーゼンクラフト型の畳み込み符号化器の復号を行う場合には、符号情報生成回路151によって、例えば図69に示すように、メモリ数に応じて各枝に対して一意に番号付けを行い、時間軸に沿った枝入出力情報BIOを算出する。すなわち、軟出力復号回路90は、符号情報生成回路151によって、メモリ数が“3”の畳み込み符号化器の復号を行う場合には、同図(A)に示すように番号付けを行い、メモリ数が“2”の畳み込み符号化器の復号を行う場合には、同図(B)に示すように番号付けを行う。同図においては、例えば、ステート番号が“0”のステートへと入力される4本の各枝に“0”,“1”,“2”,“3”の番号を付し、ステート番号が“1”のステートへと入力される4本の各枝に“4”,“5”,“6”,“7”の番号を付している。
【0861】
一方、軟出力復号回路90は、枝入出力情報算出回路223によって、例えば図70に示すように、メモリ数に応じて各枝に対して一意に番号付けを行い、時間軸とは逆順に沿った枝入出力情報BIを算出する。すなわち、軟出力復号回路90は、枝入出力情報算出回路223によって、メモリ数が“3”の畳み込み符号化器の復号を行う場合には、同図(A)に示すように番号付けを行い、メモリ数が“2”の畳み込み符号化器の復号を行う場合には、同図(B)に示すように番号付けを行う。同図においては、例えば、ステート番号が“0”のステートから出力していく4本の各枝に“0”,“1”,“2”,“3”の番号を付し、ステート番号が“1”のステートから出力していく4本の各枝に“4”,“5”,“6”,“7”の番号を付している。
【0862】
このようにすることによって、軟出力復号回路90は、符号構成に依らず、枝番号から、遷移元のステートと遷移先のステートとを一意に把握することができる。したがって、例えば、あるステートの時にある入力がされたときの枝に対する番号付けといった、符号に依存した番号付けを行った場合には、遷移元のステートと遷移先のステートとは、一意に定まる必然性はないが、軟出力復号回路90は、トレリスの一意性を利用して、ステートに依存した枝の番号付けを行うことによって、枝番号と入出力パターンとの関係が一意に定まることから、簡易な制御で復号を行うことができる。
【0863】
なお、この手法による枝の番号付けの具体例としては、図67乃至図70に示すものが挙げられるが、遷移元のステートと遷移先のステートとを結ぶ枝に対して一意に番号付けがされていれば、具体的な番号は同図に示したものに限定されることはない。
【0864】
5−1−3 時間軸に沿った番号付け及び時間軸とは逆順に沿った番号付け
例えばマッシィ型といったボーゼンクラフト型の畳み込み符号化器以外のものにおいては、ボーゼンクラフト型の畳み込み符号化器のように、遅延素子に対して時系列にデータが保持されないことから、遷移先のステートが限定されることはない。具体的に説明するために、先に図22に示した畳み込み符号化器を用いると、遷移元のステートが“000”であった場合には、次時刻におけるシフトレジスタ2053の内容は、前時刻におけるシフトレジスタ2052の内容がそのまま移行したものではなく、また、次時刻におけるシフトレジスタ2052の内容は、前時刻におけるシフトレジスタ2051の内容がそのまま移行したものではない。そのため、遷移先のステートは、メモリ数毎には限定されず、符号構成に応じて多様となる。
【0865】
そこで、軟出力復号回路90は、符号情報生成回路151によって、遷移先のステートから見て入力される枝を基準とした番号付けを行うとともに、番号付けされた枝毎の入出力パターンを算出し、この情報を、時間軸に沿って求められる枝入出力情報BIOとして、Iγ分配回路157及び軟出力算出回路161に供給する。そして、軟出力復号回路90は、Iα算出回路158における制御信号生成回路240によって、符号構成に基づいて遷移元のステートを別途算出し、制御信号PSTとして加算比較選択回路242に供給する。また、軟出力復号回路90は、Iγ分配回路157における枝入出力情報算出回路223によって、少なくとも各時刻における出力に影響を与える生成行列情報CGに基づいて、遷移元のステートから見て出力していく枝を基準とした番号付けを行うとともに、番号付けされた枝毎の入出力パターンを算出し、この情報を、時間軸とは逆順に沿って求められる枝入出力情報BIとして、Iβ0用Iγ分配回路2241及びIβ1用Iγ分配回路2242に供給する。そして、軟出力復号回路90は、Iβ算出回路159における制御信号生成回路280によって、符号構成に基づいて遷移先のステートを別途算出し、制御信号NSTとしてIβ0用加算比較選択回路281及びIβ1用加算比較選択回路282に供給する。
【0866】
具体的には、軟出力復号回路90は、先に図16に示した符号化率が“2/3”で表されるマッシィ型の畳み込み符号化器の復号を行う場合には、符号情報生成回路151によって、例えば図71に示すように、メモリ数に応じて各枝に対する番号付けを行い、時間軸に沿った枝入出力情報BIOを算出する。すなわち、軟出力復号回路90は、符号情報生成回路151によって、メモリ数が“3”の畳み込み符号化器の復号を行う場合には、同図(A)に示すように番号付けを行い、メモリ数が“2”の畳み込み符号化器の復号を行う場合には、同図(B)に示すように番号付けを行う。同図においては、例えば、ステート番号が“0”のステートへと入力される4本の各枝に“0”,“1”,“2”,“3”の番号を付し、ステート番号が“1”のステートへと入力される4本の各枝に“4”,“5”,“6”,“7”の番号を付している。なお、ここでは、各ステートに入力される4本の枝に対する番号付けの手法の具体例については詳述しないが、軟出力復号回路90は、例えば、入力パターンの情報と、必要に応じて遷移元のステートの情報とを用いて、各枝に対する固有の番号付けを行うことができる。
【0867】
一方、軟出力復号回路90は、枝入出力情報算出回路223によって、例えば図72に示すように、メモリ数に応じて各枝に対する番号付けを行い、時間軸とは逆順に沿った枝入出力情報BIを算出する。すなわち、軟出力復号回路90は、枝入出力情報算出回路223によって、メモリ数が“3”の畳み込み符号化器の復号を行う場合には、同図(A)に示すように番号付けを行い、メモリ数が“2”の畳み込み符号化器の復号を行う場合には、同図(B)に示すように番号付けを行う。同図においては、例えば、ステート番号が“0”のステートから出力していく4本の各枝に“0”,“1”,“2”,“3”の番号を付し、ステート番号が“1”のステートから出力していく4本の各枝に“4”,“5”,“6”,“7”の番号を付している。なお、ここでは、各ステートに入力される4本の枝に対する番号付けの手法の具体例については詳述しないが、軟出力復号回路90は、例えば入力パターンの情報のみを用いて、各枝に対する固有の番号付けを行うことができる。
【0868】
このように、軟出力復号回路90は、各ステート毎に、時間軸に沿った番号付けと、時間軸とは逆順に沿った番号付けとを分けて行い、入出力パターンを算出するとともに、符号構成に基づいて遷移元のステート及び遷移先のステートを算出する。このようにすることによって、軟出力復号回路90は、要素符号のパラメータによりトレリスの形状が変化するマッシィ型の畳み込み符号であっても、復号することが可能となる。
【0869】
なお、この手法による枝の番号付けの具体例としては、図71及び図72に示すものが挙げられるが、具体的な番号は同図に示したものに限定されることはない。また、ここでは、マッシィ型の畳み込み符号化器の復号を行う場合について説明したが、この手法は、マッシィ型の畳み込み符号以外の非線形符号を含む任意の符号に適用できるものである。勿論、この手法は、ボーゼンクラフト型の畳み込み符号にも適用できるものである。
【0870】
5−1−4 トレリス全体の一意性に基づく番号付け
符号における入力ビット数がメモリ数以下の場合には、トレリス上における各ステートから次時刻における全てのステートへとパスが到達するトレリス構造となる場合がある。すなわち、トレリスが、各ステートから次時刻における全てのステートへとパスが到達する構造を有する場合には、符号構成に依らず、一意に遷移元のステート番号と遷移先のステート番号とを把握することができる。
【0871】
そこで、軟出力復号回路90は、符号情報生成回路151によって、トレリス全体の構造の一意性に基づいて、当該トレリス全体を考慮した全ての枝に対する番号付けを行う。そして、軟出力復号回路90は、番号付けされた枝毎の入出力パターンを算出し、この情報を時間軸に沿って求められる枝入出力情報BIOとして、Iγ分配回路157及び軟出力算出回路161に供給する。また、軟出力復号回路90は、Iγ分配回路157における枝入出力情報算出回路223によって、少なくともメモリ数情報MN及び枝入出力情報BIOに基づいて、時間軸とは逆順に沿って求められる枝入出力情報BIを算出し、Iβ0用Iγ分配回路2241及びIβ1用Iγ分配回路2242に供給する。
【0872】
具体的には、軟出力復号回路90は、先に図17に示した符号化率が“3/3”で表されるマッシィ型の畳み込み符号化器の復号を行う場合には、符号情報生成回路151によって、例えば図73に示すように、メモリ数に応じて各枝に対して一意に番号付けを行い、時間軸に沿った枝入出力情報BIOを算出する。すなわち、軟出力復号回路90は、符号情報生成回路151によって、メモリ数が“2”の畳み込み符号化器の復号を行う場合には、同図(A)に示すように番号付けを行い、メモリ数が“1”の畳み込み符号化器の復号を行う場合には、同図(B)に示すように番号付けを行う。同図(A)においては、例えば、ステート番号が“0”のステートへと入力される8本の各枝を2本ずつ束ねて得られる4組の各枝に“0,1”,“2,3”,“4,5”,“6,7”の番号を付し、ステート番号が“1”のステートへと入力される8本の各枝を2本ずつ束ねて得られる4組の各枝に“8,9”,“10,11”,“12,13”,“14,15”の番号を付している。なお、ここでは、各ステートに入力される複数組の枝に対する番号付けの手法、及び、1組の枝における各パラレルパスに対する番号付けの手法の具体例については詳述しないが、軟出力復号回路90は、例えば、生成行列情報CGに基づく場合分けを行い、各場合において、入力パターンの情報と遷移元のステートの情報とを用いることによって、各枝に対する固有の番号付けを行うことができる。
【0873】
一方、軟出力復号回路90は、枝入出力情報算出回路223によって、例えば図74に示すように、メモリ数に応じて各枝に対して一意に番号付けを行い、時間軸とは逆順に沿った枝入出力情報BIを算出する。すなわち、軟出力復号回路90は、枝入出力情報算出回路223によって、メモリ数が“2”の畳み込み符号化器の復号を行う場合には、同図(A)に示すように番号付けを行い、メモリ数が“1”の畳み込み符号化器の復号を行う場合には、同図(B)に示すように番号付けを行う。同図(A)においては、例えば、ステート番号が“0”のステートから出力していく8本の各枝を2本ずつ束ねて得られる4組の各枝に“0,1”,“2,3”,“4,5”,“6,7”の番号を付し、ステート番号が“1”のステートから出力していく8本の各枝を2本ずつ束ねて得られる4組の各枝に“8,9”,“10,11”,“12,13”,“14,15”の番号を付している。なお、ここでは、各ステートに入力される複数組の枝に対する番号付けの手法、及び、1組の枝における各パラレルパスに対する番号付けの手法の具体例については詳述しないが、軟出力復号回路90は、例えば、生成行列情報CGに基づく場合分けを行い、各場合において、入力パターンの情報と遷移元のステートの情報とを用いることによって、各枝に対する固有の番号付けを行うことができる。
【0874】
このように、軟出力復号回路90は、トレリスが、各ステートから次時刻における全てのステートへとパスが到達するトレリス構造を有する場合には、当該トレリス全体の構造の一意性に基づいて、全ての枝に対する番号付けを行うことによって、符号構成に依らず、枝番号から、遷移元のステートと遷移先のステートとを一意に把握することができる。したがって、軟出力復号回路90は、一意に遷移元のステート番号と遷移先のステート番号とを把握でき、簡易な制御で復号を行うことができる。
【0875】
なお、この手法による枝の番号付けの具体例としては、図73及び図74に示すものが挙げられるが、遷移元のステートと遷移先のステートとを結ぶ枝に対して一意に番号付けがされていれば、具体的な番号は同図に示したものに限定されることはない。
【0876】
5−2 終結情報の入力方法
上述した終結情報生成回路153に関する特徴である。PCCC、SCCC、TTCM及びSCTCMによる符号を繰り返し復号する場合には、終結処理が必須となる。そこで、要素復号器50は、以下に示す2つの手法により終結情報を生成する。
【0877】
5−2−1 入力ビット数分の情報の終結期間分の入力
上述したように、ボーゼンクラフト型の畳み込み符号化器においては、遷移先のステートが限定される。そこで、軟出力復号回路90は、上述したように、ボーゼンクラフト型の畳み込み符号を終結する場合には、終結情報として、畳み込み符号化器に対する入力ビット数分の情報を終結期間分だけ入力することによって、終結ステートを明示する。
【0878】
具体的には、入力ビット数が“1”であり、メモリ数が“2”のボーゼンクラフト型の畳み込み符号化器による符号を“00”で表されるステートへ終結する場合には、軟出力復号回路90は、終結情報生成回路153によって、例えば図75に示すように、入力ビット数分である1ビットの“0”を終結ステート情報TSMとして1タイムスロットで生成し、メモリ数分である2タイムスロット分だけ終結ステート情報TSMを生成することによって、“00”という終結ステートを明示することができる。
【0879】
このようにすることによって、要素復号器50は、符号化率がk/nで表される任意のボーゼンクラフト型の畳み込み符号の終結処理を行うことができる。要素復号器50は、終結情報を入力するためのピンを最小限に抑えた構成とすることができ、例えば終結パターンが長くなり連続した終結処理が必要な場合にも、終結情報を適切に生成することができ、終結情報の入力の不整合を回避することができる。
【0880】
5−2−2 終結ステートを示す情報の1タイムスロットでの入力
上述したように、例えばマッシィ型の畳み込み符号化器といったボーゼンクラフト型の畳み込み符号化器以外の要素符号化器においては、ボーゼンクラフト型の畳み込み符号化器のように、遷移先のステートが限定されることはない。そのため、ボーゼンクラフト型の畳み込み符号以外の符号を終結する場合には、終結情報として、入力ビット数分の情報を終結期間分だけ入力することはできない。
【0881】
そこで、軟出力復号回路90は、上述したように、終結情報として、終結ステートを示す情報を1タイムスロットで入力することによって、終結ステートを明示する。
【0882】
具体的には、入力ビット数が“1”であり、メモリ数が“2”のマッシィ型の畳み込み符号化器による符号を“00”で表されるステートへ終結する場合には、軟出力復号回路90は、終結情報生成回路153によって、例えば図76に示すように、終結ステートを示す2ビットの“00”を終結ステート情報TSMとして1タイムスロットで生成することによって、“00”という終結ステートを明示することができる。
【0883】
このようにすることによって、要素復号器50は、符号構成に応じてトレリスの構造が変化するマッシィ型の畳み込み符号を含むいかなるトレリス符号であっても終結処理を行うことができる。勿論、要素復号器50は、この手法を用いて、ボーゼンクラフト型の畳み込み符号の終結処理を行うこともできる。また、この手法は、例えばいわゆるビタビ復号といった軟出力復号以外の復号にも適用可能なものである。
【0884】
5−3 消去位置の処理
上述した受信値及び事前確率情報選択回路154に関する特徴である。
【0885】
軟出力復号においては、通常、少なくとも対数尤度Iγの算出時まで、パンクチャ等により符号出力が存在しない位置を示す情報を別途保持しておく必要があり、この情報を保持する記憶回路を備える等の対処が必要であった。
【0886】
そこで、軟出力復号回路90は、上述したように、受信値及び事前確率情報選択回路154によって、内部消去情報生成回路152から供給される内部消去位置情報IERSに基づいて、符号出力が存在しない位置を尤度が“0”のシンボルに置き換える。すなわち、軟出力復号回路90は、符号出力が存在しない位置に相当するビットが“0”であるか“1”であるかの確率が“1/2”であるものとすることによって、復号動作に影響を与えることなく、消去されていることに等価な状況を生成する。
【0887】
このようにすることによって、要素復号器50は、符号出力が存在しない位置を示す情報を保持する記憶回路を別途備える必要がないことから、回路規模の削減を図ることができる。
【0888】
5−4 対数尤度Iγの算出及び分配
上述したIγ算出回路156及びIγ分配回路157に関する特徴である。上述したように、要素復号器50は、例えば先に図14乃至図17に示した畳み込み符号化器といった任意の要素符号化器による符号を、符号に依らず同一の構成で軟出力復号することができるものである。この目的を達成するために、要素復号器50は、対数尤度Iγの算出及び分配に関し、以下に示す4つの特徴を有する。
【0889】
5−4−1 全入出力パターン分の対数尤度Iγの算出・分配
軟出力復号回路90は、任意の符号の復号を実現するために、Iγ算出回路156によって、あり得る全ての入出力パターン分の対数尤度Iγを算出し、Iγ分配回路157によって、符号構成に応じて決定される入出力パターンに応じて分配する。
【0890】
ここで、先に図14乃至図17に示した畳み込み符号化器を復号する場合について考える。これらの各畳み込み符号化器におけるトレリスは、32本以下の枝を有する構造となり、多くとも32通りの入出力パターンを有するものとなる。そこで、軟出力復号回路90は、図77に概略を示すように、Iγ算出回路156における情報・符号Iγ算出回路221によって、32通りの入出力パターンの全てを算出する。なお、同図において、“Iγ(00/000)”は、要素符号化器における入力データ/出力データが“00/000”である枝に対応する対数尤度Iγを示している。そして、軟出力復号回路90は、符号構成に応じて決定される入出力パターンに応じて、上述したIγ分配回路157におけるIα用Iγ分配回路2243、Iβ0用Iγ分配回路2241又はIβ1用Iγ分配回路2242のそれぞれに相当する32個のセレクタ5201,5202,・・・,52032のそれぞれによって、32通りの対数尤度Iγ(00/000),Iγ(01/000),・・・,Iγ(11/111)の中から一の対数尤度Iγを選択し、選択されて得られた32通りの対数尤度Iγに対して所定の処理を施した後、各枝番号0,1,・・・,31に相当する対数尤度Iγ(0),Iγ(1),・・・,Iγ(31)として分配して出力する。
【0891】
このようにすることによって、要素復号器50は、所定の本数以下の枝を有する任意のトレリス符号の復号を、同一の構成で行うことができる。特に、この手法は、入出力パターンが少なく、トレリス上の枝の本数が多い場合には有効なものとなる。
【0892】
5−4−2 少なくとも一部の入出力パターン分の対数尤度Iγの算出・分配
ところで、“5−4−1”に示した手法の場合、Iγ分配回路157におけるIα用Iγ分配回路2243、Iβ0用Iγ分配回路2241又はIβ1用Iγ分配回路2242は、32通りの信号から一の信号を選択する、すなわち、32対1の選択を行うセレクタを少なくとも32個有することになり、回路規模が膨大なものとなる可能性がある。
【0893】
そこで、軟出力復号回路90は、Iγ算出回路156によって、32通りの入出力パターンの全てを算出するのではなく、少なくとも一部の入出力パターン分の対数尤度Iγを算出し、Iγ分配回路157によって、所望の対数尤度Iγを選択した後、選択した各対数尤度Iγを加算する。
【0894】
具体的に説明するために、ここでも、先に図14乃至図17に示した畳み込み符号化器を復号する場合について考える。この場合、図14に示した畳み込み符号化器は、多くとも16通りの入出力パターンを有し、図15に示した畳み込み符号化器は、多くとも32通りの入出力パターンを有し、図16に示した畳み込み符号化器は、多くとも8通りの入出力パターンを有し、図17に示した畳み込み符号化器は、多くとも16通りの入出力パターンを有する。ここで、最も入出力パターンが多い図15に示した畳み込み符号化器は、多くとも4通りの入力パターンと、多くとも8通りの出力パターンを有する。そこで、軟出力復号回路90は、図78に概略を示すように、Iγ算出回路156における情報・符号Iγ算出回路221によって、4通りの入力パターンと、8通りの出力パターンとに応じた対数尤度Iγを算出する。そして、軟出力復号回路90は、符号構成に応じて決定される入出力パターンに応じて、Iγ分配回路157におけるセレクタ5301によって、4通りの入力パターンに対応する4つの対数尤度Iγの中から一の対数尤度Iγを選択するとともに、Iγ分配回路157におけるセレクタ5302によって、8通りの入力パターンに対応する8個の対数尤度Iγの中から一の対数尤度Iγを選択し、Iγ分配回路157における加算器531によって、選択されて得られた2つの対数尤度Iγを加算し、所定の処理を施した後、枝番号に相当する対数尤度Iγとして分配して出力する。Iγ分配回路157は、このような2つのセレクタ5301,5302と、加算器531とを有する回路を多くとも32個有することによって、上述したIα用Iγ分配回路2243、Iβ0用Iγ分配回路2241又はIβ1用Iγ分配回路2242のそれぞれを構成する。
【0895】
このようにすることによって、要素復号器50は、32対1の選択を行うセレクタといった回路規模が膨大なセレクタを備える必要がなく、4対1の選択及び8対1の選択を行うセレクタといった回路規模が少ないセレクタと加算器とを備えればよく、少ない回路規模で、所定の本数以下の枝を有する任意のトレリス符号の復号を、同一の構成で行うことができる。特に、この手法は、トレリス上の枝の本数に対して入出力パターンが多い場合には有効なものとなる。また、この手法は、例えば、符号化装置1がTTCM又はSCTCMによる符号化を行うものであった場合や、符号化装置1における入力データ及び出力データをシンボル単位で復号する場合等、入力ビット及び出力ビットをビット単位で分離することができない場合には、極めて有効なものとなる。
【0896】
5−4−3 全入出力パターン分の対数尤度Iγに対する1時刻毎の正規化
Log−BCJRアルゴリズムにおいては、一般に、対数尤度同士の差分値のみが結果に影響し、対数尤度の値が大きいものほど重要度が高い。
【0897】
しかしながら、対数尤度Iγは、算出される過程において、時刻の経過とともに値の分布に偏りを生じ、一定時間の経過後には、対数尤度Iγを算出する系が表現可能な値の範囲を超過してしまうことがある。
【0898】
例えば、対数尤度Iγをハードウェアのように正値のみを扱う系により算出する場合には、対数尤度Iγの値は、徐々に増大していき、一定時間の経過後には、ハードウェアが表現可能な値の範囲を超過してしまう。また、対数尤度Iγを浮動小数点演算を行う系のように負値のみを扱う系により算出する場合を考えると、この場合には、対数尤度Iγの値は、徐々に減少していき、一定時間の経過後には、ソフトウェアとして表現可能な値の範囲を超過してしまう。このように、対数尤度Iγが表現可能な値の範囲を超過してしまい、当該表現可能な値の範囲を超過した対数尤度Iγは、クリップされることになる。
【0899】
そこで、軟出力復号回路90は、対数尤度Iγがクリップされ、適切な対数尤度同士の差分を表現することが困難となることを回避するために、対数尤度Iγの分布の偏りを是正するための正規化を行う。
【0900】
具体的には、軟出力復号回路90は、“5−4−1”に示した手法によりあり得る全ての入出力パターン分の対数尤度Iγを算出する場合には、以下のような正規化を行う。すなわち、軟出力復号回路90は、Iγ算出回路156におけるIγ正規化回路222によって、情報・符号Iγ算出回路221により算出された複数の対数尤度Iγ(00/000),Iγ(01/000),・・・,Iγ(11/111)のうち、確率γが最大値を有するものに対応する対数尤度Iγを、とり得る確率の最大値に対応する対数尤度に合わせるように、各対数尤度Iγ(00/000),Iγ(01/000),・・・,Iγ(11/111)に対して所定の演算を施す。
【0901】
具体的には、軟出力復号回路90は、要素復号器50が対数尤度を負値として扱う場合、すなわち、上述した定数sgnが“+1”の場合には、図79に概略を示すように、Iγ算出回路156におけるIγ正規化回路222によって、情報・符号Iγ算出回路221により算出された複数の対数尤度Iγ(00/000),Iγ(01/000),・・・,Iγ(11/111)のうち、最大値を有するものを、要素復号器50が表現可能な最大値に合わせるように、複数の対数尤度Iγ(00/000),Iγ(01/000),・・・,Iγ(11/111)のそれぞれに対して所定の値を加算する。
【0902】
例えば、Iγ正規化回路222は、ある時刻に算出された複数の対数尤度Iγ(00/000),Iγ(01/000),・・・,Iγ(11/111)が、それぞれ、図80(A)に示す分布を呈しているものとしたとき、同図(B)に示すように、これらの対数尤度Iγ(00/000),Iγ(01/000),・・・,Iγ(11/111)のうち、最大値であるプロット×で示す対数尤度Iγ(11/111)を“0”とするように、複数の対数尤度Iγ(00/000),Iγ(01/000),・・・,Iγ(11/111)のそれぞれに対して所定の値を加算する。
【0903】
また、軟出力復号回路90は、要素復号器50が対数尤度を正値として扱う場合、すなわち、上述した定数sgnが“−1”の場合には、Iγ算出回路156におけるIγ正規化回路222によって、情報・符号Iγ算出回路221により算出された複数の対数尤度Iγ(00/000),Iγ(01/000),・・・,Iγ(11/111)のうち、最小値を有するものを、要素復号器50が表現可能な最小値に合わせるように、複数の対数尤度Iγ(00/000),Iγ(01/000),・・・,Iγ(11/111)のそれぞれから所定の値を減算する。
【0904】
例えば、Iγ正規化回路222は、ある時刻に算出された複数の対数尤度Iγ(00/000),Iγ(01/000),・・・,Iγ(11/111)が、それぞれ、図81(A)に示す分布を呈しているものとしたとき、同図(B)に示すように、これらの対数尤度Iγ(00/000),Iγ(01/000),・・・,Iγ(11/111)のうち、最小値であるプロット○で示す対数尤度Iγ(00/000)を“0”とするように、複数の対数尤度Iγ(00/000),Iγ(01/000),・・・,Iγ(11/111)のそれぞれから所定の値を減算する。
【0905】
軟出力復号回路90は、Iγ正規化回路222によって、このような正規化を行った後、必要なダイナミックレンジに応じてクリッピングを行い、対数尤度GA,GB0,GB1としてIγ分配回路157に供給する。
【0906】
要素復号器50は、Iγ正規化回路222によって、1時刻毎にこのような正規化を行うことで、Iγ算出回路156からIγ分配回路157へと供給される対数尤度GA,GB0,GB1のビット数を削減することができる。また、要素復号器50は、値が大きく重要度の高い対数尤度がクリップされる事態を招くことがなく、適切な対数尤度同士の差分を表現することが可能となり、高精度の復号を行うことができる。
【0907】
なお、要素復号器50は、Iγ正規化回路222を必ずしもIγ算出回路156の内部に備える必要はない。例えば、要素復号器50は、Iγ分配回路157の後段にIγ正規化回路222を設けるようにしてもよい。勿論、この手法は、任意の符号の復号を実現する場合のみならず、固定符号を復号する場合にも有効なものである。
【0908】
5−4−4 少なくとも一部の入出力パターン分の対数尤度Iγに対する正規化
軟出力復号回路90は、“5−4−2”に示した手法により少なくとも一部の入出力パターン分の対数尤度Iγを算出する場合には、以下のような正規化を行う。すなわち、軟出力復号回路90は、Iγ算出回路156におけるIγ正規化回路222によって、情報・符号Iγ算出回路221により算出された入力パターンに応じた複数の対数尤度Iγのうち、確率γが最大値を有するものに対応する対数尤度Iγを、とり得る確率の最大値に対応する対数尤度に合わせるように、各対数尤度Iγに対して所定の演算を施す。
【0909】
具体的には、軟出力復号回路90は、要素復号器50が対数尤度を負値として扱う場合、すなわち、上述した定数sgnが“+1”の場合には、図82に概略を示すように、Iγ算出回路156におけるIγ正規化回路222によって、情報・符号Iγ算出回路221により算出された入力パターンに応じた複数の対数尤度Iγのうち、最大値を有するものを、要素復号器50が表現可能な最大値に合わせるように、複数の対数尤度Iγのそれぞれに対して所定の値を加算するとともに、情報・符号Iγ算出回路221により算出された出力パターンに応じた複数の対数尤度Iγのうち、最大値を有するものを、要素復号器50が表現可能な最大値に合わせるように、複数の対数尤度Iγのそれぞれに対して所定の値を加算し、正規化を行う。
【0910】
また、軟出力復号回路90は、要素復号器50が対数尤度を正値として扱う場合、すなわち、上述した定数sgnが“−1”の場合には、Iγ算出回路156におけるIγ正規化回路222によって、情報・符号Iγ算出回路221により算出された入力パターンに応じた複数の対数尤度Iγのうち、最小値を有するものを、要素復号器50が表現可能な最小値に合わせるように、複数の対数尤度Iγのそれぞれに対して所定の値を加算するとともに、情報・符号Iγ算出回路221により算出された出力パターンに応じた複数の対数尤度Iγのうち、最小値を有するものを、要素復号器50が表現可能な最小値に合わせるように、複数の対数尤度Iγのそれぞれに対して所定の値を加算し、正規化を行う。
【0911】
すなわち、軟出力復号回路90は、入力パターンに応じた対数尤度Iγと、出力パターンに応じた対数尤度Iγとに対して、それぞれ、正規化を行う。
【0912】
軟出力復号回路90は、Iγ正規化回路222によって、このような正規化を行った後、必要なダイナミックレンジに応じてクリッピングを行い、対数尤度GA,GB0,GB1としてIγ分配回路157に供給する。
【0913】
要素復号器50は、Iγ正規化回路222によって、1時刻毎にこのような正規化を行うことで、最大値又は最小値を有する対数尤度Iγを探索する規模を小さくすることができ、処理の高速化及び回路規模の削減を図ることができる。そして、要素復号器50は、Iγ算出回路156からIγ分配回路157へと供給される対数尤度GA,GB0,GB1のビット数を削減することができ、値が大きく重要度の高い対数尤度がクリップされる事態を招くことがなく、適切な対数尤度同士の差分を表現することが可能となり、高精度の復号を行うことができる。
【0914】
ただし、この場合、符号構成によっては、最終的な対数尤度Iγの最大値又は最小値が、要素復号器50が表現可能な最大値又は最小値に一致するとは限らないが、全ての入出力パターンが現れる場合には、“5−4−3”に示した手法による正規化と同等になることから、性能が劣化することはない。
【0915】
なお、要素復号器50は、この場合においても、Iγ正規化回路222を必ずしもIγ算出回路156の内部に備える必要はない。
【0916】
5−5 対数尤度Iα,Iβの算出
上述したIα算出回路158及びIβ算出回路159に関する特徴である。また、特徴によっては、Iγ分配回路157に関するものもある。要素復号器50は、対数尤度Iα,Iβを算出するにあたって、以下に示す9つの特徴を有する。
【0917】
5−5−1 対数尤度Iαと対数尤度Iγとの和の算出
軟出力復号において、対数軟出力Iλを算出する際には、上式(55)に示したように、対数尤度Iαと対数尤度Iγとの和を予め求める必要がある。すなわち、軟出力復号においては、通常、対数軟出力Iλを算出するために、対数尤度Iαと対数尤度Iγとの和を算出する回路を別途備える必要がある。そのため、対数軟出力Iλを算出する回路の規模が増大する虞がある。
【0918】
そこで、軟出力復号回路90は、対数尤度Iαを算出する過程で求められる対数尤度Iαと対数尤度Iγとの和Iα+Iγを、対数軟出力Iλの算出に流用する。具体的には、軟出力復号回路90は、上述したように、Iα算出回路158によって、算出した対数尤度Iαをそのまま出力するのではなく、算出した対数尤度Iαと対数尤度Iγとの和を出力する。すなわち、Iα算出回路158は、加算比較選択回路241,242により対数尤度Iαを算出する過程で求められる対数尤度Iαと対数尤度Iγとの和Iα+Iγを出力する。
【0919】
このようにすることによって、要素復号器50は、対数軟出力Iλを算出するために必要となる対数尤度Iαと対数尤度Iγとの和を算出する回路を備える必要がなくなり、回路規模の削減を図ることができる。
【0920】
5−5−2 パラレルパスに対する前処理
例えば先に図17に示した畳み込み符号化器による符号のように、トレリス上にパラレルパスが存在する符号を復号したい場合がある。ここで、図17に示した畳み込み符号化器の場合を例とすると、トレリスは、先に図25に一例を示したように、各ステートから次時刻におけるステートへと2本1組のパラレルパスが4組到達する構造となる。すなわち、この場合のトレリスは、各ステートに8本のパスが到達する構造となる。
【0921】
ここで、パラレルパスは、遷移元のステートが同一であり且つ遷移先のステートが同一であることに着目する。すなわち、パラレルパスは、1本のパスとして擬制できることに着目する。この点に着目することによって、軟出力復号回路90は、トレリス上にパラレルパスが存在する符号を復号する場合には、対数尤度Iα,Iβを算出する前に、予めパラレルパスに対応する対数尤度Iγに対してlog−sum演算を行う。具体的には、軟出力復号回路90は、上述したIγ分配回路157におけるIβ0用パラレルパス処理回路2251、Iβ1用パラレルパス処理回路2252及びIα用パラレルパス処理回路2253を備え、パラレルパスに対応する対数尤度Iγに対してlog−sum演算を行い、パラレルパスを束ねる。
【0922】
このようにすることによって、要素復号器50は、Iα算出回路158及びIβ算出回路159の処理の負担を軽減することができ、性能を劣化することなく処理の高速化を図ることができる。
【0923】
なお、要素復号器50は、Iγ分配回路157にパラレルパスを束ねる機能を持たせているが、この構成に限定される必要はない。すなわち、要素復号器50としては、対数尤度Iα,Iβの算出前に、パラレルパスに対応する対数尤度Iγを束ねればよい。また、ここでは、2本のパラレルパスを1組に束ねるものとして説明しているが、例えば4本といった任意の数のパラレルパスを1組に束ねるようにしてもよい。
【0924】
5−5−3 加算比較選択回路の共用
要素復号器50は、任意の符号の復号を可能とするものであるが、入力ビット数をkとしたとき、各符号を復号するためには、対数尤度Iα,Iβを算出するために加算比較選択処理及びlog−sum補正により補正項を追加する処理を行う加算比較選択回路として、各ステートに2k本のパスが到達するトレリスに対応するものを個別に備える必要がある。このような加算比較選択回路は、一般に、要素符号化器に対する入力ビット数kが大きい符号に対応するものほど、回路規模が増大し、処理の負担が大きくなる。
【0925】
ここで、先に図14乃至図17に示した4種類の畳み込み符号化器による符号を復号する場合を考える。この場合、図14に示した畳み込み符号化器による符号に対応する加算比較選択処理回路としては、各ステートから次時刻におけるステートへと21=2本のパスが到達する構造を有するトレリスに対応するものが必要となる。また、図15及び図16に示した畳み込み符号化器による符号に対応する加算比較選択処理回路としては、各ステートから次時刻におけるステートへと22=4本のパスが到達する構造を有するトレリスに対応するものが必要となる。さらに、図17に示した畳み込み符号化器による符号に対応する加算比較選択処理回路としては、各ステートから次時刻におけるステートへと23=8本のパスが到達する構造を有するトレリスに対応するものが必要となる。
【0926】
ところで、図17に示した畳み込み符号化器による符号は、トレリス上にパラレルパスが存在するものである。このとき、“5−5−2”に示した手法によりパラレルパスを束ねた場合には、この符号のトレリスは、畳み込み符号化器におけるメモリ数ν=2を用いて、各ステートから次時刻におけるステートへと2ν=22=4本のパスが到達する構造を有するものと擬制することができる。
【0927】
そこで、軟出力復号回路90は、要素符号化器に対する入力ビット数がk=3である符号に対応する加算比較選択回路を備えず、要素符号化器に対する入力ビット数がk=2=νである符号に対応する加算比較選択回路と共用する。
【0928】
具体的には、軟出力復号回路90は、Iα算出回路158における加算比較選択回路として、要素符号化器に対する入力ビット数がk=1,2である符号に対応する加算比較選択回路241,242のみを備えるとともに、Iβ算出回路159における加算比較選択回路としても、要素符号化器に対する入力ビット数がk=1,2である符号に対応する加算比較選択回路283,284のみを備え、要素符号化器に対する入力ビット数がk=3である符号に対する処理を、加算比較選択回路242,284により行う。すなわち、軟出力復号回路90は、要素符号化器に対する入力ビット数がk=3であり且つメモリ数がν=2<kである符号であって、トレリス上にパラレルパスが存在する符号に対応する加算比較選択回路の代わりに、要素符号化器に対する入力ビット数がk=2=νである符号に対応する加算比較選択回路を共用する。
【0929】
このようにすることによって、要素復号器50は、要素符号化器に対する入力ビット数がk=3である符号に対応する加算比較選択回路を備える必要がなく、回路規模の削減を図ることができる。
【0930】
なお、ここでは、要素符号化器に対する入力ビット数がk=3である符号に対応する加算比較選択回路を、要素符号化器に対する入力ビット数がk=2である符号に対応する加算比較選択回路と共用する例について説明したが、要素復号器50としては、符号構成によっては、例えば、要素符号化器に対する入力ビット数がk=2である符号に対応する加算比較選択回路を、要素符号化器に対する入力ビット数がk=1である符号に対応する加算比較選択回路と共用するといったように、要素符号化器に対する入力ビット数が小さい符号に対応する加算比較選択回路と共用することもできる。例えば、要素符号化器に対する入力ビット数がk=3であり、各ステートから任意のステートに対して4本1組のパラレルパスが2組到達しているような符号において、これらの4本のパラレルパスを1組に束ねた場合には、要素符号化器に対する入力ビット数がk=1である符号に対応する加算比較選択回路と共用することができる。すなわち、要素復号器50は、要素符号化器に対する入力ビット数がk1であり且つメモリ数がν<k1である符号であって、トレリス上にパラレルパスが存在する符号に対応する加算比較選択回路を、要素符号化器に対する入力ビット数がk2<k1であり且つメモリ数がνである符号に対応する加算比較選択回路と共用することができるものである。
【0931】
5−5−4 対数軟出力Iλの算出用の対数尤度Iγの出力
さて、“5−5−2”に示した手法によりパラレルパスを束ねた場合には、Iα算出回路158及びIβ算出回路159における加算比較選択回路の処理が簡易なものとなり、処理の高速化の面で有効であることは、上述した通りであるが、最終的に必要な結果である対数軟出力Iλを算出するためには、各パラレルパスに対応する個別のメトリックが必要となる。すなわち、軟出力復号においては、対数軟出力Iλを算出する際には、パラレルパスを束ねた場合の対数尤度Iγを、そのまま用いることはできない。
【0932】
そこで、軟出力復号回路90は、トレリス上にパラレルパスが存在する符号を復号する場合であって、パラレルパスを束ねた場合には、対数軟出力Iλを算出するために用いる対数尤度Iγを別途出力する。具体的には、軟出力復号回路90は、Iγ分配回路157におけるIα用Iγ分配回路2243により分配して得られた対数尤度PGAを、Iα用パラレルパス処理回路2253に供給するとともに、対数尤度DGABとして別途出力する。
【0933】
このようにすることによって、要素復号器50は、復号結果に影響を与えることなく、パラレルパスを束ねることが可能となり、結果として、Iα算出回路158及びIβ算出回路159の処理の負担を軽減し、性能を劣化することなく処理の高速化を図ることが可能となる。すなわち、要素復号器50は、パラレルパスを束ねる際には、必然的に、対数軟出力Iλを算出するために用いる対数尤度Iγを別途出力することになる。
【0934】
5−5−5 パラレルパスに対する対数尤度Iαと対数尤度Iγとの和の算出
“5−5−1”に示したように、対数軟出力Iλを算出するために、対数尤度Iαを算出する過程で求められる対数尤度Iαと対数尤度Iγとの和Iα+Iγを出力することは、回路規模の削減の面から有効であるが、トレリス上にパラレルパスが存在する符号を復号するにあたっては、“5−5−1”に示した手法により求めた対数尤度Iαと対数尤度Iγとの和Iα+Iγを、そのまま出力することはできない。
【0935】
そこで、軟出力復号回路90は、トレリス上にパラレルパスが存在する符号を復号する場合であって、パラレルパスを束ねた場合には、対数尤度Iαを算出するための加算比較選択回路とは別に、対数尤度Iαと対数尤度Iγとの和Iα+Iγを算出する回路を備え、この算出結果を対数軟出力Iλの算出に用いる。具体的には、軟出力復号回路90は、Iα算出回路158におけるIα+Iγ算出回路243を備え、このIα+Iγ算出回路243によって、加算比較選択回路242により算出される対数尤度Iαと、Iγ分配回路157によりパラレルパスを束ねない状態で得られる対数尤度Iγとを加算し、この和を対数軟出力Iλの算出に用いる。
【0936】
このようにすることによって、要素復号器50は、復号結果に影響を与えることなく、パラレルパスを束ねることが可能となり、結果として、Iα算出回路158及びIβ算出回路159の処理の負担を軽減し、性能を劣化することなく処理の高速化を図ることが可能となる。すなわち、要素復号器50は、パラレルパスを束ねる際には、必然的に、対数軟出力Iλを算出するために用いる対数尤度Iαと対数尤度Iγとの和を別途算出することになる。
【0937】
5−5−6 符号構成に応じた対数尤度の選択
先に“5−1−2”に示したように、ボーゼンクラフト型の畳み込み符号化器においては、遅延素子に対して時系列にデータが保持されることから、遷移先のステートが限定され、トレリスに一意性が存在する。
【0938】
そこで、軟出力復号回路90は、ボーゼンクラフト型の畳み込み符号を復号する場合には、トレリスの一意性を利用して、畳み込み符号化器のメモリ数が可変となる場合にも容易に復号できる機能を備える。具体的には、軟出力復号回路90は、先に示した図34、図36、図39及び図40には図示していないが、Iα算出回路158における加算比較選択回路241,242と、Iβ算出回路159における加算比較選択回路283,284との内部に、処理を行う対数尤度Iα,Iβを選択するセレクタを備える。
【0939】
例えば、先に図14に示した畳み込み符号化器のように、メモリ数が“1”、“2”、“3”、“4”の間で可変となる畳み込み符号化器におけるトレリスの一例を、メモリ数に応じてそれぞれ、図83(A)、(B)、(C)、(D)に示す。すなわち、同図(A)に示すトレリスは、メモリ数が“1”の場合の一例であり、同図(B)に示すトレリスは、メモリ数が“2”の場合の一例であり、同図(C)に示すトレリスは、メモリ数が“3”の場合の一例であり、同図(D)に示したトレリスは、メモリ数が“4”の場合の一例である。
【0940】
これらの4つのトレリスにおいてステート番号が“0”のステートを合わせ、各トレリスを重ねると、図84に示すようになる。同図において、実線で示す枝は、図83(A)に示したトレリス上の枝であり、破線で示す枝は、図83(B)に示したトレリス上の枝であり、一点鎖線で示す枝は、図83(C)に示したトレリス上の枝であり、二点鎖線で示す枝は、図83(D)に示したトレリス上の枝である。
【0941】
図84からわかるように、ステート番号が“0”、“1”のステートに到達する枝は、4通りの枝が重なったものと、4通りの枝が互いに異なるステートから到達するものとがある。したがって、畳み込み符号化器のメモリ数を可変にした場合には、メモリ数に応じて、互いに異なるステートから到達する4本の枝のうちの1本を選択すればよい。
【0942】
また、ステート番号が“2”、“3”のステートに到達する枝は、3通りの枝が重なったものと、3通りの枝が互いに異なるステートから到達するものとがある。したがって、畳み込み符号化器のメモリ数を可変にした場合には、メモリ数に応じて、互いに異なるステートから到達する3本の枝のうちの1本を選択すればよい。
【0943】
さらに、ステート番号が“4”、“5”、“6”、“7”のステートに到達する枝は、2通りの枝が重なったものと、2通りの枝が互いに異なるステートから到達するものとがある。したがって、畳み込み符号化器のメモリ数を可変にした場合には、メモリ数に応じて、互いに異なるステートから到達する2本の枝のうちの1本を選択すればよい。
【0944】
また、ステート番号が“8”以降のステートに到達する枝は、図83(D)に示した畳み込み符号化器によるもののみであることから、枝の選択動作を行う必要はない。
【0945】
これらのことを考慮すると、上述した16個のlog−sum演算回路245nを有する加算比較選択回路241としては、例えば図85に概略を示すように、4つのセレクタ5401,5402,5403,5404を有し、次時刻における対数尤度ALを算出する際に、前時刻において算出した対数尤度ALを選択すればよいことになる。
【0946】
すなわち、加算比較選択回路241は、セレクタ5401によって、メモリ数情報MNに基づいて、前時刻において算出された対数尤度ALのうち、遷移元のステート番号が“1”であるステートに対応する対数尤度AL01、遷移元のステート番号が“2”であるステートに対応する対数尤度AL02、遷移元のステート番号が“4”であるステートに対応する対数尤度AL04、遷移元のステート番号が“8”であるステートに対応する対数尤度AL08のうちの一の対数尤度を選択する。セレクタ5401は、例えば、要素符号化器がメモリ数が“1”のものであった場合には、対数尤度AL01を選択し、要素符号化器がメモリ数が“2”のものであった場合には、対数尤度AL02を選択し、要素符号化器がメモリ数が“3”のものであった場合には、対数尤度AL04を選択し、要素符号化器がメモリ数が“4”のものであった場合には、対数尤度AL08を選択する。log−sum演算回路2451,2452には、対数尤度AL00が対数尤度A0として供給されるとともに、セレクタ5401により選択された対数尤度が対数尤度A1として供給される。
【0947】
また、加算比較選択回路241は、セレクタ5402によって、メモリ数情報MNに基づいて、前時刻において算出された対数尤度ALのうち、遷移元のステート番号が“3”であるステートに対応する対数尤度AL03、遷移元のステート番号が“5”であるステートに対応する対数尤度AL05、遷移元のステート番号が“9”であるステートに対応する対数尤度AL09のうちの一の対数尤度を選択する。セレクタ5402は、例えば、要素符号化器がメモリ数が“2”のものであった場合には、対数尤度AL03を選択し、要素符号化器がメモリ数が“3”のものであった場合には、対数尤度AL05を選択し、要素符号化器がメモリ数が“4”のものであった場合には、対数尤度AL09を選択する。log−sum演算回路2453,2454には、対数尤度AL01が対数尤度A0として供給されるとともに、セレクタ5402により選択された対数尤度が対数尤度A1として供給される。
【0948】
さらに、加算比較選択回路241は、セレクタ5403によって、メモリ数情報MNに基づいて、前時刻において算出された対数尤度ALのうち、遷移元のステート番号が“6”であるステートに対応する対数尤度AL06、遷移元のステート番号が“10”であるステートに対応する対数尤度AL10のうちの一の対数尤度を選択する。セレクタ5403は、例えば、要素符号化器がメモリ数が“3”のものであった場合には、AL06を選択し、要素符号化器がメモリ数が“4”のものであった場合には、AL10を選択する。log−sum演算回路2455,2456には、対数尤度AL02が対数尤度A0として供給されるとともに、セレクタ5403により選択された対数尤度が対数尤度A1として供給される。
【0949】
さらにまた、加算比較選択回路241は、セレクタ5404によって、メモリ数情報MNに基づいて、前時刻において算出された対数尤度ALのうち、遷移元のステート番号が“7”であるステートに対応する対数尤度AL07、遷移元のステート番号が“11”であるステートに対応する対数尤度AL11のうちの一の対数尤度を選択する。セレクタ5404は、例えば、要素符号化器がメモリ数が“3”のものであった場合には、AL07を選択し、要素符号化器がメモリ数が“4”のものであった場合には、AL11を選択する。log−sum演算回路2457,2458には、対数尤度AL03が対数尤度A0として供給されるとともに、セレクタ5404により選択された対数尤度が対数尤度A1として供給される。
【0950】
このように、軟出力復号回路90は、加算比較選択回路内にセレクタを備えることによって、メモリ数が可変となるボーゼンクラフト型の畳み込み符号を復号することができる。すなわち、軟出力復号回路90は、ボーゼンクラフト型の畳み込み符号のトレリスの一意性を利用することによって、メモリ数に応じた符号のトレリスを効率よく重ねることができることから、メモリ数が可変となる符号の復号を可能とする要素復号器50を容易に実現することができる。
【0951】
なお、ここでは、Iα算出回路158における加算比較選択回路241を例にあげて説明したが、要素復号器50は、加算比較選択回路242や、Iβ算出回路159における加算比較選択回路283,284においても、同様の機能を備えるものである。
【0952】
また、上述した例では、最大で4対1の選択を行うセレクタを備えるものとして説明したが、トレリスの重ね方には任意性があり、この重ね方によっては、セレクタの規模を小さくすることも可能である。
【0953】
5−5−7 対数尤度Iα,Iβに対する正規化
対数尤度Iα,Iβは、上述した対数尤度Iγと同様に、算出される過程において、時刻の経過とともに値の分布に偏りを生じ、一定時間の経過後には、対数尤度Iα,Iβを算出する系が表現可能な値の範囲を超過してしまうことがある。
【0954】
そこで、軟出力復号回路90は、対数尤度Iα,Iβの分布の偏りを是正するための正規化を行う。
【0955】
この正規化の第1の方法としては、“5−4−3”に示した対数尤度Iγに対する正規化方法と同様に、要素復号器50が対数尤度を負値として扱う場合、すなわち、上述した定数sgnが“+1”の場合には、Iα算出回路158におけるIα正規化回路250,272及びIβ算出回路159におけるIβ0正規化回路291,308等によって、1時刻毎に、算出された複数の対数尤度Iα,Iβのうち、最大値を有するものを、要素復号器50が表現可能な最大値に合わせるように、複数の対数尤度Iα,Iβのそれぞれに対して所定の値を加算するものが考えられる。また、正規化の第1の方法としては、要素復号器50が対数尤度を正値として扱う場合、すなわち、上述した定数sgnが“−1”の場合には、Iα算出回路158におけるIα正規化回路250,272及びIβ算出回路159におけるIβ0正規化回路291,308等によって、1時刻毎に、算出された複数の対数尤度Iα,Iβのうち、最小値を有するものを、要素復号器50が表現可能な最小値に合わせるように、複数の対数尤度Iα,Iβのそれぞれから所定の値を減算するものが考えられる。
【0956】
この第1の方法による正規化を行うIα算出回路158におけるlog−sum演算回路245n,256nと、Iβ算出回路159におけるlog−sum演算回路286n,292nとは、図86に概略を示すlog−sum演算回路550のように表すことができる。すなわち、log−sum演算回路550は、対数尤度Iγと1時刻前に算出された対数尤度Iα,Iβとを、加算器551により加算し、得られたデータから補正項算出回路552により補正項の値を算出する。そして、log−sum演算回路550は、加算器533によって、加算器551からのデータと補正項算出回路552からのデータとを加算し、正規化回路554によって、加算器553からのデータに基づく判定情報JDに基づいて、上述した正規化を行う。正規化されたデータは、レジスタ555により1時刻分だけ遅延され、対数尤度Iα,Iβとして、加算器551に供給されるとともに、外部に出力される。
【0957】
ここで、対数尤度Iαの正規化を行う場合について説明するために、1時刻前に算出された対数尤度Iαと対数尤度Iγのダイナミックレンジを、それぞれ、a,gと表すものとすると、正規化回路554は、図87に示すような正規化を行うことになる。なお、ここでは、要素復号器50が表現可能な最大値又は最小値を“0”とする。
【0958】
このとき、加算器551により算出された対数尤度Iαと対数尤度Iγとの和Iα+Iγのダイナミックレンジは、同図に示すように、a+gで表される。このときの対数尤度Iαと対数尤度Iγとの和Iα+Iγの最大値又は最小値をM1と表す。続いて、補正項算出回路552及び加算器553による処理を経て得られたlog−sum演算後のデータのダイナミックレンジは、log−sum演算によるダイナミックレンジは増加しないことから、a+gで表される。このときのデータの最大値又は最小値をM2と表す。
【0959】
正規化回路554は、log−sum演算後のデータの最大値又は最小値M2を“0”とするような正規化を行うとともに、ダイナミックレンジがa以上の値をクリップする。このとき、正規化回路554は、判定情報JDに基づいて、log−sum演算後のデータに対して加算又は減算すべき値を求め、正規化を行う。また、正規化回路554は、対数尤度Iβに対しても同様の正規化を行う。
【0960】
軟出力復号回路90は、このような正規化を1時刻毎に行うことによって、値が大きく重要度の高い対数尤度がクリップされる事態を招くことがなく、適切な対数尤度同士の差分を表現することが可能となり、高精度の復号を行うことができる。特に、軟出力復号回路90は、値が最大又は最小の対数尤度を“0”とする正規化を行う場合には、対数尤度が負値又は正値のみをとることから、正方向又は負方向の表現を必要とせず、必要なダイナミックレンジを最小限に抑えることができ、回路規模の削減を図ることができる。
【0961】
また、軟出力復号回路90は、他の正規化方法を用いることもできる。すなわち、軟出力復号回路90は、第2の方法として、Iα算出回路158におけるIα正規化回路250,272及びIβ算出回路159におけるIβ0正規化回路291,308等によって、算出された複数の対数尤度Iα,Iβのうち、確率が最大のメトリックに対応する対数尤度Iα,Iβが所定の値を超過したときに、複数の対数尤度Iα,Iβのそれぞれに対して、当該所定の値を用いた演算を行う。
【0962】
具体的には、軟出力復号回路90は、要素復号器50が対数尤度を負値として扱う場合、すなわち、上述した定数sgnが“+1”の場合には、Iα算出回路158におけるIα正規化回路250,272及びIβ算出回路159におけるIβ0正規化回路291,308等によって、算出された複数の対数尤度Iα,Iβのうち、最大値を有するものが所定の値を超過したときに、複数の対数尤度Iα,Iβのそれぞれに対して所定の値を加算し、要素復号器50が対数尤度を正値として扱う場合、すなわち、上述した定数sgnが“−1”の場合には、Iα算出回路158におけるIα正規化回路250,272及びIβ算出回路159におけるIβ0正規化回路291,308等によって、算出された複数の対数尤度Iα,Iβのうち、最小値を有するものが所定の値を超過したときに、複数の対数尤度Iα,Iβのそれぞれから所定の値を減算する。
【0963】
特に、軟出力復号回路90は、所定の値として、ダイナミックレンジの1/2を採用することによって、正規化処理が非常に簡易なものとなる。
【0964】
これについて、先に図86に示したlog−sum演算回路550を用いて説明する。ここで、対数尤度Iγのダイナミックレンジをgと表し、1時刻前に算出された対数尤度Iαのダイナミックレンジがaで表され、且つ、この対数尤度Iαのダイナミックレンジをx>aだけ確保してあるものとし、確率が最大のメトリックに対応する最大値又は最小値を有する対数尤度Iαの値をz<x/2と表すものとすると、正規化回路554は、図88に示すような正規化を行うことになる。
【0965】
このとき、加算器551により算出された対数尤度Iαと対数尤度Iγとの和Iα+Iγのダイナミックレンジは、上述したように、x+gで表される。また、このときの対数尤度Iαと対数尤度Iγとの和Iα+Iγの最大値又は最小値は、z+gとxとのうちの値が小さい方であるmin(z+g,x)で表される。続いて、補正項算出回路552及び加算器553による処理を経て得られたlog−sum演算後のデータのダイナミックレンジは、log−sum演算によるダイナミックレンジは増加しないことから、x+gで表される。このときのデータの最大値又は最小値は、最大で補正項の最大値であるlog2(2の自然対数値)だけ変化することから、min(z+g,x)+log2で表される。
【0966】
正規化回路554は、min(z+g,x)+log2の値が、対数尤度Iαのダイナミックレンジxの1/2であるx/2を超過したと判定した場合には、log−sum演算後のデータから、x/2だけ減算して正規化を行うとともに、ダイナミックレンジがx以上の値をクリップする。このときのデータの最大値又は最小値は、min(z+g,x)+log2−x/2で表される。正規化回路554は、対数尤度Iβに対しても同様の正規化を行う。
【0967】
ここで、log−sum演算後のデータから対数尤度Iαのダイナミックレンジの1/2の値を減算するということは、log−sum演算後のデータの最上位ビットを反転することに他ならない。すなわち、正規化回路554は、最上位ビットが“1”となったlog−sum演算後のデータに対して、最上位ビットを反転して“0”とするような処理を行うことによって、正規化を行うことができる。
【0968】
このように、軟出力復号回路90は、算出された複数の対数尤度Iα,Iβのうち、確率が最大のメトリックに対応する対数尤度Iα,Iβが所定の値を超過したと判定したときに、複数の対数尤度Iα,Iβのそれぞれに対して、当該所定の値を用いた演算を行い、正規化を行うこともできる。この場合、軟出力復号回路90は、所定の値として、対数尤度Iα,Iβのダイナミックレンジの1/2の値とすることによって、最上位ビットを反転するだけでよく、簡易な回路構成の下に正規化を行うことができる。
【0969】
さらに、軟出力復号回路90は、さらに他の正規化方法を用いることもできる。すなわち、軟出力復号回路90は、第3の方法として、Iα算出回路158におけるIα正規化回路250,272及びIβ算出回路159におけるIβ0正規化回路291,308等によって、算出された複数の対数尤度Iα,Iβのうち、確率が最大のメトリックに対応する対数尤度Iα,Iβが所定の値を超過したときに、次のタイムスロットにおいて、上述した第2の方法と同様に、複数の対数尤度Iα,Iβのそれぞれに対して、当該所定の値を用いた加算又は減算を行う。
【0970】
この第3の方法による正規化を行うIα算出回路158におけるlog−sum演算回路245n,256nと、Iβ算出回路159におけるlog−sum演算回路286n,292nとは、図89に概略を示すlog−sum演算回路560のように表すことができる。すなわち、log−sum演算回路560は、対数尤度Iγと1時刻前に算出された対数尤度Iα,Iβとを、加算器561により加算し、得られたデータから補正項算出回路562により補正項の値を算出し、加算器563によって、加算器561からのデータと補正項算出回路562からのデータとを加算する。そして、log−sum演算回路560は、正規化回路564によって、レジスタ565からのデータに基づく判定情報JDに基づいて、上述した正規化を行う。正規化されたデータは、レジスタ565により1時刻分だけ遅延され、対数尤度Iα,Iβとして、加算器561に供給されるとともに、外部に出力される。すなわち、log−sum演算回路560は、レジスタ565から読み出されたデータが所定の値を超過したと判定されると、次のタイムスロットにおいて、正規化回路564による正規化を行う。
【0971】
ここで、対数尤度Iγのダイナミックレンジをgと表し、1時刻前に算出された対数尤度Iαのダイナミックレンジがaで表され、且つ、この対数尤度Iαのダイナミックレンジをx>aだけ確保してあるものとし、確率が最大のメトリックに対応する最大値又は最小値を有する対数尤度Iαの値をz<x/2と表すものとすると、正規化回路564は、図90に示すような正規化を行うことになる。
【0972】
このとき、加算器561により算出された対数尤度Iαと対数尤度Iγとの和Iα+Iγのダイナミックレンジは、上述したように、x+gで表される。また、このときの対数尤度Iαと対数尤度Iγとの和Iα+Iγの最大値又は最小値も、上述したように、min(z+g,x)で表される。続いて、補正項算出回路562及び加算器563による処理を経て得られたlog−sum演算後のデータのダイナミックレンジは、log−sum演算によるダイナミックレンジは増加しないことから、x+gで表される。このときのデータの最大値又は最小値は、最大で補正項の最大値であるlog2だけ変化することから、min(z+g,x)+log2で表される。
【0973】
正規化回路564は、min(z+g,x)+log2の値が、所定の値、例えば対数尤度Iαのダイナミックレンジxの1/2であるx/2を超過したと判定した場合には、次のタイムスロットにおけるlog−sum演算後のデータから、x/2だけ減算して正規化を行う。このときのデータの最大値又は最小値は、min(z+g,x)+log2で表される。正規化回路564は、対数尤度Iβに対しても同様の正規化を行う。
【0974】
軟出力復号回路90は、このような正規化を行うことによって、正規化するか否かの判定をlog−sum演算の直後に行う必要がなく、正規化処理の高速化を図ることができる。
【0975】
5−5−8 log−sum補正における補正項の算出
log−sum補正における補正項を算出する際には、通常、入力した2つのデータの差分値の大小を比較することで当該差分値の絶対値を算出し、この絶対値に対応する補正項の値を算出する。すなわち、log−sum演算を行うlog−sum演算回路570は、図91に概略を示すように、差分器5711によって、入力したデータAM0とデータAM1との差分値を算出するとともに、差分器5712によって、データAM1とデータAM0との差分値を算出し、これと同時に、比較回路572によって、データAM0とデータAM1との大小を比較し、この比較結果に基づいて、セレクタ573によって、差分器5711,5712からの2つのデータのうち、いずれか一方を選択し、この選択されたデータに対応する補正項の値をルックアップテーブル574から読み出す。そして、log−sum演算回路570は、加算器575によって、補正項の値を示すデータDMと、データAM0とデータAM1とのうちのいずれか一方であるデータSAMとを加算する。
【0976】
ここで、log−sum演算回路570においては、比較回路572によるデータAM0とデータAM1との大小比較が、通常、他の各部の処理に比較して時間を要すことから、結果的に、データSAMを求めるのに比較してデータDMを求めるのに時間を要し、大きな遅延を招くことがある。
【0977】
そこで、軟出力復号回路90は、先に図35に示したように、入力した2つのデータの差分値の絶対値を算出してから補正項の値を求めるのではなく、2つの差分値に対応する複数の補正項の値を算出し、その中から適切なものを選択する。すなわち、軟出力復号回路90は、入力した2つのデータの差分値の大小比較と、補正項の値の算出とを並列的に行う。
【0978】
このようなlog−sum演算を行うlog−sum演算回路580は、図92に概略を示すように、差分器5811によって、入力したデータAM0とデータAM1との差分値を算出するとともに、差分器5812によって、データAM1とデータAM0との差分値を算出し、差分器5811からのデータに対応する補正項の値をルックアップテーブル5821から読み出すとともに、差分器5812からのデータに対応する補正項の値をルックアップテーブル5822から読み出す。これと同時に、log−sum演算回路580は、上述したIα算出回路158における選択用制御信号生成回路253に対応する比較回路583によって、データAM0とデータAM1との大小を比較し、この比較結果に基づいて、セレクタ584によって、ルックアップテーブル5821,5822からの2つのデータのうち、いずれか一方を選択し、加算器585によって、この選択されたデータDMと、データAM0とデータAM1とのうちのいずれか一方であるデータSAMとを加算する。
【0979】
このように、軟出力復号回路90は、2つの差分値に対応する複数の補正項の値を算出し、その中から適切なものを選択することによって、対数尤度Iα,Iβを高速に求めることが可能となる。
【0980】
5−5−9 log−sum演算における選択用の制御信号の生成
log−sum補正における補正項を算出する際には、上述したIα算出回路158における選択用制御信号生成回路253のように、2つのデータの大小を比較する判定文を作成して選択用の制御信号を生成する必要がある。具体的には、選択用制御信号生成回路253により作成される制御信号SELの判定文は、次式(56)に示すように、データAM0,AM1の大小関係を示すものとなる。
【0981】
【数56】
【0982】
また、log−sum補正における補正項は、上述したように、所定の値に漸近する性質を有していることから、変数となる2つのデータの差分値の絶対値は、所定の値にクリップされるべきである。具体的には、選択用制御信号生成回路253により作成される制御信号SLの判定文は、次式(57)に示すように、データAM0,AM1の差分値の絶対値と、所定の値との大小関係を示すものとなる。
【0983】
【数57】
【0984】
ここで、データAM0,AM1が、それぞれ、12ビットからなるものとすると、選択用制御信号生成回路253は、少なくとも12ビットの比較回路を有することになり、回路規模の増大を招くとともに、処理の遅延を招く。
【0985】
そこで、選択用制御信号生成回路253は、少なくともデータAM0,AM1に基づいて、メトリックの上位ビットと下位ビットとを分割して、選択用の判定文を作成することによって、制御信号SEL,SLを生成する。すなわち、選択用制御信号生成回路253は、データAM0,AM1のそれぞれを上位ビットと下位ビットとに分割し、データAM0,AM1の大小を比較する判定文を作成する。
【0986】
まず、上式(56)に示した判定文からなる制御信号SELを生成することを考える。
【0987】
補正項算出回路247は、データAM0,AM1が例えば12ビットからなるものとすると、データAM0の下位6ビットのデータの最上位ビットに“1”を付したものと、データAM1の下位6ビットのデータの最上位ビットに“0”を付したものとの差分をとる。これと同時に、補正項算出回路247は、データAM0の下位6ビットのデータの最上位ビットに“0”を付したものと、データAM1の下位6ビットのデータの最上位ビットに“1”を付したものとの差分をとる。選択用制御信号生成回路253は、データAM0,AM1の他に、これらの差分値DA1,DA0を用いて、次式(58)に示すような判定文を作成し、制御信号SELを生成する。
【0988】
【数58】
【0989】
まず、補正項算出回路247は、選択用制御信号生成回路253によって、データAM0,AM1の上位6ビットAM0[11:6],AM1[11:6]の大小比較を行うことによって、データAM0,AM1の大小関係を判別する。すなわち、データAM0,AM1の上位6ビットAM0[11:6],AM1[11:6]の大小関係は、そのまま、データAM0,AM1の大小関係を表すものに他ならない。そのため、選択用制御信号生成回路253は、(AM0[11:6]>AM1[11:6])という判定文を作成する。
【0990】
また、補正項算出回路247は、差分値DA1を求めることによって、データAM0,AM1の下位6ビットの大小関係を求めることができる。すなわち、差分値DA1の最上位ビットが“1”であることは、データAM0の下位6ビットの方がデータAM1の下位6ビットよりも大きいことに他ならない。この条件の下で、AM1≦AM0が成立する場合を考えると、データAM0の上位6ビットの方がデータAM1の上位6ビットよりも大きい場合と、データAM0の上位6ビットとデータAM1の上位6ビットとが等しい場合とがある。そのため、選択用制御信号生成回路253は、((AM0[11:6]==AM1[11:6])&DA1[6]==1)という判定文を作成する。
【0991】
したがって、選択用制御信号生成回路253は、上式(58)に示した判定文を作成することによって、上式(56)に示した判定文を実現することができる。すなわち、選択用制御信号生成回路253は、6ビットの比較回路とイコール(=)判定回路とを有するのみで実現することができ、回路規模の削減を図ることができ、処理の高速化も図ることができる。
【0992】
つぎに、上式(57)に示した判定文からなる制御信号SLを生成することを考える。
【0993】
補正項算出回路247は、データAM0,AM1が例えば12ビットからなるものとすると、上述したように、データAM0の下位6ビットのデータの最上位ビットに“1”を付したものと、データAM1の下位6ビットのデータの最上位ビットに“0”を付したものとの差分をとる。これと同時に、補正項算出回路247は、データAM0の下位6ビットのデータの最上位ビットに“0”を付したものと、データAM1の下位6ビットのデータの最上位ビットに“1”を付したものとの差分をとる。選択用制御信号生成回路253は、データAM0,AM1の他に、これらの差分値DA1,DA0を用いて、次式(59)に示すような判定文を作成し、制御信号SLを生成する。
【0994】
【数59】
【0995】
まず、補正項算出回路247は、選択用制御信号生成回路253によって、データAM0,AM1の上位6ビットAM0[11:6],AM1[11:6]が等しいか否かを判定する。すなわち、データAM0,AM1の上位6ビットAM0[11:6],AM1[11:6]が等しい場合には、データAM0,AM1の差分値の絶対値は、所定の値未満、ここでは64未満となる。そのため、選択用制御信号生成回路253は、(AM0[11:6]==AM1[11:6])という判定文を作成する。
【0996】
また、データAM0の上位6ビットAM0[11:6]が、データAM1の上位6ビットAM1[11:6]よりも“1”だけ大きく、且つ、データAM0の下位6ビットAM0[5:0]が、データAM1の下位6ビットAM1[5:0]よりも小さい場合にも、データAM0,AM1の差分値の絶対値は、所定の値未満、ここでは64未満となる。ここで、データAM0の下位6ビットAM0[5:0]が、データAM1の下位6ビットAM1[5:0]よりも小さい場合とは、上述したことを考慮すると、差分値DA1の最上位ビットDA1[6]が“0”である場合である。そのため、選択用制御信号生成回路253は、(({1’b0,AM0[11:6]}=={1’b0,AM1[11:6]}+7’d1)&DA1[6]==0)という判定文を作成する。
【0997】
同様に、データAM1の上位6ビットAM1[11:6]が、データAM0の上位6ビットAM0[11:6]よりも“1”だけ大きく、且つ、データAM1の下位6ビットAM1[5:0]が、データAM0の下位6ビットAM0[5:0]よりも小さい場合にも、データAM0,AM1の差分値の絶対値は、所定の値未満、ここでは64未満となる。そのため、選択用制御信号生成回路253は、(({1’b0,AM1[11:6]}=={1’b0,AM0[11:6]}+7’d1)&DA0[6]==0)という判定文を作成する。
【0998】
したがって、選択用制御信号生成回路253は、上式(59)に示した判定文を作成することによって、上式(57)に示した判定文を実現することができる。すなわち、選択用制御信号生成回路253は、イコール(=)判定回路を有するのみで実現することができ、回路規模の削減を図ることができ、処理の高速化も図ることができる。
【0999】
このように、軟出力復号回路90は、log−sum補正における補正項を算出する際に、2つのデータの大小を比較するとともに、変数となる2つのデータの差分値の絶対値はを所定の値にクリップするための選択用の制御信号を生成する選択用制御信号生成回路の回路規模を削減することができ、処理の高速化を図ることもできる。
【1000】
なお、ここでは、選択用制御信号生成回路253について説明したが、Iγ分配回路157における選択用制御信号生成回路232や軟出力算出回路161における選択用制御信号生成回路330についても、同様の手法により制御信号を生成することができる。
【1001】
5−6 対数軟出力Iλの算出
上述した軟出力算出回路161に関する特徴である。要素復号器50は、対数軟出力Iλを算出するにあたって、以下に示す2つの特徴を有する。
【1002】
5−6−1 イネーブル信号を用いたlog−sum演算の累積加算演算
対数軟出力Iλを算出する際には、トレリス上の各枝の入力に応じたlog−sum演算の累積加算演算を行い、入力が“0”の枝に応じたlog−sum演算の累積加算演算結果と、入力が“1”の枝に応じたlog−sum演算の累積加算演算結果との差分をとる必要がある。
【1003】
そこで、軟出力復号回路90においては、任意の符号の復号を可能とするために、トレリス上の各枝に対応する対数尤度Iαと対数尤度Iγと対数尤度Iβとの和を算出するとともに、各枝の入力を示すイネーブル信号を生成し、このイネーブル信号に基づいて、勝ち抜き戦に喩えられる動作を行うことによって、対数軟出力Iλの算出を実現する。
【1004】
ここで、上述した軟出力算出回路161におけるlog−sum演算回路3121が、入力が“0”の枝に応じたlog−sum演算の累積加算演算を行うものとする。log−sum演算回路3121におけるlog−sum演算セル回路3251,・・・,32531は、それぞれ、入力した32系統のデータAGBのうち、2系統のデータAGBを入力するとともに、これらの2系統のデータAGBのそれぞれに対応する2系統のイネーブル信号ENを入力する。
【1005】
例えば、log−sum演算セル回路3251に入力された2系統のイネーブル信号EN000,EN001の両者が、入力が“0”であることを示すものであった場合には、log−sum演算セル回路3251は、2系統のデータAGB000,AGB001を用いたlog−sum演算を行い、この結果をデータAGB100として出力する。また、log−sum演算セル回路3251に入力された2系統のイネーブル信号EN000,EN001のうち、イネーブル信号EN000のみが、入力が“0”であることを示すものであった場合には、log−sum演算セル回路3251は、2系統のデータAGB000,AGB001のうち、データAGB000に対して所定のオフセット値N2を加算し、データAGB100として出力する。同様に、log−sum演算セル回路3251に入力された2系統のイネーブル信号EN000,EN001のうち、イネーブル信号EN001のみが、入力が“0”であることを示すものであった場合には、log−sum演算セル回路3251は、データAGB001に対して所定のオフセット値N2を加算し、データAGB100として出力する。さらに、log−sum演算セル回路3251に入力された2系統のイネーブル信号EN000,EN001の両者が、入力が“1”であることを示すものであった場合には、log−sum演算セル回路3251は、2系統のデータAGB000,AGB001を用いたlog−sum演算結果又はデータAGB000,AGB001自身を出力することはなく、所定の値を有するデータをデータAGB100として出力する。また、log−sum演算セル回路3252,・・・,32531も、log−sum演算セル回路3251と同様の処理を行い、選択的にデータAGBを出力する。
【1006】
このようにすることによって、log−sum演算回路3121は、入力が“0”の枝に応じたデータAGBのみを用いたlog−sum演算の累積加算演算を行うことができる。
【1007】
同様に、log−sum演算回路3122,・・・,3126は、入力が“0”又は“1”の枝に応じたデータAGBのみを用いたlog−sum演算の累積加算演算を行う。
【1008】
このようにすることによって、軟出力復号回路90は、所定の本数以下の枝を有する任意のトレリス符号に対して、対数軟出力Iλを算出することができる。
【1009】
なお、ここでは、32本以下の枝を有するトレリス構造となる符号の復号を行う場合について説明したが、軟出力復号回路90は、この枝の本数に限定されるものでないことはいうまでもない。
【1010】
5−6−2 イネーブル信号を用いないlog−sum演算の累積加算演算
ところで、“5−6−1”に示した手法の場合、各log−sum演算回路3121,・・・,3126は、それぞれ、32系統のデータAGBのうち、入力が“0”又は“1”である16系統のデータAGBを選択し、これらの16系統のデータAGBを用いたlog−sum演算の累積加算演算を行うことに他ならない。そのため、各log−sum演算回路3121,・・・,3126においては、実際には、31個のlog−sum演算セル回路のうち、約半数のものしか動作しないことになり、効率を低くする虞がある。
【1011】
そこで、軟出力復号回路90は、“5−6−1”に示した手法以外にも、次のような手法により対数軟出力Iλを算出することができる。
【1012】
すなわち、図93に概略を示すように、軟出力算出回路161’は、予め選択回路590によって、32系統のデータAGBの中から、トレリス上の各枝の入出力パターンに応じて該当する枝を選択しておき、8個のlog−sum演算回路5911,・・・5918のそれぞれによって、選択された16系統のデータAGBを用いたlog−sum演算を行う。また、軟出力算出回路161’は、図示しないが、4つのlog−sum演算回路のそれぞれによって、8個のlog−sum演算回路5911,・・・5918のそれぞれから出力された8系統のデータAGBを用いたlog−sum演算を行い、さらに、2つのlog−sum演算回路のそれぞれによって、4つのlog−sum演算回路のそれぞれから出力された4系統のデータAGBを用いたlog−sum演算を行う。そして、軟出力算出回路161’は、log−sum演算回路59115によって、2つのlog−sum演算回路のそれぞれから出力された2系統のデータAGBを用いたlog−sum演算を行う。
【1013】
軟出力算出回路161’は、このような処理を、入力が“0”又は“1”の場合のそれぞれについて行う。
【1014】
このように、軟出力算出回路161’は、予め選択回路590によって、32系統のデータAGBの中から、トレリス上の各枝の入出力パターンに応じて該当する枝を選択しておき、15個のlog−sum演算回路5911,・・・59115によって、勝ち抜き戦に喩えられる動作を行い、log−sum演算の累積加算演算を実現することができる。
【1015】
このような手法によっても、軟出力復号回路90は、所定の本数以下の枝を有する任意のトレリス符号に対して、対数軟出力Iλを算出することができる。
【1016】
なお、ここでも、32本以下の枝を有するトレリス構造となる符号の復号を行う場合について説明したが、軟出力復号回路90は、この枝の本数に限定されるものでないことはいうまでもない。
【1017】
5−7 外部情報に対する正規化
上述した外部情報算出回路163に関する特徴である。
【1018】
軟出力復号回路90は、上述したように、外部情報算出回路163によって、シンボル単位の外部情報とビット単位の外部情報とを算出することができる。ここで、シンボル単位の外部情報を算出する際には、例えば2ビット1シンボルとすると、4つの外部情報が算出されることになる。
【1019】
そこで、軟出力復号回路90は、シンボル単位の外部情報の分布の偏りを是正し且つ情報量を削減するための正規化を行い、全てのシンボルに対する外部情報を次段における事前確率情報として出力するのではなく、“シンボルの数−1”の数の外部情報を出力する。
【1020】
具体的には、軟出力復号回路90は、図94(A)に示すように、例えば4つのシンボル“00”,“01”,“10”,“11”のそれぞれに対応する外部情報ED0,ED1,ED2,ED3を算出したものとすると、同図(B)に示すように、外部情報算出回路163における正規化回路357によって、4つの外部情報ED0,ED1,ED2,ED3のうち、最大値を有する外部情報ED1を、例えば“0”といった所定の値に合わせるように、外部情報ED0,ED1,ED2,ED3のそれぞれに対して所定の値を加算し、外部情報EA0,EA1,EA2,EA3を求める。軟出力復号回路90は、このような正規化を行うことによって、外部情報の分布の偏りを是正することができる。
【1021】
続いて、軟出力復号回路90は、同図(C)に示すように、正規化回路357によって、正規化後の4つの外部情報EA0,EA1,EA2,EA3に対して、必要なダイナミックレンジに応じてクリッピングを行い、外部情報EN0,EN1,EN2,EN3を求める。軟出力復号回路90は、このようなクリッピングを行うことによって、値が大きく重要度の高い外部情報間の値の差を保持することができる。
【1022】
そして、軟出力復号回路90は、同図(D)に示すように、正規化回路357によって、例えば、クリップ後の4つの外部情報EN0,EN1,EN2,EN3のうち、“00”のシンボルに対する外部情報EN0の値を、他の全てのシンボル“01”,“10”,“11”のそれぞれに対する外部情報EN1,EN2,EN3の値から差分する。軟出力復号回路90は、このような正規化を行うことによって、4つの外部情報を出力するのではなく、3つの外部情報の比を外部情報EX0,EX1,EX2として出力することができる。
【1023】
このようにすることによって、軟出力復号回路90は、1シンボル分の外部情報を出力する必要がなく、外部入出力ピン数の削減を図ることができる。また、軟出力復号回路90は、同図(D)に示した正規化を行う前に、同図(C)に示したクリッピングを行うことによって、尤度の高いシンボルに対する外部情報間の値の差を保持することができ、高精度の復号を行うことができる。
【1024】
なお、ここでは、4つのシンボルに対する外部情報を算出し、正規化する場合について説明したが、軟出力復号回路90としては、4つ以外の数のシンボルに対する外部情報の正規化を行うこともできる。
【1025】
5−8 受信値の硬判定
上述した硬判定回路165に関する特徴である。
【1026】
受信値を硬判定する場合には、通常、I/Q平面上の受信値の正接(tangent)を求めることが行われる。しかしながら、この方法の場合には、例えば、同相成分及び直交成分が、それぞれ、8ビットで表現されているものとすると、8ビットのデータ同士の除算が必要となり、回路規模の増大とともに、処理の遅延を招く。
【1027】
これに代替する方法としては、例えば、同相成分及び直交成分が、それぞれ、8ビットで表現されているものとすると、合計16ビット=65536通りの場合分けを行い、各場合における硬判定値を表引きすることが考えられる。しかしながら、この方法の場合にも、膨大な処理時間を要することから現実的ではない。
【1028】
また、他の方法としては、I/Q平面上の受信値の角度を硬判定の領域の境界と比較するため、受信値の除算を行い、境界の角度の正接と比較することが考えられる。しかしながら、この方法の場合にも、8ビットのデータ同士の除算が必要となるとともに、領域の境界が一般には無理数で与えられるものであることから、精度の検討がさらに必要となる。
【1029】
そこで、軟出力復号回路90は、受信値の同相成分又は直交成分のいずれかの値に対する境界値を表引きにより求め、他成分の値に応じて硬判定値を求める。
【1030】
具体的には、軟出力復号回路90は、符号化装置1が8PSK変調方式による変調を行うものであった場合には、図95に示すように、I/Q平面を8つの信号点に応じた8つの領域に区分けするために、I軸又はQ軸のいずれかに対する4つの境界線(境界値データ)BDR0,BDR1,BDR2,BDR3を設け、これらの境界値データBDR0,BDR1,BDR2,BDR3を、上述した硬判定回路165におけるルックアップテーブル372にテーブルとして記憶する。なお、同図においては、同相成分及び直交成分は、それぞれ、5ビットで表現されているものとし、各ドットが各ビットを表しているものとする。また、領域0,1,2,3,4,5,6,7にマッピングされている信号点の値は、それぞれ、上述した信号点配置情報CSIG0,CSIG1,CSIG2,CSIG3,CSIG4,CSIG5,CSIG6,CSIG7で表される。
【1031】
軟出力復号回路90は、上述したように、硬判定回路165によって、I軸又はQ軸のいずれかに対する4つの境界値データBDR0,BDR1,BDR2,BDR3と、他方の成分の値とを比較し、受信値の信号点がどの領域に属するかを判定し、硬判定値を求める。
【1032】
このようにすることによって、軟出力復号回路90は、ルックアップテーブル372に記憶されるテーブルの容量を小さくすることができ、精度の検討も不要であることから、回路規模を削減するとともに、処理の高速化を図ることができる。
【1033】
なお、ここでは、8PSK変調方式による信号点をデマッピングする場合について説明したが、この手法は、いかなるPSK変調方式による信号点のデマッピングにも適用できるものである。
【1034】
6. インターリーバに関する特徴
つぎに、インターリーバ100に関する特徴毎の説明を行う。以下の特徴は、インターリーバ100の機能として備えられるものであるが、特徴の概念を明確化するために、適宜簡略化した図面を用いて説明する。
【1035】
6−1 複数種類のインターリーブ機能
上述した記憶回路4071,4072,・・・,40716に対するデータの書き込み及び/又は読み出しの制御に関する特徴である。
【1036】
インターリーバ100は、上述したように、施すべきインターリーブの種類を含む符号構成を示すモードに応じて、複数の記憶回路4071,4072,・・・,40716の中から、データの書き込み及び/又は読み出しを行うべき適切なものを選択し、使用する記憶回路を切り替え、複数種類のインターリーブを実現する。
【1037】
具体的には、インターリーバ100は、制御回路400によって、書き込みアドレスと読み出しアドレスとを発生すると、アドレス選択回路405によって、インターリーバタイプ情報CINT及びインターリーバ無出力位置情報CNOに基づいて、アドレスデータAA0,BA0,AA1,BA1,AA2,BA2とのうち、記憶回路4071,4072,・・・,40716に分配するアドレスデータを選択する。また、インターリーバ100は、入力データ選択回路406によって、インターリーブモード信号CDIN、インターリーバタイプ情報CINT及びインターリーバ入出力置換情報CIPTに基づいて、インターリーブ用のデータI0,I1,I2、及び、遅延用のデータD0,D1,D2,D3,D4,D5のうち、記憶回路4071,4072,・・・,40716に分配するデータを選択する。
【1038】
この具体例としては、先に図55乃至図61に示したものが考えられる。すなわち、インターリーバ100は、制御回路400によって、施すべきインターリーブの種類に拘泥せずにアドレスを発生した後、アドレス選択回路405及び入力データ選択回路406によって、施すべきインターリーブの種類を含む符号構成を示すモードに応じて、記憶回路4071,4072,・・・,40716に対してアドレス及びデータを分配し、データを記憶回路4071,4072,・・・,40716に記憶させる。
【1039】
そして、インターリーバ100は、記憶回路4071,4072,・・・,40716から読み出したデータを出力データ選択回路408に供給し、この出力データ選択回路408によって、インターリーブモード信号CDIN、インターリーバタイプ情報CINT、インターリーバ入出力置換情報CIPT、制御信号IOBS,IOBP0,IOBP1,IOBP2,DOBS,DOBPに基づいて、データOR00,OR01,・・・,OR15のうち、出力すべきデータを選択し、インターリーバ出力データIIO及びインターリーブ長遅延受信値IDOとして出力する。
【1040】
このように、インターリーバ100は、施すべきインターリーブの種類を含む符号構成を示すモードに応じて、使用する記憶回路を切り替え、アドレス及びデータを分配することによって、複数種類のインターリーブを実現することができ、汎用性のあるものである。そのため、要素復号器50は、種々の符号に適応的に対応した復号を行うことが可能となる。
【1041】
6−2 インターリーブ用の記憶回路と遅延用の記憶回路の共用
“6−1”に示した機能に関連する特徴であり、記憶回路4071,4072,・・・,40716に対するデータの書き込み及び/又は読み出しの制御に関する特徴である。
【1042】
繰り返し復号においては、受信値に対して、インターリーバが要する処理時間と同時間だけ、すなわち、インターリーブ長分の時間だけ遅延させる必要がある。ここで、複数種類の符号の復号を行う場合には、符号構成に応じて、遅延すべきシンボル数が変化するとともに、インターリーブ処理に要する記憶回路(RAM)の数も変化する。
【1043】
そこで、インターリーバ100は、上述したように、インターリーブ用の記憶回路と遅延用の記憶回路とを共用し、符号構成に応じて、複数の記憶回路4071,4072,・・・,40716の中から、使用する記憶回路を切り替え、インターリーブ処理に使用しない記憶回路を遅延処理に使用し、遅延処理に使用しない記憶回路をインターリーブ処理に使用する。
【1044】
この具体例としては、先に図55乃至図61に示したものが考えられる。すなわち、インターリーバ100は、アドレス選択回路405及び入力データ選択回路406によって、符号構成に応じたインターリーブ処理及び遅延処理をともに考慮して、記憶回路4071,4072,・・・,40716に対するアドレスデータ及びデータの分配を行い、出力データ選択回路408によって、所望のデータを出力する。
【1045】
このようにすることによって、インターリーバ100は、インターリーブ用の記憶回路と遅延用の記憶回路とを個別に備える必要がなく、最低限数の記憶回路を備えればよく、回路規模の削減を図ることができる。
【1046】
6−3 クロック阻止信号による記憶回路の動作制御
上述したように、インターリーバ100は、少なくともRAMを有する複数の記憶回路4071,4072,・・・,40716を備え、これらの記憶回路4071,4072,・・・,40716を用いて、インターリーブ処理及び遅延処理を行う。この場合、記憶回路4071,4072,・・・,40716は、それぞれ、通常、クロック信号が入力される度に、データの書き込み及び/又は読み出しといった動作を行う。
【1047】
このようなインターリーバ100においては、実際には、不使用の記憶回路が存在する場合がある。具体的には、先に図56に示した例では、記憶回路4076,4078におけるRAMD06,D08が不使用のRAMとして存在し、先に図60に示した例では、記憶回路4076,4078,40710,40712におけるRAMD06,D08,D10,D12が不使用のRAMとして存在する。
【1048】
そこで、インターリーバ100は、アドレス選択回路405によって、入力されたクロック信号を阻止するためのクロック阻止信号IHを発生し、このクロック阻止信号IHを不使用の記憶回路に与えることによって、当該不使用の記憶回路における書き込み及び/又は読み出しを含む一切の動作を停止させる。
【1049】
より具体的には、インターリーバ100においては、複数の記憶回路4071,4072,・・・,40716のうち、使用する記憶回路を、アドレス方向で分割して決定する。そして、インターリーバ100は、アドレス選択回路405によって、書き込みアドレス及び/又は読み出しアドレスに該当しない記憶回路に対するクロック阻止信号IHを発生し、このクロック阻止信号IHを当該記憶回路に与える。
【1050】
このように、インターリーバ100は、使用する記憶回路をアドレス方向で分割し、クロック阻止信号IHをアクティブにする機構を設けることによって、不使用の記憶回路の動作を停止させることができる。したがって、要素復号器50は、全ての記憶回路4071,4072,・・・,40716を全てのクロック信号に応じて動作せる必要がなく、記憶回路の動作率を下げることができ、結果として、消費電力を下げることができる。
【1051】
6−4 デインターリーブ機能
上述したように、インターリーバ100は、インターリーブ処理とデインターリーブ処理との両者を行うことができる。
【1052】
ところで、一般には、インターリーブ処理を行う際には、シーケンシャルなアドレスデータを用いて、記憶回路に対するデータの書き込みを行い、ランダムなアドレスデータを用いて、記憶回路からのデータの読み出しを行う。一方、デインターリーブ処理を行う際には、読み出し用のアドレスデータを生成するために、インターリーブ処理で用いたアドレスデータを逆変換する必要がある。そのため、繰り返し復号を行う場合には、デインターリーブ処理で用いたアドレスデータをインターリーブ処理に用いるための変換用のアドレスデータと、インターリーブ処理で用いたアドレスデータをデインターリーブ処理に用いるための逆変換用のアドレスデータとの、2通りのアドレスデータを個別に保持する必要があり、回路規模を圧迫する虞がある。
【1053】
そこで、インターリーバ100は、デインターリーブ処理を行う際には、インターリーブ処理に用いる読み出し用のアドレスデータを、書き込み用のアドレスデータとして用い、シーケンシャルなアドレスデータを用いて読み出すことによって、インターリーブ処理とデインターリーブ処理との間で同一のアドレスデータを共用する。
【1054】
具体的には、インターリーバ100は、上述したように、インターリーブ処理を行う場合には、制御回路400によりシーケンシャルなアドレスデータである書き込みアドレスデータIWAを発生し、この書き込みアドレスデータIWAを用いて、記憶回路4071,4072,・・・,40716に対するデータの書き込みを行うとともに、制御回路400によりシーケンシャルなアドレスデータIAAを発生し、このアドレスデータIAAに基づいて、ランダムなアドレスデータである読み出しアドレスデータADAをアドレス用記憶回路110から読み出し、この読み出しアドレスデータADAを用いて、記憶回路4071,4072,・・・,40716からのデータの読み出しを行う。
【1055】
一方、インターリーバ100は、上述したように、デインターリーブ処理を行う場合には、制御回路400によりシーケンシャルなアドレスデータIAAを発生し、このアドレスデータIAAに基づいて、ランダムなアドレスデータである読み出しアドレスデータADAをアドレス用記憶回路110から読み出し、この読み出しアドレスデータADAを用いて、記憶回路4071,4072,・・・,40716に対するデータの書き込みを行うとともに、制御回路400によりシーケンシャルなアドレスデータである書き込みアドレスデータIWAを発生し、この書き込みアドレスデータIWAを用いて、記憶回路4071,4072,・・・,40716からのデータの読み出しを行う。
【1056】
このように、インターリーバ100は、インターリーブ処理とデインターリーブ処理との間で同一のアドレスデータを共用し、このアドレスデータを、インターリーブ処理とデインターリーブ処理とに応じて切り替える。換言すれば、インターリーバ100は、制御回路400によって、インターリーブ処理に用いる読み出し用のアドレスデータを、デインターリーブ処理に用いる書き込み用のアドレスデータとして用いるように切り替えるとともに、デインターリーブ処理に用いる読み出し用のアドレスデータを、インターリーブ処理に用いる書き込み用のアドレスデータとして用いるように切り替える。
【1057】
このようなアドレスデータの切り替えを行う制御回路400は、簡略化すると例えば図96に示す構成として表すことができる。すなわち、制御回路400は、書き込み用のアドレスデータを発生する書き込みアドレス発生回路601と、読み出し用のアドレスデータを発生する読み出しアドレス発生回路602と、2つのセレクタ6031,6032とを有するものとして表される。
【1058】
制御回路400は、書き込みアドレス発生回路601によって、書き込み用のシーケンシャルなアドレスデータを発生し、セレクタ6031,6032に供給するとともに、読み出しアドレス発生回路602によって、読み出し用のシーケンシャルなアドレスデータを発生し、セレクタ6031,6032に供給する。そして、セレクタ6031,6032は、インターリーブモード信号CDINに基づいて、書き込みアドレス発生回路601から供給されるアドレスデータと、読み出しアドレス発生回路602から供給されるアドレスデータとのうち、一方を選択する。
【1059】
具体的には、セレクタ6031は、インターリーブモード信号CDINが、当該インターリーバ100がインターリーブ処理を行う旨を指示するものであった場合には、書き込みアドレス発生回路601から供給されるアドレスデータを選択し、書き込みアドレスデータIWAとして、インターリーブアドレス変換回路403に供給する。また、セレクタ6032は、インターリーブモード信号CDINが、当該インターリーバ100がインターリーブ処理を行う旨を指示するものであった場合には、読み出しアドレス発生回路602から供給されるアドレスデータを選択し、アドレスデータIAAとして、アドレス用記憶回路110及びインターリーブアドレス変換回路403に供給する。
【1060】
一方、セレクタ6031は、インターリーブモード信号CDINが、当該インターリーバ100がデインターリーブ処理を行う旨を指示するものであった場合には、読み出しアドレス発生回路602から供給されるアドレスデータを選択し、書き込みアドレスデータIWAとして、インターリーブアドレス変換回路403に供給する。また、セレクタ6032は、インターリーブモード信号CDINが、当該インターリーバ100がデインターリーブ処理を行う旨を指示するものであった場合には、書き込みアドレス発生回路601から供給されるアドレスデータを選択し、アドレスデータIAAとして、アドレス用記憶回路110及びインターリーブアドレス変換回路403に供給する。
【1061】
このように、インターリーバ100は、インターリーブ処理とデインターリーブ処理との間で共用するアドレスデータを、制御回路400により切り替えることによって、回路の簡略化及び規模削減を図ることができる。
【1062】
6−5 書き込みアドレス及び読み出しアドレスの発生
書き込みアドレスと読み出しアドレスとを発生する際には、通常、カウンタによりカウントアップしていくことによって、シーケンシャルなアドレスデータを発生する。ここで、書き込みアドレス用のカウンタと読み出しアドレス用のカウンタとを共用した場合には、記憶回路に対する次のフレームの書き込みを開始するまでは、記憶回路からのデータの読み出しを開始することができない。
【1063】
すなわち、インターリーバは、書き込みアドレス用のカウンタと読み出しアドレス用のカウンタとを共用した場合には、図97に示すように、Aで示すインターリーブ開始位置信号が入力されると、バンクAの記憶回路に対するデータの書き込みが行われる。続いて、インターリーバは、Bで示す次のインターリーブ開始位置信号が入力されると、バンクAの記憶回路に記憶されているデータの読み出しが行われるとともに、バンクBの記憶回路に対するデータの書き込みが行われる。同様に、インターリーバは、Cで示す次のインターリーブ開始位置信号が入力されると、バンクBの記憶回路に記憶されているデータの読み出しが行われるとともに、バンクAの記憶回路に対するデータの書き込みが行われる。
【1064】
このように、インターリーバは、書き込みアドレス用のカウンタと読み出しアドレス用のカウンタとを共用した場合には、記憶回路に対する次のフレームの書き込みの開始と同時に、記憶回路からのデータの読み出しを開始する。
【1065】
ここで、一般には、外部から入力されるフレームの入力タイミングは変化し、フレームが一定間隔でインターリーバに入力されるとは限らない。すなわち、インターリーバは、通常、次のフレームが入力されるタイミングを把握することなく、動作する必要がある。
【1066】
このような状況の下で繰り返し復号を行うことを考慮した場合には、外部情報にインターリーブを施すとともに、受信値を遅延させる必要があるが、インターリーバにおいては、受信値の入力タイミングがフレーム毎に異なることから、遅延量の差異が生じることがある。すなわち、インターリーバにおいては、同図において、A,Bで示す2つのインターリーブ開始位置信号間の時間と、B,Cで示す2つのインターリーブ開始位置信号間の時間とが異なることによって、受信値の遅延量が異なることがある。この場合、インターリーバにおいては、遅延させる受信値の入力タイミングを合わせることが困難であることから、繰り返し復号を実現するために複雑な処理を要することになる。
【1067】
そこで、インターリーバ100は、書き込みアドレス用のカウンタと読み出しアドレス用のカウンタとを個別に設けることによって、記憶回路に対するデータの書き込みが終了した後、直ちにデータの読み出しを開始する構成とする。
【1068】
具体的には、インターリーバ100は、図98に示すように、Aで示すインターリーブ開始位置信号TISが入力されると、制御回路400によって、書き込みアドレス用のカウンタをカウントアップし、バンクAの記憶回路に対するデータの書き込みを行うと、直ちに読み出しアドレス用のカウンタをカウントアップし、記憶したデータの読み出しを行う。続いて、インターリーバ100は、Bで示す次のインターリーブ開始位置信号TISが入力されると、制御回路400によって、書き込みアドレス用のカウンタをカウントアップし、バンクAの記憶回路に対するデータの書き込みを行うと、直ちに読み出しアドレス用のカウンタをカウントアップし、記憶したデータの読み出しを行う。同様に、インターリーバ100は、Cで示す次のインターリーブ開始位置信号TISが入力されると、書き込みアドレス用のカウンタをカウントアップし、バンクAの記憶回路に対するデータの書き込みを行うと、直ちに読み出しアドレス用のカウンタをカウントアップし、記憶したデータの読み出しを行う。
【1069】
このように、インターリーバ100は、書き込みアドレス用のカウンタと読み出しアドレス用のカウンタとを個別に設けることによって、記憶回路に対するデータの書き込みが終了すると、直ちにデータの読み出しを開始することができる。すなわち、インターリーバ100は、A,Bで示す2つのインターリーブ開始位置信号TISの間の時間と、B,Cで示す2つのインターリーブ開始位置信号TISの間の時間とが異なる場合であっても、遅延量を常にインターリーブ長分に固定することができ、遅延させる受信値の入力タイミングを合わせることが容易となる。
【1070】
6−6 インターリーブ長分の遅延機能
“6−5”に示したように、書き込みアドレス用のカウンタと読み出しアドレス用のカウンタとを個別に設けた場合には、インターリーバ100は、受信値を遅延させる際に、記憶回路からのデータの読み出し順序を、記憶回路に対するデータの書き込み順序と同一にする。すなわち、インターリーバ100は、受信値を遅延させる際には、読み出しアドレスを、書き込みアドレスと同一にする。
【1071】
このようにすることによって、インターリーバ100は、インターリーブ長分の遅延を実現することができる。特に、インターリーバ100は、読み出しアドレス用のカウンタと、書き込みアドレス用のカウンタとを、ともにカウントアップし、シーケンシャルなアドレスデータを発生することによって、容易にインターリーブ長分の遅延を実現することができる。
【1072】
インターリーバ100は、このような容易な手法を採用することで、例えば、繰り返し回数を変更した実験を行う場合には、要素復号器を複数連接するだけで、全体の復号遅延を変化させることなく、繰り返し回数を変更した繰り返し復号を行うことが可能となる。
【1073】
6−7 アドレス空間の利用方法
複数シンボルを入力し、複数シンボルを出力するインターリーブを行う際のアドレスの表現手法に関する特徴である。
【1074】
通常、記憶回路におけるRAMに対しては、連続的なアドレスを割り当て、この連続的なアドレス空間を用いてデータの書き込みを行う。ここで、複数シンボルを入力し、複数シンボルを出力するインターリーブを行う際に、複数の記憶回路におけるRAMに対して、連続的なアドレスを割り当てることを考える。
【1075】
例えば、入力シンボルとして3シンボルのデータを入力し、出力シンボルとして3シンボルのデータを出力するようなインターリーブを行う場合であって、9個の記憶回路のRAM0,RAM1,RAM2,RAM3,RAM4,RAM5,RAM6,RAM7,RAM8を用いてインターリーブを行う場合には、図99に示すように、RAM0,RAM3,RAM6に対しては、0シンボル目のデータI0(=I0[0],I0[1],I0[2],・・・,I0[31])が、各タイムスロット毎にワード方向に順次書き込まれ、RAM1,RAM4,RAM7に対しては、1シンボル目のデータI1(=I1[0],I1[1],I1[2],・・・,I1[31])が、各タイムスロット毎にワード方向に順次書き込まれ、RAM2,RAM5,RAM8に対しては、2シンボル目のデータI2(=I2[0],I2[1],I2[2],・・・,I2[31])が、各タイムスロット毎にワード方向に順次書き込まれる。そして、RAM0,RAM1,RAM2からは、1系統のインターリーバ出力データIIO0が読み出され、RAM3,RAM4,RAM5からは、他の1系統のインターリーバ出力データIIO1が読み出され、RAM6,RAM7,RAM8からは、さらに他の1系統のインターリーバ出力データIIO2が読み出される。
【1076】
このとき、図100に示すように、データを書き込む際には、RAM0,RAM3,RAM6に対して、それぞれ、例えば0乃至31までの連続的なアドレスが割り当てられるものとすると、RAM1,RAM4,RAM7には、それぞれ、32乃至63までの連続的なアドレスが割り当てられ、さらに、RAM2,RAM5,RAM8には、それぞれ、64乃至95までの連続的なアドレスが割り当てられる。
【1077】
これは、インターリーブ長を可変にする場合等において各RAMの全ての記憶領域にデータが記憶されない場合であっても、同様である。
【1078】
例えば、RAM0,RAM1,RAM2,RAM3,RAM4,RAM5,RAM6,RAM7,RAM8は、それぞれ、同図に示した例では、32タイムスロット分のインターリーブ長のインターリーブを行うことができるが、インターリーブ長を10タイムスロット分とした場合には、例えば図101に示すように、RAM0,RAM3,RAM6に対しては、それぞれ、32タイムスロット分の全記憶領域のうち、0シンボル目のデータI0(=I0[0],I0[1],I0[2],・・・,I0[9])が、各タイムスロット毎にワード方向に順次書き込まれ、残りの記憶領域にはデータが書き込まれない。また、RAM1,RAM4,RAM7に対しては、それぞれ、32タイムスロット分の全記憶領域のうち、1シンボル目のデータI1(=I1[0],I1[1],I1[2],・・・,I1[9])が、各タイムスロット毎にワード方向に順次書き込まれ、残りの記憶領域にはデータが書き込まれない。さらに、RAM2,RAM5,RAM8に対しては、それぞれ、32タイムスロット分の全記憶領域のうち、2シンボル目のデータI2(=I2[0],I2[1],I2[2],・・・,I2[31])が、各タイムスロット毎にワード方向に順次書き込まれ、残りの記憶領域にはデータが書き込まれない。
【1079】
このとき、図102に示すように、データを書き込む際には、RAM0,RAM3,RAM6に対して、それぞれ、例えば0乃至9までの連続的なアドレスが割り当てられ、RAM1,RAM4,RAM7には、それぞれ、10乃至19までの連続的なアドレスが割り当てられ、さらに、RAM2,RAM5,RAM8には、それぞれ、20乃至29までの連続的なアドレスが割り当てられるといったように、物理的に異なる複数のRAMにわたって連続的なアドレスが割り当てられる。
【1080】
しかしながら、このようなアドレス空間を用いて、RAMに対するデータの書き込みを行った場合には、データを読み出す際に、タイムスロットと入力シンボルとの組み合わせを示すアドレスへの変換を行う必要がある。例えば、同図に示すRAM0,RAM1,RAM2の中から、“12”のアドレス空間に記憶されているデータを読み出す際には、“12”というアドレスを示す情報から、“1シンボル目の2タイムスロット”という情報への変換が必要となる。
【1081】
そのため、各RAMに対して連続的なアドレスを割り当ててデータの書き込みを行う場合には、データの読み出しの際にアドレスの変換を行うための変換回路を設ける必要がある。特に、シンボル数が2のべき乗でない場合には、アドレスの変換作業は複雑なものとなる。
【1082】
そこで、インターリーバ100は、置換先のアドレスを、入力シンボルの情報と、各シンボル毎のタイムスロットの情報との組み合わせで与える。
【1083】
具体的には、インターリーバ100は、上述したように、例えば、入力シンボルとして3シンボルのデータを入力し、出力シンボルとして3シンボルのデータを出力するようなインターリーブを行う場合であって、9個の記憶回路のRAM0,RAM1,RAM2,RAM3,RAM4,RAM5,RAM6,RAM7,RAM8を用いて32タイムスロット分のインターリーブ長のインターリーブを行う場合には、制御回路400によって、例えば図103に示すように、データを書き込む際に、RAM0,RAM3,RAM6に対して、それぞれ、0−0,0−1,0−2,・・・,0−31といったように、各タイムスロットを示す情報と0シンボル目であることを示す情報との組み合わせを、アドレスとして与える。また、インターリーバ100は、RAM1,RAM4,RAM7に対して、それぞれ、1−0,1−1,1−2,・・・,1−31といったように、各タイムスロットを示す情報と1シンボル目であることを示す情報との組み合わせを、アドレスとして与える。さらに、インターリーバ100は、RAM2,RAM5,RAM8に対して、それぞれ、2−0,2−1,2−2,・・・,2−31といったように、各タイムスロットを示す情報と2シンボル目であることを示す情報との組み合わせを、アドレスとして与える。
【1084】
実際には、同図に示すアドレスの割り当ては、図100に示したアドレスの割り当てと等価なものである。例えば同図に示すRAM0,RAM1,RAM2の中から、“34”のアドレス空間に記憶されているデータを読み出す場合を考える。この場合、“34”というアドレスを示す情報は、7桁で2進数表記すると、“0100010”と表される。ここで、上位2ビット“01”は、1シンボル目であることを示し、下位5ビット“00010”は、2タイムスロット目であることを示すことがわかる。すなわち、図103に示したアドレスの割り当ては、図100に示したアドレスの割り当てと実質的には等価であり、データを読み出す際のアドレスの変換作業は不要となる。
【1085】
また、インターリーバ100は、例えばインターリーブ長を10タイムスロット分としたインターリーブを行う場合には、例えば図104に示すように、データを書き込む際に、RAM0,RAM3,RAM6に対して、それぞれ、0−0,0−1,0−2,・・・,0−9といったように、各タイムスロットを示す情報と0シンボル目であることを示す情報との組み合わせを、アドレスとして与える。また、インターリーバ100は、RAM1,RAM4,RAM7に対して、それぞれ、1−0,1−1,1−2,・・・,1−9といったように、各タイムスロットを示す情報と1シンボル目であることを示す情報との組み合わせを、アドレスとして与える。さらに、インターリーバ100は、RAM2,RAM5,RAM8に対して、それぞれ、2−0,2−1,2−2,・・・,2−9といったように、各タイムスロットを示す情報と2シンボル目であることを示す情報との組み合わせを、アドレスとして与える。
【1086】
同図に示すアドレスの割り当ては、図103に示したアドレスの割り当てと実質的は同一なものであることがわかる。そのため、インターリーバ100は、インターリーブ長を可変にする場合等において各RAMの全ての記憶領域にデータが記憶されない場合であっても、データを読み出す際のアドレスの変換作業を不要とすることができる。
【1087】
このように、インターリーバ100は、常に置換先のアドレスを、入力シンボルの情報と、各シンボル毎のタイムスロットの情報との組み合わせで与えることによって、複数シンボルを入力し、複数シンボルを出力するインターリーブを行う場合であって、インターリーブ長を可変にする場合であっても、データを読み出す際に、アドレスの変換作業を行う必要がないことから、特別なアドレスの変換回路を設ける必要がなく、回路規模の削減を図ることができる。
【1088】
なお、インターリーバ100は、図103及び図104に示したアドレスの割り当てに限らず、タイムスロットと入力シンボルとを識別可能な組み合わせであれば、いかなるものであってもよい。
【1089】
6−8 パーシャルライト機能によるデータの書き込み及び読み出し
上述した記憶回路4071,4072,・・・,40716に関する特徴である。
【1090】
上述したように、記憶回路407は、パーシャルライト制御信号PWに基づいて、パーシャルライト機能を有する。例えば、記憶回路407は、通常時には、図105(A)に示すように、(ビット数B)×(ワード数W)の記憶容量を有するRAM424に対してBビットのデータが入出力されるが、パーシャルライトのRAMとして作用させる場合には、同図(B)に示すように、(ビット数B/2)×(ワード数2W)の記憶容量を有するRAM424に対してB/2ビットのデータが入出力されるようなものとして擬似的に構成することができる。
【1091】
これは、通常、ビット数及びワード数のともに制限があるRAMをインターリーバに用いる場合には、インターリーブ長がRAMのワード数に応じて制限されるためである。換言すれば、インターリーバ100は、記憶回路407におけるRAM424を、パーシャルライトのRAMとして作用させることによって、RAM424における通常のワード数よりも長いインターリーブ長のインターリーブ処理をも実現することができる。
【1092】
このとき、インターリーバ100には、例えば16ビットといったRAMがパーシャルライト機能時ではない通常時におけるビット数のデータが入力されることから、パーシャルライト機能時には、入力される16ビットのデータのうち、所望の8ビットのデータ毎に切り替えてRAM424に与える必要がある。
【1093】
そこで、インターリーバ100においては、記憶回路407に対して入力されるデータを上位ビットと下位ビットとに分割して2シンボルのデータとし、パーシャルライト機能時には、これらの2シンボルのデータのうち、常に同一のデータを選択するとともに、読み出されたデータのうち、アドレスに該当するものが、常に出力するデータの同じ位置となるように、データを選択する。
【1094】
具体的には、記憶回路407は、パーシャルライト機能時には、以下のようにしてデータの書き込み及び読み出しを行う。
【1095】
すなわち、記憶回路407は、セレクタ421,422のそれぞれによって、アドレスデータARの最上位ビットの反転ビットIARと、アドレスデータARの最上位ビットとを選択する。これにより、例えば、アドレスデータARの最上位ビットが“0”であった場合には、データVIHは、8ビットデータ“11111111”となり、データVILは、8ビットデータ“00000000”となる。同様に、アドレスデータARの最上位ビットが“1”であった場合には、データVIHは、8ビットデータ“00000000”となり、データVILは、8ビットデータ“11111111”となる。
【1096】
ここで、データVIHは、RAM424の記憶領域におけるビット方向の上位アドレスに対するデータの書き込みを行うか否かを示すものであり、データVILは、RAM424の記憶領域におけるビット方向の下位アドレスに対するデータの書き込みを行うか否かを示すものである。記憶回路407は、これらのデータVIH,VILの各ビットが“0”のアドレスに対してデータを書き込むものとする。
【1097】
これと同時に、記憶回路407は、セレクタ423によって、データIRの下位8ビットのデータIR[7:0]を常に選択する。これにより、データIは、データIR[7:0]が反復されたもの、すなわち、I={IR1,IR0}={IR[7:0],IR[7:0]}となる。
【1098】
そして、記憶回路407は、アドレスデータARの最上位ビットを除いたデータであるアドレスデータIAと、データVIH,VILとに基づいて、RAM424に対して、所定のワードにおける上位アドレス又は下位アドレスのいずれか一方に、データIR[7:0]を書き込む。すなわち、記憶回路407は、アドレスデータARの最上位ビットが“0”であった場合には、RAM424に対して、所定のワードにおける下位アドレスにデータIR[7:0]を書き込み、アドレスデータARの最上位ビットが“1”であった場合には、RAM424に対して、所定のワードにおける上位アドレスにデータIR[7:0]を書き込む。
【1099】
このように、記憶回路407は、パーシャルライト機能時には、RAM424に対して、データIRの下位8ビットのデータIR[7:0]のみを書き込む。
【1100】
そして、記憶回路407は、アドレスデータARの最上位ビットを除いたデータであるアドレスデータIAと、データVIH,VILとに基づいて、RAM424から、上位アドレスに記憶されているデータをデータOHとして読み出すとともに、下位アドレスに記憶されているデータをデータOLとして読み出し、セレクタ425,426により選択させることによって、データORを出力する。
【1101】
このとき、データORは、常に、RAM424から読み出されたデータOH,OLのうち、アドレスに該当するものが、出力するデータの同じ位置となるように構成される。すなわち、データORは、データLPDが“0”であった場合には、該当するアドレスがRAM424における下位アドレスであることから、当該下位アドレスから読み出されたデータOLを下位ビットとし、上位アドレスから読み出されたデータOHを上位ビットとし、OR={SOH,SOL}={OH,OL}となる。同様に、データORは、データLPDが“1”であった場合には、該当するアドレスがRAM424における上位アドレスであることから、当該上位アドレスから読み出されたデータOHを下位ビットとし、下位アドレスから読み出されたデータOLを上位ビットとし、OR={SOH,SOL}={OL,OH}となる。
【1102】
このように、記憶回路407は、パーシャルライト機能時には、常に、入力されたデータIRを上位ビットと下位ビットとに分割して得られた下位ビットのデータIR0をRAM424に書き込むとともに、常に、RAM424から読み出されたデータのうち、アドレスに該当するものを、出力するデータの下位ビットとする。
【1103】
一方、パーシャルライト機能時ではなく、通常時には、記憶回路407は、以下のようにしてデータの書き込み及び読み出しを行う。
【1104】
すなわち、記憶回路407は、セレクタ421,422のそれぞれによって、値が“0”であるビットを選択する。これにより、例えば、データVIH,VILは、常に8ビットデータ“00000000”となる。
【1105】
これと同時に、記憶回路407は、セレクタ423によって、データIRの上位8ビットのデータIR[15:8]を常に選択する。これにより、データIは、I={IR1,IR0}={IR[15:8],IR[7:0]}となり、データIRそのものとなる。
【1106】
そして、記憶回路407は、データVIH,VILが、ともに、“00000000”であることから、アドレスデータARの最上位ビットを除いたデータであるアドレスデータIAと、データVIH,VILとに基づいて、RAM424に対して、所定のワードにおける上位アドレス及び下位アドレスの両者に、データIを書き込む。すなわち、記憶回路407は、RAM424に対して、所定のワードにおける上位アドレスにデータIR[15:8]を書き込み、下位アドレスにデータIR[7:0]を書き込む。
【1107】
このように、記憶回路407は、通常時には、RAM424に対して、データIRそのものを書き込む。
【1108】
そして、記憶回路407は、アドレスデータARの最上位ビットを除いたデータであるアドレスデータIAと、データVIH,VILとに基づいて、RAM424から、上位アドレスに記憶されているデータをデータOHとして読み出すとともに、下位アドレスに記憶されているデータをデータOLとして読み出し、セレクタ425,426により選択させることによって、データORを出力する。このとき、データORは、データLPDが“0”であることから、常に、RAM424における下位アドレスから読み出されたデータOLを下位ビットとし、上位アドレスから読み出されたデータOHを上位ビットとし、OR={SOH,SOL}={OH,OL}となる。すなわち、データORは、RAM424における所定のワードから読み出されたデータそのものとなる。
【1109】
このように、記憶回路407は、通常時には、データIRをRAM424に対して書き込み、データORとして出力する。
【1110】
このようにすることによって、インターリーバ100は、入出力される複数ビットのデータのうち、上位ビットのデータ又は下位ビットのデータのみを把握すればよく、どのビットのデータが書き込み及び読み出しに寄与しているのかを意識する必要がない。そのため、インターリーバ100は、通常時には、(ビット数B)×(ワード数W)の記憶容量を有するRAMを、パーシャルライトのRAMとして作用させ、半数ビット×2倍長ワードのRAMとして用いることが容易となる。
【1111】
なお、ここでは、パーシャルライト機能時には、RAM424の記憶容量が、通常時に比べ、半数ビット×2倍長ワードとなるものとして説明したが、この手法は、この記憶容量に限定されるものではない。この手法は、パーシャルライト機能時におけるRAM424の記憶容量が、通常時に比べ、例えば、1/3数ビット×3倍長ワード、1/4数ビット×4倍長ワード、1ビット×ビット数倍長ワードとなる場合といったように、任意の記憶容量に応用可能である。
【1112】
すなわち、インターリーバとしては、記憶回路に対して入力されるデータを少なくとも上位ビットと下位ビットとに分割して少なくとも2シンボルのデータとし、パーシャルライト機能時には、これらの少なくとも2シンボルのデータのうち、常に同一のデータを選択するとともに、読み出されたデータのうち、アドレスに該当するものが、常に出力するデータの同じ位置となるように、データを選択するようにすればよい。
【1113】
6−9 偶数長遅延及び奇数長遅延への対応
上述した奇数長遅延補償回路402及び記憶回路4071,4072,・・・,40716に関する特徴である。
【1114】
符号長可変の繰り返し復号を行う場合には、可変長の遅延を行う必要がある。インターリーバ100は、2バンクのRAMを用いて、1タイムスロットでデータの書き込み及び読み出しを切り替えることによって、遅延長、すなわち、インターリーブ長の半分のタイムスロット分のワード数のRAMを用いれば、インターリーブ長の遅延を実現することができる。
【1115】
この動作を簡略化して説明するために、3タイムスロット分のワード数のRAMを2バンク用いて6タイムスロット分のインターリーブ長の遅延を実現する例について図106を用いて示す。ここでは、バンクA,BのRAMには、それぞれ、便宜上0,1,2のアドレスが割り当てられているものとする。また、バンクAのRAMには、アドレス0,1,2の各記憶領域に対して、データA,C,Eが予め記憶されており、バンクBのRAMには、アドレス1,2の各記憶領域に対して、データB,Dが予め記憶されているとともに、アドレス0の記憶領域には、データが記憶されていないものとする。さらに、同図中においては、データの書き込みを“W”で表し、データの読み出しを“R”で表すものとする。
【1116】
まず、インターリーバ100は、0タイムスロット目では、バンクAのRAMにおけるアドレス0の記憶領域から、データAを読み出すとともに、バンクBのRAMにおけるアドレス0の記憶領域に対して、データFを書き込む。
【1117】
続いて、インターリーバ100は、1タイムスロット目では、バンクAのRAMにおけるアドレス0の記憶領域、すなわち、0タイムスロット目でデータAが読み出された記憶領域に対して、データGを書き込むとともに、バンクBのRAMにおけるアドレス1の記憶領域から、データBを読み出す。
【1118】
続いて、インターリーバ100は、2タイムスロット目では、バンクAのRAMにおけるアドレス1の記憶領域から、データCを読み出すとともに、バンクBのRAMにおけるアドレス1の記憶領域、すなわち、1タイムスロット目でデータFが読み出された記憶領域に対して、データHを書き込む。
【1119】
続いて、インターリーバ100は、3タイムスロット目では、バンクAのRAMにおけるアドレス1の記憶領域、すなわち、2タイムスロット目でデータCが読み出された記憶領域に対して、データIを書き込むとともに、バンクBのRAMにおけるアドレス2の記憶領域から、データDを読み出す。
【1120】
続いて、インターリーバ100は、4タイムスロット目では、バンクAのRAMにおけるアドレス2の記憶領域から、データEを読み出すとともに、バンクBのRAMにおけるアドレス2の記憶領域、すなわち、3タイムスロット目でデータDが読み出された記憶領域に対して、データJを書き込む。
【1121】
続いて、インターリーバ100は、5タイムスロット目では、バンクAのRAMにおけるアドレス2の記憶領域、すなわち、4タイムスロット目でデータEが読み出された記憶領域に対して、データKを書き込むとともに、バンクBのRAMにおけるアドレス0の記憶領域から、データFを読み出す。
【1122】
そして、インターリーバ100は、6タイムスロット目では、バンクAのRAMにおけるアドレス0の記憶領域から、データGを読み出すとともに、バンクBのRAMにおけるアドレス0の記憶領域、すなわち、5タイムスロット目でデータFが読み出された記憶領域に対して、データLを書き込む。
【1123】
インターリーバ100は、このように2バンクのRAMを用いて、1タイムスロットでデータの書き込み及び読み出しを切り替える。このような動作によるデータの書き込み及び読み出しのタイミングチャートは、図107に示すようになる。すなわち、バンクBに書き込まれたデータFは、インターリーブ長分の時間の経過後に読み出され、同様に、バンクAに書き込まれたデータGも、インターリーブ長分の時間の経過後に読み出されることになる。
【1124】
このように、インターリーバ100は、一方のバンクにデータを書き込むとき、他方のバンクからデータを読み出す動作を、1タイムスロット毎に切り替えることによって、インターリーブ長の半分のタイムスロット分のワード数のRAMを2バンク用い、インターリーブ長の遅延を実現することができる。
【1125】
ところで、この手法による遅延処理の場合、RAMの記憶容量が少なくて済むことから、回路規模の削減を図ることができるものの、遅延長は偶数長に限られる。
【1126】
そこで、インターリーバ100は、偶数長遅延のときには、上述した動作を行うことによりRAMのみで遅延長分の遅延を行い、奇数長遅延のときには、上述した動作を行い遅延長−1分の遅延を行うとともに、レジスタを用いて1タイムスロット分の遅延を行うように、切り替える機能を備えることによって、偶数長遅延及び奇数長遅延の両方に対応する。
【1127】
具体的には、インターリーバ100は、上述したように、奇数長遅延補償回路402によって、制御回路60から供給されるインターリーブ長情報CINLに基づいて、偶数長遅延を行う場合には、データTDIに対して、RAMによる遅延のみを行い、奇数長遅延を行う場合には、データTDIに対して、RAMによる遅延長−1分の遅延と、レジスタによる1タイムスロット分の遅延を行うように、遅延の対象とするデータであるデータTDIを選択する。
【1128】
このようにすることによって、インターリーバ100は、少ない回路規模の下に、偶数長遅延及び奇数長遅延の両方に対応することができる。
【1129】
6−10 入出力順序入れ替え機能
上述した入力データ選択回路406及び出力データ選択回路408に関する特徴である。
【1130】
軟出力復号回路90は、上述したように、任意の符号の復号を可能とするものであるが、任意の符号の復号を行うために、符号に応じた入出力パターンを予め求めておく必要がある。そのため、軟出力復号回路90は、実際には、全ての符号の復号を1つの回路で行うのは非常に困難であり、任意に想定された符号を対象とした復号を行うのが現実的である。
【1131】
このように、軟出力復号回路90に限らず、復号対象となる符号に限定がある軟出力復号回路は、一般に、複数シンボルを入力し、複数シンボルを出力する任意の符号の軟出力復号を行う際、当該任意の符号に対して、入力シンボル間の順序及び/又は出力シンボル間の順序のみが異なる符号を復号することができない場合がある。
【1132】
例えば、要素復号器50を連接して復号装置3を構成し、SCCCによる符号化を行う符号化装置による符号を復号する場合において、当該符号化装置が、外符号の符号化を行う畳み込み符号化器として、軟出力復号回路90が復号可能な任意の畳み込み符号化器を備え、インターリーバとして、インラインインターリーブを行うものを備え、さらに、内符号の符号化を行う畳み込み符号化器として、軟出力復号回路90が復号可能な先に図24に示した畳み込み符号化器を備えるものとする。この場合、復号装置3は、符号化装置による符号を復号することが可能であることはいうまでもない。
【1133】
ところで、符号化装置における内符号の符号化を行う畳み込み符号化器として図108に示すものを用い、軟出力復号回路90が当該畳み込み符号を復号対象としていない場合には、復号装置3は、この符号化装置による符号を復号することが不可能となる。
【1134】
ここで、同図に示す畳み込み符号化器は、入力データi0,i1,i2を、それぞれ、0,1,2シンボル目とすると、図24に示した畳み込み符号化器と比べ、1シンボル目の入力データi1と、2シンボル目の入力データi2とを入れ替えたものであることがわかる。すなわち、図108に示す畳み込み符号化器を備える符号化装置は、図109に示すように、外符号の符号化を行う畳み込み符号化器から出力される3ビットの符号化データがインターリーバに入力される際に、1シンボル目の符号化データと、2シンボル目の符号化データとを入れ替え、内符号の符号化を行う畳み込み符号化器として、図24に示した畳み込み符号化器を用いた符号化装置と等価なものであることがわかる。
【1135】
このように、復号装置3は、軟出力復号回路90が復号対象としていない符号を要素符号とする符号化装置に対しては、当該要素符号が、入力シンボル間の順序及び/又は出力シンボル間の順序のみが異なるものであっても、復号することが不可能となる。
【1136】
換言すれば、符号化側としては、例えばインラインインターリーブやペアワイズインターリーブといった各シンボル毎に個別的にインターリーブを施す場合には、入出力のシンボルの位置が一意に決定されるが、入出力のシンボルの位置を変化させた符号化を行うことによって、幅広い符号化を行うといった要求があることは否めない。特に、マッシィ型の符号を要素符号として用いている符号化装置の場合、組織成分の出力位置を入れ替えることによって、多様な符号化を行うことができる。そのため、復号装置としては、このような符号の復号にも対応する必要がある。
【1137】
そこで、インターリーバ100は、複数シンボルを入力し、複数シンボルを出力するインターリーブを行う際、入力シンボル間の順序及び/又は出力シンボル間の順序を入れ替える機能を有することによって、同一アドレスに基づいた複数通りのインターリーブを実現する。
【1138】
具体的には、インターリーバ100は、インターリーブ処理を行う場合には、入力データ選択回路406によって、インターリーバ入出力置換情報CIPTに基づいて、各シンボル間の入力順序を相互に置換し、各シンボルの入力位置と出力位置とを切り替える。
【1139】
また、インターリーバ100は、デインターリーブ処理を行う場合には、出力データ選択回路408によって、インターリーバ入出力置換情報CIPTに基づいて、各シンボル間の出力順序を相互に置換し、各シンボルの入力位置と出力位置とを切り替える。
【1140】
換言すれば、復号装置3がSCCCによる符号の復号を行うものとすると、当該復号装置3を構成する隣接する2つの要素復号器50I,50Jは、簡略化すると例えば図110に示す構成として表すことができる。ここでは、入力シンボル間の順序及び/又は出力シンボル間の順序を入れ替える機能を有する回路を、シンボル入れ替え回路と称するものとする。
【1141】
すなわち、要素復号器50Iは、軟出力復号回路90から出力されたデータがインターリーバ100に入力されると、インターリーバ100によって、デインターリーブ処理を行う。このとき、要素復号器50Iは、インターリーバ100における記憶回路407を経ることによりデインターリーブ処理が施された複数シンボルからなるデータORが出力データ選択回路408に相当するシンボル入れ替え回路610に入力されると、このシンボル入れ替え回路610によって、出力すべきインターリーバ出力データIIOを選択した後、複数シンボルからなるこれらのインターリーバ出力データIIOについて、符号構成に応じて、各シンボル間の入力順序を相互に置換し、すなわち、各シンボルの順序を入れ替え、次段の要素復号器50Jに供給する。
【1142】
一方、要素復号器50Jは、要素復号器50Iから供給され、軟出力復号回路90により軟出力復号処理が施されたデータがインターリーバ100に入力されると、インターリーバ100によって、インターリーブ処理を行う。このとき、要素復号器50Jは、インターリーバ100における入力データ選択回路406に相当するシンボル入れ替え回路611によって、軟出力復号回路90から供給されて各種処理が施された複数シンボルからなるデータIについて、符号構成に応じて、各シンボルの順序を入れ替え、データIRとして記憶回路407に供給する。このようにしてインターリーブが施されたデータは、図示しない次段の要素復号器に供給される。
【1143】
このようにすることによって、インターリーバ100は、入力シンボル間の順序及び/又は出力シンボル間の順序を入れ替え、同一アドレスに基づいた複数通りのインターリーブを実現することができる。特に、インターリーバ100は、通常のインラインインターリーバやペアワイズインターリーバのように、入出力されるシンボル数が同じであり且つ入力位置と出力位置とが1対1に決められているインターリーブを行う場合には、入力シンボルの位置と出力シンボルの位置との接続を切り替えることが可能となる。
【1144】
そのため、要素復号器50は、復号対象となる符号に限定がある汎用の軟出力復号回路を備えた場合であっても、当該軟出力復号回路が復号可能な符号に対して、入力シンボル間の順序及び/又は出力シンボル間の順序のみが異なる符号を復号することができる。また、要素復号器50は、軟出力復号回路90が復号対象とする符号の数を限定できることから、回路の簡略化及び規模削減を図ることができる。
【1145】
なお、ここでは、各シンボルの順序を入れ替える機能をインターリーバ100に設けた例について説明したが、必ずしもインターリーバ100の機能として設ける必要はなく、例えば軟出力復号回路90の機能として設けるようにしてもよい。
【1146】
各シンボルの順序を入れ替える機能を軟出力復号回路90の機能として設ける場合、復号装置3がSCCCによる符号の復号を行うものとすると、当該復号装置3を構成する隣接する2つの要素復号器50K,50Lは、簡略化すると例えば図111に示す構成として表すことができる。
【1147】
すなわち、要素復号器50Kは、軟出力復号回路90及びインターリーバ100によって、通常の軟出力復号処理及びデインターリーブ処理を行い、得られたデータを次段の要素復号器50Lに供給する。
【1148】
一方、要素復号器50Lは、要素復号器50Kから供給された複数シンボルからなるデータ、すなわち、外部情報又はインターリーブデータTEXT等の軟出力復号処理に必要な情報が軟出力復号回路90に入力されると、これらの情報について、シンボル入れ替え回路612によって、符号構成に応じて、各シンボルの順序を入れ替える。さらに、要素復号器50Lは、軟出力復号回路90と同様の各種処理を経て、外部情報算出回路163により算出された複数シンボルからなる外部情報SOEについて、シンボル入れ替え回路613によって、符号構成に応じて、各シンボルの順序を入れ替え、各種処理を施した後、データTIIとしてインターリーバ100に供給する。そして、要素復号器50Lは、入力されたデータTIIに対してインターリーブ処理を施し、図示しない次段の要素復号器に供給する。
【1149】
このようにすることによって、軟出力復号回路90は、入力シンボル間の順序及び/又は出力シンボル間の順序のみが異なる符号の復号が可能となる。そのため、要素復号器50は、軟出力復号回路90が復号対象とする符号の数を限定できることから、回路の簡略化及び規模削減を図ることができる。特に、要素復号器50は、マッシィ型の符号を繰り返し復号する場合には、組織成分の出力位置を入れ替えた符号を復号することができる。
【1150】
なお、図111に示した要素復号器50Lにおいて、シンボル入れ替え回路613を軟出力復号回路90が有するものとして説明したが、このシンボル入れ替え回路613をインターリーバ100が有してもよい。すなわち、要素復号器50は、デインターリーブ処理を行うインターリーバ100の後段、及び、インターリーブ処理を行うインターリーバ100の前段に、符号構成に応じたシンボル入れ替え回路を備えるものであればよい。勿論、復号装置3がPCCCによる符号の復号を行うものである場合であっても、要素復号器50は、デインターリーブ処理を行うインターリーバ100の後段、及び、インターリーブ処理を行うインターリーバ100の前段に、符号構成に応じたシンボル入れ替え回路を備える構成とすればよい。
【1151】
7. まとめ
以上説明したように、符号化装置1と復号装置3とを用いて構成されるデータ送受信システムにおいて、復号装置3を構成する要素復号器50は、インターリーバ100によって、インターリーブ処理とデインターリーブ処理との間で同一のアドレスデータを共用し、これらのアドレスデータを、インターリーブ処理とデインターリーブ処理とに応じて切り替えることによって、インターリーブ処理とデインターリーブ処理とを同一の構成で行うことができ、インターリーバ100の簡略化及び規模削減を図ることができる。
【1152】
すなわち、これらの符号化装置1と復号装置3とを用いて構成されるデータ送受信システムは、少ない回路規模の単純な構成で、インターリーブ処理とデインターリーブ処理とを同一の構成で実現するものであり、ユーザに高い利便を提供することができるものである。
【1153】
なお、本発明は、上述した実施の形態に限定されるものではなく、例えば、上述した実施の形態では、要素復号器50が、軟出力復号回路90及びインターリーバ100等をLSIとして集積させて構成されるものとして説明したが、軟出力復号回路90のみをLSI等の単一モジュールとして構成し、この軟出力復号回路90を複数連接するとともに、インターリーバ100を含む他の各部を外付けの機器として設けることによって、復号装置3として構成してもよい。同様に、本発明は、インターリーバ100のみをLSI等の単一モジュールとして構成し、このインターリーバ100を複数連接するとともに、軟出力復号回路90を含む他の各部を外付けの機器として設けることによって、復号装置3として構成してもよい。すなわち、本発明は、少なくとも軟出力復号回路90又はインターリーバ100がLSI等の単一モジュールとして構成されていれば、繰り返し復号に適用できるものである。
【1154】
また、上述した実施の形態では、軟出力復号回路90による補正項の算出の際には、補正項の値をROM等から構成されるルックアップテーブルから読み出すものとして説明したが、本発明は、ROMの代わりに、例えばRAM等の各種メモリであってもよく、また、例えばいわゆる線形近似回路等を設けることによって、補正項の値を算出する場合にも適用可能である。
【1155】
さらに、上述した実施の形態では、インターリーバ100に対して入出力されるシンボル数を最大で3シンボルであるものとして説明したが、本発明は、3シンボル以上の任意の数のシンボルを入出力する場合にも適用することができる。
【1156】
さらにまた、上述した実施の形態では、インターリーバ100が16個の記憶回路4071,4072,・・・,40716を有するものとして説明したが、本発明は、符号構成に応じた任意の数の記憶回路を有する場合にも適用できることは勿論である。
【1157】
また、上述した実施の形態では、インターリーバ100が対応可能なインターリーブの種類として、ランダムインターリーブ、インラインインターリーブ及びペアワイズインターリーブについて説明したが、本発明は、これらのインターリーブの種類に限定されるものではなく、他の種類のインターリーブにも適用可能である。
【1158】
さらに、上述した実施の形態では、復号装置として、Log−BCJRアルゴリズムに基づくMAP復号を行うものとして説明したが、本発明は、Max−Log−BCJRアルゴリズム、又は、「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」に記載されているBCJRアルゴリズムに基づくMAP復号を行う復号装置であっても適用可能である。
【1159】
さらにまた、上述した実施の形態では、符号化装置及び復号装置をデータ送受信システムにおける送信装置及び受信装置に適用して説明したが、本発明は、例えばフロッピーディスク、CD−ROM又はMO(Magneto Optical)といった磁気、光又は光磁気ディスク等の記録媒体に対する記録及び/又は再生を行う記録及び/又は再生装置に適用することもできる。この場合、符号化装置により符号化されたデータは、無記憶通信路に等価とされる記録媒体に記録され、復号装置により復号されて再生される。
【1160】
以上のように、本発明は、その趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
【1161】
【発明の効果】
以上詳細に説明したように、本発明にかかるインターリーブ装置は、複数の要素符号をインターリーバを介して連接して生成された符号を繰り返し復号するために用いるインターリーブ装置であって、データを記憶する複数の記憶手段と、シーケンシャルな第1のアドレスデータと、シーケンシャルな第2のアドレスデータとを発生するアドレス発生手段と、インターリーバと同一の置換位置情報に基づいて、入力されるデータの順序を置換して並べ替えるインターリーブ処理を行う場合には、第1のアドレスデータを記憶手段に対するデータの書き込みに用いるとともに、アドレス発生手段により発生された第2のアドレスデータに対応してアドレス用記憶手段から読み出されるランダムな第3のアドレスデータを、記憶手段からのデータの読み出しに用い、インターリーバにより並べ替えられた情報の配列を元に戻すように、入力されるデータの順序を置換して並べ替えるデインターリーブ処理を行う場合には、第3のアドレスデータを記憶手段に対するデータの書き込みに用いるとともに、第1のアドレスデータを記憶手段からのデータの読み出しに用いるように切り替える切替手段とを備える。
【1162】
したがって、本発明にかかるインターリーブ装置は、インターリーブ処理とデインターリーブ処理との間で同一のアドレスデータを共用し、切替手段によって、これらのアドレスデータを、インターリーブ処理とデインターリーブ処理とに応じて切り替えることによって、少ない回路規模の単純な構成で、インターリーブ処理とデインターリーブ処理とを同一の構成で実現することができ、優れた利便を提供することができる。
【1163】
また、本発明にかかるインターリーブ方法は、複数の要素符号をインターリーブ工程を介して連接して生成された符号を繰り返し復号するために用いるインターリーブ方法であって、シーケンシャルな第1のアドレスデータと、シーケンシャルな第2のアドレスデータとを発生するアドレス発生工程と、インターリーバと同一の置換位置情報に基づいて、入力されるデータの順序を置換して並べ替えるインターリーブ処理を行う場合には、第1のアドレスデータを、データを記憶する複数の記憶手段に対するデータの書き込みに用いるとともに、アドレス発生工程にて発生された第2のアドレスデータに対応してアドレス用記憶手段から読み出されるランダムな第3のアドレスデータを、記憶手段からのデータの読み出しに用い、インターリーバにより並べ替えられた情報の配列を元に戻すように、入力されるデータの順序を置換して並べ替えるデインターリーブ処理を行う場合には、第3のアドレスデータを記憶手段に対するデータの書き込みに用いるとともに、第1のアドレスデータを記憶手段からのデータの読み出しに用いるように切り替える切替工程とを備える。
【1164】
したがって、本発明にかかるインターリーブ方法は、インターリーブ処理とデインターリーブ処理との間で同一のアドレスデータを共用し、これらのアドレスデータを、インターリーブ処理とデインターリーブ処理とに応じて切り替えることによって、単純な構成でインターリーブ処理とデインターリーブ処理とを同一の構成で実現することを可能とし、優れた利便を提供することを可能とする。
【1165】
さらに、本発明にかかる復号装置は、軟入力とされる受信値に基づいて任意のステートを通過する確率を求め、この確率を用いて、複数の要素符号をインターリーバを介して連接して生成された符号を繰り返し復号するための、要素符号に対応する復号装置であって、受信値及び事前確率情報を入力して軟出力復号を行い、各時刻における軟出力及び/又は外部情報を生成する軟出力復号手段と、この軟出力復号手段により生成された外部情報を入力し、インターリーバと同一の置換位置情報に基づいて、外部情報の順序を置換して並べ替えるインターリーブ処理、又は、インターリーバにより並べ替えられた情報の配列を元に戻すように、外部情報の順序を置換して並べ替えるデインターリーブ処理を行うインターリーブ手段とを備え、インターリーブ手段は、データを記憶する複数の記憶手段と、シーケンシャルな第1のアドレスデータと、シーケンシャルな第2のアドレスデータとを発生するアドレス発生手段と、インターリーバと同一の置換位置情報に基づいて、入力されるデータの順序を置換して並べ替えるインターリーブ処理を行う場合には、第1のアドレスデータを記憶手段に対するデータの書き込みに用いるとともに、アドレス発生手段により発生された第2のアドレスデータに対応してアドレス用記憶手段から読み出されるランダムな第3のアドレスデータを、記憶手段からのデータの読み出しに用い、インターリーバにより並べ替えられた情報の配列を元に戻すように、入力されるデータの順序を置換して並べ替えるデインターリーブ処理を行う場合には、第3のアドレスデータを記憶手段に対するデータの書き込みに用いるとともに、第1のアドレスデータを記憶手段からのデータの読み出しに用いるように切り替える切替手段とを有する。
【1166】
したがって、本発明にかかる復号装置は、軟出力復号して得られた外部情報をインターリーブ手段に入力し、インターリーブ処理とデインターリーブ処理との間で同一のアドレスデータを共用し、切替手段によって、これらのアドレスデータを、インターリーブ処理とデインターリーブ処理とに応じて切り替えることによって、少ない回路規模の単純な構成で、インターリーブ処理とデインターリーブ処理とを同一の構成で実現することができ、優れた利便を提供することができる。
【1167】
さらにまた、本発明にかかる復号方法は、軟入力とされる受信値に基づいて任意のステートを通過する確率を求め、この確率を用いて、複数の要素符号を第1のインターリーブ工程を介して連接して生成された符号を繰り返し復号するための、要素符号に対応する復号方法であって、受信値及び事前確率情報を入力して軟出力復号を行い、各時刻における軟出力及び/又は外部情報を生成する軟出力復号工程と、この軟出力復号工程にて生成された外部情報を入力し、第1のインターリーブ工程と同一の置換位置情報に基づいて、外部情報の順序を置換して並べ替えるインターリーブ処理、又は、第1のインターリーブ工程にて並べ替えられた情報の配列を元に戻すように、外部情報の順序を置換して並べ替えるデインターリーブ処理を行う第2のインターリーブ工程とを備え、第2のインターリーブ工程は、シーケンシャルな第1のアドレスデータと、シーケンシャルな第2のアドレスデータとを発生するアドレス発生工程と、インターリーブ処理を行う場合には、第1のアドレスデータを、データを記憶する複数の記憶手段に対するデータの書き込みに用いるとともに、アドレス発生工程にて発生された第2のアドレスデータに対応してアドレス用記憶手段から読み出されるランダムな第3のアドレスデータを、記憶手段からのデータの読み出しに用い、デインターリーブ処理を行う場合には、第3のアドレスデータを記憶手段に対するデータの書き込みに用いるとともに、第1のアドレスデータを記憶手段からのデータの読み出しに用いるように切り替える切替工程とを有する。
【1168】
したがって、本発明にかかる復号方法は、軟出力復号して得られた外部情報を第2のインターリーブ工程にて用いるように入力し、インターリーブ処理とデインターリーブ処理との間で同一のアドレスデータを共用し、これらのアドレスデータを、インターリーブ処理とデインターリーブ処理とに応じて切り替えることによって、単純な構成でインターリーブ処理とデインターリーブ処理とを同一の構成で実現することを可能とし、優れた利便を提供することを可能とする。
【1169】
また、本発明にかかる復号装置は、軟入力とされる受信値に基づいて任意のステートを通過する確率を求め、この確率を用いて、複数の要素符号をインターリーバを介して連接して生成された符号を繰り返し復号する復号装置であって、当該復号装置は、連接された複数の要素復号器からなり、これらの要素復号器は、それぞれ、受信値及び事前確率情報を入力して軟出力復号を行い、各時刻における軟出力及び/又は外部情報を生成する軟出力復号手段と、この軟出力復号手段により生成された外部情報を入力し、インターリーバと同一の置換位置情報に基づいて、外部情報の順序を置換して並べ替えるインターリーブ処理、又は、インターリーバにより並べ替えられた情報の配列を元に戻すように、外部情報の順序を置換して並べ替えるデインターリーブ処理を行うインターリーブ手段とを備え、インターリーブ手段は、データを記憶する複数の記憶手段と、シーケンシャルな第1のアドレスデータと、シーケンシャルな第2のアドレスデータとを発生するアドレス発生手段と、インターリーバと同一の置換位置情報に基づいて、入力されるデータの順序を置換して並べ替えるインターリーブ処理を行う場合には、第1のアドレスデータを記憶手段に対するデータの書き込みに用いるとともに、アドレス発生手段により発生された第2のアドレスデータに対応してアドレス用記憶手段から読み出されるランダムな第3のアドレスデータを、記憶手段からのデータの読み出しに用い、インターリーバにより並べ替えられた情報の配列を元に戻すように、入力されるデータの順序を置換して並べ替えるデインターリーブ処理を行う場合には、第3のアドレスデータを記憶手段に対するデータの書き込みに用いるとともに、第1のアドレスデータを記憶手段からのデータの読み出しに用いるように切り替える切替手段とを有する。
【1170】
したがって、本発明にかかる復号装置は、繰り返し復号を行う際に、軟出力復号して得られた外部情報をインターリーブ手段に入力し、インターリーブ処理とデインターリーブ処理との間で同一のアドレスデータを共用し、切替手段によって、これらのアドレスデータを、インターリーブ処理とデインターリーブ処理とに応じて切り替えることによって、少ない回路規模の単純な構成で、インターリーブ処理とデインターリーブ処理とを同一の構成で実現することができ、優れた利便を提供することができる。
【1171】
さらに、本発明にかかる復号方法は、軟入力とされる受信値に基づいて任意のステートを通過する確率を求め、この確率を用いて、複数の要素符号を第1のインターリーブ工程を介して連接して生成された符号を繰り返し復号する復号方法であって、当該復号方法は、複数の要素復号工程が連続して行われるものであり、これらの要素復号工程は、それぞれ、受信値及び事前確率情報を入力して軟出力復号を行い、各時刻における軟出力及び/又は外部情報を生成する軟出力復号工程と、この軟出力復号工程にて生成された外部情報を入力し、第1のインターリーブ工程と同一の置換位置情報に基づいて、外部情報の順序を置換して並べ替えるインターリーブ処理、又は、第1のインターリーブ工程にて並べ替えられた情報の配列を元に戻すように、外部情報の順序を置換して並べ替えるデインターリーブ処理を行う第2のインターリーブ工程とを備え、第2のインターリーブ工程は、シーケンシャルな第1のアドレスデータと、シーケンシャルな第2のアドレスデータとを発生するアドレス発生工程と、インターリーブ処理を行う場合には、第1のアドレスデータを、データを記憶する複数の記憶手段に対するデータの書き込みに用いるとともに、アドレス発生工程にて発生された第2のアドレスデータに対応してアドレス用記憶手段から読み出されるランダムな第3のアドレスデータを、記憶手段からのデータの読み出しに用い、デインターリーブ処理を行う場合には、第3のアドレスデータを記憶手段に対するデータの書き込みに用いるとともに、第1のアドレスデータを記憶手段からのデータの読み出しに用いるように切り替える切替工程とを有する。
【1172】
したがって、本発明にかかる復号方法は、繰り返し復号を行う際に、軟出力復号して得られた外部情報を第2のインターリーブ工程にて用いるように入力し、インターリーブ処理とデインターリーブ処理との間で同一のアドレスデータを共用し、これらのアドレスデータを、インターリーブ処理とデインターリーブ処理とに応じて切り替えることによって、単純な構成でインターリーブ処理とデインターリーブ処理とを同一の構成で実現することを可能とし、優れた利便を提供することを可能とする。
【図面の簡単な説明】
【図1】本発明の実施の形態として示すデータ送受信システムを適用する通信モデルの構成を説明するブロック図である。
【図2】同データ送受信システムにおける符号化装置の一例の構成を説明するブロック図であって、PCCCによる符号化を行う符号化装置の構成を説明するブロック図である。
【図3】同データ送受信システムにおける復号装置の一例の構成を説明するブロック図であって、図2に示す符号化装置による符号の復号を行う復号装置の構成を説明するブロック図である。
【図4】同データ送受信システムにおける符号化装置の一例の構成を説明するブロック図であって、SCCCによる符号化を行う符号化装置の構成を説明するブロック図である。
【図5】同データ送受信システムにおける復号装置の一例の構成を説明するブロック図であって、図4に示す符号化装置による符号の復号を行う復号装置の構成を説明するブロック図である。
【図6】要素復号器の概略構成を説明するブロック図である。
【図7】同要素復号器の左半分部分の詳細構成を説明するブロック図である。
【図8】同要素復号器の右半分部分の詳細構成を説明するブロック図である。
【図9】同要素復号器が備える復号受信値選択回路の構成を説明するブロック図である。
【図10】同要素復号器が備えるエッジ検出回路の構成を説明するブロック図である。
【図11】同要素復号器が備える軟出力復号回路の概略構成を説明するブロック図である。
【図12】同軟出力復号回路の左半分部分の詳細構成を説明するブロック図である。
【図13】同軟出力復号回路の右半分部分の詳細構成を説明するブロック図である。
【図14】ボーゼンクラフト型の畳み込み符号化器の一構成例を説明するブロック図である。
【図15】ボーゼンクラフト型の畳み込み符号化器の他の一構成例を説明するブロック図である。
【図16】マッシィ型の畳み込み符号化器の一構成例を説明するブロック図である。
【図17】マッシィ型の畳み込み符号化器の他の一構成例を説明するブロック図である。
【図18】図14に示す畳み込み符号化器の具体的構成例を説明するブロック図である。
【図19】図18に示す畳み込み符号化器におけるトレリスを説明する図である。
【図20】図15に示す畳み込み符号化器の具体的構成例を説明するブロック図である。
【図21】図20に示す畳み込み符号化器におけるトレリスを説明する図である。
【図22】図16に示す畳み込み符号化器の具体的構成例を説明するブロック図である。
【図23】図22に示す畳み込み符号化器におけるトレリスを説明する図である。
【図24】図17に示す畳み込み符号化器の具体的構成例を説明するブロック図である。
【図25】図24に示す畳み込み符号化器におけるトレリスを説明する図である。
【図26】同軟出力復号回路が有する内部消去情報生成回路の構成を説明するブロック図である。
【図27】同軟出力復号回路が有する終結情報生成回路の構成を説明するブロック図である。
【図28】同軟出力復号回路が有する受信値及び事前確率情報選択回路の構成を説明するブロック図である。
【図29】同軟出力復号回路が有するIγ算出回路の構成を説明するブロック図である。
【図30】同軟出力復号回路が有するIγ分配回路の構成を説明するブロック図である。
【図31】同Iγ分配回路が有するIβ0用パラレルパス処理回路の構成を説明するブロック図である。
【図32】同Iβ0用パラレルパス処理回路が有するパラレルパス用log−sum演算回路の構成を説明するブロック図である。
【図33】同軟出力復号回路が有するIα算出回路の構成を説明するブロック図である。
【図34】同Iα算出回路が有する加算比較選択回路の構成を説明するブロック図であって、トレリス上の各ステートから次時刻におけるステートへと2本のパスが到達するような符号に対して処理を行う加算比較選択回路の構成を説明するブロック図である。
【図35】同加算比較選択回路が有する補正項算出回路の構成を説明するブロック図である。
【図36】同Iα算出回路が有する加算比較選択回路の構成を説明するブロック図であって、トレリス上の各ステートから次時刻におけるステートへと4本のパスが到達するような符号に対して処理を行う加算比較選択回路の構成を説明するブロック図である。
【図37】同Iα算出回路が有するIα+Iγ算出回路の構成を説明するブロック図である。
【図38】同軟出力復号回路が有するIβ算出回路の構成を説明するブロック図である。
【図39】同Iβ算出回路が有する加算比較選択回路の構成を説明するブロック図であって、トレリス上の各ステートから次時刻におけるステートへと2本のパスが到達するような符号に対して処理を行う加算比較選択回路の構成を説明するブロック図である。
【図40】同Iβ算出回路が有する加算比較選択回路の構成を説明するブロック図であって、トレリス上の各ステートから次時刻におけるステートへと4本のパスが到達するような符号に対して処理を行う加算比較選択回路の構成を説明するブロック図である。
【図41】同軟出力復号回路が有する軟出力算出回路の構成を説明するブロック図である。
【図42】同軟出力算出回路が有するlog−sum演算回路の構成を説明するブロック図である。
【図43】同軟出力復号回路が有する受信値又は事前確率情報分離回路の構成を説明するブロック図である。
【図44】同軟出力復号回路が有する外部情報算出回路の構成を説明するブロック図である。
【図45】同軟出力復号回路が有する硬判定回路の構成を説明するブロック図である。
【図46】同要素復号器が備えるインターリーバにおける遅延用のRAMの概念を説明するためのブロック図である。
【図47】遅延用のRAMの概念を説明するためのブロック図であって、複数個のRAMから構成されていることを説明するためのブロック図である。
【図48】遅延用のRAMの概念を説明するためのブロック図であって、同インターリーバが有する制御回路により生成したアドレスを適切に変換して各RAMに与える様子を説明するためのブロック図である。
【図49】同インターリーバにおけるインターリーブ用のRAMの概念を説明するためのブロック図である。
【図50】インターリーブ用のRAMの概念を説明するためのブロック図であって、シーケンシャルな書き込みアドレスとランダムな読み出しアドレスとに基づいて、バンクA,Bのそれぞれに用いるアドレスに変換し、各RAMに与える様子を説明するためのブロック図である。
【図51】同インターリーバが行うインターリーブの種類を説明するための図であって、(A)は、1シンボルの入力データに対するランダムインターリーブを示し、(B)は、2シンボルの入力データに対するランダムインターリーブを示し、(C)は、2シンボルの入力データに対するインラインインターリーブを示し、(D)は、2シンボルの入力データに対するペアワイズインターリーブを示し、(E)は、3シンボルの入力データに対するランダムインターリーブを示し、(F)は、3シンボルの入力データに対するインラインインターリーブを示し、(G)は、3シンボルの入力データに対するペアワイズインターリーブを示す図である。
【図52】同インターリーバの構成を説明するブロック図である。
【図53】同インターリーバが有する奇数長遅延補償回路の構成を説明するブロック図である。
【図54】同インターリーバが有する記憶回路の構成を説明するブロック図である。
【図55】同インターリーバにおけるRAMの利用方法を説明するための図であって、1シンボルの入力データに対して、ランダムインターリーブを施す場合において、(A)は、遅延用のRAMを示し、(B)は、インターリーブ用のRAMを示し、(C)は、アドレス用のRAMを示し、(D)は、使用しないRAMを示す図である。
【図56】同インターリーバにおけるRAMの利用方法を説明するための図であって、2シンボルの入力データに対して、ランダムインターリーブを施す場合において、(A)は、遅延用のRAMを示し、(B)は、インターリーブ用のRAMを示し、(C)は、アドレス用のRAMを示し、(D)は、使用しないRAMを示す図である。
【図57】同インターリーバにおけるRAMの利用方法を説明するための図であって、2シンボルの入力データに対して、インラインインターリーブを施す場合において、(A)は、遅延用のRAMを示し、(B)は、インターリーブ用のRAMを示し、(C)は、アドレス用のRAMを示す図である。
【図58】同インターリーバにおけるRAMの利用方法を説明するための図であって、2シンボルの入力データに対して、ペアワイズインターリーブを施す場合において、(A)は、遅延用のRAMを示し、(B)は、インターリーブ用のRAMを示し、(C)は、アドレス用のRAMを示し、(D)は、使用しないRAMを示す図である。
【図59】同インターリーバにおけるRAMの利用方法を説明するための図であって、3シンボルの入力データに対して、ランダムインターリーブを施す場合において、(A)は、遅延用のRAMを示し、(B)は、インターリーブ用のRAMを示し、(C)は、アドレス用のRAMを示し、(D)は、使用しないRAMを示す図である。
【図60】同インターリーバにおけるRAMの利用方法を説明するための図であって、3シンボルの入力データに対して、インラインインターリーブを施す場合において、(A)は、遅延用のRAMを示し、(B)は、インターリーブ用のRAMを示し、(C)は、アドレス用のRAMを示し、(D)は、使用しないRAMを示す図である。
【図61】同インターリーバにおけるRAMの利用方法を説明するための図であって、3シンボルの入力データに対して、ペアワイズインターリーブを施す場合において、(A)は、遅延用のRAMを示し、(B)は、インターリーブ用のRAMを示し、(C)は、アドレス用のRAMを示し、(D)は、使用しないRAMを示す図である。
【図62】同要素復号器を連接して構成される復号装置の構成を説明するブロック図である。
【図63】同復号装置を構成する隣接する2つの要素復号器の簡略化した構成を説明するブロック図であって、前段の要素復号器からの情報の中から、軟出力復号に必要な情報を選択する構成について説明するブロック図である。
【図64】同復号装置を構成する隣接する2つの要素復号器の簡略化した構成を説明するブロック図であって、前段の要素復号器によって、次段の要素復号器における軟出力復号に必要な情報を選択する構成について説明するブロック図である。
【図65】同復号装置を構成する隣接する2つの要素復号器の簡略化した構成を説明するブロック図であって、受信値を遅延させる遅延回路を備える構成について説明するブロック図である。
【図66】同復号装置を構成する隣接する2つの要素復号器の簡略化した構成を説明するブロック図であって、復号の対象とする受信値を選択する復号受信値選択回路を備える構成について説明するブロック図である。
【図67】図14に示す畳み込み符号化器におけるトレリスを説明する図であり、遷移先のステートから見て入力される枝を基準とした場合の番号付けを説明する図であって、(A)は、メモリ数が4の場合における番号付けを示し、(B)は、メモリ数が3の場合における番号付けを示し、(C)は、メモリ数が2の場合における番号付けを示し、(D)は、メモリ数が1の場合における番号付けを示す図である。
【図68】図14に示す畳み込み符号化器におけるトレリスを説明する図であり、遷移元のステートから見て出力していく枝を基準とした場合の番号付けを説明する図であって、(A)は、メモリ数が4の場合における番号付けを示し、(B)は、メモリ数が3の場合における番号付けを示し、(C)は、メモリ数が2の場合における番号付けを示し、(D)は、メモリ数が1の場合における番号付けを示す図である。
【図69】図15に示す畳み込み符号化器におけるトレリスを説明する図であり、遷移先のステートから見て入力される枝を基準とした場合の番号付けを説明する図であって、(A)は、メモリ数が3の場合における番号付けを示し、(B)は、メモリ数が2の場合における番号付けを示す図である。
【図70】図15に示す畳み込み符号化器におけるトレリスを説明する図であり、遷移元のステートから見て出力していく枝を基準とした場合の番号付けを説明する図であって、(A)は、メモリ数が3の場合における番号付けを示し、(B)は、メモリ数が2の場合における番号付けを示す図である。
【図71】図16に示す畳み込み符号化器におけるトレリスを説明する図であり、遷移先のステートから見て入力される枝を基準とした場合の番号付けを説明する図であって、(A)は、メモリ数が3の場合における番号付けを示し、(B)は、メモリ数が2の場合における番号付けを示す図である。
【図72】図16に示す畳み込み符号化器におけるトレリスを説明する図であり、遷移元のステートから見て出力していく枝を基準とした場合の番号付けを説明する図であって、(A)は、メモリ数が3の場合における番号付けを示し、(B)は、メモリ数が2の場合における番号付けを示す図である。
【図73】図17に示す畳み込み符号化器におけるトレリスを説明する図であり、遷移先のステートから見て入力される枝を基準とした場合の番号付けを説明する図であって、(A)は、メモリ数が2の場合における番号付けを示し、(B)は、メモリ数が1の場合における番号付けを示す図である。
【図74】図17に示す畳み込み符号化器におけるトレリスを説明する図であり、遷移元のステートから見て出力していく枝を基準とした場合の番号付けを説明する図であって、(A)は、メモリ数が2の場合における番号付けを示し、(B)は、メモリ数が1の場合における番号付けを示す図である。
【図75】終結情報の生成動作を説明するためのトレリスを示す図であって、入力ビット数分の終結情報を終結期間分だけ入力する動作を説明するための図である。
【図76】終結情報の生成動作を説明するためのトレリスを示す図であって、終結情報を1タイムスロットで入力する動作を説明するための図である。
【図77】同Iγ算出回路及び同Iγ分配回路の概略構成を説明するブロック図であって、全ての入出力パターン分の対数尤度Iγを算出し、符号構成に応じて決定される入出力パターンに応じて分配する構成について説明するブロック図である。
【図78】同Iγ算出回路及び同Iγ分配回路の概略構成を説明するブロック図であって、少なくとも一部の入出力パターン分の対数尤度Iγを算出し、所望の対数尤度Iγを選択して加算する構成について説明するブロック図である。
【図79】同Iγ算出回路及び同Iγ分配回路の概略構成を説明するブロック図であって、全ての入出力パターン分の対数尤度Iγを算出する場合において、対数尤度Iγに対して1時刻毎の正規化を行う構成について説明するブロック図である。
【図80】同要素復号器が対数尤度を負値として扱う場合における対数尤度Iγに対する正規化を説明するための図であって、(A)は、正規化前の対数尤度Iγの分布例を示し、(B)は、正規化後の対数尤度Iγの分布例を示す図である。
【図81】同要素復号器が対数尤度を正値として扱う場合における対数尤度Iγに対する正規化を説明するための図であって、(A)は、正規化前の対数尤度Iγの分布例を示し、(B)は、正規化後の対数尤度Iγの分布例を示す図である。
【図82】同Iγ算出回路及び同Iγ分配回路の概略構成を説明するブロック図であって、少なくとも一部の入出力パターン分の対数尤度Iγを算出する場合において、対数尤度Iγに対して1時刻毎の正規化を行う構成について説明するブロック図である。
【図83】畳み込み符号化器におけるトレリスの一例を説明する図であって、(A)は、メモリ数が“1”の場合の一例を示し、(B)は、メモリ数が“2”の場合の一例を示し、(C)は、メモリ数が“3”の場合の一例を示し、(D)は、メモリ数が“4”の場合の一例を示す図である。
【図84】図83に示す4つのトレリスを重ねた様子を説明する図である。
【図85】トレリス上の各ステートから次時刻におけるステートへと2本のパスが到達するような符号に対して処理を行う同Iα算出回路における加算比較選択回路の構成を説明するブロック図であって、対数尤度Iαを選択するセレクタを備える構成について説明するブロック図である。
【図86】同Iα算出回路及び同Iβ算出回路におけるlog−sum演算回路の概略構成を説明するブロック図であって、第1の方法による正規化を行うlog−sum演算回路の構成を説明するブロック図である。
【図87】第1の方法による正規化を説明するための図であって、正規化前後におけるダイナミックレンジの例を示す図である。
【図88】第2の方法による正規化を説明するための図であって、正規化前後におけるダイナミックレンジの例を示す図である。
【図89】同Iα算出回路及び同Iβ算出回路におけるlog−sum演算回路の概略構成を説明するブロック図であって、第3の方法による正規化を行うlog−sum演算回路の構成を説明するブロック図である。
【図90】第3の方法による正規化を説明するための図であって、正規化前後におけるダイナミックレンジの例を示す図である。
【図91】log−sum演算回路の概略構成を説明するブロック図であって、通常のlog−sum演算を行うlog−sum演算回路の構成を説明するブロック図である。
【図92】log−sum演算回路の概略構成を説明するブロック図であって、差分値に対応する複数の補正項の値を算出し、その中から適切なものを選択するlog−sum演算を行うlog−sum演算回路の構成を説明するブロック図である。
【図93】イネーブル信号を用いないlog−sum演算の累積加算演算を行う軟出力算出回路の概略構成を説明するブロック図である。
【図94】シンボル単位の外部情報に対する正規化を説明するための図であって、(A)は、正規化前の外部情報の分布例を示し、(B)は、最大値を有する外部情報を所定の値に合わせる正規化後の外部情報の分布例を示し、(C)は、クリップ後の外部情報の分布例を示し、(D)は、1つのシンボルに対する外部情報の値を、他のシンボルに対する外部情報の値から差分する正規化後の外部情報の分布例を示す図である。
【図95】8PSK変調方式による信号点配置を説明する図であって、I/Q平面上に境界線を設けた様子を示す図である。
【図96】同インターリーバが有する制御回路の簡略化した構成を説明するブロック図である。
【図97】書き込みアドレス用のカウンタと読み出しアドレス用のカウンタとを共用した場合におけるデータの書き込みと読み出しのタイミングを説明する図である。
【図98】書き込みアドレス用のカウンタと読み出しアドレス用のカウンタとを個別に設けた場合におけるデータの書き込みと読み出しのタイミングを説明する図である。
【図99】同インターリーバにおけるRAMに対するデータの書き込みと読み出しの様子を説明するための図である。
【図100】同インターリーバにおけるRAMに対して連続的なアドレスを割り当てる様子を説明するための図である。
【図101】同インターリーバにおけるRAMに対するデータの書き込みと読み出しの様子を説明するための図であって、各RAMの全ての記憶領域にデータが記憶されない場合におけるデータの書き込みと読み出しの様子を説明するための図である。
【図102】同インターリーバにおけるRAMに対して連続的なアドレスを割り当てる様子を説明するための図であって、物理的に異なる複数のRAMにわたって連続的なアドレスが割り当てられる様子を説明するための図である。
【図103】同インターリーバにおけるRAMに対してアドレスを割り当てる様子を説明するための図であって、置換先のアドレスをタイムスロットと入力シンボルとの組み合わせで与える様子を説明するための図である。
【図104】同インターリーバにおけるRAMに対してアドレスを割り当てる様子を説明するための図であって、各RAMの全ての記憶領域にデータが記憶されない場合において、置換先のアドレスをタイムスロットと入力シンボルとの組み合わせで与える様子を説明するための図である。
【図105】同インターリーバにおけるRAMの記憶容量を説明するための図であって、(A)は、通常時におけるRAMの記憶容量を示し、(B)は、パーシャルライトのRAMとして作用させる場合におけるRAMの擬似的な記憶容量を示す図である。
【図106】同インターリーバにおけるRAMに対するデータの書き込みと読み出しの様子を説明するための図であって、3タイムスロット分のワード数のRAMを2バンク用いて6タイムスロット分のインターリーブ長の遅延を実現する例について説明するための図である。
【図107】図106に示す動作によるデータの書き込みと読み出しのタイミングを説明するチャート図である。
【図108】畳み込み符号化器の一構成例を説明するブロック図である。
【図109】符号化装置の一構成例を説明するブロック図であって、インターリーバに対する入力シンボル間の順序を入れ替える様子を説明するためのブロック図である。
【図110】同復号装置を構成する隣接する2つの要素復号器の簡略化した構成を説明するブロック図であって、インターリーバがシンボル入れ替え回路を有する構成について説明するブロック図である。
【図111】同復号装置を構成する隣接する2つの要素復号器の簡略化した構成を説明するブロック図であって、軟出力復号回路がシンボル入れ替え回路を有する構成について説明するブロック図である。
【図112】通信モデルの構成を説明するブロック図である。
【図113】従来の符号化装置におけるトレリスを説明する図であって、確率α,β及びγの内容を説明するための図である。
【図114】従来の復号装置において、BCJRアルゴリズムを適用して軟出力復号を行う際の一連の工程を説明するフローチャートである。
【図115】従来の復号装置において、Max−Log−BCJRアルゴリズムを適用して軟出力復号を行う際の一連の工程を説明するフローチャートである。
【符号の説明】
1 符号化装置、 3 復号装置、 50 要素復号器、 60,400 制御回路、 70 復号受信値選択回路、 80 エッジ検出回路、 90 軟出力復号回路、 100 インターリーバ、 110 アドレス用記憶回路、 120,411,421,422,423,425,426,501,502,503,504,520,530,540,603 セレクタ、 130 信号線、 151 符号情報生成回路、 152 内部消去情報生成回路、 153 終結情報生成回路、 154 受信値及び事前確率情報選択回路、 155 受信データ及び遅延用記憶回路、 156 Iγ算出回路、 157 Iγ分配回路、 158 Iα算出回路、 159 Iβ算出回路、 160 Iβ記憶回路、 161 軟出力算出回路、 162 受信値又は事前確率情報分離回路、163 外部情報算出回路、 164 振幅調整及びクリップ回路、 165硬判定回路、 222 Iγ正規化回路、 223 枝入出力情報算出回路、2251 Iβ0用パラレルパス処理回路、 2252 Iβ1用パラレルパス処理回路、 2253 Iα用パラレルパス処理回路、 232,253,330 選択用制御信号生成回路、 252,372,582 ルックアップテーブル、 240,280 制御信号生成回路、 241,242,283,284加算比較選択回路、 243 Iα+Iγ算出回路、 245,256,286,292,312,550,560,580,591 log−sum演算回路、 247,258,288,294 補正項算出回路、 250,272 Iα正規化回路、 281 Iβ0用加算比較選択回路、 282 Iβ1用加算比較選択回路、 291,308 Iβ0正規化回路、 310 Iα+Iγ+Iβ算出回路、 311 イネーブル信号生成回路、 313 Iλ算出回路、 350 情報ビット外部情報算出回路、 351 情報シンボル外部情報算出回路、 352 符号外部情報算出回路、 357,554,564 正規化回路、 361 最小シンボル算出回路、 370 I/Qデマップ回路、 401 遅延アドレス発生回路、 402 奇数長遅延補償回路、 403 インターリーブアドレス変換回路、 404 遅延アドレス変換回路、 405 アドレス選択回路、 406 入力データ選択回路、 407 記憶回路、 408 出力データ選択回路、 410,565 レジスタ、 421 インバータ、 424 RAM、 510 遅延回路、 531 加算器、 590 選択回路、 601 書き込みアドレス発生回路、 602 読み出しアドレス発生回路、 610,611,612,613 シンボル入れ替え回路[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an interleaving apparatus and interleaving method used for iterative decoding, and a decoding apparatus and decoding method suitable for iterative decoding.
[0002]
[Prior art]
In recent years, studies have been made to reduce the symbol error rate by making the decoding output of the inner code in the concatenated code and the output of each iterative decoding operation in the iterative decoding method soft, and research on the decoding method suitable for it has been active. Has been done. For example, methods for minimizing the symbol error rate when decoding a predetermined code such as a convolutional code are described in “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 "is known. In this BCJR algorithm, each symbol is not output as a decoding result, but the likelihood of each symbol is output. Such output is called soft-output. The contents of this BCJR algorithm will be described below. In the following description, as shown in FIG. 112, digital information is convolutionally encoded by an
[0003]
First, M states (transition states) representing the contents of the shift register included in the
[0004]
The convolutional encoding by the
[0005]
[Expression 1]
[0006]
In addition, Pr {A | B} shown on the right side in the above equation (1) is a conditional probability that A will occur under the condition where B occurs. This transition probability Pt(M | m ′) is the input i at time t when transitioning from the state m ′ to the state m at the input i as shown in the following equation (2).tThe probability Pr {it= I}.
[0007]
[Expression 2]
[0008]
The no-
[0009]
[Equation 3]
[0010]
Here, as shown in the following equation (4), λtjDefine Λ shown in the following equation (4)tjIs Y1 TRepresents the likelihood of the input information at time t when the signal is received, and is a soft output that should be originally obtained.
[0011]
[Expression 4]
[0012]
In the BCJR algorithm, the probability α as shown in the following equations (5) to (7):t, ΒtAnd γtDefine Note that Pr {A; B} represents the probability that both A and B will occur.
[0013]
[Equation 5]
[0014]
[Formula 6]
[0015]
[Expression 7]
[0016]
Where these probabilities αt, ΒtAnd γtThe trellis which is a state transition diagram in the
[0017]
These probabilities αt, ΒtAnd γt, The soft output λtjCan be expressed as the following equation (8).
[0018]
[Equation 8]
[0019]
By the way, the following equation (9) is established for t = 1, 2,.
[0020]
[Equation 9]
[0021]
Similarly, for t = 1, 2,..., T, the following equation (10) holds.
[0022]
[Expression 10]
[0023]
Furthermore, γtThe following equation (11) is established.
[0024]
## EQU11 ##
[0025]
Therefore, when performing the soft output decoding by applying the BCJR algorithm, the
[0026]
First, as shown in the figure, the
[0027]
Subsequently, in step S1002, the
[0028]
Then, in step S1003, the
[0029]
The
[0030]
By the way, in such a BCJR algorithm, it is necessary to perform an operation while holding the probability as a direct value, and there is a problem that the amount of operation is large because it includes a product operation. Therefore, as a technique to reduce the amount of computation, “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 ”is a Max-Log-MAP algorithm and a Log-MAP algorithm (hereinafter referred to as Max-Log-BCJR algorithm and Log-BCJR algorithm).
[0031]
First, the Max-Log-BCJR algorithm will be described. The Max-Log-BCJR algorithm has the probability αt, ΒtAnd γt, And soft output λtIs replaced with a logarithmic sum operation as shown in the following equation (12), and the probability sum operation is replaced with a logarithm as shown in the following equation (13). It is approximated by maximum value calculation. In addition, max (x, y) shown in the following equation (13) is a function that selects a larger one of x and y.
[0032]
[Expression 12]
[0033]
[Formula 13]
[0034]
Here, to simplify the description, the natural logarithm is abbreviated as I and αt, Βt, Γt, ΛtThe natural logarithm of Iα is expressed by the following equation (14) as Iαt, Iβt, Iγt, IλtIt shall be expressed as In addition, sgn shown in the following formula (14) is a constant indicating a sign for identifying positive or negative, that is, “+1” or “−1”.
[0035]
[Expression 14]
[0036]
The reason for giving such a constant sgn is mainly that the probability αt, Βt, ΓtSince logarithm values between 0 and 1 are generally calculated log likelihoods Iαt, Iβt, IγtLies in taking negative values.
[0037]
For example, when the
[0038]
That is, when the
[0039]
In the Max-Log-BCJR algorithm, these log likelihoods Iαt, Iβt, IγtAre approximated as shown in the following equations (15) to (17), respectively. Here, msgn (x, y) shown in the following expressions (15) and (16) is a function max that selects a larger one of x and y when the constant sgn is “+1”. When (x, y) is shown and the constant sgn is “−1”, it shows a function min (x, y) for selecting one of x and y having a small value. The function msgn in the state m ′ on the right side in the following equation (15) is obtained in the state m ′ in which there is a transition to the state m, and the function msgn in the state m ′ on the right side in the following equation (16) is Assume that it is obtained in a state m ′ where a transition from the state m exists.
[0040]
[Expression 15]
[0041]
[Expression 16]
[0042]
[Expression 17]
[0043]
In the Max-Log-BCJR algorithm, the logarithmic soft output IλtSimilarly, is approximated as shown in the following equation (18). Here, the function msgn of the first term on the right side in the following equation (18) is obtained in the state m ′ where the transition to the state m exists when the input is “1”, and the function msgn of the second term is Assume that the state m ′ in which there is a transition to the state m when the input is “0”.
[0044]
[Expression 18]
[0045]
Therefore, when performing the soft output decoding by applying the Max-Log-BCJR algorithm, the
[0046]
First, as shown in the figure, the
[0047]
Subsequently, in step S1012, the
[0048]
Then, in step S1013, the
[0049]
The
[0050]
As described above, the Max-Log-BCJR algorithm does not include a product operation, so that the amount of calculation can be significantly reduced as compared with the BCJR algorithm.
[0051]
Next, the Log-BCJR algorithm will be described. The Log-BCJR algorithm is obtained by further improving the accuracy of approximation by the Max-Log-BCJR algorithm. Specifically, the Log-BCJR algorithm transforms the sum operation of the probability shown in the above equation (13) by adding a correction term as shown in the following equation (19), so that the exact logarithmic value of the sum operation is obtained. Is what you want. Here, such correction is referred to as log-sum correction.
[0052]
[Equation 19]
[0053]
Here, the operation shown on the left side in the above equation (19) is referred to as a log-sum operation. J. Satellite Commun., Vol. 16, pp. 23-46, Jan.-Feb. 1998 ”,“ # ”for convenience, as shown in the following equation (20). (However, in this paper, “E”.)
[0054]
[Expression 20]
[0055]
The above formula (19) and the above formula (20) show a case where the above-described constant sgn is “+1”. When the constant sgn is “−1”, the operations corresponding to the above formula (19) and the above formula (20) are as shown in the following formula (21) and the following formula (22), respectively.
[0056]
[Expression 21]
[0057]
[Expression 22]
[0058]
Furthermore, the operator of the cumulative addition operation of the log-sum operation is represented as “# Σ” (in the same paper, “E”) as shown in the following equation (23).
[0059]
[Expression 23]
[0060]
Using these operators, the log-likelihood Iα in the Log-BCJR algorithmt, IβtAnd logarithmic soft output IλtCan be expressed as shown in the following equations (24) to (26), respectively. In addition, log likelihood IγtIs represented by the above equation (17), and therefore, the description thereof is omitted here.
[0061]
[Expression 24]
[0062]
[Expression 25]
[0063]
[Equation 26]
[0064]
Note that the cumulative addition operation of the log-sum operation in the state m ′ on the right side in the above equation (24) is obtained in the state m ′ in which the transition to the state m exists, and the right side in the above equation (25). It is assumed that the cumulative addition operation of the log-sum operation in the state m ′ is obtained in the state m ′ in which there is a transition from the state m. In addition, the cumulative addition operation of the log-sum operation of the first term on the right side in the above equation (26) is obtained in the state m ′ where the transition to the state m exists when the input is “1”, and the second term It is assumed that the cumulative addition operation of the log-sum operation is obtained in the state m ′ where the transition to the state m exists when the input is “0”.
[0065]
Therefore, when performing the soft output decoding by applying the Log-BCJR algorithm, the
[0066]
First, as shown in the figure, the
[0067]
Subsequently, in step S1012, the
[0068]
Then, in step S1013, the
[0069]
The
[0070]
Such a Log-BCJR algorithm does not include a product operation although the amount of operation increases compared to the Max-Log-BCJR algorithm, and its output is a logarithmic value of the soft output of the BCJR algorithm, except for quantization error. It is none other than itself.
[0071]
[Problems to be solved by the invention]
By the way, the BCJR algorithm, the Max-Log-BCJR algorithm, or the Log-BCJR algorithm described above is an algorithm that enables decoding of a trellis code such as a convolutional code. The present invention can also be applied to decoding of codes generated by connecting devices through an interleaver. That is, the BCJR algorithm, the Max-Log-BCJR algorithm, or the Log-BCJR algorithm is a parallel concatenated convolutional code (hereinafter referred to as PCCC) or a serial concatenated convolutional code (hereinafter referred to as SCCC). And turbo coded modulation (Turbo Trellis Coded Modulation; hereinafter referred to as a combination of multi-level modulation by applying these PCCC or SCCC, and considering the arrangement of signal points and decoding characteristics of error correction codes. TTCM) or serial concatenated trellis coded modulation (hereinafter referred to as SCTCM).
[0072]
A decoding device that decodes these PCCC, SCCC, TTCM, or SCTCM is a plurality of decoders that perform Maximum A Posteriori probability (MAP) decoding based on the BCJR algorithm, the Max-Log-BCJR algorithm, or the Log-BCJR algorithm. Are connected via an interleaver to perform so-called iterative decoding.
[0073]
Here, in the decoding device, an interleaver that performs at least two types of permutation is required, such as an interleaver that performs an interleave process and a deinterleave process that performs a reverse of the interleave process. The
[0074]
However, it is difficult to configure an interleaver that can perform interleaving processing and deinterleaving processing with the same configuration. In particular, since it is difficult to configure the interleaver as hardware, the decoding apparatus needs to separately prepare an interleaver that performs an interleave process and an interleaver that performs a deinterleave process.
[0075]
Also, when configuring an interleaver that can perform interleaving and deinterleaving with the same configuration, write data to the storage circuit using sequential address data and use random address data. In addition, the interleaving process is performed by reading data from the memory circuit, and when the deinterleaving process is performed, the address data used in the interleaving process is inversely converted in order to generate address data for reading. It is possible to do.
[0076]
However, when iterative decoding is performed using such an interleaver, the address data used for the interleaving process and the address data used for the interleaving process are deinterleaved. Two types of address data, that is, address data for inverse conversion to be used for processing, need to be held separately, and the circuit scale may be reduced.
[0077]
The present invention has been made in view of such circumstances, and with a simple configuration with a small circuit scale, it is possible to perform decoding by realizing interleaving processing and deinterleaving processing with the same configuration, which is convenient. It is an object to provide an excellent interleaving apparatus and interleaving method. Further, the present invention can perform decoding by realizing interleaving processing and deinterleaving processing with the same configuration with a simple configuration with a small circuit scale, and a decoding device and decoding suitable for iterative decoding which are excellent in convenience. It aims to provide a method.
[0078]
[Means for Solving the Problems]
An interleaving apparatus according to the present invention that achieves the above-described object is an interleaving apparatus that is used to repeatedly decode a code generated by concatenating a plurality of element codes via an interleaver, and that stores a plurality of data. The order of the input data is replaced based on the same replacement position information as the storage means, the address generating means for generating the sequential first address data and the sequential second address data, and the interleaver. When the interleaving process is performed, the first address data is used for writing data to the storage means, and is read from the address storage means corresponding to the second address data generated by the address generation means. Random third address data is read from the storage means. When deinterleaving is performed in which the order of the input data is replaced and rearranged so that the array of information rearranged by the interleaver is restored, the third address data is stored in the storage means. And switching means for switching the first address data to be used for reading data from the storage means.The interleaved data is individually interleaved based on different addresses..
[0079]
An interleaving device according to the present invention that achieves the above-described object is an interleaving device that is used to repeatedly decode a code generated by concatenating a plurality of element codes via an interleaver, and stores data. A plurality of storage means, address generating means for generating sequential first address data and sequential second address data, and the order of input data based on the same replacement position information as the interleaver When performing interleaving processing for replacement and rearrangement, the first address data is used for writing data to the storage means, and from the address storage means corresponding to the second address data generated by the address generation means. The random third address data to be read is stored in the data from the storage means. When deinterleaving is performed in which the order of the input data is replaced and rearranged so that the array of information rearranged by the interleaver is restored, the third address data is stored. Switching means for switching the first address data to be used for reading data from the storage means, and holding a combination of bits for the input data of a plurality of symbols. Interleave like.
Such an interleaving device according to the present invention shares the same address data between the interleaving process and the deinterleaving process, and the switching means switches these address data according to the interleaving process and the deinterleaving process. .
[0080]
An interleaving method according to the present invention that achieves the above-described object is an interleaving method that is used to repeatedly decode a code that is generated by concatenating a plurality of element codes through an interleaving process, and is a sequential first method. An address generation process for generating the second address data and sequential address data, and an interleaving process for rearranging the order of the input data based on the same replacement position information as the interleaver The first address data is used for writing data to a plurality of storage means for storing data, and is read from the address storage means corresponding to the second address data generated in the address generation step. Read random third address data from storage means In the case of performing a deinterleave process in which the order of input data is replaced and rearranged so that the array of information rearranged by the interleaver is restored, the third address data is stored in the storage means. And a switching step for switching to use the first address data for reading data from the storage means.The interleaved data is individually interleaved based on different addresses..
[0081]
An interleaving method according to the present invention that achieves the above-described object is an interleaving method that is used to repeatedly decode a code generated by concatenating a plurality of element codes through an interleaving process. An address generation process for generating the second address data and sequential address data, and an interleaving process for rearranging the order of the input data based on the same replacement position information as the interleaver The first address data is used for writing data to a plurality of storage means for storing data, and is read from the address storage means corresponding to the second address data generated in the address generation step. Read random third address data from storage means In the case of performing a deinterleave process in which the order of input data is replaced and rearranged so that the array of information rearranged by the interleaver is restored, the third address data is stored in the storage means. And a switching step for switching the first address data to be used for reading data from the storage means, and holding a combination of bits for the input data of a plurality of symbols. Interleave as follows.
In such an interleaving method according to the present invention, the same address data is shared between the interleaving process and the deinterleaving process, and these address data are switched according to the interleaving process and the deinterleaving process.
[0082]
Also,The decoding device according to the present invention that achieves the above-described object obtains a probability of passing through an arbitrary state based on a received value that is a soft input, and uses this probability to convert a plurality of element codes through an interleaver. A decoding device corresponding to an element code for iteratively decoding a concatenated code and performing a soft output decoding by inputting a received value and prior probability information, and a soft output and / or an external at each time A soft output decoding means for generating information, and an interleaving process for inputting the external information generated by the soft output decoding means and replacing the order of the external information based on the same replacement position information as the interleaver, or Interleaving means for performing a deinterleaving process for rearranging by rearranging the order of the external information so as to restore the array of information rearranged by the interleaver The interleaving means includes a plurality of storage means for storing data, address generating means for generating sequential first address data and sequential second address data, and replacement position information identical to that of the interleaver. On the basis of this, when performing the interleaving process in which the order of the input data is replaced and rearranged, the first address data is used for writing the data to the storage means and the second address generated by the address generating means Random third address data read from the address storage means corresponding to the data is used for reading the data from the storage means, and input is performed so as to restore the information array rearranged by the interleaver. When performing deinterleave processing that rearranges and rearranges the order of data In, along with used to write data to the storage means the third address data, have a switching means for switching to use the first address data for reading data from the storage meansThe interleaving means individually interleaves the input data of a plurality of symbols based on different addresses..
[0083]
Further, the decoding device according to the present invention that achieves the above-described object obtains a probability of passing through an arbitrary state based on a received value that is a soft input, and uses this probability to convert a plurality of element codes into an interleaver. A decoding apparatus corresponding to an element code for repeatedly decoding a code generated by concatenating via a received value and prior probability information, performing soft output decoding, Or, a soft output decoding unit that generates external information, and an interleaving process that inputs the external information generated by the soft output decoding unit and replaces the order of the external information based on the same replacement position information as the interleaver. Or, interleaving that performs de-interleaving processing that replaces the order of external information so that the array of information rearranged by the interleaver is restored. A plurality of storage means for storing data, address generating means for generating sequential first address data, and sequential second address data, and the same replacement as the interleaver In the case of performing an interleaving process in which the order of the input data is changed and rearranged based on the position information, the first address data is used for writing data to the storage means and the first address data generated by the address generating means is used. The random third address data read from the address storage means corresponding to the address data of 2 is used for reading the data from the storage means so that the information array rearranged by the interleaver is restored. , Deinterleave processing to rearrange the order of the input data In this case, the third address data is used for writing data to the storage means, and has a switching means for switching to use the first address data for reading data from the storage means. Interleaving the input multiple symbol data so that each bit combination is retained.
In such a decoding apparatus according to the present invention, external information obtained by soft output decoding is input to the interleaving means, and the same address data is shared between the interleaving process and the deinterleaving process. These address data are switched according to the interleaving process and the deinterleaving process.
[0084]
MaIn addition, the decoding method according to the present invention that achieves the above-described object obtains a probability of passing through an arbitrary state based on a received value that is a soft input, and uses this probability to convert a plurality of element codes into a first element code. A decoding method corresponding to an element code for iteratively decoding codes generated concatenated through an interleaving process, which receives a received value and prior probability information, performs soft output decoding, and performs soft output decoding at each time. A soft output decoding step for generating output and / or external information, and external information generated in the soft output decoding step are input, and the order of the external information is determined based on the same replacement position information as in the first interleaving step. Interleaving processing to replace and rearrange, or deinterleaving to rearrange the order of the external information so that the array of information rearranged in the first interleaving step is restored. A second interleaving step for performing processing, and the second interleaving step is performed when an address generation step for generating sequential first address data and sequential second address data and an interleaving process are performed. The first address data is used for writing data to a plurality of storage means for storing data, and is read from the address storage means corresponding to the second address data generated in the address generation process. When the third address data is used for reading data from the storage means and deinterleaving is performed, the third address data is used for writing data to the storage means and the first address data is stored. Switching work to be used to read data from the means Yes the doorIn addition, the interleaved data is individually interleaved based on different addresses..
[0085]
In addition, the decoding method according to the present invention that achieves the above-mentioned object obtains a probability of passing through an arbitrary state based on a received value that is a soft input, and uses this probability to convert a plurality of element codes into a first element code. A decoding method corresponding to an element code for iteratively decoding codes generated concatenated through an interleaving process, which receives a received value and prior probability information, performs soft output decoding, and performs soft output decoding at each time. A soft output decoding step for generating output and / or external information, and external information generated in the soft output decoding step are input, and the order of the external information is determined based on the same replacement position information as in the first interleaving step. Interleaving processing for replacement and rearrangement, or deinterleaving for rearrangement of the order of external information so as to restore the original arrangement of information rearranged in the first interleaving step A second interleaving step for performing processing, and the second interleaving step is performed when an address generation step for generating sequential first address data and sequential second address data and an interleaving processing are performed. The first address data is used for writing data to a plurality of storage means for storing data, and is read from the address storage means corresponding to the second address data generated in the address generation process. When the third address data is used for reading data from the storage means and deinterleaving is performed, the third address data is used for writing data to the storage means and the first address data is stored. Switching to use to read data from the means And a degree, with respect to data of a plurality of input symbols, performs interleaving to hold a combination of each bit.
In the decoding method according to the present invention, the external information obtained by the soft output decoding is input so as to be used in the second interleaving process, and the same address data is obtained between the interleaving process and the deinterleaving process. The address data is shared and switched according to the interleaving process and the deinterleaving process.
[0086]
Further, the decoding device according to the present invention that achieves the above-described object obtains a probability of passing through an arbitrary state based on a received value that is a soft input, and uses this probability to convert a plurality of element codes into an interleaver. A decoding device that repeatedly decodes a code generated by concatenation via the decoding device, the decoding device comprising a plurality of concatenated element decoders, each of which includes a received value and prior probability information. Is input, and soft output decoding means for generating soft output and / or external information at each time, and external information generated by the soft output decoding means are input, and the same replacement as the interleaver Based on the position information, the interleaving process that replaces and rearranges the order of the external information, or the order of the external information so that the array of information rearranged by the interleaver is restored. Interleaving means for performing deinterleaving processing that replaces and rearranges, and the interleaving means generates a plurality of storage means for storing data, sequential first address data, and sequential second address data In the case of performing interleaving processing that replaces the order of the input data based on the same replacement position information as the interleaver and the address generation means that performs the writing, the first address data is written to the storage means. And random third address data read from the address storage means corresponding to the second address data generated by the address generation means is used for reading data from the storage means and arranged by an interleaver. Enter so that the replaced information array is restored. In the case of performing a deinterleave process in which the order of the data is changed and rearranged, the third address data is used for writing data to the storage means, and the first address data is used for reading data from the storage means. And switching means for switching to use.
[0087]
When the decoding apparatus according to the present invention performs iterative decoding, external information obtained by soft output decoding is input to interleaving means, and the same address data is obtained between the interleaving process and the deinterleaving process. These address data are switched according to the interleaving process and the deinterleaving process by the switching means.
[0088]
Furthermore, the decoding method according to the present invention that achieves the above-described object obtains a probability of passing through an arbitrary state based on a received value that is a soft input, and uses this probability to convert a plurality of element codes to a first element code. A decoding method that repeatedly decodes codes generated concatenated via an interleaving process, in which the plurality of element decoding processes are continuously performed. , Input the received value and prior probability information, perform soft output decoding, generate soft output and / or external information at each time, and input the external information generated in this soft output decoding step Then, based on the same replacement position information as in the first interleaving step, the order of the external information is replaced and rearranged, or rearranged in the first interleaving step. A second interleaving process for performing a deinterleaving process for rearranging and rearranging the order of the external information so as to restore the information arrangement, and the second interleaving process includes sequential first address data, The address generation step for generating sequential second address data and the interleaving process, the first address data is used for writing data to a plurality of storage means for storing data, and the address generation step In the case where the random third address data read from the address storage means corresponding to the second address data generated in the above is used for reading data from the storage means and the deinterleaving process is performed, 3 address data is used for writing data to the storage means. It is characterized by having a switching step of switching to use for reading data from the storage means of the address data.
[0089]
In the decoding method according to the present invention, when iterative decoding is performed, external information obtained by soft output decoding is input to be used in the second interleaving step, and the interleaving process and the deinterleaving process are performed. The same address data is shared between them, and these address data are switched according to the interleaving process and the deinterleaving process.
[0090]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, specific embodiments to which the present invention is applied will be described in detail with reference to the drawings.
[0091]
In this embodiment, as shown in FIG. 1, digital information is encoded by an
[0092]
In this data transmission / reception system, the
[0093]
On the other hand, the
[0094]
In particular, the
[0095]
In the following description, each element decoder in the
[0096]
The contents will be explained below along the table of contents.
[0097]
EyeNext
1. Outline of encoding apparatus and decoding apparatus for encoding / decoding by PCCC, SCCC, TTCM and SCTCM
1-1 Coding apparatus and decoding apparatus for performing coding / decoding by PCCC
1-2 Coding apparatus and decoding apparatus for performing coding / decoding by SCCC
2. Element decoder details
2-1 Overall configuration of element decoder
2-2 Details of soft output decoding circuit
2-3 Details of interleaver
3. Decoding device configured by connecting element decoders
4). Characteristics of the whole element decoder
4-1 Code likelihood switching function
4-2 Delay function of received value
4-3 Decoding received value selection function
4-4 Sharing of memory circuit for decoding and memory for delay
4-5 Frame head information delay function
4-6 Soft output decoding circuit or interleaver unit operation function
4-7 Delay mode switching function
4-8 Next stage information generation function
4-9 System verification function
5. Features of soft output decoding circuit
5-1 How to have code information
5-1-1 Calculation of input / output pattern of all branches on trellis
5-1-2 Numbering between the transition source state and the transition destination state
5-1-3 Numbering along the time axis and numbering along the reverse order of the time axis
5-1-4 Numbering based on the uniqueness of the entire trellis
5-2 Termination information input method
5-2-1 Input for the termination period of information for the number of input bits
5-2-2 Input of information indicating the termination state in one time slot
5-3 Erase position processing
5-4 Calculation and distribution of log likelihood Iγ
5-4-1 Calculation and distribution of log likelihood Iγ for all input / output patterns
5-4-2 Calculation and distribution of log likelihood Iγ for at least some input / output patterns
5-4-3 Normalization for every input / output pattern for every time log likelihood Iγ
5-4-4 Normalization to log likelihood Iγ for at least some input / output patterns
5-5 Calculation of log likelihoods Iα and Iβ
5-5-1 Calculation of Sum of Log Likelihood Iα and Log Likelihood Iγ
5-5-2 Preprocessing for parallel path
5-5-3 Common use of addition comparison selection circuit
5-5-4 Output of log likelihood Iγ for calculating log soft output Iλ
5-5-5 Calculation of Sum of Log Likelihood Iα and Log Likelihood Iγ for Parallel Path
5-5-6 Selection of log likelihood according to code structure
5-5-7 Normalization to log-likelihood Iα, Iβ
5-5-8 Calculation of correction term in log-sum correction
5-5-9 Generation of control signal for selection in log-sum operation
5-6 Calculation of logarithmic soft output Iλ
5-6-1 Cumulative addition of log-sum operation using enable signal
5-6-2 Cumulative addition of log-sum operation without enable signal
5-7 Normalization for external information
5-8 Hard decision of received value
6). Interleaver features
6-1 Multiple types of interleave functions
6-2 Common use of interleave memory circuit and delay memory circuit
6-3 Operation control of memory circuit by clock blocking signal
6-4 Deinterleave function
6-5 Generation of write address and read address
6-6 Delay function for interleave length
6-7 How to use address space
6-8 Data writing and reading by partial write function
6-9 Response to even and odd delays
6-10 I / O order switching function
7). Summary
[0098]
1. Outline of encoding apparatus and decoding apparatus for encoding / decoding by PCCC, SCCC, TTCM and SCTCM
First, in order to clarify the extension of the present invention, prior to the detailed description of the present invention, an
[0099]
1-1 Coding apparatus and decoding apparatus for performing coding / decoding by PCCC
First, an encoding apparatus 1 'that performs encoding by PCCC and a decoding apparatus 3' that performs decoding of codes by the encoding apparatus 1 'will be described.
[0100]
As shown in FIG. 2, the
[0101]
The
[0102]
When the
[0103]
The
[0104]
When the
[0105]
When such 1-bit input data D1 is input, such an
[0106]
On the other hand, as shown in FIG. 3, the
[0107]
The soft
[0108]
The interleaver 16 performs interleaving based on the same replacement position information as the
[0109]
The soft
[0110]
The
[0111]
The
[0112]
The
[0113]
Such a
[0114]
Note that an encoding apparatus that performs encoding using TTCM includes a modulator that performs modulation using, for example, an 8-phase shift keying (hereinafter referred to as 8PSK) modulation method at the final stage of the
[0115]
1-2 Coding apparatus and decoding apparatus for performing coding / decoding by SCCC
Next, an encoding device 1 '' that performs encoding by SCCC and a decoding device 3 '' that performs decoding of codes by the encoding device 1 '' will be described.
[0116]
As shown in FIG. 4, the
[0117]
When the 1-bit input data D21 is input, the
[0118]
The
[0119]
When the 2-bit interleaved data D24, D25 supplied from the
[0120]
Such an encoding apparatus 1 '' performs a convolution operation with a coding rate of "1/2" as an outer code encoding by the
[0121]
On the other hand, as shown in FIG. 5, the
[0122]
The soft
[0123]
The
[0124]
The soft
[0125]
The
[0126]
Such a
[0127]
Note that an encoding apparatus that performs encoding by SCTCM can be realized by including a modulator that performs modulation by, for example, the 8PSK modulation method at the final stage of the
[0128]
2. Element decoder details
The
[0129]
Now, the element decoder in the
[0130]
2-1 Overall configuration of element decoder
Here, the overall configuration of the element decoder will be described with reference to FIGS.
[0131]
The
[0132]
Here, details of the left half portion of the
[0133]
The
[0134]
Specifically, the
[0135]
In addition, the
[0136]
Further, the
[0137]
Furthermore, when writing the replacement destination address data referred to by the
[0138]
The
[0139]
On the other hand, the
[0140]
Such a
[0141]
The decoded received
[0142]
Specifically, the decoded reception
[0143]
That is, the
[0144]
Further, the
[0145]
Further, the
[0146]
Then, the
[0147]
As described above, the decoded reception
[0148]
The
[0149]
Specifically, the
[0150]
The
[0151]
The AND
[0152]
That is, the
[0153]
The soft
[0154]
At this time, the soft
[0155]
The soft
[0156]
The soft
[0157]
The details of the soft
[0158]
The
[0159]
The
[0160]
In addition, the
[0161]
Furthermore, as will be described later,
[0162]
Details of the
[0163]
Although not shown, the
[0164]
[0165]
[0166]
Here, the operation mode of the
[0167]
Specifically, the
[0168]
[0169]
[0170]
[0171]
[0172]
[0173]
[0174]
[0175]
[0176]
As will be described later, the
[0177]
Such an
[0178]
Hereinafter, the soft
[0179]
2-2 Details of soft output decoding circuit
First, the soft
[0180]
Here, details of the left half portion of the soft
[0181]
The code
[0182]
Here, a Bosencraft type convolutional encoder and a Massy type convolutional encoder will be described.
[0183]
A Bozencraft type convolutional encoder includes a delay element and a combinational circuit, and holds data in time series with respect to the delay element. As an example of a Bosencraft type convolutional encoder, for example, as shown in FIG.1, 2012, 201Three, 201FourAnd 16 exclusive OR circuits 2021, 2022, 202Three, 202Four, 202Five, 2026, 2027, 2028, 2029, 202Ten, 20211, 20212, 20213, 20214, 20215, 20216And 20 AND gates G0 [0], GB [0], GB [1], GB [2], GB [3], G1 [0], G1 [1], G1 [2], G1 [3] , G1 [4], G2 [0], G2 [1], G2 [2], G2 [3], G2 [4], G3 [0], G3 [1], G3 [2], G3 [3] , G3 [4], and performs a convolution operation with a coding rate of “1/4”. In this convolutional encoder, AND gates G0 [0], GB [0], GB [1], GB [2], GB [3], G1 [0], G1 [1], G1 [2] , G1 [3], G1 [4], G2 [0], G2 [1], G2 [2], G2 [3], G2 [4], G3 [0], G3 [1], G3 [2] , G3 [3], G3 [4] indicate whether or not to perform connection according to the code configuration, and not all AND gates are used. In other words, the convolutional encoder is configured so that these AND gates G0 [0], GB [0], GB [1], GB [2], GB [3], G1 [0], G1 [1], G1 [ 2], G1 [3], G1 [4], G2 [0], G2 [1], G2 [2], G2 [3], G2 [4], G3 [0], G3 [1], G3 [ 2], G3 [3], G3 [4], the combinational circuit is changed, and the code configuration is changed.Four= 16 ″ Bozencraft type convolution operation can be performed. A generation matrix G of this convolutional encoder is expressed by the following equation (27). In the following equation (27), GB (D) , G1 (D), G2 (D), and G3 (D) are represented by the following equations (28) to (31), respectively.
[0184]
[Expression 27]
[0185]
[Expression 28]
[0186]
[Expression 29]
[0187]
[30]
[0188]
[31]
[0189]
As an example of a Bosencraft type convolutional encoder, for example, as shown in FIG.1, 2032, 203ThreeAnd 12 exclusive OR circuits 2041, 2042, 204Three, 204Four, 204Five, 2046, 2047, 2048, 2049, 204Ten, 20411, 20412And 15 AND gates G1 [0], G1 [1], G1 [2], G1 [3], G1 [4], G2 [0], G2 [1], G2 [2], G2 [3] , G2 [4], G3 [0], G3 [1], G3 [2], G3 [3], G3 [4], and a coding rate of “2/3” Some of them perform convolution operations. Also in this convolutional encoder, AND gates G1 [0], G1 [1], G1 [2], G1 [3], G1 [4], G2 [0], G2 [1], G2 [2 ], G2 [3], G2 [4], G3 [0], G3 [1], G3 [2], G3 [3], G3 [4] indicate whether or not the connection is made according to the code configuration. Yes, not all AND gates are used, the combinational circuit changes, the code configuration changes, and the maximum number of states is “2”.Three= 8 ″ Bozencraft type convolution operation can be performed. A generator matrix G of this convolutional encoder is expressed by the following equation (32). In the following equation (32), G11 (D) , G21 (D), G31 (D), G12 (D), G22 (D), and G32 (D) are represented by the following equations (33) to (38), respectively.
[0190]
[Expression 32]
[0191]
[Expression 33]
[0192]
[Expression 34]
[0193]
[Expression 35]
[0194]
[Expression 36]
[0195]
[Expression 37]
[0196]
[Formula 38]
[0197]
On the other hand, a Massy-type convolutional encoder is composed of a delay element and a combinational circuit, and any one of input bits is output as it is as a system component, and data is time-sequential to the delay element. Is not retained. As an example of a Massy type convolutional encoder, for example, as shown in FIG.1, 2052, 205ThreeAnd four exclusive OR circuits 2061, 2062, 206Three, 206FourAnd 11 AND gates GB [0], GB [1], GB [2], G1 [0], G1 [1], G1 [2], G1 [3], G2 [0], G2 [1] , G2 [2], G2 [3], and performs a convolution operation with a coding rate of “2/3”. Also in this convolutional encoder, AND gates GB [0], GB [1], GB [2], G1 [0], G1 [1], G1 [2], G1 [3], G2 [0 ], G2 [1], G2 [2], G2 [3] indicate whether or not to connect according to the code configuration, and not all AND gates are used, the combinational circuit changes, The configuration changes and the maximum number of states is “2”.Three= 8 ″ Massy type convolution operation can be performed. A generator matrix G of this convolutional encoder is expressed by the following equation (39). In the following equation (39), GB (D), G1 (D) and G2 (D) are represented by the following equations (40) to (42), respectively.
[0198]
[39]
[0199]
[Formula 40]
[0200]
[Expression 41]
[0201]
[Expression 42]
[0202]
As an example of a Massy type convolutional encoder, for example, as shown in FIG.1, 2072And three exclusive OR circuits 2081, 2082, 208ThreeAnd 11 AND gates GB [0], GB [1], G1 [0], G1 [1], G1 [2], G2 [0], G2 [1], G2 [2], G3 [0] , G3 [1], G3 [2], and performs a convolution operation with a coding rate of “3/3”. Also in this convolutional encoder, AND gates GB [0], GB [1], G1 [0], G1 [1], G1 [2], G2 [0], G2 [1], G2 [2 ], G3 [0], G3 [1], and G3 [2] indicate whether or not to connect according to the code configuration, and not all AND gates are used, and the combinational circuit changes, The configuration changes and the maximum number of states is “2”.2= 4 ″ Massy type convolution operation can be performed. A generator matrix G of this convolutional encoder is expressed by the following equation (43). In the following equation (43), GB (D), G1 (D), G2 (D), and G3 (D) are represented by the following equations (44) to (47), respectively.
[0203]
[Equation 43]
[0204]
(44)
[0205]
[Equation 45]
[0206]
[Equation 46]
[0207]
[Equation 47]
[0208]
Here, in order to specifically describe the information generated by the code
[0209]
First, the Bosencraft type convolutional encoder shown in FIG. 14 includes 15 AND gates G0 [0], GB [2], GB [3], G1 [0], G1 [1], G1 [ 3], G1 [4], G2 [0], G2 [2], G2 [4], G3 [0], G3 [1], G3 [2], G3 [3], G3 [4] , Four
[0210]
A trellis in this convolutional encoder is described as shown in FIG. In the figure, the label attached to each branch indicates a branch number. The relationship between the state before and after the transition with respect to this branch number and the input data / output data is as shown in Table 1 below. Here, the state is the shift register 201.Four,
[0211]
[Table 1]
[0212]
As described above, the number of states in the convolutional encoder shown in FIG. 18 is 16, and the trellis has a structure in which two paths reach from each state to the state at the next time, and has a total of 32 branches. It will have.
[0213]
In the case of this convolutional encoder, the code
[0214]
The Bozencraft type convolutional encoder shown in FIG. 15 includes nine AND gates G1 [2], G1 [3], G2 [0], G2 [4], G3 [0], G3 [ 1], G3 [2], G3 [3], G3 [4] are connected, as shown in FIG.1, 2032, 203ThreeAnd six exclusive OR circuits 204Five, 2046, 2049, 204Ten, 20411, 20412Can be considered. The convolutional encoder is configured to input 2-bit input data i0, I1Is entered, these input data i0, I1Performs a convolution operation on the result and outputs the operation result as 3-bit output data O0, O1, O2Output as.
[0215]
The trellis in this convolutional encoder is described as shown in FIG. In the figure, the label attached to each branch indicates a branch number. The relationship between the state before and after the transition with respect to this branch number and the input data / output data is as shown in Table 2 below. Here, the state is the shift register 203.Three, Shift register 2032And shift register 2031The state numbers of “000”, “001”, “010”, “011”, “100”, “101”, “110”, and “111” are set to “0”, respectively. ”,“ 1 ”,“ 2 ”,“ 3 ”,“ 4 ”,“ 5 ”,“ 6 ”,“ 7 ”. Input data / output data is i1, I0/ O2, O1, O0It is.
[0216]
[Table 2]
[0217]
As described above, the number of states in the convolutional encoder shown in FIG. 20 is 8, and the trellis has a structure in which four paths reach from each state to the state at the next time, and has a total of 32 branches. It becomes.
[0218]
In the case of this convolutional coder, the code
[0219]
Further, as the Massy type convolutional encoder shown in FIG. 16, when three AND gates GB [2], G1 [2], G2 [1] are connected, as shown in FIG. 2051, 2052, 205ThreeAnd two exclusive OR circuits 2062, 206ThreeCan be considered. The convolutional encoder is configured to input 2-bit input data i0, I1Is entered, these input data i0, I1Performs a recursive systematic convolution operation on the result and outputs the result as 3-bit output data O0, O1, O2Output as.
[0220]
The trellis in this convolutional encoder is described as shown in FIG. In the figure, the label attached to each branch indicates a branch number. The relationship between the state before and after the transition with respect to the branch number and the input data / output data is as shown in Table 3 below. Here, the state is the shift register 205.1, Shift register 2052And shift register 205ThreeThe state numbers of “000”, “001”, “010”, “011”, “100”, “101”, “110”, and “111” are set to “0”, respectively. ”,“ 1 ”,“ 2 ”,“ 3 ”,“ 4 ”,“ 5 ”,“ 6 ”,“ 7 ”. Input data / output data is i1, I0/ O2, O1, O0It is.
[0221]
[Table 3]
[0222]
In this way, the number of states in the convolutional encoder shown in FIG. 22 is 8, and the trellis has a structure in which four paths reach from each state to the state at the next time, and has a total of 32 branches. It becomes.
[0223]
In the case of this convolutional encoder, the code
[0224]
Furthermore, the Massy type convolutional encoder shown in FIG. 17 includes six AND gates GB [1], G1 [0], G1 [1], G1 [2], G2 [0], G3 [ 0] is connected, as shown in FIG.1, 2072And three exclusive OR circuits 2081, 2082, 208ThreeCan be considered. This convolutional encoder is configured to input 3-bit input data i0, I1, I2Is entered, these input data i0, I1, I2Performs a recursive systematic convolution operation on the result and outputs the result as 3-bit output data O0, O1, O2Output as.
[0225]
The trellis in this convolutional encoder is described as shown in FIG. In the figure, the label attached to each branch indicates a branch number. The relationship between the state before and after the transition with respect to the branch number and the input data / output data is as shown in Table 4 below. Here, the state is the shift register 207.1And shift register 2072The state numbers of “00”, “01”, “10”, and “11” are represented as “0”, “1”, “2”, and “3”, respectively. Yes. Input data / output data is i2, I1, I0/ O2, O1, O0It is.
[0226]
[Table 4]
[0227]
In this way, the number of states in the convolutional encoder shown in FIG. 24 is 4, and the trellis has a structure in which four parallel paths reach from each state to the state at the next time, and has 32 branches in total. It will be a thing.
[0228]
In the case of this convolutional coder, the code
[0229]
In this way, the code
[0230]
The internal erasure
[0231]
Specifically, the internal erasure
[0232]
OR
[0233]
As described above, the internal erase
[0234]
The termination
[0235]
The termination
[0236]
Register 2121Holds the termination time information TTNP supplied from the outside for only one clock, and the held termination time information TTNP is stored in the register 212.2And selector 213ThreeTo supply.
[0237]
Register 2122Register 2121Holds the termination time information TTNP supplied from 1 clock, and the held termination time information TTNP is stored in the register 212.ThreeAnd selector 213FourTo supply.
[0238]
Register 212ThreeRegister 2122Holds the end time information TTNP supplied from 1 clock, and the held end time information TTNP is stored in the selector 213.FiveTo supply.
[0239]
Register 212FourHolds the termination state information TTNS supplied from the outside for only one clock, and the held termination state information TTNS is stored in the register 212.FiveAnd selector 2136To supply.
[0240]
Register 212FiveRegister 212FourHolds the termination state information TTNS supplied from 1 clock, and the held termination state information TTNS is stored in the register 212.6And selector 2137To supply.
[0241]
Register 2126Register 212FiveHolds the termination state information TTNS supplied from 1 clock, and the held termination state information TTNS is stored in the selector 213.8To supply.
[0242]
Selector 2131Is based on the input bit number information IN, for example, information indicating that the memory number of the element encoder in the
[0243]
Selector 2132Is based on the input bit number information IN, for example, information indicating that the memory number of the element encoder in the
[0244]
Selector 213ThreeThe selector 2131Based on the data selected by1Either end time information TTNP supplied from, or data having a value of “1” is selected. Specifically, the selector 213ThreeWhen the number of memories of the element encoder in the
[0245]
Selector 213FourThe selector 2132Based on the data selected by2Either end time information TTNP supplied from, or data having a value of “1” is selected. Specifically, the selector 213FourWhen the number of memories of the element encoder in the
[0246]
Selector 213FiveIs based on the memory number information MN.ThreeEither end time information TTNP supplied from, or data having a value of “1” is selected. Specifically, the selector 213FiveWhen the number of memories of the element encoder in the
[0247]
Selector 2136Is based on the memory number information MN.FourOne of the termination state information TTNS and the data whose value is “0” supplied from the above is selected. Specifically, the selector 2136When the number of memories of the element encoder in the
[0248]
Selector 2137Is based on the memory number information MN.FiveOne of the termination state information TTNS and the data whose value is “0” supplied from the above is selected. Specifically, the selector 2137When the number of memories of the element encoder in the
[0249]
Selector 2138Is based on the memory number information MN.6One of the termination state information TTNS and the data whose value is “0” supplied from the above is selected. Specifically, the selector 2138When the number of memories of the element encoder in the
[0250]
Selector 2139Is the termination state information TTNS supplied from the outside based on the input bit number information IN, and the selector 213.6, 2137, 2138One of the data supplied from is selected. Selector 2139Supplies the selected data to the received data and delay
[0251]
The AND
[0252]
Such a termination
[0253]
The received value and prior probability
[0254]
Specifically, the reception value and prior probability
[0255]
Selector 2151Selects one of the decoded received value TSR0 and the external information or interleave data TEXT0 based on the received value format information CRTY. Specifically, the selector 2151If the received value format information CRTY indicates external information, external information or interleave data TEXT0 is selected. Selector 2151The selector 215 selects the selected data.8To supply.
[0256]
Selector 2152Selects one of the decoded received value TSR1 and the external information or interleaved data TEXT1 based on the received value format information CRTY. Specifically, the selector 2152If the received value format information CRTY indicates external information, external information or interleave data TEXT1 is selected. Selector 2152The selector 215 selects the selected data.9To supply.
[0257]
Selector 215ThreeSelects one of the decoded received value TSR2 and the external information or interleaved data TEXT2 based on the received value format information CRTY. Specifically, the selector 215ThreeIf the received value format information CRTY indicates external information, external information or interleave data TEXT2 is selected. Selector 215ThreeThe selector 215 selects the selected data.TenTo supply.
[0258]
Selector 215FourSelects one of external information or interleave data TEXT0 and prior probability information having a value of “0” based on the received value format information CRTY. Specifically, the selector 215FourIf the received value format information CRTY indicates external information, prior probability information having a value of “0” is selected. Selector 215FourThe selector 215 selects the selected data.12To supply.
[0259]
Selector 215FiveSelects one of the external information or interleave data TEXT1 and the prior probability information whose value is “0” based on the received value format information CRTY. Specifically, the selector 215FiveIf the received value format information CRTY indicates external information, prior probability information having a value of “0” is selected. Selector 215FiveThe selector 215 selects the selected data.13To supply.
[0260]
Selector 2156Selects one of the external information or interleave data TEXT2 and the prior probability information whose value is “0” based on the received value format information CRTY. Specifically, the selector 2156If the received value format information CRTY indicates external information, prior probability information having a value of “0” is selected. Selector 2156The selector 215 selects the selected data.14To supply.
[0261]
Selector 2157Is information indicating that, for example, the first symbol of the output bits output from the element encoder in the
[0262]
Selector 2158Based on the internal erase position information IERS, the selector 21511 is selected from the data supplied from, and the information whose value is “0”. Specifically, the selector 2158Is “0” when the internal erasure position information IERS indicates that the first symbol of the output bits output from the element encoder in the
[0263]
Selector 2159The selector 2157Based on the data supplied from the selector 21521 is selected from the data supplied from, and the information whose value is “0”. Specifically, the selector 2159The selector 2157In the case where the data supplied from this indicates that the second symbol of the output bits output from the element encoder in the
[0264]
Selector 215TenBased on the internal erase position information IERS, the selector 215Three1 is selected from the data supplied from, and the information whose value is “0”. Specifically, the selector 215TenIs “0” when the internal erasure position information IERS indicates that the third symbol of the output bits output from the element encoder in the
[0265]
Selector 21511Selects one of the decoded reception value TSR3 and the information whose value is “0” based on the internal erasure position information IERS. Specifically, the selector 21511Is “0” when the internal erasure position information IERS indicates that the fourth symbol of the output bits output from the element encoder in the
[0266]
Selector 21512The selector 215 is based on the prior probability information erasure information TEAP.Four1 is selected from the data supplied from, and the information whose value is “0”. Specifically, the selector 21512If the prior probability information erasure information TEAP indicates that it has been punctured, information having a value of “0” is selected. Selector 21512The selector 215 selects the selected data.15, 21516To supply.
[0267]
Selector 21513The selector 215 is based on the prior probability information erasure information TEAP.Five1 is selected from the data supplied from, and the information whose value is “0”. Specifically, the selector 21513If the prior probability information erasure information TEAP indicates that it has been punctured, information having a value of “0” is selected. Selector 21513The selector 215 selects the selected data.16To supply.
[0268]
Selector 21514The selector 215 is based on the prior probability information erasure information TEAP.61 is selected from the data supplied from, and the information whose value is “0”. Specifically, the selector 21514If the prior probability information erasure information TEAP indicates that it has been punctured, information having a value of “0” is selected. Selector 21514The data selected by the8, 2159, 215Ten, 21515, 21516Are bundled together with the data supplied from, and supplied to the received data and delay
[0269]
Selector 21515Is selected based on the input bit number information IN.11And data supplied from the selector 21512One of the data supplied from is selected. Specifically, the selector 21515Is a case where the input bit number information IN indicates that the encoding rate of the element encoder in the
[0270]
Selector 21516Is selected based on the input bit number information IN.12And data supplied from the selector 21513One of the data supplied from is selected. Specifically, the selector 21516Is a case where the input bit number information IN indicates that the encoding rate of the element encoder in the
[0271]
Such a received value and prior probability
[0272]
Although not shown, the reception data and delay
[0273]
The received data and delay
[0274]
The reception data and delay
[0275]
The
[0276]
Further, the received data and delay
[0277]
The
[0278]
[Formula 48]
[0279]
In the following, although discussion will be made in the case where the
[0280]
At this time, the
[0281]
Such an
[0282]
Iγ calculation circuit 220 for Iβ01Includes an information / code
[0283]
As will be described later, the information / code
[0284]
At this time, the information / code
[0285]
The information / code
[0286]
The information / code
[0287]
As will be described later, the
[0288]
Such Iβ0 Iγ calculating circuit 2201Calculates the log likelihood Iγ used to calculate the log likelihood Iβ0 and supplies it to the
[0289]
Further, an Iγ calculating circuit 220 for Iβ12Is an Iγ calculating circuit 220 for Iβ0.1The received data DB1 is input instead of the received data DB0 input to the Iβ0 Iγ calculating circuit 220.1The same processing is performed. Iγ calculating circuit 220 for Iβ12Calculates the log likelihood Iγ used to calculate the log likelihood Iβ1 and supplies it to the
[0290]
Similarly, Iγ calculation circuit 220 for IαThreeIs an Iγ calculating circuit 220 for Iβ0.1The reception data DA is input instead of the reception data DB0 input to the Iβ calculation circuit 220 for Iβ0.1The same processing is performed. Iγ calculation circuit 220 for IαThreeCalculates the log likelihood Iγ used for calculating the log likelihood Iα and supplies it to the
[0291]
Such an
[0292]
As will be described later, the
[0293]
Further, as will be described later, the
[0294]
The
[0295]
Specifically, as shown in FIG. 30, for example, the
[0296]
The branch input / output
[0297]
Iγ distribution circuit 224 for Iβ01When the log likelihood GB0 is input, distribution according to the code configuration is performed based on the branch input / output information BI. Iγ distribution circuit 224 for Iβ01The logarithmic likelihood PGB0 obtained by distributing the parallel path processing circuit 225 for Iβ01To supply.
[0298]
Iγ distribution circuit 224 for Iβ12When the log likelihood GB1 is input, distribution according to the code configuration is performed based on the branch input / output information BI. Iγ distribution circuit 224 for Iβ12The logarithmic likelihood PGB1 obtained by distributing the parallel path processing circuit 225 for Iβ12To supply.
[0299]
Iγ distribution circuit 224 for IαThreeWhen the log likelihood GA is input, distribution according to the code configuration is performed based on the branch input / output information BIO. Iγ distribution circuit 224 for IαThreeThe logarithmic likelihood PGA obtained by distributing the Iα parallel path processing circuit 225ThreeTo supply. Also, an Iα distribution circuit 224 for IαThreeSupplies the log likelihood PGA obtained by the distribution to the
[0300]
Parallel path processing circuit 225 for Iβ01As will be described later, when a log likelihood PGB0 is input, if this log likelihood PGB0 corresponds to a parallel path, the log likelihood PGB0 is bundled to obtain a log likelihood DGB0, that is, a log likelihood. A log likelihood Iγ used to calculate the degree Iβ0 is output. The parallel path processing circuit 225 for Iβ01If the input log likelihood PGB0 does not correspond to the parallel path, the log likelihood PGB0 is directly output as the log likelihood DGB0. At this time, the parallel path processing circuit 225 for Iβ01Selects the log likelihood DGB0 to be output based on the input bit number information IN.
[0301]
Specifically, the parallel path processing circuit 225 for Iβ0.1As shown in FIG. 31, the parallel path log-sum arithmetic circuit 226 has the maximum number of states of the code to be decoded.nAnd a
[0302]
Log-sum arithmetic circuit 226 for parallel path1As shown in FIG. 32, the two differentiators 2291, 2292And three
[0303]
The comparison and absolute
[0304]
Differentiator 2291Is the difference between the log likelihood PG00 which is two log likelihoods Iγ and the log likelihood PG01 among the log likelihood PGB0 which is a set of 32 log likelihoods Iγ. Strictly speaking, the differentiator 2291If the log likelihoods PG00 and PG01 are each composed of, for example, 9 bits, the most significant bit of the lower 6 bits of the log likelihood PG00 is added with “1”, and the log likelihood PG01 A difference is obtained from the data obtained by adding “0” to the most significant bit of the lower 6 bits of data. Differentiator 2291Supplies the calculated
[0305]
Differentiator 2292Is the difference between the log likelihood PG01 and the log likelihood PG00. Strictly speaking, the differentiator 2292If the log likelihoods PG00 and PG01 are each composed of, for example, 9 bits, the most significant bit of the lower 6 bits of the log likelihood PG01 is appended with “1”, and the log likelihood PG00 A difference is obtained from the data obtained by adding “0” to the most significant bit of the lower 6 bits of data. Differentiator 2292Supplies the calculated
[0306]
The
[0307]
The
[0308]
The selection control
[0309]
Such a comparison and absolute
[0310]
Based on the control signal SL1 supplied from the selection control
[0311]
The lookup table 234 stores the value of the correction term in the log-sum correction as a table. The lookup table 234 reads the value of the correction term corresponding to the value of the data DM supplied from the
[0312]
The
[0313]
Such a parallel path log-sum operation circuit 2261, Two log likelihoods PG00 and PG01 corresponding to the parallel path are bundled and supplied to the
[0314]
Log-sum arithmetic circuit 226 for parallel path2Is a parallel path log-sum operation circuit 226.1The two log likelihoods PG02 and PG03 corresponding to the parallel path are bundled and supplied to the
[0315]
In addition, the parallel path log-sum operation circuit 226ThreeIs a parallel path log-sum operation circuit 226.1The two log likelihoods PG04 and PG05 corresponding to the parallel path are bundled and supplied to the
[0316]
Furthermore, the parallel path log-sum operation circuit 22616Is a parallel path log-sum operation circuit 226.1The two log likelihoods PG030 and PG031 corresponding to the parallel path are bundled and supplied to the
[0317]
Thus, a plurality of parallel path log-sum operation circuits 226 are provided.nEach bundle two log likelihoods corresponding to the parallel path. Each parallel path log-sum operation circuit 226nThe log likelihoods PPG00, PPG01, PPG02,..., PPG15 obtained by bundling are supplied to the
[0318]
Parallel path processing circuit 225 for Iβ01The
[0319]
Such a parallel path processing circuit 225 for Iβ01When the log likelihood PGB0 is input and the log likelihood PGB0 corresponds to the parallel path, the
[0320]
Parallel path processing circuit 225 for Iβ12Is a parallel path processing circuit 225 for Iβ0.1However, when the log likelihood PGB1 is input and the log likelihood PGB1 corresponds to the parallel path, the log likelihood PGB1 is bundled. The log likelihood DGB1, that is, the log likelihood Iβ1 used for calculating the log likelihood Iβ1 is supplied to the
[0321]
Further, the parallel path processing circuit 225 for IαThreeAlso, the parallel path processing circuit 225 for Iβ01However, when the log likelihood PGA is input, if the log likelihood PGA corresponds to the parallel path, the log likelihood PGA is bundled. The log likelihood DGA, that is, the log likelihood Iα used to calculate the log likelihood Iα is supplied to the
[0322]
Such an
[0323]
The
[0324]
[Formula 49]
[0325]
[Equation 50]
[0326]
[Formula 51]
[0327]
At this time, the
[0328]
Specifically, as illustrated in FIG. 33, for example, the
[0329]
The control
[0330]
The addition
[0331]
Specifically, as shown in FIG. 34, the addition / comparison /
[0332]
These log-
[0333]
Specifically, the log-
[0334]
Adder 2461Inputs the log likelihood DGA00 of the log likelihood DGA, and inputs the log likelihood AL corresponding to the sign among the log likelihoods AL calculated one time ago as the log likelihood A0. Logarithmic likelihoods DGA00 and A0 are added. Adder 2461Supplies the correction
[0335]
Adder 2462Inputs the log likelihood DGA01 of the log likelihood DGA and inputs the log likelihood AL corresponding to the sign of the log likelihood AL calculated one time ago as the log likelihood A1. Logarithmic likelihoods DGA01 and A1 are added. Adder 2462Supplies the data AM1 indicating Iα + Iγ obtained by the addition to the correction
[0336]
The correction
[0337]
Differentiator 2511Is the adder 2461And the adder 2462The difference from the data AM1 supplied from is taken. Strictly speaking, the differentiator 2511If the data AM0 and AM1 are each composed of, for example, 12 bits, the most significant bit of the lower 6 bits of the data AM0 is appended with “1” and the lower 6 bits of the data AM1 The difference from the one with “0” added to the most significant bit is taken. Differentiator 2511Uses the calculated difference value DA1 as the lookup table 252.1And supplied to the selection control
[0338]
Differentiator 2512Takes the difference between the data AM1 and the data AM0. Strictly speaking, the differentiator 2512If the data AM0 and AM1 are each composed of, for example, 12 bits, the most significant bit of the lower 6 bits of the data AM1 with “1” added and the lower 6 bits of the data AM0 The difference from the one with “0” added to the most significant bit is taken. Differentiator 2512Uses the calculated difference value DA0 as the lookup table 252.2And supplied to the selection control
[0339]
Look-up table 25212522Each stores the value of the correction term in the log-sum correction as a table. Look-up table 2521Is the differentiator 2511The value of the correction term corresponding to the value of the difference value DA1 supplied from is read from the table and supplied to the
[0340]
The selection control
[0341]
The
[0342]
The
[0343]
Such a correction
[0344]
Based on the control signal SEL supplied from the selection control
[0345]
The
[0346]
The
[0347]
Such a log-
[0348]
Log-
[0349]
In addition, the log-
[0350]
Furthermore, the log-
[0351]
Such an addition comparison /
[0352]
The addition
[0353]
Specifically, as shown in FIG. 36, the addition / comparison /
[0354]
These log-sum operation circuits 2561, ..., 2568Includes a log-
[0355]
Specifically, the log-sum operation circuit 2561Are the five adders 25712572257Three257Four271 and six correction term calculation circuits 258 for calculating correction term values in the log-sum correction.12582258Three258Four258Five258611
[0356]
Adder 2571Inputs the log likelihood DGA00 of the log likelihood DGA, and inputs the log likelihood AL corresponding to the sign among the log likelihoods AL calculated one time ago as the log likelihood A0. Logarithmic likelihoods DGA00 and A0 are added. Adder 2571The correction term calculation circuit 258 uses the data AM0 indicating the sum of the log likelihood Iα and the log likelihood Iγ obtained by the addition.1258Three258FiveAnd supplied to the
[0357]
Adder 2572Inputs the log likelihood DGA01 of the log likelihood DGA and inputs the log likelihood AL corresponding to the sign of the log likelihood AL calculated one time ago as the log likelihood A1. Logarithmic likelihoods DGA01 and A1 are added. Adder 2572The correction term calculation circuit 258 uses the data AM1 indicating Iα + Iγ obtained by the addition.1258Four2586And supplied to the
[0358]
Adder 257ThreeInputs the log likelihood DGA02 of the log likelihood DGA, and inputs the log likelihood AL corresponding to the sign of the log likelihood AL calculated one time ago as the log likelihood A2. Log likelihood DGA02 and A2 are added. Adder 257ThreeThe correction term calculation circuit 258 uses the data AM2 indicating Iα + Iγ obtained by the addition.2258Three258FourAnd to the
[0359]
Adder 257FourInputs the log likelihood DGA03 of the log likelihood DGA and inputs the log likelihood AL corresponding to the sign of the log likelihood AL calculated one time ago as the log likelihood A3. Logarithmic likelihoods DGA03 and A3 are added. Adder 257FourThe correction term calculation circuit 258 uses the data AM3 indicating Iα + Iγ obtained by the addition.2258Five2586And to the
[0360]
Correction term calculation circuit 2581Has the same configuration as that of the correction
[0361]
Correction term calculation circuit 2582Has the same configuration as that of the correction
[0362]
Correction term calculation circuit 258ThreeHas the same configuration as that of the correction
[0363]
Correction term calculation circuit 258FourHas the same configuration as that of the correction
[0364]
Correction term calculation circuit 258FiveHas the same configuration as that of the correction
[0365]
Correction term calculation circuit 2586Has the same configuration as that of the correction
[0366]
The
[0367]
The
[0368]
The
[0369]
The
[0370]
The
[0371]
The
[0372]
The
[0373]
The
[0374]
The
[0375]
The
[0376]
The selector 269 selects one of the data DS2 and DS3 based on the control signal SEL9 supplied from the selection control
[0377]
The selection control
[0378]
The
[0379]
Similar to the
[0380]
Such a log-sum operation circuit 2561Obtains and outputs the log likelihood AL00 and bundles the data AM0, AM1, AM2 and AM3 and outputs it as data AG00. That is, the log-sum operation circuit 2561In order to use the obtained log likelihood AL00 for calculation of the log likelihood Iα at the next time, a predetermined log-sum operation circuit 256 is used.1, ..., 2568And data AG00 indicating the sum Iα + Iγ of the log likelihood Iα and the log likelihood Iγ obtained in the process of calculating the log likelihood Iα is output.
[0381]
At this time, the log-sum operation circuit 2561Is selected from the data AM0, AM1, AM2, and AM3 indicating the likelihood corresponding to the four paths obtained by bundling four paths that reach each state or eight paths depending on the code. By comparing the likelihoods of all combinations of data corresponding to the two paths, data corresponding to at least two or more paths having a high likelihood among these data AM0, AM1, AM2, and AM3 is obtained. The data corresponding to the maximum likelihood path, which is the path with the highest likelihood, is selected from the data corresponding to these paths. More specifically, the log-sum operation circuit 2561Compares the values of the data AM0, the data AM1, the data AM2, and the data AM3 with respect to the data AM0, AM1, AM2, AM3 by performing an operation similar to a winning game. Data corresponding to the likelihood path is selected.
[0382]
In addition, log-sum operation circuit 2568Is a log-sum operation circuit 256.1The detailed description is omitted, but the log likelihoods DGA28, DGA29, DGA30, and DGA31 of the log likelihood DGA and the log likelihood AL of the log likelihood AL calculated one time ago are encoded. The corresponding logarithmic likelihoods A0, A1, A2, A3 are input as logarithmic likelihoods DGA28, DGA29, DGA30, DGA31, A0, A1, A2, A3, and the log likelihood Iα is calculated. As a log likelihood AL07, a predetermined log-sum operation circuit 256 is calculated.1, ..., 2568And data AG07 indicating the sum Iα + Iγ of the log likelihood Iα and the log likelihood Iγ are output.
[0383]
Such an addition / comparison /
[0384]
As will be described later, the Iα +
[0385]
Based on the memory number information MN, the
[0386]
The
[0387]
The
[0388]
Iα + Iγ calculation cell circuit 2761Is an eight adder 2771, 2772, 277Three, 277Four, 277Five, 2776, 2777, 2778Have
[0389]
Adder 2771The logarithmic likelihood DGAB supplied from the
[0390]
Adder 2772The logarithmic likelihood DGAB supplied from the
[0390]
Adder 277ThreeOf the log likelihoods DGAB supplied from the
[0392]
Adder 277FourOf the log likelihoods DGAB supplied from the
[0393]
Adder 277FiveOf the log likelihoods DGAB supplied from the
[0394]
Adder 2776Of the log likelihoods DGAB supplied from the
[0395]
Adder 2777Of the log likelihoods DGAB supplied from the
[0396]
Adder 2778Of the log likelihoods DGAB supplied from the
[0397]
Such an Iα + Iγ calculation cell circuit 2761Is obtained by adding the log likelihood DGAB indicating the log likelihood Iγ obtained in a state in which the parallel paths are not bundled by the
[0398]
Also, Iα + Iγ calculation cell circuit 2762Is an Iα + Iγ calculation cell circuit 276.1The logarithmic likelihood DGAB includes a predetermined logarithmic likelihood DGAB08, DGAB09, DGAB10, DGAB11, DGAB12, DGAB13, DGAB14, DGAB15, and the like. When the logarithmic soft output Iλ is obtained when the parallel paths are bundled using the predetermined log likelihood AL00 corresponding to the sign of the log likelihood AL and the log likelihoods AL01S, AL02S, AL03S. The sum of the log likelihood Iα and the log likelihood Iγ to be used is calculated. Iα + Iγ calculation cell circuit 2762Outputs the calculated data as data AG01.
[0399]
Further, the Iα + Iγ calculation cell circuit 276ThreeIs an Iα + Iγ calculation cell circuit 276.1The logarithmic likelihood DGAB includes a predetermined logarithmic likelihood DGAB16, DGAB17, DGAB18, DGAB19, DGAB20, DGAB21, DGAB22, DGAB23 and the like. When the logarithmic soft output Iλ is obtained when the parallel paths are bundled using the predetermined log likelihood AL00 corresponding to the sign of the log likelihood AL and the log likelihoods AL01S, AL02S, AL03S. The sum of the log likelihood Iα and the log likelihood Iγ to be used is calculated. Iα + Iγ calculation cell circuit 276ThreeOutputs the calculated data as data AG02.
[0400]
Furthermore, the Iα + Iγ calculation cell circuit 276FourIs an Iα + Iγ calculation cell circuit 276.1The logarithmic likelihood DGAB includes a predetermined logarithmic likelihood DGAB24, DGAB25, DGAB26, DGAB27, DGAB28, DGAB29, DGAB30, and DGAB31. When the logarithmic soft output Iλ is obtained when the parallel paths are bundled using the predetermined log likelihood AL00 corresponding to the sign of the log likelihood AL and the log likelihoods AL01S, AL02S, AL03S. The sum of the log likelihood Iα and the log likelihood Iγ to be used is calculated. Iα + Iγ calculation cell circuit 276FourOutputs the calculated data as data AG03.
[0401]
Such an Iα +
[0402]
The
[0403]
Such an
[0404]
The
[0405]
[Formula 52]
[0406]
[Equation 53]
[0407]
[Formula 54]
[0408]
At this time, the
[0409]
Specifically, as shown in FIG. 38, for example, the
[0410]
The control
[0411]
The Iβ0 addition comparison /
[0412]
The addition
[0413]
Specifically, as shown in FIG. 39, the addition comparison /
[0414]
These log-sum operation circuits 2861, 2862, 286Three, 28616Are supplied with the log likelihood Iγ of the branch corresponding to the output pattern on the trellis and the log likelihood Iβ0 one time before in each state based on the transition on the trellis. That is, the log-sum operation circuit 2861, 2862, 286Three, 28616Are respectively equivalent to the log likelihood Iγ of the branch corresponding to the output pattern on the trellis in the log likelihood DGB0 and the log likelihood in each state among the calculated log likelihood BTT one time before. That corresponds to the degree Iβ0 is supplied. The log-sum operation circuit 2861, 2862, 286Three, 28616Respectively determine the log likelihood Iβ in each state at the next time as the log likelihood BTT. Each log-sum operation circuit 2861, 2862, 286Three, 28616Distribution of the log likelihood BTT with respect to is different depending on the code configuration, and here is determined by a selector or the like (not shown) based on the memory number information MN. The distribution of the log likelihood BTT will be further described later.
[0415]
Specifically, the log-sum operation circuit 2861The three adders 28712872290, a correction
[0416]
Adder 2871Inputs the log likelihood DGB00 of the log likelihood DGB0 and inputs the log likelihood BTT calculated one time ago as the log likelihood B0 corresponding to the sign, Log likelihood DGB00 and B0 are added. Adder 2871Supplies the correction
[0417]
Adder 2872Inputs the log likelihood DGB01 of the log likelihood DGB0, and inputs the log likelihood BTT calculated one time ago corresponding to the sign as the log likelihood B1, Logarithmic likelihoods DGB01 and B1 are added. Adder 2872Supplies data AM1 indicating Iβ0 + Iγ obtained by the addition to the correction
[0418]
The correction
[0419]
Based on the control signal SEL supplied from the correction
[0420]
The adder 290 adds the data SAM supplied from the
[0421]
Similar to the
[0422]
Such a log-sum operation circuit 2861Finds and outputs log likelihood BT00. That is, the log-sum operation circuit 2861In order to use the obtained log likelihood BT00 for calculation of the log likelihood Iβ0 at the next time, a predetermined log-sum operation circuit 286 is used.1, 2862, 286Three, 28616And output to the outside.
[0423]
Log-sum operation circuit 2862Is the log-sum operation circuit 286.1The detailed description is omitted, but the log likelihoods DGB02 and DGB03 of the log likelihood DGB0 and the log likelihood BTT calculated one time earlier correspond to the code. Are input as log likelihoods B0 and B1, and logarithmic likelihood Iβ0 is calculated using these log likelihoods DGB02, DGB03, B0, and B1, and a predetermined log-sum operation circuit is used as log likelihood BT01. 2861, 2862, 286Three, 28616And output to the outside.
[0424]
In addition, the log-sum operation circuit 286ThreeLog-sum operation circuit 2861Detailed description is omitted, but the log likelihoods DGB04 and DGB05 in the log likelihood DGB0 and the log likelihood BTT calculated one time ago correspond to the code. Are input as log likelihoods B0 and B1, and log likelihood Iβ0 is calculated using these log likelihoods DGB04, DGB05, B0, and B1, and a predetermined log-sum operation circuit is used as log likelihood BT02. 2861, 2862, 286Three, 28616And output to the outside.
[0425]
Further, the log-sum operation circuit 28616Log-sum operation circuit 2861However, detailed description is omitted, but the log likelihoods DGB30 and DGB31 of the log likelihood DGB0 and the log likelihood BTT calculated one time ago correspond to the code. Are input as log likelihoods B0 and B1, and logarithmic likelihood Iβ0 is calculated using these log likelihoods DGB30, DGB31, B0 and B1, and a predetermined log-sum operation circuit is used as log likelihood BT15. 2861, 2862, 286Three, 28616And output to the outside.
[0426]
Such an addition
[0427]
The addition
[0428]
Specifically, as shown in FIG. 40, the addition comparison /
[0429]
These log-sum operation circuits 2921, ..., 2928Includes a log-sum operation circuit 286 in the addition
[0430]
Specifically, the log-sum operation circuit 2921Is the five adders 29312932293Three293Four, 307 and six correction term calculation circuits 294 for calculating the value of the correction term in the log-sum correction.1, 2942, 294Three, 294Four, 294Five, 294611
[0431]
Adder 2931Inputs the log likelihood DGB00 of the log likelihood DGB0, and inputs the log likelihood BTF calculated one time before as the log likelihood B0 corresponding to the sign, Log likelihood DGB00 and B0 are added. Adder 2931The correction term calculation circuit 294 uses the data AM0 indicating the sum of the log likelihood Iβ0 and the log likelihood Iγ obtained by the addition.1, 294Three, 294FiveAnd supplied to the
[0432]
Adder 2932Inputs the log likelihood DGB01 of the log likelihood DGB0, and inputs the log likelihood BTF calculated one time ago corresponding to the sign as the log likelihood B1, Logarithmic likelihoods DGB01 and B1 are added. Adder 2932The correction term calculation circuit 294 uses the data AM1 indicating Iβ0 + Iγ obtained by the addition.1, 294Four, 2946And supplied to the
[0433]
Adder 293ThreeInputs the log likelihood DGB02 of the log likelihood DGB0, and inputs the log likelihood BTF calculated one time ago corresponding to the sign as the log likelihood B2, Logarithmic likelihoods DGB02 and B2 are added. Adder 293ThreeThe correction term calculation circuit 294 uses the data AM2 indicating Iβ0 + Iγ obtained by the addition.2, 294Three, 294FourAnd to the selector 296.
[0434]
Adder 293FourInputs the log likelihood DGB03 of the log likelihood DGB0, and inputs the log likelihood BTF calculated one time ago corresponding to the sign as the log likelihood B3. Logarithmic likelihoods DGB03 and B3 are added. Adder 293FourThe correction term calculation circuit 294 uses the data AM3 indicating Iβ0 + Iγ obtained by the addition.2, 294Five, 2946And to the selector 296.
[0435]
Correction term calculation circuit 2941Has the same configuration as that of the correction
[0436]
Correction term calculation circuit 2942Has the same configuration as that of the correction
[0437]
Correction term calculation circuit 294ThreeHas the same configuration as that of the correction
[0438]
Correction term calculation circuit 294FourHas the same configuration as that of the correction
[0439]
Correction term calculation circuit 294FiveHas the same configuration as that of the correction
[0440]
Correction term calculation circuit 2946Has the same configuration as that of the correction
[0441]
The
[0442]
The selector 296 includes a correction term calculation circuit 294.2The data AM2 and AM3 having a smaller value are selected based on the control signal SEL1 supplied from. The selector 296 supplies the data SAM1 obtained by the selection to the
[0443]
The
[0444]
The
[0445]
The
[0446]
The
[0447]
The
[0448]
The
[0449]
The
[0450]
The
[0451]
The selector 305 selects one of the data DS2 and DS3 based on the control signal SEL9 supplied from the selection control signal generation circuit 306. The selector 305 supplies the data RDM obtained by selection to the
[0452]
The selection control signal generation circuit 306 generates a control signal SEL9 for controlling the selection operation by the selector 305 based on the control signals SEL2, SEL3, SEL4, and SEL5. Specifically, the selection control signal generation circuit 306 calculates the logical sum of the logical product of the control signals SEL2, SEL3, SEL4, and SEL5 and the negative of the logical product of the control signals SEL2, SEL3, SEL4, and SEL5. The control signal SEL9 is generated.
[0453]
The
[0454]
Similar to the Iβ0 normalization circuit 291 described above, the
[0455]
Such a log-sum operation circuit 2921Finds and outputs log likelihood BT00. That is, the log-sum operation circuit 2921In order to use the obtained log likelihood BT00 for calculation of the log likelihood Iβ0 at the next time, a predetermined log-sum operation circuit 202 is used.1, ..., 2928And output to the outside.
[0456]
At this time, the log-sum operation circuit 2921Is selected from the data AM0, AM1, AM2, and AM3 indicating the likelihood corresponding to the four paths obtained by bundling four paths that reach each state or eight paths depending on the code. By comparing the likelihoods of all combinations of data corresponding to the two paths, data corresponding to at least two or more paths having a high likelihood among these data AM0, AM1, AM2, and AM3 is obtained. The data corresponding to the maximum likelihood path, which is the path with the highest likelihood, is selected from the data corresponding to these paths. More specifically, the log-sum operation circuit 2921Compares the values of the data AM0, the data AM1, the data AM2, and the data AM3 with respect to the data AM0, AM1, AM2, AM3 by performing an operation similar to a winning game. Data corresponding to the likelihood path is selected.
[0457]
In addition, the log-sum operation circuit 2928The log-sum operation circuit 2921The detailed description is omitted, but the log likelihoods DGB28, DGB29, DGB30, DGB31 of the log likelihood DGB0 and the log likelihood BTF calculated one time ago Corresponding logarithmic likelihoods B0, B1, B2, B3 are input as log likelihoods IGB0 using these log likelihoods DGB28, DGB29, DGB30, DGB31, B0, B1, B2, B3. As a logarithmic likelihood BT07, a predetermined log-sum operation circuit 292 is calculated.1, ..., 2928And output to the outside.
[0458]
Such an addition / comparison /
[0459]
The
[0460]
The Iβ0 addition comparison /
[0461]
On the other hand, the addition comparison /
[0462]
Such an
[0463]
Although not shown, the
[0464]
Soft
[0465]
[Expression 55]
[0466]
The soft
[0467]
Specifically, the soft
[0468]
The Iα + Iγ +
[0469]
The
[0470]
Adder 3151Is the logarithmic likelihood of the data AG00 of the data AGD indicating the sum of the log likelihood Iα and the log likelihood Iγ supplied from the
[0471]
Adder 3152Adds the data AG01 of the data AGD supplied from the
[0472]
Adder 315ThreeAdds the data AG02 of the data AGD supplied from the
[0473]
Adder 315FourAdds the data AG03 in the data AGD supplied from the
[0474]
Adder 315FiveAdds the data AG04 in the data AGD supplied from the
[0475]
Adder 3156Adds the data AG05 in the data AGD supplied from the
[0476]
Adder 31531Adds the data AG30 of the data AGD supplied from the
[0477]
Adder 31532Adds the data AG31 of the data AGD supplied from the
[0478]
The Iα + Iγ +
[0479]
The enable signal generation circuit 311 includes a selector 323.13232323Three323FourA selection control
[0480]
The selection control
[0481]
Based on the input bit number information IN and the memory number information MN supplied from the code
[0482]
Based on the output data selection control signal CITM supplied from the outside and the input bit number information IN supplied from the code
[0483]
The symbol corresponding branch selection circuit 319 is provided to calculate the logarithmic soft output Iλ in symbol units. The symbol corresponding branch selection circuit 319 uses the branch input / output information BIO supplied from the code
[0484]
The bit
[0485]
Similar to the bit corresponding
[0486]
Similar to the bit corresponding
[0487]
Selector 3231Is based on the control signal AP supplied from the selection control
[0488]
Selector 3232Is based on the control signal AP supplied from the selection control
[0489]
Selector 323ThreeIs based on the control signal AP supplied from the selection control
[0490]
Selector 323FourIs based on the control signal AP supplied from the selection control
[0491]
Such an enable signal generation circuit 311 uses the output data selection control signal CITM, the prior probability information format information CAPP, the memory number information MN, and the branch input / output information BIO, to enable signals ENS0, ENS1, corresponding to the selected branch. ENS2, ENS3, EN20, and EN21 are generated, and the log-sum operation circuit 312 is generated.1, 3122, 312Three, 312Four, 312Five, 3126To supply.
[0492]
Log-sum operation circuit 312142, the number of log-sum operation cell circuits 325 of the number represented by M × 2-1 is assumed, where M is the maximum number of code states to be decoded.nHave Here, the log-sum operation circuit 3121, Which decodes a code having a maximum of 16 states, and 31 log-sum operation cell circuits 3251, 32531It shall have.
[0493]
Log-sum operation cell circuit 3251The two differentiators 3261, 3262And six
[0494]
Differentiator 3261Of the data AGB supplied from the Iα + Iγ +
[0495]
Differentiator 3262The difference between predetermined data AGB001 and AGB000 corresponding to the sign of the data AGB supplied from the Iα + Iγ +
[0496]
The selector 327 is based on the control signal SL1 supplied from the selection control
[0497]
The selector 328 is based on the control signal SL1 supplied from the selection control
[0498]
The selector 329 selects one of the data SDA1 supplied from the selector 327 and the data SDA0 supplied from the selector 328 based on the control signal SL2 supplied from the selection control
[0499]
The selection control
[0500]
The selection control signal generation circuit 331 controls the selection operation by the selector 332 based on the enable signals EN000 and EN001 of the enable signal ENS0 supplied from the enable signal generation circuit 311 and the control signal SL2. A signal SEL is generated.
[0501]
The selector 332 selects one of the data AGB000 and AGB001 based on the control signal SEL supplied from the selection control signal generation circuit 331. The selector 332 supplies the data DAG obtained by the selection to the
[0502]
The AND gate 333 takes the logical product of the enable signals EN000 and EN001. The AND gate 333 supplies the obtained logical product ENA to the
[0503]
The OR
[0504]
The lookup table 335 stores the value of the correction term in the log-sum correction as a table. The lookup table 335 reads the value of the correction term corresponding to the value of the data DM supplied from the selector 329 from the table, and supplies it to the
[0505]
The
[0506]
The
[0507]
The
[0508]
Such a log-sum operation circuit 3251Is the first round in the winning game, as will be described later, using the data AGB000 and data AGB001 supplied from the Iα + Iγ +
[0509]
Log-sum operation circuit 3252Is a log-sum operation circuit 325.1However, although detailed description is omitted, the data AGB002 and data AGB003 supplied from the Iα + Iγ +
[0510]
Log-sum operation circuit 325ThreeIs a log-sum operation circuit 325.1The detailed description is omitted, but the data AGB004 and data AGB005 supplied from the Iα + Iγ +
[0511]
Log-sum operation circuit 325FourIs a log-sum operation circuit 325.1However, although detailed description is omitted, the data AGB006 and data AGB007 supplied from the Iα + Iγ +
[0512]
Log-sum operation circuit 325FiveIs a log-sum operation circuit 325.1The detailed description is omitted, but the data AGB008 and data AGB009 supplied from the Iα + Iγ +
[0513]
Log-sum operation circuit 3256Is a log-sum operation circuit 325.1However, although detailed description is omitted, data AGB010 and data AGB011 supplied from the Iα + Iγ +
[0514]
Log-sum operation circuit 3257Is a log-sum operation circuit 325.1However, although detailed description is omitted, the data AGB012 and data AGB013 supplied from the Iα + Iγ +
[0515]
Log-sum operation circuit 3258Is a log-sum operation circuit 325.1However, although detailed description is omitted, the data AGB014 and data AGB015 supplied from the Iα + Iγ +
[0516]
Log-sum operation circuit 3259Is a log-sum operation circuit 325.1However, although detailed description is omitted, the data AGB016 and data AGB017 supplied from the Iα + Iγ +
[0517]
Log-sum operation circuit 325TenIs a log-sum operation circuit 325.1However, although detailed description is omitted, the data AGB018 and data AGB019 supplied from the Iα + Iγ +
[0518]
Log-sum operation circuit 32511Is a log-sum operation circuit 325.1However, although detailed description is omitted, the data AGB020 and data AGB021 supplied from the Iα + Iγ +
[0519]
Log-sum operation circuit 32512Is a log-sum operation circuit 325.1The detailed description is omitted, but the data AGB022 and data AGB023 supplied from the Iα + Iγ +
[0520]
Log-sum operation circuit 32513Is a log-sum operation circuit 325.1However, although detailed description is omitted, the data AGB024 and data AGB025 supplied from the Iα + Iγ +
[0521]
Log-sum operation circuit 32514Is a log-sum operation circuit 325.1However, although detailed description is omitted, the data AGB026 and data AGB027 supplied from the Iα + Iγ +
[0522]
Log-sum operation circuit 32515Is a log-sum operation circuit 325.1However, although detailed description is omitted, the data AGB028 and data AGB029 supplied from the Iα + Iγ +
[0523]
Log-sum operation circuit 32516Is a log-sum operation circuit 325.1However, although detailed description is omitted, the data AGB030 and data AGB031 supplied from the Iα + Iγ +
[0524]
Log-sum operation circuit 32517Is a log-sum operation circuit 325.1The log-sum operation cell circuit 325 is not described in detail but is configured in a similar manner.1Data AGB100 and enable signal EN100 supplied from the log-sum operation cell circuit 3252By using the data AGB101 and the enable signal EN101 supplied from the above, an operation similar to the second round in the winning game is performed to perform one log-sum operation in the cumulative addition operation of the log-sum operation. Log-sum operation circuit 32517Uses the calculated data AGL as data AGB200, and performs a log-sum operation cell circuit 325 that performs an operation similar to the third round in the winning game.twenty fiveAnd the enable signal EN200 is sent to the log-sum operation cell circuit 325.twenty fiveTo supply.
[0525]
Log-sum operation circuit 32518Is a log-sum operation circuit 325.1The log-sum operation cell circuit 325 is not described in detail but is configured in a similar manner.ThreeData AGB102 and enable signal EN102 supplied from, and log-sum operation cell circuit 325FourBy using the data AGB 103 and the enable signal EN103 supplied from the above, an operation similar to the second round in the winning game is performed, thereby performing one log-sum operation in the cumulative addition operation of the log-sum operation. Log-sum operation circuit 32518Uses the calculated data AGL as
[0526]
Log-sum operation circuit 32519Is a log-sum operation circuit 325.1The log-sum operation cell circuit 325 is not described in detail but is configured in a similar manner.FiveData AGB 104 and enable signal EN 104 supplied from, and log-sum operation cell circuit 3256By using the data AGB 105 and the enable signal EN 105 supplied from the above, an operation similar to the second round in the winning game is performed, thereby performing one log-sum operation in the cumulative addition operation of the log-sum operation. Log-sum operation circuit 32519Uses the calculated data AGL as data AGB202, and performs a log-sum operation cell circuit 325 that performs an operation similar to the third round in the winning game.26And the enable signal EN202 is supplied to the log-sum operation cell circuit 325.26To supply.
[0527]
Log-sum operation circuit 32520Is a log-sum operation circuit 325.1The log-sum operation cell circuit 325 is not described in detail but is configured in a similar manner.7Data AGB 106 and enable signal EN 106, and log-sum operation cell circuit 325 supplied from8By using the
[0528]
Log-sum operation circuit 325twenty oneIs a log-sum operation circuit 325.1The log-sum operation cell circuit 325 is not described in detail but is configured in a similar manner.9Data AGB 108 and enable
[0529]
Log-sum operation circuit 325twenty twoIs a log-sum operation circuit 325.1The log-sum operation cell circuit 325 is not described in detail but is configured in a similar manner.11Data AGB 110 and enable
[0530]
Log-sum operation circuit 325twenty threeIs a log-sum operation circuit 325.1The log-sum operation cell circuit 325 is not described in detail but is configured in a similar manner.13Data AGB 112 and enable signal EN 112 supplied from, and log-sum operation cell circuit 32514By using the data AGB 113 and the enable signal EN 113 supplied from, an operation similar to the second round in the winning game is performed, thereby performing one log-sum operation in the cumulative addition operation of the log-sum operation. Log-sum operation circuit 325twenty threeUses the calculated data AGL 206 as data AGB 206, and performs a log-sum operation cell circuit 325 that performs an operation similar to the third round in the winning game.28And the enable signal EN206 is sent to the log-sum operation cell circuit 325.28To supply.
[0531]
Log-sum operation circuit 325twenty fourIs a log-sum operation circuit 325.1The log-sum operation cell circuit 325 is not described in detail but is configured in a similar manner.15Data AGB 114 and enable signal EN 114 supplied from, and log-sum operation cell circuit 32516Using the data AGB 115 and the enable signal EN 115 supplied from, one log-sum operation in the cumulative addition operation of the log-sum operation is performed by performing an operation similar to the second round in the winning game. Log-sum operation circuit 325twenty fourUses the calculated data AGL as the data AGB 207 and the log-sum operation cell circuit 325.28And the enable signal EN207 is sent to the log-sum operation cell circuit 325.28To supply.
[0532]
Log-sum operation circuit 325twenty fiveIs a log-sum operation circuit 325.1The log-sum operation cell circuit 325 is not described in detail but is configured in a similar manner.17Data AGB200 and enable signal EN200 supplied from, and log-sum operation cell circuit 32518By using the
[0533]
Log-sum operation circuit 32526Is a log-sum operation circuit 325.1The log-sum operation cell circuit 325 is not described in detail but is configured in a similar manner.19Data AGB 202 and enable signal EN 202 supplied from, and log-sum operation cell circuit 32520By using the data AGB 203 and the enable signal EN 203 supplied from, an operation similar to the third round in the winning game is performed, thereby performing one log-sum operation in the cumulative addition operation of the log-sum operation. Log-sum operation circuit 32526Uses the calculated data AGL as
[0534]
Log-sum operation circuit 32527Is a log-sum operation circuit 325.1The log-sum operation cell circuit 325 is not described in detail but is configured in a similar manner.twenty oneData AGB 204 and enable signal EN 204 supplied from, and log-sum operation cell circuit 325twenty twoBy using the data AGB 205 and the enable signal EN205 supplied from the above, an operation similar to the third round in the winning game is performed, thereby performing one log-sum operation in the cumulative addition operation of the log-sum operation. Log-sum operation circuit 32527Uses the calculated data AGL as data AGB302 and performs a log-sum operation cell circuit 325 that performs an operation similar to that of the fourth round in the winning game.30And the enable signal EN302 is sent to the log-sum operation cell circuit 325.30To supply.
[0535]
Log-sum operation circuit 32528Is a log-sum operation circuit 325.1The log-sum operation cell circuit 325 is not described in detail but is configured in a similar manner.twenty threeData AGB 206 and enable signal EN 206 supplied from, and log-sum operation cell circuit 325twenty fourBy using the data AGB 207 and the enable signal EN 207 supplied from, a log-sum operation in the cumulative addition operation of the log-sum operation is performed by performing an operation similar to the third round in the winning game. Log-sum operation circuit 32528Uses the calculated data AGL as
[0536]
Log-sum operation circuit 32529Is a log-sum operation circuit 325.1The log-sum operation cell circuit 325 is not described in detail but is configured in a similar manner.twenty fiveData AGB300 and enable signal EN300 supplied from the log-sum operation cell circuit 32526Using the
[0537]
Log-sum operation circuit 32530Is a log-sum operation circuit 325.1The log-sum operation cell circuit 325 is not described in detail but is configured in a similar manner.27Data AGB 302 and enable
[0538]
Log-sum operation circuit 32531Is a log-sum operation circuit 325.1The log-sum operation cell circuit 325 is not described in detail but is configured in a similar manner.29Data AGB 400 and enable
[0539]
Such a log-sum operation circuit 3121Uses the data AGB and the enable signal ENS0 to perform an operation similar to a winning game based on the enable signal corresponding to each branch on the trellis, for example, the input of the branch on the trellis is “0”. A cumulative addition operation of a log-sum operation is performed to calculate data L00.
[0540]
Log-sum operation circuit 3122Is the log-sum operation circuit 312.1The log-sum operation circuit 312 is configured using the data AGB and the enable signal ENS1, although detailed description thereof is omitted.1Similarly to the above, by performing an operation similar to a winning game based on an enable signal corresponding to each branch on the trellis, for example, a cumulative addition operation of a log-sum operation in which the input of the branch on the trellis is “1” is performed. To calculate data L01. Log-sum operation circuit 3122Supplies the calculated data L01 to the
[0541]
In addition, the log-sum operation circuit 312ThreeLog-sum operation circuit 3121The log-sum operation circuit 312 is configured using the data AGB and the enable signal ENS2, although detailed description thereof is omitted.1Similarly to the above, by performing an operation similar to a winning game based on an enable signal corresponding to each branch on the trellis, for example, a cumulative addition operation of a log-sum operation in which the input of the branch on the trellis is “0” is performed. To calculate the data L10. Log-sum operation circuit 312ThreeSupplies the calculated data L10 to the
[0542]
Further, the log-sum operation circuit 312FourLog-sum operation circuit 3121The log-sum operation circuit 312 uses the data AGB and the enable signal ENS3, although detailed description is omitted.1Similarly to the above, by performing an operation similar to a winning game based on an enable signal corresponding to each branch on the trellis, for example, a cumulative addition operation of a log-sum operation in which the input of the branch on the trellis is “1” is performed. To calculate data L11. Log-sum operation circuit 312FourSupplies the calculated data L11 to the
[0543]
Furthermore, the log-sum operation circuit 312FiveLog-sum operation circuit 3121The log-sum operation circuit 312 is configured using the data AGB and the enable signal ENS20.1Similarly to the above, by performing an operation similar to a winning game based on an enable signal corresponding to each branch on the trellis, for example, a cumulative addition operation of a log-sum operation in which the input of the branch on the trellis is “0” is performed. To calculate data L20. Log-sum operation circuit 312FiveSupplies the calculated data L20 to the
[0544]
In addition, the log-sum operation circuit 3126Log-sum operation circuit 3121The log-sum operation circuit 312 is configured using the data AGB and the enable signal ENS21.1Similarly to the above, by performing an operation similar to a winning game based on an enable signal corresponding to each branch on the trellis, for example, a cumulative addition operation of a log-sum operation in which the input of the branch on the trellis is “1” is performed. To calculate data L21. Log-sum operation circuit 3126Supplies the calculated data L21 to the
[0545]
The
[0546]
Differentiator 3241Is the log-sum operation circuit 312.1Data L00 supplied from the log-sum and the log-sum operation circuit 3122The difference from the data L01 supplied from the above is taken. Differentiator 3241The data LM0 calculated by the above is subjected to, for example, 2's complement notation conversion.
[0547]
Differentiator 3242Is the log-sum operation circuit 312.ThreeL10 supplied from the log-sum and the log-sum operation circuit 312FourThe difference from the data L11 supplied from the above is taken. Differentiator 3242The data LM1 calculated by the above is subjected to, for example, 2's complement notation conversion.
[0548]
Differentiator 324ThreeIs the log-sum operation circuit 312.FourData L20 supplied from the log-sum and the log-sum operation circuit 3126The difference from the data L21 supplied from the above is taken. Differentiator 324ThreeThe data LM2 calculated by the above is subjected to, for example, 2's complement notation conversion.
[0549]
Such an
[0550]
The soft
[0551]
The reception value or prior probability
[0552]
Specifically, the received value or prior probability
[0553]
The
[0554]
The
[0555]
The
[0556]
The
[0557]
The received value or prior probability
[0558]
The external
[0559]
Specifically, as shown in FIG. 44, for example, the external
[0560]
The information bit external
[0561]
External information calculation cell circuit 3551Calculates the difference between the logarithmic soft output BLM0 of the logarithmic soft output BLM and the delay prior probability information DAP0 of the delay prior probability information DAP, performs amplitude adjustment and clipping on the difference value, and After performing offset binary notation conversion, etc., it is output as external information EX0.
[0562]
External information calculation cell circuit 3552Calculates the difference between the logarithmic soft output BLM1 of the logarithmic soft output BLM and the delay prior probability information DAP1 of the delay prior probability information DAP, performs amplitude adjustment and clipping on the difference value, and After performing offset binary notation conversion, etc., it is output as external information EX1.
[0563]
External information calculation cell circuit 355ThreeCalculates the difference between the logarithmic soft output BLM2 of the logarithmic soft output BLM and the delay prior probability information DAP2 of the delay prior probability information DAP, performs amplitude adjustment and clipping on the difference value, and After performing offset binary notation conversion, etc., it is output as external information EX2.
[0564]
Such an information bit external
[0565]
The information symbol external
[0566]
External information calculation cell circuit 3561Calculates the difference between the logarithmic soft output SLM0 of the logarithmic soft output SLM and the data having the predetermined value M, and after performing amplitude adjustment and clipping on the difference value, it is normalized as the external information ED0. To the
[0567]
External information calculation cell circuit 3562Calculates the difference between the logarithmic soft output SLM1 of the logarithmic soft output SLM and the delay prior probability information DAP0 of the delay prior probability information DAP, and after performing amplitude adjustment and clipping on the difference value The external information ED1 is supplied to the
[0568]
External information calculation cell circuit 356ThreeCalculates a difference between the logarithmic soft output SLM2 of the logarithmic soft output SLM and the delay prior probability information DAP1 of the delay prior probability information DAP, and after performing amplitude adjustment and clipping on the difference value The external information ED2 is supplied to the
[0569]
External information calculation cell circuit 356FourCalculates the difference between the logarithmic soft output SLM3 of the logarithmic soft output SLM and the delay prior probability information DAP2 of the delay prior probability information DAP, and after performing amplitude adjustment and clipping on the difference value The external information ED3 is supplied to the
[0570]
The
[0571]
Such an information symbol external
[0572]
The sign external
[0573]
External information calculation cell circuit 3581Calculates the difference between the logarithmic soft output BLM0 of the logarithmic soft output BLM and the delay reception value APS0 of the delay reception value DRC, performs amplitude adjustment and clipping on the difference value, and further offset binary After notation conversion, etc., it is output as external information EX0.
[0574]
External information calculation cell circuit 3582Calculates the difference between the logarithmic soft output BLM1 of the logarithmic soft output BLM and the delay reception value APS1 of the delay reception value DRC, performs amplitude adjustment and clipping on the difference value, and further offset binary After notation conversion, etc., it is output as external information EX1.
[0575]
External information calculation cell circuit 358ThreeCalculates the difference between the logarithmic soft output BLM2 of the logarithmic soft output BLM and the delay reception value APS2 of the delay reception value DRC, performs amplitude adjustment and clipping on the difference value, and displays the offset binary notation After conversion, etc., it is output as external information EX2.
[0576]
Such a code external
[0577]
The
[0578]
The
[0579]
The external
[0580]
Although not shown, the amplitude adjustment and clipping
[0581]
The
[0582]
Specifically, for example, as shown in FIG. 45, the
[0583]
[0584]
The minimum
[0585]
The
[0586]
Based on the control signal SL0 supplied from the
[0587]
The
[0588]
Based on the control signal SL1 supplied from the
[0589]
The comparison circuit 366 compares the magnitude relationship between the data SSL0 supplied from the
[0590]
The
[0591]
Such a minimum
[0592]
The selection control
[0593]
Based on the control signal AIS supplied from the selection control
[0594]
The
[0595]
The
[0596]
In the
[0597]
The lookup table 372 stores a table for demapping received values. Specifically, the lookup table 372 stores boundary values for the I axis on the I / Q plane as a table, as will be described later. The lookup table 372 includes a boundary corresponding to a combination of a value of the delay reception value IR corresponding to the in-phase component and a value of the delay reception value QR corresponding to the quadrature component among the delay reception values DRC expressed in the offset binary notation. The values are read from the table and supplied to the selection control
[0598]
The
[0599]
The
[0600]
The
[0601]
The
[0602]
The
[0603]
The selection control
[0604]
The
[0605]
The
[0606]
Such an I /
[0607]
Further, in the
[0608]
Note that the
[0609]
Such a
[0610]
When the soft-
[0611]
Various features relating to the soft
[0612]
2-3 Details of interleaver
Next, the
[0613]
As will be described later, the
[0614]
For example, as shown in FIG. 46, the delay RAM is configured so as to be seen as one dual-port RAM including banks A and B from a control circuit described later which the
[0615]
On the other hand, as shown in FIG. 49, for example, the interleaving RAM is configured so that it appears to the control circuit as two RAMs including banks A and B. As described above, the
[0616]
Next, input / output to / from the
[0617]
The
[0618]
For example, as shown in FIG. 51A, when the
[0619]
In addition, as shown in FIG. 5B, the
[0620]
Further, as shown in FIG. 5C, the
[0621]
Furthermore, as shown in FIG. 4D, the
[0622]
Further, as shown in FIG. 5E, the
[0623]
Further, as shown in FIG. 5F, when the
[0624]
Furthermore, when the
[0625]
As described above, the
[0626]
A specific method of using the plurality of RAMs will be described later.
[0627]
Now, an
[0628]
The
[0629]
Further, as will be described later, the
[0630]
As will be described later, the write address data IWA, which is sequential address data generated by the
[0631]
In addition, when generating the write address and the read address, the
[0632]
The delay
[0633]
The odd length
[0634]
Specifically, the odd-length
[0635]
Register 4101When data TDI0 is input, this data TDI0 is held for one time slot. Register 4101The stored data DDD0 is sent to the selector 411.1To supply.
[0636]
Register 4102When data TDI1 is input, this data TDI1 is held for one time slot. Register 4102The stored data DDD1 is sent to the selector 411.2To supply.
[0637]
Register 410ThreeWhen data TDI2 is input, the data TDI2 is held for one time slot. Register 410ThreeThe stored data DDD2 is sent to the selector 411.ThreeTo supply.
[0638]
Register 410FourWhen data TDI3 is input, the data TDI3 is held for one time slot. Register 410FourThe stored data DDD3 is sent to the selector 411.FourTo supply.
[0639]
Register 410FiveWhen data TDI4 is input, the data TDI4 is held for one time slot. Register 410FiveThe stored data DDD4 is sent to the selector 411.FiveTo supply.
[0640]
Register 4106When data TDI5 is input, the data TDI5 is held for one time slot. Register 4106The stored data DDD5 is sent to the selector 411.6To supply.
[0641]
Selector 4111Is based on the interleave length information CINL.1One of data DDD0 and data TDI0 supplied from is selected. Specifically, the selector 4111Selects the data TDI0 when the interleave length is an even length. Selector 4111Supplies the selected data DS0 to the input
[0642]
Selector 4112Is based on the interleave length information CINL.2One of data DDD1 and data TDI1 supplied from is selected. Specifically, the selector 4112Selects the data TDI1 when the interleave length is an even length. Selector 4112Supplies the selected data DS1 to the input
[0643]
Selector 411ThreeIs based on the interleave length information CINL.ThreeOne of data DDD2 and data TDI2 supplied from is selected. Specifically, the selector 411ThreeSelects the data TDI2 when the interleave length is an even length. Selector 411ThreeSupplies the selected data DS2 to the input
[0644]
Selector 411FourIs based on the interleave length information CINL.FourOne of data DDD3 and data TDI3 supplied from is selected. Specifically, the selector 411FourSelects the data TDI3 when the interleave length is an even length. Selector 411FourSupplies the selected data DS3 to the input
[0645]
Selector 411FiveIs based on the interleave length information CINL.FiveOne of data DDD4 and data TDI4 supplied from is selected. Specifically, the selector 411FiveSelects the data TDI4 when the interleave length is an even length. Selector 411FiveSupplies the selected data DS4 to the input
[0646]
Selector 4116Is based on the interleave length information CINL.6One of data DDD5 and data TDI5 supplied from is selected. Specifically, the selector 4116Selects the data TDI5 when the interleave length is an even length. Selector 4116Supplies the selected data DS5 to the input
[0647]
When the odd length
[0648]
The interleave
[0649]
The delay
[0650]
The
[0651]
In addition to the interleaver type information CINT and the interleaver non-output position information CNO, the
[0652]
The input
[0653]
As will be described later, the input
[0654]
[0655]
Further, the
[0656]
The
[0657]
Specifically, the
[0658]
The
[0659]
Based on the partial write control signal PW supplied from the
[0660]
Based on the partial write control signal PW supplied from the
[0661]
The
[0662]
Briefly speaking, the
[0663]
The
[0664]
Details of each data input / output to / from the
[0665]
The
[0666]
The selector 426 selects one of the data OH and OL supplied from the
[0667]
The data SOH selected by the
[0668]
Such a
[0669]
Note that the
[0670]
The output
[0671]
As will be described later, the output
[0672]
When performing the interleaving process, the
[0673]
Further, when performing the interleaving process, the
[0674]
Further, when delaying the input data, the
[0675]
Next, a specific example of a RAM usage method in the
[0676]
The
[0677]
First, an example in which random interleaving is performed on input data of one symbol will be described. Here, it is assumed that the
[0678]
In this case, the
[0679]
More specifically, the
[0680]
Based on the address data AR00 and AR01 supplied from the
[0681]
At the same time, the stored data is read as data OR02, OR03, OR06, OR07, OR10, OR11 from the RAMD03, D04, D07, D08, D11, D12, respectively, and is output to the output
[0682]
Similarly, delay data D0 and D1 are supplied as data IR02 and IR03 from the input
[0683]
At the same time, the stored data is read as data OR00, OR01, OR04, OR05, OR08, OR09 from the RAMD01, D02, D05, D06, D09, D10, respectively, and is output to the output
[0684]
The RAMs D13, D14, D15, and D16 function as partial write RAMs based on the partial write control signal PW, and function as RAMs having a storage capacity of 8 bits × 8192 words in a pseudo manner.
[0685]
Based on the address data AR12 and AR13 supplied from the
[0686]
At the same time, the stored data is read from the
[0687]
Similarly, interleave data I0 is supplied to and written from the input
[0688]
At the same time, the stored data is read from the
[0689]
By doing so, the
[0690]
Next, an example in which random interleaving is performed on input data of two symbols will be described. Here, it is assumed that the
[0691]
In this case, the
[0692]
More specifically, the
[0693]
Based on the address data AR00 supplied from the
[0694]
At the same time, the stored data is read from the RAMD03, D04, and D07 as data OR02, OR03, and OR06, and supplied to the output
[0695]
Similarly, delay data D0 and D1 are supplied and written as data IR02 from the input
[0696]
At the same time, the stored data is read from the RAMD01, D02, and D05 as data OR00, OR01, and OR04 and supplied to the output
[0697]
The RAMs D09, D10, D11, D12, D13, D14, D15, and D16 function as partial write RAMs based on the partial write control signal PW, respectively, and have a pseudo 8 bit × 8192 word storage capacity. It acts as a RAM.
[0698]
Based on the address data AR12 supplied from the
[0699]
At the same time, the stored data is read from the RAMD11 and D15 as data OR10 and OR14, respectively, and is supplied to the output
[0700]
Similarly, interleaved data I0 is supplied to and written from the input
[0701]
At the same time, the stored data is read from the RAMD09 and D13 as data OR08 and OR12, respectively, and is supplied to the output
[0702]
By doing this, the
[0703]
Next, an example in which inline interleaving is performed on input data of two symbols will be described. Here, it is assumed that the
[0704]
In this case, the
[0705]
More specifically, the
[0706]
Based on the address data AR00 and AR01 supplied from the
[0707]
At the same time, the stored data is read from the RAMD03, D04, D07, and D08 as data OR02, OR03, OR06, and OR07 and supplied to the output
[0708]
Similarly, delay data D0 and D1 are supplied as data IR02 and IR03 from the input
[0709]
At the same time, the stored data is read as data OR00, OR01, OR04, OR05 from the RAMD01, D02, D05, D06, respectively, and supplied to the output
[0710]
The RAMs D09, D10, D11, D12, D13, D14, D15, and D16 function as partial write RAMs based on the partial write control signal PW, respectively, and have a pseudo 8 bit × 8192 word storage capacity. It acts as a RAM.
[0711]
Based on the address data AR12 and AR13 supplied from the
[0712]
At the same time, the stored data is read from the RAMD15 and D16 as data OR14 and OR15, respectively, and is supplied to the output
[0713]
Similarly, interleave data I0 is supplied to and written from the input
[0714]
At the same time, the stored data is read from the RAMD13 and D14 as data OR12 and OR13, respectively, and is supplied to the output
[0715]
By doing so, the
[0716]
Next, an example in which pair-wise interleaving is applied to 2-symbol input data will be described. Here, it is assumed that the
[0717]
In this case, the
[0718]
More specifically, the
[0719]
Based on the address data AR00 and AR01 supplied from the
[0720]
At the same time, the stored data is read from the RAMD03, D04, D07, and D08 as data OR02, OR03, OR06, and OR07 and supplied to the output
[0721]
Similarly, delay data D0 and D1 are supplied as data IR02 and IR03 from the input
[0722]
At the same time, the stored data is read as data OR00, OR01, OR04, OR05 from the RAMD01, D02, D05, D06, respectively, and supplied to the output
[0723]
The RAMs D09, D10, D11, D12, D13, D14, D15, and D16 function as partial write RAMs based on the partial write control signal PW, respectively, and have a pseudo 8 bit × 8192 word storage capacity. It acts as a RAM.
[0724]
Based on the address data AR12 and AR13 supplied from the
[0725]
At the same time, the stored data is read from the RAMD15 and D16 as data OR14 and OR15, respectively, and is supplied to the output
[0726]
Similarly, interleave data I0 is supplied to and written from the input
[0727]
At the same time, the stored data is read from the RAMD13 and D14 as data OR12 and OR13, respectively, and is supplied to the output
[0728]
By doing in this way, the
[0729]
Next, an example in which random interleaving is performed on 3-symbol input data will be described. Here, it is assumed that the
[0730]
In this case, the
[0731]
More specifically, the
[0732]
Based on the address data AR00 supplied from the
[0733]
At the same time, the stored data is read from the RAMD03 and D07 as data OR02 and OR06 and supplied to the output
[0734]
Similarly, delay data D0 and D1 are supplied and written as data IR02 from the input
[0735]
At the same time, the stored data is read from the RAMD01 and D05 as data OR00 and OR04, respectively, and supplied to the output
[0736]
The RAMs D02, D04, D06, D08, D09, D10, D11, D12, D13, D14, D15, and D16 do not function as partial write RAMs, but function as RAMs having normal storage capacities.
[0737]
Based on the address data AR12 supplied from the
[0738]
At the same time, the stored data is read from the RAMD11 and D15 as data OR10 and OR14, respectively, and is supplied to the output
[0739]
Similarly, interleaved data I0 is supplied to and written from the input
[0740]
At the same time, the stored data is read from the RAMD11 and D15 as data OR10 and OR14, respectively, and is supplied to the output
[0741]
By doing so, the
[0741]
Next, an example in which inline interleaving is performed on input data of three symbols will be described. Here, it is assumed that the
[0743]
In this case, the
[0744]
More specifically, the
[0745]
Based on the address data AR00 supplied from the
[0746]
At the same time, the stored data is read from the RAMD03, D04, and D07 as data OR02, OR03, and OR06, and supplied to the output
[0747]
Similarly, delay data D0 and D1 are supplied and written as data IR02 from the input
[0748]
At the same time, the stored data is read from the RAMD01, D02, and D05 as data OR00, OR01, and OR04 and supplied to the output
[0749]
The RAMs D09, D11, D13, D14, D15, and D16 each function as a partial write RAM based on the partial write control signal PW, and function as a RAM having a storage capacity of 8 bits × 8192 words in a pseudo manner. To do.
[0750]
Based on the address data AR12 supplied from the
[0751]
At the same time, the stored data is read from the
[0752]
Similarly, interleaved data I0 is supplied to and written from the input
[0753]
At the same time, the stored data is read from the
[0754]
By doing so, the
[0755]
Next, an example in which pair-wise interleaving is performed on input data of three symbols will be described. Here, it is assumed that the
[0756]
In this case, the
[0757]
More specifically, the
[0758]
Based on the address data AR00 and AR01 supplied from the
[0759]
At the same time, the stored data is read from the RAMD03 and D04 as data OR02 and OR03, respectively, and supplied to the output
[0760]
Similarly, delay data D0 and D1 are supplied as data IR02 and IR03 from the input
[0761]
At the same time, the stored data is read from the RAMD01 and D02 as data OR00 and OR01, respectively, and supplied to the output
[0762]
The RAMs D05, D06, D07, D08, D09, D10, D11, D12, D13, D14, D15, and D16 each function as a partial write RAM based on the partial write control signal PW. It acts as a RAM having a storage capacity of bits × 8192 words.
[0763]
Based on the address data AR12 and AR13 supplied from the
[0764]
At the same time, the stored data is read from the RAMD15 and D16 as data OR14 and OR15, respectively, and is supplied to the output
[0765]
Similarly, interleave data I0 is supplied to and written from the input
[0766]
At the same time, the stored data is read from the RAMD13 and D14 as data OR12 and OR13, respectively, and supplied to the output
[0767]
By doing so, the
[0768]
As described above, the
[0769]
Various features relating to the
[0770]
3. Decoding device configured by connecting element decoders
Next, a description will be given of a
[0771]
As described above, the
[0772]
As shown in FIG. 62, the
[0773]
Specifically, the
[0774]
[0775]
Also, the
[0776]
[0777]
Such an
[0778]
Further, the
[0779]
[0780]
Then, the last
[0781]
[0782]
Such a
[0783]
Note that the
[0784]
In addition, a decoding apparatus that decodes codes using the TTCM method and the SCTCM method can be realized with the same configuration as the
[0785]
4). Characteristics of the whole element decoder
Next, description will be given for each feature related to the
[0786]
4-1 Code likelihood switching function
This is a feature relating to the received value and prior probability
[0787]
For example, when the
[0788]
Therefore, the
[0789]
That is, the
[0790]
Note that the
[0791]
In the case of the reception value and prior probability
[0792]
In contrast, the
[0793]
Thus, the
[0794]
4-2 Delay function of received value
This is a feature of the received data and delay
[0795]
For example, when the
[0796]
Therefore, as described above, the
[0797]
By doing so, the
[0798]
Note that the
[0799]
That is, two
[0800]
Of course, the
[0801]
4-3 Decoding received value selection function
This is a feature relating to the decoded received
[0802]
The received value required for performing soft output decoding differs depending on the code. Therefore, the
[0803]
As described above, by selectively extracting a predetermined reception value from the reception values input to the
[0804]
4-4 Sharing of memory circuit for decoding and memory for delay
This is a feature relating to the received data and delay
[0805]
As described above, the reception data and delay
[0806]
As described above, the
[0807]
4-5 Frame head information delay function
This is a feature relating to the received data and delay
[0808]
The edge signal TEILS indicating the head of the frame detected by the
[0809]
Therefore, the
[0810]
By doing so, the
[0811]
The
[0812]
Also, the
[0813]
4-6 Soft output decoding circuit or interleaver unit operation function
[0814]
As described above, the
[0815]
Specifically, the
[0816]
In addition, the
[0817]
Furthermore, the
[0818]
Furthermore, the
[0819]
In addition, the
[0820]
By doing so, the
[0821]
The
[0822]
In this way, the
[0823]
The
[0824]
4-7 Delay mode switching function
[0825]
As shown in FIG. 3 or FIG. 5, the iterative decoding is performed once with a combination of the same number of element decoders as the number of element encoders in the
[0826]
Here, in order to determine the optimum number of repetitions according to various codes, it is usually necessary to perform an experiment in which the number of repetitions is changed. In this case, an experiment can be performed if a plurality of decoding devices are configured by connecting a number of element decoders corresponding to the number of repetitions. In addition, a single decoding device is configured by concatenating a number of element decoders capable of performing iterative decoding of an arbitrary number of repetitions, and taps are applied from the element decoder corresponding to a desired number of repetitions equal to or less than the number of repetitions. It is also possible to conduct experiments by pulling out.
[0827]
However, in order to perform an experiment like the former, it is necessary to configure a huge number of decoding devices, and it can be considered that a great deal of labor is required. Even in the latter experiment, the circuit scale of the decoding device increases, and the decoding delay changes depending on the number of iterations. Therefore, it is desirable to compare the decoding results due to the change in the number of iterations. Absent.
[0828]
Therefore, the
[0829]
Specifically, the
[0830]
Further, as described above, when the operation mode information CBF indicating the delay mode is input, the
[0831]
By doing in this way, the
[0832]
In this way, the
[0833]
The
[0834]
4-8 Next stage information generation function
This is a feature of the
[0835]
When the
[0836]
Therefore, the
[0837]
By doing so, the
[0838]
As described above, the
[0839]
The
[0840]
4-9 System verification function
[0841]
The
[0841]
Therefore, the
[0843]
At this time, the
[0844]
Specifically, the
[0845]
In addition, the
[0846]
Furthermore, the
[0847]
As described above, the
[0848]
5. Features of soft output decoding circuit
Next, description will be made for each feature related to the soft
[0849]
5-1 How to have code information
This is a feature related to the code
[0850]
5-1-1 Calculation of input / output pattern of all branches on trellis
For example, the trellis in the convolutional encoder shown in FIG. 14 has a structure in which two paths reach from each state to the state at the next time as shown in FIG. It has the structure which has a branch. Further, the trellis in the convolutional encoder shown in FIG. 15 has a structure in which four paths reach from each state to the state at the next time as shown in FIG. It has the branch of. Further, the trellis in the convolutional encoder shown in FIG. 16 has a structure in which four paths reach from each state to the state at the next time as shown in FIG. It has the branch of. Furthermore, the trellis in the convolutional encoder shown in FIG. 17 has a structure in which four sets of parallel paths reach from each state to the state at the next time, as shown in FIG. It will have 32 branches. These convolutional encoders are trellises having 32 branches or less, although the number of memories is variable depending on the way of connection.
[0851]
Therefore, the soft
[0852]
The branch input / output information BIO is information calculated along the time axis from the transition source state to the transition destination state in order to calculate the log likelihood Iα. That is, the branch input / output information BIO is information based on the branch input as viewed from the transition destination state. On the other hand, the soft
[0853]
In this way, the
[0854]
Here, the case of decoding a code having a trellis structure having 32 branches or less has been described, but it goes without saying that the
[0855]
Hereinafter, three specific examples will be shown as branch numbering in the method shown here.
[0856]
5-1-2 Numbering between the transition source state and the transition destination state
In the Bozencraft type convolutional encoder, data is held in time series with respect to the delay elements, so that the transition destination state is limited. For concrete explanation, when the convolutional encoder shown in FIG. 18 is used, when the state of the transition source is “0000”, the
[0857]
Therefore, the soft
[0858]
Specifically, the soft
[0859]
On the other hand, the soft
[0860]
In addition, the soft
[0861]
On the other hand, the soft
[0862]
By doing in this way, the soft
[0863]
Specific examples of branch numbering by this method include those shown in FIGS. 67 to 70. The branch number connecting the transition source state and the transition destination state is uniquely numbered. If so, the specific numbers are not limited to those shown in the figure.
[0864]
5-1-3 Numbering along the time axis and numbering along the reverse order of the time axis
For example, a non-Bozencraft type convolutional encoder such as a Massy type does not hold data in a time series with respect to delay elements, unlike a Bozencraft type convolutional encoder. There is no limit. For concrete explanation, when the convolutional encoder shown in FIG. 22 is used, when the state of the transition source is “000”, the shift register 205 at the next time is used.ThreeOf the shift register 205 at the previous time.2Is not shifted as it is, and the shift register 205 at the next time2Of the shift register 205 at the previous time.1The contents of are not just migrated. Therefore, the state of the transition destination is not limited for each number of memories, and varies depending on the code configuration.
[0865]
Therefore, the soft
[0866]
Specifically, the soft
[0867]
On the other hand, the soft
[0868]
As described above, the soft
[0869]
Specific examples of branch numbering by this method include those shown in FIGS. 71 and 72, but the specific numbers are not limited to those shown in FIG. Although the case of decoding a Massy type convolutional encoder has been described here, this method can be applied to any code including a nonlinear code other than a Massy type convolutional code. Of course, this technique can also be applied to a Bosencraft type convolutional code.
[0870]
5-1-4 Numbering based on the uniqueness of the entire trellis
When the number of input bits in the code is less than or equal to the number of memories, there may be a trellis structure in which the path reaches from each state on the trellis to all states at the next time. In other words, if the trellis has a structure in which the path reaches all states at the next time from each state, the state number of the transition source and the state number of the transition destination are uniquely identified regardless of the code configuration. be able to.
[0871]
Therefore, the soft
[0872]
Specifically, the soft
[0873]
On the other hand, the soft
[0874]
In this way, the soft
[0875]
Specific examples of branch numbering by this method include those shown in FIGS. 73 and 74. The branch number connecting the transition source state and the transition destination state is uniquely numbered. If so, the specific numbers are not limited to those shown in the figure.
[0876]
5-2 Termination information input method
This is a feature related to the termination
[0877]
5-2-1 Input for the termination period of information for the number of input bits
As described above, in the Bozencraft type convolutional encoder, the transition destination state is limited. Therefore, as described above, the soft
[0878]
Specifically, when the code by the Bozencraft type convolutional coder having the number of input bits of “1” and the number of memories of “2” is terminated to the state represented by “00”, soft output is performed. For example, as shown in FIG. 75, the
[0879]
By doing in this way, the
[0880]
5-2-2 Input of information indicating the termination state in one time slot
As described above, in the element encoder other than the Bozencraft type convolutional encoder, for example, a Massy type convolutional encoder, the state of the transition destination is limited like the Bozencraft type convolutional encoder. Never happen. Therefore, when a code other than a Bozencraft type convolutional code is terminated, information corresponding to the number of input bits cannot be input as the termination information for the termination period.
[0881]
Therefore, as described above, the soft
[0882]
Specifically, when the code by the Massy type convolutional coder having the number of input bits of “1” and the number of memories of “2” is terminated to the state represented by “00”, the soft output decoding is performed. For example, as shown in FIG. 76, the
[0883]
By doing in this way, the
[0884]
5-3 Erase position processing
This is a feature relating to the received value and prior probability
[0885]
In soft output decoding, it is usually necessary to separately hold information indicating a position where no code output exists by puncturing or the like until at least the time of log likelihood Iγ calculation, and a storage circuit for holding this information is provided. It was necessary to deal with.
[0886]
Therefore, as described above, the soft
[0887]
By doing in this way, the
[0888]
5-4 Calculation and distribution of log likelihood Iγ
This is a feature relating to the
[0889]
5-4-1 Calculation and distribution of log likelihood Iγ for all input / output patterns
In order to realize decoding of an arbitrary code, the soft
[0890]
Here, consider the case of decoding the convolutional encoder shown in FIGS. The trellis in each of these convolutional encoders has a structure having 32 branches or less, and has at most 32 input / output patterns. Therefore, the soft
[0891]
In this way, the
[0892]
5-4-2 Calculation and distribution of log likelihood Iγ for at least some input / output patterns
By the way, in the case of the method shown in “5-4-1”, the Iγ Iγ distribution circuit 224 in the
[0893]
Therefore, the soft
[0894]
For the sake of specific explanation, the case where the convolutional encoder shown in FIGS. 14 to 17 is decoded is considered here. In this case, the convolutional encoder shown in FIG. 14 has at most 16 input / output patterns, and the convolutional encoder shown in FIG. 15 has at most 32 input / output patterns. The convolutional encoder shown in FIG. 16 has at most 8 input / output patterns, and the convolutional encoder shown in FIG. 17 has at most 16 input / output patterns. Here, the convolutional encoder shown in FIG. 15 having the largest number of input / output patterns has at most four input patterns and at most eight output patterns. Therefore, as schematically shown in FIG. 78, the soft
[0895]
By doing in this way, the
[0896]
5-4-3 Normalization for every input / output pattern for every time log likelihood Iγ
In the Log-BCJR algorithm, in general, only the difference value between the log likelihoods affects the result, and the greater the log likelihood value, the higher the importance.
[0897]
However, the logarithmic likelihood Iγ is biased in the distribution of values with the passage of time in the calculation process, and after a certain period of time, the system that calculates the log likelihood Iγ exceeds the range of values that can be expressed. May end up.
[0898]
For example, when the log likelihood Iγ is calculated by a system that handles only positive values, such as hardware, the value of the log likelihood Iγ gradually increases. The range of values that can be represented is exceeded. Considering the case where the log likelihood Iγ is calculated by a system that handles only negative values, such as a system that performs floating-point arithmetic, in this case, the value of the log likelihood Iγ gradually decreases, After a certain period of time, the range of values that can be expressed as software is exceeded. In this way, the log likelihood Iγ exceeds the range of values that can be expressed, and the log likelihood Iγ that exceeds the range of values that can be expressed is clipped.
[0899]
Therefore, the soft
[0900]
Specifically, when the soft
[0901]
Specifically, when the
[0902]
For example, the
[0903]
In addition, when the
[0904]
For example, the
[0905]
The soft
[0906]
The
[0907]
Note that the
[0908]
5-4-4 Normalization to log likelihood Iγ for at least some input / output patterns
The soft
[0909]
Specifically, when the
[0910]
In addition, when the
[0911]
That is, the soft
[0912]
The soft
[0913]
The
[0914]
However, in this case, depending on the code configuration, the maximum value or minimum value of the final log likelihood Iγ may not match the maximum value or minimum value that can be expressed by the
[0915]
Even in this case, the
[0916]
5-5 Calculation of log likelihoods Iα and Iβ
This is a feature related to the
[0917]
5-5-1 Calculation of Sum of Log Likelihood Iα and Log Likelihood Iγ
In the soft output decoding, when calculating the logarithmic soft output Iλ, it is necessary to obtain in advance the sum of the log likelihood Iα and the log likelihood Iγ as shown in the above equation (55). That is, in soft output decoding, it is usually necessary to separately provide a circuit for calculating the sum of log likelihood Iα and log likelihood Iγ in order to calculate log soft output Iλ. Therefore, there is a possibility that the scale of the circuit that calculates the logarithmic soft output Iλ increases.
[0918]
Therefore, the soft
[0919]
By doing so, the
[0920]
5-5-2 Preprocessing for parallel path
For example, there is a case where it is desired to decode a code having a parallel path on the trellis, such as the code by the convolutional encoder shown in FIG. Here, taking the case of the convolutional encoder shown in FIG. 17 as an example, as shown in FIG. 25, the trellis is a set of two parallel paths from each state to the state at the next time. The structure reaches 4 sets. That is, the trellis in this case has a structure in which eight paths reach each state.
[0921]
Here, it is noted that the parallel path has the same transition source state and the same transition destination state. That is, it is noted that the parallel path can be fake as a single path. By paying attention to this point, the soft
[0922]
By doing so, the
[0923]
The
[0924]
5-5-3 Common use of addition comparison selection circuit
The
[0925]
Here, consider the case of decoding codes by the four types of convolutional encoders shown in FIGS. In this case, the addition comparison selection processing circuit corresponding to the code by the convolutional encoder shown in FIG.1= A thing corresponding to a trellis having a structure where two paths reach is required. Further, as an addition comparison selection processing circuit corresponding to the code by the convolutional encoder shown in FIGS. 15 and 16, 2 states are transferred from each state to the state at the next time.2= A thing corresponding to a trellis having a structure where four paths reach is required. Further, the addition comparison selection processing circuit corresponding to the code by the convolutional encoder shown in FIG.ThreeA thing corresponding to a trellis having a structure in which 8 paths can be reached is required.
[0926]
By the way, the code by the convolutional encoder shown in FIG. 17 has a parallel path on the trellis. At this time, when parallel paths are bundled by the method shown in “5-5-2”, the trellis of this code is obtained from each state at the next time using the memory number ν = 2 in the convolutional encoder. To state 2ν = 22= It can be assumed that it has a structure that four paths can reach.
[0927]
Therefore, the soft
[0928]
Specifically, the soft
[0929]
By doing in this way, the
[0930]
Here, an addition comparison selection circuit corresponding to a code whose number of input bits to the element encoder is k = 3 is used as an addition comparison selection circuit corresponding to a code whose number of input bits to the element encoder is k = 2. The example shared with the circuit has been described. As the
[0931]
5-5-4 Output of log likelihood Iγ for calculating log soft output Iλ
When the parallel paths are bundled by the method shown in “5-5-2”, the processing of the addition comparison selection circuit in the
[0932]
Therefore, the soft
[0933]
By doing so, the
[0934]
5-5-5 Calculation of Sum of Log Likelihood Iα and Log Likelihood Iγ for Parallel Path
As shown in “5-5-1”, in order to calculate the logarithmic soft output Iλ, the sum Iα + Iγ of the log likelihood Iα and the log likelihood Iγ obtained in the process of calculating the log likelihood Iα is output. This is effective from the viewpoint of reducing the circuit scale, but in decoding a code having a parallel path on the trellis, the log likelihood Iα and logarithm obtained by the method shown in “5-5-1” are used. The sum Iα + Iγ with the likelihood Iγ cannot be output as it is.
[0935]
Therefore, the soft
[0936]
By doing so, the
[0937]
5-5-6 Selection of log likelihood according to code structure
As previously indicated in “5-1-2”, in the Bozencraft type convolutional encoder, since data is held in time series with respect to the delay elements, the state of the transition destination is limited, There is uniqueness in the trellis.
[0938]
Therefore, the soft
[0939]
For example, an example of a trellis in a convolutional encoder in which the number of memories is variable between “1”, “2”, “3”, and “4” as in the convolutional encoder shown in FIG. 83A, 83B, 83C and 83D, respectively, depending on the number of memories. That is, the trellis shown in FIG. 9A is an example when the number of memories is “1”, and the trellis shown in FIG. 10B is an example when the number of memories is “2”. The trellis shown in (C) is an example when the number of memories is “3”, and the trellis shown in FIG. 10D is an example when the number of memories is “4”.
[0940]
When these four trellises are combined with the state having the state number “0” and the trellises are overlapped, the result is as shown in FIG. In FIG. 83, the branch indicated by a solid line is a branch on the trellis shown in FIG. 83A, and the branch indicated by a broken line is a branch on the trellis shown in FIG. 83B, indicated by a one-dot chain line. The branch is a branch on the trellis shown in FIG. 83C, and the branch shown by a two-dot chain line is a branch on the trellis shown in FIG. 83D.
[0941]
As can be seen from FIG. 84, the branches that reach the states with the state numbers “0” and “1” include those in which the four branches overlap and those in which the four branches arrive from different states. . Therefore, when the number of memories of the convolutional encoder is made variable, one of the four branches reaching from different states may be selected according to the number of memories.
[0942]
In addition, there are branches that reach the states with state numbers “2” and “3”, in which three branches overlap each other and in which three branches arrive from different states. Therefore, when the number of memories of the convolutional encoder is made variable, one of the three branches reaching from different states may be selected according to the number of memories.
[0943]
Furthermore, the branches that reach the states with state numbers “4”, “5”, “6”, and “7” are those in which two branches overlap and two branches arrive from different states. There is. Therefore, when the number of memories of the convolutional encoder is made variable, one of the two branches reaching from different states may be selected according to the number of memories.
[0944]
Further, since the branch that reaches the state with the state number “8” or later is only the convolutional encoder shown in FIG. 83D, there is no need to perform the branch selection operation.
[0945]
Taking these into account, the 16 log-
[0946]
That is, the addition
[0947]
Further, the addition
[0948]
Further, the addition
[0949]
Furthermore, the addition
[0950]
In this way, the soft
[0951]
Here, the addition
[0952]
Further, in the above-described example, the description has been given assuming that a selector that performs a 4-to-1 selection at the maximum is provided. However, there is an arbitrary way to superimpose trellises, and depending on this superposition, the scale of the selector may be reduced. Is possible.
[0953]
5-5-7 Normalization to log-likelihood Iα, Iβ
Similar to the log likelihood Iγ described above, the log likelihoods Iα and Iβ are biased in the distribution of values with the lapse of time in the process of calculation, and after a lapse of a certain time, the log likelihoods Iα and Iβ are The calculation system may exceed the range of values that can be expressed.
[0954]
Therefore, the soft
[0955]
As the first normalization method, as in the normalization method for the log likelihood Iγ shown in “5-4-3”, when the
[0956]
The log-
[0957]
Here, in order to explain the case of normalizing the log likelihood Iα, the dynamic ranges of the log likelihood Iα and the log likelihood Iγ calculated one time ago are expressed as a and g, respectively. The
[0958]
At this time, the dynamic range of the sum Iα + Iγ of the log likelihood Iα and the log likelihood Iγ calculated by the
[0959]
The
[0960]
The soft
[0961]
The soft
[0962]
Specifically, the soft
[0964]
In particular, the soft
[0964]
This will be described using the log-
[0965]
At this time, the dynamic range of the sum Iα + Iγ of the log likelihood Iα and the log likelihood Iγ calculated by the
[0966]
When the
[0967]
Here, subtracting a half value of the dynamic range of the log likelihood Iα from the data after the log-sum operation is nothing but to invert the most significant bit of the data after the log-sum operation. That is, the
[0968]
As described above, when the soft
[0969]
Further, the soft
[0970]
The log-
[0971]
Here, the dynamic range of the log likelihood Iγ is represented by g, the dynamic range of the log likelihood Iα calculated one time ago is represented by a, and the dynamic range of the log likelihood Iα is x> a. 90. Assuming that the log likelihood Iα having the maximum value or the minimum value corresponding to the metric with the maximum probability is expressed as z <x / 2, the
[0972]
At this time, the dynamic range of the sum Iα + Iγ of the log likelihood Iα and the log likelihood Iγ calculated by the
[0973]
When the
[0974]
By performing such normalization, the soft
[0975]
5-5-8 Calculation of correction term in log-sum correction
When calculating a correction term in log-sum correction, the absolute value of the difference value is usually calculated by comparing the magnitudes of the difference values of the two input data, and the correction term corresponding to the absolute value is calculated. Calculate the value. In other words, the log-
[0976]
Here, in the log-
[0977]
Therefore, as shown in FIG. 35, the soft
[0978]
A log-
[0979]
As described above, the soft
[0980]
5-5-9 Generation of control signal for selection in log-sum operation
When calculating the correction term in the log-sum correction, a determination statement for comparing the magnitudes of the two data is created as in the selection control
[0981]
[56]
[0982]
Further, as described above, the correction term in log-sum correction has the property of asymptotically approaching a predetermined value, so that the absolute value of the difference value between the two data serving as variables is clipped to the predetermined value. It should be. Specifically, the determination statement of the control signal SL created by the selection control
[0983]
[Equation 57]
[0984]
Here, if the data AM0 and AM1 are each composed of 12 bits, the selection control
[0985]
Therefore, the selection control
[0986]
First, let us consider generating a control signal SEL consisting of the determination sentence shown in the above equation (56).
[0987]
The correction
[0988]
[Formula 58]
[0989]
First, the correction
[0990]
Further, the correction
[0991]
Therefore, the selection control
[0992]
Next, it is considered that the control signal SL including the determination sentence shown in the above equation (57) is generated.
[0993]
Assuming that the data AM0 and AM1 are composed of 12 bits, the correction
[0994]
[Formula 59]
[0995]
First, the correction
[0996]
Further, the upper 6 bits AM0 [11: 6] of the data AM0 are larger by “1” than the upper 6 bits AM1 [11: 6] of the data AM1, and the lower 6 bits AM0 [5: 0] of the data AM0. However, even when it is smaller than the lower 6 bits AM1 [5: 0] of the data AM1, the absolute value of the difference value between the data AM0 and AM1 is less than a predetermined value, here less than 64. Here, when the lower 6 bits AM0 [5: 0] of the data AM0 are smaller than the lower 6 bits AM1 [5: 0] of the data AM1, considering the above, the most significant bit of the difference value DA1 This is a case where DA1 [6] is “0”. Therefore, the selection control
[0997]
Similarly, the upper 6 bits AM1 [11: 6] of the data AM1 are larger by “1” than the upper 6 bits AM0 [11: 6] of the data AM0, and the lower 6 bits AM1 [5: 0] of the data AM1. ] Is smaller than the lower 6 bits AM0 [5: 0] of the data AM0, the absolute value of the difference value between the data AM0 and AM1 is less than a predetermined value, here less than 64. Therefore, the selection control
[0998]
Therefore, the selection control
[0999]
As described above, the soft
[1000]
Although the selection control
[1001]
5-6 Calculation of logarithmic soft output Iλ
This is a feature related to the soft
[1002]
5-6-1 Cumulative addition of log-sum operation using enable signal
When calculating the logarithmic soft output Iλ, a cumulative addition operation of a log-sum operation corresponding to an input of each branch on the trellis is performed, and a cumulative addition operation of a log-sum operation corresponding to a branch whose input is “0”. It is necessary to take a difference between the result and the cumulative addition operation result of the log-sum operation corresponding to the branch whose input is “1”.
[1003]
Therefore, the soft
[1004]
Here, the log-sum operation circuit 312 in the soft
[1005]
For example, log-sum operation cell circuit 3251If both of the two enable signals EN000 and EN001 inputted to the signal indicate that the input is “0”, the log-sum operation cell circuit 3251Performs a log-sum operation using the two systems of data AGB000 and AGB001, and outputs the result as data AGB100. In addition, the log-sum operation cell circuit 3251If only the enable signal EN000 of the two systems of enable signals EN000 and EN001 input to the signal indicates that the input is “0”, the log-sum operation cell circuit 3251Adds a predetermined offset value N2 to data AGB000 out of the two systems of data AGB000 and AGB001, and outputs the result as data AGB100. Similarly, log-sum operation cell circuit 3251In the case where only the enable signal EN001 of the two systems of enable signals EN000 and EN001 input to the input signal indicates that the input is “0”, the log-sum operation cell circuit 3251Adds a predetermined offset value N2 to the data AGB001 and outputs the result as data AGB100. Further, the log-sum operation cell circuit 3251When both of the two enable signals EN000 and EN001 inputted to the signal indicate that the input is “1”, the log-sum operation cell circuit 3251Does not output the log-sum calculation results using the two systems of data AGB000 and AGB001 or the data AGB000 and AGB001 itself, but outputs data having a predetermined value as data AGB100. In addition, the log-sum operation cell circuit 3252, 32531Log-sum operation cell circuit 3251The same processing is performed to selectively output data AGB.
[1006]
In this way, the log-sum operation circuit 3121Can perform the cumulative addition operation of the log-sum operation using only the data AGB corresponding to the branch whose input is “0”.
[1007]
Similarly, the log-sum operation circuit 3122, ..., 3126Performs a cumulative addition operation of a log-sum operation using only data AGB corresponding to the branch whose input is “0” or “1”.
[1008]
In this way, the soft
[1009]
Here, the case of decoding a code having a trellis structure having 32 branches or less has been described, but it goes without saying that the soft
[1010]
5-6-2 Cumulative addition of log-sum operation without enable signal
By the way, in the case of the method shown in “5-6-1”, each log-sum operation circuit 312.1, ..., 3126Respectively selects 16 data AGBs whose input is “0” or “1” from 32 data AGBs, and performs a cumulative addition operation of log-sum operation using these 16 data AGBs. Is nothing but to do. Therefore, each log-sum operation circuit 3121, ..., 3126In actuality, only about half of the 31 log-sum operation cell circuits operate, which may reduce the efficiency.
[1011]
Therefore, the soft
[1012]
That is, as schematically shown in FIG. 93, the soft
[1013]
The soft
[1014]
In this way, the soft
[1015]
Also by such a method, the soft
[1016]
Here, the case of decoding a code having a trellis structure having 32 branches or less has been described, but it goes without saying that the soft
[1017]
5-7 Normalization for external information
This is a feature related to the external
[1018]
As described above, the soft
[1019]
Therefore, the soft
[1020]
Specifically, the soft
[1021]
Subsequently, as shown in FIG. 6C, the soft
[1022]
Then, as shown in FIG. 4D, the soft
[1023]
In this way, the soft
[1024]
Here, the case where external information for four symbols is calculated and normalized has been described, but the soft
[1025]
5-8 Hard decision of received value
This is a feature related to the
[1026]
When the received value is hard-decision, it is usually performed to obtain a tangent of the received value on the I / Q plane. However, in the case of this method, for example, if the in-phase component and the quadrature component are each expressed by 8 bits, it is necessary to divide the 8-bit data from each other. Incurs a delay.
[1027]
As an alternative method, for example, assuming that the in-phase component and the quadrature component are each expressed by 8 bits, a total of 16 bits = 65536 cases are divided, and the hard decision value in each case is expressed. Can be considered. However, this method is not realistic because it requires a huge amount of processing time.
[1028]
As another method, in order to compare the angle of the received value on the I / Q plane with the boundary of the hard decision region, it is possible to divide the received value and compare it with the tangent of the boundary angle. However, even in this method, it is necessary to divide 8-bit data, and since the boundary of the region is generally given by an irrational number, further examination of accuracy is required.
[1029]
Therefore, the soft
[1030]
Specifically, when the
[1031]
As described above, the soft
[1032]
By doing so, the soft
[1033]
Here, the case of demapping signal points by the 8PSK modulation method has been described, but this method can be applied to demapping of signal points by any PSK modulation method.
[1034]
6). Interleaver features
Next, description will be given for each feature related to the
[1035]
6-1 Multiple types of interleave functions
The
[1036]
As described above, the
[1037]
Specifically, when the
[1038]
As specific examples, those shown in FIGS. 55 to 61 may be considered. That is, the
[1039]
The
[1040]
As described above, the
[1041]
6-2 Common use of interleave memory circuit and delay memory circuit
This is a feature related to the function indicated by “6-1”, and the
[1042]
In iterative decoding, it is necessary to delay the received value by the same time as the processing time required by the interleaver, that is, the time corresponding to the interleave length. Here, when decoding a plurality of types of codes, the number of symbols to be delayed changes and the number of storage circuits (RAM) required for the interleaving process also changes according to the code configuration.
[1043]
Therefore, as described above, the
[1044]
As specific examples, those shown in FIGS. 55 to 61 may be considered. That is, the
[1045]
By doing so, the
[1046]
6-3 Operation control of memory circuit by clock blocking signal
As described above, the
[1047]
In such an
[1048]
Therefore, the
[1049]
More specifically, in the
[1050]
As described above, the
[1051]
6-4 Deinterleave function
As described above, the
[1052]
In general, when performing interleaving, data is written to the storage circuit using sequential address data, and data is read from the storage circuit using random address data. On the other hand, when performing the deinterleave process, it is necessary to reversely convert the address data used in the interleave process in order to generate address data for reading. Therefore, when iterative decoding is performed, address data for conversion for using the address data used in the deinterleave process for the interleave process and reverse conversion for using the address data used for the interleave process for the deinterleave process There is a need to individually hold two types of address data, ie, the address data, and there is a risk of squeezing the circuit scale.
[1053]
Therefore, when performing the interleaving process, the
[1054]
Specifically, as described above, when performing interleaving processing, the
[1055]
On the other hand, as described above, the
[1056]
Thus, the
[1057]
The
[1058]
The
[1059]
Specifically, the selector 6031If the interleave mode signal CDIN indicates that the
[1060]
On the other hand, the selector 6031If the interleave mode signal CDIN indicates that the
[1061]
In this manner, the
[1062]
6-5 Generation of write address and read address
When generating a write address and a read address, sequential address data is usually generated by counting up by a counter. Here, when the counter for the write address and the counter for the read address are shared, reading of data from the storage circuit cannot be started until the writing of the next frame to the storage circuit is started.
[1063]
That is, when the interleaver shares the write address counter and the read address counter, as shown in FIG. 97, when the interleave start position signal indicated by A is input, the storage circuit of bank A Data is written to. Subsequently, when the next interleave start position signal indicated by B is input, the interleaver reads data stored in the storage circuit of bank A and writes data to the storage circuit of bank B. Done. Similarly, when the next interleave start position signal indicated by C is input, the interleaver reads data stored in the storage circuit in bank B and writes data to the storage circuit in bank A. Done.
[1064]
In this manner, when the write address counter and the read address counter are shared, the interleaver starts reading data from the storage circuit simultaneously with the start of writing of the next frame to the storage circuit. .
[1065]
Here, in general, the input timing of frames input from the outside changes, and the frames are not always input to the interleaver at regular intervals. That is, the interleaver normally needs to operate without grasping the timing when the next frame is input.
[1066]
In consideration of iterative decoding under such circumstances, it is necessary to interleave the external information and delay the received value. However, in the interleaver, the input timing of the received value is different for each frame. Therefore, there may be a difference in delay amount. That is, in the interleaver, the time between the two interleave start position signals indicated by A and B and the time between the two interleave start position signals indicated by B and C in FIG. The amount of delay may vary. In this case, since it is difficult for the interleaver to match the input timing of the received value to be delayed, complicated processing is required to realize iterative decoding.
[1067]
In view of this, the
[1068]
Specifically, as shown in FIG. 98, when the interleave start position signal TIS indicated by A is input to the
[1069]
In this manner, the
[1070]
6-6 Delay function for interleave length
As shown in “6-5”, when the counter for the write address and the counter for the read address are individually provided, the
[1071]
By doing in this way, the
[1072]
By adopting such an easy method, the
[1073]
6-7 How to use address space
This is a feature related to an address expression technique when performing interleaving for inputting a plurality of symbols and outputting a plurality of symbols.
[1074]
Normally, a continuous address is assigned to the RAM in the memory circuit, and data is written using this continuous address space. Here, when performing interleaving for inputting a plurality of symbols and outputting a plurality of symbols, it is assumed that continuous addresses are assigned to RAMs in a plurality of memory circuits.
[1075]
For example, when interleaving is performed such that 3 symbol data is input as an input symbol and 3 symbol data is output as an output symbol, RAM0, RAM1, RAM2, RAM3, RAM4, RAM5 of nine storage circuits. , RAM6, RAM7, and RAM8, when interleaving is performed, as shown in FIG. 99, for the RAM0, RAM3, and RAM6, the 0th symbol data I0 (= I0 [0], I0 [1] , I0 [2],..., I0 [31]) are sequentially written in the word direction for each time slot, and the first symbol data I1 (= I1 [0] for RAM1, RAM4, and RAM7. ], I1 [1], I1 [2],..., I1 [31]) are sequentially written in the word direction for each time slot. For RAM5 and RAM8, the second symbol data I2 (= I2 [0], I2 [1], I2 [2],..., I2 [31]) is transmitted in the word direction for each time slot. Written sequentially. Then, one system of interleaver output data IIO0 is read from RAM0, RAM1, and RAM2, and another system of interleaver output data IIO1 is read from RAM3, RAM4, and RAM5, and RAM6, RAM7, From the
[1076]
At this time, as shown in FIG. 100, when data is written, assuming that continuous addresses from 0 to 31, for example, are assigned to RAM0, RAM3, and RAM6, RAM1, RAM4, and RAM7, respectively. Are assigned consecutive addresses from 32 to 63, and further, RAM2, RAM5 and RAM8 are assigned continuous addresses from 64 to 95, respectively.
[1077]
This is the same even when data is not stored in all the storage areas of each RAM when the interleave length is made variable.
[1078]
For example, RAM0, RAM1, RAM2, RAM3, RAM4, RAM5, RAM6, RAM7, and RAM8 can each perform interleaving for an interleave length of 32 time slots in the example shown in FIG. In the case of 10 time slots, for example, as shown in FIG. 101, for the RAM0, RAM3, and RAM6, the 0th symbol data I0 (= I0) in the entire storage area for 32 time slots. [0], I0 [1], I0 [2],..., I0 [9]) are sequentially written in the word direction for each time slot, and no data is written in the remaining storage areas. For the RAM1, RAM4, and RAM7, the first symbol data I1 (= I1 [0], I1 [1], I1 [2],. .., I1 [9]) are sequentially written in the word direction for each time slot, and no data is written in the remaining storage areas. Further, for the RAM2, RAM5, and RAM8, the second symbol data I2 (= I2 [0], I2 [1], I2 [2],. .., I2 [31]) are sequentially written in the word direction for each time slot, and no data is written in the remaining storage areas.
[1079]
At this time, as shown in FIG. 102, when writing data, continuous addresses from 0 to 9, for example, are assigned to RAM0, RAM3, and RAM6, respectively. A plurality of physically different RAMs are assigned such that 10 to 19 consecutive addresses are assigned, and 20 to 29 consecutive addresses are assigned to RAM2, RAM5, and RAM8, respectively. Are assigned consecutive addresses.
[1080]
However, when data is written to the RAM using such an address space, it is necessary to convert the address into an address indicating a combination of a time slot and an input symbol when reading the data. For example, when reading data stored in the address space “12” from the
[1081]
Therefore, when data is written by assigning continuous addresses to each RAM, it is necessary to provide a conversion circuit for converting addresses when reading data. In particular, when the number of symbols is not a power of 2, the address conversion operation is complicated.
[1082]
Therefore, the
[1083]
Specifically, as described above, the
[1084]
Actually, the address assignment shown in the figure is equivalent to the address assignment shown in FIG. For example, let us consider a case where data stored in the address space “34” is read from the
[1085]
For example, when performing interleaving with an interleave length of 10 time slots, the
[1086]
It can be seen that the address assignments shown in the figure are substantially the same as the address assignments shown in FIG. Therefore, the
[1087]
As described above, the
[1088]
The
[1089]
6-8 Data writing and reading by partial write function
The
[1090]
As described above, the
[1091]
This is because the interleave length is normally limited in accordance with the number of words in the RAM when a RAM having restrictions on both the number of bits and the number of words is used for the interleaver. In other words, the
[1092]
At this time, since the
[1093]
Therefore, in the
[1094]
Specifically, the
[1095]
That is, the
[1096]
Here, the data VIH indicates whether or not data is written to the upper address in the bit direction in the storage area of the
[1097]
At the same time, the
[1098]
Then, the
[1099]
As described above, the
[1100]
Then, the
[1101]
At this time, the data OR is always configured such that the data OH and OL read from the
[1102]
In this way, the
[1103]
On the other hand, the
[1104]
That is, the
[1105]
At the same time, the
[1106]
Then, since the data VIH and VIL are both “00000000”, the
[1107]
As described above, the
[1108]
Then, the
[1109]
As described above, the
[1110]
By doing so, the
[1111]
Although the description has been given here assuming that the storage capacity of the
[1112]
That is, as an interleaver, the data input to the storage circuit is divided into at least two upper bits and lower bits to obtain at least two symbols of data. During the partial write function, among these at least two symbols of data, The same data is always selected, and the data may be selected so that the read data corresponding to the address is always at the same position in the output data.
[1113]
6-9 Dealing with even length delay and odd length delay
The odd-length
[1114]
When iterative decoding with variable code length is performed, it is necessary to perform variable length delay. The
[1115]
In order to explain this operation in a simplified manner, FIG. 106 shows an example in which an interleave length delay of 6 time slots is realized by using 2 banks of RAM having the number of words for 3 time slots. Here, it is assumed that addresses 0, 1, and 2 are assigned to the RAMs of banks A and B, respectively, for convenience. In the RAM of bank A, data A, C, and E are stored in advance for the storage areas of
[1116]
First, in the 0th time slot, the
[1117]
Subsequently, the
[1118]
Subsequently, the
[1119]
Subsequently, in the third time slot, the
[1120]
Subsequently, the
[1121]
Subsequently, in the fifth time slot, the
[1122]
The
[1123]
The
[1124]
As described above, when the
[1125]
By the way, in the case of delay processing by this method, since the storage capacity of the RAM is small, the circuit scale can be reduced, but the delay length is limited to an even length.
[1126]
Therefore, the
[1127]
Specifically, as described above, when the
[1128]
By doing so, the
[1129]
6-10 I / O order switching function
This is a feature related to the input
[1130]
As described above, the soft
[1131]
As described above, not only the soft
[1132]
For example, in the case where the
[1133]
By the way, when the convolutional encoder that performs encoding of the inner code in the encoding apparatus as shown in FIG. 108 is used and the soft
[1134]
Here, the convolutional encoder shown in FIG.0, I1, I2Are the 0th, 1st and 2nd symbols, respectively, the input data i of the first symbol as compared with the convolutional encoder shown in FIG.1And input data i of the second symbol2It turns out that it is what replaced. That is, as shown in FIG. 109, the encoding apparatus including the convolutional encoder shown in FIG. 108 inputs 3-bit encoded data output from the convolutional encoder that encodes the outer code to the interleaver. In this case, the convolutional encoder shown in FIG. 24 is used as a convolutional encoder that replaces the encoded data of the first symbol and the encoded data of the second symbol and performs encoding of the inner code. It can be seen that this is equivalent to an encoding device.
[1135]
As described above, the
[1136]
In other words, on the encoding side, when interleaving is performed individually for each symbol, for example, inline interleaving or pairwise interleaving, the position of the input / output symbol is uniquely determined. It cannot be denied that there is a demand for performing a wide range of coding by performing coding with changing positions. In particular, in the case of an encoding apparatus that uses a Massy code as an element code, various encodings can be performed by switching the output positions of tissue components. Therefore, it is necessary for the decoding apparatus to cope with decoding of such codes.
[1137]
Therefore, the
[1138]
Specifically, when performing interleaving processing,
[1139]
Further, when performing the deinterleave process, the
[1140]
In other words, assuming that the
[1141]
That is, the
[1142]
On the other hand, the
[1143]
By doing in this way, the
[1144]
Therefore, even when the
[1145]
Here, the example in which the function of changing the order of the symbols is provided in the
[1146]
When the function of changing the order of each symbol is provided as a function of the soft
[1147]
That is, the
[1148]
On the other hand, the
[1149]
In this way, the soft
[1150]
Note that the
[1151]
7). Summary
As described above, in the data transmission / reception system configured using the
[1152]
That is, the data transmission / reception system configured using the
[1153]
The present invention is not limited to the above-described embodiment. For example, in the above-described embodiment, the
[1154]
In the above-described embodiment, the correction term value is calculated by the soft
[1155]
Further, in the above-described embodiment, the maximum number of symbols input / output to / from
[1156]
Furthermore, in the above-described embodiment, the
[1157]
In the above-described embodiment, random interleaving, inline interleaving, and pairwise interleaving have been described as interleaving types that can be handled by the
[1158]
Furthermore, in the above-described embodiment, the decoding apparatus is described as performing MAP decoding based on the Log-BCJR algorithm. However, the present invention is not limited to the Max-Log-BCJR algorithm or “Bahl, Cocke, Jelinek and Raviv”. MAP decoding based on the BCJR algorithm described in "Optimal decoding of linear codes for minimizing symbol error rate", IEEE Trans. Inf. Theory, vol. IT-20, pp. 284-287, Mar. 1974 Even a decoding device can be applied.
[1159]
Furthermore, in the above-described embodiment, the encoding device and the decoding device have been described as being applied to a transmission device and a reception device in a data transmission / reception system. It can also be applied to a recording and / or reproducing apparatus that performs recording and / or reproduction on a recording medium such as a magnetic, optical or magneto-optical disk. In this case, the data encoded by the encoding device is recorded on a recording medium equivalent to the memoryless communication path, and is decoded and reproduced by the decoding device.
[1160]
As described above, it goes without saying that the present invention can be modified as appropriate without departing from the spirit of the present invention.
[1161]
【The invention's effect】
As described above in detail, the interleaving apparatus according to the present invention is an interleaving apparatus used to repeatedly decode codes generated by concatenating a plurality of element codes via an interleaver, and stores data. A plurality of storage means, address generating means for generating sequential first address data and sequential second address data, and the order of input data based on the same replacement position information as the interleaver When performing interleaving processing for replacement and rearrangement, the first address data is used for writing data to the storage means, and from the address storage means corresponding to the second address data generated by the address generation means. Random third address data to be read is stored as data from the storage means. When deinterleaving is performed in which the order of the input data is replaced and rearranged so that the array of information rearranged by the interleaver is restored, the third address data is stored in the storage unit. Switching means for switching the first address data to be used for reading data from the storage means.
[1162]
Therefore, the interleaving apparatus according to the present invention shares the same address data between the interleaving process and the deinterleaving process, and the switching unit switches these address data according to the interleaving process and the deinterleaving process. Thus, the interleaving process and the deinterleaving process can be realized with the same configuration with a simple configuration with a small circuit scale, and excellent convenience can be provided.
[1163]
An interleaving method according to the present invention is an interleaving method used to repeatedly decode a code generated by concatenating a plurality of element codes through an interleaving process, and includes a sequential first address data and a sequential In the case of performing an interleaving process that replaces and rearranges the order of input data based on the same replacement position information as that of the interleaver and the address generation process that generates the second address data, The address data is used for writing data to a plurality of storage means for storing data, and a random third address read from the address storage means corresponding to the second address data generated in the address generation step The data is used to read data from the storage means and When deinterleaving processing is performed in which the order of the input data is changed so as to restore the arrangement of the information rearranged by the memory, the third address data is used for writing data to the storage means. And a switching step of switching to use the first address data for reading the data from the storage means.
[1164]
Therefore, the interleaving method according to the present invention is configured by sharing the same address data between the interleaving process and the deinterleaving process, and switching these address data according to the interleaving process and the deinterleaving process. With this configuration, it is possible to realize interleaving processing and deinterleaving processing with the same configuration, and it is possible to provide excellent convenience.
[1165]
Furthermore, the decoding apparatus according to the present invention obtains a probability of passing through an arbitrary state based on a received value that is a soft input, and uses this probability to generate a plurality of element codes concatenated via an interleaver. A decoding apparatus corresponding to an element code for repeatedly decoding a generated code, receives a reception value and prior probability information, performs soft output decoding, and generates soft output and / or external information at each time A soft output decoding means and an interleaving process for inputting external information generated by the soft output decoding means and replacing the order of the external information based on the same replacement position information as the interleaver, or an interleaver Interleaving means for performing a deinterleaving process that rearranges and rearranges the order of the external information so as to restore the information array rearranged by The leave means is based on a plurality of storage means for storing data, address generation means for generating sequential first address data and sequential second address data, and replacement position information identical to that of the interleaver. When interleaving processing is performed in which the order of the input data is replaced and rearranged, the first address data is used for writing data to the storage means, and the second address data generated by the address generating means is used as the second address data. Correspondingly, the data input so that the random third address data read from the address storage means is used for reading the data from the storage means, and the arrangement of the information rearranged by the interleaver is restored. When performing deinterleave processing that rearranges and rearranges With use in writing data to the address data storage means, and a switching means for switching to use the first address data for reading data from the storage means.
[1166]
Therefore, the decoding apparatus according to the present invention inputs the external information obtained by the soft output decoding to the interleaving means, shares the same address data between the interleaving process and the deinterleaving process, and the switching means By switching the address data in accordance with the interleaving process and the deinterleaving process, the interleaving process and the deinterleaving process can be realized with the same configuration with a simple configuration with a small circuit scale. Can be provided.
[1167]
Furthermore, the decoding method according to the present invention obtains a probability of passing an arbitrary state based on a received value that is a soft input, and uses this probability to convert a plurality of element codes through a first interleaving step. A decoding method corresponding to an element code for iteratively decoding a concatenated code, wherein a received value and prior probability information are input to perform soft output decoding, and a soft output and / or external at each time A soft output decoding step for generating information and external information generated in the soft output decoding step are input, and the order of the external information is replaced and arranged based on the same replacement position information as in the first interleaving step. Interleave processing to be replaced, or deinterleave processing to rearrange and rearrange the order of external information so as to restore the information array rearranged in the first interleaving step. Two interleaving processes, and the second interleaving process includes a first address generation process for generating sequential first address data and sequential second address data, and an interleaving process. Are used for writing data to a plurality of storage means for storing data, and a random third read out from the address storage means corresponding to the second address data generated in the address generation step. When address data is used for reading data from the storage means and deinterleaving is performed, the third address data is used for writing data to the storage means, and the first address data is data from the storage means. Switching step to switch to use for reading .
[1168]
Therefore, the decoding method according to the present invention inputs the external information obtained by the soft output decoding to be used in the second interleaving process, and shares the same address data between the interleaving process and the deinterleaving process. By switching these address data according to interleave processing and deinterleave processing, it is possible to realize interleave processing and deinterleave processing with the same configuration with a simple configuration, providing excellent convenience It is possible to do.
[1169]
Also, the decoding apparatus according to the present invention obtains a probability of passing through an arbitrary state based on a received value that is a soft input, and generates a plurality of element codes concatenated via an interleaver using this probability. A decoding device that repeatedly decodes the generated code, the decoding device comprising a plurality of concatenated element decoders, each of which receives a received value and prior probability information and outputs a soft output Soft output decoding means for decoding and generating soft output and / or external information at each time, and external information generated by the soft output decoding means are input, based on the same replacement position information as the interleaver, Interleave processing that rearranges and rearranges the order of external information, or rearranges the order of external information so that the array of information rearranged by the interleaver is restored. Interleaving means for performing interleaving processing, wherein the interleaving means includes a plurality of storage means for storing data, address generating means for generating sequential first address data, and sequential second address data, and interleaving means. When performing an interleaving process that replaces and rearranges the order of input data based on the same replacement position information as that of the Lever, the first address data is used for writing data to the storage means, and the address generation means Random third address data read from the address storage means corresponding to the second address data generated by the above is used for reading data from the storage means, and the array of information rearranged by the interleaver is used. In order to restore the original order, In the case of performing deinterleave processing for rearranging, the switching means for switching to use the third address data for writing data to the storage means and to use the first address data for reading data from the storage means. And have.
[1170]
Therefore, the decoding apparatus according to the present invention inputs the external information obtained by the soft output decoding to the interleaving means when performing iterative decoding, and shares the same address data between the interleaving process and the deinterleaving process. By switching the address data according to the interleaving process and the deinterleaving process by the switching means, the interleaving process and the deinterleaving process can be realized with the same configuration with a simple configuration with a small circuit scale. Can provide excellent convenience.
[1171]
Furthermore, the decoding method according to the present invention obtains a probability of passing through an arbitrary state based on a received value that is a soft input, and uses this probability to concatenate a plurality of element codes via a first interleaving step. A decoding method for iteratively decoding the generated code, in which a plurality of element decoding steps are continuously performed, and each of these element decoding steps includes a received value and a prior probability, respectively. A soft output decoding process for performing soft output decoding by inputting information and generating soft output and / or external information at each time, and external information generated by the soft output decoding process are input, and first interleaving is performed. Based on the same replacement position information as in the process, the interleaving process in which the order of the external information is replaced and rearranged, or the arrangement of the information rearranged in the first interleaving process is restored. A second interleaving process for performing a deinterleaving process for rearranging by rearranging the order of the external information, and the second interleaving process includes sequential first address data, sequential second address data, In the case of performing an address generation process for generating an interleave process and the interleave process, the first address data is used for writing data to a plurality of storage means for storing data, and the second address generated in the address generation process is used. In the case where random third address data read from the address storage means corresponding to the address data is used for reading data from the storage means and deinterleaving is performed, the third address data is stored in the storage means. Used to write data and stores the first address data And a switching step of switching to use for reading data from the device.
[1172]
Therefore, in the decoding method according to the present invention, when iterative decoding is performed, external information obtained by soft output decoding is input to be used in the second interleaving process, and the interleaving process and the deinterleaving process are performed. By sharing the same address data and switching these address data according to the interleave process and deinterleave process, it is possible to implement the interleave process and deinterleave process with the same configuration with a simple configuration It is possible to provide excellent convenience.
[Brief description of the drawings]
FIG. 1 is a block diagram illustrating a configuration of a communication model to which a data transmission / reception system shown as an embodiment of the present invention is applied.
FIG. 2 is a block diagram illustrating a configuration of an example of an encoding device in the data transmission / reception system, and is a block diagram illustrating a configuration of an encoding device that performs encoding by PCCC.
3 is a block diagram illustrating an example of a configuration of a decoding device in the data transmission / reception system, and is a block diagram illustrating a configuration of a decoding device that performs code decoding by the encoding device illustrated in FIG. 2. FIG.
FIG. 4 is a block diagram illustrating an exemplary configuration of an encoding device in the data transmission / reception system, and is a block diagram illustrating a configuration of an encoding device that performs encoding by SCCC.
5 is a block diagram illustrating an example of a configuration of a decoding device in the data transmission / reception system, and is a block diagram illustrating a configuration of a decoding device that performs code decoding by the encoding device illustrated in FIG. 4. FIG.
FIG. 6 is a block diagram illustrating a schematic configuration of an element decoder.
FIG. 7 is a block diagram illustrating a detailed configuration of a left half portion of the element decoder.
FIG. 8 is a block diagram illustrating a detailed configuration of a right half part of the element decoder.
FIG. 9 is a block diagram illustrating a configuration of a decoded received value selection circuit included in the element decoder.
FIG. 10 is a block diagram illustrating a configuration of an edge detection circuit included in the element decoder.
FIG. 11 is a block diagram illustrating a schematic configuration of a soft output decoding circuit included in the element decoder.
FIG. 12 is a block diagram illustrating a detailed configuration of a left half portion of the soft output decoding circuit.
FIG. 13 is a block diagram illustrating a detailed configuration of a right half portion of the soft output decoding circuit.
FIG. 14 is a block diagram illustrating a configuration example of a Bowsencraft type convolutional encoder.
FIG. 15 is a block diagram illustrating another example of the configuration of a Bosencraft type convolutional encoder.
FIG. 16 is a block diagram illustrating a configuration example of a Massy-type convolutional encoder.
FIG. 17 is a block diagram illustrating another configuration example of a Massy-type convolutional encoder.
18 is a block diagram illustrating a specific configuration example of a convolutional encoder illustrated in FIG.
FIG. 19 is a diagram for explaining a trellis in the convolutional encoder shown in FIG. 18;
20 is a block diagram illustrating a specific configuration example of a convolutional encoder illustrated in FIG.
FIG. 21 is a diagram for explaining a trellis in the convolutional encoder shown in FIG. 20;
22 is a block diagram illustrating a specific configuration example of a convolutional encoder illustrated in FIG.
23 is a diagram for explaining a trellis in the convolutional encoder shown in FIG.
24 is a block diagram illustrating a specific configuration example of a convolutional encoder illustrated in FIG.
FIG. 25 is a diagram for explaining a trellis in the convolutional encoder shown in FIG. 24;
FIG. 26 is a block diagram illustrating a configuration of an internal erasure information generation circuit included in the soft output decoding circuit.
FIG. 27 is a block diagram illustrating a configuration of a termination information generation circuit included in the soft output decoding circuit.
FIG. 28 is a block diagram illustrating a configuration of a reception value and prior probability information selection circuit included in the soft output decoding circuit;
FIG. 29 is a block diagram illustrating a configuration of an Iγ calculation circuit included in the soft output decoding circuit.
FIG. 30 is a block diagram illustrating a configuration of an Iγ distribution circuit included in the soft output decoding circuit.
FIG. 31 is a block diagram illustrating a configuration of an Iβ0 parallel path processing circuit included in the Iγ distribution circuit;
FIG. 32 is a block diagram illustrating a configuration of a parallel path log-sum operation circuit included in the Iβ0 parallel path processing circuit;
FIG. 33 is a block diagram illustrating a configuration of an Iα calculation circuit included in the soft output decoding circuit.
FIG. 34 is a block diagram for explaining the configuration of an addition comparison / selection circuit included in the Iα calculation circuit, for a code in which two paths arrive from each state on the trellis to a state at the next time; It is a block diagram explaining the structure of the addition comparison selection circuit which processes.
FIG. 35 is a block diagram illustrating a configuration of a correction term calculation circuit included in the addition comparison / selection circuit.
FIG. 36 is a block diagram for explaining the configuration of an addition comparison / selection circuit included in the Iα calculation circuit, for codes in which four paths arrive from each state on the trellis to the state at the next time; It is a block diagram explaining the structure of the addition comparison selection circuit which processes.
FIG. 37 is a block diagram illustrating a configuration of an Iα + Iγ calculation circuit included in the Iα calculation circuit.
FIG. 38 is a block diagram illustrating a configuration of an Iβ calculation circuit included in the soft output decoding circuit.
FIG. 39 is a block diagram for explaining the configuration of an addition comparison selection circuit included in the Iβ calculation circuit, for a code in which two paths arrive from each state on the trellis to a state at the next time; It is a block diagram explaining the structure of the addition comparison selection circuit which processes.
FIG. 40 is a block diagram for explaining the configuration of an addition comparison selection circuit included in the Iβ calculation circuit, for codes in which four paths reach from each state on the trellis to the state at the next time; It is a block diagram explaining the structure of the addition comparison selection circuit which processes.
FIG. 41 is a block diagram illustrating a configuration of a soft output calculation circuit included in the soft output decoding circuit.
FIG. 42 is a block diagram illustrating a configuration of a log-sum operation circuit included in the soft output calculation circuit.
FIG. 43 is a block diagram illustrating a configuration of a reception value or prior probability information separation circuit included in the soft output decoding circuit;
44 is a block diagram illustrating a configuration of an external information calculation circuit included in the soft output decoding circuit. FIG.
FIG. 45 is a block diagram illustrating a configuration of a hard decision circuit included in the soft output decoding circuit.
FIG. 46 is a block diagram for explaining the concept of a delay RAM in an interleaver included in the element decoder.
FIG. 47 is a block diagram for explaining the concept of a delay RAM, and is a block diagram for explaining that it is composed of a plurality of RAMs.
FIG. 48 is a block diagram for explaining the concept of a delay RAM, and is a block diagram for explaining a state in which an address generated by a control circuit included in the interleaver is appropriately converted and given to each RAM. It is.
FIG. 49 is a block diagram for explaining the concept of an interleaving RAM in the interleaver.
FIG. 50 is a block diagram for explaining the concept of an interleaving RAM, which is converted into an address used for each of banks A and B based on a sequential write address and a random read address; It is a block diagram for demonstrating a mode given to.
FIGS. 51A and 51B are diagrams for explaining types of interleaving performed by the interleaver, in which FIG. 51A shows random interleaving with respect to input data of one symbol, and FIG. 51B shows randomness with respect to input data of two symbols; (C) shows inline interleaving for 2-symbol input data, (D) shows pair-wise interleaving for 2-symbol input data, and (E) shows random interleaving for 3-symbol input data. (F) shows inline interleaving for 3-symbol input data, and (G) shows pair-wise interleaving for 3-symbol input data.
FIG. 52 is a block diagram illustrating a configuration of the interleaver.
FIG. 53 is a block diagram illustrating a configuration of an odd-length delay compensation circuit included in the interleaver.
FIG. 54 is a block diagram illustrating a configuration of a memory circuit included in the interleaver.
FIG. 55 is a diagram for explaining a method of using a RAM in the interleaver, in which, when random interleaving is performed on input data of one symbol, (A) shows a delay RAM; (B) shows a RAM for interleaving, (C) shows a RAM for addresses, and (D) shows a RAM that is not used.
FIG. 56 is a diagram for describing a method of using a RAM in the interleaver, in which, when random interleaving is performed on 2-symbol input data, (A) shows a delay RAM; (B) shows a RAM for interleaving, (C) shows a RAM for addresses, and (D) shows a RAM that is not used.
FIG. 57 is a diagram for explaining a method of using a RAM in the interleaver, and (A) shows a delay RAM when inline interleaving is performed on 2-symbol input data; (B) shows the RAM for interleaving, and (C) shows the RAM for addressing.
FIG. 58 is a diagram for explaining a method of using a RAM in the interleaver, and in the case of performing pair-wise interleaving on input data of two symbols, (A) shows a delay RAM; (B) shows a RAM for interleaving, (C) shows a RAM for addresses, and (D) shows a RAM that is not used.
FIG. 59 is a diagram for describing a method of using a RAM in the interleaver, in which random interleaving is performed on 3-symbol input data, (A) shows a delay RAM; (B) shows a RAM for interleaving, (C) shows a RAM for addresses, and (D) shows a RAM that is not used.
FIG. 60 is a diagram for describing a method of using a RAM in the interleaver, in which inline interleaving is performed on 3-symbol input data, (A) shows a delay RAM; (B) shows a RAM for interleaving, (C) shows a RAM for addresses, and (D) shows a RAM that is not used.
FIG. 61 is a diagram for explaining a method of using a RAM in the interleaver, and in the case where pair-wise interleaving is performed on input data of three symbols, (A) shows a delay RAM; (B) shows a RAM for interleaving, (C) shows a RAM for addresses, and (D) shows a RAM that is not used.
[Fig. 62] Fig. 62 is a block diagram illustrating a configuration of a decoding device configured by concatenating the same element decoders.
FIG. 63 is a block diagram illustrating a simplified configuration of two adjacent element decoders constituting the decoding apparatus, and information necessary for soft output decoding from information from the preceding element decoder; It is a block diagram explaining the structure which selects.
FIG. 64 is a block diagram for explaining a simplified configuration of two adjacent element decoders constituting the decoding apparatus, which is necessary for soft output decoding in the next stage element decoder by the previous stage element decoder; It is a block diagram explaining the structure which selects various information.
FIG. 65 is a block diagram illustrating a simplified configuration of two adjacent element decoders included in the decoding device, and a block diagram illustrating a configuration including a delay circuit that delays a received value.
FIG. 66 is a block diagram illustrating a simplified configuration of two adjacent element decoders included in the decoding apparatus, and includes a decoded reception value selection circuit that selects a reception value to be decoded; It is a block diagram to explain.
67 is a diagram for explaining a trellis in the convolutional encoder shown in FIG. 14, and is a diagram for explaining numbering based on a branch that is input as viewed from a transition destination state. FIG. ) Indicates the numbering when the number of memories is 4, (B) indicates the numbering when the number of memories is 3, (C) indicates the numbering when the number of memories is 2, ( D) is a diagram showing numbering when the number of memories is one.
68 is a diagram for explaining a trellis in the convolutional encoder shown in FIG. 14, and is a diagram for explaining numbering when a branch that is output as seen from a transition source state is used as a reference; (A) shows the numbering when the number of memories is 4, (B) shows the numbering when the number of memories is 3, (C) shows the numbering when the number of memories is 2, (D) is a diagram showing numbering when the number of memories is one.
69 is a diagram for explaining a trellis in the convolutional encoder shown in FIG. 15, and is a diagram for explaining numbering based on a branch that is input as viewed from a transition destination state; ) Shows numbering when the number of memories is 3, and (B) shows numbering when the number of memories is 2.
70 is a diagram for explaining a trellis in the convolutional encoder shown in FIG. 15, and is a diagram for explaining numbering based on branches that are output as seen from a transition source state; (A) shows the numbering when the number of memories is 3, and (B) shows the numbering when the number of memories is 2.
71 is a diagram for explaining trellises in the convolutional encoder shown in FIG. 16, and is a diagram for explaining numbering based on branches that are input as seen from the transition destination state; FIG. ) Shows numbering when the number of memories is 3, and (B) shows numbering when the number of memories is 2.
72 is a diagram for explaining trellises in the convolutional encoder shown in FIG. 16, and is a diagram for explaining numbering based on branches that are output as seen from the state of the transition source; (A) shows the numbering when the number of memories is 3, and (B) shows the numbering when the number of memories is 2.
73 is a diagram for explaining a trellis in the convolutional encoder shown in FIG. 17, and is a diagram for explaining numbering based on a branch that is input as viewed from a transition destination state; FIG. ) Shows numbering when the number of memories is 2, and (B) shows numbering when the number of memories is 1.
74 is a diagram for explaining a trellis in the convolutional encoder shown in FIG. 17, and is a diagram for explaining numbering when a branch that is output as viewed from a transition source state is used as a reference; (A) shows the numbering when the number of memories is 2, and (B) shows the numbering when the number of memories is 1.
FIG. 75 is a diagram showing a trellis for explaining the operation of generating termination information, and is a diagram for explaining an operation of inputting termination information for the number of input bits for the termination period.
FIG. 76 is a diagram showing a trellis for explaining the operation of generating termination information, and is a diagram for explaining the operation of inputting termination information in one time slot.
77 is a block diagram illustrating schematic configurations of the Iγ calculation circuit and the Iγ distribution circuit, and calculates log likelihoods Iγ for all input / output patterns and is determined according to a code configuration; FIG. It is a block diagram explaining the structure distributed according to a pattern.
78 is a block diagram illustrating a schematic configuration of the Iγ calculating circuit and the Iγ distributing circuit, calculating log likelihoods Iγ for at least some input / output patterns, and selecting a desired log likelihood Iγ. FIG. FIG.
FIG. 79 is a block diagram illustrating schematic configurations of the same Iγ calculating circuit and the same Iγ distributing circuit, and in the case of calculating log likelihoods Iγ for all input / output patterns, 1 for the log likelihood Iγ. It is a block diagram explaining the structure which performs normalization for every time.
FIG. 80 is a diagram for explaining normalization to log likelihood Iγ when the same element decoder treats log likelihood as a negative value, and (A) shows the log likelihood Iγ before normalization; A distribution example is shown, and (B) is a diagram showing a distribution example of log likelihood Iγ after normalization.
FIG. 81 is a diagram for explaining normalization to log likelihood Iγ when the same element decoder treats log likelihood as a positive value, and (A) shows the log likelihood Iγ before normalization; A distribution example is shown, and (B) is a diagram showing a distribution example of log likelihood Iγ after normalization.
FIG. 82 is a block diagram illustrating schematic configurations of the same Iγ calculating circuit and the same Iγ distributing circuit, in the case where log likelihood Iγ for at least a part of input / output patterns is calculated, with respect to log likelihood Iγ; FIG. 6 is a block diagram illustrating a configuration for performing normalization every hour.
83A and 83B are diagrams for explaining an example of a trellis in a convolutional encoder, where FIG. 83A shows an example when the number of memories is “1”, and FIG. 83B shows an example where the number of memories is “2”. (C) shows an example when the number of memories is “3”, and (D) shows an example when the number of memories is “4”.
FIG. 84 is a diagram for explaining a state in which the four trellises shown in FIG. 83 are overlaid.
FIG. 85 is a block diagram for explaining the configuration of an addition comparison selection circuit in the same Iα calculation circuit that performs processing for codes in which two paths arrive from each state on the trellis to the state at the next time. FIG. 6 is a block diagram illustrating a configuration including a selector that selects log likelihood Iα.
86 is a block diagram illustrating a schematic configuration of the Iα calculation circuit and a log-sum calculation circuit in the Iβ calculation circuit, and illustrates a configuration of the log-sum calculation circuit that performs normalization according to the first method; FIG. It is a block diagram.
FIG. 87 is a diagram for explaining normalization by the first method, and is a diagram illustrating an example of a dynamic range before and after normalization.
FIG. 88 is a diagram for explaining normalization by the second method and is a diagram illustrating an example of a dynamic range before and after normalization.
FIG. 89 is a block diagram illustrating a schematic configuration of the Iα calculation circuit and the log-sum calculation circuit in the Iβ calculation circuit, and illustrates the configuration of the log-sum calculation circuit that performs normalization according to the third method; It is a block diagram.
FIG. 90 is a diagram for explaining normalization by the third method and is a diagram illustrating an example of a dynamic range before and after normalization.
FIG. 91 is a block diagram illustrating a schematic configuration of a log-sum operation circuit, and a block diagram illustrating a configuration of a log-sum operation circuit that performs a normal log-sum operation.
FIG. 92 is a block diagram illustrating a schematic configuration of a log-sum operation circuit, which calculates log-sum operation for calculating a plurality of correction term values corresponding to a difference value and selecting an appropriate one among them. It is a block diagram explaining the structure of the log-sum arithmetic circuit to perform.
FIG. 93 is a block diagram illustrating a schematic configuration of a soft output calculation circuit that performs a cumulative addition operation of a log-sum operation without using an enable signal.
FIG. 94 is a diagram for explaining normalization for external information in symbol units, where (A) shows an example of distribution of external information before normalization, and (B) shows external information having a maximum value. (C) shows an example of distribution of external information after clipping, and (D) shows the value of external information for one symbol. It is a figure which shows the example of distribution of the external information after the normalization which is different from the value of the external information with respect to the symbol.
FIG. 95 is a diagram for explaining signal point arrangement by the 8PSK modulation method, and shows a state in which a boundary line is provided on the I / Q plane.
FIG. 96 is a block diagram illustrating a simplified configuration of a control circuit included in the interleaver.
FIG. 97 is a diagram illustrating data write and read timings when a write address counter and a read address counter are shared.
FIG. 98 is a diagram illustrating data write and read timings when a write address counter and a read address counter are individually provided.
FIG. 99 is a diagram for explaining how data is written to and read from the RAM in the interleaver;
FIG. 100 is a diagram for describing a state in which continuous addresses are assigned to RAMs in the interleaver.
FIG. 101 is a diagram for explaining how data is written to and read from a RAM in the interleaver, and how data is written and read when data is not stored in all storage areas of each RAM; It is a figure for doing.
FIG. 102 is a diagram for explaining how consecutive addresses are assigned to RAMs in the interleaver, for explaining how consecutive addresses are assigned across a plurality of physically different RAMs; FIG.
FIG. 103 is a diagram for explaining a state in which addresses are assigned to the RAM in the interleaver, and a manner in which a replacement destination address is given by a combination of a time slot and an input symbol. .
FIG. 104 is a diagram for explaining how addresses are assigned to RAMs in the interleaver, and when the data is not stored in all the storage areas of each RAM, the replacement destination address is input as a time slot. It is a figure for demonstrating a mode given in combination with a symbol.
FIGS. 105A and 105B are diagrams for explaining the storage capacity of the RAM in the interleaver, in which FIG. 105A shows the storage capacity of the RAM in a normal state, and FIG. 105B shows the case of acting as a partial write RAM; It is a figure which shows the pseudo storage capacity of RAM in.
FIG. 106 is a diagram for explaining how data is written to and read from the RAM in the interleaver, using two banks of RAM for the number of words for 3 time slots and an interleave length delay for 6 time slots; It is a figure for demonstrating the example which implement | achieves.
107 is a chart for explaining data write and read timings according to the operation shown in FIG. 106;
Fig. 108 is a block diagram illustrating a configuration example of a convolutional encoder.
[Fig. 109] Fig. 109 is a block diagram illustrating an example configuration of an encoding device, and illustrates a state in which the order of input symbols for an interleaver is switched.
Fig. 110 is a block diagram illustrating a simplified configuration of two adjacent element decoders included in the decoding apparatus, and a block diagram illustrating a configuration in which an interleaver includes a symbol replacement circuit.
Fig. 111 is a block diagram illustrating a simplified configuration of two adjacent element decoders included in the decoding apparatus, and a block diagram illustrating a configuration in which a soft output decoding circuit includes a symbol replacement circuit.
Fig. 112 is a block diagram illustrating a configuration of a communication model.
FIG. 113 is a diagram for explaining a trellis in a conventional coding apparatus, and for explaining the contents of probabilities α, β, and γ.
FIG. 114 is a flowchart for describing a series of steps when soft output decoding is performed by applying the BCJR algorithm in a conventional decoding device.
FIG. 115 is a flowchart for describing a series of steps when soft output decoding is performed by applying the Max-Log-BCJR algorithm in a conventional decoding device.
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 1 Encoding apparatus, 3 Decoding apparatus, 50 Element decoder, 60,400 Control circuit, 70 Decoding received value selection circuit, 80 Edge detection circuit, 90 Soft output decoding circuit, 100 Interleaver, 110 Address storage circuit, 120, 411, 421, 422, 423, 425, 426, 501, 502, 503, 504, 520, 530, 540, 603 selector, 130 signal lines, 151 code information generation circuit, 152 internal erasure information generation circuit, 153 termination information generation Circuit, 154 received value and prior probability information selection circuit, 155 received data and delay storage circuit, 156 Iγ calculation circuit, 157 Iγ distribution circuit, 158 Iα calculation circuit, 159 Iβ calculation circuit, 160 Iβ storage circuit, 161 soft output calculation Circuit, 162 received value or advance Probability information separation circuit, 163 external information calculation circuit, 164 amplitude adjustment and clipping circuit, 165 hard decision circuit, 222 Iγ normalization circuit, 223 branch input / output information calculation circuit, 2251 Parallel path processing circuit for Iβ0, 2252 Parallel path processing circuit for Iβ1, 225Three Parallel path processing circuit for Iα, 232, 253, 330 selection control signal generation circuit, 252, 372, 582 look-up table, 240, 280 control signal generation circuit, 241, 242, 283, 284 addition comparison selection circuit, 243 Iα + Iγ Calculation circuit, 245, 256, 286, 292, 312, 550, 560, 580, 591 log-sum operation circuit, 247, 258, 288, 294 correction term calculation circuit, 250, 272 Iα normalization circuit, 281 Iβ0 addition Comparison selection circuit, 282 Iβ1 addition comparison selection circuit, 291 308 Iβ0 normalization circuit, 310 Iα + Iγ + Iβ calculation circuit, 311 enable signal generation circuit, 313 Iλ calculation circuit, 350 information bit external information calculation circuit, 351 information symbol external information Output circuit, 352 code external information calculation circuit, 357, 554, 564 normalization circuit, 361 minimum symbol calculation circuit, 370 I / Q demapping circuit, 401 delay address generation circuit, 402 odd length delay compensation circuit, 403 interleave address conversion circuit 404 delay address conversion circuit, 405 address selection circuit, 406 input data selection circuit, 407 storage circuit, 408 output data selection circuit, 410, 565 register, 421 inverter, 424 RAM, 510 delay circuit, 531 adder, 590 selection circuit , 601 Write address generation circuit, 602 Read address generation circuit, 610, 611, 612, 613 Symbol exchange circuit
Claims (34)
データを記憶する複数の記憶手段と、
シーケンシャルな第1のアドレスデータと、シーケンシャルな第2のアドレスデータとを発生するアドレス発生手段と、
上記インターリーバと同一の置換位置情報に基づいて、入力されるデータの順序を置換して並べ替えるインターリーブ処理を行う場合には、上記第1のアドレスデータを上記記憶手段に対するデータの書き込みに用いるとともに、上記アドレス発生手段により発生された上記第2のアドレスデータに対応してアドレス用記憶手段から読み出されるランダムな第3のアドレスデータを、上記記憶手段からのデータの読み出しに用い、上記インターリーバにより並べ替えられた情報の配列を元に戻すように、入力されるデータの順序を置換して並べ替えるデインターリーブ処理を行う場合には、上記第3のアドレスデータを上記記憶手段に対するデータの書き込みに用いるとともに、上記第1のアドレスデータを上記記憶手段からのデータの読み出しに用いるように切り替える切替手段とを備え、
入力される複数シンボルのデータに対して、互いに異なるアドレスに基づいて個別的にインターリーブを施すインターリーブ装置。An interleaving device used to repeatedly decode a code generated by concatenating a plurality of element codes via an interleaver,
A plurality of storage means for storing data;
Address generating means for generating sequential first address data and sequential second address data;
When performing an interleaving process in which the order of input data is replaced and rearranged based on the same replacement position information as the interleaver, the first address data is used for writing data to the storage means. The random third address data read from the address storage means corresponding to the second address data generated by the address generation means is used for reading the data from the storage means, and the interleaver When deinterleaving processing is performed in which the order of input data is replaced and rearranged so as to restore the rearranged information array, the third address data is used for writing data to the storage means. And reading the first address data from the storage means. And a switching means for switching to use the teeth,
An interleaving apparatus that individually interleaves input data of a plurality of symbols based on different addresses .
上記切替手段は、上記インターリーブ処理又は上記デインターリーブ処理のいずれかを行う旨を示す制御信号に基づいて、上記書き込み用アドレスデータと上記読み出し用アドレスデータのうち、一方のアドレスデータを上記第1のアドレスデータとして選択して出力するとともに、他方のアドレスデータを上記第2のアドレスデータとして選択して出力する請求項1記載のインターリーブ装置。The address generation means, when performing the interleaving process, write address generation means for generating write address data used for writing data to the storage means, and read address data used for reading data from the storage means Read address generating means for generating
The switching means switches one address data of the write address data and the read address data from the first address data based on a control signal indicating that either the interleave process or the deinterleave process is performed. address with the selected and output as the data, interleaving device select and to that claim 1, wherein outputs the other address data as the second address data.
データを記憶する複数の記憶手段と、A plurality of storage means for storing data;
シーケンシャルな第1のアドレスデータと、シーケンシャルな第2のアドレスデータとを発生するアドレス発生手段と、Address generating means for generating sequential first address data and sequential second address data;
上記インターリーバと同一の置換位置情報に基づいて、入力されるデータの順序を置換して並べ替えるインターリーブ処理を行う場合には、上記第1のアドレスデータを上記記憶手段に対するデータの書き込みに用いるとともに、上記アドレス発生手段により発生された上記第2のアドレスデータに対応してアドレス用記憶手段から読み出されるランダムな第3のアドレスデータを、上記記憶手段からのデータの読み出しに用い、上記インターリーバにより並べ替えられた情報の配列を元に戻すように、入力されるデータの順序を置換して並べ替えるデインターリーブ処理を行う場合には、上記第3のアドレスデータを上記記憶手段に対するデータの書き込みに用いるとともに、上記第1のアドレスデータを上記記憶手段からのデータの読み出しに用いるように切り替える切替手段とを備え、When performing an interleaving process in which the order of input data is replaced and rearranged based on the same replacement position information as the interleaver, the first address data is used for writing data to the storage means. The random third address data read from the address storage means corresponding to the second address data generated by the address generation means is used for reading the data from the storage means, and the interleaver When deinterleaving processing is performed in which the order of input data is replaced and rearranged so as to restore the rearranged information array, the third address data is used for writing data to the storage means. And reading the first address data from the storage means. And a switching means for switching to use the teeth,
入力される複数シンボルのデータに対して、各ビットの組み合わせを保持するようにインターリーブを施すインターリーブ装置。An interleaving device that interleaves input multiple-symbol data so as to hold a combination of bits.
シーケンシャルな第1のアドレスデータと、シーケンシャルな第2のアドレスデータとを発生するアドレス発生工程と、
上記インターリーバと同一の置換位置情報に基づいて、入力されるデータの順序を置換して並べ替えるインターリーブ処理を行う場合には、上記第1のアドレスデータを、データを記憶する複数の記憶手段に対するデータの書き込みに用いるとともに、上記アドレス発生工程にて発生された上記第2のアドレスデータに対応してアドレス用記憶手段から読み出されるランダムな第3のアドレスデータを、上記記憶手段からのデータの読み出しに用い、上記インターリーバにより並べ替えられた情報の配列を元に戻すように、入力されるデータの順序を置換して並べ替えるデインターリーブ処理を行う場合には、上記第3のアドレスデータを上記記憶手段に対するデータの書き込みに用いるとともに、上記第1のアドレスデータを上記記憶手段からのデータの読み出しに用いるように切り替える切替工程とを備え、
入力される複数シンボルのデータに対して、互いに異なるアドレスに基づいて個別的にインターリーブを施すインターリーブ方法。An interleaving method used to repeatedly decode a code generated by concatenating a plurality of element codes through an interleaving step,
An address generating step for generating sequential first address data and sequential second address data;
In the case of performing an interleaving process in which the order of input data is replaced and rearranged based on the same replacement position information as that of the interleaver, the first address data is stored in a plurality of storage means for storing data. Random third address data read from the address storage means corresponding to the second address data generated in the address generation step is used to read data from the storage means. In the case of performing a deinterleave process in which the order of input data is replaced and rearranged so as to restore the array of information rearranged by the interleaver, the third address data is converted to the third address data. The first address data is used for writing data to the storage means, and the storage means And a switching step of switching to use for reading al data,
An interleaving method in which interleaving is performed individually on input data of a plurality of symbols based on different addresses .
上記切替工程では、上記インターリーブ処理又は上記デインターリーブ処理のいずれかを行う旨を示す制御信号に基づいて、上記書き込み用アドレスデータと上記読み出し用アドレスデータのうち、一方のアドレスデータが上記第1のアドレスデータとして選択されて出力されるとともに、他方のアドレスデータが上記第2のアドレスデータとして選択されて出力される請求項7記載のインターリーブ方法。The address generation step includes a write address generation step for generating write address data used for writing data to the storage means and a read address data for reading data from the storage means when performing the interleaving process. A read address generation step for generating
In the switching step, based on a control signal indicating that either the interleaving process or the deinterleaving process is performed, one address data of the write address data and the read address data is the first address data. together it is selected and output as address data, according to claim 7 interleaving method according to the other address data Ru is outputted is selected as the second address data.
シーケンシャルな第1のアドレスデータと、シーケンシャルな第2のアドレスデータとを発生するアドレス発生工程と、An address generating step for generating sequential first address data and sequential second address data;
上記インターリーバと同一の置換位置情報に基づいて、入力されるデータの順序を置換して並べ替えるインターリーブ処理を行う場合には、上記第1のアドレスデータを、データを記憶する複数の記憶手段に対するデータの書き込みに用いるとともに、上記アドレス発生工程にて発生された上記第2のアドレスデータに対応してアドレス用記憶手段から読み出されるランダムな第3のアドレスデータを、上記記憶手段からのデータの読み出しに用い、上記インターリーバにより並べ替えられた情報の配列を元に戻すように、入力されるデータの順序を置換して並べ替えるデインターリーブ処理を行う場合には、上記第3のアドレスデータを上記記憶手段に対するデータの書き込みに用いるとともに、上記第1のアドレスデータを上記記憶手段からのデータの読み出しに用いるように切り替える切替工程とを備え、In the case of performing an interleaving process in which the order of input data is replaced and rearranged based on the same replacement position information as that of the interleaver, the first address data is stored in a plurality of storage means for storing data. Random third address data read from the address storage means corresponding to the second address data generated in the address generation step is used to read data from the storage means. In the case of performing a deinterleave process in which the order of input data is replaced and rearranged so as to restore the array of information rearranged by the interleaver, the third address data is converted to the third address data. The first address data is used for writing data to the storage means, and the storage means And a switching step of switching to use for reading al data,
入力される複数シンボルのデータに対して、各ビットの組み合わせを保持するようにインターリーブを施すインターリーブ方法。An interleaving method for interleaving input data of a plurality of symbols so as to hold a combination of bits.
上記受信値及び事前確率情報を入力して軟出力復号を行い、各時刻における軟出力及び/又は外部情報を生成する軟出力復号手段と、
上記軟出力復号手段により生成された上記外部情報を入力し、上記インターリーバと同一の置換位置情報に基づいて、上記外部情報の順序を置換して並べ替えるインターリーブ処理、又は、上記インターリーバにより並べ替えられた情報の配列を元に戻すように、上記外部情報の順序を置換して並べ替えるデインターリーブ処理を行うインターリーブ手段とを備え、
上記インターリーブ手段は、
データを記憶する複数の記憶手段と、
シーケンシャルな第1のアドレスデータと、シーケンシャルな第2のアドレスデータとを発生するアドレス発生手段と、
上記インターリーバと同一の置換位置情報に基づいて、入力されるデータの順序を置換して並べ替えるインターリーブ処理を行う場合には、上記第1のアドレスデータを上記記憶手段に対するデータの書き込みに用いるとともに、上記アドレス発生手段により発生された上記第2のアドレスデータに対応してアドレス用記憶手段から読み出されるランダムな第3のアドレスデータを、上記記憶手段からのデータの読み出しに用い、上記インターリーバにより並べ替えられた情報の配列を元に戻すように、入力されるデータの順序を置換して並べ替えるデインターリーブ処理を行う場合には、上記第3のアドレスデータを上記記憶手段に対するデータの書き込みに用いるとともに、上記第1のアドレスデータを上記記憶手段からのデータの読み出しに用いるように切り替える切替手段とを有し、
上記インターリーブ手段は、入力される複数シンボルのデータに対して、互いに異なるアドレスに基づいて個別的にインターリーブを施す復号装置。A probability of passing through an arbitrary state based on a received value as a soft input is obtained, and using the above probability, a code generated by concatenating a plurality of element codes via an interleaver is repeatedly decoded. A decoding device corresponding to the element code,
Soft output decoding means for performing soft output decoding by inputting the received value and prior probability information, and generating soft output and / or external information at each time;
Input the external information generated by the soft output decoding means, and based on the same replacement position information as the interleaver, replace the order of the external information and rearrange, or arrange by the interleaver Interleaving means for performing a deinterleaving process for rearranging by rearranging the order of the external information so as to restore the replaced information array,
The interleaving means is
A plurality of storage means for storing data;
Address generating means for generating sequential first address data and sequential second address data;
When performing an interleaving process in which the order of input data is replaced and rearranged based on the same replacement position information as the interleaver, the first address data is used for writing data to the storage means. The random third address data read from the address storage means corresponding to the second address data generated by the address generation means is used for reading the data from the storage means, and the interleaver When deinterleaving processing is performed in which the order of input data is replaced and rearranged so as to restore the rearranged information array, the third address data is used for writing data to the storage means. And reading the first address data from the storage means. Have a switching means for switching to use the teeth,
The interleaving means is a decoding device that individually interleaves input data of a plurality of symbols based on different addresses .
上記切替手段は、上記インターリーブ処理又は上記デインターリーブ処理のいずれかを行う旨を示す制御信号に基づいて、上記書き込み用アドレスデータと上記読み出し用アドレスデータのうち、一方のアドレスデータを上記第1のアドレスデータとして選択して出力するとともに、他方のアドレスデータを上記第2のアドレスデータとして選択して出力する請求項10記載の復号装置。The address generation means, when performing the interleaving process, write address generation means for generating write address data used for writing data to the storage means, and read address data used for reading data from the storage means Read address generating means for generating
The switching means switches one address data of the write address data and the read address data from the first address data based on a control signal indicating that either the interleave process or the deinterleave process is performed. address with the selected and output as the data decoding apparatus selects and you output claim 10 wherein the other address data as the second address data.
上記受信値及び事前確率情報を入力して軟出力復号を行い、各時刻における軟出力及び/又は外部情報を生成する軟出力復号手段と、Soft output decoding means for performing soft output decoding by inputting the received value and prior probability information, and generating soft output and / or external information at each time;
上記軟出力復号手段により生成された上記外部情報を入力し、上記インターリーバと同一の置換位置情報に基づいて、上記外部情報の順序を置換して並べ替えるインターリーブ処理、又は、上記インターリーバにより並べ替えられた情報の配列を元に戻すように、上記外部情報の順序を置換して並べ替えるデインターリーブ処理を行うインターリーブ手段とを備え、Input the external information generated by the soft output decoding means, and based on the same replacement position information as the interleaver, replace the order of the external information and rearrange, or arrange by the interleaver Interleaving means for performing deinterleaving processing to replace and rearrange the order of the external information so as to restore the rearranged information array,
上記インターリーブ手段は、The interleaving means is
データを記憶する複数の記憶手段と、A plurality of storage means for storing data;
シーケンシャルな第1のアドレスデータと、シーケンシャルな第2のアドレスデータとを発生するアドレス発生手段と、Address generating means for generating sequential first address data and sequential second address data;
上記インターリーバと同一の置換位置情報に基づいて、入力されるデータの順序を置換して並べ替えるインターリーブ処理を行う場合には、上記第1のアドレスデータを上記記憶手段に対するデータの書き込みに用いるとともに、上記アドレス発生手段により発生された上記第2のアドレスデータに対応してアドレス用記憶手段から読み出されるランダムな第3のアドレスデータを、上記記憶手段からのデータの読み出しに用い、上記インターリーバにより並べ替えられた情報の配列を元に戻すように、入力されるデータの順序を置換して並べ替えるデインターリーブ処理を行う場合には、上記第3のアドレスデータを上記記憶手段に対するデータの書き込みに用いるとともに、上記第1のアドレスデータを上記記憶手段からのデータの読み出しに用いるように切り替える切替手段とを有し、When performing an interleaving process in which the order of input data is replaced and rearranged based on the same replacement position information as the interleaver, the first address data is used for writing data to the storage means. The random third address data read from the address storage means corresponding to the second address data generated by the address generation means is used for reading the data from the storage means, and the interleaver When deinterleaving processing is performed in which the order of input data is replaced and rearranged so as to restore the rearranged information array, the third address data is used for writing data to the storage means. And reading the first address data from the storage means. And a switching means for switching to use the teeth,
上記インターリーブ手段は、入力される複数シンボルのデータに対して、各ビットの組み合わせを保持するようにインターリーブを施す復号装置。The interleaving means is a decoding device that performs interleaving on input multi-symbol data so as to hold a combination of bits.
上記受信値及び事前確率情報を入力して軟出力復号を行い、各時刻における軟出力及び/又は外部情報を生成する軟出力復号工程と、
上記軟出力復号工程にて生成された上記外部情報を入力し、上記第1のインターリーブ工程と同一の置換位置情報に基づいて、上記外部情報の順序を置換して並べ替えるインターリーブ処理、又は、上記第1のインターリーブ工程にて並べ替えられた情報の配列を元に戻すように、上記外部情報の順序を置換して並べ替えるデインターリーブ処理を行う第2のインターリーブ工程とを備え、
上記第2のインターリーブ工程は、
シーケンシャルな第1のアドレスデータと、シーケンシャルな第2のアドレスデータとを発生するアドレス発生工程と、
上記インターリーブ処理を行う場合には、上記第1のアドレスデータを、データを記憶する複数の記憶手段に対するデータの書き込みに用いるとともに、上記アドレス発生工程にて発生された上記第2のアドレスデータに対応してアドレス用記憶手段から読み出されるランダムな第3のアドレスデータを、上記記憶手段からのデータの読み出しに用い、上記デインターリーブ処理を行う場合には、上記第3のアドレスデータを上記記憶手段に対するデータの書き込みに用いるとともに、上記第1のアドレスデータを上記記憶手段からのデータの読み出しに用いるように切り替える切替工程とを有し、
入力される複数シンボルのデータに対して、互いに異なるアドレスに基づいて個別的にインターリーブを施す復号方法。A probability of passing through an arbitrary state is obtained based on a received value as a soft input, and a code generated by concatenating a plurality of element codes through a first interleaving process is repeatedly decoded using the probability. A decoding method corresponding to the above element code,
A soft output decoding step of performing soft output decoding by inputting the received value and prior probability information, and generating soft output and / or external information at each time;
Input the external information generated in the soft output decoding step, and based on the same replacement position information as in the first interleaving step, the interleaving process that replaces and rearranges the order of the external information, or A second interleaving step for performing a deinterleaving process for replacing the rearranged order of the external information so as to restore the arrangement of the information rearranged in the first interleaving step,
The second interleaving step is
An address generating step for generating sequential first address data and sequential second address data;
When performing the interleaving process, the first address data is used for writing data to a plurality of storage means for storing data, and corresponds to the second address data generated in the address generation step. When the random third address data read from the address storage means is used for reading data from the storage means and the deinterleaving process is performed, the third address data is stored in the storage means. with use in writing data, the first address data possess a switching step of switching to use for reading data from said storage means,
A decoding method for individually interleaving input multi-symbol data based on different addresses .
上記切替工程では、上記インターリーブ処理又は上記デインターリーブ処理のいずれかを行う旨を示す制御信号に基づいて、上記書き込み用アドレスデータと上記読み出し用アドレスデータのうち、一方のアドレスデータが上記第1のアドレスデータとして選択されて出力されるとともに、他方のアドレスデータが上記第2のアドレスデータとして選択されて出力される請求項18記載の復号方法。The address generation step includes a write address generation step for generating write address data used for writing data to the storage means and a read address data for reading data from the storage means when performing the interleaving process. A read address generation step for generating
In the switching step, based on a control signal indicating that either the interleaving process or the deinterleaving process is performed, one address data of the write address data and the read address data is the first address data. together it is selected and output as address data, the method of decoding the other address data selected by claim 18 that will be output as the second address data.
上記受信値及び事前確率情報を入力して軟出力復号を行い、各時刻における軟出力及び/又は外部情報を生成する軟出力復号工程と、A soft output decoding step of performing soft output decoding by inputting the received value and prior probability information, and generating soft output and / or external information at each time;
上記軟出力復号工程にて生成された上記外部情報を入力し、上記第1のインターリーブ工程と同一の置換位置情報に基づいて、上記外部情報の順序を置換して並べ替えるインターリーブ処理、又は、上記第1のインターリーブ工程にて並べ替えられた情報の配列を元に戻すように、上記外部情報の順序を置換して並べ替えるデインターリーブ処理を行う第2のインターリーブ工程とを備え、Input the external information generated in the soft output decoding step, and based on the same replacement position information as in the first interleaving step, the interleaving process that replaces and rearranges the order of the external information, or A second interleaving step for performing a deinterleaving process for replacing the rearranged order of the external information so as to restore the arrangement of the information rearranged in the first interleaving step,
上記第2のインターリーブ工程は、The second interleaving step is
シーケンシャルな第1のアドレスデータと、シーケンシャルな第2のアドレスデータとを発生するアドレス発生工程と、An address generating step for generating sequential first address data and sequential second address data;
上記インターリーブ処理を行う場合には、上記第1のアドレスデータを、データを記憶する複数の記憶手段に対するデータの書き込みに用いるとともに、上記アドレス発生工程にて発生された上記第2のアドレスデータに対応してアドレス用記憶手段から読み出されるランダムな第3のアドレスデータを、上記記憶手段からのデータの読み出しに用い、上記デインターリーブ処理を行う場合には、上記第3のアドレスデータを上記記憶手段に対するデータの書き込みに用いるとともに、上記第1のアドレスデータを上記記憶手段からのデータの読み出しに用いるように切り替える切替工程とを有し、When performing the interleaving process, the first address data is used for writing data to a plurality of storage means for storing data, and corresponds to the second address data generated in the address generation step. When the random third address data read from the address storage means is used for reading data from the storage means and the deinterleaving process is performed, the third address data is stored in the storage means. And a switching step of switching to use the first address data for reading data from the storage means, as well as for writing data.
入力される複数シンボルのデータに対して、各ビットの組み合わせを保持するようにインターリーブを施す復号方法。A decoding method for interleaving input data of a plurality of symbols so as to hold a combination of bits.
当該復号装置は、連接された複数の要素復号器からなり、
上記要素復号器は、それぞれ、
上記受信値及び事前確率情報を入力して軟出力復号を行い、各時刻における軟出力及び/又は外部情報を生成する軟出力復号手段と、
上記軟出力復号手段により生成された上記外部情報を入力し、上記インターリーバと同一の置換位置情報に基づいて、上記外部情報の順序を置換して並べ替えるインターリーブ処理、又は、上記インターリーバにより並べ替えられた情報の配列を元に戻すように、上記外部情報の順序を置換して並べ替えるデインターリーブ処理を行うインターリーブ手段とを備え、
上記インターリーブ手段は、
データを記憶する複数の記憶手段と、
シーケンシャルな第1のアドレスデータと、シーケンシャルな第2のアドレスデータとを発生するアドレス発生手段と、
上記インターリーバと同一の置換位置情報に基づいて、入力されるデータの順序を置換して並べ替えるインターリーブ処理を行う場合には、上記第1のアドレスデータを上記記憶手段に対するデータの書き込みに用いるとともに、上記アドレス発生手段により発生された上記第2のアドレスデータに対応してアドレス用記憶手段から読み出されるランダムな第3のアドレスデータを、上記記憶手段からのデータの読み出しに用い、上記インターリーバにより並べ替えられた情報の配列を元に戻すように、入力されるデータの順序を置換して並べ替えるデインターリーブ処理を行う場合には、上記第3のアドレスデータを上記記憶手段に対するデータの書き込みに用いるとともに、上記第1のアドレスデータを上記記憶手段からのデータの読み出しに用いるように切り替える切替手段とを有する復号装置。A decoding device that obtains a probability of passing through an arbitrary state based on a received value that is a soft input and repeatedly decodes a code generated by concatenating a plurality of element codes via an interleaver using the probability. There,
The decoding device comprises a plurality of connected element decoders,
Each of the above element decoders is
Soft output decoding means for performing soft output decoding by inputting the received value and prior probability information, and generating soft output and / or external information at each time;
Input the external information generated by the soft output decoding means, and based on the same replacement position information as the interleaver, replace the order of the external information and rearrange, or arrange by the interleaver Interleaving means for performing a deinterleaving process for rearranging by rearranging the order of the external information so as to restore the replaced information array,
The interleaving means is
A plurality of storage means for storing data;
Address generating means for generating sequential first address data and sequential second address data;
When performing an interleaving process in which the order of input data is replaced and rearranged based on the same replacement position information as the interleaver, the first address data is used for writing data to the storage means. The random third address data read from the address storage means corresponding to the second address data generated by the address generation means is used for reading the data from the storage means, and the interleaver When deinterleaving processing is performed in which the order of input data is replaced and rearranged so as to restore the rearranged information array, the third address data is used for writing data to the storage means. And reading the first address data from the storage means. Decoder that having a switching means for switching to use the teeth.
上記切替手段は、上記インターリーブ処理又は上記デインターリーブ処理のいずれかを行う旨を示す制御信号に基づいて、上記書き込み用アドレスデータと上記読み出し用アドレスデータのうち、一方のアドレスデータを上記第1のアドレスデータとして選択して出力するとともに、他方のアドレスデータを上記第2のアドレスデータとして選択して出力する請求項21記載の復号装置。The address generation means, when performing the interleaving process, write address generation means for generating write address data used for writing data to the storage means, and read address data used for reading data from the storage means Read address generating means for generating
The switching means switches one address data of the write address data and the read address data from the first address data based on a control signal indicating that either the interleave process or the deinterleave process is performed. address with the selected and output as the data decoding apparatus selected to be that claim 21 outputs the other address data as the second address data.
当該復号方法は、複数の要素復号工程が連続して行われるものであり、
上記要素復号工程は、それぞれ、
上記受信値及び事前確率情報を入力して軟出力復号を行い、各時刻における軟出力及び/又は外部情報を生成する軟出力復号工程と、
上記軟出力復号工程にて生成された上記外部情報を入力し、上記第1のインターリーブ工程と同一の置換位置情報に基づいて、上記外部情報の順序を置換して並べ替えるインターリーブ処理、又は、上記第1のインターリーブ工程にて並べ替えられた情報の配列を元に戻すように、上記外部情報の順序を置換して並べ替えるデインターリーブ処理を行う第2のインターリーブ工程とを備え、
上記第2のインターリーブ工程は、
シーケンシャルな第1のアドレスデータと、シーケンシャルな第2のアドレスデータとを発生するアドレス発生工程と、
上記インターリーブ処理を行う場合には、上記第1のアドレスデータを、データを記憶する複数の記憶手段に対するデータの書き込みに用いるとともに、上記アドレス発生工程にて発生された上記第2のアドレスデータに対応してアドレス用記憶手段から読み出されるランダムな第3のアドレスデータを、上記記憶手段からのデータの読み出しに用い、上記デインターリーブ処理を行う場合には、上記第3のアドレスデータを上記記憶手段に対するデータの書き込みに用いるとともに、上記第1のアドレスデータを上記記憶手段からのデータの読み出しに用いるように切り替える切替工程とを有する復号方法。A probability of passing through an arbitrary state is obtained based on a received value as a soft input, and a code generated by concatenating a plurality of element codes through a first interleaving process is repeatedly decoded using the probability. A decryption method,
In the decoding method, a plurality of element decoding steps are continuously performed.
The above element decoding steps are respectively
A soft output decoding step of performing soft output decoding by inputting the received value and prior probability information, and generating soft output and / or external information at each time;
Input the external information generated in the soft output decoding step, and based on the same replacement position information as in the first interleaving step, the interleaving process that replaces and rearranges the order of the external information, or A second interleaving step for performing a deinterleaving process for replacing the rearranged order of the external information so as to restore the arrangement of the information rearranged in the first interleaving step,
The second interleaving step is
An address generating step for generating sequential first address data and sequential second address data;
When performing the interleaving process, the first address data is used for writing data to a plurality of storage means for storing data, and corresponds to the second address data generated in the address generation step. When the random third address data read from the address storage means is used for reading data from the storage means and the deinterleaving process is performed, the third address data is stored in the storage means. with use in writing data, a decoding method that have a a switching step of switching the first address data as used for reading data from said storage means.
上記切替工程では、上記インターリーブ処理又は上記デインターリーブ処理のいずれかを行う旨を示す制御信号に基づいて、上記書き込み用アドレスデータと上記読み出し用アドレスデータのうち、一方のアドレスデータが上記第1のアドレスデータとして選択されて出力されるとともに、他方のアドレスデータが上記第2のアドレスデータとして選択されて出力される請求項32記載の復号方法。The address generation step includes a write address generation step for generating write address data used for writing data to the storage means and a read address data for reading data from the storage means when performing the interleaving process. A read address generation step for generating
In the switching step, based on a control signal indicating that either the interleaving process or the deinterleaving process is performed, one address data of the write address data and the read address data is the first address data. together it is selected and output as address data, the method of decoding the other address data selected by claim 32 that will be output as the second address data.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000263132A JP4427883B2 (en) | 2000-08-31 | 2000-08-31 | Interleaving apparatus, interleaving method, decoding apparatus, and decoding method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000263132A JP4427883B2 (en) | 2000-08-31 | 2000-08-31 | Interleaving apparatus, interleaving method, decoding apparatus, and decoding method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002076913A JP2002076913A (en) | 2002-03-15 |
JP4427883B2 true JP4427883B2 (en) | 2010-03-10 |
Family
ID=18750720
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000263132A Expired - Fee Related JP4427883B2 (en) | 2000-08-31 | 2000-08-31 | Interleaving apparatus, interleaving method, decoding apparatus, and decoding method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4427883B2 (en) |
-
2000
- 2000-08-31 JP JP2000263132A patent/JP4427883B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2002076913A (en) | 2002-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1315299A1 (en) | Interleaving apparatus | |
EP1315302A1 (en) | Soft-output decoder | |
JP2002076925A (en) | Apparatus and method for soft-output decoding and apparatus and method for decoding | |
JP3540224B2 (en) | Turbo decoder, turbo decoding method, and storage medium storing the method | |
JP4427883B2 (en) | Interleaving apparatus, interleaving method, decoding apparatus, and decoding method | |
JP4543522B2 (en) | Soft output decoding device, soft output decoding method, and decoding device and decoding method | |
JP4380041B2 (en) | Soft output decoding device, soft output decoding method, decoding device, and decoding method | |
KR100416569B1 (en) | Turbo permutator and Turbo decoder using the same | |
JP2002076940A (en) | Soft output decoder and soft output decoding method and decoder and decoding method | |
JP2002076917A (en) | Apparatus and method for interleaving and apparatus and method for decoding | |
JP2002076912A (en) | Apparatus and method for decoding | |
KR100355452B1 (en) | Turbo decoder using MAP algorithm | |
JP2002076935A (en) | Soft output decoder and soft output decoding method and decoder and decoding method | |
JP2002076919A (en) | Apparatus and method for interleaving, apparatus and method for soft-output decoding, and apparatus and method for decoding | |
JP2002076911A (en) | Apparatus and method for decoding | |
JP2002076937A (en) | Soft output decoder and soft output decoding method and decoder and decoding method | |
JP2002077282A (en) | Soft output decoding device and soft output decoding method, and decoding device and decoding method | |
JP2002076934A (en) | Soft output decoder and soft output decoding method and decoder and decoding method | |
JP2002076930A (en) | Soft output decoder and soft output decoding method and decoder and decoding method | |
JP2002076944A (en) | Soft output decoder and soft output decoding method and decoder and decoding method | |
JP2002076914A (en) | Apparatus and method for interleaving and apparatus and method for decoding | |
JP2002076916A (en) | Apparatus and method for interleaving and apparatus and method for decoding | |
JP2002076929A (en) | Soft output decoder and soft output decoding method and decoder and decoding method | |
JP2002076927A (en) | Soft output decoder and soft output decoding method and decoder and decoding method | |
JP2002076941A (en) | Soft output decoder and soft output decoding method and decoder and decoding method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070810 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090824 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090901 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091026 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20091124 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121225 Year of fee payment: 3 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20091207 |
|
LAPS | Cancellation because of no payment of annual fees |