JP4427883B2 - Interleaving apparatus, interleaving method, decoding apparatus, and decoding method - Google Patents

Interleaving apparatus, interleaving method, decoding apparatus, and decoding method Download PDF

Info

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
Application number
JP2000263132A
Other languages
Japanese (ja)
Other versions
JP2002076913A (en
Inventor
峰志 横川
俊之 宮内
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2000263132A priority Critical patent/JP4427883B2/en
Publication of JP2002076913A publication Critical patent/JP2002076913A/en
Application granted granted Critical
Publication of JP4427883B2 publication Critical patent/JP4427883B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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】

Figure 0004427883
【0006】
なお、上式(1)における右辺に示すPr{A|B}は、Bが生じた条件の下でのAが生じる条件付き確率である。この遷移確率Pt(m|m’)は、次式(2)に示すように、入力iでステートm’からステートmへと遷移するときに、時刻tでの入力itがiである確率Pr{it=i}と等しいものである。
【0007】
【数2】
Figure 0004427883
【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】
Figure 0004427883
【0010】
ここで、次式(4)のようにλtjを定義する。この次式(4)に示すλtjは、Y1 Tを受信した際の時刻tでの入力情報の尤度を表し、本来求めるべき軟出力である。
【0011】
【数4】
Figure 0004427883
【0012】
BCJRアルゴリズムにおいては、次式(5)乃至次式(7)に示すような確率αt,βt及びγtを定義する。なお、Pr{A;B}は、AとBとがともに生じる確率を表すものとする。
【0013】
【数5】
Figure 0004427883
【0014】
【数6】
Figure 0004427883
【0015】
【数7】
Figure 0004427883
【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】
Figure 0004427883
【0019】
ところで、t=1,2,・・・,Tについて、次式(9)が成立する。
【0020】
【数9】
Figure 0004427883
【0021】
同様に、t=1,2,・・・,Tについて、次式(10)が成立する。
【0022】
【数10】
Figure 0004427883
【0023】
さらに、γtについて、次式(11)が成立する。
【0024】
【数11】
Figure 0004427883
【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】
Figure 0004427883
【0033】
【数13】
Figure 0004427883
【0034】
ここで、記載を簡略化するため、自然対数をIと略記し、αt,βt,γt,λtの自然対数値を、それぞれ、次式(14)に示すように、Iαt,Iβt,Iγt,Iλtと表すものとする。なお、次式(14)に示すsgnは、正負を識別する符号を示す定数、すなわち、“+1”又は“−1”のいずれかである。
【0035】
【数14】
Figure 0004427883
【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】
Figure 0004427883
【0041】
【数16】
Figure 0004427883
【0042】
【数17】
Figure 0004427883
【0043】
また、Max−Log−BCJRアルゴリズムにおいては、対数軟出力Iλtについても同様に、次式(18)に示すように近似する。ここで、次式(18)における右辺第1項の関数msgnは、入力が“1”のときにステートmへの遷移が存在するステートm’の中で求め、第2項の関数msgnは、入力が“0”のときにステートmへの遷移が存在するステートm’の中で求めるものとする。
【0044】
【数18】
Figure 0004427883
【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】
Figure 0004427883
【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】
Figure 0004427883
【0055】
なお、上式(19)及び上式(20)は、上述した定数sgnが“+1”の場合を示している。定数sgnが“−1”の場合には、上式(19)及び上式(20)に相当する演算は、それぞれ、次式(21)及び次式(22)に示すようになる。
【0056】
【数21】
Figure 0004427883
【0057】
【数22】
Figure 0004427883
【0058】
さらに、log−sum演算の累積加算演算の演算子を、次式(23)に示すように、“#Σ”(ただし、同論文中では、“E”。)と表すものとする。
【0059】
【数23】
Figure 0004427883
【0060】
これらの演算子を用いると、Log−BCJRアルゴリズムにおける対数尤度Iαt,Iβt及び対数軟出力Iλtは、それぞれ、次式(24)乃至次式(26)に示すように表すことができる。なお、対数尤度Iγtは、上式(17)で表されるため、ここでは、その記述を省略する。
【0061】
【数24】
Figure 0004427883
【0062】
【数25】
Figure 0004427883
【0063】
【数26】
Figure 0004427883
【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】
Figure 0004427883
【0185】
【数28】
Figure 0004427883
【0186】
【数29】
Figure 0004427883
【0187】
【数30】
Figure 0004427883
【0188】
【数31】
Figure 0004427883
【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】
Figure 0004427883
【0191】
【数33】
Figure 0004427883
【0192】
【数34】
Figure 0004427883
【0193】
【数35】
Figure 0004427883
【0194】
【数36】
Figure 0004427883
【0195】
【数37】
Figure 0004427883
【0196】
【数38】
Figure 0004427883
【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】
Figure 0004427883
【0199】
【数40】
Figure 0004427883
【0200】
【数41】
Figure 0004427883
【0201】
【数42】
Figure 0004427883
【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】
Figure 0004427883
【0204】
【数44】
Figure 0004427883
【0205】
【数45】
Figure 0004427883
【0206】
【数46】
Figure 0004427883
【0207】
【数47】
Figure 0004427883
【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】
Figure 0004427883
【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】
Figure 0004427883
【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】
Figure 0004427883
【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】
Figure 0004427883
【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】
Figure 0004427883
【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】
Figure 0004427883
【0325】
【数50】
Figure 0004427883
【0326】
【数51】
Figure 0004427883
【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】
Figure 0004427883
【0406】
【数53】
Figure 0004427883
【0407】
【数54】
Figure 0004427883
【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】
Figure 0004427883
【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】
Figure 0004427883
【0982】
また、log−sum補正における補正項は、上述したように、所定の値に漸近する性質を有していることから、変数となる2つのデータの差分値の絶対値は、所定の値にクリップされるべきである。具体的には、選択用制御信号生成回路253により作成される制御信号SLの判定文は、次式(57)に示すように、データAM0,AM1の差分値の絶対値と、所定の値との大小関係を示すものとなる。
【0983】
【数57】
Figure 0004427883
【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】
Figure 0004427883
【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】
Figure 0004427883
【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 encoding device 1001 provided in a transmission device (not shown), and the output is received via a noiseless memoryless communication channel 1002 (not shown). Let us consider the case where the decoding device 1003 provided in the receiving device decodes and observes the data.
[0003]
First, M states (transition states) representing the contents of the shift register included in the encoding device 1001 are represented by m (0, 1,..., M−1), and the state at time t is represented by S.tRepresented by If k-bit information is input in one time slot, the input at time t is it= (It1, It2, ..., itk) And the input system is I1 T= (I1, I2, ..., iT). At this time, if there is a transition from the state m ′ to the state m, the information bit corresponding to the transition is i (m ′, m) = (i1(M ', m), i2(M ', m), ..., ik(M ′, m)). Furthermore, if an n-bit code is output in one time slot, the output at time t is xt= (Xt1, Xt2, ..., xtn) And the output system is X1 T= (X1, X2, ..., xT). At this time, if there is a transition from the state m ′ to the state m, the code bit corresponding to the transition is represented by x (m ′, m) = (x1(M ', m), x2(M ', m), ..., xn(M ′, m)).
[0004]
The convolutional encoding by the encoding device 1001 is performed in the state S0= 0, X1 TTo output STIt ends with = 0. Here, the transition probability P between the statest(M | m ′) is defined by the following equation (1).
[0005]
[Expression 1]
Figure 0004427883
[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]
Figure 0004427883
[0008]
The no-memory channel 1002 with noise1 TAs the input, Y1 TIs output. Here, if an n-bit received value is output in one time slot, the output at time t is yt= (Yt1, Yt2, ..., ytn), Y1 T= (Y1, Y2, ..., yT). The transition probability of the no-memory channel 1002 with noise is the transition probability Pr {y of each symbol for all t (1 ≦ t ≦ T) as shown in the following equation (3).j| Xj} Can be used.
[0009]
[Equation 3]
Figure 0004427883
[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]
Figure 0004427883
[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]
Figure 0004427883
[0014]
[Formula 6]
Figure 0004427883
[0015]
[Expression 7]
Figure 0004427883
[0016]
Where these probabilities αt, ΒtAnd γtThe trellis which is a state transition diagram in the encoding apparatus 1001 will be described with reference to FIG. In the figure, αt-1Is the encoding start state S0Corresponds to the passing probability of each state at time t−1 calculated in chronological order based on the received value from = 0. ΒtIs the encoding end state STCorresponds to the passing probability of each state at time t calculated from = 0 based on the received value in reverse order of time series. Furthermore, γtCorresponds to the reception probability of the output of each branch that transitions between states at time t calculated based on the reception value and input probability at time t.
[0017]
These probabilities αt, ΒtAnd γt, The soft output λtjCan be expressed as the following equation (8).
[0018]
[Equation 8]
Figure 0004427883
[0019]
By the way, the following equation (9) is established for t = 1, 2,.
[0020]
[Equation 9]
Figure 0004427883
[0021]
Similarly, for t = 1, 2,..., T, the following equation (10) holds.
[0022]
[Expression 10]
Figure 0004427883
[0023]
Furthermore, γtThe following equation (11) is established.
[0024]
## EQU11 ##
Figure 0004427883
[0025]
Therefore, when performing the soft output decoding by applying the BCJR algorithm, the decoding apparatus 1003 performs a soft output λ through a series of steps shown in FIG. 114 based on these relationships.tAsk for.
[0026]
First, as shown in the figure, the decoding device 1003 determines that y in step S1001.tIs received using the above equation (9) and the above equation (11).t(M) and γt(M ', m) is calculated.
[0027]
Subsequently, in step S1002, the decoding device 1003 determines that the sequence Y1 TIs received for all states m at all times t using the above equation (10).t(M) is calculated.
[0028]
Then, in step S1003, the decoding device 1003 calculates the probability α calculated in step S1001 and step S1002.t, ΒtAnd γtIs substituted into the above equation (8), and the soft output λ at each time ttIs calculated.
[0029]
The decoding apparatus 1003 can perform soft output decoding to which the BCJR algorithm is applied through such a series of processes.
[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]
Figure 0004427883
[0033]
[Formula 13]
Figure 0004427883
[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]
Figure 0004427883
[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 decoding device 1003 is configured as software, since either positive or negative values can be processed, the constant sgn may be “+1” or “−1”, but the decoding device 1003 Is configured as hardware, for the purpose of reducing the number of bits, it is desirable to invert the calculated negative value positive / negative identification code and treat it as a positive value.
[0038]
That is, when the decoding device 1003 is configured as a system that handles only negative values as log likelihood, the constant sgn is configured as “+1” and the decoding device 1003 is configured as a system that handles only positive values as log likelihood. If so, take "-1". In the following, an algorithm considering such a constant sgn will be described.
[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]
Figure 0004427883
[0041]
[Expression 16]
Figure 0004427883
[0042]
[Expression 17]
Figure 0004427883
[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]
Figure 0004427883
[0045]
Therefore, when performing the soft output decoding by applying the Max-Log-BCJR algorithm, the decoding apparatus 1003 performs the soft output λ through a series of steps shown in FIG. 115 based on these relationships.tAsk for.
[0046]
First, as shown in the figure, the decoding apparatus 1003 determines that y in step S1011.tIs received using the above equation (15) and the above equation (17), the log likelihood Iαt(M) and Iγt(M ', m) is calculated.
[0047]
Subsequently, in step S1012, the decoding apparatus 1003 determines that the sequence Y1 TIs received for all states m at all times t using the above equation (16).t(M) is calculated.
[0048]
Then, in step S1013, the decoding device 1003 calculates the log likelihood Iα calculated in step S1011 and step S1012.t, IβtAnd IγtIs substituted into the above equation (18), and the logarithmic soft output Iλ at each time ttIs calculated.
[0049]
The decoding apparatus 1003 can perform soft output decoding to which the Max-Log-BCJR algorithm is applied through such a series of processes.
[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]
Figure 0004427883
[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]
Figure 0004427883
[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]
Figure 0004427883
[0057]
[Expression 22]
Figure 0004427883
[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]
Figure 0004427883
[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]
Figure 0004427883
[0062]
[Expression 25]
Figure 0004427883
[0063]
[Equation 26]
Figure 0004427883
[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 decoding apparatus 1003 performs the soft output λ through the series of steps shown in FIG. 115 based on these relationships.tCan be requested.
[0066]
First, as shown in the figure, the decoding apparatus 1003 determines that y in step S1011.tIs received using the above equation (24) and the above equation (17), the log likelihood Iαt(M) and Iγt(M ', m) is calculated.
[0067]
Subsequently, in step S1012, the decoding apparatus 1003 determines that the sequence Y1 TAre received for all states m at all times t using the above equation (25).t(M) is calculated.
[0068]
Then, in step S1013, the decoding device 1003 calculates the log likelihood Iα calculated in step S1011 and step S1012.t, IβtAnd IγtIs substituted into the above equation (26), and the logarithmic soft output Iλ at each time ttIs calculated.
[0069]
The decoding apparatus 1003 can perform soft output decoding to which the Log-BCJR algorithm is applied through such a series of processes. In the above equations (19) and (21), the correction term shown in the second term on the right side is expressed by a one-dimensional function with respect to the variable | x−y |. Is stored in advance in a ROM (Read Only Memory) or the like (not shown) as a table, so that an accurate probability calculation can be performed.
[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 encoding device 1 included in a transmission device (not shown), and the output is input to a reception device (not shown) via a no-memory communication channel 2 having noise. Thus, the data transmission / reception system is applied to a communication model decoded by the decoding device 3 included in the receiving device.
[0092]
In this data transmission / reception system, the encoding apparatus 1 includes a parallel concatenated convolutional code (hereinafter referred to as PCCC) or a serial concatenated convolutional code (Serially Concatenated Convolutional Codes) having a trellis code such as a convolutional code as an element code. Hereinafter referred to as SCCC), turbo coded modulation (hereinafter referred to as TTCM) or cascade concatenated coded modulation (Serial) combined with multi-level modulation by applying PCCC or SCCC. Concatenated Trellis Coded Modulation (hereinafter referred to as SCTCM)). These encodings are known as a kind of so-called turbo coding.
[0093]
On the other hand, the decoding device 3 performs decoding of the code encoded by the encoding device 1, and “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 algorithm or Log-MAP algorithm (hereinafter referred to as Max-Log-BCJR algorithm or Log-BCJR algorithm). The maximum a posteriori probability (hereinafter referred to as MAP) decoding is performed, and the so-called probabilities α, β, γ, and soft-output λ are logarithmic likelihoods using natural logarithms. Logarithmic likelihood Iα, Iβ, Iγ expressed in logarithmic form and log soft output Iλ corresponding to so-called a posteriori probability information A module including at least a soft output decoding circuit and an interleaver for rearranging input data is configured as one element decoder, and a plurality of element decoders are connected to perform iterative decoding. .
[0094]
In particular, the decoding device 3 inputs so-called extrinsic information obtained by soft output decoding to the interleaver, shares the same address data between the interleaving process and the deinterleaving process, and these addresses. The data is switched according to the interleaving process and the deinterleaving process.
[0095]
In the following description, each element decoder in the decoding device 3 is described as performing MAP decoding based on the Log-BCJR algorithm.
[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 encoding device 1 ′ and a decoding device 3 ′ for performing encoding / decoding by PCCC shown in FIGS. The encoding device 1 ″ and the decoding device 3 ″ that perform encoding and decoding by SCCC shown in FIGS. 4 and 5 will be described. These encoding devices 1 ′ and 1 ″ are positioned as examples of the encoding device 1, and the decoding devices 3 ′ and 3 ″ are positioned as examples of the decoding device 3. In particular, the decoding devices 3 ′ and 3 ″ can be configured by connecting element decoders.
[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 encoding device 1 ′ includes a delay unit 11 that delays input data, two convolutional encoders 12 and 14 that perform convolution operations, and an interface that rearranges the order of input data. Some are equipped with a Lleaver 13. The encoding device 1 ′ performs a parallel concatenated convolution operation with an encoding rate of “1/3” on the input 1-bit input data D1, and generates 3-bit output data D4, D5, and D6. For example, via a modulator (not shown) that performs modulation using a two-phase phase (Binary Phase Shift Keying; hereinafter referred to as BPSK) modulation method or a four-phase phase (Quadrature Phase Shift Keying; hereinafter referred to as QPSK) modulation method. Output to the outside.
[0101]
The delay unit 11 is provided to match the timing at which the 3-bit output data D4, D5, and D6 are output. When the 1-bit input data D1 is input, the interleaver 13 receives the input data D1. Delay by the same time as the required processing time. The delay unit 11 outputs the delay data D2 obtained by the delay to the outside as output data D4 and supplies it to the convolutional encoder 12 at the subsequent stage.
[0102]
When the convolutional encoder 12 receives the 1-bit delay data D2 output from the delay unit 11, the convolutional encoder 12 performs a convolution operation on the delay data D2, and outputs the operation result to the outside as output data D5.
[0103]
The interleaver 13 receives input data D1 composed of one bit sequence, rearranges the order of each bit constituting the input data D1, and supplies the generated interleave data D3 to the convolutional encoder 14 at the subsequent stage.
[0104]
When the convolutional encoder 14 receives 1-bit interleaved data D3 supplied from the interleaver 13, the convolutional encoder 14 performs a convolutional operation on the interleaved data D3 and outputs the operation result to the outside as output data D6.
[0105]
When such 1-bit input data D1 is input, such an encoding apparatus 1 ′ outputs the input data D1 to the outside as it is via the delay unit 11 as output data D4 of the tissue component, and a convolutional encoder. The output data D5 obtained as a result of the convolution operation of the delay data D2 by 12 and the output data D6 obtained as a result of the convolution operation of the interleaved data D3 by the convolutional encoder 14 are output to the outside, thereby encoding as a whole. Parallel concatenated convolution with a rate of “1/3” is performed. The data encoded by the encoding device 1 ′ is subjected to signal point mapping by a modulator (not shown) based on a predetermined modulation method, and is output to the receiving device via the memoryless communication path 2.
[0106]
On the other hand, as shown in FIG. 3, the decoding device 3 ′ for decoding the code by the encoding device 1 ′ arranges two soft output decoding circuits 15 and 17 for performing soft output decoding and the order of the input data. Some include an interleaver 16 to be replaced, two deinterleavers 18 and 20 that restore the order of input data, and an adder 19 that adds the two data. The decoding device 3 ′ estimates the input data D1 in the encoding device 1 ′ from the received value D7 that is a soft-input due to the influence of noise generated on the memoryless communication path 2, and the decoded data D13. Output as.
[0107]
The soft output decoding circuit 15 is provided corresponding to the convolutional encoder 12 in the encoding device 1 ′, and performs MAP decoding based on Log-BCJR. The soft output decoding circuit 15 receives the soft input received value D7, and also receives a priori probability information D8 for the soft input information bits output from the deinterleaver 18, and receives these received values. Soft output decoding is performed using D7 and prior probability information D8. Then, the soft output decoding circuit 15 generates external information D9 for the information bits obtained by the code constraint condition, and outputs the external information D9 to the subsequent interleaver 16 as a soft output.
[0108]
The interleaver 16 performs interleaving based on the same replacement position information as the interleaver 13 in the encoding device 1 ′ with respect to the external information D <b> 9 for the information bits that are the soft inputs output from the soft output decoding circuit 15. The interleaver 16 outputs the data obtained by the interleaving as prior probability information D10 for the information bits in the subsequent-stage soft output decoding circuit 17, and also outputs it to the subsequent-stage adder 19.
[0109]
The soft output decoding circuit 17 is provided corresponding to the convolutional encoder 14 in the encoding device 1 ′, and performs MAP decoding based on the Log-BCJR algorithm, similarly to the soft output decoding circuit 15. The soft output decoding circuit 17 receives the soft input received value D7 and also inputs prior probability information D10 for the soft input information bits output from the interleaver 16, and receives the received value D7 and the prior probability information D10. Is used to perform soft output decoding. Then, the soft output decoding circuit 17 generates external information D11 for the information bits obtained by the code constraint condition, and outputs the external information D11 to the deinterleaver 18 as a soft output and also to the adder 19.
[0110]
The deinterleaver 18 is a soft output decoder 17 that outputs the bit arrangement of the interleaved data D3 interleaved by the interleaver 13 in the encoding device 1 ′ to the original bit arrangement of the input data D1. Deinterleave is performed on the input external information D11. The deinterleaver 18 outputs the data obtained by deinterleaving as prior probability information D8 for information bits in the soft output decoding circuit 15.
[0111]
The adder 19 adds the prior probability information D10 for the soft input information bits output from the interleaver 16 and the external information D11 for the information bits output from the soft output decoding circuit 17. The adder 19 outputs the obtained data D12 to the subsequent deinterleaver 20 as a soft output.
[0112]
The deinterleaver 20 converts the bit array of the interleaved data D3 interleaved by the interleaver 13 in the encoding device 1 ′ back to the bit array of the original input data D1, and outputs the soft output output from the adder 19. Deinterleave is performed on the data D12. The deinterleaver 20 outputs the data obtained by deinterleaving to the outside as decoded data D13.
[0113]
Such a decoding device 3 ′ includes soft output decoding circuits 15 and 17 corresponding to the convolutional encoders 12 and 14 in the encoding device 1 ′, so that a code having a high decoding complexity is reduced in complexity. It can be decomposed into elements, and the characteristics can be sequentially improved by the interaction between the soft output decoding circuits 15 and 17. When receiving the received value D7, the decoding device 3 'performs iterative decoding with a predetermined number of repetitions, and outputs decoded data D13 based on the soft output external information obtained as a result of this decoding operation.
[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 encoding apparatus 1 ′. It can be realized by providing. In addition, a decoding device that performs code decoding by TTCM can be realized by a configuration similar to that of the decoding device 3 ′, and in-phase component and quadrature component symbols are directly input as received values.
[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 encoding device 1 ″ is a convolutional encoder 31 that encodes a code called an outer code, an interleaver 32 that rearranges the order of input data, and an inner code. Some include a convolutional encoder 33 that encodes a code. This encoding device 1 ″ performs a serial concatenated convolution operation with an encoding rate of “1/3” on the input 1-bit input data D21, and generates 3-bit output data D26, D27, and D28. For example, the signal is output to the outside via a modulator (not shown) that performs modulation by the BPSK modulation method or the QPSK modulation method.
[0117]
When the 1-bit input data D21 is input, the convolutional encoder 31 performs a convolution operation on the input data D21 and supplies the operation result to the subsequent interleaver 32 as 2-bit encoded data D22 and D23. . That is, the convolutional encoder 31 performs a convolution operation with a coding rate of “1/2” as the encoding of the outer code, and supplies the generated encoded data D22 and D23 to the subsequent interleaver 32.
[0118]
The interleaver 32 receives the encoded data D22 and D23 consisting of two bit sequences supplied from the convolutional encoder 31, rearranges the order of the bits constituting the encoded data D22 and D23, and generates them. The interleaved data D24 and D25 comprising the two bit sequences are supplied to the convolutional encoder 33 at the subsequent stage.
[0119]
When the 2-bit interleaved data D24, D25 supplied from the interleaver 32 is input, the convolutional encoder 33 performs a convolution operation on the interleaved data D24, D25, and outputs the operation result as 3-bit output data D26. , D27, D28 are output to the outside. In other words, the convolutional encoder 33 performs a convolution operation with a coding rate of “2/3” as the encoding of the inner code, and outputs the output data D26, D27, and D28 to the outside.
[0120]
Such an encoding apparatus 1 '' performs a convolution operation with a coding rate of "1/2" as an outer code encoding by the convolutional encoder 31, and an inner code encoding by the convolutional encoder 33. By performing a convolution operation with an encoding rate of “2/3”, a cascaded convolution operation with an encoding rate of “(1/2) × (2/3) = 1/3” is performed as a whole. The data encoded by the encoding device 1 ″ is subjected to signal point mapping by a modulator (not shown) based on a predetermined modulation method, and is output to the receiving device via the memoryless communication path 2.
[0121]
On the other hand, as shown in FIG. 5, the decoding device 3 ″ that performs decoding of the code by the encoding device 1 ″ includes two soft output decoding circuits 34 and 36 that perform soft output decoding, and the order of input data. Some have a deinterleaver 35 that restores the original and an interleaver 37 that rearranges the order of the input data. The decoding device 3 ″ estimates the input data D21 in the encoding device 1 ″ from the received value D29, which is a soft input due to the influence of noise generated on the memoryless communication path 2, and outputs it as decoded data D36. .
[0122]
The soft output decoding circuit 34 is provided corresponding to the convolutional encoder 33 in the encoding device 1 ″, and performs MAP decoding based on Log-BCJR. The soft output decoding circuit 34 receives the soft input received value D29 and also inputs prior probability information D30 for the soft input information bits output from the interleaver 37, and receives the received value D29 and the prior probability information D30. Is used, MAP decoding based on the Log-BCJR algorithm is performed, and soft output decoding of the inner code is performed. Then, the soft output decoding circuit 34 generates external information D31 for the information bits obtained by the code constraint condition, and outputs the external information D31 to the subsequent deinterleaver 35 as a soft output. The external information D31 corresponds to the interleaved data D24 and D25 interleaved by the interleaver 32 in the encoding device 1 ''.
[0123]
The deinterleaver 35 performs soft output so as to return the bit arrangement of the interleaved data D24 and D25 interleaved by the interleaver 32 in the encoding apparatus 1 ″ to the original bit arrangement of the encoded data D22 and D23, respectively. The soft input external information D31 output from the decoding circuit 34 is deinterleaved. The deinterleaver 35 outputs the data obtained by deinterleaving as prior probability information D32 for the code bit in the subsequent soft output decoding circuit 36.
[0124]
The soft output decoding circuit 36 is provided corresponding to the convolutional encoder 31 in the encoding device 1 ″, and performs MAP decoding based on Log-BCJR. The soft output decoding circuit 36 inputs prior probability information D32 for the soft input code bits output from the deinterleaver 35, and also inputs prior probability information D33 for information bits whose value is “0”. MAP decoding based on the Log-BCJR algorithm is performed using the prior probability information D32 and D33, and soft output decoding of the outer code is performed. The soft output decoding circuit 36 generates external information D34 and D35 obtained by code constraint conditions, outputs the external information D34 to the outside as decoded data D36, and outputs the external information D35 to the interleaver 37 as a soft output. .
[0125]
The interleaver 37 performs interleaving based on the same replacement position information as the interleaver 32 in the encoding device 1 ″ with respect to the external information D35 for the code bit which is the soft input output from the soft output decoding circuit 36. . The interleaver 37 outputs the data obtained by the interleaving as prior probability information D30 for the information bits in the soft output decoding circuit 34.
[0126]
Such a decoding device 3 ″ includes the soft output decoding circuits 36 and 34 corresponding to the convolutional encoders 31 and 33 in the encoding device 1 ″, respectively. The code having high complexity can be decomposed into elements having low complexity, and the characteristics can be sequentially improved by the interaction between the soft output decoding circuits 34 and 36. When receiving the reception value D29, the decoding device 3 '' performs iterative decoding with a predetermined number of repetitions, and outputs decoded data D36 based on the soft output external information obtained as a result of this decoding operation.
[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 encoding apparatus 1 ″. In addition, a decoding apparatus that decodes codes by SCTCM can be realized by a configuration similar to that of the decoding apparatus 3 ″, and in-phase component and quadrature component symbols are directly input as received values.
[0128]
2. Element decoder details
The decoding device 3 shown as an embodiment of the present invention includes the above-described element decoding including a module including at least a soft output decoding circuit and an interleaver or deinterleaver, as indicated by a broken line portion in FIG. 3 or a broken line portion in FIG. A plurality of element decoders are concatenated to decode any code among PCCC, SCCC, TTCM, or SCTCM. Here, the deinterleaver rearranges the data based on the replacement position information opposite to that of the interleaver. Therefore, it can be assumed as one form of the interleaver. Therefore, the element decoder only needs to have a soft output decoding circuit and an interleaver, and the interleave process and the deinterleave process are realized by switching the functions of the interleaver and the deinterleaver. be able to. Therefore, in the following description, it is assumed that the interleaver has the function of a deinterleaver unless particularly distinguished.
[0129]
Now, the element decoder in the decoding apparatus 3 will be described in detail below. In the following, M states (transition states) representing the contents of the shift register included in each element encoder in the encoding device 1 are expressed as m (0, 1,..., M−1) as necessary. ) And the state at time t is StRepresented by Furthermore, if k-bit information is input in one time slot, the input at time t is it= (It1, It2, ..., itk) And the input system is I1 T= (I1, I2, ..., iT). At this time, if there is a transition from the state m ′ to the state m, the information bit corresponding to the transition is i (m ′, m) = (i1(M ', m), i2(M ', m), ..., ik(M ′, m)). Furthermore, if an n-bit code is output in one time slot, the output at time t is xt= (Xt1, Xt2, ..., xtn) And the output system is X1 T= (X1, X2, ..., xT). At this time, if there is a transition from the state m ′ to the state m, the code bit corresponding to the transition is represented by x (m ′, m) = (x1(M ', m), x2(M ', m), ..., xn(M ′, m)). Further, the memoryless communication path 2 is X1 TAs the input, Y1 TIs output. Here, if an n-bit received value is output in one time slot, the output at time t is yt= (Yt1, Yt2, ..., ytn), Y1 T= (Y1, Y2, ..., yT).
[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 element decoder 50 schematically shown in FIG. 6 is configured as a single chip by integrating each part on a single semiconductor substrate as a large-scale integrated circuit (hereinafter referred to as LSI). The element decoder 50 includes a control circuit 60 that controls each unit, a decoded reception value selection circuit 70 that selects a reception value to be decoded, an edge detection circuit 80 that detects the beginning of a frame, and a soft output decoding that performs soft output decoding. A circuit 90; an interleaver 100 that rearranges the order of the input data; an address storage circuit 110 that holds replacement destination address data referred to by the interleaver 100; and ten selectors 120.1, 1202, 120Three, 120Four, 120Five, 1206, 1207, 1208, 1209, 120TenAnd a signal line 130 used for system verification.
[0132]
Here, details of the left half portion of the element decoder 50 shown in FIG. 7 are shown in FIG. 7, and details of the right half portion are shown in FIG.
[0133]
The control circuit 60 includes a decoded received value selection circuit 70, a soft output decoding circuit 90, an interleaver 100, an address storage circuit 110, and nine selectors 120.2, 120Three, 120Four, 120Five, 1206, 1207, 1208, 1209, 120TenIn addition, each generates and supplies various types of information, receives information from the address storage circuit 110, and controls the operation of each unit.
[0134]
Specifically, the control circuit 60 selects a received value for causing the decoded received value selection circuit 70 to select a decoded received value TSR that is a received value to be decoded among the received values R (received value TR). Information CRS is generated and supplied.
[0135]
In addition, the control circuit 60 determines whether the data input as the reception value R to the soft output decoding circuit 90 is actually the reception value or external information. Received value format information CRTY indicating the format of the received value R, such as whether it is an I / Q value when encoding by SCCTCM, and prior probability information are input in bit units or in symbol units Prior probability information format information CAPP indicating the format of prior probability information, coding rate information CRAT indicating the coding rate of the element encoder in the encoding device 1, and element encoding in the encoding device 1 Generator matrix information CG indicating the generator matrix, and signal point allocation indicating the arrangement of signal points when the encoding apparatus 1 performs encoding by TTCM or SCTCM And generates and supplies the information CSIG.
[0136]
Further, the control circuit 60 interleaves the interleaver type information CINT indicating the type of interleaving to be performed with respect to the interleaver 100, the interleave length information CINL indicating the interleave length, and the order among a plurality of symbols as will be described later. Interleaver input / output replacement information CIPT relating to processing contents of the interleaver 100 such as input / output replacement information for mutual replacement, termination position information CNFT indicating the termination position of the code, and termination period information CNFL indicating the termination period of the code And ending state information CNFD indicating the ending state of the code, puncturing period information CNEL indicating the puncturing period when the code is punctured, and puncture pattern information CNEP indicating the puncturing pattern are generated and supplied. In addition, the control circuit 60 generates and supplies operation mode information CBF indicating an operation mode described later to the interleaver 100.
[0137]
Furthermore, when writing the replacement destination address data referred to by the interleaver 100 to the address storage circuit 110, the control circuit 60 stores interleaver type information CINT and address storage for the address storage circuit 110. An address CIAD indicating the address of the circuit 110 and write data CIWD which is replacement destination address data referred to by the interleaver 100 are supplied.
[0138]
The control circuit 60 includes six selectors 120.2, 120Three, 120Four, 120Five, 1206, 1207Operation mode information CBF is supplied to the three selectors 1208, 1209, 120TenOn the other hand, verification mode information CTHR indicating whether or not the verification mode is described later is supplied.
[0139]
On the other hand, the control circuit 60 inputs read address data ADA which is replacement destination address data referenced by the interleaver 100 held in the address memory circuit 110.
[0140]
Such a control circuit 60 includes a decoded received value selection circuit 70, a soft output decoding circuit 90, an interleaver 100, and a selector 120.2, 120Three, 120Four, 120Five, 1206, 1207, 1208, 1209, 120TenOn the other hand, the generated various information is supplied to control the operation of each unit, and control to write address data to the address storage circuit 110, operation, and the like are performed.
[0141]
The decoded received value selection circuit 70 is provided for decoding an arbitrary code, as will be described later, and is based on the received value selection information CRS supplied from the control circuit 60. The decoded received value TSR is selected from TR. The decoded received value selection circuit 70 supplies the selected decoded received value TSR to the soft output decoding circuit 90.
[0142]
Specifically, the decoded reception value selection circuit 70 includes, for example, six reception values TR0, TR1, TR2, TR3, TR4, and TR5, and among these, four reception values are decoded reception values TSR0, If the selection is made as TSR1, TSR2, TSR3, it can be realized as having four selectors 71, 72, 73, 74 as shown in FIG. At this time, the reception value selection information CRS supplied from the control circuit 60 is individually given to each of the selectors 71, 72, 73, 74, and is composed of four systems of reception value selection information CRS0, CRS1, CRS2, CRS3. .
[0143]
That is, the selector 71 selects a predetermined reception value from among the reception values TR0, TR1, TR2, TR3, TR4, and TR5 based on the reception value selection information CRS0, and sends it to the soft output decoding circuit 90 as a decoded reception value TSR0. Supply.
[0144]
Further, the selector 72 selects a predetermined reception value among the reception values TR0, TR1, TR2, TR3, TR4, and TR5 based on the reception value selection information CRS1, and supplies the decoded reception value TSR1 to the soft output decoding circuit 90. Supply.
[0145]
Further, the selector 73 selects a predetermined reception value from the reception values TR0, TR1, TR2, TR3, TR4, and TR5 based on the reception value selection information CRS2, and sends it to the soft output decoding circuit 90 as a decoded reception value TSR2. Supply.
[0146]
Then, the selector 74 selects a predetermined reception value from the reception values TR0, TR1, TR2, TR3, TR4, and TR5 based on the reception value selection information CRS3, and sends it to the soft output decoding circuit 90 as a decoded reception value TSR3. Supply.
[0147]
As described above, the decoded reception value selection circuit 70 selects the decoded reception value TSR based on the reception value selection information CRS supplied from the control circuit 60 and supplies it to the soft output decoding circuit 90.
[0148]
The edge detection circuit 80 receives an interleave start position supplied from the outside, that is, an interleave start position signal ILS (interleave start position signal TILS) indicating the head of the frame, and inputs the received value TR of the frame constituting the received value TR Detect the beginning. The edge detection circuit 80 generates an edge signal TEILS indicating the head of the detected frame as a soft output decoding circuit 90 and a selector 120.FiveTo supply.
[0149]
Specifically, the edge detection circuit 80 can be realized as having a register 81 and an AND gate 82 as shown in FIG.
[0150]
The register 81 holds an interleave start position signal TILS consisting of, for example, 1 bit for only one clock. The register 81 supplies the held delayed interleave start position signal TILSD to the AND gate 82.
[0151]
The AND gate 82 takes a logical product of the interleave start position signal TILS and data obtained by inverting the delayed interleave start position signal TILSD, which is the interleave start position signal TILS one clock before supplied from the register 81. The AND gate 82 uses the obtained logical product as the edge signal TEILS and the soft output decoding circuit 90 and the selector 120.FiveTo supply.
[0152]
That is, the edge detection circuit 80 only has to detect that the interleave start position signal TILS supplied from the outside is switched from “0” to “1”, for example. It can be detected that the head of the frame constituting the TR has been input.
[0153]
The soft output decoding circuit 90 uses the decoded reception value TSR supplied from the decoded reception value selection circuit 70 and external information or interleave data EXT (external information or interleave data EXT) supplied from the outside as prior probability information. MAP decoding based on the Log-BCJR algorithm is performed.
[0154]
At this time, the soft output decoding circuit 90 receives the reception value format information CRTY supplied from the control circuit 60, the prior probability information format information CAPP, the coding rate information CRAT, the generation matrix information CG, and signals as necessary. In addition to the point arrangement information CSIG, erasure information ERS (erase information TERS) and a prior probability information erasure information EAP (prior probability information erasure information TEAP) indicating an externally supplied puncture pattern, and an end time indicating the end time of the code Decoding processing is performed using information TNP (termination time information TTNP) and termination state information TNS (termination state information TTNS) indicating the termination state.
[0155]
The soft output decoding circuit 90 selects the soft output SOL and the external information SOE obtained as a result of the decoding process from the selector 120.1To supply. At this time, the soft output decoding circuit 90 obtains information for information symbols or information bits and information for code symbols or code bits based on an output data selection control signal ITM (output data selection control signal CITM) supplied from the outside. Selectively output. When the soft output decoding circuit 90 makes a hard decision, the decoded value hard decision information SDH obtained by making a hard decision on the soft output that is the decoded value and the received value obtained by making a hard decision on the received value. Hard decision information SRH is output to the outside. Also at this time, the soft output decoding circuit 90 selectively outputs information for information symbols or information bits and information for code symbols or code bits based on the output data selection control signal CITM.
[0156]
The soft output decoding circuit 90 can also delay the reception value TR, external information or interleave data TEXT, and the edge signal TELS supplied from the edge detection circuit 80, as will be described later. In this case, the soft output decoding circuit 90 converts the delay reception value SDR obtained by delaying the reception value TR into the selector 120.Three, 1206The external information or delayed external information SDEX obtained by delaying the interleave data TEXT is supplied to the selector 120.2The delayed edge signal SDILS obtained by delaying the edge signal TEILS is supplied to the selector 120.FiveTo supply.
[0157]
The details of the soft output decoding circuit 90 will be described in “2-2”.
[0158]
The interleaver 100 includes a selector 120FourFor the data TII supplied from, the interleave based on the same replacement position information as the interleaver in the encoding device 1 (not shown), or the bit array of the interleaved data interleaved by the interleaver in the encoding device 1 Deinterleaving is performed so as to return to the bit array of the data. At this time, the interleaver 100 functions as an interleaver or a deinterleaver based on an interleave mode signal DIN (interleave mode signal CDIN) supplied from the outside.
[0159]
The interleaver 100 includes a selector 120FiveWhen the interleave start position signal TIS supplied from is input, the address data IAA is given to the address memory circuit 110 to designate the address, thereby reading the address data held in the address memory circuit 110 Reading is performed as address data ADA, and interleaving or deinterleaving is performed based on the read address data ADA. At this time, the interleaver 100 performs interleaving or deinterleaving using the interleaver type information CINT, the interleave length information CINL, and the interleaver input / output replacement information CIPT supplied from the control circuit 60. The interleaver 100 selects the interleaver output data IIO obtained by interleaving or deinterleaving from the selector 120.7To supply.
[0160]
In addition, the interleaver 100 includes a selector 120 as will be described later.ThreeIt is also possible to delay the data TDI of any one of the reception value TR and the delay reception value SDR supplied from. At this time, the interleaver 100 delays the data TDI based on the operation mode information CBF supplied from the control circuit 60. The interleaver 100 selects the interleave length delay reception value IDO obtained by delaying the data TDI as a selector 120.6To supply.
[0161]
Furthermore, as will be described later, interleaver 100 is based on termination position information CNFT, termination period information CNFL, termination state information CNFD, puncture cycle information CNEL, and puncture pattern information CNEP supplied from control circuit 60. Thus, when a plurality of element decoders are connected, termination time information IGT and termination state information IGS indicating the termination time and termination state of the code in the next stage element decoder, and erasure position information IGE indicating the puncture position of the code And interleaver non-output position information INO. At the same time, the interleaver 100 receives the selector 120.FiveIs delayed to generate a delayed interleave start position signal IDS. The interleaver 100 uses the generated end time information IGT, end state information IGS, erase position information IGE, interleaver non-output position information INO, and delayed interleave start position signal IDS as generation next stage information at the head of the frame. Synchronize, selector 120TenTo supply.
[0162]
Details of the interleaver 100 will be described in “2-3”.
[0163]
Although not shown, the address memory circuit 110 includes, for example, a plurality of banks of RAM (Random Access Memory), a selection circuit, and the like, and includes replacement position information of data referred to when the interleaver 100 performs interleaving or deinterleaving. Stored as address data. The address data held in the address memory circuit 110 is read as read address data ADA when the address of the address memory circuit 110 is designated as the address data IAA by the interleaver 100. The address data is written into the address memory circuit 110 by the control circuit 60. When the address of the address memory circuit 110 is designated as the address CIAD, the address data is written as the write data CIWD. Thus, an arbitrary interleave pattern can be written in the address memory circuit 110. Note that the address storage circuit 110 may be provided inside the interleaver 100. That is, the element decoder 50 performs an interleaving process or a deinterleaving process using both the interleaver 100 and the address storage circuit 110.
[0164]
Selector 1201Selects one of the soft output SOL and the external information SOE supplied from the soft output decoding circuit 90 on the basis of the output data selection control signal CITM, and the selector 120 selects the data TLX.2To supply. That is, the selector 1201Is provided for determining whether the soft output decoding circuit 90 should output external information in the process of iterative decoding or should output a soft output as a final result. .
[0165]
Selector 1202The delay external information SDEX supplied from the soft output decoding circuit 90 based on the operation mode information CBF, and the selector 1201One of the data TLX supplied from the data TLX is selected, and the selector 120 is used as the data TDLX.Four, 1207To supply.
[0166]
Here, the operation mode of the element decoder 50 will be described. The element decoder 50 has, for example, six operation modes. The first is a mode in which the soft output decoding circuit 90 and the interleaver 100 perform normal soft output decoding processing and interleaving processing, respectively. The second is a mode in which only the soft output decoding circuit 90 performs normal soft output decoding processing. The third is a mode in which only the interleaver 100 performs normal interleaving processing. The fourth is a mode in which the soft output decoding circuit 90 and the interleaver 100 function as a delay circuit without performing normal soft output decoding processing and interleaving processing, respectively. The fifth is a mode in which only the soft output decoding circuit 90 functions as a delay circuit without performing normal soft output decoding processing. A sixth mode is a mode in which only the interleaver 100 functions as a delay circuit without performing normal interleaving processing. These operation modes are determined by the control circuit 60 and supplied to each unit as operation mode information CBF. Hereinafter, the first mode to the third mode are collectively referred to as a normal mode, and the fourth mode to the sixth mode are collectively referred to as a delay mode as necessary.
[0167]
Specifically, the selector 1202Is the delay between the operation mode information CBF and the processing time required by the soft output decoding circuit 90, the delay between the processing time required by the interleaver 100, or the processing required by the soft output decoding circuit 90 and the interleaver 100. In the case where the delay mode is to be delayed between time and simultaneous, the delay external information SDEX is selected and output, and the operation mode information CBF is output from the soft output decoding circuit 90 and / or the interface. If the normal mode in which the processing by the soft output decoding circuit 90 and / or the interleaver 100 is performed without delay by the Lleaver 100, the data TLX is selected and output. That is, the selector 1202Is provided to determine whether the operation mode of the element decoder 50 is the delay mode or the normal mode, and selects data to be output in accordance with each operation mode.
[0168]
Selector 120ThreeSelects one of the reception value TR and the delayed reception value SDR supplied from the soft output decoding circuit 90 based on the operation mode information CBF, and supplies it to the interleaver 100 as data TDI. Specifically, the selector 120ThreeIs a received value if the operation mode information CBF indicates a normal mode in which only processing by the interleaver 100 is performed, or a delay mode in which a delay between the processing time required by the interleaver 100 is to be performed simultaneously. When TR is selected and output, and the operation mode information CBF indicates other normal mode or delay mode, the delay reception value SDR is selected and output. That is, the selector 120ThreeIs to determine whether to use the soft output decoding process performed by the soft output decoding circuit 90 or the data subjected to the delay between the processing time required by the soft output decoding circuit 90 as the data input to the interleaver 100 The data to be output is selected according to each operation mode.
[0169]
Selector 120FourIs based on the operation mode information CBF, external information or interleave data TEXT, and a selector 1202Is selected from the data TDLX supplied from, and supplied to the interleaver 100 as data TII. Specifically, the selector 120FourIf the operation mode information CBF indicates a normal mode in which only the processing by the interleaver 100 is performed, or a delay mode in which a delay between the processing time required by the interleaver 100 is to be performed, the external information Alternatively, when the interleave data TEXT is selected and output, and the operation mode information CBF indicates other normal mode or delay mode, the data TDLX is selected and output. That is, the selector 120FourIs to determine whether to use the soft output decoding process performed by the soft output decoding circuit 90 or the data subjected to the delay between the processing time required by the soft output decoding circuit 90 as the data input to the interleaver 100 The data to be output is selected according to each operation mode.
[0170]
Selector 120FiveSelects either one of the edge signal TEILS supplied from the edge detection circuit 80 and the delayed edge signal SDILS supplied from the soft output decoding circuit 90 based on the operation mode information CBF, and the interleave start position The signal is supplied to the interleaver 100 as a signal TIS. Specifically, the selector 120FiveIf the operation mode information CBF indicates a normal mode in which only the processing by the interleaver 100 is performed or a delay mode in which a delay between the processing time required by the interleaver 100 is to be performed at the same time, the edge signal When TEILS is selected and output, and the operation mode information CBF indicates other normal mode or delay mode, the delayed edge signal SDILS is selected and output. That is, the selector 120FiveIs to determine whether to use the soft output decoding process performed by the soft output decoding circuit 90 or the data subjected to the delay between the processing time required by the soft output decoding circuit 90 as the data input to the interleaver 100 The data to be output is selected according to each operation mode.
[0171]
Selector 1206Selects one of the delayed received value SDR supplied from the soft output decoding circuit 90 and the interleave length delayed received value IDO supplied from the interleaver 100 based on the operation mode information CBF, Selector 120 as received value TDR8To supply. Specifically, the selector 1206Is when the operation mode information CBF indicates a normal mode in which only the processing by the soft output decoding circuit 90 is performed, or a delay mode in which a delay between the processing time required by the soft output decoding circuit 90 is to be performed. Selects and outputs the delayed received value SDR, and if it indicates other normal mode or delayed mode, selects and outputs the interleave length delayed received value IDO. That is, the selector 1206Is provided to determine whether or not to use interleave processing by the interleaver 100 or data that is delayed at the same time as the processing time required by the interleaver 100 as data to be output. The data to be output is selected according to.
[0172]
Selector 1207Is based on the operation mode information CBF, the interleaver output data IIO supplied from the interleaver 100, and the selector 120.2Is selected from the data TDLX supplied from the selector 120 as a soft output TSO.9To supply. Specifically, the selector 1207Is when the operation mode information CBF indicates a normal mode in which only the processing by the soft output decoding circuit 90 is performed, or a delay mode in which a delay between the processing time required by the soft output decoding circuit 90 is to be performed. Selects and outputs data TDLX, and if it indicates other normal mode or delay mode, selects and outputs interleaver output data IIO. That is, the selector 1207Is provided to determine whether or not to use interleave processing by the interleaver 100 or data that is delayed at the same time as the processing time required by the interleaver 100 as data to be output. The data to be output is selected according to.
[0173]
Selector 1208Is based on the verification mode information CTHR.6One of the delayed received value TDR supplied from the signal and the through signal transmitted through the signal line 130 is selected and output to the outside as the delayed received value TRN. The delayed reception value TRN is output as the delayed reception value RN. That is, the selector 1208Is provided to determine whether to output a delay reception value for the next-stage element decoder or to perform system verification.
[0174]
Selector 1209Is based on the verification mode information CTHR.7One of the soft output TSO supplied from the signal and the through signal transmitted through the signal line 130 is selected and output to the outside as the soft output TINT. The soft output TINT is output as the soft output INT. That is, the selector 1209Is provided to determine whether to output a soft output for the next-stage element decoder or to verify the system.
[0175]
Selector 120TenIs based on the verification mode information CTHR, from the termination time information IGT and termination state information IGS supplied from the interleaver 100, the erase position information IGE, the interleaver non-output position information INO, and the delayed interleave start position signal IDS. The next-stage generation time information TTNPN, the next-stage termination state information TTNSN, the next-stage erasure position information TERSN, The next stage prior probability information erasure information TEAPN and the next stage interleave start position signal TILSN are output to the outside. The next stage termination time information TTNPN, the next stage termination state information TTNSN, the next stage erasure position information TERSN, the next stage prior probability information erasure information TEAPN, and the next stage interleave start position signal TILSN, respectively, Time information TNPN, next stage termination state information TNSN, next stage erase position information ERSN, next stage prior probability information erase information EAPN, and next stage interleave start position signal ILSN are output. That is, the selector 120TenIs provided to determine whether to output next-stage information for the next-stage element decoder or to verify the system.
[0176]
As will be described later, the signal line 130 mainly verifies the system when the decoding device 3 similar to the decoding devices 3 ′ and 3 ″ described above is configured by connecting a plurality of element decoders 50 together. It is used for this purpose. The signal line 130 transmits the received value TR, external information or interleave data TEXT, erasure information TERS, prior probability information erasure information TEAP, termination time information TTNP, termination state information TTNS, and interleave start position signal TILS. The signal lines are bundled, and these signals are sent to the selector 120.8, 1209, 120TenTo supply.
[0177]
Such an element decoder 50 is equivalent to a module including at least a soft output decoding circuit and an interleaver or deinterleaver, for example, as shown by a broken line portion in FIG. 3 or a broken line portion in FIG. . The element decoder 50 can constitute a decoding device 3 capable of decoding an arbitrary code among PCCC, SCCC, TTCM, or SCTCM by being connected in a plurality. Various features relating to the entire element decoder 50 will be further described in “4.” described later.
[0178]
Hereinafter, the soft output decoding circuit 90 and the interleaver 100 will be described in more detail.
[0179]
2-2 Details of soft output decoding circuit
First, the soft output decoding circuit 90 will be described in detail. As schematically shown in FIG. 11, the soft output decoding circuit 90 includes a code information generation circuit 151 that generates code information of an element encoder in the encoding device 1, and internal erasure information that indicates a puncture pattern in the encoding device 1. The internal erasure information generation circuit 152 for generating the termination information, the termination information generation circuit 153 for generating termination information in the encoding device 1, the received value and the prior probability information to be input for the decoding process are selected, and the code A reception value and prior probability information selection circuit 154 that replaces a position where no output exists with a symbol having a likelihood of “0”; a reception data and delay storage circuit 155 that stores both reception data and delay data; An Iγ calculating circuit 156 that calculates a log likelihood Iγ that is one log likelihood, and an Iγ distribution circuit 1 that distributes the log likelihood Iγ calculated according to the encoding device 1. 7, an Iα calculation circuit 158 that calculates a log likelihood Iα that is a second log likelihood, an Iβ calculation circuit 159 that calculates a log likelihood Iβ that is a third log likelihood, and the calculated log likelihood Iβ storage circuit 160 that stores Iβ, soft output calculation circuit 161 that calculates logarithmic soft output Iλ, reception value or prior probability information separation circuit 162 that separates a reception value and prior probability information, and external information is calculated External information calculation circuit 163, amplitude adjustment and clip circuit 164 for adjusting the amplitude of logarithmic soft output Iλ and clipping to a predetermined dynamic range, and hard decision for hard decision of soft output and received value as decoded values Circuit 165.
[0180]
Here, details of the left half portion of the soft output decoding circuit 90 shown in FIG. 12 are shown in FIG. 12, and details of the right half portion are shown in FIG.
[0181]
The code information generation circuit 151 generates code information of the element encoder in the encoding device 1 based on the coding rate information CRAT and the generation matrix information CG supplied from the control circuit 60. Specifically, the code information generation circuit 151 includes input bit number information IN indicating the number of input bits of the element encoder in the encoding device 1, and the element encoder in the encoding device 1 is a convolutional encoder. In this case, type information WM indicating whether the convolutional encoder is a so-called Wozencraft type or a Massy type, and a shift register of the element encoder in the encoding device 1, that is, a state In the trellis which is the state transition diagram of the element encoder in the encoding device 1 and the memory number information MN indicating the number of memories indicating (transition state), the branch input indicating input / output information along the time axis for each branch Effectiveness indicating the validity of the output position indicating that the output information BIO and the output from the element encoder in the encoding apparatus 1 exist and the corresponding received value exists Output position information PE is generated.
[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]
Figure 0004427883
[0185]
[Expression 28]
Figure 0004427883
[0186]
[Expression 29]
Figure 0004427883
[0187]
[30]
Figure 0004427883
[0188]
[31]
Figure 0004427883
[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]
Figure 0004427883
[0191]
[Expression 33]
Figure 0004427883
[0192]
[Expression 34]
Figure 0004427883
[0193]
[Expression 35]
Figure 0004427883
[0194]
[Expression 36]
Figure 0004427883
[0195]
[Expression 37]
Figure 0004427883
[0196]
[Formula 38]
Figure 0004427883
[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]
Figure 0004427883
[0199]
[Formula 40]
Figure 0004427883
[0200]
[Expression 41]
Figure 0004427883
[0201]
[Expression 42]
Figure 0004427883
[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]
Figure 0004427883
[0204]
(44)
Figure 0004427883
[0205]
[Equation 45]
Figure 0004427883
[0206]
[Equation 46]
Figure 0004427883
[0207]
[Equation 47]
Figure 0004427883
[0208]
Here, in order to specifically describe the information generated by the code information generation circuit 151, a specific example of each convolutional encoder will be shown.
[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 shift registers 201 as shown in FIG.1, 2012, 201Three, 201FourAnd 11 exclusive OR circuits 2021, 202Four, 202Five, 2027, 2028, 202Ten, 20212, 20213, 20214, 20215, 20216Can be considered. This convolutional encoder is used to input 1-bit input data i0Is entered, this input data i0The convolution operation is performed on the result, and the operation result is output as 4-bit output data0, O1, O2, OThreeOutput as.
[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, Shift register 201Three, Shift register 2012And shift register 2011Of "0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111", "1000", "1001", The state numbers “1010”, “1011”, “1100”, “1101”, “1110”, “1111” are respectively set to “0”, “1”, “2”, “3”, “4”, “5”, “6”, “7”, “8”, “9”, “10”, “11”, “12”, “13”, “14”, “15”. Input data / output data is i0/ OThree, O2, O1, O0It is.
[0211]
[Table 1]
Figure 0004427883
[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 information generation unit 151 inputs “1 bit” as the input bit number information IN, “Bozencraft type” as the type information WM, and “4” as the memory number information MN. As the output information BIO, an input / output pattern of each branch as shown in Table 1 is generated.
[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]
Figure 0004427883
[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 information generation unit 151 inputs “2 bits” as the input bit number information IN, “Bozencraft type” as the type information WM, and “3” as the memory number information MN. An input / output pattern of each branch as shown in Table 2 is generated as output information BIO.
[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]
Figure 0004427883
[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 information generation unit 151 inputs “2 bits” as the input bit number information IN, “Massy type” as the type information WM, “3” as the memory number information MN, and branch input / output An input / output pattern of each branch as shown in Table 3 is generated as information BIO.
[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]
Figure 0004427883
[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 information generation unit 151 inputs “3 bits” as the input bit number information IN, “Massy type” as the type information WM, “2” as the memory number information MN, and branch input / output As the information BIO, an input / output pattern of each branch as shown in Table 4 is generated.
[0229]
In this way, the code information generation circuit 151 generates code information corresponding to the element encoder in the encoding device 1. In particular, the code information generation circuit 151 calculates the input / output patterns of all branches on the trellis corresponding to the code and generates the branch input / output information BIO, which will be described later. The code information generation circuit 151 converts the generated input bit number information IN into the termination information generation circuit 153, the received value and prior probability information 154, the Iγ calculation circuit 156, the Iγ distribution circuit 157, the Iα calculation circuit 158, the Iβ calculation circuit 159, The soft output calculation circuit 161, the received value or prior probability information separation circuit 162, and the hard decision circuit 165 are supplied. The code information generation circuit 151 supplies the generated type information WM to the Iγ calculation circuit 156, the Iγ distribution circuit 157, the Iα calculation circuit 158, and the Iβ calculation circuit 159. Further, the code information generation circuit 151 supplies the generated memory number information MN to the termination information generation circuit 153, the Iγ distribution circuit 157, the Iα calculation circuit 158, the Iβ calculation circuit 159, and the soft output calculation circuit 161. Furthermore, the code information generation circuit 151 supplies the generated branch input / output information BIO to the Iγ distribution circuit 157 and the soft output calculation circuit 161. The code information generation circuit 151 supplies the generated effective output position information PE to the internal erasure information generation circuit 152.
[0230]
The internal erasure information generation circuit 152 comprehensively considers the puncture pattern and the effective output position based on the erasure information TERS supplied from the outside and the effective output position information PE supplied from the code information generation circuit 151. The internal erasure position information IERS indicating the position where no code output is obtained is generated.
[0231]
Specifically, the internal erasure information generation circuit 152 includes, for example, four OR gates 211 as shown in FIG.1, 2112, 211Three, 211FourIt can be realized as having.
[0232]
OR gate 2111, 2112, 211Three, 211FourAre ORed with the erasure information TERS and the data obtained by inverting the effective output position information PE supplied from the code information generation circuit 151. OR gate 2111, 2112, 211Three, 211FourRespectively supply the obtained logical sum to the received value and prior probability information selection circuit 154 as the internal erasure position information IERS.
[0233]
As described above, the internal erase information generation circuit 152 includes the OR gate 211.1, 2112, 211Three, 211FourThe internal erasure position information IERS indicating the position where no code output exists is generated.
[0234]
The termination information generation circuit 153 is based on the termination time information TTNP and termination state information TTNS supplied from the outside, and the input bit number information IN and the memory number information MN supplied from the code information generation circuit 151. The closing information in 1 is generated. Specifically, the termination information generation circuit 153 includes termination time information TPM indicating termination time in the encoding device 1 based on termination time information TTNP, termination state information TTNS, input bit number information IN, and memory number information MN. Termination state information TSM indicating the termination state is generated.
[0235]
The termination information generation circuit 153 includes a plurality of registers 212 as shown in FIG.1, 2122, 212Three, 212Four, 212Five, 2126And a plurality of selectors 2131, 2132, 213Three, 213Four, 213Five, 2136, 2137, 2138, 2139And an AND gate 214 can be realized.
[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 encoding device 1 is “1” and the memory number is “2” in the memory number information MN. Is selected from the information indicating that it is. Specifically, the selector 2131For example, when the number of input bits in the encoding device 1 is “1”, information indicating that the number of memories is “1” is selected. Selector 2131The selector 213 uses the selected data as a control signal for selection.ThreeTo supply.
[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 encoding device 1 is “2” and the memory number is “3” in the memory number information MN. Is selected from the information indicating that it is. Specifically, the selector 2132For example, when the number of input bits in the encoding device 1 is “1”, information indicating that the number of memories is “2” is selected. Selector 2132The selector 213 uses the selected data as a control signal for selection.FourTo supply.
[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 encoding device 1 is “1”, the register 2121The end time information TTNP supplied from is selected. Selector 213ThreeSupplies the selected data to the AND gate 214.
[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 encoding apparatus 1 is “2”, the register 2122The end time information TTNP supplied from is selected. Selector 213FourSupplies the selected data to the AND gate 214.
[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 encoding apparatus 1 is “3”, the register 212ThreeThe end time information TTNP supplied from is selected. Selector 213FiveSupplies the selected data to the AND gate 214.
[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 encoding device 1 is “1”, the register 212FourThe termination state information TTNS supplied from is selected. Selector 2136The selector 213 selects the selected data.8To supply.
[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 encoding apparatus 1 is “2”, the register 212FiveThe termination state information TTNS supplied from is selected. Selector 2137The selector 213 selects the selected data.8To supply.
[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 encoding apparatus 1 is “3”, the register 2126The termination state information TTNS supplied from is selected. Selector 2138The selector 213 selects the selected data.8To supply.
[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 storage circuit 155 as termination state information TSM.
[0251]
The AND gate 214 includes termination time information TTNP supplied from the outside and a selector 213.Three, 213Four, 213FiveANDed with the data supplied from. The AND gate 214 supplies the obtained logical product to the reception data and delay storage circuit 155 as the termination time information TPM.
[0252]
Such a termination information generation circuit 153 grasps the termination period based on the memory number information MN, and selects the data corresponding to the termination period by the selector 213.Three, 213Four, 213Five, 2136, 2137, 2138By performing according to the above, it is possible to generate termination information of an arbitrary termination period. In particular, as will be described later, when the element encoder in the encoding device 1 is a Bozencraft type convolutional encoder, the termination information generation circuit 153 outputs information for the number of input bits as termination information. The termination state is specified by generating only the termination period. In addition, as will be described later, the termination information generation circuit 153, as described later, if the element encoder in the encoding device 1 is something other than a Bozencraft type convolutional encoder such as a Massy type, By generating information indicating the termination state in one time slot, the termination state is specified in one time slot.
[0253]
The received value and prior probability information selection circuit 154 is provided for decoding an arbitrary code, as will be described later. The reception value and prior probability information selection circuit 154 includes reception value format information CRTY supplied from the control circuit 60, input bit number information IN supplied from the code information generation circuit 151, and prior probability information erasure supplied from the outside. Based on the information TEAP and the internal erasure position information IERS supplied from the internal erasure information generation circuit 152, it is necessary to perform soft output decoding of the input decoded reception value TSR and external information or interleave data TEXT. Select information. Further, as described later, the received value and prior probability information selection circuit 154 has a likelihood “0” for a position where no code output exists based on the internal erasure position information IERS supplied from the internal erasure information generation circuit 152. Replace with the symbol. That is, the received value and prior probability information selection circuit 154 assumes that the probability of whether the bit corresponding to the position where the code output does not exist is “0” or “1” is “½”. Output correct information.
[0254]
Specifically, the reception value and prior probability information selection circuit 154 includes, for example, four decoded reception values TSR0, TSR1, TSR2, and TSR3, and three external information or interleave data TEXT. If the external information or interleave data TEXT0, TEXT1, TEXT2 is assumed, for example, as shown in FIG.1, 2152, 215Three, 215Four, 215Five, 2156, 2157, 2158, 2159, 215Ten, 21511, 21512, 21513, 21514, 21515, 21516It can implement | achieve as what has.
[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 encoding device 1 does not exist in the internal erasure position information IERS based on the reception value format information CRTY Either one of the information indicating that the second symbol does not exist is selected. Specifically, the selector 2157If the received value format information CRTY indicates that the encoding apparatus 1 does not perform encoding by TTCM or SCTCM, information indicating that the second symbol does not exist is selected. Selector 2157The selector 215 uses the selected data as a control signal for selection.9To supply. The selector 2157The selection operation due to is due to the erasure operation when the encoding apparatus 1 performs encoding by TTCM or SCTCM. That is, since the erasing operation when the encoding apparatus 1 performs encoding by TTCM or SCTCM deletes both in-phase and quadrature component symbols, the selector 2157Selects information indicating that the second symbol does not exist.
[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 encoding apparatus 1 does not exist. Select information. Selector 2158The data selected by the9, 215Ten, 21514, 21515, 21516Are bundled together with the data supplied from, and supplied to the received data and delay storage circuit 155 as the selected received value and prior probability information RAP.
[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 encoding apparatus 1 does not exist, information whose value is “0” is displayed. select. Selector 2159The data selected by the8, 215Ten, 21514, 21515, 21516Are bundled together with the data supplied from, and supplied to the received data and delay storage circuit 155 as the selected received value and prior probability information RAP.
[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 encoding apparatus 1 does not exist. Select information. Selector 215TenThe data selected by the8, 2159, 21514, 21515, 21516Are bundled together with the data supplied from, and supplied to the received data and delay storage circuit 155 as the selected received value and prior probability information RAP.
[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 encoder 1 does not exist. Select information. Selector 21511The selector 215 selects the selected data.15To supply.
[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 storage circuit 155 as the selected received value and prior probability information RAP.
[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 encoding device 1 is represented by “1 / n” and the number of input bits is “1”. The selector 21511Select the data supplied from. Selector 21515The data selected by the8, 2159, 215Ten, 21514, 21516Are bundled together with the data supplied from, and supplied to the received data and delay storage circuit 155 as the selected received value and prior probability information RAP.
[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 encoding device 1 is represented by “1 / n” and the number of input bits is “1”. The selector 21512Select the data supplied from. Selector 21516The data selected by the8, 2159, 215Ten, 21514, 21515Are bundled together with the data supplied from, and supplied to the received data and delay storage circuit 155 as the selected received value and prior probability information RAP.
[0271]
Such a received value and prior probability information selection circuit 154 includes a selector 215.1, 2152, 215Three, 215Four, 215Five, 2156By selecting the decoded received value TSR and the external information or interleaved data TEXT, the decoded received value TSR and the external information or interleaved data TEXT can be switched as code likelihoods, and soft output decoding is performed. Information to be input can be appropriately selected. Also, the received value and prior probability information selection circuit 154 includes a selector 215.8, 2159, 215Ten, 21511, 21512, 21513, 21514By performing the selection operation according to, a position where no code output exists can be replaced with a symbol having a likelihood of “0”.
[0272]
Although not shown, the reception data and delay storage circuit 155 includes, for example, a plurality of banks of RAM, a control circuit, and a selection circuit. The reception data and delay storage circuit 155 includes termination time information TPM and termination state information TSM supplied from the termination information generation circuit 153, and selected reception value and prior probability information supplied from the reception value and prior probability information selection circuit 154. Stores RAP.
[0273]
The received data and delay storage circuit 155 selects predetermined information from the stored termination time information TPM and termination state information TSM under the control of the internal control circuit, and selects the Iα calculation circuit 158. And termination information TB0 and TB1 used in the Iβ calculation circuit 159. The termination information TAL is supplied to the Iα calculation circuit 158 as the termination information TALD after a predetermined delay. Further, the termination information TB0 and TB1 are supplied to the Iβ calculation circuit 159 as the termination information TB0D and TB1D after being subjected to a predetermined delay, respectively.
[0274]
The reception data and delay storage circuit 155 selects predetermined information from the stored selection reception value and prior probability information RAP by the selection circuit under the control of the internal control circuit, and sends it to the Iα calculation circuit 158. Received data DA and Iβ calculating circuit 159, and output as two systems of received data DB0 and DB1. The reception data DA is supplied to the Iγ calculation circuit 156 and, after a predetermined delay, is supplied to the reception value or prior probability information separation circuit 162 as the delay reception data DAD. The reception data DB0 and DB1 are supplied to the Iγ calculation circuit 156, respectively.
[0275]
The element decoder 50 performs a so-called sliding window process known as a method for processing continuous data, and the received data and delay storage circuit 155 for performing the sliding window process and a memory in the Iβ storage circuit 160 described later. As a management method, the one described in International Publication No. WO99 / 62183, which has already been filed for an international patent by the applicant of the present application, is employed. That is, in brief, the element decoder 50 reads the reception data divided by a predetermined truncation length from the reception data and delay storage circuit 155 and stores the log likelihood Iβ by the Iβ storage circuit 160. Thus, memory management is performed so that the logarithmic soft output Iλ is finally obtained in the order of the original time series. However, as described in International Publication No. WO99 / 62183, the element decoder 50 does not perform the memory management after calculating the log likelihood Iγ, but stores the received data in the received data and the delay memory. After being stored in the circuit 155, the received data is read out under appropriate memory management, and the log likelihood Iγ is calculated.
[0276]
Further, the received data and delay storage circuit 155 can store delay data, as will be described later. That is, the reception data and delay storage circuit 155 stores the reception value TR and the edge signal TEILS supplied from the edge detection circuit 80, and delays it by the same time as the processing time required by the soft output decoding circuit 90. The received data and delay storage circuit 155 uses the delayed received value PDR obtained by delaying the received value TR as the delayed received value SDR as a selector 120.Three, 1206To supply. The reception data and delay memory circuit 155 uses the delayed edge signal PDIL obtained by delaying the edge signal TEILS as the delayed edge signal SDILS.FiveTo supply.
[0277]
The Iγ calculating circuit 156 calculates the log likelihood Iγ using the received data and the received data DA, DB0, DB1 supplied from the delay storage circuit 155. Specifically, the Iγ calculation circuit 156 determines the received value y based on the notation described at the beginning of “2.”.tEvery time, the calculation shown in the following equation (48) is performed to calculate the log likelihood Iγ at each time t. In addition, sgn shown in the following formula (48) is a constant indicating a sign for identifying positive or negative, that is, “+1” or “−1”. The constant sgn is “+1” when the element decoder 50 is configured as a system that handles only negative values as log likelihoods, and the constant decoder 50 is a system that handles only positive values as log likelihoods. If it is configured, it takes “−1”. That is, the Iγ calculation circuit 156 receives the received value ytEach time, a log likelihood Iγ in which the probability γ determined by the output pattern of the code and the received value is logarithmically expressed or a log likelihood Iγ in which the probability γ is logarithmically inverted and the positive / negative identification code is inverted is calculated.
[0278]
[Formula 48]
Figure 0004427883
[0279]
In the following, although discussion will be made in the case where the element decoder 50 is configured as a system that handles only negative values or positive values as log likelihoods, the constant sgn is “0” unless otherwise specified. In the case of −1 ″, that is, it is assumed that the element decoder 50 is configured as a system that handles only positive values as log likelihoods, and a higher probability indicates a smaller value.
[0280]
At this time, the Iγ calculation circuit 156 receives the received value format information CRTY, the prior probability information format information CAPP supplied from the control circuit 60, and the encoding apparatus 1 performs encoding using TTCM or SCTCM. Calculates the log likelihood Iγ based on the signal point arrangement information CSIG, the input bit number information IN and the type information WM supplied from the code information generation circuit 151. The Iγ calculation circuit 156 supplies the calculated log likelihood Iγ to the Iγ distribution circuit 157. That is, the Iγ calculation circuit 156 supplies the log likelihood Iγ used in the Iα calculation circuit 158 as the log likelihood GA to the Iγ distribution circuit 157 and also uses the log likelihood Iγ used in the Iβ calculation circuit 159 as the log likelihood GB0. , GB1 to the Iγ distribution circuit 157.
[0281]
Such an Iγ calculation circuit 156, for example, as shown in FIG. 29, calculates the log likelihood Iγ used to calculate the log likelihood Iβ0 of the two systems of log likelihoods Iβ0 and Iβ1, and calculates Iγ for Iβ0. Circuit 2201And an Iβ calculating circuit 220 for Iβ1 that calculates the log likelihood Iγ used to calculate the log likelihood Iβ1.2And Iα calculation circuit 220 for Iα that calculates the log likelihood Iγ used to calculate the log likelihood Iα.ThreeIt can implement | achieve as what has. Here, the Iγ calculating circuit 220 for these Iβ0s.1, Iγ calculating circuit 220 for Iβ12And Iγ calculation circuit 220 for IαThreeCan be realized with the same configuration with only different input data. Therefore, here, the Iγ calculating circuit 220 for Iβ0 is used.1Iβ calculation circuit 220 for Iβ1 will be described.2And Iγ calculation circuit 220 for IαThreeWill be omitted together with the illustration.
[0282]
Iγ calculation circuit 220 for Iβ01Includes an information / code Iγ calculation circuit 221 and an Iγ normalization circuit 222.
[0283]
As will be described later, the information / code Iγ calculation circuit 221 receives the reception data DB0 including the reception value and the prior probability information, as will be described later, the reception value format information CRTY, the prior probability information format information CAPP, the signal point arrangement information CSIG, and the input bit Based on the numerical information IN, log likelihoods Iγ for all possible input / output patterns or log likelihoods Iγ for at least some input / output patterns are calculated.
[0284]
At this time, the information / code Iγ calculation circuit 221 calculates the sum of the prior probability information and the so-called channel value from the received data DB0 when the encoding device 1 does not perform encoding by TTCM or SCTCM. Calculated as log likelihood Iγ.
[0285]
The information / code Iγ calculating circuit 221 calculates the log likelihood Iγ by calculating the inner product of the input received data DB0 when the encoding device 1 performs encoding by TTCM or SCTCM. calculate. This is because the Euclidean distance on the I / Q plane is the logarithmic likelihood Iγ, but in the case of the PSK modulation method, the transmission amplitude of the output from the encoding device takes a constant value, and thus the Euclidean distance is obtained. This is because it is equivalent to finding the inner product.
[0286]
The information / code Iγ calculation circuit 221 supplies the calculated log likelihood Iγ to the Iγ normalization circuit 222.
[0287]
As will be described later, the Iγ normalization circuit 222 performs normalization to correct the uneven distribution of the calculation result obtained by the information / sign Iγ calculation circuit 221. Specifically, the Iγ normalization circuit 222 has a probability that can take a log likelihood corresponding to the one having the maximum probability among the plurality of log likelihoods Iγ calculated by the information / code Iγ calculation circuit 221. A predetermined calculation is performed on each log likelihood so as to match the log likelihood corresponding to the maximum value. That is, the Iγ normalization circuit 222 has the maximum value among the plurality of log likelihoods Iγ calculated by the information / code Iγ calculation circuit 221 when the element decoder 50 treats the log likelihood as a negative value. Normalization is performed such that a predetermined value is added to each of the plurality of log likelihoods Iγ so as to match the maximum value that can be expressed by the element decoder 50. The Iγ normalization circuit 222 has a minimum value among the plurality of log likelihoods Iγ calculated by the information / code Iγ calculation circuit 221 when the element decoder 50 treats the log likelihood as a positive value. Normalization is performed such that a predetermined value is subtracted from each of the plurality of log likelihoods Iγ so that the value is matched with the minimum value that can be expressed by the element decoder 50. The Iγ normalization circuit 222 clips the log likelihood Iγ after normalization according to a necessary dynamic range, and supplies the log likelihood IGB to the Iγ distribution circuit 157 as a log likelihood GB0.
[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 Iγ distribution circuit 157 as the log likelihood GB0.
[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 Iγ distribution circuit 157 as the log likelihood GB1.
[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 Iγ distribution circuit 157 as the log likelihood GA.
[0291]
Such an Iγ calculating circuit 156 generates logarithmic likelihoods GA, GB0, GB1 calculated as log likelihoods Iγ using the received data DA, DB0, DB1, and uses these log likelihoods GA, GB0, GB1. This is supplied to the Iγ distribution circuit 157.
[0292]
As will be described later, the Iγ distribution circuit 157 distributes the log likelihoods GA, GB0, and GB1 supplied from the Iγ calculation circuit 156 according to the code configuration. That is, the Iγ distribution circuit 157 distributes the log likelihoods GA, GB0, and GB1 so as to correspond to the branches on the trellis corresponding to the code configuration. At this time, the Iγ distribution circuit 157 generates the generation matrix information CG supplied from the control circuit 60, the input bit number information IN, the type information WM, the memory number information MN, and the branch input / output information supplied from the code information generation circuit 151. Based on the BIO, log likelihoods GA, GB0, GB1 are distributed.
[0293]
Further, as will be described later, the Iγ distribution circuit 157 has a function of bundling these parallel paths when decoding a code having parallel paths on the trellis.
[0294]
The Iγ distribution circuit 157 supplies the log likelihood Iγ obtained by distribution to the Iα calculation circuit 158 and the Iβ calculation circuit 159. That is, the Iγ distribution circuit 157 supplies the log likelihood Iγ used in the Iα calculation circuit 158 to the Iα calculation circuit 158 as the log likelihood DGA, and also uses the log likelihood Iγ used in the Iβ calculation circuit 159 as the log likelihood DGB0. , DGB1 to the Iβ calculation circuit 159. Further, as will be described later, the Iγ distribution circuit 157 supplies the log likelihood Iγ obtained in a state where the parallel paths are not bundled to the Iα calculation circuit 158 as the log likelihood DGAB.
[0295]
Specifically, as shown in FIG. 30, for example, the Iγ distribution circuit 157 includes a branch input / output information calculation circuit 223 that calculates input / output information of branches on the trellis according to the code configuration, and logarithmic likelihoods of two systems. Iβ distribution circuit 224 for Iβ0 that distributes the log likelihood Iγ used for calculating the log likelihood Iβ0 out of Iβ0 and Iβ1.1Iβ distribution circuit 224 for Iβ1 that distributes log likelihood Iγ used to calculate log likelihood Iβ12Iα distribution circuit 224 for Iα that distributes log likelihood Iγ used to calculate log likelihood IαThreeWhen the code has a parallel path on the trellis, the parallel path processing circuit 225 for Iβ0 that processes the parallel path used to calculate the log likelihood Iβ0.1In the case of a code having a parallel path on the trellis, a parallel path processing circuit 225 for Iβ1 that processes the parallel path used to calculate the log likelihood Iβ12When the code has a parallel path on the trellis, the Iα parallel path processing circuit 225 processes the parallel path used to calculate the log likelihood Iα.ThreeIt can implement | achieve as what has.
[0296]
The branch input / output information calculation circuit 223 identifies the code configuration based on the generation matrix information CG, the input bit number information IN, the type information WM, the memory number information MN, and the branch input / output information BIO. The branch input / output information along the reverse order of the time axis of the branch on the trellis corresponding to the code configuration is calculated. The branch input / output information calculation circuit 223 uses the calculated branch input / output information BI for the Iβ0 Iγ distribution circuit 224.1And Iγ1 distribution circuit 224 for Iβ12To supply.
[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 Iα calculation circuit 158 as the log likelihood DGAB.
[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 selector 227 that performs 2-to-1 selection. Here, the parallel path processing circuit 225 for Iβ01Is a code that is represented by a trellis having a maximum of 32 branches and has a maximum of 4 states among codes having a parallel path on the trellis, and more specifically, 8 codes in each state for 4 states. 16 parallel path log-sums for converting 32 branches to 16 log likelihoods Iγ, where a parallel path that can be reached by a path is decoded on a trellis. Arithmetic circuit 2261, 2262, 226Three,..., 22616It shall have.
[0302]
Log-sum arithmetic circuit 226 for parallel path1As shown in FIG. 32, the two differentiators 2291, 2292And three selectors 230, 231, 233, a selection control signal generation circuit 232 for generating a control signal for controlling the selection operation by these selectors 230, 231, 233, and a correction term in so-called log-sum correction. A look-up table 234 composed of a ROM (Read Only Memory) or the like for storing the values of the above as a table, and an adder 235. Among these units, the differentiator 2291, 2292The selectors 230 and 231 and the selection control signal generation circuit 232 constitute a comparison and absolute value calculation circuit 228.
[0303]
The comparison and absolute value calculation circuit 228 compares the magnitudes of the two input data and calculates the absolute value of the difference value between these two data.
[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 difference value DA 1 to the selector 230 and the selection control signal generation circuit 232.
[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 difference value DA 0 to the selector 230 and the selection control signal generation circuit 232.
[0306]
The selector 230 is based on the control signal SL1 supplied from the selection control signal generation circuit 232, and the differencer 229.1And the difference value DA1 supplied from the difference unit 229.2Among the difference values DA0 supplied from, the one having a larger value is selected. The selector 230 supplies data CA obtained by the selection to the selector 231.
[0307]
The selector 231 selects one of the data CA supplied from the selector 230 and data having a predetermined value M based on the control signal SL2 supplied from the selection control signal generation circuit 232. Specifically, since the value of the correction term for the difference value supplied as the data CA has a property of asymptotically approaching a predetermined value, the selector 231 determines that the value of the data CA exceeds the predetermined value M. If so, data having a predetermined value M is selected. The selector 231 supplies the data DM obtained by the selection to the lookup table 234.
[0308]
The selection control signal generation circuit 232 generates a control signal SL1 for controlling the selection operation by the selectors 230 and 233 based on the log likelihoods PG00 and PG01 and the difference values DA1 and DA0, and also by the selector 231. A control signal SL2 for controlling the selection operation is generated. At this time, the selection control signal generation circuit 232 divides the higher bits and lower bits of the metric on the basis of the log likelihoods PG00 and PG01, and generates control signals SL1 and SL2 indicating a determination sentence for selection. This will be described later.
[0309]
Such a comparison and absolute value calculation circuit 228 calculates the absolute value of the difference value between the log likelihoods PG00 and PG01. At this time, in the comparison and absolute value calculation circuit 228, as will be described later, the differentiator 229.1Assuming that 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”. In this example, “0” is added to the most significant bit of the lower 6 bits of the log likelihood PG01. Similarly, in the comparison and absolute value calculation circuit 228, the differentiator 2292Are supplied with “0” added to the most significant bit of the lower 6 bits of the log likelihood PG00 and “1” is assigned to the most significant bit of the lower 6 bits of the log likelihood PG01. It is the one attached. That is, the differentiator 2291, 2292Is supplied with data having “1” or “0” added to the most significant bit of the lower-order bits of the log likelihoods PG00 and PG01. This is a comparison between the log likelihoods PG00 and PG01. This is because the selection control signal generation circuit 232 divides the upper bit and the lower bit of the metric to create a determination sentence for selection. This will be described later.
[0310]
Based on the control signal SL1 supplied from the selection control signal generation circuit 232, the selector 233 selects a logarithmic likelihood PB00, PG01 having a smaller value. The selector 233 supplies the data SPG obtained by selection to the adder 235.
[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 selector 231 from the table, and supplies it to the adder 235 as data RDM.
[0312]
The adder 235 adds the data SPG supplied from the selector 233 and the data RDM supplied from the lookup table 234 to calculate the log likelihood Iγ. The adder 235 supplies the calculated log likelihood Iγ to the selector 227 as the log likelihood PPG00.
[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 selector 227 as the log likelihood PPG00.
[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 selector 227 as the log likelihood PPG01.
[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 selector 227 as the log likelihood PPG02.
[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 selector 227 as the log likelihood PPG15.
[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 selector 227 as log likelihood PPG.
[0318]
Parallel path processing circuit 225 for Iβ01The selector 227 outputs the Iβ0 Iγ distribution circuit 224 based on the input bit number information IN.1Logarithmic likelihood PGB0 supplied from the one corresponding to the lower metric, and the log-sum calculation circuit 226 for each parallel pathn1 is selected from the log likelihood PPG supplied from. Specifically, the selector 227 selects the log likelihood PPG when the element encoder in the encoding apparatus 1 performs encoding in which a parallel path exists on the trellis. In other words, here, the input bit number information IN is used as a control signal for controlling the selection operation by the selector 227, but actually indicates whether or not the code has a parallel path on the trellis. A control signal is input to the selector 227.
[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 selector 227 selects the log likelihood PPG that is bundled, and the log likelihood PPG The log likelihood PGB0 and the one corresponding to the higher metric are combined and supplied to the Iβ calculation circuit 159 as the log likelihood DGB0. The parallel path processing circuit 225 for Iβ01If the log likelihood PGB0 does not correspond to the parallel path, the log likelihood PGB0 is directly output as the log likelihood DGB0.
[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 Iβ calculation circuit 159. The parallel path processing circuit 225 for Iβ12If the input log likelihood PGB1 does not correspond to the parallel path, the log likelihood PGB1 is supplied as it is to the Iβ calculation circuit 159 as the log likelihood DGB1.
[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 Iα calculation circuit 158. Further, the parallel path processing circuit 225 for IαThreeIf the input log likelihood PGA does not correspond to the parallel path, the log likelihood PGA is supplied as it is to the Iα calculation circuit 158 as the log likelihood DGA.
[0322]
Such an Iγ distribution circuit 157 distributes the log likelihoods GA, GB0, GB1 according to the code configuration, respectively, and further decodes these parallel codes when a code having a parallel path on the trellis is decoded. The paths are bundled, and the obtained log likelihoods DGA and DGAB are supplied to the Iα calculation circuit 158, and the obtained log likelihoods DGB0 and DGB1 are supplied to the Iβ calculation circuit 159.
[0323]
The Iα calculation circuit 158 calculates the log likelihood Iα using the log likelihoods DGA and DGAB supplied from the Iγ distribution circuit 157. Specifically, based on the notation described at the beginning of “2.”, the Iα calculation circuit 158 performs the calculation shown in the following equation (49) using the logarithmic likelihood Iγ, and the log likelihood at each time t. The degree Iα is calculated. The operator “#” in the following equation (49) indicates a so-called log-sum operation, and the log likelihood when the input “0” transits from the state m ′ to the state m and the input “ The log-sum calculation with the log likelihood when transitioning from state m ″ to state m at 1 ″ is shown. More specifically, when the constant sgn is “+1”, the Iα calculation circuit 158 performs the operation shown in the following equation (50), while when the constant sgn is “−1”, The log likelihood Iα at each time t is calculated by performing the calculation shown in the following equation (51). That is, the Iα calculation circuit 158 generates the received value y based on the log likelihood Iγ.tEvery time, the log likelihood Iα obtained by logarithmically expressing the probability α from the encoding start state to each state in time series order or the log likelihood Iα obtained by reversing the probability α and inverting the positive / negative identification code is calculated.
[0324]
[Formula 49]
Figure 0004427883
[0325]
[Equation 50]
Figure 0004427883
[0326]
[Formula 51]
Figure 0004427883
[0327]
At this time, the Iα calculation circuit 158 includes generation matrix information CG supplied from the control circuit 60, input bit number information IN, type information WM and memory number information MN supplied from the code information generation circuit 151, received data and Based on the termination information TALD supplied from the delay storage circuit 155, the log likelihood Iα is calculated. The Iα calculation circuit 158 supplies the sum of the calculated log likelihood Iα and the log likelihood Iγ to the soft output calculation circuit 161. That is, as will be described later, the Iα calculation circuit 158 does not output the calculated log likelihood Iα as it is, but calculates the sum of the log likelihood Iα and the log likelihood Iγ used for calculating the log soft output Iλ as data Output as AG.
[0328]
Specifically, as illustrated in FIG. 33, for example, the Iα calculation circuit 158 has a control signal generation circuit 240 that generates a control signal, and two paths from each state on the trellis to the state at the next time. For such a code, an addition comparison selection circuit 241 for performing an addition comparison select process and a process of adding a correction term by log-sum correction, and 4 from each state on the trellis to the state at the next time An addition comparison selection circuit 242 that performs an addition comparison selection process and a process of adding a correction term by log-sum correction for a code that reaches 8 paths depending on the code, or a log likelihood Iα And an Iα + Iγ calculation circuit 243 that calculates the sum of the log likelihood Iγ and a selector 244 that performs 3-to-1 selection.
[0329]
The control signal generation circuit 240 uses the generation matrix information CG, the input bit number information IN, the type information WM, and the memory number information MN so that four paths reach from the respective states on the trellis to the state at the next time. The state of the transition source in each code is calculated and supplied to the addition comparison selection circuit 242 as the control signal PST.
[0330]
The addition comparison selection circuit 241 performs a process of adding a correction term by addition comparison selection processing and log-sum correction for a code in which two paths reach from each state on the trellis to the state at the next time. By doing so, a log-sum operation is performed.
[0331]
Specifically, as shown in FIG. 34, the addition / comparison / selection circuit 241 selects a code to be decoded out of codes in which two paths arrive from each state on the trellis to the state at the next time. Log-sum operation circuit 245 of the maximum number of states in the number of statesnHave Here, it is assumed that the addition comparison selection circuit 241 decodes a code having 16 states at the maximum, and 16 log-sum operation circuits 245.1, 2452, 245Three,..., 24516It shall have.
[0332]
These log-sum operation circuits 2451, 2452, 245Three,..., 24516Are supplied with the log likelihood Iγ of the branch corresponding to the output pattern on the trellis and the log likelihood Iα one time before in each state based on the transition on the trellis. That is, the log-sum operation circuit 2451, 2452, 245Three,..., 24516Respectively, the log likelihood corresponding to the log likelihood Iγ of the branch corresponding to the output pattern on the trellis, and the log likelihood of each state among the calculated log likelihood AL one hour before the log likelihood DGA. The one corresponding to the degree Iα is supplied. The log-sum operation circuit 2451, 2452, 245Three,..., 24516Respectively calculate the log likelihood Iα in each state at the next time as the log likelihood AL. Each log-sum operation circuit 2451, 2452, 245Three,..., 24516The distribution of the log likelihood AL with respect to varies 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 AL will be further described later.
[0333]
Specifically, the log-sum operation circuit 2451Are the three adders 24612462, 249, a correction term calculation circuit 247 for calculating the value of the correction term in the log-sum correction, a selector 248, and an Iα normalization circuit 250.
[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 term calculation circuit 247 and the selector 248 with data AM0 indicating the sum of the log likelihood Iα and the log likelihood Iγ obtained by the addition.
[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 term calculation circuit 247 and the selector 248.
[0336]
The correction term calculation circuit 247 includes an adder 246.1And the adder 2462The data DM indicating the value of the correction term is calculated. The correction term calculation circuit 247 includes two differentiators 251 as shown in FIG.12512And two lookup tables 252 for storing the values of the correction terms in the log-sum correction as a table12522A selection control signal generation circuit 253 that generates a control signal for controlling a selection operation by the three selectors 248, 254, and 255, and two selectors 254 and 255.
[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 signal generation circuit 253.
[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 signal generation circuit 253.
[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 selector 254 as data RDA1. Also, the lookup table 2522Is the differentiator 2512The value of the correction term corresponding to the difference value DA0 supplied from is read from the table and supplied to the selector 254 as data RDA0.
[0340]
The selection control signal generation circuit 253 generates a control signal SEL for controlling the selection operation by the selectors 248 and 254 based on the data AM0 and AM1 and the difference values DA1 and DA0 and the selection operation by the selector 255. A control signal SL for controlling the control signal SL is generated. At this time, the selection control signal generation circuit 253 divides the upper bit and the lower bit of the metric based on the data AM0 and AM1, as in the above-described selection control signal generation circuit 232, and makes a determination for selection. Control signals SEL and SL indicating sentences are generated, which will be described later.
[0341]
The selector 254 is based on the control signal SEL supplied from the selection control signal generation circuit 253 and looks up the table 252.1Data RDA1 supplied from the user and a lookup table 25221 is selected from the data RDA0 supplied from. Specifically, the selector 254 determines the lookup table 252 when the value of the data AM0 is larger than the value of the data AM1.1Data RDA1 from is selected. That is, the selector 254 selects a correction term value corresponding to the absolute value of the difference value between the data AM0 and the data AM1. The selector 254 supplies the data CA obtained by the selection to the selector 255.
[0342]
The selector 255 selects either the data CA supplied from the selector 254 or data having a predetermined value M based on the control signal SL supplied from the selection control signal generation circuit 253. Specifically, since the value of the correction term for the difference value supplied as data CA has a property that asymptotically approaches a predetermined value, the selector 255 determines that the value of the data CA exceeds the predetermined value M. If so, data having a predetermined value M is selected. The selector 255 supplies the data DM obtained by the selection to the adder 249.
[0343]
Such a correction term calculation circuit 247 calculates the value of the correction term in the log-sum correction. At this time, as will be described later, the correction term calculation circuit 247 does not calculate the value of the correction term after calculating the absolute value of the difference value between the two input data, but calculates the values of a plurality of correction terms. , Choose the appropriate one. In addition, in the correction term calculation circuit 247, the differentiator 251.1The data supplied to the adder 2461Data AM0 and adder 246 supplied from2Assuming that the data AM1 supplied from each has, 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 most significant bit is added with “0”. Similarly, in the correction term calculation circuit 247, the differentiator 2512Are supplied with “0” added to the most significant bit of the lower 6 bits of data AM0 and “1” added to the most significant bit of the lower 6 bits of data AM1. It is. That is, the differentiator 25112522Includes an adder 246.12462The data with “1” or “0” added to the most significant bit of the lower-order bits among the data supplied from is supplied for the purpose of high-speed comparison of the data AM0 and AM1. In addition, the selection control signal generation circuit 253 divides the upper bit and the lower bit of the metric to create a selection determination sentence. This will be described later.
[0344]
Based on the control signal SEL supplied from the selection control signal generation circuit 253, the selector 248 selects the data AM0 and AM1 having a smaller value. The selector 248 supplies the data SAM obtained by the selection to the adder 249.
[0345]
The adder 249 adds the data SAM supplied from the selector 248 and the data DM supplied from the correction term calculation circuit 247 to calculate the log likelihood Iα. The adder 247 supplies the calculated log likelihood Iα to the Iα normalization circuit 250 as the log likelihood CM.
[0346]
The Iα normalization circuit 250 performs normalization to correct the bias in the distribution of the log likelihood CM supplied from the adder 249. Various methods can be considered for this normalization process, which will be described later. In addition, the Iα normalization circuit 250 also performs termination processing using the termination information TALD. The Iα normalization circuit 250 clips the log likelihood Iα after normalization according to a necessary dynamic range, and sets the log likelihood AL00 as a predetermined log-sum operation circuit 245.1, 2452, 245Three,..., 24516To supply. At this time, the log likelihood AL00 is delayed by one time by a register (not shown) and then a predetermined log-sum operation circuit 245.1, 2452, 245Three,..., 24516To be supplied.
[0347]
Such a log-sum operation circuit 2451Obtains and outputs the log likelihood AL00, and combines the data AM0 and AM1 and outputs it as data AG00. That is, the log-sum operation circuit 2451Uses a predetermined log-sum operation circuit 245 in order to use the obtained log likelihood AL00 for calculation of the log likelihood Iα at the next time.1, 2452, 245Three,..., 24516And 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.
[0348]
Log-sum operation circuit 2452Is the log-sum operation circuit 245.1The detailed description is omitted, but the log likelihoods DGA02 and DGA03 of the log likelihood DGA and the log likelihood AL calculated one time ago correspond to the code. Are input as log likelihoods A0 and A1, and logarithmic likelihood Iα is calculated using these log likelihoods DGA02, DGA03, A0 and A1, and a predetermined log-sum operation circuit is used as log likelihood AL01. 2451, 2452, 245Three,..., 24516And data AG01 indicating the sum Iα + Iγ of the log likelihood Iα and the log likelihood Iγ are output.
[0349]
In addition, the log-sum operation circuit 245ThreeLog-sum operation circuit 2451However, detailed description is omitted, but the log likelihoods DGA04 and DGA05 of the log likelihood DGA and the log likelihood AL calculated one time ago correspond to the code. Are input as log likelihoods A0 and A1, and logarithmic likelihood Iα is calculated using these log likelihoods DGA04, DGA05, A0 and A1, and a predetermined log-sum arithmetic circuit is used as log likelihood AL02. 2451, 2452, 245Three,..., 24516And data AG02 indicating the sum Iα + Iγ of the log likelihood Iα and the log likelihood Iγ are output.
[0350]
Furthermore, the log-sum operation circuit 24516Log-sum operation circuit 2451Since the configuration is the same as above, detailed description is omitted, but the log likelihoods DGA30 and DGA31 of the log likelihood DGA and the log likelihood AL calculated one time ago correspond to the code. Are input as log likelihoods A0 and A1, and logarithmic likelihood Iα is calculated using these log likelihoods DGA30, DGA31, A0 and A1, and a predetermined log-sum operation circuit is used as log likelihood AL15. 2451, 2452, 245Three,..., 24516And data AG15 indicating the sum Iα + Iγ of the log likelihood Iα and the log likelihood Iγ are output.
[0351]
Such an addition comparison / selection circuit 241 calculates a log likelihood Iα in a code such that two paths reach from each state on the trellis to the state at the next time. As will be described later, the addition comparison selection circuit 241 does not output the calculated log likelihood Iα, but outputs the sum Iα + Iγ of the log likelihood Iα and the log likelihood Iγ. That is, the addition comparison / selection circuit 241 includes the log-sum operation circuit 245.1, 2452, 245Three,..., 24516The data AG00, AG01, AG02,..., AG15 obtained by the above are bundled and supplied to the selector 244 as data AGT.
[0352]
The addition comparison selection circuit 242 performs addition comparison selection processing and log-sum correction for a code in which four paths or 8 paths depending on the code reach from each state on the trellis to the state at the next time. The log-sum operation is performed by performing the process of adding the correction term.
[0353]
Specifically, as shown in FIG. 36, the addition / comparison / selection circuit 242 has a code such that four paths or eight paths depending on the code reach from each state on the trellis to the state at the next time. Of these, the log-sum operation circuit 256 of the maximum number of code states to be decoded is obtained.nHave Here, it is assumed that the addition comparison / selection circuit 242 decodes a code having a maximum of eight states, and eight log-sum operation circuits 256.1, ..., 2568It shall have.
[0354]
These log-sum operation circuits 2561, ..., 2568Includes a log-sum operation circuit 245 in the addition comparison selection circuit 241 described above.1, 2452, 245Three,..., 24516Similarly, based on the transition on the trellis, the log likelihood Iγ of the branch corresponding to the output pattern on the trellis and the log likelihood Iα one time before in each state are supplied. That is, the log-sum operation circuit 2561, ..., 2568Respectively, the log likelihood corresponding to the log likelihood Iγ of the branch corresponding to the output pattern on the trellis, and the log likelihood of each state among the calculated log likelihood AL one hour before the log likelihood DGA. The one corresponding to the degree Iα is supplied. The log-sum operation circuit 2561, ..., 2568Respectively calculate the log likelihood Iα in each state at the next time as the log likelihood AL. Each log-sum operation circuit 2561, ..., 2568Distribution of logarithmic likelihood AL with respect to varies depending on the code configuration, and here is determined by a selector (not shown) or the like based on control signal PST. The distribution of the log likelihood AL will be further described later.
[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 selectors 259, 260, 261, 262, 263, 265, 265, 266, 267, 268, 269, and a selection control signal generation circuit for generating a control signal for controlling the selection operation by the selector 269. 270 and an Iα normalization circuit 272.
[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 selector 259.
[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 selector 259.
[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 selector 260.
[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 selector 260.
[0360]
Correction term calculation circuit 2581Has the same configuration as that of the correction term calculation circuit 247 previously shown in FIG. 35, the details are omitted here, but the adder 2571Data AM0 supplied from the adder 2572And data DM0 indicating the value of the correction term are calculated. At this time, the correction term calculation circuit 2581Does not calculate the value of the correction term after calculating the absolute value of the difference value between the two input data, like the correction term calculation circuit 247, but calculates the values of a plurality of correction terms, Choose the right one. The correction term calculation circuit 2581In the adder 25712572The data AM0 and AM1 are compared with each other by taking the difference between the data with “1” or “0” added to the most significant bit of the lower order bits of the data AM0 and AM1. Correction term calculation circuit 2581Supplies the calculated data DM0 to the selector 268. The correction term calculation circuit 2581Generates a control signal SEL0 for controlling the selection operation by the selectors 259, 261, 262, 263, and 264.
[0361]
Correction term calculation circuit 2582Has the same configuration as that of the correction term calculation circuit 247 previously shown in FIG. 35, the details are omitted here, but the adder 257ThreeData AM2 supplied from the signal and an adder 257FourAnd data DM1 indicating the value of the correction term are calculated. At this time, the correction term calculation circuit 2582Does not calculate the value of the correction term after calculating the absolute value of the difference value between the two input data, like the correction term calculation circuit 247, but calculates the values of a plurality of correction terms, Choose the right one. The correction term calculation circuit 2582In the adder 257Three257FourThe difference between the data with “1” or “0” added to the most significant bit of the lower-order bits of the data AM2 and AM3 supplied from the data AM2 and AM3 is compared at high speed. Correction term calculation circuit 2582Supplies the calculated data DM1 to the selector 268. The correction term calculation circuit 2582Generates a control signal SEL1 for controlling the selection operation by the selectors 260, 265, 266.
[0362]
Correction term calculation circuit 258ThreeHas the same configuration as that of the correction term calculation circuit 247 previously shown in FIG. 35, the details are omitted here, but the adder 2571Data AM0 supplied from the adder 257ThreeAnd data DM2 indicating the value of the correction term are calculated. At this time, the correction term calculation circuit 258ThreeDoes not calculate the value of the correction term after calculating the absolute value of the difference value between the two input data, like the correction term calculation circuit 247, but calculates the values of a plurality of correction terms, Choose the right one. The correction term calculation circuit 258ThreeIn the adder 2571257ThreeThe data AM0 and AM2 are compared with each other by taking the difference between the data in which “1” or “0” is added to the most significant bit of the lower bits of the data AM0 and AM2. Correction term calculation circuit 258ThreeSupplies the calculated data DM2 to the selector 263. The correction term calculation circuit 258ThreeGenerates a control signal SEL2 that finally becomes a control signal SEL8 for controlling the selection operation by the selectors 267 and 268, and supplies the control signal SEL2 to the selector 261 and the selection control signal generation circuit 270.
[0363]
Correction term calculation circuit 258FourHas the same configuration as that of the correction term calculation circuit 247 previously shown in FIG. 35, the details are omitted here, but the adder 2572Data AM <b> 1 supplied from, and an adder 257ThreeAnd data DM3 indicating the value of the correction term are calculated. At this time, the correction term calculation circuit 258FourDoes not calculate the value of the correction term after calculating the absolute value of the difference value between the two input data, like the correction term calculation circuit 247, but calculates the values of a plurality of correction terms, Choose the right one. The correction term calculation circuit 258FourIn the adder 2572257ThreeThe difference between the data in which the most significant bit of the lower bits among the data AM1 and AM2 supplied from “1” or “0” is added is taken, and the size comparison of the data AM1 and AM2 is performed at high speed. Correction term calculation circuit 258FourSupplies the calculated data DM3 to the selector 263. The correction term calculation circuit 258FourGenerates a control signal SEL3 that finally becomes a control signal SEL8 for controlling the selection operation by the selectors 267 and 268, and supplies the control signal SEL3 to the selector 261 and the selection control signal generation circuit 270.
[0364]
Correction term calculation circuit 258FiveHas the same configuration as that of the correction term calculation circuit 247 previously shown in FIG. 35, the details are omitted here, but the adder 2571Data AM0 supplied from the adder 257FourAnd data DM4 indicating the value of the correction term are calculated. At this time, the correction term calculation circuit 258FiveDoes not calculate the value of the correction term after calculating the absolute value of the difference value between the two input data, like the correction term calculation circuit 247, but calculates the values of a plurality of correction terms, Choose the right one. The correction term calculation circuit 258FiveIn the adder 2571257FourThe data AM0 and AM3 are compared with each other by taking the difference between the data in which “1” or “0” is added to the most significant bit of the lower bits of the data AM0 and AM3. Correction term calculation circuit 258FiveSupplies the calculated data DM4 to the selector 264. The correction term calculation circuit 258FiveGenerates a control signal SEL4 that finally becomes a control signal SEL8 for controlling the selection operation by the selectors 267 and 268, and supplies the control signal SEL4 to the selector 262 and the selection control signal generation circuit 270.
[0365]
Correction term calculation circuit 2586Has the same configuration as that of the correction term calculation circuit 247 previously shown in FIG. 35, the details are omitted here, but the adder 2572Data AM <b> 1 supplied from, and an adder 257FourAnd data DM5 indicating the value of the correction term are calculated. At this time, the correction term calculation circuit 2586Does not calculate the value of the correction term after calculating the absolute value of the difference value between the two input data, like the correction term calculation circuit 247, but calculates the values of a plurality of correction terms, Choose the right one. The correction term calculation circuit 2586In the adder 2572257FourA difference between data in which “1” or “0” is added to the most significant bit of the lower-order bits of the data AM1 and AM3 supplied from the data AM1 and AM3 is compared at high speed. Correction term calculation circuit 2586Supplies the calculated data DM5 to the selector 264. The correction term calculation circuit 2586Generates a control signal SEL5 that finally becomes a control signal SEL8 for controlling the selection operation by the selectors 267 and 268, and supplies the control signal SEL5 to the selector 262 and the selection control signal generation circuit 270.
[0366]
The selector 259 is a correction term calculation circuit 258.1Is selected from the data AM0 and AM1 based on the control signal SEL0 supplied from the control unit SEL0. The selector 259 supplies the data SAM0 obtained by the selection to the selector 267.
[0367]
The selector 260 includes a correction term calculation circuit 258.2The data AM2 and AM3 having a smaller value are selected based on the control signal SEL1 supplied from. The selector 260 supplies the data SAM1 obtained by the selection to the selector 267.
[0368]
The selector 261 includes a correction term calculation circuit 258.1One of the control signals SEL2 and SEL3 is selected on the basis of the control signal SEL0 supplied from. Specifically, the selector 261 selects the control signal SEL3 when the value of the data AM0 is larger than that of the data AM1. The selector 261 supplies the control signal SEL6 obtained by the selection to the selector 265.
[0369]
The selector 262 includes a correction term calculation circuit 258.1One of the control signals SEL4 and SEL5 is selected on the basis of the control signal SEL0 supplied from. Specifically, the selector 262 selects the control signal SEL5 when the value of the data AM0 is larger than that of the data AM1. The selector 262 supplies the control signal SEL7 obtained by the selection to the selector 265.
[0370]
The selector 263 includes a correction term calculation circuit 258.1One of the data DM2 and DM3 is selected based on the control signal SEL0 supplied from. Specifically, the selector 263 selects the data DM3 when the value of the data AM0 is larger than that of the data AM1. The selector 263 supplies the data DS0 obtained by the selection to the selector 266.
[0371]
The selector 264 includes a correction term calculation circuit 258.1One of the data DM4 and DM5 is selected based on the control signal SEL0 supplied from. Specifically, the selector 264 selects the data DM5 when the value of the data AM0 is larger than that of the data AM1. The selector 264 supplies the data DS1 obtained by the selection to the selector 266.
[0372]
The selector 265 includes a correction term calculation circuit 258.2One of the control signals SEL6 and SEL7 is selected on the basis of the control signal SEL1 supplied from. Specifically, the selector 265 selects the control signal SEL7 when the value of the data AM2 is larger than that of the data AM3. The selector 265 supplies the control signal SEL8 obtained by selection as a control signal for selection in the selectors 267 and 268.
[0373]
The selector 266 includes a correction term calculation circuit 258.2One of the data DS0 and DS1 is selected on the basis of the control signal SEL1 supplied from. Specifically, the selector 266 selects the data DS1 when the value of the data AM2 is larger than that of the data AM3. The selector 266 supplies the data DS2 obtained by the selection to the selector 269.
[0374]
The selector 267 selects one of the data SAM0 and SAM1 based on the control signal SEL8. Specifically, the selector 267 selects the data SAM1 when the control signal SEL8 is the control signal SEL7. The selector 267 supplies the data SAM2 obtained by the selection to the adder 271.
[0375]
The selector 268 selects one of the data DM0 and DM1 based on the control signal SEL8. Specifically, the selector 268 selects the data DM1 when the control signal SEL8 is the control signal SEL7. The selector 268 supplies the data DS3 obtained by the selection to the selector 269.
[0376]
The selector 269 selects one of the data DS2 and DS3 based on the control signal SEL9 supplied from the selection control signal generation circuit 270. The selector 269 supplies the data RDM obtained by the selection to the adder 271.
[0377]
The selection control signal generation circuit 270 generates a control signal SEL9 for controlling the selection operation by the selector 269 based on the control signals SEL2, SEL3, SEL4, and SEL5. Specifically, the selection control signal generation circuit 270 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.
[0378]
The adder 271 adds the data SAM2 supplied from the selector 267 and the data RDM supplied from the selector 269, and calculates the log likelihood Iα. The adder 271 supplies the calculated log likelihood Iα to the Iα normalization circuit 272 as the log likelihood CM.
[0379]
Similar to the Iα normalization circuit 250 described above, the Iα normalization circuit 272 performs normalization for correcting the distribution bias of the log likelihood CM supplied from the adder 271. In addition, the Iα normalization circuit 272 performs termination processing using the termination information TALD. The Iα normalization circuit 272 clips the logarithmic likelihood Iα after normalization according to a necessary dynamic range, and sets the logarithmic likelihood AL00 as a predetermined log-sum operation circuit 256.1, ..., 2568To supply. At this time, the log likelihood AL00 is set to a predetermined log-sum operation circuit 256 after being delayed for one time by a register (not shown).1, ..., 2568To be supplied.
[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 / selection circuit 242 calculates a log likelihood Iα in a code such that four paths or eight paths depending on the code reach from the state on the trellis to the state at the next time. Similar to the above-described addition comparison selection circuit 241, the addition comparison selection circuit 242 does not output the calculated log likelihood Iα, but outputs the sum Iα + Iγ of the log likelihood Iα and the log likelihood Iγ. In other words, the addition comparison / selection circuit 242 includes the log-sum operation circuit 256.1, ..., 2568, AG07 obtained by each of the above are bundled and supplied to the selector 244 as data AGF. Further, the addition comparison selection circuit 242 includes a log-sum operation circuit 256.1, ..., 2568, AL07 obtained by each of the above are bundled and supplied to the Iα + Iγ calculating circuit 243 as the log likelihood AL. Note that the addition comparison / selection circuit 242 is originally provided to obtain the log likelihood Iα in a code such that four paths reach from each state on the trellis to the state at the next time. As described above, depending on the code, the log likelihood Iα can be obtained for a code that can reach eight paths. This will be described in detail in “5-5-3” and “5-5-5”.
[0384]
As will be described later, the Iα + Iγ calculating circuit 243 is provided for decoding a code having a parallel path on the trellis, such as the code by the convolutional encoder shown in FIG. The sum of the likelihood Iα and the log likelihood Iγ is calculated. Specifically, as shown in FIG. 37, the Iα + Iγ calculation circuit 243 includes three selectors 273, 274, and 275, and here, four Iα + Iγ calculation cell circuits 276.12762276Three, 276FourAnd have.
[0385]
Based on the memory number information MN, the selector 273 selects one of the predetermined log likelihoods AL00 and AL01 corresponding to the sign from the log likelihood AL supplied from the addition comparison selection circuit 242. To do. The selector 273 selects the log likelihood AL01S obtained by the selection as Iα + Iγ calculation cell circuit 276.1, 2762, 276Three276FourTo supply.
[0386]
The selector 274 selects either one of the predetermined log likelihoods AL01 and AL02 corresponding to the sign from the log likelihood AL supplied from the addition comparison selection circuit 242 based on the memory number information MN. To do. The selector 274 selects the log likelihood AL02S obtained by the selection as Iα + Iγ calculation cell circuit 276.12762276Three, 276FourTo supply.
[0387]
The selector 275 selects one of the predetermined log likelihoods AL01 and AL03 corresponding to the sign from the log likelihood AL supplied from the addition comparison selection circuit 242 based on the memory number information MN. To do. The selector 275 uses the log likelihood AL03S obtained by the selection as Iα + Iγ calculation cell circuit 276.12762, 276Three, 276FourTo supply.
[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 Iγ distribution circuit 157 corresponds to the code among the predetermined log likelihood DGAB00 corresponding to the code and the log likelihood AL supplied from the addition comparison selection circuit 242. And a corresponding predetermined log likelihood AL00. Adder 2771Outputs data AM0 as data AM0.
[0390]
Adder 2772The logarithmic likelihood DGAB supplied from the Iγ distribution circuit 157 corresponds to the code among the predetermined log likelihood DGAB01 corresponding to the code and the log likelihood AL supplied from the addition comparison selection circuit 242. And a corresponding predetermined log likelihood AL00. Adder 2772Outputs data AM1 as data AM1.
[0390]
Adder 277ThreeOf the log likelihoods DGAB supplied from the Iγ distribution circuit 157 adds a predetermined log likelihood DGAB02 corresponding to the sign and the log likelihood AL01S supplied from the selector 273. Adder 277ThreeOutputs data AM2 as data AM2.
[0392]
Adder 277FourOf the log likelihoods DGAB supplied from the Iγ distribution circuit 157 adds a predetermined log likelihood DGAB03 corresponding to the sign and the log likelihood AL01S supplied from the selector 273. Adder 277FourOutputs the data obtained by the addition as data AM3.
[0393]
Adder 277FiveOf the log likelihoods DGAB supplied from the Iγ distribution circuit 157 adds a predetermined log likelihood DGAB04 corresponding to the sign and the log likelihood AL02S supplied from the selector 274. Adder 277FiveOutputs data AM4 as data AM4.
[0394]
Adder 2776Of the log likelihoods DGAB supplied from the Iγ distribution circuit 157 adds a predetermined log likelihood DGAB05 corresponding to the sign and the log likelihood AL02S supplied from the selector 274. Adder 2776Outputs the data obtained by the addition as data AM5.
[0395]
Adder 2777Of the log likelihoods DGAB supplied from the Iγ distribution circuit 157 adds a predetermined log likelihood DGAB06 corresponding to the sign and the log likelihood AL03S supplied from the selector 275. Adder 2777Outputs data AM6 as data AM6.
[0396]
Adder 2778Of the log likelihoods DGAB supplied from the Iγ distribution circuit 157 adds a predetermined log likelihood DGAB07 corresponding to the sign and the log likelihood AL03S supplied from the selector 275. Adder 2778Outputs data AM7 as data AM7.
[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 Iγ distribution circuit 157 and the log likelihood AL calculated by the addition comparison selection circuit 242 to obtain a parallel path. , The sum of the log likelihood Iα and the log likelihood Iγ used when obtaining the logarithmic soft output Iλ is calculated. Iα + Iγ calculation cell circuit 2761Outputs the calculated data AM0, AM1, AM2, AM3, AM4, AM5, AM6, AM7 as data AG00.
[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α + Iγ calculating circuit 243 calculates the sum of the log likelihood Iα and the log likelihood Iγ, bundles the calculated data AG00, AG01, AG02, and AG03, and supplies the data AGE to the selector 244.
[0402]
The selector 244, based on the input bit number information IN, data AGT indicating the sum of the log likelihood Iα and the log likelihood Iγ supplied from the addition comparison selection circuit 241 and the logarithm supplied from the addition comparison selection circuit 242. Any one of data AGF indicating the sum of likelihood Iα and log likelihood Iγ and data AGE indicating the sum of log likelihood Iα and log likelihood Iγ supplied from Iα + Iγ calculating circuit 243 Select. Specifically, the selector 244 indicates that the code by the element encoder in the encoding device 1 does not have a parallel path on the trellis and two paths reach from each state to the state at the next time. If it is a code, the data AGT is selected, and the code by the element encoder in the encoding device 1 has four paths from each state to the state at the next time when there is no parallel path on the trellis. Is selected, the data AGF is selected, the code by the element encoder in the encoding device 1 is represented by a trellis having a maximum of 32 branches, and has a maximum of 4 states. More specifically, when a parallel path in which 8 paths reach each state for 4 states exists on the trellis, To select the over data AGE. That is, here, the input bit number information IN is used as a control signal for controlling the selection operation by the selector 244, but actually, a control signal indicated by a code configuration is input to the selector 244.
[0403]
Such an Iα calculation circuit 158 does not calculate the log likelihood Iα and outputs the calculated log likelihood Iα as it is, but instead of the log likelihood Iα and the log likelihood Iγ used for calculating the log soft output Iλ. Is output as data AG. The data AG is supplied to the soft output calculation circuit 161 as data AGD after a predetermined delay.
[0404]
The Iβ calculation circuit 159 calculates the log likelihood Iβ using the log likelihoods DGB0 and DGB1 supplied from the Iγ distribution circuit 157. Specifically, based on the notation described at the beginning of “2.”, the Iβ calculation circuit 159 performs the calculation shown in the following equation (52) using the logarithmic likelihood Iγ, and performs two systems at each time t. Are calculated in parallel. Note that the operator “#” in the following equation (52) indicates the log-sum operation as described above, and the log likelihood at the time of transition from the state m ′ to the state m at the input “0”. And a log-sum operation with the log likelihood when transitioning from state m ″ to state m at input “1”. More specifically, when the constant sgn is “+1”, the Iβ calculation circuit 159 performs an operation shown in the following equation (53). On the other hand, when the constant sgn is “−1”, The log likelihood Iβ at each time t is calculated by performing the calculation shown in the following equation (54). That is, the Iβ calculation circuit 159 receives the received value y based on the log likelihood Iγ.tEvery time, the log likelihood Iβ obtained by logarithmically expressing the probability β reaching each state in the reverse order of the time series from the censored state or the log likelihood Iβ obtained by reversing the probability β and reversing the positive / negative identification code is calculated.
[0405]
[Formula 52]
Figure 0004427883
[0406]
[Equation 53]
Figure 0004427883
[0407]
[Formula 54]
Figure 0004427883
[0408]
At this time, the Iβ calculation circuit 159 includes generation matrix information CG supplied from the control circuit 60, input bit number information IN, type information WM and memory number information MN supplied from the code information generation circuit 151, received data and Based on the termination information TB0D and TB1D supplied from the delay storage circuit 155, the log likelihood Iβ is calculated. The Iβ calculation circuit 159 supplies the two logarithmic likelihoods Iβ thus calculated to the Iβ storage circuit 160 as log likelihoods B0 and B1.
[0409]
Specifically, as shown in FIG. 38, for example, the Iβ calculation circuit 159 calculates a control signal generation circuit 280 that generates a control signal and one log likelihood Iβ0 of two log likelihoods Iβ. Therefore, it can be realized as having an Iβ0 addition comparison selection circuit 281 for calculating the Iβ1 addition comparison selection circuit 282 for calculating the log likelihood Iβ1.
[0410]
The control signal generation circuit 280 uses the generation matrix information CG, the input bit number information IN, the type information WM, and the memory number information MN so that four paths reach from the respective states on the trellis to the state at the next time. The transition destination state of each code is calculated and supplied to the Iβ0 addition comparison / selection circuit 281 and the Iβ1 addition comparison / selection circuit 282 as the control signal NST.
[0411]
The Iβ0 addition comparison / selection circuit 281 is provided to calculate the log likelihood Iβ0. The addition comparison / selection circuit 281 for Iβ0 adds a correction term to the code such that two paths reach from each state on the trellis to the state at the next time by addition comparison selection processing and log-sum correction. Addition / comparison / selection circuit 283 for performing processing, and addition / comparison / selection processing and log for codes in which four paths or eight paths depending on the codes reach from each state on the trellis to the state at the next time. An addition comparison selection circuit 284 that performs a process of adding a correction term by −sum correction, and a selector 285 that performs a two-to-one selection.
[0412]
The addition comparison selection circuit 283 performs a process of adding a correction term by addition comparison selection processing and log-sum correction for a code in which two paths reach from each state on the trellis to the state at the next time. By doing so, a log-sum operation is performed.
[0413]
Specifically, as shown in FIG. 39, the addition comparison / selection circuit 283 causes two paths to reach the state at the next time from each state on the trellis as in the above-described addition comparison / selection circuit 241. Log-sum operation circuit 286 for the maximum number of states of the codes to be decoded.nHave Here, it is assumed that the addition comparison selection circuit 283 decodes a code having 16 states at the maximum, and 16 log-sum operation circuits 286 are provided.1, 2862, 286Three, 28616It shall have.
[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 term calculation circuit 288 that calculates the value of the correction term in log-sum correction, a selector 289, and an Iβ0 normalization circuit 291.
[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 term calculation circuit 288 and the selector 289 with data AM0 indicating the sum of the log likelihood Iβ and the log likelihood Iγ obtained by the addition.
[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 term calculation circuit 288 and the selector 289.
[0418]
The correction term calculation circuit 288 has a configuration similar to that of the correction term calculation circuit 247 previously shown in FIG.1Data AM0 supplied from the adder 287 and the adder 2872The data DM indicating the value of the correction term is calculated. At this time, as in the correction term calculation circuit 247, the correction term calculation circuit 288 does not calculate the absolute value of the difference value between the two input data and then obtains the value of the correction term. Calculate the value and select the appropriate one. Further, in the correction term calculation circuit 288, an adder 287 is used.12872The data AM0 and AM1 are compared with each other by taking the difference between the data with “1” or “0” added to the most significant bit of the lower order bits of the data AM0 and AM1. The correction term calculation circuit 288 supplies the calculated data DM to the adder 290. The correction term calculation circuit 288 generates a control signal SEL for controlling the selection operation by the selector 289.
[0419]
Based on the control signal SEL supplied from the correction term calculation circuit 288, the selector 289 selects the data AM0 and AM1 having a small value. The selector 289 supplies the data SAM obtained by the selection to the adder 290.
[0420]
The adder 290 adds the data SAM supplied from the selector 289 and the data DM supplied from the correction term calculation circuit 288 to calculate the log likelihood Iβ0. The adder 290 supplies the calculated log likelihood Iβ0 to the Iβ0 normalization circuit 291 as the log likelihood CM.
[0421]
Similar to the Iα normalization circuit 250 described above, the Iβ0 normalization circuit 291 performs normalization for correcting the distribution of the log likelihood CM supplied from the adder 290. The Iβ0 normalization circuit 291 also performs termination processing using the termination information TB0D. The Iβ0 normalization circuit 291 clips the log likelihood Iβ0 after normalization according to a necessary dynamic range, and uses a predetermined log-sum operation circuit 286 as a log likelihood BT00.1, 2862, 286Three, 28616To supply. At this time, the log likelihood BT00 is delayed by one time by a register (not shown) and then a predetermined log-sum operation circuit 286.1, 2862, 286Three, 28616To be supplied.
[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 comparison selection circuit 283 calculates a log likelihood Iβ0 in a code such that two paths reach from each state on the trellis to the state at the next time. The addition comparison selection circuit 283 includes a log-sum operation circuit 286.1, 2862, 286Three, 28616.., BT15 are bundled and supplied to the selector 285 as the log likelihood BTT. BT00, BT01, BT02,.
[0427]
The addition comparison selection circuit 284 performs addition comparison selection processing and log-sum correction for a code in which four paths or 8 paths depending on the code reach from the state on the trellis to the state at the next time. The log-sum operation is performed by performing the process of adding the correction term.
[0428]
Specifically, as shown in FIG. 40, the addition comparison / selection circuit 284 has four lines from the respective states on the trellis to the state at the next time, as shown in FIG. The log-sum operation circuit 292 of the maximum value of the number of code states to be decoded among the codes that the eight paths reach.nHave Here, it is assumed that the addition comparison / selection circuit 284 decodes a code having eight states at the maximum, and eight log-sum operation circuits 292.1, ..., 2928It shall have.
[0429]
These log-sum operation circuits 2921, ..., 2928Includes a log-sum operation circuit 286 in the addition comparison selection circuit 283 described above.1, 2862, 286Three, 28616Similarly, based on the transition on the trellis, 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 are supplied. That is, the log-sum operation circuit 2921, ..., 2928Are 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 of the calculated log likelihood BTF one time before. That corresponds to the degree Iβ0 is supplied. The log-sum operation circuit 2921, ..., 2928Respectively determine the log likelihood Iβ0 in each state at the next time as the log likelihood BTF. Each log-sum operation circuit 2921, ..., 2928Logarithmic likelihood BTF distribution with respect to is different depending on the code configuration, and here is determined by a selector or the like (not shown) based on control signal NST. The distribution of the log likelihood BTF will be further described later.
[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 selectors 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, and a selection control signal generation circuit for generating a control signal for controlling the selection operation by the selector 305. 306 and an Iβ0 normalization circuit 308.
[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 selector 295.
[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 selector 295.
[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 term calculation circuit 247 previously shown in FIG.1Data AM0 supplied from the adder 293 and the adder 2932And data DM0 indicating the value of the correction term are calculated. At this time, the correction term calculation circuit 2941Does not calculate the value of the correction term after calculating the absolute value of the difference value between the two input data, like the correction term calculation circuit 247, but calculates the values of a plurality of correction terms, Choose the right one. The correction term calculation circuit 2941In the adder 29312932The data AM0 and AM1 are compared with each other by taking the difference between the data with “1” or “0” added to the most significant bit of the lower order bits of the data AM0 and AM1. Correction term calculation circuit 2941Supplies the calculated data DM0 to the selector 304. The correction term calculation circuit 2941Generates a control signal SEL0 for controlling the selection operation by the selectors 295, 297, 298, 299, 300.
[0436]
Correction term calculation circuit 2942Has the same configuration as that of the correction term calculation circuit 247 previously shown in FIG.ThreeData AM2 and the adder 293FourAnd data DM1 indicating the value of the correction term are calculated. At this time, the correction term calculation circuit 2942Does not calculate the value of the correction term after calculating the absolute value of the difference value between the two input data, like the correction term calculation circuit 247, but calculates the values of a plurality of correction terms, Choose the right one. The correction term calculation circuit 2942In the adder 293Three293FourThe difference between the data with “1” or “0” added to the most significant bit of the lower-order bits of the data AM2 and AM3 supplied from the data AM2 and AM3 is compared at high speed. Correction term calculation circuit 2942Supplies the calculated data DM1 to the selector 304. The correction term calculation circuit 2942Generates a control signal SEL1 for controlling the selection operation by the selectors 296, 301, and 302.
[0437]
Correction term calculation circuit 294ThreeHas the same configuration as that of the correction term calculation circuit 247 previously shown in FIG.1Data AM0 supplied from the adder 293 and the adder 293ThreeAnd data DM2 indicating the value of the correction term are calculated. At this time, the correction term calculation circuit 294ThreeDoes not calculate the value of the correction term after calculating the absolute value of the difference value between the two input data, like the correction term calculation circuit 247, but calculates the values of a plurality of correction terms, Choose the right one. The correction term calculation circuit 294ThreeIn the adder 2931293ThreeThe data AM0 and AM2 are compared with each other by taking the difference between the data in which “1” or “0” is added to the most significant bit of the lower bits of the data AM0 and AM2. Correction term calculation circuit 294ThreeSupplies the calculated data DM2 to the selector 299. The correction term calculation circuit 294ThreeGenerates a control signal SEL2 that finally becomes a control signal SEL8 for controlling the selection operation by the selectors 303 and 304, and supplies this control signal SEL2 to the selector 297 and the selection control signal generation circuit 306.
[0438]
Correction term calculation circuit 294FourHas the same configuration as that of the correction term calculation circuit 247 previously shown in FIG.2Data AM <b> 1 supplied from the data adder 293ThreeAnd data DM3 indicating the value of the correction term are calculated. At this time, the correction term calculation circuit 294FourDoes not calculate the value of the correction term after calculating the absolute value of the difference value between the two input data, like the correction term calculation circuit 247, but calculates the values of a plurality of correction terms, Choose the right one. The correction term calculation circuit 294FourIn the adder 2932293ThreeThe difference between the data in which the most significant bit of the lower bits among the data AM1 and AM2 supplied from “1” or “0” is added is taken, and the size comparison of the data AM1 and AM2 is performed at high speed. Correction term calculation circuit 294FourSupplies the calculated data DM3 to the selector 299. The correction term calculation circuit 294FourGenerates a control signal SEL3 that finally becomes a control signal SEL8 for controlling the selection operation by the selectors 303 and 304, and supplies this control signal SEL3 to the selector 297 and the selection control signal generation circuit 306.
[0439]
Correction term calculation circuit 294FiveHas the same configuration as that of the correction term calculation circuit 247 previously shown in FIG.1Data AM0 supplied from the adder 293 and the adder 293FourAnd data DM4 indicating the value of the correction term are calculated. At this time, the correction term calculation circuit 294FiveDoes not calculate the value of the correction term after calculating the absolute value of the difference value between the two input data, like the correction term calculation circuit 247, but calculates the values of a plurality of correction terms, Choose the right one. The correction term calculation circuit 294FiveIn the adder 2931293FourThe data AM0 and AM3 are compared with each other by taking the difference between the data in which “1” or “0” is added to the most significant bit of the lower bits of the data AM0 and AM3. Correction term calculation circuit 294FiveSupplies the calculated data DM4 to the selector 300. The correction term calculation circuit 294FiveGenerates a control signal SEL4 that finally becomes a control signal SEL8 for controlling the selection operation by the selectors 303 and 304, and supplies the control signal SEL4 to the selector 298 and the selection control signal generation circuit 306.
[0440]
Correction term calculation circuit 2946Has the same configuration as that of the correction term calculation circuit 247 previously shown in FIG.2Data AM <b> 1 supplied from the data adder 293FourAnd data DM5 indicating the value of the correction term are calculated. At this time, the correction term calculation circuit 2946Does not calculate the value of the correction term after calculating the absolute value of the difference value between the two input data, like the correction term calculation circuit 247, but calculates the values of a plurality of correction terms, Choose the right one. The correction term calculation circuit 2946In the adder 2932293FourA difference between data in which “1” or “0” is added to the most significant bit of the lower-order bits of the data AM1 and AM3 supplied from the data AM1 and AM3 is compared at high speed. Correction term calculation circuit 2946Supplies the calculated data DM5 to the selector 300. The correction term calculation circuit 2946Generates a control signal SEL5 that finally becomes a control signal SEL8 for controlling the selection operation by the selectors 303 and 304, and supplies the control signal SEL5 to the selector 298 and the selection control signal generation circuit 306.
[0441]
The selector 295 includes a correction term calculation circuit 294.1Is selected from the data AM0 and AM1 based on the control signal SEL0 supplied from the control unit SEL0. The selector 295 supplies the data SAM0 obtained by the selection to the selector 303.
[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 selector 303.
[0443]
The selector 297 includes a correction term calculation circuit 294.1One of the control signals SEL2 and SEL3 is selected on the basis of the control signal SEL0 supplied from. Specifically, the selector 297 selects the control signal SEL3 when the value of the data AM0 is larger than that of the data AM1. The selector 297 supplies the control signal SEL6 obtained by the selection to the selector 301.
[0444]
The selector 298 includes a correction term calculation circuit 294.1One of the control signals SEL4 and SEL5 is selected on the basis of the control signal SEL0 supplied from. Specifically, the selector 298 selects the control signal SEL5 when the value of the data AM0 is larger than that of the data AM1. The selector 298 supplies the control signal SEL7 obtained by the selection to the selector 301.
[0445]
The selector 299 includes a correction term calculation circuit 294.1One of the data DM2 and DM3 is selected based on the control signal SEL0 supplied from. Specifically, the selector 299 selects the data DM3 when the value of the data AM0 is larger than that of the data AM1. The selector 299 supplies the data DS0 obtained by the selection to the selector 302.
[0446]
The selector 300 includes a correction term calculation circuit 294.1One of the data DM4 and DM5 is selected based on the control signal SEL0 supplied from. Specifically, the selector 300 selects the data DM5 when the value of the data AM0 is larger than that of the data AM1. The selector 300 supplies the data DS1 obtained by the selection to the selector 302.
[0447]
The selector 301 includes a correction term calculation circuit 294.2One of the control signals SEL6 and SEL7 is selected on the basis of the control signal SEL1 supplied from. Specifically, the selector 301 selects the control signal SEL7 when the value of the data AM2 is larger than that of the data AM3. The selector 301 supplies the control signal SEL8 obtained by selection as a control signal for selection in the selectors 303 and 304.
[0448]
The selector 302 includes a correction term calculation circuit 294.2One of the data DS0 and DS1 is selected on the basis of the control signal SEL1 supplied from. Specifically, the selector 302 selects the data DS1 when the value of the data AM2 is larger than that of the data AM3. The selector 302 supplies the data DS2 obtained by the selection to the selector 305.
[0449]
The selector 303 selects one of the data SAM0 and SAM1 based on the control signal SEL8. Specifically, the selector 303 selects the data SAM1 when the control signal SEL8 is the control signal SEL7. The selector 303 supplies the data SAM2 obtained by the selection to the adder 307.
[0450]
The selector 304 selects one of the data DM0 and DM1 based on the control signal SEL8. Specifically, the selector 304 selects the data DM1 when the control signal SEL8 is the control signal SEL7. The selector 304 supplies the data DS3 obtained by the selection to the selector 305.
[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 adder 307.
[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 adder 307 adds the data SAM2 supplied from the selector 303 and the data RDM supplied from the selector 305, and calculates the log likelihood Iβ0. The adder 307 supplies the calculated log likelihood Iβ0 to the Iβ0 normalization circuit 308 as the log likelihood CM.
[0454]
Similar to the Iβ0 normalization circuit 291 described above, the Iβ0 normalization circuit 308 performs normalization to correct the distribution of the log likelihood CM supplied from the adder 307. Further, the Iβ0 normalization circuit 308 also performs termination processing using the termination information TB0D. The Iβ0 normalization circuit 308 clips the normalized log likelihood Iβ0 according to a necessary dynamic range, and uses a predetermined log-sum operation circuit 292 as a log likelihood BT00.1, ..., 2928To supply. At this time, the log likelihood BT00 is delayed by one time by a register (not shown) and then a predetermined log-sum operation circuit 292.1, ..., 2928To be supplied.
[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 / selection circuit 284 calculates the log likelihood Iβ0 in a code such that four paths or eight paths depending on the code reach from the state on the trellis to the state at the next time. The addition comparison selection circuit 284 includes a log-sum operation circuit 292.1, ..., 2928The data BT00,..., BT07 obtained by each of the above are bundled and supplied to the selector 285 as data BTF. Similar to the above-described addition comparison / selection circuit 242, the addition comparison / selection circuit 284 originally has logarithmic likelihood Iβ0 in a code such that four paths reach from each state on the trellis to the state at the next time. As described above, depending on the code, the log likelihood Iβ0 in the code that reaches 8 paths can be obtained. This will be described in detail in “5-5-3” and “5-5-5”.
[0459]
The selector 285, based on the input bit number information IN, data indicating the log likelihood BTT indicating the log likelihood Iβ0 supplied from the addition comparison selection circuit 283 and the log likelihood Iβ0 supplied from the addition comparison selection circuit 284. One of the BTFs is selected. Specifically, the selector 285 is configured such that the code by the element encoder in the encoding device 1 does not have a parallel path on the trellis and two paths reach from each state to the state at the next time. If it is a code, the log likelihood BTT is selected, and there are four codes by the element encoder in the encoding apparatus 1 from the state to the state at the next time when there is no parallel path on the trellis. Logarithmic likelihood BTF is selected. That is, here, the input bit number information IN is used as a control signal for controlling the selection operation by the selector 285, but actually, a control signal indicated by a code configuration is input to the selector 285.
[0460]
The Iβ0 addition comparison / selection circuit 281 calculates the log likelihood Iβ0, and outputs the calculated log likelihood Iβ0 as the log likelihood B0. The log likelihood B0 is supplied to the Iβ storage circuit 160.
[0461]
On the other hand, the addition comparison / selection circuit 282 for Iβ1 is provided to calculate the log likelihood Iβ1. Since the Iβ1 addition comparison / selection circuit 282 has the same configuration as the Iβ0 addition comparison / selection circuit 281, detailed description thereof is omitted, but the log likelihood DGB1 and the termination information are used instead of the log likelihood DGB0 and the termination information TB0D. The log likelihood Iβ1 is calculated by inputting TB1D, and the calculated log likelihood Iβ1 is output as the log likelihood B1. The log likelihood B1 is supplied to the Iβ storage circuit 160.
[0462]
Such an Iβ calculation circuit 159 calculates two systems of log likelihoods Iβ0 and Iβ1 in parallel, and these calculated log likelihoods Iβ0 and Iβ1 are used as log likelihoods B0 and B1, respectively, as an Iβ storage circuit 160. To supply.
[0463]
Although not shown, the Iβ storage circuit 160 includes, for example, a plurality of banks of RAM, a control circuit, and a selection circuit. The Iβ storage circuit 160 stores the log likelihoods B0 and B1 supplied from the Iβ calculation circuit 159. The Iβ storage circuit 160 selects predetermined information from the stored log likelihoods B0 and B1 by the selection circuit under the control of the internal control circuit, and uses the logarithm used to calculate the log soft output Iλ. The likelihood BT is supplied to the soft output calculation circuit 161. As described above, the element decoder 50 employs the method described in International Publication No. WO99 / 62183 as a memory management technique in the Iβ storage circuit 160 when performing the sliding window process. In addition to performing memory management for the received data and delay storage circuit 155 described above, and performing memory management for the Iβ storage circuit 160, the logarithmic soft output Iλ can be finally obtained in the original time-series order.
[0464]
Soft output calculation circuit 161 calculates log soft output Iλ using data AGD supplied from Iα calculation circuit 158 and log likelihood BT supplied from Iβ storage circuit 160. Specifically, based on the notation described at the beginning of “2.”, the soft output calculation circuit 161 uses the log likelihood Iγ, the log likelihood Iα, and the log likelihood Iβ to the following equation (55). The logarithmic soft output Iλ at each time t is calculated. In addition, the operator “# Σ” in the following equation (55) indicates a cumulative addition operation of the log-sum operation represented by the above-described operator “#”.
[0465]
[Expression 55]
Figure 0004427883
[0466]
The soft output calculation circuit 161 can also calculate a logarithmic soft output Iλ in symbol units or bit units. The soft output calculation circuit 161 includes an output data selection control signal CITM supplied from the outside, prior probability information format information CAPP supplied from the control circuit 60, input bit number information IN supplied from the code information generation circuit 151, Based on the memory number information MN and the branch input / output information BIO, the logarithmic soft output Iλ corresponding to the posterior probability information for the information symbol or information bit, or the logarithmic soft output Iλ corresponding to the posterior probability information for the code symbol or code bit. Is calculated. The soft output calculation circuit 161 uses the logarithmic soft output Iλ calculated in symbol units or the log soft output Iλ calculated in bit units as log soft outputs SLM and BLM, respectively, as an external information calculation circuit 163, amplitude adjustment and clip circuit 164. , And the hard decision circuit 165.
[0467]
Specifically, the soft output calculation circuit 161 generates an enable signal, for example, as shown in FIG. 41, and an Iα + Iγ + Iβ calculation circuit 310 that calculates the sum of log likelihood Iα, log likelihood Iγ, and log likelihood Iβ. For example, six log-sum operation circuits 312.1, 3122, 312Three, 312Four, 312Five, 3126And an Iλ calculating circuit 313 for calculating a logarithmic soft output Iλ.
[0468]
The Iα + Iγ + Iβ calculation circuit 310 includes an Iβ distribution circuit 314 that distributes the log likelihood Iβ, and a maximum value of the number of states of a code to be decoded, in this case, 32 adders 315.13152315Three315Four315Five3156, 3153131532And have.
[0469]
The Iβ distribution circuit 314 distributes the log likelihood BT supplied from the Iβ storage circuit 160 according to the code configuration. That is, the Iβ distribution circuit 314 distributes the log likelihood BT so as to correspond to the trellis according to the code configuration. At this time, the Iβ distribution circuit 314 distributes the log likelihood BT based on the input bit number information IN supplied from the code information generation circuit 151. The Iβ distribution circuit 314 adds the log likelihood Iβ obtained by distribution to the adder 315.13152315Three315Four315Five3156, 3153131532To supply. That is, the Iβ distribution circuit 314 uses the log likelihood Iβ used for calculating the log soft output Iλ as the log likelihood BTD as an adder 315.13152315Three315Four315Five3156, 3153131532To supply.
[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 Iα calculation circuit 158 and the log likelihood of the log likelihood BTD supplied from the Iβ distribution circuit 314. The degree BTD00 is added. Adder 3151Outputs the sum of log likelihood Iα, log likelihood Iγ, and log likelihood Iβ obtained as a result of addition as data AGB00.
[0471]
Adder 3152Adds the data AG01 of the data AGD supplied from the Iα calculation circuit 158 and the log likelihood BTD00 of the log likelihood BTD supplied from the Iβ distribution circuit 314. Adder 3152Outputs the sum of log likelihood Iα, log likelihood Iγ, and log likelihood Iβ obtained as a result of the addition as data AGB01.
[0472]
Adder 315ThreeAdds the data AG02 of the data AGD supplied from the Iα calculation circuit 158 and the log likelihood BTD01 of the log likelihood BTD supplied from the Iβ distribution circuit 314. Adder 315ThreeOutputs the sum of log likelihood Iα, log likelihood Iγ, and log likelihood Iβ obtained as a result of the addition as data AGB02.
[0473]
Adder 315FourAdds the data AG03 in the data AGD supplied from the Iα calculation circuit 158 and the log likelihood BTD01 in the log likelihood BTD supplied from the Iβ distribution circuit 314. Adder 315FourOutputs the sum of the log likelihood Iα, the log likelihood Iγ, and the log likelihood Iβ obtained as the addition as data AGB03.
[0474]
Adder 315FiveAdds the data AG04 in the data AGD supplied from the Iα calculation circuit 158 and the log likelihood BTD02 in the log likelihood BTD supplied from the Iβ distribution circuit 314. Adder 315FiveOutputs the sum of log likelihood Iα, log likelihood Iγ, and log likelihood Iβ obtained as a result of the addition as data AGB04.
[0475]
Adder 3156Adds the data AG05 in the data AGD supplied from the Iα calculation circuit 158 and the log likelihood BTD02 in the log likelihood BTD supplied from the Iβ distribution circuit 314. Adder 3156Outputs the sum of the log likelihood Iα, the log likelihood Iγ, and the log likelihood Iβ obtained by the addition as data AGB05.
[0476]
Adder 31531Adds the data AG30 of the data AGD supplied from the Iα calculation circuit 158 and the log likelihood BTD15 of the log likelihood BTD supplied from the Iβ distribution circuit 314. Adder 31531Outputs the sum of log likelihood Iα, log likelihood Iγ, and log likelihood Iβ obtained as a result of addition as data AGB30.
[0477]
Adder 31532Adds the data AG31 of the data AGD supplied from the Iα calculation circuit 158 and the log likelihood BTD15 of the log likelihood BTD supplied from the Iβ distribution circuit 314. Adder 31532Outputs the sum of log likelihood Iα, log likelihood Iγ, and log likelihood Iβ obtained as a result of the addition as data AGB31.
[0478]
The Iα + Iγ + Iβ calculating circuit 310 calculates the sum of the log likelihood Iα, the log likelihood Iγ, and the log likelihood Iβ, and calculates the calculated data AGB00, AGB01, AGB02, AGB03, AGB04, AGB05,. , AGB31 and log-sum operation circuit 312 as data AGB1, 3122, 312Three, 312Four, 312Five, 3126To supply.
[0479]
The enable signal generation circuit 311 includes a selector 323.13232323Three323FourA selection control signal generation circuit 316 that generates a control signal for controlling the selection operation by the signal selection circuit 316, and a branch to be selected by the symbol corresponding branch selection circuit 319 and the bit corresponding branch selection circuits 320, 321, and 322. The effective branch selection circuit 317, the output data selection circuit 318 for selecting the branch input / output information BIO to be referred to when calculating the logarithmic soft output Iλ, and the branch corresponding to the symbol when calculating the logarithmic soft output Iλ in symbol units. A symbol corresponding branch selection circuit 319 for selecting a bit, a bit corresponding branch selection circuit 320, 321, 322 for selecting a branch corresponding to the bit when calculating the logarithmic soft output Iλ in bit units, and a selector 323.13232323Three323FourAnd have.
[0480]
The selection control signal generation circuit 316 selects the selector 323 based on the output data selection control signal CITM supplied from the outside and the prior probability information format information CAPP supplied from the control circuit 60.13232323Three323FourA control signal AP for controlling the selection operation by is generated.
[0481]
Based on the input bit number information IN and the memory number information MN supplied from the code information generation circuit 151, the valid edge selection circuit 317 supplies each of the symbol branch selection circuit 319 and the bit branch selection circuits 320, 321, and 322. Control signals M1, M2, and M3 indicating whether or not the input branch input / output information BIO is valid are generated. That is, the valid edge selection circuit 317 generates control signals M1, M2, and M3 for selecting the branches to be selected by the symbol-related branch selection circuit 319 and the bit-related branch selection circuits 320, 321, and 322, respectively. The valid branch selection circuit 317 supplies the generated control signals M1 and M2 to the bit corresponding branch selection circuits 320, 321, and 322, and also supplies the control signal M3 to the symbol corresponding branch selection circuit 319 and the bit corresponding branch selection circuits 320, 321, and 322 is supplied.
[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 information generation circuit 151, the output data selection circuit 318 enters the branching supplied from the code information generation circuit 151. From the output information BIO, the information corresponding to the branch corresponding to the code configuration is selected. The output data selection circuit 318 supplies the selected branch input / output information BIO0 to the bit corresponding branch selection circuit 320, supplies the selected branch input / output information BIO1 to the bit corresponding branch selection circuit 321, and selects the selected branch input / output. The information BIO2 is supplied to the bit corresponding branch selection circuit 322.
[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 information generation circuit 151 to select a branch corresponding to the symbol. At this time, the symbol corresponding branch selection circuit 319 selects a branch based on the control signal M3 supplied from the effective branch selection circuit 317. The symbol branch selection circuit 319 generates enable signals SEN0, SEN1, SEN2, and SEN3 indicating whether the input corresponding to the selected branch is “0” or “1”, and the enable signal SEN0 is selected by the selector 323.1And an enable signal SEN1 to the selector 323.2And the enable signal SEN2 to the selector 323.ThreeAnd an enable signal SEN3 to the selector 323.FourTo supply.
[0484]
The bit branch selection circuit 320 is provided to calculate the logarithmic soft output Iλ in units of bits. The bit corresponding branch selection circuit 320 uses the branch input / output information BIO0 supplied from the output data selection circuit 318 to select a branch corresponding to the bit. At this time, the bit corresponding branch selection circuit 320 selects a branch based on the control signals M1, M2, and M3 supplied from the effective branch selection circuit 317. The bit corresponding branch selection circuit 320 generates enable signals EN00 and EN01 indicating whether the input corresponding to the selected branch is “0” or “1”, and the enable signal EN00 is selected by the selector 323.1And the enable signal EN01 is sent to the selector 323.2To supply.
[0485]
Similar to the bit corresponding branch selection circuit 320, the bit corresponding branch selection circuit 321 is provided for calculating the logarithmic soft output Iλ in units of bits. The bit corresponding branch selection circuit 321 uses the branch input / output information BIO1 supplied from the output data selection circuit 318 to select a branch corresponding to the bit. At this time, the bit branch selection circuit 321 selects a branch based on the control signals M1, M2, and M3 supplied from the valid branch selection circuit 317. The bit corresponding branch selection circuit 321 generates enable signals EN10 and EN11 indicating whether the input corresponding to the selected branch is “0” or “1”, and the enable signal EN10 is selected as the selector 323.ThreeAnd the enable signal EN11 to the selector 323.FourTo supply.
[0486]
Similar to the bit corresponding branch selection circuit 320, the bit corresponding branch selection circuit 322 is provided for calculating the logarithmic soft output Iλ in units of bits. The bit corresponding branch selection circuit 322 uses the branch input / output information BIO2 supplied from the output data selection circuit 318 to select a branch corresponding to the bit. At this time, the bit corresponding branch selection circuit 322 selects a branch based on the control signals M1, M2, and M3 supplied from the valid branch selection circuit 317. The bit corresponding branch selection circuit 322 generates enable signals EN20 and EN21 indicating whether the input corresponding to the selected branch is “0” or “1”, and uses the enable signal EN20 as a log-sum operation circuit 312.FiveAnd the enable signal EN21 is supplied to the log-sum operation circuit 312.6To supply.
[0487]
Selector 3231Is based on the control signal AP supplied from the selection control signal generation circuit 316 and includes an enable signal SEN0 supplied from the symbol corresponding branch selection circuit 319 and an enable signal EN00 supplied from the bit corresponding branch selection circuit 320. Select one of them. Specifically, the selector 3231Is a case where the output data selection control signal CITM indicates that the control signal AP outputs information on information symbols or information bits, and the prior probability information format information CAPP indicates that it is a symbol unit. Selects the enable signal SEN0 supplied from the symbol corresponding branch selection circuit 319. Selector 3231Outputs the selected enable signal ENS0 to the log-sum operation circuit 312.1To supply.
[0488]
Selector 3232Is based on the control signal AP supplied from the selection control signal generation circuit 316 and includes an enable signal SEN1 supplied from the symbol corresponding branch selection circuit 319 and an enable signal EN01 supplied from the bit corresponding branch selection circuit 320. Select one of them. Specifically, the selector 3232Is a case where the output data selection control signal CITM indicates that the control signal AP outputs information on information symbols or information bits, and the prior probability information format information CAPP indicates that it is a symbol unit. Selects the enable signal SEN1 supplied from the symbol branch selection circuit 319. Selector 3232The log-sum operation circuit 312 outputs the selected enable signal ENS1.2To supply.
[0489]
Selector 323ThreeIs based on the control signal AP supplied from the selection control signal generation circuit 316 and includes an enable signal SEN2 supplied from the symbol corresponding branch selection circuit 319 and an enable signal EN10 supplied from the bit corresponding branch selection circuit 321. Select one of them. Specifically, the selector 323ThreeIs a case where the output data selection control signal CITM indicates that the control signal AP outputs information on information symbols or information bits, and the prior probability information format information CAPP indicates that it is a symbol unit. Selects the enable signal SEN2 supplied from the symbol branch selection circuit 319. Selector 323ThreeOutputs the selected enable signal ENS2 to the log-sum operation circuit 312.ThreeTo supply.
[0490]
Selector 323FourIs based on the control signal AP supplied from the selection control signal generation circuit 316, the enable signal SEN3 supplied from the symbol corresponding branch selection circuit 319 and the enable signal EN11 supplied from the bit corresponding branch selection circuit 321. Select one of them. Specifically, the selector 323FourIs a case where the output data selection control signal CITM indicates that the control signal AP outputs information on information symbols or information bits, and the prior probability information format information CAPP indicates that it is a symbol unit. Selects the enable signal SEN3 supplied from the symbol branch selection circuit 319. Selector 323FourThe log-sum operation circuit 312 outputs the selected enable signal ENS3.FourTo supply.
[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 selectors 327, 328, 329, 332, 336, 338, a selection control signal generation circuit 330 that generates a control signal for controlling the selection operation by the selectors 327, 328, and 329, and a selector 332. A selection control signal generation circuit 331 for generating a control signal for controlling the selection operation, an AND gate 333, an OR gate 334, and a lookup table 335 for storing the value of the correction term in the log-sum correction as a table; And an adder 337.
[0494]
Differentiator 3261Of the data AGB supplied from the Iα + Iγ + Iβ calculating circuit 310, the difference between the corresponding predetermined data AGB000, AGB001 is obtained according to the sign. Strictly speaking, the differentiator 3261If the data AGB000 and AGB001 are each composed of, for example, 13 bits, the most significant bit of the lower 6 bits of the data AGB000 is appended with “1”, and the lower 6 bits of the data AGB001 The difference from the one with “0” added to the most significant bit is taken. Differentiator 3261Supplies the calculated difference value DA1 to the selector 327 and the selection control signal generation circuit 330.
[0495]
Differentiator 3262The difference between predetermined data AGB001 and AGB000 corresponding to the sign of the data AGB supplied from the Iα + Iγ + Iβ calculation circuit 310 is obtained. Strictly speaking, the differentiator 3262If the data AGB000 and AGB001 are each composed of, for example, 13 bits, the most significant bit of the lower 6 bits of the data AGB001 is appended with “1” and the lower 6 bits of the data AGB000. The difference from the one with “0” added to the most significant bit is taken. Differentiator 3262Supplies the calculated difference value DA0 to the selector 328 and the selection control signal generation circuit 330.
[0496]
The selector 327 is based on the control signal SL1 supplied from the selection control signal generation circuit 330, and the differencer 326.1One of the difference value DA1 supplied from the data and the data having the predetermined value N1 is selected. Specifically, since the value of the correction term for the difference value DA1 has a property of asymptotically approaching a predetermined value, the selector 327 determines that the value of the difference value DA1 exceeds the predetermined value N1. For this, data having a predetermined value N1 is selected. The selector 327 supplies the data SDA1 obtained by the selection to the selector 329.
[0497]
The selector 328 is based on the control signal SL1 supplied from the selection control signal generation circuit 330 and the differencer 326.2One of the difference value DA0 supplied from the data and the data having the predetermined value N1 is selected. Specifically, since the value of the correction term for the difference value DA0 has a property of asymptotically approaching a predetermined value, the selector 328 determines that the value of the difference value DA0 exceeds the predetermined value N1. For this, data having a predetermined value N1 is selected. The selector 328 supplies data SDA0 obtained by the selection to the selector 329.
[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 signal generation circuit 330. . Specifically, the selector 329 selects the data SDA1 supplied from the selector 327 when the value of the data AGB000 is larger than the value of the data AGB001. The selector 329 supplies the data DM obtained by the selection to the lookup table 335.
[0499]
The selection control signal generation circuit 330 generates a control signal SL1 for controlling the selection operation by the selectors 327 and 328 based on the data AGB00 and AGB01 and the difference values DA1 and DA0, and the selection operation by the selector 329. A control signal SL2 is generated for controlling. The selection control signal generation circuit 330 also supplies the generated control signal SL2 to the selection control signal generation circuit 331. At this time, the selection control signal generation circuit 330 divides the upper bits and the lower bits of the metric based on the data AGB00 and AGB01 in the same manner as the selection control signal generation circuit 232 described above, and makes a determination for selection. Control signals SL1 and SL2 indicating sentences are generated, which will be described later.
[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 adder 337.
[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 selector 336 as a control signal for selection.
[0503]
The OR gate 334 takes the logical sum of the enable signals EN000 and EN001. The OR gate 334 supplies the obtained logical sum EN to the selector 338 as a control signal for selection, and uses the log-sum operation cell circuit 325 as the enable signal EN100.17To supply.
[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 selector 336 as data RDM.
[0505]
The selector 336 selects either the data RDM supplied from the lookup table 335 or the data having a predetermined value N2 based on the logical product ENA supplied from the AND gate 333. Specifically, the selector 336 selects the data RDM when the logical product ENA is “1”. The selector 336 supplies the data SDM obtained by selection to the adder 337. The predetermined value N2 is an offset value that is added so as to unify positive / negative identification codes of data CAG described later. In other words, the data DAG, which is one of the data AGB000 and AGB001, can take a value across the positive and negative values, but expressing both positive and negative values causes an increase in circuit scale. Therefore, the log-sum operation cell circuit 3251In FIG. 2, a predetermined value N2 to be added by an adder 337, which will be described later, is introduced so as to unify the positive / negative identification codes of the data DAG.
[0506]
The adder 337 adds the data DAG supplied from the selector 332 and the data SDM supplied from the selector 336. The adder 337 supplies the calculated data CAG to the selector 338.
[0507]
The selector 338 selects either one of the data CAG supplied from the adder 337 and data having a predetermined value N3 based on the logical sum EN supplied from the OR gate 334. Specifically, the selector 338 selects the data CAG when the logical sum EN is “1”. The selector 338 outputs the data AGL obtained by the selection to the log-sum operation cell circuit 325.17To supply.
[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γ + Iβ calculating circuit 310 and the enable signal EN000 and enable signal EN001 supplied from the enable signal generating circuit 311. By performing an operation similar to that described above, one log-sum operation in the cumulative addition operation of the log-sum operation performed when calculating the logarithmic soft output Iλ is performed. Log-sum operation circuit 3251Uses the calculated data AGL as data AGB100, and performs a log-sum operation cell circuit 325 that performs an operation similar to the second round in the winning game.17And the enable signal EN100 is sent to the log-sum operation cell circuit 325.17To supply.
[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γ + Iβ calculating circuit 310 and the enable signal EN002 and enable signal EN003 supplied from the enable signal generating circuit 311 are used. Thus, by performing an operation similar to the first round in the winning game, one log-sum operation in the cumulative addition operation of the log-sum operation is performed. Log-sum operation circuit 3252Uses the calculated data AGL as data AGB101 and the log-sum operation cell circuit 325.17And the enable signal EN101 is sent to the log-sum operation cell circuit 325.17To supply.
[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γ + Iβ calculating circuit 310 and the enable signal EN004 and enable signal EN005 supplied from the enable signal generating circuit 311 are used. Thus, by performing an operation similar to the first round in the winning game, one log-sum operation in the cumulative addition operation of the log-sum operation is performed. Log-sum operation circuit 325ThreeUses the calculated data AGL as data AGB102, and performs a log-sum operation cell circuit 325 that performs an operation similar to the second round in the winning game.18And the enable signal EN102 is sent to the log-sum operation cell circuit 325.18To supply.
[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γ + Iβ calculation circuit 310 and the enable signal EN006 and the enable signal EN007 supplied from the enable signal generation circuit 311 are used. Thus, by performing an operation similar to the first round in the winning game, one log-sum operation in the cumulative addition operation of the log-sum operation is performed. Log-sum operation circuit 325FourUses the calculated data AGL as the data AGB 103 and the log-sum operation cell circuit 325.18And the enable signal EN103 is sent to the log-sum operation cell circuit 325.18To supply.
[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γ + Iβ calculating circuit 310 and the enable signal EN008 and enable signal EN009 supplied from the enable signal generating circuit 311 are used. Thus, by performing an operation similar to the first round in the winning game, one log-sum operation in the cumulative addition operation of the log-sum operation is performed. Log-sum operation circuit 325FiveUses the calculated data AGL as data AGB104 and performs a log-sum operation cell circuit 325 that performs an operation similar to the second round in the winning game.19And the enable signal EN104 is sent to the log-sum operation cell circuit 325.19To supply.
[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γ + Iβ calculating circuit 310, and an enable signal EN010 and an enable signal EN011 supplied from the enable signal generating circuit 311 are used. Thus, by performing an operation similar to the first round in the winning game, one log-sum operation in the cumulative addition operation of the log-sum operation is performed. Log-sum operation circuit 3256Uses the calculated data AGL as data AGB 105 and the log-sum operation cell circuit 325.19And the enable signal EN105 is sent to the log-sum operation cell circuit 325.19To supply.
[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γ + Iβ calculating circuit 310, and the enable signal EN012 and the enable signal EN013 supplied from the enable signal generating circuit 311 are used. Thus, by performing an operation similar to the first round in the winning game, one log-sum operation in the cumulative addition operation of the log-sum operation is performed. Log-sum operation circuit 3257Uses the calculated data AGL as data AGB 106 and performs a log-sum operation cell circuit 325 that performs an operation similar to that of the second round in the winning game.20And the enable signal EN106 is sent to the log-sum operation cell circuit 325.20To supply.
[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γ + Iβ calculating circuit 310 and the enable signal EN014 and enable signal EN015 supplied from the enable signal generating circuit 311 are used. Thus, by performing an operation similar to the first round in the winning game, one log-sum operation in the cumulative addition operation of the log-sum operation is performed. Log-sum operation circuit 3258Uses the calculated data AGL as data AGB 107 and the log-sum operation cell circuit 325.20And the enable signal EN107 is sent to the log-sum operation cell circuit 325.20To supply.
[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γ + Iβ calculating circuit 310 and the enable signal EN016 and enable signal EN017 supplied from the enable signal generating circuit 311 are used. Thus, by performing an operation similar to the first round in the winning game, one log-sum operation in the cumulative addition operation of the log-sum operation is performed. Log-sum operation circuit 3259Uses the calculated data AGL as the data AGB 108, and performs a log-sum operation cell circuit 325 that performs an operation similar to the second round in the winning game.twenty oneAnd the enable signal EN108 is sent to the log-sum operation cell circuit 325.twenty oneTo supply.
[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γ + Iβ calculating circuit 310 and the enable signal EN018 and enable signal EN019 supplied from the enable signal generating circuit 311 are used. Thus, by performing an operation similar to the first round in the winning game, one log-sum operation in the cumulative addition operation of the log-sum operation is performed. Log-sum operation circuit 325TenUses the calculated data AGL as data AGB109 and the log-sum operation cell circuit 325.twenty oneAnd the enable signal EN109 is sent to the log-sum operation cell circuit 325.twenty oneTo supply.
[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γ + Iβ calculation circuit 310, and the enable signal EN020 and the enable signal EN021 supplied from the enable signal generation circuit 311 are used. Thus, by performing an operation similar to the first round in the winning game, one log-sum operation in the cumulative addition operation of the log-sum operation is performed. Log-sum operation circuit 32511Uses the calculated data AGL as data AGB110 and performs a log-sum operation cell circuit 325 that performs an operation similar to that of the second round in the winning game.twenty twoAnd the enable signal EN110 is sent to the log-sum operation cell circuit 325.twenty twoTo supply.
[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γ + Iβ calculating circuit 310, and the enable signal EN022 and the enable signal EN023 supplied from the enable signal generating circuit 311 are used. Thus, by performing an operation similar to the first round in the winning game, one log-sum operation in the cumulative addition operation of the log-sum operation is performed. Log-sum operation circuit 32512Uses the calculated data AGL as data AGB111 and the log-sum operation cell circuit 325.twenty twoAnd an enable signal EN111 is sent to the log-sum operation cell circuit 325.twenty twoTo supply.
[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γ + Iβ calculating circuit 310 and the enable signal EN024 and the enable signal EN025 supplied from the enable signal generating circuit 311 are used. Thus, by performing an operation similar to the first round in the winning game, one log-sum operation in the cumulative addition operation of the log-sum operation is performed. Log-sum operation circuit 32513Uses the calculated data AGL as data AGB112, and performs a log-sum operation cell circuit 325 that performs an operation similar to the second round in the winning game.twenty threeAnd the enable signal EN112 is supplied to the log-sum operation cell circuit 325.twenty threeTo supply.
[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γ + Iβ calculating circuit 310 and the enable signal EN026 and enable signal EN027 supplied from the enable signal generating circuit 311 are used. Thus, by performing an operation similar to the first round in the winning game, one log-sum operation in the cumulative addition operation of the log-sum operation is performed. Log-sum operation circuit 32514Uses the calculated data AGL as the data AGB 113 and the log-sum operation cell circuit 325.twenty threeAnd the enable signal EN113 is sent to the log-sum operation cell circuit 325.twenty threeTo supply.
[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γ + Iβ calculating circuit 310 and the enable signal EN028 and the enable signal EN029 supplied from the enable signal generating circuit 311 are used. Thus, by performing an operation similar to the first round in the winning game, one log-sum operation in the cumulative addition operation of the log-sum operation is performed. Log-sum operation circuit 32515Uses the calculated data AGL as data AGB 114, and performs a log-sum operation cell circuit 325 that performs an operation similar to the second round in the winning game.twenty fourAnd the enable signal EN114 is sent to the log-sum operation cell circuit 325.twenty fourTo supply.
[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γ + Iβ calculating circuit 310 and the enable signal EN030 and the enable signal EN031 supplied from the enable signal generating circuit 311 are used. Thus, by performing an operation similar to the first round in the winning game, one log-sum operation in the cumulative addition operation of the log-sum operation is performed. Log-sum operation circuit 32516Uses the calculated data AGL as data AGB 115 and the log-sum operation cell circuit 325.twenty fourAnd the enable signal EN115 is sent to the log-sum operation cell circuit 325.twenty fourTo supply.
[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 data AGB 201 and the log-sum operation cell circuit 325.twenty fiveAnd the enable signal EN201 is sent to the log-sum operation cell circuit 325.twenty fiveTo supply.
[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 data AGB 107 and the enable signal EN 107 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 32520The log-sum operation cell circuit 325 uses the calculated data AGL as data AGB 203.26And the enable signal EN203 is sent to the log-sum operation cell circuit 325.26To supply.
[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 signal EN 108 supplied from, and log-sum operation cell circuit 325TenBy using the data AGB 109 and the enable signal EN 109 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 325twenty oneUses the calculated data AGL as data AGB 204 and performs a log-sum operation cell circuit 325 that performs an operation similar to the third round in the winning game.27And the enable signal EN204 is sent to the log-sum operation cell circuit 325.27To supply.
[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 signal EN 110, and log-sum operation cell circuit 325 supplied from12By using the data AGB 111 and the enable signal EN 111 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 325twenty twoUses the calculated data AGL as data AGB 205 and the log-sum operation cell circuit 325.27And the enable signal EN205 is sent to the log-sum operation cell circuit 325.27To supply.
[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 data AGB 201 and the enable signal EN 201 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 325twenty fiveUses the calculated data AGL as data AGB300 and performs a log-sum operation cell circuit 325 that performs an operation similar to that of the fourth round in the winning game.29And an enable signal EN300 is sent to the log-sum operation cell circuit 325.29To supply.
[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 data AGB 301 and the log-sum operation cell circuit 325.29And an enable signal EN301 is sent to the log-sum operation cell circuit 325.29To supply.
[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 data AGB 303 and the log-sum operation cell circuit 325.30And the enable signal EN303 is sent to the log-sum operation cell circuit 325.30To supply.
[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 data AGB 301 and the enable signal EN 301 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 fourth round in the winning game. Log-sum operation circuit 32529Uses the calculated data AGL 400 as data AGB400, and the log-sum operation cell circuit 325 performs an operation similar to the fifth round in the winning game, here the final game.31And the enable signal EN400 is sent to the log-sum operation cell circuit 325.31To supply.
[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 signal EN 302 supplied from, and a log-sum operation cell circuit 32528By using the data AGB 303 and the enable signal EN303 supplied from the above, a log-sum operation in the cumulative addition operation of the log-sum operation is performed by performing an operation similar to the fourth round in the winning game. Log-sum operation circuit 32530Uses the calculated data AGL as data AGB 401 and the log-sum operation cell circuit 325.31And the enable signal EN401 is sent to the log-sum operation cell circuit 325.31To supply.
[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 signal EN 400 supplied from, and log-sum operation cell circuit 32530Using the data AGB 401 and the enable signal EN 401 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 final game in the winning game. Log-sum operation circuit 32531Does not output the calculated enable signal EN500, but outputs the calculated data AGL as data AGB500. The data AGB 500 is supplied to the Iλ calculation circuit 313 as data L00.
[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 Iλ calculation circuit 313.
[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 Iλ calculation circuit 313.
[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 Iλ calculation circuit 313.
[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 Iλ calculation circuit 313.
[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 Iλ calculation circuit 313.
[0545]
The Iλ calculation circuit 313 includes three differentiators 324.13242324ThreeHave
[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 Iλ calculation circuit 313 includes a log-sum operation circuit 312.1, 3122, 312Three, 312FourThe data L00, L01, L10, and L11, which are supplied from each of the above and are expressed as so-called straight binary, are bundled and output as a logarithmic soft output SLM calculated in symbol units. Further, the Iλ calculation circuit 313 includes a differentiator 324.13242324ThreeThe data LM0, LM1, and LM2 in 2's complement notation calculated by each of the above are bundled and output as a logarithmic soft output BLM calculated in bit units.
[0550]
The soft output calculation circuit 161 configured as described above realizes the cumulative addition operation of the log-sum operation corresponding to the input of each branch on the trellis by performing an operation similar to a winning game using the enable signal. The logarithmic soft output Iλ can be calculated in symbol units or bit units, and output as logarithmic soft outputs SLM and BLM, respectively. These logarithmic soft outputs SLM and BLM are supplied to the external information calculation circuit 163, the amplitude adjustment and clipping circuit 164, and the hard decision circuit 165.
[0551]
The reception value or prior probability information separation circuit 162 separates and extracts the reception value or prior probability information from the delay reception data DAD output from the reception data and delay storage circuit 155 and subjected to a predetermined delay. . The reception value or prior probability information separation circuit 162 receives the input delayed reception data DAD based on the reception value format information CRTY supplied from the control circuit 60 and the input bit number information IN supplied from the code information generation circuit 151. Isolate.
[0552]
Specifically, the received value or prior probability information separation circuit 162 can be realized as having four selectors 341, 342, 343, and 344 as shown in FIG.
[0553]
The selector 341 selects one of the delay reception data DAD3 and DAD4 among the delay reception data DAD based on the input bit number information IN. Specifically, the selector 341 selects the delay reception data DAD4 when the number of input bits to the element encoder is “1”. The selector 341 outputs the selected data as delayed reception data DAS.
[0554]
The selector 342 selects either one of the delay reception data DAD0 of the delay reception data DAD and the delay reception data DAS supplied from the selector 341 based on the reception value format information CRTY. Specifically, the selector 342 selects the delay reception data DAD0 when the reception value format information CRTY indicates external information. The selector 342 outputs the selected data as delayed reception data PD0.
[0555]
The selector 343 selects one of the delay reception data DAD1 and DAD4 among the delay reception data DAD based on the reception value format information CRTY. Specifically, the selector 343 selects the delay reception data DAD1 when the reception value format information CRTY indicates external information. The selector 343 outputs the selected data as delayed reception data PD1.
[0556]
The selector 344 selects one of the delay reception data DAD2 and DAD5 among the delay reception data DAD based on the reception value format information CRTY. Specifically, the selector 344 selects the delay reception data DAD2 when the reception value format information CRTY indicates external information. The selector 344 outputs the selected data as delayed reception data PD2.
[0557]
The received value or prior probability information separation circuit 162 bundles the delayed received data DAD0, DAD1, DAD2, and DAD3 out of the input delayed received data DAD, and is a delayed received value expressed as a so-called offset binary. While outputting as DRC, the delay reception data DAS, DAD4, and DAD5 are bundled and output as delay prior probability information DAP, and the delay reception data PD0, PD1, and PD2 are bundled and output as delay external information DEX. The delayed received value DRC is supplied to the external information calculation circuit 163 and the hard decision circuit 165, the delayed prior probability information DAP is supplied to the external information calculation circuit 163, and the delayed external information DEX is directly selected as the delayed external information SDEX. 1202To be supplied.
[0558]
The external information calculation circuit 163 includes a logarithmic soft output SLM or logarithmic soft output BLM supplied from the soft output calculation circuit 161, and a delay reception value DRC or delay prior probability information DAP supplied from the reception value or prior probability information separation circuit 162. The external information OE is calculated using
[0559]
Specifically, as shown in FIG. 44, for example, the external information calculation circuit 163 includes an information bit external information calculation circuit 350 that calculates external information for information bits, and an information symbol external information calculation that calculates external information for information symbols. The circuit 351, the code external information calculation circuit 352 that calculates the external information for the code, and two selectors 353 and 354 can be realized.
[0560]
The information bit external information calculation circuit 350 includes, for example, three external information calculation cell circuits 355.1, 3552, 355ThreeHave These external information calculation cell circuits 3551, 3552, 355ThreeAre substantially constituted by a differentiator (not shown) that takes the difference between the logarithmic soft output BLM and the delay prior probability information DAP.
[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 information calculation circuit 350 calculates, for example, three systems of external information EX0, EX1, and EX2 in units of bits, and bundles these external information EX0, EX1, and EX2 and supplies them to the selector 353 as external information EXB. To do.
[0565]
The information symbol external information calculation circuit 351 includes, for example, four external information calculation cell circuits 356.1, 3562, 356Three, 356FourAnd a normalization circuit 357. Among these units, the external information calculation cell circuit 3561, 3562, 356Three, 356FourAre external information calculation cell circuits 355, respectively.1, 3552, 355ThreeIn the same manner as described above, it is substantially composed of a differentiator (not shown) that takes the difference between the logarithmic soft output SLM and the delay prior probability information DAP.
[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 circuit 357.
[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 normalization circuit 357.
[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 normalization circuit 357.
[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 normalization circuit 357.
[0570]
The normalization circuit 357, as will be described later, the external information calculation cell circuit 356.1, 3562, 356Three, 356FourNormalization is performed to correct the bias in the distribution of the external information ED0, ED1, ED2, and ED3 calculated by the above and reduce the amount of information. Specifically, the normalization circuit 357 includes an external information calculation cell circuit 356.1, 3562, 356Three, 356FourOf the external information ED0, ED1, ED2, ED3 calculated by the above, for each of the external information ED0, ED1, ED2, ED3, the one having the maximum value is adjusted to a predetermined value such as “0”, for example. After adding a predetermined value, clipping is performed according to the required dynamic range, and further normalization is performed so that the value of external information for one symbol is different from the values of external information for all other symbols. Do. The normalization circuit 357 outputs the external information after normalization as external information EX0, EX1, EX2.
[0571]
Such an information symbol external information calculation circuit 351 calculates, for example, three systems of external information EX0, EX1, and EX2 in units of symbols, and bundles these external information EX0, EX1, and EX2 and supplies them to the selector 353 as external information EXS. To do.
[0572]
The sign external information calculation circuit 352 includes, for example, three external information calculation cell circuits 358.13582358ThreeHave These external information calculation cell circuits 35813582358ThreeAre external information calculation cell circuits 355, respectively.1, 3552, 355ThreeIn the same manner as described above, it is substantially composed of a differentiator (not shown) that takes the difference between the logarithmic soft output BLM and the delayed received value DRC.
[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 information calculation circuit 352 calculates, for example, three systems of external information EX0, EX1, and EX2, and bundles these external information EX0, EX1, and EX2 and supplies them to the selector 354 as external information EXC.
[0577]
The selector 353 is one of external information EXB supplied from the information bit external information calculation circuit 350 and external information EXS supplied from the information symbol external information calculation circuit 351 based on the prior probability information format information CAPP. Select one. Specifically, the selector 353 selects the external information EXS when the prior probability information format information CAPP indicates that it is a symbol unit. The selector 353 supplies the external information ES obtained by selection to the selector 354.
[0578]
The selector 354 selects either the external information ES supplied from the selector 353 or the external information EXC supplied from the sign external information calculation circuit 352 based on the output data selection control signal CITM. Specifically, the selector 354 selects the external information EXC when the output data selection control signal CITM indicates that the information for the code is output. The selector 354 outputs the external information OE obtained by selection to the outside.
[0579]
The external information calculation circuit 163 calculates external information OE using the input log soft output SLM or log soft output BLM and the delay received value DCR or the delay prior probability information DAP, and the external information OE is calculated. As it is, selector 120 as external information SOE1To supply.
[0580]
Although not shown, the amplitude adjustment and clipping circuit 164 adjusts the amplitude of the logarithmic soft output SLM in symbol units and clips it to a predetermined dynamic range, and adjusts the amplitude of the logarithmic soft output BLM in bit units and And a circuit that clips to a dynamic range. At this time, the amplitude adjustment and clipping circuit 164 performs logarithmic soft outputs SLM and BLM based on the output data selection control signal CITM supplied from the outside and the prior probability information format information CAPP supplied from the control circuit 60, respectively. Is output as a logarithmic soft output OL after amplitude adjustment of the data clipped to a predetermined dynamic range. This logarithmic soft output OL is directly used as the soft output SOL as the selector 120.1To be supplied.
[0581]
The hard decision circuit 165 makes a hard decision on the logarithmic soft outputs SLM and BLM, which are decoded values, and makes a hard decision on the delayed received value DRC. At this time, the hard decision circuit 165 is based on the output data selection control signal CITM supplied from the outside, the received value format information CRTY, the prior probability information format information CAPP, and the signal point arrangement information CSIG supplied from the control circuit 60. Then, the log soft outputs SLM and BLM and the delay received value DRC are hard-decided. Here, when the encoding device 1 performs encoding by TTCM or SCTCM, the encoding device 1 performs modulation by the 8PSK modulation method, and the signal point arrangement information CSIG is: It is assumed that eight signal point arrangement information CSIG0, CSIG1, CSIG2, CSIG3, CSIG4, CSIG5, CSIG6, and CSIG7 are included.
[0582]
Specifically, for example, as shown in FIG. 45, the hard decision circuit 165 controls the selection operation by the inverter 360, the minimum symbol calculation circuit 361 that calculates the symbol having the minimum value, and the selector 369 described later. Control signal generation circuit 368 for generating a control signal of, selectors 369 and 371, and I for performing demapping of I / Q values when the encoding apparatus 1 performs encoding by TTCM or SCTCM / Q demapping circuit 370 can be realized.
[0583]
Inverter 360 inverts a predetermined bit group of logarithmic soft output BLM supplied from soft output calculation circuit 161 and expressed in two's complement notation, and outputs the result as decoded bit hard decision information BHD.
[0584]
The minimum symbol calculation circuit 361 can be realized, for example, as having three comparison circuits 362, 364, 366 and three selectors 363, 365, 367.
[0585]
The comparison circuit 362 compares the magnitude relationships of the logarithmic soft outputs SLM0 and SLM1 among the logarithmic soft outputs SLM supplied from the soft output calculation circuit 161 and expressed in straight binary notation. The comparison circuit 362 supplies a control signal SL0 indicating the obtained magnitude relationship to the selector 367 and also supplies it to the selector 363 as a control signal for selection.
[0586]
Based on the control signal SL0 supplied from the comparison circuit 362, the selector 363 selects a logarithmic soft output SLM0, SLM1 having a small value. The selector 363 supplies the data SSL0 obtained by the selection to the comparison circuit 366.
[0587]
The comparison circuit 364 compares the magnitude relationships of the logarithmic soft outputs SLM2 and SLM3 among the logarithmic soft outputs SLM supplied from the soft output calculation circuit 161. The comparison circuit 364 supplies a control signal SL1 indicating the obtained magnitude relationship to the selector 367 and also supplies it to the selector 365 as a selection control signal.
[0588]
Based on the control signal SL1 supplied from the comparison circuit 364, the selector 365 selects a logarithmic soft output SLM2, SLM3 having a smaller value. The selector 365 supplies the data SSL1 obtained by the selection to the comparison circuit 366.
[0589]
The comparison circuit 366 compares the magnitude relationship between the data SSL0 supplied from the selector 363 and the data SSL1 supplied from the selector 365. The comparison circuit 366 supplies a control signal SEL1 indicating the obtained magnitude relationship to the selector 367 as a control signal for selection.
[0590]
The selector 367 selects one of the control signal SL0 supplied from the comparison circuit 362 and the control signal SL1 supplied from the comparison circuit 364 based on the control signal SEL1 supplied from the comparison circuit 366. . Specifically, the selector 367 selects the control signal SL1 when the value of the data SSL0 is larger than the value of the data SSL1. The selector 367 outputs the data obtained by selection as the control signal SEL0.
[0591]
Such a minimum symbol calculation circuit 361 calculates the smallest value of the logarithmic soft output SLM in symbol units, and supplies it to the selector 369 as decoded symbol hard decision information SHD in which the control signals SEL0 and SEL1 are bundled. To do.
[0592]
The selection control signal generation circuit 368 controls the selection operation by the selector 369 based on the output data selection control signal CITM supplied from the outside and the prior probability information format information CAPP supplied from the control circuit 60. A control signal AIS is generated.
[0593]
Based on the control signal AIS supplied from the selection control signal generation circuit 368, the selector 369 and the decoded bit hard decision information BHD supplied from the inverter 360 and the decoded symbol hard decision information supplied from the minimum symbol calculation circuit 361. Either one of SHD is selected. Specifically, the selector 369 indicates that the output data selection control signal CITM indicates that the control signal AIS outputs information for an information symbol or information bit, and the prior probability information format information CAPP indicates that the control signal AIS is a symbol unit. If it is shown, the decoded symbol hard decision information SHD is selected. The selector 369 outputs the selected data as decoded value hard decision information DHD1.
[0594]
The hard decision circuit 165 obtains the decoded bit hard decision information BHD and the decoded symbol hard decision information SHD by these units, and outputs the decoded value hard decision information DHD1 selected by the selector 369 as the decoded value hard decision information DHD. To do. The decoded value hard decision information DHD is output to the outside as it is as the decoded value hard decision information SDH.
[0595]
The hard decision circuit 165 uses the inverter 360 to obtain the decoded bit hard decision information BHD, which is due to the data notation. That is, the decoded bit hard decision information BHD is obtained on the premise of the logarithmic soft output BLM expressed in two's complement notation as described above. Therefore, the hard decision circuit 165 uses the inverter 360 to make a decision on a bit-by-bit basis by making a decision using a predetermined bit group of the logarithmic soft output BLM, specifically the inverted bit obtained by inverting the most significant bit The logarithmic soft output BLM calculated in (1) can be determined hard.
[0596]
In the hard decision circuit 165, the I / Q demapping circuit 370 includes, for example, a look-up table 372 that stores a demapping table, seven selectors 373, 374, 375, 376, 377, 379, and 380. It can be realized as having a selection control signal generation circuit 378 for generating a control signal for controlling the selection operation by the selectors 379 and 380.
[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 signal generation circuit 378 as, for example, four-line boundary value data BDR0, BDR1, BDR2, and BDR3.
[0598]
The selector 373 selects one of the signal point arrangement information CSIG2 and CSIG6 based on the delayed reception value QR. Specifically, the selector 373 selects the signal point arrangement information CSIG2 when the delayed reception value QR indicates a positive value. The selector 373 supplies the selected data to the selector 380 as signal point arrangement information SSSS0.
[0599]
The selector 374 selects one of the signal point arrangement information CSIG3 and CSIG5 based on the delayed reception value QR. Specifically, the selector 374 selects the signal point arrangement information CSIG3 when the delayed reception value QR indicates a positive value. The selector 374 supplies the selected data to the selector 376 as signal point arrangement information SS0.
[0600]
The selector 375 selects one of the signal point arrangement information CSIG1 and CSIG7 based on the delayed reception value QR. Specifically, the selector 375 selects the signal point arrangement information CSIG1 when the delayed reception value QR indicates a positive value. The selector 375 supplies the selected data to the selector 376 as signal point arrangement information SS1.
[0601]
The selector 376 selects one of the signal point arrangement information SS0 supplied from the selector 374 and the signal point arrangement information SS1 supplied from the selector 375 based on the delay reception value IR. Specifically, the selector 376 selects the signal point arrangement information SS1 when the delayed reception value IR indicates a positive value. The selector 376 supplies the selected data to the selector 379 as signal point arrangement information SSS0.
[0602]
The selector 377 selects either one of the data having a predetermined value M and the signal point arrangement information CSIG4 based on the delayed reception value IR. Specifically, the selector 377 selects data having a predetermined value M when the delayed reception value IR indicates a positive value. The selector 377 supplies the selected data to the selector 379 as signal point arrangement information SSS1.
[0603]
The selection control signal generation circuit 378 is a control signal for controlling the selection operation by the selector 379 based on the delay reception value QR and the boundary value data BDR0, BDR1, BDR2, BDR3 supplied from the lookup table 372. In addition to generating SEL5, a control signal SEL6 for controlling the selection operation by the selector 380 is generated.
[0604]
The selector 379 selects one of the signal point arrangement information SSS0 and SSS1 based on the control signal SEL5 supplied from the selection control signal generation circuit 378. The selector 379 supplies the selected data to the selector 380 as signal point arrangement information SSSS1.
[0605]
The selector 380 selects one of the signal point arrangement information SSSS0 and SSSS1 based on the control signal SEL6 supplied from the selection control signal generation circuit 378. The selector 380 supplies the selected data to the selector 371 as received value hard decision information IRH.
[0606]
Such an I / Q demapping circuit 370 obtains received value hard decision information IRH when the encoding device 1 performs encoding by TTCM or SCTCM.
[0607]
Further, in the hard decision circuit 165, the selector 371 includes a predetermined bit group of the delay reception value DCR, the received value hard decision information BRH indicating the hard decision result in offset binary notation, and the I / Q demap circuit 370. Either one of the supplied received value hard decision information IRH is selected. Specifically, the selector 371 selects the received value hard decision information IRH when the received value format information CRTY indicates that the encoding apparatus 1 performs encoding by TTCM or SCTCM. To do. The selector 371 outputs the selected data as received value hard decision information RHD. This received value hard decision information RHD is output to the outside as it is as received value hard decision information SRH.
[0608]
Note that the hard decision circuit 165 does not perform the bit inversion processing for obtaining the received value hard decision information BRH as in the case of obtaining the decoded bit hard decision information BHD described above, but this is due to the data notation. Is. That is, the received value hard decision information BRH is obtained on the assumption of the delayed received value DRC in offset binary notation as described above. Therefore, the hard decision circuit 165 can make a hard decision on the delayed received value DRC by making a decision using a predetermined bit group of the delayed received value DRC, specifically, the most significant bit.
[0609]
Such a hard decision circuit 165 obtains decoded value hard decision information SDH by making a hard decision on logarithmic soft outputs SLM and BLM that are decoded values, and makes a hard decision on the delayed received value DRC to obtain received value hard decision information SRH. Ask. These decoded value hard decision information SDH and received value hard decision information SRH are output to the outside as decoded value hard decision information DHD and received value hard decision information RHD, respectively, and are monitored as necessary.
[0610]
When the soft-output decoding circuit 90 described above receives the soft-input decoded reception value TSR, the Iγ calculation circuit 156 and the Iγ distribution circuit 157 calculate the log likelihood Iγ each time the reception value is received, and calculate Iα. When all the received values are received after calculating the log likelihood Iα by the circuit 158, the log likelihood Iβ is calculated for each state at all times by the Iβ calculation circuit 159. Then, the element decoder 50 calculates the logarithmic soft output Iλ at each time using the logarithmic likelihoods Iα, Iβ and Iγ calculated by the soft output calculation circuit 161, and outputs the logarithmic soft output Iλ to the outside. Or supplied to the external information calculation circuit 163. Also, the element decoder 50 calculates the external information at each time by the external information calculation circuit 163. In this way, the element decoder 50 can perform soft output decoding using the Log-BCJR algorithm using the decoded reception value TSR and the external information or the interleave data TEXT. In particular, the soft output decoding circuit 90 can perform soft output decoding for an arbitrary code regardless of the code configuration of the element encoder in PCCC, SCCC, TTCM, or SCTCM.
[0611]
Various features relating to the soft output decoding circuit 90 will be further described in “5.” described later.
[0612]
2-3 Details of interleaver
Next, the interleaver 100 will be described in detail. Prior to the description of the specific configuration, the basic design concept of the interleaver 100 will be described.
[0613]
As will be described later, the interleaver 100 can perform an interleaving process and a deinterleaving process, and can delay an input received value. Therefore, the interleaver 100 includes a RAM for delaying the input received value and a RAM for interleaving the input data. As will be described later, these RAMs are actually shared, and are used by being switched according to a mode indicating a code configuration including the type of interleaving to be performed.
[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 interleaver 100 has. Here, it is assumed that the control circuit cannot simultaneously access even addresses or odd addresses by a write address used for writing data to the RAM and a read address used for reading data. In the interleaver 100, when the delay RAM is used to delay by an even length, for example, 0, 1, 2, 3, 4,..., DL-2, DL-1, 0, 1, Data is stored at each address in the RAM based on the write address such as 2,. In the interleaver 100, for example, each address in the RAM is based on read addresses such as 1, 2, 3, 4, 5,..., DL-1, 0, 1, 2, 3,. Data is read from. Further, the interleaver 100 realizes an odd-length delay by holding an output delayed by an even-length in a register or the like. Actually, the delay RAM is composed of a plurality of RAMs for upper addresses and lower addresses of the banks A and B, for example, as shown in FIG. Therefore, in the interleaver 100, for example, as shown in FIG. 48, it is necessary to appropriately convert the address generated by the control circuit and give it to each RAM. In FIG. 47, the most significant bit of the address is inverted in order to simplify the designation of the address when inputting / outputting a plurality of symbols, as will be described later.
[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 interleaver 100 can switch between the interleave process and the deinterleave process. Therefore, in the interleaver 100, when interleaving is performed, usually, for example, count up such as 0, 1, 2, 3,...,. Based on the sequential write address generated by counting down in this way, data is stored at each address in the RAM as the bank A for writing. In the interleaver 100, data is read from each address in the RAM as the read bank B based on the random read address. On the other hand, in the interleaver 100, when deinterleaving is performed, data is stored at each address in the RAM as the bank A for writing based on a random write address, contrary to the interleaving process. Based on the sequential read address, data is read from each address in the RAM as the read bank B. In the interleaver 100, for example, as shown in FIG. 50, the address is converted to an address used for each of the banks A and B based on a sequential write address and a random read address, and is given to each RAM.
[0616]
Next, input / output to / from the address storage circuit 110 as viewed from the interleaver 100 will be described.
[0617]
The address storage circuit 110 basically outputs read address data ADA0, ADA1, and ADA2, which are, for example, three systems of random address data based on the sequential address data IAA supplied from the interleaver 100. To do. As described above, when a plurality of systems of read address data ADA are provided from the address storage circuit 110 to the interleaver 100, the interleaver 100 can perform a plurality of types of interleaving with respect to data of up to three symbols. it can.
[0618]
For example, as shown in FIG. 51A, when the interleaver 100 performs random interleaving on the input data of one symbol, the three systems of read address data ADA0, ADA0, Of the ADA1 and ADA2, the read address data ADA0 is used for interleaving. In the following description, random interleaving is referred to as random interleaving.
[0619]
In addition, as shown in FIG. 5B, the interleaver 100 performs three systems of read address data ADA0, ADA1 from the address storage circuit 110 when performing random interleaving on the input data of two symbols. , ADA2 are interleaved using read address data ADA0, ADA1.
[0620]
Further, as shown in FIG. 5C, the interleaver 100 performs the interleaving from the address storage circuit 110 when individually interleaving the input data of two symbols based on different addresses. Of the read address data ADA0, ADA1 and ADA2, the read address data ADA0 and ADA1 are used for interleaving. In the following description, such interleaving is referred to as inline interleaving.
[0621]
Furthermore, as shown in FIG. 4D, the interleaver 100 holds combinations of bits for input data of two symbols, that is, based on the same address for each symbol. When interleaving is performed, among the three systems of read address data ADA0, ADA1, and ADA2 from the address storage circuit 110, interleave is performed using the read address data ADA0 and ADA1. In the following description, such interleaving is referred to as pair-wise interleaving.
[0622]
Further, as shown in FIG. 5E, the interleaver 100, when performing random interleaving on the input data of 3 symbols, reads out the three systems of read address data ADA0, ADA1 from the address storage circuit 110. , ADA2 are used for interleaving.
[0623]
Further, as shown in FIG. 5F, when the interleaver 100 performs inline interleaving on the input data of three symbols, the three systems of read address data ADA0 and ADA1 from the address storage circuit 110 are used. , ADA2 are used for interleaving.
[0624]
Furthermore, when the interleaver 100 performs pair-wise interleaving on the input data of three symbols as shown in FIG. 5G, the three systems of read address data ADA0, Interleaving is performed using all of ADA1 and ADA2.
[0625]
As described above, the interleaver 100 can perform a plurality of types of interleaving using the read address data ADA of a plurality of systems provided from the address storage circuit 110. Of course, the plurality of types of interleaving includes a plurality of types of deinterleaving that performs the reverse replacement of the interleaving. The interleaver 100 has a plurality of RAMs, and implements a plurality of types of interleaving by appropriately selecting and switching the RAM to be used according to the type of interleaving.
[0626]
A specific method of using the plurality of RAMs will be described later.
[0627]
Now, an interleaver 100 capable of performing such interleaving processing or deinterleaving processing is configured as shown in FIG. 52, for example. The interleaver 100 includes a control circuit 400 that performs various processes such as address generation, a delay address generation circuit 401 that generates a delay address, an odd-length delay compensation circuit 402 that compensates for an odd-length delay, and input address data Is converted to interleave address data, an interleave address conversion circuit 403, a delay address conversion circuit 404 that converts input address data into delay address data, and a storage circuit 407 to be described later.14072, 40716Address selection circuit 405 for selecting address data to be distributed to memory, and storage circuit 40714072, 40716An input data selection circuit 406 for selecting data to be distributed to the memory and, for example, 16 storage circuits 40714072, 40716And an output data selection circuit 408 for selecting data to be output.
[0628]
The control circuit 400 includes a storage circuit 407 described later.14072, 40716For controlling the writing and / or reading of data to and from the selector 120FiveWhen the interleave start position signal TIS supplied from is input, a write address and a read address used for interleaving or deinterleaving are generated. At this time, the control circuit 400 writes based on the interleave mode signal CDIN supplied from the outside, the interleave length information CINL supplied from the control circuit 60, and the operation mode information CBF indicating that the delay should be delayed by the interleave length. An address and a read address are generated. The control circuit 400 supplies write address data IWA that is generated sequential address data to the interleave address conversion circuit 403. The control circuit 400 supplies the generated sequential address data IAA to the address storage circuit 110 and also supplies it to the interleave address conversion circuit 403 as interleave length delayed read address data IRA.
[0629]
Further, as will be described later, the control circuit 400 inputs termination position information CNFT, termination period information CNFL, termination state information CNFD, puncture cycle information CNEL, and puncture pattern information CNEP supplied from the control circuit 60. Then, based on the interleave length information CINL, the interleaver non-output position information CNO and the delayed interleave start position signal CDS are generated, and the end time information CGT, the end state information CGS, and the erase position information CGE are generated. To do. After the elapse of time corresponding to the interleave length, the control circuit 400 converts the generated information into interleaver non-output position information INO, delayed interleave start position signal IDS, end time information IGT, and end state information IGS, respectively. As the erasure position information IGE, the selector 120 is synchronized with the head of the frame.TenTo supply. The control circuit 400 also supplies the generated interleaver non-output position information CNO to the address selection circuit 405.
[0630]
As will be described later, the write address data IWA, which is sequential address data generated by the control circuit 400, is used when the interleave mode signal CDIN instructs the interleaver 100 to perform interleave processing. The memory circuit 40714072, 40716If the interleave mode signal CDIN indicates that the interleaver 100 performs deinterleave processing, the memory circuit 407 is used.14072, 40716Address data used for reading data from the. Similarly, the sequential address data IAA generated by the control circuit 400 indicates that the interleave mode signal CDIN indicates that the interleaver 100 performs an interleave process, and the storage circuit 40714072, 40716This is for reading random address data used for reading data from the address storage circuit 110, but the interleave mode signal CDIN instructs the interleaver 100 to perform deinterleave processing. In this case, the memory circuit 40714072, 40716Random address data used for writing data to the address is read from the address storage circuit 110.
[0631]
In addition, when generating the write address and the read address, the control circuit 400 generates sequential address data by counting up by a counter (not shown). However, the control circuit 400 generates the counter for the write address and the read address. Although the counter for use will be described later, it is provided individually.
[0632]
The delay address generation circuit 401 generates delay address data based on the interleave length information CINL supplied from the control circuit 60. The delay address generation circuit 401 supplies the delay address conversion circuit 404 with the delay write address data DWA that is the generated write address data and the delay read address data DRA that is the read address data.
[0633]
The odd length delay compensation circuit 402 is provided to compensate for the odd length delay. That is, as described above, the interleaver 100 is configured by using two banks of RAM when performing the delay. Since the interleaver 100 switches between writing and reading of data for each time slot between the banks as will be described later, the RAM has a delay length, that is, a word number corresponding to half the time slot of the interleave length. By using two banks, data delay can be realized. However, in this case, the interleaver 100 has a delay length limited to an even length. Therefore, the odd-length delay compensation circuit 402 is provided to cope with the odd-length delay, and when performing even-length delay based on the interleave length information CINL supplied from the control circuit 60, data When only delay by RAM is performed for TDI and odd length delay is performed, a delay of -1 minute by RAM and a delay of one time slot by a register are performed for data TDI. The data TDI that is the data to be delayed is selected.
[0634]
Specifically, the odd-length delay compensation circuit 402 has six registers 410 as shown in FIG. 53, for example, when the data TDI is composed of six systems of data TDI0, TDI1, TDI2, TDI3, TDI4, and TDI5.14102410Three410Four410Five4106And six selectors 4111, 4112, 411Three, 411Four, 411Five, 4116It can implement | achieve as what has.
[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 data selection circuit 406 as data D0. This selector 4111It goes without saying that the interleaving length information CINL input to is actually the least significant bit of the bit string representing the interleaving length information CINL.
[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 data selection circuit 406 as data D1. This selector 4112It goes without saying that the interleaving length information CINL input to is actually the least significant bit of the bit string representing the interleaving length information CINL.
[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 data selection circuit 406 as data D2. This selector 411ThreeIt goes without saying that the interleaving length information CINL input to is actually the least significant bit of the bit string representing the interleaving length information CINL.
[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 data selection circuit 406 as data D3. This selector 411FourIt goes without saying that the interleaving length information CINL input to is actually the least significant bit of the bit string representing the interleaving length information CINL.
[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 data selection circuit 406 as data D4. This selector 411FiveIt goes without saying that the interleaving length information CINL input to is actually the least significant bit of the bit string representing the interleaving length information CINL.
[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 data selection circuit 406 as data D5. This selector 4116It goes without saying that the interleaving length information CINL input to is actually the least significant bit of the bit string representing the interleaving length information CINL.
[0647]
When the odd length delay compensation circuit 402 receives the data TDI, in the case of the even length delay, the data TDI is output without passing through the register, and in the case of the odd length delay, the data TDI is 1 by the register. Output only after holding the time slot.
[0648]
The interleave address conversion circuit 403 performs control based on the interleave mode signal CDIN supplied from the outside, the interleaver type information CINT supplied from the control circuit 60, and the operation mode information CBF indicating that the delay should be delayed by the interleave length. Of the write address data IWA and interleave length delayed read address data IRA that are sequential address data supplied from the circuit 400 and the read address data ADA that is random address data supplied from the address memory circuit 110 Address data is selected and converted to interleave address data. The interleave address conversion circuit 403 supplies, for example, six types of address data AA0, BA0, AA1, BA1, AA2, and BA2 obtained by the conversion to the address selection circuit 405. The interleave address conversion circuit 403 generates, for example, four systems of control signals IOBS, IOBP0, IOBP1, and IOBP2 for instructing a selection operation in the output data selection circuit 408 based on the input information. Is supplied to the output data selection circuit 408.
[0649]
The delay address conversion circuit 404 selects desired address data from the delay write address data DWA and the delay read address data DRA supplied from the delay address generation circuit 401, and converts them into delay address data. . The delay address conversion circuit 404 supplies the address selection circuit 405 with, for example, two systems of address data DAA and DBA obtained by the conversion. The delay address conversion circuit 404 generates, for example, two systems of control signals DOBS and DOBP for instructing a selection operation in the output data selection circuit 408 based on the input information, and selects these control signals as output data selection. Supply to circuit 408.
[0650]
The address selection circuit 405 generates address data supplied from the interleave address conversion circuit 403 based on the interleaver type information CINT supplied from the control circuit 60 and the interleaver non-output position information CNO supplied from the control circuit 400. Among the AA0, BA0, AA1, BA1, AA2, and BA2 and the address data DAA and DBA supplied from the delay address conversion circuit 404, the storage circuit 40714072, 40716Address data to be distributed to is selected. The address selection circuit 405 stores the selected address data AR00, AR01,.14072, 40716To supply.
[0651]
In addition to the interleaver type information CINT and the interleaver non-output position information CNO, the address selection circuit 405 is generated by the control circuit 400 and inputted via the interleave address conversion circuit 405, although not shown. A storage circuit 407 for interleaving or deinterleaving14072, 40716A write permission signal for the signal, a signal indicating a bank for writing, and a control signal generated by the delay address conversion circuit 404, and a storage circuit 407 for performing a delay14072, 40716A write permission signal and a signal indicating a write bank are input. Based on these pieces of information, the address selection circuit 405 stores the storage circuit 407.14072, 40716Write permission signal XWE for the memory circuit 40714072, 40716A clock inhibit signal IH for inhibiting the clock signal to the memory circuit 407;14072, 40716And a partial write control signal PW for generating so-called partial write. The address selection circuit 405 receives the write enable signal XWE, the clock block signal IH, and the partial write control signal PW as the storage circuit 407.14072, 40716To supply.
[0652]
The input data selection circuit 406 includes a selector 120.FourFor example, three types of data TII0, TII1, and TII2 supplied from the input are input as data I0, I1, and I2, and data D0, D1, D2, D3, D4, and D5 supplied from the odd-length delay compensation circuit 402 are input. Entered. Based on the interleave mode signal CDIN supplied from the outside, the interleaver type information CINT and the interleaver input / output replacement information CIPT supplied from the control circuit 60, the input data selection circuit 406 receives data I0, I1, I2, and so on. Of D0, D1, D2, D3, D4 and D5, the memory circuit 40714072, 40716Select the data to distribute to. In particular, the input data selection circuit 406 receives data I0, I1, and I2 when interleaving or deinterleaving the input data, and the storage circuit 407 among these data I0, I1, and I2 is input.14072, 40716Select the data to distribute to. The input data selection circuit 406 inputs delay data D0, D1, D2, D3, D4, and D5 when the input data is delayed, and these data D0, D1, D2, D3, and D4. , D5, the memory circuit 40714072, 40716Select the data to distribute to. The input data selection circuit 406 stores the selected data IR00, IR01,.14072, 40716To supply.
[0653]
As will be described later, the input data selection circuit 406 has a function of interchanging between symbols when interleaving a plurality of symbols. That is, the input data selection circuit 406 has a function of changing the order of the symbols for the input data I0, I1, and I2 based on the interleaver input / output replacement information CIPT.
[0654]
Memory circuit 40714072, 40716Each has a plurality of selectors in addition to a RAM having a partial write function. Memory circuit 40714072, 40716Are the data IR00, IR01,..., Supplied from the input data selection circuit 406 to the addresses specified by the address data AR00, AR01,..., AR15 supplied from the address selection circuit 405, respectively. Write and store IR15. Then, the memory circuit 40714072, 40716Read out the stored data from the addresses specified by the address data AR00, AR01,..., AR15 supplied from the address selection circuit 405, and output them as data OR00, OR01,. The data is supplied to the data selection circuit 408. At this time, the memory circuit 40714072, 40716Starts writing data based on the write permission signal XWE supplied from the address selection circuit 405. In addition, the memory circuit 40714072, 40716Can also stop any operation including writing and / or reading, respectively, based on the clock block signal IH.
[0655]
Further, the memory circuit 40714072, 40716Can write data by the partial write function based on the partial write control signal PW. That is, in a normal RAM, when a certain address is designated, a memory cell for the number of bits corresponding to this address is selected, and information is written to all these memory cells at once. Is done. On the other hand, in a partial write RAM, the write operation does not write information to all selected memory cells at once, but writes only to a memory cell of an arbitrary bit among memory cells selected by an address. Is done. Memory circuit 40714072, 40716Each has a RAM having such a partial write function, and information can be written to a part of a designated address based on the partial write control signal PW.
[0656]
The interleaver 100 includes these storage circuits 407.14072, 40716By controlling the writing and / or reading of data to / from, interleaving processing and deinterleaving processing, and delay processing of received values can be realized.
[0657]
Specifically, the memory circuit 40714072, 40716As shown in FIG. 54, for example, each can be realized as having an inverter 420, five selectors 421, 422, 423, 425, 426, and a RAM 424 with a partial write function. In the figure, the memory circuit 407 is generically named. In the same figure, the address data AR00, AR01,..., AR15 supplied from the address selection circuit 405 are collectively referred to as address data AR, and the data IR00, IR01,. .., IR15 are collectively referred to as data IR, and data OR00, OR01,..., OR15 supplied to the output data selection circuit 408 are collectively referred to as data OR.
[0658]
The inverter 420 receives the most significant bit of the address data AR and inverts this most significant bit. The inverter 420 supplies the inverted bit IAR obtained by inversion to the selector 421.
[0659]
Based on the partial write control signal PW supplied from the address selection circuit 405, the selector 421 selects either the inverted bit IAR supplied from the inverter 420 or the bit whose value is “0”. Output as 1-bit data HPW. Specifically, the selector 421 selects the inverted bit IAR when the partial write control signal PW instructs to write data by the partial write function. The data HPW selected by the selector 421 is converted into, for example, 8 bits in parallel and supplied to the RAM 424 as data VIH.
[0660]
Based on the partial write control signal PW supplied from the address selection circuit 405, the selector 422 selects one of the most significant bit of the address data AR and the bit whose value is “0”. Output as bit data LPW. Specifically, the selector 422 selects the most significant bit of the address data AR when the partial write control signal PW instructs to write data by the partial write function. The data LPW selected by the selector 422 is converted into, for example, 8 bits in parallel and supplied to the RAM 424 as data VIL.
[0661]
The selector 423 receives the data IR divided into upper bits and lower bits. For example, when the data IR is composed of 16 bits, the selector 423 receives the upper 8 bits of data IR [15: 8] and the lower 8 bits of data IR [7: 0]. The selector 423 selects either the upper bit or the lower bit of the data IR based on the partial write control signal PW supplied from the address selection circuit 405. Specifically, the selector 423 selects the lower bit of the data IR when the partial write control signal PW is an instruction to write data by the partial write function. The data IR1 selected by the selector 423 is bundled with the lower-order bit data IR0 of the data IR and supplied to the RAM 424 as data I (= {IR1, IR0}).
[0662]
Briefly speaking, the RAM 424 performs writing of data IR and reading of data OR based on the address data AR. However, since the RAM 424 has a partial write function as described above, the address data AR is simply used. The data IR is input and the data OR is not output.
[0663]
The RAM 424 is supplied with the write permission signal XWE and the clock inhibition signal IH supplied from the address selection circuit 405. When the write permission signal XWE is input to the RAM 424, data can be written. In the RAM 424, data I (= {IR1, IR0}) is written based on the address data IA, which is data excluding the most significant bit of the address data AR, and the data VIH and VIL. Further, from the RAM 424, data OH and OL are read based on the address data IA and the data VIH and VIL. Both of these data OH and OL are supplied to selectors 425 and 426. In addition, when the clock inhibition signal IH is input, the RAM 424 stops all operations including writing and / or reading.
[0664]
Details of each data input / output to / from the RAM 424 will be described later.
[0665]
The selector 425 selects one of the data OH and OL supplied from the RAM 424 based on the data LPD obtained by delaying the data LPW supplied from the selector 422, and outputs the data SOH. . Specifically, the selector 425 selects the data OH when the data LPD is “0”, and selects the data OL when the data LPD is “1”. That is, the selector 425 is provided to determine which of the upper bit data or the lower bit data is to be output in the address direction in consideration of data writing and reading by the partial write function. .
[0666]
The selector 426 selects one of the data OH and OL supplied from the RAM 424 based on the data LPD obtained by delaying the data LPW supplied from the selector 422, and outputs the data SOL. . Specifically, the selector 426 selects the data OL when the data LPD is “0”, and selects the data OH when the data LPD is “1”. That is, the selector 426 determines whether to output upper bit data or lower bit data in the address direction in consideration of data writing and reading by the partial write function, similarly to the selector 425. Is provided.
[0667]
The data SOH selected by the selector 425 and the data SOL selected by the selector 426 are supplied to the output data selection circuit 408 as data OR (= {SOH, SOL}).
[0668]
Such a memory circuit 40714072, 40716, Write data IR00, IR01,..., IR15 and read data OR00, OR01,..., OR15 based on the address data AR00, AR01,.
[0669]
Note that the memory circuit 40714072, 40716As described above, each can write data by the partial write function, which will be described later.
[0670]
The output data selection circuit 408 includes an interleave mode signal CDIN supplied from the outside, interleaver type information CINT and interleaver input / output replacement information CIPT supplied from the control circuit 60, and control supplied from the interleave address conversion circuit 403. Based on the signals IOBS, IOBP0, IOBP1, and IOBP2 and the control signals DOBS and DOBP supplied from the delay address conversion circuit 404, the memory circuit 407 is provided.14072, 40716Of the data OR00, OR01,..., OR15 supplied from the above, the data to be output is selected. When interleaving or deinterleaving is performed on the input data, the output data selection circuit 408 selects the selected data as, for example, three systems of interleaver output data IIO0, IIO1, and IIO2, respectively.7To supply. In addition, when the input data is delayed, the output data selection circuit 408 selects the selected data as, for example, six systems of interleave length delay received values IDO0, IDO1, IDO2, IDO3, IDO4, IDO5, respectively. 1206To supply.
[0671]
As will be described later, the output data selection circuit 408 has a function of performing mutual replacement between symbols when deinterleaving is performed on a plurality of symbols. That is, the output data selection circuit 408 has a function of changing the order of the symbols for the output interleaver output data IIO0, IIO1, and IIO2 based on the interleaver input / output replacement information CIPT.
[0672]
When performing the interleaving process, the interleaver 100 described above uses the write address data IWA, which is the sequential address data generated by the control circuit 400, by the address selection circuit 405 and the appropriate storage circuit 407.14072, 40716And the input data selection circuit 406 transfers the data I0, I1, and I2 to an appropriate storage circuit 407.14072, 40716Addresses are distributed to these storage circuits 407.14072, 40716Write data to. On the other hand, the interleaver 100 uses the read address data ADA, which is random address data read from the address storage circuit 110 based on the sequential address data IAA generated by the control circuit 400, by the address selection circuit 405. A suitable memory circuit 40714072, 40716The address is distributed to the memory circuit 40714072, 40716Read data stored in. Then, the interleaver 100 uses the output data selection circuit 408 to generate an appropriate storage circuit 407.14072, 40716Is selected and output as interleaver output data IIO0, IIO1, and IIO2. By doing in this way, the interleaver 100 can perform an interleaving process.
[0673]
Further, when performing the interleaving process, the interleaver 100 reads out address data ADA that is random address data read from the address storage circuit 110 based on the sequential address data IAA generated by the control circuit 400. By using the address selection circuit 405, an appropriate storage circuit 407 is used.14072, 40716And the input data selection circuit 406 transfers the data I0, I1, and I2 to an appropriate storage circuit 407.14072, 40716Addresses are distributed to these storage circuits 407.14072, 40716Write data to. On the other hand, the interleaver 100 uses the write address data IWA, which is sequential address data generated by the control circuit 400, by the address selection circuit 405 to perform an appropriate storage circuit 407.14072, 40716The address is distributed to the memory circuit 40714072, 40716Read data stored in. Then, the interleaver 100 uses the output data selection circuit 408 to generate an appropriate storage circuit 407.14072, 40716Is selected and output as interleaver output data IIO0, IIO1, and IIO2. By doing in this way, the interleaver 100 can perform a deinterleaving process.
[0674]
Further, when delaying the input data, the interleaver 100 uses the write address data IWA generated by the control circuit 400 to cause the address selection circuit 405 to perform an appropriate storage circuit 407.14072, 40716And the input data selection circuit 406 stores the data D0, D1, D2, D3, D4, and D5 in an appropriate storage circuit 407.14072, 40716Addresses are distributed to these storage circuits 407.14072, 40716Write data to. On the other hand, the interleaver 100 uses the interleave length delayed read address data IRA, which is sequential address data generated by the control circuit 400, by the address selection circuit 405, and an appropriate storage circuit 407.14072, 40716The address is distributed to the memory circuit 40714072, 40716Read data stored in. Then, the interleaver 100 uses the output data selection circuit 408 to generate an appropriate storage circuit 407.14072, 40716Is output as interleave length delay received values IDO0, IDO1, IDO2, IDO3, IDO4, and IDO5. By doing so, the interleaver 100 can delay the input data.
[0675]
Next, a specific example of a RAM usage method in the interleaver 100 will be described.
[0676]
The element decoder 50 is a storage circuit 407 in the interleaver 100 as a data RAM.14072, 40716Each of which includes a plurality of RAMs included in the address storage circuit 110 as address RAMs. Here, the memory circuit 40714072, 4071616 RAMs have a storage capacity of 16 bits × 4096 words, and the address storage circuit 110 has 6 RAMs having a storage capacity of 14 bits × 4096 words. In addition, the memory circuit 40714072, 40716, And D16 are referred to as RAMD01, D02,..., D16, respectively, and the RAM in the address storage circuit 110 is referred to as RAMA.
[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 encoding apparatus 1 performs PCCC with an encoding rate of “1/6 or more” and the capacity of input data is “16 kilowords or less”.
[0678]
In this case, the interleaver 100 needs to interleave 1 symbol data and delay 6 symbol data. Therefore, the interleaver 100 includes, for example, 12 RAMD01, D02, D03, D04, D05, D06, D07, among the 16 RAMD01, D02,..., D16, as shown in FIG. D08, D09, D10, D11, and D12 are used for delay, and the remaining four RAMs D13, D14, D15, and D16 are used for interleaving, as shown in FIG. As the address RAM, any four RAMA out of the six RAMAs may be used as shown in FIG. Therefore, the interleaver 100 and the address memory circuit 110 do not use two RAMAs as shown in FIG.
[0679]
More specifically, the interleaver 100 stores the RAMs D01, D02, D05, D06, D09, D10, D13, and D14 in the above-described bank A (A) as shown in FIGS.0, A1), RAMD03, D04, D07, D08, D11, D12, D15, and D16 are stored in the bank B (B0, B1). That is, when the interleaver 100 is writing data to the RAMs D01, D02, D05, D06, D09, D10, D13, and D14, the data from the RAMs D03, D04, D07, D08, D11, D12, D15, and D16. When data is read and data is written to RAMD03, D04, D07, D08, D11, D12, D15, D16, data is read from RAMD01, D02, D05, D06, D09, D10, D13, D14. .
[0680]
Based on the address data AR00 and AR01 supplied from the address selection circuit 405, delay data D0 and D1 are supplied and written as data IR00 and IR01 from the input data selection circuit 406 to the RAMD01 and D02, respectively. . At this time, 0 to 4 kilowords of data D0 and D1 are written to RAMD01, and 4 to 8 kilowords of data are written to RAMD02. The RAM D05 and D06 are supplied with delay data D2 and D3 as data IR04 and IR05 from the input data selection circuit 406 based on the address data AR04 and AR05 supplied from the address selection circuit 405, respectively. Written. At this time, data of 0 to 4 kilowords of data D2 and D3 is written to RAMD05, and data of 4 to 8 kilowords is written to RAMD06. Further, delay data D4 and D5 are supplied as data IR08 and IR09 from the input data selection circuit 406 to the RAMD09 and D10, respectively, based on the address data AR08 and AR09 supplied from the address selection circuit 405. Written. At this time, 0 to 4 kilowords of data D4 and D5 are written to RAMD09, and 4 to 8 kilowords of data are written to RAMD10.
[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 data selection circuit 408. Supplied. Note that data reading is performed based on the address data supplied from the address selection circuit 405, as in the case of data writing.
[0682]
Similarly, delay data D0 and D1 are supplied as data IR02 and IR03 from the input data selection circuit 406 to the RAMD03 and D04, respectively, based on the address data AR02 and AR03 supplied from the address selection circuit 405. Written. At this time, 0 to 4 kilowords of data D0 and D1 are written in RAMD03, and 4 to 8 kilowords of data are written in RAMD04. The RAM D07 and D08 are supplied with data D2 and D3 for delay as data IR06 and IR07 from the input data selection circuit 406 based on the address data AR06 and AR07 supplied from the address selection circuit 405, respectively. Written. At this time, data of 0 to 4 kilowords of data D2 and D3 is written to RAMD07, and data of 4 to 8 kilowords is written to RAMD08. Further, delay data D4 and D5 are supplied from the input data selection circuit 406 as data IR10 and IR11 based on the address data AR10 and AR11 supplied from the address selection circuit 405, respectively, to the RAMD11 and D12. Written. At this time, 0 to 4 kilowords of data D4 and D5 are written to the RAMD11, and 4 to 8 kilowords of data are written to the RAMD12.
[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 data selection circuit 408. Supplied. Note that data reading is performed based on the address data supplied from the address selection circuit 405, as in the case of data writing.
[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 address selection circuit 405, the interleave data I0 is supplied and written as data IR12 and IR13 from the input data selection circuit 406 to the RAMD13 and D14, respectively. At this time, data of 0 to 8 kilowords of the data I0 is written to the RAMD13, and data of 8 to 16 kilowords is written to the RAMD14.
[0686]
At the same time, the stored data is read from the RAMD 15 and D 16 as data OR 14 and OR 15 and supplied to the output data selection circuit 408. Note that data reading is performed based on the address data supplied from the address selection circuit 405, as in the case of data writing.
[0687]
Similarly, interleave data I0 is supplied to and written from the input data selection circuit 406 as data IR15 and IR16 based on the address data AR14 and AR15 supplied from the address selection circuit 405, respectively, to the RAMD15 and D16. It is. At this time, data of 0 to 8 kilowords of the data I0 is written to the RAMD15, and data of 8 to 16 kilowords is written to the RAMD16.
[0688]
At the same time, the stored data is read from the RAMD 13 and D 14 as data OR 12 and OR 13 and supplied to the output data selection circuit 408. Note that data reading is performed based on the address data supplied from the address selection circuit 405, as in the case of data writing.
[0689]
By doing so, the interleaver 100 performs one-symbol input data in which the coding apparatus 1 performs PCCC with a coding rate of “1/6 or more” and the data capacity is “16 kilowords or less”. Can be randomly interleaved and delayed.
[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 encoding apparatus 1 performs SCCC with an encoding rate of “1/3 or more” and the capacity of input data is “8 kilowords or less”.
[0691]
In this case, the interleaver 100 needs to interleave 2-symbol data and delay 6-symbol data. Therefore, the interleaver 100 delays six RAMD01, D02, D03, D04, D05, D07 out of 16 RAMD01, D02,..., D16 as shown in FIG. In addition, as shown in FIG. 5B, eight RAMs D09, D10, D11, D12, D13, D14, D15, and D16 are used for interleaving. As the address RAM, any four RAMA out of the six RAMAs may be used as shown in FIG. Therefore, the interleaver 100 and the address storage circuit 110 do not use the two RAMs D06 and D08 and the two RAMs A as shown in FIG.
[0692]
More specifically, the interleaver 100, as shown in FIGS. 6A and 6B, stores the RAMs D01, D02, D05, D09, D10, D13, and D14 in the bank A (A0), RAMD03, D04, D07, D11, D12, D15, and D16 are stored in the bank B (B0). That is, when the interleaver 100 writes data to the RAMs D01, D02, D05, D09, D10, D13, and D14, it reads the data from the RAMs D03, D04, D07, D11, D12, D15, and D16. When data is written to the RAMs D03, D04, D07, D11, D12, D15, and D16, the data is read from the RAMs D01, D02, D05, D09, D10, D13, and D14.
[0693]
Based on the address data AR00 supplied from the address selection circuit 405, delay data D0 and D1 are supplied from the input data selection circuit 406 as data IR00 and written to the RAM D01. At this time, data D0 and D1 for 0 to 4 kilowords are written in the RAMD01. In addition, based on the address data AR04 supplied from the address selection circuit 405, delay data D2 and D3 are supplied to the RAMD05 as data IR04 from the input data selection circuit 406 and written therein. At this time, data D2 and D3 for 0 to 4 kilowords are written in the RAMD05. Further, based on the address data AR01 supplied from the address selection circuit 405, delay data D4 and D5 are supplied and written as data IR01 from the input data selection circuit 406 to the RAM D02. At this time, data D4 and D5 for 0 to 4 kilowords are written in the RAM D02.
[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 data selection circuit 408. Note that data reading is performed based on the address data supplied from the address selection circuit 405, as in the case of data writing.
[0695]
Similarly, delay data D0 and D1 are supplied and written as data IR02 from the input data selection circuit 406 based on the address data AR02 supplied from the address selection circuit 405 to the RAMD03. At this time, data D0 and D1 for 0 to 4 kilowords are written in the RAMD03. In addition, delay data D2 and D3 are supplied to and written from the input data selection circuit 406 as data IR06 based on the address data AR06 supplied from the address selection circuit 405. At this time, data D2 and D3 for 0 to 4 kilowords are written in the RAMD07. Further, based on the address data AR03 supplied from the address selection circuit 405, delay data D4 and D5 are supplied and written as data IR03 from the input data selection circuit 406 to the RAMD04. At this time, data D4 and D5 for 0 to 4 kilowords are written in the RAMD04.
[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 data selection circuit 408. Note that data reading is performed based on the address data supplied from the address selection circuit 405, as in the case of data writing.
[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 address selection circuit 405, the interleave data I0 is supplied from the input data selection circuit 406 as data IR12 and written to the RAMD13. At this time, 0 to 8 kilowords of data I0 is written in the RAMD13. Similarly to the RAMD13, the interleave data I0 is supplied from the input data selection circuit 406 as the data IR13 and written to the RAMD14 based on the address data AR13 supplied from the address selection circuit 405. At this time, 0 to 8 kilowords of data I0 is written into the RAMD14. Further, interleaved data I1 is supplied to and written from the input data selection circuit 406 as data IR08 based on the address data AR08 supplied from the address selection circuit 405. At this time, data I1 of 0 to 8 kilowords is written in the RAMD09. Similarly to RAMD09, interleaved data I1 is supplied and written as data IR09 from input data selection circuit 406 to RAMD10 based on address data AR09 supplied from address selection circuit 405. At this time, data I1 of 0 to 8 kilowords is written into the RAMD10.
[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 data selection circuit 408 as symbol data of one system out of the two symbols. The The stored data is read from the RAMs D12 and D16 as data OR11 and OR15, respectively, and is supplied to the output data selection circuit 408 as the other one-symbol data of the two symbols. The Note that data reading is performed based on the address data supplied from the address selection circuit 405, as in the case of data writing.
[0700]
Similarly, interleaved data I0 is supplied to and written from the input data selection circuit 406 as data IR14 based on the address data AR14 supplied from the address selection circuit 405. At this time, 0 to 8 kilowords of data I0 is written into the RAMD15. Similarly to the RAMD15, the interleave data I0 is supplied from the input data selection circuit 406 as the data IR15 and written to the RAMD16 based on the address data AR15 supplied from the address selection circuit 405. At this time, 0 to 8 kilowords of data I0 is written into the RAMD16. Further, the interleave data I1 is supplied from the input data selection circuit 406 as the data IR10 and written to the RAMD11 based on the address data AR10 supplied from the address selection circuit 405. At this time, data I1 for 0 to 8 kilowords is written in the RAMD11. Similarly to the RAMD11, the interleave data I1 is supplied from the input data selection circuit 406 as the data IR11 and written to the RAMD12 based on the address data AR11 supplied from the address selection circuit 405. At this time, data I1 of 0 to 8 kilowords is written into the RAMD12.
[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 data selection circuit 408 as symbol data of one system out of the two symbols. The Also, the stored data is read from the RAMD10 and D14 as data OR09 and OR13, respectively, and is supplied to the output data selection circuit 408 as the other one-symbol data of the two symbols. The Note that data reading is performed based on the address data supplied from the address selection circuit 405, as in the case of data writing.
[0702]
By doing this, the interleaver 100 performs SCCC with a coding rate of “1/3 or higher” by the encoding device 1, and input data of two symbols whose data capacity is “8 kilowords or lower”. Can be randomly interleaved and delayed.
[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 encoding apparatus 1 performs punctured SCCC and the capacity of input data is “12 kilowords or less”.
[0704]
In this case, the interleaver 100 needs to interleave 2-symbol data and to delay 4-symbol data. Therefore, the interleaver 100 includes, for example, eight RAMD01, D02, D03, D04, D05, D06, D07, among the 16 RAMD01, D02,..., D16, as shown in FIG. D08 is used for delay, and as shown in FIG. 8B, eight RAMs D09, D10, D11, D12, D13, D14, D15, and D16 are used for interleaving. As the address RAM, all six RAMAs are used as shown in FIG.
[0705]
More specifically, the interleaver 100 stores the RAMs D01, D02, D05, D06, D09, D10, D13, and D14 in the above-described bank A (A) as shown in FIGS.0, A1), RAMD03, D04, D07, D08, D11, D12, D15, and D16 are stored in the bank B (B0, B1). That is, when the interleaver 100 is writing data to the RAMs D01, D02, D05, D06, D09, D10, D13, and D14, the data from the RAMs D03, D04, D07, D08, D11, D12, D15, and D16. When data is read and data is written to RAMD03, D04, D07, D08, D11, D12, D15, D16, data is read from RAMD01, D02, D05, D06, D09, D10, D13, D14. .
[0706]
Based on the address data AR00 and AR01 supplied from the address selection circuit 405, delay data D0 and D1 are supplied and written as data IR00 and IR01 from the input data selection circuit 406 to the RAMD01 and D02, respectively. . At this time, the RAM D02 stores the data D0 and D1 only in the half storage area in the word direction and does not store the data in the remaining storage areas, as indicated by the hatched portion in FIG. . That is, data of 0 to 4 kilowords of data D0 and D1 is written to RAMD01, and data of 4 to 6 kilowords is written to RAMD02. The RAM D05 and D06 are supplied with delay data D2 and D3 as data IR04 and IR05 from the input data selection circuit 406 based on the address data AR04 and AR05 supplied from the address selection circuit 405, respectively. Written. At this time, the RAM D06 stores the data D2 and D3 only in the half storage area in the word direction and the data in the remaining storage areas, as indicated by the hatched portion in FIG. There is no memory. That is, 0 to 4 kilowords of data D2 and D3 are written to RAMD05, and 4 to 6 kilowords of data are written to RAMD06.
[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 data selection circuit 408. At this time, each of RAMD04 and D08 stores data only in a half storage area in the word direction, as indicated by the hatched portion in FIG. 5A, and the remaining storage areas store data. Not. Note that data reading is performed based on the address data supplied from the address selection circuit 405, as in the case of data writing.
[0708]
Similarly, delay data D0 and D1 are supplied as data IR02 and IR03 from the input data selection circuit 406 to the RAMD03 and D04, respectively, based on the address data AR02 and AR03 supplied from the address selection circuit 405. Written. At this time, the RAM D04 stores the data D0 and D1 only in the half storage area in the word direction, and does not store the data in the remaining storage areas, as indicated by the hatched portion in FIG. . That is, 0 to 4 kilowords of data D0 and D1 are written to RAMD03, and 4 to 6 kilowords of data are written to RAMD04. The RAM D07 and D08 are supplied with data D2 and D3 for delay as data IR06 and IR07 from the input data selection circuit 406 based on the address data AR06 and AR07 supplied from the address selection circuit 405, respectively. Written. At this time, the RAM D08 stores the data D2 and D3 only in the half storage area in the word direction and the data in the remaining storage areas, as indicated by the hatched portion in FIG. There is no memory. That is, 0 to 4 kilowords of data D2 and D3 are written in RAMD07, and 4 to 6 kilowords of data are written in RAMD08.
[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 data selection circuit 408. At this time, the RAMD02 and D06 store data only in half the storage area in the word direction, as shown by the hatched portion in FIG. 5A, and the remaining storage areas store the data. Not. Note that data reading is performed based on the address data supplied from the address selection circuit 405, as in the case of data writing.
[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 address selection circuit 405, the interleave data I0 is supplied and written as data IR12 and IR13 from the input data selection circuit 406 to the RAMD13 and D14, respectively. At this time, the RAMD 14 stores the data I0 only in the half storage area in the word direction and does not store the data in the remaining storage areas, as indicated by the hatched portion in FIG. That is, data of 0 to 8 kilowords of data I0 is written to RAMD13, and data of 8 to 12 kilowords is written to RAMD14. In addition, interleave data I1 is supplied to and written from the input data selection circuit 406 as data IR08 and IR09 based on the address data AR08 and AR09 supplied from the address selection circuit 405, respectively, to the RAMD09 and D10. . At this time, the RAMD 10 stores the data I1 only in the half storage area in the word direction, and stores the data in the remaining storage areas, as indicated by the hatched portion in FIG. There is nothing. That is, 0 to 8 kilowords of data I1 is written to RAMD09, and 8 to 12 kilowords of data is written to RAMD10.
[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 data selection circuit 408 as symbol data of one system out of the two symbols. The At this time, the RAMD 16 stores data only in the half storage area in the word direction as shown by the hatched portion in FIG. 5B, and no data is stored in the remaining storage areas. The stored data is read out from the RAMs D11 and D12 as data OR10 and OR11, respectively, and is supplied to the output data selection circuit 408 as the other one-symbol data of the two symbols. The At this time, as indicated by the hatched portion in FIG. 5B, the RAMD 12 stores data only in the half storage area in the word direction, as in the RAMD 16, and stores the data in the remaining storage areas. It has not been. Note that data reading is performed based on the address data supplied from the address selection circuit 405, as in the case of data writing.
[0713]
Similarly, interleave data I0 is supplied to and written from the input data selection circuit 406 as data IR14 and IR15 based on the address data AR14 and AR15 supplied from the address selection circuit 405, respectively, to the RAMD15 and D16. It is. At this time, the RAMD 16 stores the data I0 only in the half storage area in the word direction and does not store the data in the remaining storage areas, as indicated by the hatched portion in FIG. That is, data of 0 to 8 kilowords of data I0 is written to RAMD15, and data of 8 to 12 kilowords is written to RAMD16. Further, interleave data I1 is supplied and written from the input data selection circuit 406 as data IR10 and IR11 based on the address data AR10 and AR11 supplied from the address selection circuit 405, respectively, to the RAMD11 and D12. . At this time, the RAMD 12 stores the data I1 only in the half storage area in the word direction, and stores the data in the remaining storage areas, as indicated by the hatched portion in FIG. There is nothing. That is, data of 0 to 8 kilowords of the data I1 is written to the RAMD11, and data of 8 to 12 kilowords is written to the RAMD12.
[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 data selection circuit 408 as symbol data of one system out of the two symbols. The At this time, the RAMD 14 stores data only in the half storage area in the word direction as shown by the hatched portion in FIG. 5B, and no data is stored in the remaining storage areas. Also, the stored data is read from the RAMD09 and D10 as data OR08 and OR09, respectively, and is supplied to the output data selection circuit 408 as symbol data of the other one of the two symbols. The At this time, the RAMD 10 stores data only in a half of the storage area in the word direction, and the remaining storage areas store data as indicated by the hatched portion in FIG. It has not been. Note that data reading is performed based on the address data supplied from the address selection circuit 405, as in the case of data writing.
[0715]
By doing so, the interleaver 100 performs punctured SCCC by the encoding device 1 and performs inline interleaving and delay for input data of two symbols whose data capacity is “12 kilowords or less”. Can be applied.
[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 encoding apparatus 1 performs SCCC.
[0717]
In this case, the interleaver 100 needs to interleave 2-symbol data and to delay 4-symbol data. Therefore, the interleaver 100 includes, for example, eight RAMD01, D02, D03, D04, D05, D06, D07D08 among the 16 RAMD01, D02,..., D16 as shown in FIG. In addition to being used for delay, as shown in FIG. 5B, eight RAMs D09, D10, D11, D12, D13, D14, D15, and D16 are used for interleaving. As the address RAM, any four RAMA out of the six RAMAs may be used as shown in FIG. Therefore, the interleaver 100 and the address memory circuit 110 do not use two RAMAs as shown in FIG.
[0718]
More specifically, the interleaver 100 stores the RAMs D01, D02, D05, D06, D09, D10, D13, and D14 in the above-described bank A (A) as shown in FIGS.0, A1), RAMD03, D04, D07, D08, D11, D12, D15, and D16 are stored in the bank B (B0, B1). That is, when the interleaver 100 is writing data to the RAMs D01, D02, D05, D06, D09, D10, D13, and D14, the data from the RAMs D03, D04, D07, D08, D11, D12, D15, and D16. When data is read and data is written to RAMD03, D04, D07, D08, D11, D12, D15, D16, data is read from RAMD01, D02, D05, D06, D09, D10, D13, D14. . At this time, RAMD13, D14 and RAMD09, D10 operate based on the same address, and RAMD15, D16 and RAMD11, D12 operate based on the same address.
[0719]
Based on the address data AR00 and AR01 supplied from the address selection circuit 405, delay data D0 and D1 are supplied and written as data IR00 and IR01 from the input data selection circuit 406 to the RAMD01 and D02, respectively. . At this time, 0 to 4 kilowords of data D0 and D1 are written to RAMD01, and 4 to 8 kilowords of data are written to RAMD02. The RAM D05 and D06 are supplied with delay data D2 and D3 as data IR04 and IR05 from the input data selection circuit 406 based on the address data AR04 and AR05 supplied from the address selection circuit 405, respectively. Written. At this time, data of 0 to 4 kilowords of data D2 and D3 is written to RAMD05, and data of 4 to 8 kilowords is written to RAMD06.
[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 data selection circuit 408. Note that data reading is performed based on the address data supplied from the address selection circuit 405, as in the case of data writing.
[0721]
Similarly, delay data D0 and D1 are supplied as data IR02 and IR03 from the input data selection circuit 406 to the RAMD03 and D04, respectively, based on the address data AR02 and AR03 supplied from the address selection circuit 405. Written. At this time, 0 to 4 kilowords of data D0 and D1 are written in RAMD03, and 4 to 8 kilowords of data are written in RAMD04. The RAM D07 and D08 are supplied with data D2 and D3 for delay as data IR06 and IR07 from the input data selection circuit 406 based on the address data AR06 and AR07 supplied from the address selection circuit 405, respectively. Written. At this time, data of 0 to 4 kilowords of data D2 and D3 is written to RAMD07, and data of 4 to 8 kilowords is written to RAMD08.
[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 data selection circuit 408. Note that data reading is performed based on the address data supplied from the address selection circuit 405, as in the case of data writing.
[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 address selection circuit 405, the interleave data I0 is supplied and written as data IR12 and IR13 from the input data selection circuit 406 to the RAMD13 and D14, respectively. At this time, data of 0 to 8 kilowords of the data I0 is written to the RAMD13, and data of 8 to 16 kilowords is written to the RAMD14. In addition, interleave data I1 is supplied to and written from the input data selection circuit 406 as data IR08 and IR09 based on the address data AR08 and AR09 supplied from the address selection circuit 405, respectively, to the RAMD09 and D10. . At this time, data of 0 to 8 kilowords of the data I1 is written to the RAMD09, and data of 8 to 16 kilowords is written to the RAMD10.
[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 data selection circuit 408 as symbol data of one system out of the two symbols. The The stored data is read out from the RAMs D11 and D12 as data OR10 and OR11, respectively, and is supplied to the output data selection circuit 408 as the other one-symbol data of the two symbols. The Note that data reading is performed based on the address data supplied from the address selection circuit 405, as in the case of data writing.
[0726]
Similarly, interleave data I0 is supplied to and written from the input data selection circuit 406 as data IR14 and IR15 based on the address data AR14 and AR15 supplied from the address selection circuit 405, respectively, to the RAMD15 and D16. It is. At this time, data of 0 to 8 kilowords of the data I0 is written to the RAMD15, and data of 8 to 16 kilowords is written to the RAMD16. Further, interleave data I1 is supplied and written from the input data selection circuit 406 as data IR10 and IR11 based on the address data AR10 and AR11 supplied from the address selection circuit 405, respectively, to the RAMD11 and D12. . At this time, data of 0 to 8 kilowords of the data I1 is written to the RAMD11, and data of 8 to 16 kilowords is written to the RAMD12.
[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 data selection circuit 408 as symbol data of one system out of the two symbols. The Also, the stored data is read from the RAMD09 and D10 as data OR08 and OR09, respectively, and is supplied to the output data selection circuit 408 as symbol data of the other one of the two symbols. The Note that data reading is performed based on the address data supplied from the address selection circuit 405, as in the case of data writing.
[0728]
By doing in this way, the interleaver 100 can perform pairwise interleaving and delay on the input data of two symbols subjected to SCCC by the encoding device 1.
[0729]
Next, an example in which random interleaving is performed on 3-symbol input data will be described. Here, it is assumed that the encoding apparatus 1 performs SCCC with an encoding rate of “1/3 or more” and the capacity of input data is “4 kilowords or less”.
[0730]
In this case, the interleaver 100 needs to perform interleaving on the data of 3 symbols and delay the data of 4 symbols. Therefore, the interleaver 100 uses, for example, four RAMD01, D03, D05, D07 among 16 RAMD01, D02,..., D16 for delay as shown in FIG. As shown in (B), twelve RAMs D02, D04, D06, D08, D09, D10, D11, D12, D13, D14, D15, and D16 are used for interleaving. As the RAM for addressing, as shown in FIG. 3C, any three RAMAs out of the six RAMAs may be used. Therefore, the interleaver 100 and the address memory circuit 110 do not use three RAMAs as shown in FIG.
[0731]
More specifically, the interleaver 100 stores the RAMs D01, D02, D05, D06, D09, D10, D13, and D14 in the above-described bank A (A) as shown in FIGS.0), RAMD03, D04, D07, D08, D11, D12, D15, and D16 are stored in the bank B (B0). That is, when the interleaver 100 is writing data to the RAMs D01, D02, D05, D06, D09, D10, D13, and D14, the data from the RAMs D03, D04, D07, D08, D11, D12, D15, and D16. When data is read and data is written to RAMD03, D04, D07, D08, D11, D12, D15, D16, data is read from RAMD01, D02, D05, D06, D09, D10, D13, D14. .
[0732]
Based on the address data AR00 supplied from the address selection circuit 405, delay data D0 and D1 are supplied from the input data selection circuit 406 as data IR00 and written to the RAM D01. At this time, the RAM D01 stores the data D0 and D1 only in the half storage area in the word direction and does not store the data in the remaining storage areas, as indicated by the hatched portion in FIG. . That is, data D0 and D1 for 0 to 2 kilowords are written in the RAMD01. In addition, based on the address data AR04 supplied from the address selection circuit 405, delay data D2 and D3 are supplied to the RAMD05 as data IR04 from the input data selection circuit 406 and written therein. At this time, the RAM D05 stores data D2 and D3 only in half of the storage area in the word direction, as shown by the hatched portion in FIG. There is no memory. That is, data D2 and D3 for 0 to 2 kilowords are written in the RAMD05.
[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 data selection circuit 408. At this time, the RAMD03 and D07 store data only in the half storage area in the word direction, as indicated by the hatched portion in FIG. 5A, and the remaining storage area stores the data. Not. Note that data reading is performed based on the address data supplied from the address selection circuit 405, as in the case of data writing.
[0734]
Similarly, delay data D0 and D1 are supplied and written as data IR02 from the input data selection circuit 406 based on the address data AR02 supplied from the address selection circuit 405 to the RAMD03. At this time, the RAM D03 stores the data D2 and D3 only in the half storage area in the word direction and does not store the data in the remaining storage areas, as indicated by the hatched portion in FIG. . That is, data D0 and D1 for 0 to 2 kilowords are written in the RAMD03. In addition, delay data D2 and D3 are supplied to and written from the input data selection circuit 406 as data IR06 based on the address data AR06 supplied from the address selection circuit 405. At this time, the RAM D07 stores the data D2 and D3 only in the half storage area in the word direction and the data in the remaining storage areas, as indicated by the hatched portion in FIG. There is no memory. That is, data D2 and D3 for 0 to 2 kilowords are written in the RAMD07.
[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 data selection circuit 408. At this time, the RAMD01 and D05 store data only in the half storage area in the word direction, as indicated by the hatched portion in FIG. 5A, and the remaining storage area stores the data. Not. Note that data reading is performed based on the address data supplied from the address selection circuit 405, as in the case of data writing.
[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 address selection circuit 405, the interleave data I0 is supplied from the input data selection circuit 406 as data IR12 and written to the RAMD13. At this time, the RAMD 13 stores the data I0 only in the half storage area in the bit direction and does not store the data in the remaining storage areas or the same data, as indicated by the hatched portion in FIG. Store I0. Further, interleave data I1 and I2 are supplied to and written from the input data selection circuit 406 as data IR08 based on the address data AR08 supplied from the address selection circuit 405. Further, the interleave data I0 is supplied from the input data selection circuit 406 as the data IR13 and written to the RAMD 14 based on the address data AR13 supplied from the address selection circuit 405. At this time, the RAMD 14 stores the data I0 only in the half storage area in the bit direction and does not store the data in the remaining storage areas, as indicated by the hatched portion in FIG. Alternatively, the same data I0 is stored. Further, interleave data I1 and I2 are supplied to and written from the input data selection circuit 406 as data IR09 based on the address data AR09 supplied from the address selection circuit 405. Furthermore, interleave data I0 is supplied to and written from the input data selection circuit 406 as data IR05 based on the address data AR05 supplied from the address selection circuit 405. At this time, RAMD06 stores data I0 only in the half storage area in the bit direction, and does not store data in the remaining storage areas, as indicated by the hatched portion in FIG. Alternatively, the same data I0 is stored. In addition, based on the address data AR01 supplied from the address selection circuit 405, interleave data I1 and I2 are supplied to the RAMD02 as data IR01 from the input data selection circuit 406 and written therein.
[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 data selection circuit 408 as symbol data of one system out of the three symbols. The At this time, the RAMD 15 stores data only in the half storage area in the bit direction, as shown by the hatched portion in FIG. 5B, and no data is stored in the remaining storage areas. , The same data is stored. The RAMD 11 outputs two lines of data, one of which is selected by a selector (not shown) and supplied to the output data selection circuit 408. Further, the stored data is read out from the RAMs D12 and D16 as data OR11 and OR15, respectively, and is supplied to the output data selection circuit 408 as the other one-symbol data of the three symbols. The At this time, as indicated by the hatched portion in FIG. 5B, the RAMD 16 stores data only in the half storage area in the bit direction, as in the RAMD 15, and stores the data in the remaining storage areas. Or the same data is stored. The RAMD 12 outputs two systems of data, one of which is selected by a selector (not shown) and supplied to the output data selection circuit 408. Furthermore, the stored data is read out from the RAMD04 and D08 as data OR03 and OR07, respectively, and the data of the other three lines is output to the output data selection circuit 408 from among the three symbols of data. Supplied. At this time, the RAMD08 stores data only in half the storage area in the bit direction, as shown by the hatched portion in FIG. 5B, and the remaining storage areas store data. Or the same data is stored. The RAMD04 outputs two systems of data, one of which is selected by a selector (not shown) and supplied to the output data selection circuit 408. Note that data reading is performed based on the address data supplied from the address selection circuit 405, as in the case of data writing.
[0739]
Similarly, interleaved data I0 is supplied to and written from the input data selection circuit 406 as data IR14 based on the address data AR14 supplied from the address selection circuit 405. At this time, the RAMD 15 stores the data I0 only in the half storage area in the bit direction and does not store the data in the remaining storage areas or the same data, as indicated by the hatched portion in FIG. Store I0. In addition, interleave data I1 and I2 are supplied to and written from the input data selection circuit 406 as data IR10 based on the address data AR10 supplied from the address selection circuit 405. Further, the interleave data I0 is supplied to and written from the input data selection circuit 406 as the data IR15 based on the address data AR15 supplied from the address selection circuit 405. At this time, the RAMD 16 stores the data I0 only in the half storage area in the bit direction and does not store the data in the remaining storage areas, as indicated by the hatched portion in FIG. Alternatively, the same data I0 is stored. Further, interleave data I1 and I2 are supplied to and written from the input data selection circuit 406 as data IR11 based on the address data AR11 supplied from the address selection circuit 405. Furthermore, interleaved data I0 is supplied to and written from the input data selection circuit 406 as data IR07 based on the address data AR07 supplied from the address selection circuit 405. At this time, RAMD08 stores data I0 only in the half storage area in the bit direction and does not store data in the remaining storage areas, as indicated by the hatched portion in FIG. Alternatively, the same data I0 is stored. In addition, based on the address data AR03 supplied from the address selection circuit 405, interleave data I1 and I2 are supplied to the RAMD04 as data IR03 from the input data selection circuit 406 and written therein.
[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 data selection circuit 408 as symbol data of one system out of the three symbols. The At this time, the RAMD 15 stores data only in the half storage area in the bit direction, as shown by the hatched portion in FIG. 5B, and no data is stored in the remaining storage areas. , The same data is stored. The RAMD 11 outputs two lines of data, one of which is selected by a selector (not shown) and supplied to the output data selection circuit 408. Further, the stored data is read out from the RAMs D12 and D16 as data OR11 and OR15, respectively, and is supplied to the output data selection circuit 408 as the other one-symbol data of the three symbols. The At this time, as indicated by the hatched portion in FIG. 5B, the RAMD 16 stores data only in the half storage area in the bit direction, as in the RAMD 15, and stores the data in the remaining storage areas. Or the same data is stored. The RAMD 12 outputs two systems of data, one of which is selected by a selector (not shown) and supplied to the output data selection circuit 408. Furthermore, the stored data is read out from the RAMD04 and D08 as data OR03 and OR07, respectively, and the data of the other three lines is output to the output data selection circuit 408 from among the three symbols of data. Supplied. At this time, the RAMD08 stores data only in half the storage area in the bit direction, as shown by the hatched portion in FIG. 5B, and the remaining storage areas store data. Or the same data is stored. The RAMD04 outputs two systems of data, one of which is selected by a selector (not shown) and supplied to the output data selection circuit 408. Note that data reading is performed based on the address data supplied from the address selection circuit 405, as in the case of data writing.
[0741]
By doing so, the interleaver 100 performs SCCC with an encoding rate of “1/3 or more” by the encoding device 1 and input data of three symbols whose data capacity is “4 kilowords or less”. Can be randomly interleaved and delayed.
[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 coding apparatus 1 performs SCTCM with a coding rate of “2/3” and the capacity of input data is “16 kilowords or less”.
[0743]
In this case, the interleaver 100 needs to interleave 3 symbols of data and delay 6 symbols of data. Therefore, the interleaver 100 delays six RAMD01, D02, D03, D04, D05, D07 out of 16 RAMD01, D02,..., D16 as shown in FIG. In addition, as shown in FIG. 6B, six RAMs D09, D11, D13, D14, D15, and D16 are used for interleaving. As the address RAM, all six RAMAs are used as shown in FIG. However, each of these six RAMAs has a storage area of 14 bits in the bit direction as shown by the hatched portion in FIG. 5C, and uses only a storage area of 13 bits. Therefore, the interleaver 100 and the address memory circuit 110 do not use the four RAMs D06, D08, D10, and D12 as shown in FIG.
[0744]
More specifically, the interleaver 100, as shown in FIGS. 6A and 6B, stores the RAMs D01, D02, D05, D09, D13, and D14 in the bank A (A0), RAMD03, D04, D07, D11, D15, and D16 are stored in the bank B (B0). That is, the interleaver 100 reads data from the RAMs D03, D04, D07, D11, D15, and D16 when data is written to the RAMs D01, D02, D05, D09, D13, and D14. When data is written to D07, D11, D15, and D16, the data is read from RAMD01, D02, D05, D09, D13, and D14.
[0745]
Based on the address data AR00 supplied from the address selection circuit 405, delay data D0 and D1 are supplied from the input data selection circuit 406 as data IR00 and written to the RAM D01. At this time, data D0 and D1 for 0 to 4 kilowords are written in the RAMD01. In addition, based on the address data AR04 supplied from the address selection circuit 405, delay data D2 and D3 are supplied to the RAMD05 as data IR04 from the input data selection circuit 406 and written therein. At this time, data D2 and D3 for 0 to 4 kilowords are written in the RAMD05. Further, based on the address data AR01 supplied from the address selection circuit 405, delay data D4 and D5 are supplied and written as data IR01 from the input data selection circuit 406 to the RAM D02. At this time, data D4 and D5 for 0 to 4 kilowords are written in the RAM D02.
[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 data selection circuit 408. Note that data reading is performed based on the address data supplied from the address selection circuit 405, as in the case of data writing.
[0747]
Similarly, delay data D0 and D1 are supplied and written as data IR02 from the input data selection circuit 406 based on the address data AR02 supplied from the address selection circuit 405 to the RAMD03. At this time, data D0 and D1 for 0 to 4 kilowords are written in the RAMD03. In addition, delay data D2 and D3 are supplied to and written from the input data selection circuit 406 as data IR06 based on the address data AR06 supplied from the address selection circuit 405. At this time, data D2 and D3 for 0 to 4 kilowords are written in the RAMD07. Further, based on the address data AR03 supplied from the address selection circuit 405, delay data D4 and D5 are supplied and written as data IR03 from the input data selection circuit 406 to the RAMD04. At this time, data D4 and D5 for 0 to 4 kilowords are written in the RAMD04.
[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 data selection circuit 408. Note that data reading is performed based on the address data supplied from the address selection circuit 405, as in the case of data writing.
[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 address selection circuit 405, the interleave data I0 is supplied from the input data selection circuit 406 as data IR12 and written to the RAMD13. At this time, 0 to 8 kilowords of data I0 is written in the RAMD13. Further, interleaved data I1 is supplied and written as data IR08 from the input data selection circuit 406 to the RAMD09 based on the address data AR08 supplied from the address selection circuit 405. At this time, data I1 of 0 to 8 kilowords is written in the RAMD09. Further, interleaved data I2 is supplied to and written from the input data selection circuit 406 as data IR13 based on the address data AR13 supplied from the address selection circuit 405. At this time, data I2 of 0 to 8 kilowords is written in the RAMD14.
[0751]
At the same time, the stored data is read from the RAMD 15 as the data OR 14 and supplied to the output data selection circuit 408 as one system of the symbol data. The stored data is read from the RAM D 11 as the data OR 10 and supplied to the output data selection circuit 408 as the other one-symbol data of the three symbols. Further, the stored data is read from the RAMD 16 as the data OR 15 and supplied to the output data selection circuit 408 as the other one-system symbol data among the three symbols of data. Note that data reading is performed based on the address data supplied from the address selection circuit 405, as in the case of data writing.
[0752]
Similarly, interleaved data I0 is supplied to and written from the input data selection circuit 406 as data IR14 based on the address data AR14 supplied from the address selection circuit 405. At this time, 0 to 8 kilowords of data I0 is written into the RAMD15. In addition, based on the address data AR10 supplied from the address selection circuit 405, interleave data I1 is supplied to the RAMD11 as data IR10 from the input data selection circuit 406 and written therein. At this time, data I1 for 0 to 8 kilowords is written in the RAMD11. Further, interleaved data I2 is supplied to and written from the input data selection circuit 406 as data IR15 based on the address data AR15 supplied from the address selection circuit 405. At this time, data I2 of 0 to 8 kilowords is written into the RAMD16.
[0753]
At the same time, the stored data is read from the RAMD 13 as the data OR12 and supplied to the output data selection circuit 408 as one system of symbol data among the three symbols of data. Also, the stored data is read from the RAMD09 as data OR08 and supplied to the output data selection circuit 408 as the other one-system symbol data out of the three symbol data. Further, the stored data is read from the RAMD 14 as the data OR 13 and supplied to the output data selection circuit 408 as the other one-symbol data of the three symbols. Note that data reading is performed based on the address data supplied from the address selection circuit 405, as in the case of data writing.
[0754]
By doing so, the interleaver 100 performs SCTCM with a coding rate of “2/3” by the encoding device 1, and converts the input data into three symbols of input data with “16 kilowords or less”. In contrast, inline interleaving and delay can be applied.
[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 encoding apparatus 1 performs TTCM and the capacity of input data is “32 kilowords or less”.
[0756]
In this case, the interleaver 100 needs to interleave 3 symbols of data and delay 2 symbols of data. Therefore, the interleaver 100 uses, for example, four RAMD01, D02, D03, D04 among 16 RAMD01, D02,..., D16 for delay as shown in FIG. As shown in (B), twelve RAMs D05, D06, D07, D08, D09, D10, D11, D12, D13, D14, D15, and D16 are used for interleaving. As the address RAM, any four RAMA out of the six RAMAs may be used as shown in FIG. Therefore, the interleaver 100 and the address memory circuit 110 do not use two RAMAs as shown in FIG.
[0757]
More specifically, the interleaver 100 stores the RAMs D01, D02, D05, D06, D09, D10, D13, and D14 in the above-described bank A (A) as shown in FIGS.0, A1), RAMD03, D04, D07, D08, D11, D12, D15, and D16 are stored in the bank B (B0, B1). That is, when the interleaver 100 is writing data to the RAMs D01, D02, D05, D06, D09, D10, D13, and D14, the data from the RAMs D03, D04, D07, D08, D11, D12, D15, and D16. When data is read and data is written to RAMD03, D04, D07, D08, D11, D12, D15, D16, data is read from RAMD01, D02, D05, D06, D09, D10, D13, D14. . At this time, RAMD13 and D14, RAMD09 and D10, and RAMD05 and D06 operate based on the same address, and RAMD15 and D16, RAMD11 and D12, and RAMD07 and D08 operate based on the same address. Operate.
[0758]
Based on the address data AR00 and AR01 supplied from the address selection circuit 405, delay data D0 and D1 are supplied and written as data IR00 and IR01 from the input data selection circuit 406 to the RAMD01 and D02, respectively. . At this time, 0 to 4 kilowords of data D0 and D1 are written to RAMD01, and 4 to 8 kilowords of data are written to RAMD02.
[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 data selection circuit 408. Note that data reading is performed based on the address data supplied from the address selection circuit 405, as in the case of data writing.
[0760]
Similarly, delay data D0 and D1 are supplied as data IR02 and IR03 from the input data selection circuit 406 to the RAMD03 and D04, respectively, based on the address data AR02 and AR03 supplied from the address selection circuit 405. Written. At this time, 0 to 4 kilowords of data D0 and D1 are written in RAMD03, and 4 to 8 kilowords of data are written in RAMD04.
[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 data selection circuit 408. Note that data reading is performed based on the address data supplied from the address selection circuit 405, as in the case of data writing.
[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 address selection circuit 405, the interleave data I0 is supplied and written as data IR12 and IR13 from the input data selection circuit 406 to the RAMD13 and D14, respectively. At this time, data of 0 to 8 kilowords of the data I0 is written to the RAMD13, and data of 8 to 16 kilowords is written to the RAMD14. In addition, interleave data I1 is supplied to and written from the input data selection circuit 406 as data IR08 and IR09 based on the address data AR08 and AR09 supplied from the address selection circuit 405, respectively, to the RAMD09 and D10. . At this time, data of 0 to 8 kilowords of the data I1 is written to the RAMD09, and data of 8 to 16 kilowords is written to the RAMD10. Further, interleave data I2 is supplied to and written from the input data selection circuit 406 as data IR04 and IR05 based on the address data AR04 and AR05 supplied from the address selection circuit 405, respectively, to the RAMD05 and D06. . At this time, data of 0 to 8 kilowords of data I2 is written to RAMD05, and data of 8 to 16 kilowords is written to RAMD06.
[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 data selection circuit 408 as symbol data of one system out of the three symbols. The Also, the stored data is read from the RAMD11 and D12 as data OR10 and OR11, respectively, and is supplied to the output data selection circuit 408 as the other one-system symbol data out of the three symbol data. The Further, the stored data is read from the RAMD07 and D08 as data OR06 and OR07, respectively, and is supplied to the output data selection circuit 408 as another one system of symbol data among the three symbols of data. Is done. Note that data reading is performed based on the address data supplied from the address selection circuit 405, as in the case of data writing.
[0765]
Similarly, interleave data I0 is supplied to and written from the input data selection circuit 406 as data IR14 and IR15 based on the address data AR14 and AR15 supplied from the address selection circuit 405, respectively, to the RAMD15 and D16. It is. At this time, data of 0 to 8 kilowords of the data I0 is written to the RAMD15, and data of 8 to 16 kilowords is written to the RAMD16. Further, interleave data I1 is supplied and written from the input data selection circuit 406 as data IR10 and IR11 based on the address data AR10 and AR11 supplied from the address selection circuit 405, respectively, to the RAMD11 and D12. . At this time, data of 0 to 8 kilowords of the data I1 is written to the RAMD11, and data of 8 to 16 kilowords is written to the RAMD12. Further, interleaved data I2 is supplied to and written from the input data selection circuit 406 as data IR06 and IR07 based on the address data AR06 and AR07 supplied from the address selection circuit 405, respectively, to the RAMD07 and D08. . At this time, data of 0 to 8 kilowords of data I2 is written to RAMD07, and data of 8 to 16 kilowords is written to RAMD08.
[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 data selection circuit 408 as symbol data of one system out of the three symbols. The The stored data is read from the RAMD09 and D10 as data OR08 and OR09, respectively, and is supplied to the output data selection circuit 408 as the other one-system symbol data out of the three symbols. The Further, the stored data is read from the RAMD05 and D06 as data OR04 and OR05, respectively, and is supplied to the output data selection circuit 408 as another one system of symbol data out of the three symbols of data. Is done. Note that data reading is performed based on the address data supplied from the address selection circuit 405, as in the case of data writing.
[0767]
By doing so, the interleaver 100 performs pairwise interleaving and delay on the input data of three symbols whose TTCM is performed by the encoding device 1 and whose data capacity is “32 kilowords or less”. Can do.
[0768]
As described above, the interleaver 100 shares the delay RAM and the interleave RAM, switches the RAM to be used according to the mode indicating the code configuration including the type of interleave to be performed, and selects the appropriate RAM. By writing and / or reading data, a plurality of types of interleave processing and delay processing can be performed, which can be used for decoding various codes.
[0769]
Various features relating to the interleaver 100 will be further described in “6.” described later.
[0770]
3. Decoding device configured by connecting element decoders
Next, a description will be given of a decoding device 3 that can perform iterative decoding by connecting the above-described element decoders 50. FIG.
[0771]
As described above, the decoding device 3 is configured by concatenating a plurality of element decoders 50, and can perform iterative decoding on the codes by the PCCC, SCCC, TTCM, and SCTCM by the encoding device 1.
[0772]
As shown in FIG. 62, the decoding device 3 is a product of the number of element codes and at least the number of repetitions N of iterative decoding, for example, 2 × N element decoders 50.11, 5012, ..., 50N1, 50N2With. The decoding device 3 estimates input data in the encoding device 1 by obtaining decoded data DEC by iterative decoding from a received value that is soft input due to the influence of noise generated on the memoryless communication path 2. is there. In this decoding device 3, two successive element decoders 5011, 5012Or the element decoder 50N1, 50N2Respectively, when the decoding device 3 constitutes the decoding devices 3 ′ and 3 ″ previously shown in FIG. 3 or 5, iterative decoding for one time is realized. That is, when the encoding apparatus 1 is the encoding apparatus 1 'shown in FIG.11, 5012, ..., 50M1, 50M2Element decoder 50i1Is provided corresponding to the convolutional encoder 12 and performs the decoding process of the number of iterations i. The element decoder 50i2The one represented by is the one provided corresponding to the convolutional encoder 14 and performing the decoding process of the number of iterations i. If the encoding apparatus 1 is the encoding apparatus 1 ″ previously shown in FIG. 4, the element decoder 5011, 5012, ..., 50M1, 50M2Element decoder 50i1Is represented in correspondence with the convolutional encoder 33 for encoding the inner code and performs the decoding process of the number of iterations i. The element decoder 50i2In the figure, what is provided corresponding to the convolutional encoder 31 that performs encoding of the outer code and that performs the decoding process of the number of repetitions i is shown.
[0773]
Specifically, the element decoder 5011The received value R and external information or interleave data EXT as prior probability information are input, as well as erasure information ERS, prior probability information erasure information EAP, termination time information TNP, termination state information TNS, and interleaving A start position signal ILS is input. Also, the element decoder 5011Are supplied with an output data selection control signal ITM and an interleave mode signal DIN.
[0774]
Element decoder 5011Outputs the delayed received value RN and the soft output INT obtained by performing the above-described processing, as well as the next stage erase position information ERSN, the next stage prior probability information erase information EAPN, the next stage termination time information TNPN, the next The stage end state information TNSN and the next stage interleave start position signal ILSN are output. At this time, the element decoder 5011If the decoding device 3 is the decoding device 3 'shown in FIG. 3, the interleaver 100 is made to function as performing interleaving processing based on the interleave mode signal DIN. Also, the element decoder 5011If the decoding device 3 is the decoding device 3 ″ shown in FIG. 5 earlier, the interleaver 100 is made to function as performing deinterleaving processing based on the interleave mode signal DIN. Further, the element decoder 5011Selects one of the soft output SOL or the external information SOE, which is the logarithmic soft output Iλ output from the soft output decoding circuit 90, based on the output data selection control signal ITM, and finally the soft output INT Can be determined as output data. Here, it is assumed that the soft output INT is external information. Furthermore, the element decoder 5011Can output the decoded value hard decision information DHD and the received value hard decision information RHD as necessary.
[0775]
Also, the element decoder 5012Includes the preceding element decoder 50.11Received delay value RN, soft output INT, next stage erasure position information ERSN, next stage prior probability information erasure information EAPN, next stage termination time information TNPN, next stage termination state information TNSN, and next stage interleave start position Signal ILSN is input as received value R, external information or interleave data EXT, erasure information ERS, prior probability information erasure information EAP, termination time information TNP, termination state information TNS, and interleave start position signal ILS, respectively. Also, the element decoder 5012Are supplied with an output data selection control signal ITM and an interleave mode signal DIN.
[0776]
Element decoder 5012The element decoder 5011In the same manner as described above, the delayed received value RN and the soft output INT obtained by performing the above-described processing are output, and the next stage erase position information ERSN, the next stage prior probability information erase information EAPN, and the next stage termination time information TNPN The next stage termination state information TNSN and the next stage interleave start position signal ILSN are output. At this time, the element decoder 5012If the decoding device 3 is the decoding device 3 ′ shown in FIG. 3 earlier, the interleaver 100 is made to function as performing deinterleaving processing based on the interleave mode signal DIN. Also, the element decoder 5012If the decoding device 3 is the decoding device 3 ″ shown in FIG. 5, the interleaver 100 is made to function as performing interleaving processing based on the interleave mode signal DIN. Further, the element decoder 5012Selects one of the soft output SOL or the external information SOE, which is the logarithmic soft output Iλ output from the soft output decoding circuit 90, based on the output data selection control signal ITM, and finally the soft output INT Can be determined as output data. Here, it is assumed that the soft output INT is external information. Furthermore, the element decoder 5012Can output the decoded value hard decision information DHD and the received value hard decision information RHD as necessary.
[0777]
Such an element decoder 5012Are received delay value RN, soft output INT, next stage erasure position information ERSN, next stage prior probability information erasure information EAPN, next stage termination time information TNPN, next stage termination state information TNSN, and next stage interleave start position signal ILSN. , Respectively, in the next stage element decoder 50 (not shown).twenty oneOutput to.
[0778]
Further, the element decoder 50N1Includes a preceding element decoder 50 (not shown).N-12Received delay value RN, soft output INT, next stage erasure position information ERSN, next stage prior probability information erasure information EAPN, next stage termination time information TNPN, next stage termination state information TNSN, and next stage interleave start position Signal ILSN is input as received value R, external information or interleave data EXT, erasure information ERS, prior probability information erasure information EAP, termination time information TNP, termination state information TNS, and interleave start position signal ILS, respectively. Also, the element decoder 50N1Are supplied with an output data selection control signal ITM and an interleave mode signal DIN.
[0779]
Element decoder 50N1The element decoder 5011In the same manner as described above, the delayed received value RN and the soft output INT obtained by performing the above-described processing are output, and the next stage erase position information ERSN, the next stage prior probability information erase information EAPN, and the next stage termination time information TNPN The next stage termination state information TNSN and the next stage interleave start position signal ILSN are output. At this time, the element decoder 50N1If the decoding device 3 is the decoding device 3 'shown in FIG. 3, the interleaver 100 is made to function as performing interleaving processing based on the interleave mode signal DIN. Also, the element decoder 50N1If the decoding device 3 is the decoding device 3 ″ shown in FIG. 5 earlier, the interleaver 100 is made to function as performing deinterleaving processing based on the interleave mode signal DIN. Further, the element decoder 50N1Selects one of the soft output SOL or the external information SOE, which is the logarithmic soft output Iλ output from the soft output decoding circuit 90, based on the output data selection control signal ITM, and finally the soft output INT Can be determined as output data. Here, it is assumed that the soft output INT is external information. Furthermore, the element decoder 50N1Can output the decoded value hard decision information DHD and the received value hard decision information RHD as necessary.
[0780]
Then, the last stage element decoder 50N2Includes the preceding element decoder 50.N1Received delay value RN, soft output INT, next stage erasure position information ERSN, next stage prior probability information erasure information EAPN, next stage termination time information TNPN, next stage termination state information TNSN, and next stage interleave start position Signal ILSN is input as received value R, external information or interleave data EXT, erasure information ERS, prior probability information erasure information EAP, termination time information TNP, termination state information TNS, and interleave start position signal ILS, respectively. Also, the element decoder 50N2Are supplied with an output data selection control signal ITM and an interleave mode signal DIN.
[0781]
Element decoder 50N2Outputs the soft output INT obtained by performing the above-described processing, and outputs the decoded value hard decision information DHD and the received value hard decision information RHD as necessary. At this time, the element decoder 50N2If the decoding device 3 is the decoding device 3 ′ shown in FIG. 3 earlier, the interleaver 100 is made to function as performing deinterleaving processing based on the interleave mode signal DIN. Also, the element decoder 50N2If the decoding device 3 is the decoding device 3 ″ shown in FIG. 5, the interleaver 100 is made to function as performing interleaving processing based on the interleave mode signal DIN. Further, the element decoder 50N2Selects logarithmic soft output Iλ as data to be output and soft output INT based on the output data selection control signal ITM, and outputs this logarithmic soft output Iλ as decoded data DEC as the final result. Element decoder 50N2As necessary, delayed received value RN and soft output INT, next stage erasure position information ERSN, next stage prior probability information erasure information EAPN, next stage termination time information TNPN, next stage termination state information TNSN, and next stage The interleave start position signal ILSN can also be output.
[0782]
Such a decoding apparatus 3 includes an element decoder 50 corresponding to each element encoder in the encoding apparatus 1.i1, 50i2By decomposing a code having a high decoding complexity into elements having a low complexity, and an element decoder 50.i1, 50i2The characteristics can be improved sequentially by the interaction between the two. When receiving the received value, the decoding device 3 receives 2 × N element decoders 50.11, 5012, ..., 50N1, 50N2Thus, iterative decoding with the maximum number of repetitions of N is performed, and decoded data DEC is output.
[0783]
Note that the decoding device 3 includes 2 × N element decoders 50.11, 5012, ..., 50N1, 50N2Can be repeatedly decoded up to N iterations, but the element decoder 5011, 5012, ..., 50N1, 50N2Can be used to perform iterative decoding with a number of iterations of N or less, as will be described later.
[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 decoding device 3 described above, and directly receives in-phase and quadrature component symbols as received values. Become.
[0785]
4). Characteristics of the whole element decoder
Next, description will be given for each feature related to the element decoder 50. The following features are provided as functions of the element decoder 50, and will be described with reference to the drawings simplified as appropriate in order to clarify the concept of the features.
[0786]
4-1 Code likelihood switching function
This is a feature relating to the received value and prior probability information selection circuit 154 described above. As described above, the reception value and prior probability information selection circuit 154 is provided for decoding an arbitrary code.
[0787]
For example, when the encoding apparatus 1 performs encoding by PCCC or TTCM, as shown in FIG. 3, the information to be input to perform soft output decoding is the received value and The external information is supplied from the preceding interleaver or deinterleaver. Further, for example, when the encoding apparatus 1 performs encoding by SCCC or SCTCM, as shown in FIG. 5, information to be input for performing soft output decoding of the inner code. Is the received value and the external information supplied from the preceding interleaver, and the information to be input in order to perform soft output decoding of the outer code is the external information supplied from the deinterleaver and the value “0”. Is prior probability information. Furthermore, when the encoding apparatus 1 performs puncturing, it is necessary to input information indicating that as prior probability information. Thus, in order to perform decoding of an arbitrary code, the element decoder 50 needs to select information necessary for performing soft output decoding according to each code.
[0788]
Therefore, the element decoder 50 includes the reception value and prior probability information selection circuit 154, so that the information to be input for soft output decoding among the input reception value and the prior probability information is encoded. Select appropriately according to your needs. By doing in this way, the element decoder 50 becomes a general-purpose structure which can decode arbitrary codes, such as PCCC, SCCC, TTCM, or SCTCM.
[0789]
That is, the decoding device 3 can repeatedly decode an arbitrary code such as PCCC, SCCC, TTCM, or SCTCM only by connecting a plurality of element decoders 50 made of LSIs of the same wiring. Therefore, the decoding device 3 can provide a user with high convenience even when performing an experiment, for example.
[0790]
Note that the element decoder 50 does not necessarily include the reception value and prior probability information selection circuit 154 in the soft output decoding circuit 90 or in the previous stage. That is, the element decoder 50 does not need to be configured to select information necessary for soft output decoding from the information from the preceding element decoder. For example, the element decoder 50 includes a selector 120.8, 1209, 120TenInformation required for performing soft output decoding in the next stage element decoder by providing a reception value and prior probability information selection circuit 154 at the subsequent stage and switching the delayed reception value TRN and soft output TINT as code likelihoods May be selected.
[0791]
In the case of the reception value and prior probability information selection circuit 154 described with reference to FIG. 28, two adjacent element decoders 50 constituting the decoding device 3 are used.A, 50BCan be expressed as a configuration shown in FIG. 63, for example. That is, the element decoder 50BIs the preceding element decoder 50AThe delay received value RN output from the signal is input as the received value R, and the soft output INT is input as external information or interleaved data EXT, and the received value TR is used as the signal line for delaying and the decoded received value TSR. And a signal line. In this case, the element decoder 50BThe reception value and prior probability information selection circuit 154 included in the selector 501 substantially selectively outputs the decoded reception value TSR and the external information or interleave data TEXT, and the external information or interleave data TEXT and the value thereof. It is expressed as having a selector 502 that selectively outputs prior probability information that is “0”.
[0792]
In contrast, the selector 1208, 1209, 120TenWhen the received value and prior probability information selection circuit 154 is provided in the subsequent stage, two adjacent element decoders 50 constituting the decoding device 3 are used.C, 50DCan be expressed as a configuration shown in FIG. 64, for example. That is, the element decoder 50CThe reception value and prior probability information selection circuit 154 included in the selector 504 is substantially a selector 503 that selectively outputs the delay reception value TRN and the soft output TINT, and the soft output TINT and the prior value whose value is “0”. It is expressed as having a selector 504 that selectively outputs probability information. In this case, the element decoder 50DIs the preceding element decoder 50CThe delayed received value RN output from the selector 503 in FIG. 5 is input as the received value R, the soft output INT output from the selector 504 is input as external information or interleave data EXT, and the delayed received value TRN is input. become. In this case, the reception value and prior probability information selection circuit 154 may be provided in the interleaver 100 together with the selectors 503 and 504.
[0793]
Thus, the element decoder 50 is not limited to the position where the received value and prior probability information selection circuit 154 is provided. However, as shown in FIG. 64, the configuration in which the information required for the soft output decoding in the next stage element decoder is selected by the previous stage element decoder is the reception value delayed between the two element decoders. Since it is necessary to input / output separately, a large number of pins are required.
[0794]
4-2 Delay function of received value
This is a feature of the received data and delay storage circuit 155 and the interleaver 100 described above.
[0795]
For example, when the encoding apparatus 1 performs encoding by PCCC or TTCM, as shown in FIG. 3, a received value is input as information necessary for performing soft output decoding. It is necessary to Further, for example, when the encoding apparatus 1 performs encoding by SCCC or SCTCM, as shown in FIG. 5, as necessary information for performing soft output decoding of the inner code, Received value needs to be entered.
[0796]
Therefore, as described above, the element decoder 50 includes the reception data and delay storage circuit 155 to store all reception values TR including reception values other than the decoding reception value TSR to be decoded. The interleaver 100 delays at least the data TDI that is either the reception value TR or the delay reception value SDR by the interleaver 100, at least as long as the processing time required by the soft output decoding circuit 90. It is delayed by the same time as the required processing time, that is, it is delayed by the interleave length.
[0797]
By doing so, the decoding apparatus 3 does not need to have a delay circuit such as a RAM or a FIFO (First In First Out) outside, so that the circuit scale can be reduced. PCCC, SCCC, Arbitrary codes such as TTCM or SCTCM can be repeatedly decoded simply by connecting a plurality of element decoders 50 made of LSIs of the same wiring.
[0798]
Note that the element decoder 50 does not need to use the reception data and delay storage circuit 155 in order to delay the reception value by the same time as the processing time required by the soft output decoding circuit 90, and includes a delay circuit separately. You may do it. In this case, the element decoder 50 does not need to include a delay circuit in the soft output decoding circuit 90.
[0799]
That is, two adjacent element decoders 50 constituting the decoding device 3E, 50FIn a simplified form, for example, as shown in FIG. 65, in addition to the soft output decoding circuit 90 and the interleaver 100, it is represented as including a delay circuit 510 that delays the received value. Of course, the delay circuit 510 may be separated into a storage circuit that delays the same processing time as the soft output decoding circuit 90 and a storage circuit that delays the same processing time as the interleaver 100. . In this way, the element decoder 50 only needs to have a delay line for delaying all received values.
[0800]
Of course, the element decoder 50 actually employs a method described later using the interleave 100 in order to realize a delay between the processing time required by the interleaver 100 and the same time. This will be described later. .
[0801]
4-3 Decoding received value selection function
This is a feature relating to the decoded received value selection circuit 70 described above. As described above, the decoded received value selection circuit 70 is provided for decoding an arbitrary code.
[0802]
The received value required for performing soft output decoding differs depending on the code. Therefore, the element decoder 50 includes the decoded reception value selection circuit 70, and appropriately selects the reception value TSR to be decoded from all the reception values TR according to the code. In other words, two adjacent element decoders 50 constituting the decoding device 3.G, 50HFor example, as shown in FIG. 66, in addition to a soft output decoding circuit 90, an interleaver 100, and a delay circuit 510 that delays received values, a delay line for delaying all received values is used. , And a decoded received value selection circuit 70 for selectively taking out a predetermined signal line.
[0803]
As described above, by selectively extracting a predetermined reception value from the reception values input to the delay circuit 510, the decoding device 3 converts an arbitrary code such as PCCC, SCCC, TTCM, or SCTCM to the same wiring. It is possible to perform decoding repeatedly only by connecting a plurality of element decoders 50 made of LSI.
[0804]
4-4 Sharing of memory circuit for decoding and memory for delay
This is a feature relating to the received data and delay memory circuit 155 described above.
[0805]
As described above, the reception data and delay storage circuit 155 stores both the selected reception value and prior probability information RAP, which are reception data used for decoding, and the reception value TR, which is delay data. That is, the received data and delay storage circuit 155 has a RAM having a capacity capable of storing both the selected received value and the prior probability information RAP and the received value TR, and is controlled by a control circuit (not shown). In addition, each information is selectively written and / or read. At this time, the reception data and delay storage circuit 155 stores the reception data DA used in the Iα calculation circuit 158 and the reception value TR in the same word and stores them in accordance with the timing at which the reception data DA is read. The received reception value TR is output as the delayed reception value PDR.
[0806]
As described above, the decoding device 3 can reduce the circuit scale by sharing the storage circuits having different uses for the storage target, and any code such as PCCC, SCCC, TTCM, or SCTCM can be connected to the same wiring. It is possible to perform decoding repeatedly only by connecting a plurality of element decoders 50 made of LSI.
[0807]
4-5 Frame head information delay function
This is a feature relating to the received data and delay memory circuit 155 described above.
[0808]
The edge signal TEILS indicating the head of the frame detected by the edge detection circuit 80 indicates the start position of interleaving. Therefore, the interleaver 100 needs to receive a signal corresponding to the edge signal TEILS in synchronization with the information obtained as a result of the soft output decoding by the soft output decoding circuit 90. Therefore, the edge signal TEILS needs to be delayed by the same time as the processing time required for the soft output decoding circuit 90.
[0809]
Therefore, the element decoder 50 is provided with the reception data and delay storage circuit 155 as described above, so that the edge signal TEILS is input to the soft output decoding circuit 90 in synchronization with the head of the frame of information to be decoded. Then, the processing time is delayed by the same time as the processing time required by the soft output decoding circuit 90. At this time, the reception data and delay storage circuit 155 stores the reception data DA used by the Iα calculation circuit 158 and the edge signal TEILS in the same word and stores them in accordance with the timing at which the reception data DA is read. The edge signal TEILS being output is output as the delayed edge signal PDIL.
[0810]
By doing so, the decoding device 3 does not need to have an external delay circuit for delaying the edge signal, and can further share the delay circuit and the received data storage circuit. The circuit scale can be reduced and the convenience can be improved, and any code such as PCCC, SCCC, TTCM, or SCTCM can be repeatedly decoded by simply connecting a plurality of element decoders 50 made of LSIs of the same wiring. It becomes.
[0811]
The element decoder 50 does not need to use the received data and delay storage circuit 155 in order to delay the edge signal, and a delay circuit may be separately provided in the soft output decoding circuit 90. . That is, the element decoder 50 only needs to have a delay line for delaying the edge signal.
[0812]
Also, the element decoder 50 delays or generates an edge signal based on a counter (not shown) that counts the decoding delay when the frame length of the information to be decoded is longer than the processing time required by the soft output decoding circuit 90. May be output to the interleaver 100.
[0813]
4-6 Soft output decoding circuit or interleaver unit operation function
Selector 120 described aboveFour, 1207Concomitantly, and concomitantly, the selector 120 described above.Three, 120Five, 1206This is also a feature.
[0814]
As described above, the element decoder 50 corresponds to the element encoder used when the code by the encoding device 1 is repeatedly decoded. However, in addition to such applications, the soft output decoding circuit 90 is used. Or it has the function to switch the operation mode which fulfill | performs only the function of the interleaver 100. FIG. That is, the element decoder 50 generates the operation mode information CBF by the control circuit 60 as described above, and the selector 120 based on this operation mode information CBF.Three, 120Four, 120Five, 1206, 1207, The soft output decoding circuit 90 and the interleaver 100 perform normal soft output decoding processing and interleaving processing, respectively, and only the soft output decoding circuit 90 performs normal soft output decoding processing. And a mode in which only the interleaver 100 performs a normal interleaving process.
[0815]
Specifically, the selector 120ThreeAs described above, selects one of the received value TR and the delayed received value SDR supplied from the soft output decoding circuit 90 based on the operation mode information CBF. That is, the element decoder 50 includes the selector 120.ThreeThus, it is determined whether or not to use a soft output decoding process by the soft output decoding circuit 90 or a delay having the same time as the processing time required by the soft output decoding circuit 90 as the reception value input to the interleaver 100. be able to.
[0816]
In addition, the selector 120FourAs described above, based on the operation mode information CBF, the external information or interleave data TEXT and the selector 1202One of the data TDLX supplied from is selected. That is, the element decoder 50 includes the selector 120.FourWhether or not the external information or soft output input to the interleaver 100 is a soft output decoding process performed by the soft output decoding circuit 90 or a delay that is simultaneous with the processing time required by the soft output decoding circuit 90. Can be determined.
[0817]
Furthermore, the selector 120FiveAs described above, one of the edge signal TEILS supplied from the edge detection circuit 80 and the delayed edge signal SDILS supplied from the soft output decoding circuit 90 is selected based on the operation mode information CBF. To do. That is, the element decoder 50 includes the selector 120.FiveThus, it is determined whether to use a soft output decoding process performed by the soft output decoding circuit 90 or a signal that is delayed at the same time as the processing time required by the soft output decoding circuit 90 as the edge signal input to the interleaver 100. be able to.
[0818]
Furthermore, the selector 1206As described above, one of the delayed received value SDR supplied from the soft output decoding circuit 90 and the interleave length delayed received value IDO supplied from the interleaver 100 based on the operation mode information CBF. Select. That is, the element decoder 50 includes the selector 120.6Thus, it is possible to determine whether or not to use a reception value to be output by performing interleaving processing by the interleaver 100 or processing performed at the same time as the processing time required by the interleaver 100.
[0819]
In addition, the selector 1207As described above, based on the operation mode information CBF, the interleaver output data IIO supplied from the interleaver 100 and the selector 1202One of the data TDLX supplied from is selected. That is, the element decoder 50 includes the selector 120.7Accordingly, it is possible to determine whether to use interleave processing by the interleaver 100 or information that is delayed at the same time as the processing time required by the interleaver 100 as external information or soft output to be output.
[0820]
By doing so, the element decoder 50 can operate only the soft output decoding circuit 90, for example, in a mode in which only the soft output decoding process is required, while only the interleaving process is performed. In the required mode, only the interleaver 100 can be operated.
[0821]
The element decoder 50 can also be used as an encoding device in a mode in which only the interleaver 100 performs normal interleaving processing. This is because the element encoder in the encoding apparatus usually includes a delay element and a combinational circuit, and can be easily realized by a so-called FPGA or the like. Therefore, the element decoder 50 can realize the convolutional encoders 12 and 14 by the control circuit 60 or the like, for example, when the encoding apparatus 1 ′ shown in FIG. 2 is realized. In addition, as described above, since the interleaver 100 also has a function as a delay circuit, the element decoder 50 realizes the functions of the interleaver 13 and the delay unit 11 in the encoding device 1 ′ by the interleaver 100. be able to. Similarly, the element decoder 50 can also easily realize an encoding device that performs encoding by SCCC, such as the encoding device 1 ″ previously shown in FIG. 4.
[0822]
In this way, the element decoder 50 can switch the operation mode, and can provide abundant uses and excellent convenience in addition to iterative decoding.
[0823]
The element decoder 50 includes a selector 120.Three, 120Four, 120Five, 1206, 1207Instead of switching the operation mode only, various operation modes may be realized with different configurations, such as using another selector.
[0824]
4-7 Delay mode switching function
Selector 120 described above2And features relating to the interleaver 100.
[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 encoding apparatus 1. That is, in the iterative decoding, at least two or more element decoders are set as one set, and decoding is performed once. In the iterative decoding, a final decoding result is obtained by setting the number of repetitions to a plurality.
[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 element decoder 50 generates the operation mode information CBF by the control circuit 60 as described above, and the selector 120 based on the operation mode information CBF.2And the address control by the interleaver 100 are performed, so that the input data is delayed at least simultaneously with the processing time required by the soft output decoding circuit 90, and at least the processing time required by the interleaver 100. A plurality of delay modes are realized in which the delay is the same time or at least the delay between the processing time required by the soft output decoding circuit 90 and the interleaver 100.
[0829]
Specifically, the selector 1202As described above, the operation mode information CBF has at least a delay between the processing time required by the soft output decoding circuit 90 and a delay between at least the processing time required by the interleaver 100, or at least the soft output decoding circuit. 90 and the processing time required by the interleaver 100 and the delay mode to be performed at the same time, the delay external information SDEX is selected and output, and the operation mode information CBF is If at least the delay by the soft output decoding circuit 90 and / or the interleaver 100 is not performed and the normal mode in which the processing by the soft output decoding circuit 90 and / or the interleaver 100 is performed is indicated, the data TLX, that is, The result of decoding by the soft output decoding circuit 90 is selected and output. In other words, the element decoder 50 includes the selector 120.2Thus, it is possible to determine whether or not to delay at least the processing time required by the soft output decoding circuit 90 and / or the interleaver 100 for external information or soft output.
[0830]
Further, as described above, when the operation mode information CBF indicating the delay mode is input, the interleaver 100 can apparently function as a delay circuit by performing address control. This will be described later.
[0831]
By doing in this way, the decoding device 3 can perform an iterative decoding of an arbitrary number of iterations if it is configured by connecting a number of element decoders capable of performing an iterative decoding of the number of possible iterations. It becomes possible. For example, when the encoding device 1 is the encoding device 1 ′, 1 ″ shown in FIG. 2 or 4 and 200 element decoders are connected to form the decoding device 3, this decoding is performed. The apparatus 3 can perform iterative decoding with a maximum of 100 iterations. In this decoding apparatus 3, when iterative decoding with 20 iterations is performed, the 40th element decoder from the head performs normal soft output decoding processing and interleaving processing, and the remaining 160 element decodings. The device may perform at least a delay mode operation for performing a delay between the soft output decoding circuit 90 and the interleaver 100 and the processing time required.
[0832]
In this way, the decoding device 3 has a plurality of delay modes, and by switching and using these delay modes, the entire decoding delay can be reduced only by connecting a plurality of element decoders 50 made of LSIs of the same wiring. It is possible to perform iterative decoding with the number of repetitions being changed without changing, and it is possible to repeatedly decode any code such as PCCC, SCCC, TTCM, or SCTCM at a desired number of repetitions.
[0833]
The element decoder 50 includes a selector 120.2For example, as shown in “4-6”, the selector 120 performs a selection operation based on the operation mode information CBF in order to operate the soft output decoding circuit 90 or the interleaver 100 as a single unit.Four, 1207, And additionally, the selector 120Three, 120Five, 1206Various delay modes may be realized by using a plurality of selectors.
[0834]
4-8 Next stage information generation function
This is a feature of the control circuit 60 and the control circuit 400 in the interleaver 100 described above.
[0835]
When the decoding apparatus 3 is configured by concatenating a plurality of element decoders, each element decoder needs to be provided with various types of information regarding codes. The various types of information include a closing time and closing state as closing information, a puncture pattern as erasing information, and frame top information. In order to give such information to each element decoder, it is conceivable to generate necessary information by an external control circuit or the like, but this leads to an increase in the number of parts and an increase in the board area.
[0836]
Therefore, the element decoder 50 generates and outputs information necessary for the element decoder at the next stage by using the interleaver 100 that can grasp information such as the top information of the frame and the interleave length. That is, as described above, the element decoder 50 uses the control circuit 60 to terminate the termination position information CNFT, termination period information CNFL, termination state information CNFD, puncture cycle information CNEL, and puncture pattern, which are static information. Information CNEP is generated. Then, the element decoder 50 includes the end position information CNFT, the end period information CNFL, the end state information CNFD, the puncture period information CNEL, and the puncture pattern information CNEP generated by the control circuit 60 as an interleaver 100. Is input by the control circuit 400 in the interleaver 100 based on these pieces of information, termination time information IGT, termination state information IGS, erase position information IGE, and interleaver non-output position information INO, Is generated. Then, under the control of the control circuit 400, the interleaver 100 generates the generated termination time information IGT, termination state information IGS, erasure position information after the time corresponding to the interleave length has elapsed since the information was input from the control circuit 60. IGE and interleaver non-output position information INO are output. The interleaver 100 also includes a selector 120.FiveThe interleave start position signal TIS supplied from is delayed by the interleave length, that is, the same time as the processing time required by the interleaver 100, to generate and output a delayed interleave start position signal IDS.
[0837]
By doing so, the element decoder 50 generates the generated end time information IGT, end state information IGS, erase position information IGE, interleaver non-output position information INO, and delayed interleave start position signal IDS. It is possible to easily output in synchronization with the head.
[0838]
As described above, the decoding device 3 does not need to have a control circuit for generating various types of information externally, can reduce the number of components, and can use the same arbitrary code such as PCCC, SCCC, TTCM, or SCTCM. It is possible to repeatedly perform decoding by simply connecting a plurality of element decoders 50 made of wiring LSIs.
[0839]
The element decoder 50 does not generate various information by the control circuit 400 in the interleaver 100 and outputs it in synchronization with the head of the frame, but generates various information in synchronization with the interleave start position signal TILS. You may do it. In other words, the decoding device 3 includes a control circuit that does not generate information necessary for the next-stage element decoder in the previous-stage element decoder, but that each element decoder generates various information such as termination information and erasure information. These pieces of information may be generated in synchronization with the beginning of the frame of the input data.
[0840]
4-9 System verification function
Selector 120 described above8, 1209, 120TenAnd a feature relating to the signal line 130.
[0841]
The element decoder 50 has a huge number of pins, for example, several hundreds. Therefore, when the decoding device 3 is configured by connecting a plurality of element decoders 50, a state of poor continuity due to, for example, a solder failure is likely to occur.
[0841]
Therefore, the element decoder 50 includes an externally received value TR, external information or interleave data TEXT, erasure information TERS, prior probability information erasure information TEAP, termination time information TTNP, termination state information TTNS, and interleave start position. The system includes a signal line 130 that bundles signal lines for transmitting each of the signals TILS and communicates to the outside, and transmits a through signal through the signal line 130, thereby verifying a system such as a continuity test.
[0843]
At this time, the element decoder 50 generates verification mode information CTHR by the control circuit 60, and the selector 120 based on the verification mode information CTHR.8, 1209, 120TenBy performing the selection operation according to, switching to the verification mode for performing system verification is performed.
[0844]
Specifically, the selector 1208As described above, if the verification mode information CTHR indicates the verification mode, the through signal transmitted through the signal line 130 is selected, and the next stage element decoder is used as the delayed received value RN. The received value R is output to a terminal where the received value R is input.
[0845]
In addition, the selector 1209As described above, when the verification mode information CTHR indicates the verification mode, the through signal transmitted through the signal line 130 is selected and the soft output INT is selected as the soft output INT in the next stage element decoder. Output to a terminal to which external information or interleave data EXT is input.
[0846]
Furthermore, the selector 120TenAs described above, when the verification mode information CTHR indicates the verification mode, the through signal transmitted through the signal line 130 is selected, the next stage termination time information TNPN, and the next stage termination state information. As TNSN, next stage erasure position information ERSN, next stage prior probability information erasure information EAPN, and next stage interleave start position signal ILSN, termination time information TNP, termination state information TNS, erasure information TERS, The prior probability information erasure information TEAP and the interleave start position signal ILS are respectively output to terminals to which they are input.
[0847]
As described above, the decoding device 3 has a function of outputting an input signal from the outside as it is, and can easily determine a conduction failure point by inputting and outputting a through signal in the verification mode. Even when a plurality of element decoders having a large number of pins are connected, the system can be easily verified, and excellent convenience can be provided.
[0848]
5. Features of soft output decoding circuit
Next, description will be made for each feature related to the soft output decoding circuit 90. The following features are provided as functions of the soft-output decoding circuit 90. In order to clarify the concept of the features, the following features will be described with reference to an appropriately simplified drawing.
[0849]
5-1 How to have code information
This is a feature related to the code information generation circuit 151 described above. The element decoder 50 can soft-output decode a code by an arbitrary element encoder such as the convolutional encoder shown in FIGS. 14 to 17 with the same configuration regardless of the code. . In order to achieve this object, the element decoder 50 has the following four features.
[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 output decoding circuit 90 pays attention to the fact that the number of branches on the trellis is equal to or less than a predetermined value, and by considering the branches on the trellis mainly without considering the code configuration. An input / output pattern is calculated, and this information is used when calculating the log likelihood Iγ and the log soft output Iλ. Specifically, the soft output decoding circuit 90 calculates the input / output pattern of all branches on the trellis by the code information generation circuit 151, and uses this information as the branch input / output information BIO, and the Iγ distribution circuit 157 and the soft output. This is supplied to the calculation circuit 161.
[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 output decoding circuit 90 calculates branch input / output information calculated from the transition destination state to the transition source state in the reverse order of the time axis in order to calculate the log likelihood Iβ. Although necessary, this is calculated as the branch input / output information BI by the branch input / output information calculation circuit 223 in the Iγ distribution circuit 157. In other words, the branch input / output information BI is information based on the branch output from the transition source state.
[0853]
In this way, the element decoder 50 can perform decoding of an arbitrary trellis code having a predetermined number of branches or less with the same configuration. That is, in general, the element decoder 50 is required to perform decoding based on a specific trellis corresponding to each code configuration. Can be decrypted. At this time, the element decoder 50 can perform decoding even when the element encoder is a non-linear code.
[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 element decoder 50 is not limited to the number of branches.
[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 shift register 201 is used.Three, Shift register 2012And shift register 2011Is the shift register 201 at the next time.Four, Shift register 201ThreeAnd shift register 2012Therefore, the transition destination state is limited to “0000” and “0001”. As described above, in the Bozencraft type convolutional encoder, the transition destination state is determined when the number of memories is determined. Therefore, in the Bozencraft type convolutional encoder, it is possible to easily obtain the presence or absence of a branch connecting an arbitrary state and an arbitrary state regardless of the code configuration.
[0857]
Therefore, the soft output decoding circuit 90 uses the code information generation circuit 151 to uniquely number the branches connecting the transition source state and the transition destination state. That is, the soft output decoding circuit 90 performs branch numbering using the uniqueness of the trellis when decoding a Bozencraft type convolutional code. Then, the soft output decoding circuit 90 calculates an input / output pattern for each numbered branch, and uses this information as the branch input / output information BIO obtained along the time axis, and the Iγ distribution circuit 157 and the soft output calculation circuit 161. To supply. Further, the soft output decoding circuit 90 is determined by the branch input / output information calculation circuit 223 in the Iγ distribution circuit 157 based on at least the memory number information MN and the branch input / output information BIO along the reverse order of the time axis. The output information BI is calculated and the Iγ0 Iγ distribution circuit 224 is calculated.1And Iγ1 distribution circuit 224 for Iβ12To supply.
[0858]
Specifically, the soft output decoding circuit 90 performs code information when decoding the Bozencraft type convolutional encoder whose encoding rate is represented by “1 / n” shown in FIG. For example, as shown in FIG. 67, the generation circuit 151 uniquely numbers each branch according to the number of memories, and calculates branch input / output information BIO along the time axis. That is, when the code information generation circuit 151 performs decoding of the convolutional encoder having the number of memories “4”, the soft output decoding circuit 90 performs numbering as shown in FIG. When decoding the convolutional encoder with the number “3”, numbering is performed as shown in FIG. 5B, and when decoding the convolutional encoder with the number of memories “2”. When the numbering is performed as shown in FIG. 5C and the convolutional encoder having the memory number “1” is decoded, the numbering is performed as shown in FIG. In the figure, for example, “0” and “1” are assigned to the two branches that are input to the state having the state number “0”, and the state number is input to the state “1”. The numbers “2” and “3” are attached to the two branches.
[0859]
On the other hand, the soft output decoding circuit 90 uses the branch input / output information calculation circuit 223 to uniquely number each branch according to the number of memories, for example, as shown in FIG. The branch input / output information BI is calculated. That is, when the branch input / output information calculation circuit 223 performs decoding of the convolutional encoder with the number of memories “4”, the soft output decoding circuit 90 performs numbering as shown in FIG. When decoding the convolutional encoder with the number of memories “3”, the numbering is performed as shown in FIG. 5B, and the decoding of the convolutional encoder with the number of memories “2” is performed. Are numbered as shown in FIG. 4C, and when decoding is performed for a convolutional encoder having a memory number of “1”, numbering is performed as shown in FIG. In the figure, for example, the numbers “0” and “1” are assigned to the two branches that are output from the state with the state number “0”, and the states are output from the state with the state number “1”. Numbers “2” and “3” are attached to each of the two branches.
[0860]
In addition, the soft output decoding circuit 90 performs the decoding of the Bozencraft type convolutional encoder whose encoding rate is represented by “2/3” shown in FIG. Thus, for example, as shown in FIG. 69, each branch is uniquely numbered according to the number of memories, and branch input / output information BIO along the time axis is calculated. That is, when the code information generation circuit 151 performs decoding of the convolutional encoder having the number of memories “3”, the soft output decoding circuit 90 performs numbering as shown in FIG. When decoding a convolutional encoder with the number “2”, numbering is performed as shown in FIG. In the figure, for example, four branches that are input to the state with the state number “0” are assigned numbers “0”, “1”, “2”, “3”, and the state number is The numbers “4”, “5”, “6”, and “7” are attached to the four branches that are input to the “1” state.
[0861]
On the other hand, the soft output decoding circuit 90 uses the branch input / output information calculation circuit 223 to uniquely number each branch according to the number of memories, for example, as shown in FIG. The branch input / output information BI is calculated. That is, when the branch input / output information calculation circuit 223 performs decoding of the convolutional encoder with the number of memories “3”, the soft output decoding circuit 90 performs numbering as shown in FIG. When decoding a convolutional encoder having a memory number “2”, numbering is performed as shown in FIG. In the figure, for example, four branches that are output from a state with a state number “0” are assigned numbers “0”, “1”, “2”, and “3”, and the state number is Numbers “4”, “5”, “6”, and “7” are attached to the four branches output from the “1” state.
[0862]
By doing in this way, the soft output decoding circuit 90 can uniquely grasp the transition source state and the transition destination state from the branch number regardless of the code configuration. Therefore, for example, when numbering is performed depending on the sign, such as numbering for a branch when a certain input is made at a certain state, the transition source state and the transition destination state must be uniquely determined. However, since the soft output decoding circuit 90 uses the uniqueness of the trellis to perform branch numbering depending on the state, the relationship between the branch number and the input / output pattern is uniquely determined. Decoding can be performed with simple control.
[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 output decoding circuit 90 uses the code information generation circuit 151 to perform numbering based on the branch input as viewed from the transition destination state, and calculates an input / output pattern for each numbered branch. This information is supplied to the Iγ distribution circuit 157 and the soft output calculation circuit 161 as branch input / output information BIO obtained along the time axis. Then, the soft output decoding circuit 90 separately calculates the transition source state based on the code configuration by the control signal generation circuit 240 in the Iα calculation circuit 158 and supplies it to the addition comparison selection circuit 242 as the control signal PST. In addition, the soft output decoding circuit 90 outputs the output from the state of the transition source based on the generation matrix information CG that affects at least the output at each time by the branch input / output information calculation circuit 223 in the Iγ distribution circuit 157. The numbering is performed based on the branches, and the input / output pattern for each numbered branch is calculated, and this information is used as the branch input / output information BI obtained in the reverse order to the time axis. Distribution circuit 2241And Iγ1 distribution circuit 224 for Iβ12To supply. Then, the soft output decoding circuit 90 separately calculates the transition destination state based on the code configuration by the control signal generation circuit 280 in the Iβ calculation circuit 159, and adds the Iβ0 addition comparison selection circuit 281 and the Iβ1 addition as the control signal NST. The comparison selection circuit 282 is supplied.
[0866]
Specifically, the soft output decoding circuit 90 generates code information when performing decoding of a Massy type convolutional encoder whose encoding rate shown in FIG. 16 is represented by “2/3”. For example, as shown in FIG. 71, the circuit 151 numbers each branch according to the number of memories, and calculates branch input / output information BIO along the time axis. That is, when the code information generation circuit 151 performs decoding of the convolutional encoder having the number of memories “3”, the soft output decoding circuit 90 performs numbering as shown in FIG. When decoding a convolutional encoder with the number “2”, numbering is performed as shown in FIG. In the figure, for example, four branches that are input to the state with the state number “0” are assigned numbers “0”, “1”, “2”, “3”, and the state number is The numbers “4”, “5”, “6”, and “7” are attached to the four branches that are input to the “1” state. Here, a specific example of the numbering method for the four branches input to each state will not be described in detail, but the soft output decoding circuit 90 may, for example, input pattern information and transition as necessary. Using the original state information, each branch can be uniquely numbered.
[0867]
On the other hand, the soft output decoding circuit 90 uses the branch input / output information calculation circuit 223 to number each branch according to the number of memories, as shown in FIG. 72, for example, and branch input / output along the reverse order of the time axis. Information BI is calculated. That is, when the branch input / output information calculation circuit 223 performs decoding of the convolutional encoder with the number of memories “3”, the soft output decoding circuit 90 performs numbering as shown in FIG. When decoding a convolutional encoder having a memory number “2”, numbering is performed as shown in FIG. In the figure, for example, four branches that are output from a state with a state number “0” are assigned numbers “0”, “1”, “2”, and “3”, and the state number is Numbers “4”, “5”, “6”, and “7” are attached to the four branches output from the “1” state. Although a specific example of the numbering method for the four branches input to each state will not be described in detail here, the soft output decoding circuit 90 uses only the information of the input pattern, for example, for each branch. Unique numbering can be performed.
[0868]
As described above, the soft output decoding circuit 90 separately performs numbering along the time axis and numbering along the reverse order of the time axis for each state, calculates the input / output pattern, Based on the configuration, a transition source state and a transition destination state are calculated. By doing so, the soft output decoding circuit 90 can decode even a Massy type convolutional code in which the shape of the trellis changes according to the parameter of the element code.
[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 output decoding circuit 90 uses the code information generation circuit 151 to perform numbering for all branches in consideration of the entire trellis based on the uniqueness of the structure of the entire trellis. Then, the soft output decoding circuit 90 calculates an input / output pattern for each numbered branch, and uses this information as the branch input / output information BIO obtained along the time axis, and the Iγ distribution circuit 157 and the soft output calculation circuit 161. To supply. Further, the soft output decoding circuit 90 is determined by the branch input / output information calculation circuit 223 in the Iγ distribution circuit 157 based on at least the memory number information MN and the branch input / output information BIO along the reverse order of the time axis. The output information BI is calculated and the Iγ0 Iγ distribution circuit 224 is calculated.1And Iγ1 distribution circuit 224 for Iβ12To supply.
[0872]
Specifically, the soft output decoding circuit 90 generates code information when performing decoding of a Massy type convolutional encoder whose encoding rate is represented by “3/3” shown in FIG. For example, as shown in FIG. 73, the circuit 151 uniquely numbers each branch according to the number of memories, and calculates branch input / output information BIO along the time axis. That is, when the code information generation circuit 151 performs decoding of the convolutional encoder with the number of memories “2”, the soft output decoding circuit 90 performs numbering as shown in FIG. When decoding a convolutional encoder whose number is “1”, numbering is performed as shown in FIG. In FIG. 5A, for example, “0, 1”, “2” is added to four sets of branches obtained by bundling two each of the eight branches input to the state having the state number “0”. , 3 ”,“ 4, 5 ”,“ 6, 7 ”, and four sets obtained by bundling each of the eight branches input to the state with the state number“ 1 ”. The numbers “8, 9”, “10, 11”, “12, 13”, “14, 15” are attached to the branches. Here, although a specific example of the numbering method for a plurality of sets of branches input to each state and the numbering method for each parallel path in one set of branches will not be described in detail, the soft output decoding circuit 90, for example, performs case classification based on the generation matrix information CG. In each case, unique numbering can be performed for each branch by using the input pattern information and the transition source state information.
[0873]
On the other hand, the soft output decoding circuit 90 uses the branch input / output information calculation circuit 223 to uniquely number each branch according to the number of memories, for example, as shown in FIG. The branch input / output information BI is calculated. That is, the soft output decoding circuit 90 performs numbering as shown in FIG. 5A when the branch input / output information calculation circuit 223 decodes the convolutional encoder having the memory number “2”. When decoding the convolutional coder having the memory number “1”, numbering is performed as shown in FIG. In FIG. 2A, for example, “0, 1”, “2” is added to four sets of branches obtained by bundling two each of the eight branches output from the state having the state number “0”. , 3 ”,“ 4, 5 ”,“ 6, 7 ”, and four sets obtained by bundling each of the eight branches output from the state with the state number“ 1 ”. The numbers “8, 9”, “10, 11”, “12, 13”, “14, 15” are attached to the branches. Here, although a specific example of the numbering method for a plurality of sets of branches input to each state and the numbering method for each parallel path in one set of branches will not be described in detail, the soft output decoding circuit 90, for example, performs case classification based on the generation matrix information CG. In each case, unique numbering can be performed for each branch by using the input pattern information and the transition source state information.
[0874]
In this way, the soft output decoding circuit 90, when the trellis has a trellis structure in which the path reaches all the states at the next time from each state, all of the trellises are based on the uniqueness of the structure of the entire trellis. By numbering the branches, it is possible to uniquely grasp the transition source state and the transition destination state from the branch number regardless of the code configuration. Therefore, the soft output decoding circuit 90 can uniquely grasp the transition source state number and the transition destination state number, and can perform decoding with simple control.
[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 information generation circuit 153 described above. In the case of repeatedly decoding PCCC, SCCC, TTCM, and SCTCM codes, termination processing is essential. Therefore, the element decoder 50 generates termination information by the following two methods.
[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 output decoding circuit 90 inputs information corresponding to the number of input bits for the convolutional encoder as the termination information when terminating the Bozencraft type convolutional code. To specify the termination state.
[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 decoding circuit 90 generates 1-bit “0” corresponding to the number of input bits in one time slot as the termination state information TSM as shown in FIG. By generating the termination state information TSM for two time slots, the termination state of “00” can be specified.
[0879]
By doing in this way, the element decoder 50 can perform termination processing of an arbitrary Bozencraft type convolutional code whose coding rate is represented by k / n. The element decoder 50 can be configured to minimize the number of pins for inputting termination information. For example, when the termination pattern is long and continuous termination processing is required, the termination information is appropriately generated. It is possible to avoid inconsistencies in the input of termination information.
[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 output decoding circuit 90 specifies the termination state by inputting information indicating the termination state in one time slot as the termination information.
[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 circuit 90 generates a 2-bit “00” indicating the termination state as termination state information TSM in one time slot by the termination information generation circuit 153, thereby terminating the termination state “00”. Can be specified.
[0883]
By doing in this way, the element decoder 50 can perform termination processing for any trellis code including a Massy type convolutional code whose trellis structure changes according to the code configuration. Of course, the element decoder 50 can also perform the termination process of the convolution code of the Bosencraft type using this method. This method can also be applied to decoding other than soft output decoding such as so-called Viterbi decoding.
[0884]
5-3 Erase position processing
This is a feature relating to the received value and prior probability information selection circuit 154 described above.
[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 output decoding circuit 90 is a position where no code output exists based on the internal erasure position information IERS supplied from the internal erasure information generation circuit 152 by the received value and prior probability information selection circuit 154. Is replaced with a symbol having a likelihood of “0”. That is, the soft output decoding circuit 90 determines that the probability that the bit corresponding to the position where the code output does not exist is “0” or “1” is “1/2”. A situation equivalent to being erased is generated without affecting.
[0887]
By doing in this way, the element decoder 50 does not need to be separately provided with a storage circuit that holds information indicating a position where no code output exists, and thus the circuit scale can be reduced.
[0888]
5-4 Calculation and distribution of log likelihood Iγ
This is a feature relating to the Iγ calculation circuit 156 and the Iγ distribution circuit 157 described above. As described above, the element decoder 50 performs soft-output decoding of a code by an arbitrary element encoder such as the convolutional encoder shown in FIGS. 14 to 17 with the same configuration regardless of the code. It is something that can be done. In order to achieve this object, the element decoder 50 has the following four characteristics regarding the calculation and distribution of the log likelihood Iγ.
[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 output decoding circuit 90 calculates log likelihoods Iγ for all possible input / output patterns by the Iγ calculation circuit 156, and sets the code configuration by the Iγ distribution circuit 157. Distribution is performed according to the input / output pattern determined accordingly.
[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 output decoding circuit 90 calculates all 32 input / output patterns by the information / code Iγ calculation circuit 221 in the Iγ calculation circuit 156, as schematically shown in FIG. In the figure, “Iγ (00/000)” indicates the log likelihood Iγ corresponding to the branch whose input data / output data is “00/000” in the element encoder. Then, the soft output decoding circuit 90 determines the Iα Iγ distribution circuit 224 in the Iγ distribution circuit 157 described above according to the input / output pattern determined according to the code configuration.ThreeIβ distribution circuit 224 for Iβ01Or Iγ distribution circuit 224 for Iβ1232 selectors 520 corresponding to each of15202, ..., 52032, One log likelihood Iγ is selected from the 32 log likelihoods Iγ (00/000), Iγ (01/000),..., Iγ (11/111), and is selected. After performing predetermined processing on the obtained 32 log likelihoods Iγ, log likelihoods Iγ (0), Iγ (1),... Corresponding to the branch numbers 0, 1,. .., distributed as Iγ (31) and output.
[0891]
In this way, the element decoder 50 can perform decoding of an arbitrary trellis code having a predetermined number of branches or less with the same configuration. In particular, this method is effective when the number of input / output patterns is small and the number of branches on the trellis is large.
[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 Iγ distribution circuit 157 is used.ThreeIβ distribution circuit 224 for Iβ01Or Iγ distribution circuit 224 for Iβ12Has at least 32 selectors for selecting one signal from 32 signals, that is, for selecting 32 to 1, and the circuit scale may be enormous.
[0893]
Therefore, the soft output decoding circuit 90 does not calculate all 32 input / output patterns by the Iγ calculation circuit 156, but calculates log likelihoods Iγ for at least some of the input / output patterns, and the Iγ distribution circuit. After selecting a desired log likelihood Iγ by 157, each selected log likelihood Iγ is added.
[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 output decoding circuit 90 performs logarithmic likelihood corresponding to the four input patterns and the eight output patterns by the information / code Iγ calculation circuit 221 in the Iγ calculation circuit 156. The degree Iγ is calculated. The soft output decoding circuit 90 then selects the selector 530 in the Iγ distribution circuit 157 according to the input / output pattern determined according to the code configuration.1Thus, one log likelihood Iγ is selected from the four log likelihoods Iγ corresponding to the four input patterns, and the selector 530 in the Iγ distribution circuit 157 is selected.2Thus, one log likelihood Iγ is selected from eight log likelihoods Iγ corresponding to eight input patterns, and the two log likelihoods obtained by the adder 531 in the Iγ distribution circuit 157 are selected. After the degree Iγ is added and predetermined processing is performed, the logarithmic likelihood Iγ corresponding to the branch number is distributed and output. The Iγ distribution circuit 157 includes two such selectors 530.1, 5302And 32 at least 32 circuits having adders 531, the above-described Iα Iγ distribution circuit 224 is provided.ThreeIβ distribution circuit 224 for Iβ01Or Iγ distribution circuit 224 for Iβ12Each of these is configured.
[0895]
By doing in this way, the element decoder 50 does not need to include a selector having a huge circuit scale such as a selector that performs 32-to-1 selection, and a circuit such as a selector that performs 4-to-1 selection and 8-to-1 selection. It suffices to include a selector and an adder having a small scale, and any trellis code having branches of a predetermined number or less can be decoded with the same configuration with a small circuit scale. In particular, this method is effective when there are many input / output patterns with respect to the number of branches on the trellis. In addition, this method can be used when, for example, the encoding apparatus 1 performs encoding by TTCM or SCTCM, or when input data and output data in the encoding apparatus 1 are decoded in units of symbols. This is extremely effective when the output bits cannot be separated bit by bit.
[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 output decoding circuit 90 corrects the distribution of the log likelihood Iγ in order to avoid that the log likelihood Iγ is clipped and it becomes difficult to express the difference between the appropriate log likelihoods. Normalization is performed.
[0900]
Specifically, when the soft output decoding circuit 90 calculates log likelihoods Iγ for all input / output patterns that can be obtained by the method shown in “5-4-1”, the following normalization is performed. I do. That is, the soft output decoding circuit 90 includes a plurality of log likelihoods Iγ (00/000) and Iγ (01/000) calculated by the information / code Iγ calculation circuit 221 by the Iγ normalization circuit 222 in the Iγ calculation circuit 156. ,..., Iγ (11/111), each logarithm so that the log likelihood Iγ corresponding to the one having the maximum probability γ is matched with the log likelihood corresponding to the maximum possible probability. Predetermined calculations are performed on the likelihoods Iγ (00/000), Iγ (01/000),..., Iγ (11/111).
[0901]
Specifically, when the element decoder 50 treats the log likelihood as a negative value, that is, when the above-described constant sgn is “+1”, the soft output decoding circuit 90 schematically shows as shown in FIG. , Iγ normalization circuit 222 in the Iγ calculation circuit 156, a plurality of log likelihoods Iγ (00/000), Iγ (01/000),. / 111), a plurality of log likelihoods Iγ (00/000), Iγ (01/000),... To match the one having the maximum value with the maximum value that can be expressed by the element decoder 50. , Iγ (11/111), a predetermined value is added.
[0902]
For example, the Iγ normalization circuit 222 has a plurality of log likelihoods Iγ (00/000), Iγ (01/000),..., Iγ (11/111) calculated at a certain time, respectively, as shown in FIG. Assuming that the distribution shown in (A) is exhibited, as shown in (B) in the figure, these log likelihoods Iγ (00/000), Iγ (01/000),..., Iγ ( 11/111), a plurality of log likelihoods Iγ (00/000), Iγ (01/000) are set so that the log likelihood Iγ (11/111) indicated by the plot X which is the maximum value is “0”. ,..., Iγ (11/111) is added with a predetermined value.
[0903]
In addition, when the element decoder 50 treats the log likelihood as a positive value, that is, when the above-described constant sgn is “−1”, the soft output decoding circuit 90 has an Iγ normalization circuit 222 in the Iγ calculation circuit 156. , Having a minimum value among a plurality of log likelihoods Iγ (00/000), Iγ (01/000),..., Iγ (11/111) calculated by the information / code Iγ calculating circuit 221. Is set to a predetermined value from each of a plurality of log likelihoods Iγ (00/000), Iγ (01/000),..., Iγ (11/111) so as to match the minimum value that can be expressed by the element decoder 50. The value of is subtracted.
[0904]
For example, the Iγ normalization circuit 222 has a plurality of log likelihoods Iγ (00/000), Iγ (01/000),..., Iγ (11/111) calculated at a certain time, respectively, as shown in FIG. Assuming that the distribution shown in (A) is exhibited, as shown in (B) in the figure, these log likelihoods Iγ (00/000), Iγ (01/000),..., Iγ ( 11/111), a plurality of log likelihoods Iγ (00/000), Iγ (01/000) so that the log likelihood Iγ (00/000) indicated by the minimum plot P is “0”. ),..., Iγ (11/111), a predetermined value is subtracted.
[0905]
The soft output decoding circuit 90 performs such normalization by the Iγ normalization circuit 222, performs clipping in accordance with a necessary dynamic range, and supplies it to the Iγ distribution circuit 157 as log likelihoods GA, GB0, and GB1. To do.
[0906]
The element decoder 50 performs such normalization at every time by the Iγ normalization circuit 222, thereby allowing the log likelihoods GA, GB0, GB1 supplied from the Iγ calculation circuit 156 to the Iγ distribution circuit 157. The number of bits can be reduced. In addition, the element decoder 50 can express a difference between appropriate log likelihoods without causing a situation in which a log likelihood having a large value and a high importance level is clipped. It can be carried out.
[0907]
Note that the element decoder 50 does not necessarily include the Iγ normalization circuit 222 inside the Iγ calculation circuit 156. For example, the element decoder 50 may be provided with the Iγ normalization circuit 222 in the subsequent stage of the Iγ distribution circuit 157. Of course, this technique is effective not only for decoding arbitrary codes but also for decoding fixed codes.
[0908]
5-4-4 Normalization to log likelihood Iγ for at least some input / output patterns
The soft output decoding circuit 90 performs the following normalization when calculating the log likelihood Iγ for at least some of the input / output patterns by the method shown in “5-4-2”. That is, the soft output decoding circuit 90 has the maximum probability γ among the plurality of log likelihoods Iγ corresponding to the input pattern calculated by the information / code Iγ calculation circuit 221 by the Iγ normalization circuit 222 in the Iγ calculation circuit 156. A predetermined calculation is performed on each log likelihood Iγ so that the log likelihood Iγ corresponding to the one having a value matches the log likelihood corresponding to the maximum value of the probable probability.
[0909]
Specifically, when the element decoder 50 treats the log likelihood as a negative value, that is, when the above-described constant sgn is “+1”, the soft output decoding circuit 90 is as shown in FIG. The element decoder 50 uses the Iγ normalization circuit 222 in the Iγ calculation circuit 156 to obtain the one having the maximum value among the plurality of log likelihoods Iγ corresponding to the input pattern calculated by the information / code Iγ calculation circuit 221. A predetermined value is added to each of the plurality of log likelihoods Iγ so as to match the maximum representable value, and a plurality of log likelihoods according to the output pattern calculated by the information / code Iγ calculation circuit 221 Normalization is performed by adding a predetermined value to each of the plurality of log likelihoods Iγ so that the Iγ having the maximum value matches the maximum value that can be expressed by the element decoder 50.
[0910]
In addition, when the element decoder 50 treats the log likelihood as a positive value, that is, when the above-described constant sgn is “−1”, the soft output decoding circuit 90 has an Iγ normalization circuit 222 in the Iγ calculation circuit 156. Thus, a plurality of log likelihoods Iγ corresponding to the input pattern calculated by the information / code Iγ calculation circuit 221 are adjusted so that the one having the minimum value matches the minimum value that can be expressed by the element decoder 50. A predetermined value is added to each of the log likelihoods Iγ, and a plurality of log likelihoods Iγ corresponding to the output pattern calculated by the information / code Iγ calculation circuit 221 have the minimum value, Normalization is performed by adding a predetermined value to each of the plurality of log likelihoods Iγ so as to match the minimum value that can be expressed by the element decoder 50.
[0911]
That is, the soft output decoding circuit 90 normalizes the log likelihood Iγ corresponding to the input pattern and the log likelihood Iγ corresponding to the output pattern.
[0912]
The soft output decoding circuit 90 performs such normalization by the Iγ normalization circuit 222, performs clipping in accordance with a necessary dynamic range, and supplies it to the Iγ distribution circuit 157 as log likelihoods GA, GB0, and GB1. To do.
[0913]
The element decoder 50 can reduce the scale of searching for the log likelihood Iγ having the maximum value or the minimum value by performing such normalization every time by the Iγ normalization circuit 222, Can be speeded up and the circuit scale can be reduced. The element decoder 50 can reduce the number of bits of the log likelihood GA, GB0, GB1 supplied from the Iγ calculation circuit 156 to the Iγ distribution circuit 157, and has a large value and high importance. Therefore, it is possible to express a difference between appropriate log likelihoods without causing a situation of being clipped, and to perform highly accurate decoding.
[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 element decoder 50, but all input / output values When a pattern appears, it is equivalent to normalization by the method shown in “5-4-3”, so that the performance does not deteriorate.
[0915]
Even in this case, the element decoder 50 does not necessarily include the Iγ normalization circuit 222 in the Iγ calculation circuit 156.
[0916]
5-5 Calculation of log likelihoods Iα and Iβ
This is a feature related to the Iα calculation circuit 158 and the Iβ calculation circuit 159 described above. In addition, some features relate to the Iγ distribution circuit 157. The element decoder 50 has the following nine characteristics when calculating the log likelihoods Iα and Iβ.
[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 output decoding circuit 90 uses the sum Iα + Iγ of the log likelihood Iα and the log likelihood Iγ obtained in the process of calculating the log likelihood Iα for calculation of the log soft output Iλ. Specifically, the soft output decoding circuit 90 does not directly output the calculated log likelihood Iα by the Iα calculation circuit 158 as described above, but instead of the calculated log likelihood Iα and the log likelihood Iγ. Output the sum. That is, the Iα calculation circuit 158 outputs the sum Iα + Iγ of the log likelihood Iα and the log likelihood Iγ obtained in the process of calculating the log likelihood Iα by the addition comparison selection circuits 241 and 242.
[0919]
By doing so, the element decoder 50 does not need to include a circuit for calculating the sum of the log likelihood Iα and the log likelihood Iγ necessary for calculating the log soft output Iλ. Reduction can be achieved.
[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 output decoding circuit 90, when decoding a code having a parallel path on the trellis, before calculating the log likelihoods Iα and Iβ, the logarithm corresponding to the parallel path in advance. A log-sum operation is performed on the likelihood Iγ. Specifically, the soft output decoding circuit 90 includes the Iβ0 parallel path processing circuit 225 in the Iγ distribution circuit 157 described above.1, Parallel path processing circuit 225 for Iβ12And Iα parallel path processing circuit 225ThreeThe log-sum operation is performed on the log likelihood Iγ corresponding to the parallel path, and the parallel paths are bundled.
[0922]
By doing so, the element decoder 50 can reduce the processing load of the Iα calculation circuit 158 and the Iβ calculation circuit 159, and can increase the processing speed without degrading the performance.
[0923]
The element decoder 50 has a function of bundling parallel paths in the Iγ distribution circuit 157, but is not limited to this configuration. That is, the element decoder 50 may bundle the log likelihoods Iγ corresponding to the parallel path before calculating the log likelihoods Iα and Iβ. In addition, here, two parallel paths are described as being bundled into one set, but an arbitrary number of parallel paths such as four may be bundled into one set.
[0924]
5-5-3 Common use of addition comparison selection circuit
The element decoder 50 can decode an arbitrary code. When the number of input bits is k, in order to decode each code, the element decoder 50 adds the log likelihoods Iα and Iβ. As an addition comparison selection circuit that performs a process of adding a correction term by a comparison selection process and log-sum correction, 2 in each state.kIt is necessary to separately provide the one corresponding to the trellis reached by the book path. In general, such an addition / comparison / selection circuit corresponds to a code having a large number of input bits k to the element encoder, so that the circuit scale increases and the processing load increases.
[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 output decoding circuit 90 does not include an addition comparison selection circuit corresponding to a code whose input bit number for the element encoder is k = 3, and the input bit number for the element encoder is k = 2 = ν. It is shared with the addition comparison selection circuit corresponding to a certain code.
[0928]
Specifically, the soft output decoding circuit 90 serves as an addition comparison selection circuit in the Iα calculation circuit 158, and is an addition comparison selection circuit 241 and 242 corresponding to a code having k = 1, 2 input bits to the element encoder. In addition, the addition comparison selection circuit in the Iβ calculation circuit 159 includes only addition comparison selection circuits 283 and 284 corresponding to codes whose input bit numbers k = 1 and 2 to the element encoder. The adder / comparison / selection circuits 242 and 284 perform processing for a code whose number of input bits to the generator is k = 3. That is, the soft output decoding circuit 90 corresponds to a code in which the number of input bits to the element encoder is k = 3 and the number of memories is ν = 2 <k, and a parallel path exists on the trellis. Instead of the addition comparison selection circuit, the addition comparison selection circuit corresponding to the code whose number of input bits to the element encoder is k = 2 = ν is shared.
[0929]
By doing in this way, the element decoder 50 does not need to include an addition comparison selection circuit corresponding to a code whose number of input bits to the element encoder is k = 3, and the circuit scale can be reduced. .
[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 element decoder 50, depending on the code configuration, for example, an addition comparison selection circuit corresponding to a code whose number of input bits to the element encoder is k = 2 is used as an element code. It is also possible to share with an addition comparison selection circuit corresponding to a code having a small number of input bits to the element encoder, such as sharing with an addition comparison selection circuit corresponding to a code whose input bit number to the encoder is k = 1. it can. For example, in a code in which the number of input bits to the element encoder is k = 3 and two sets of four parallel paths from each state reach any state, these four sets When the parallel paths are bundled into one set, it can be shared with an addition / comparison / selection circuit corresponding to a code whose number of input bits to the element encoder is k = 1. That is, the element decoder 50 has an input bit number k for the element encoder.1And the number of memories is v <k1And an addition comparison / selection circuit corresponding to a code having a parallel path on the trellis, and the number of input bits to the element encoder is k2<K1And an addition comparison / selection circuit corresponding to a code having a memory number ν.
[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 Iα calculation circuit 158 and the Iβ calculation circuit 159 is simplified, and the processing speed can be increased. As described above, it is effective in terms of the plane, but in order to calculate the logarithmic soft output Iλ which is the finally required result, individual metrics corresponding to each parallel path are required. That is, in the soft output decoding, when calculating the log soft output Iλ, the log likelihood Iγ when the parallel paths are bundled cannot be used as it is.
[0932]
Therefore, the soft output decoding circuit 90 decodes a code having a parallel path on the trellis. When the parallel path is bundled, the log likelihood Iγ used to calculate the log soft output Iλ is calculated. Output separately. Specifically, the soft output decoding circuit 90 includes the Iα Iγ distribution circuit 224 in the Iγ distribution circuit 157.ThreeLogarithmic likelihood PGA obtained by distributing the Iα parallel path processing circuit 225ThreeAnd is output separately as log likelihood DGAB.
[0933]
By doing so, the element decoder 50 can bundle parallel paths without affecting the decoding result, and as a result, the processing load of the Iα calculation circuit 158 and the Iβ calculation circuit 159 is reduced. Therefore, it is possible to increase the processing speed without degrading the performance. That is, the element decoder inevitably outputs a log likelihood Iγ used for calculating the log soft output Iλ when bundling parallel paths.
[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 output decoding circuit 90 is a case where a code having a parallel path on the trellis is decoded, and when the parallel path is bundled, what is an addition comparison selection circuit for calculating the log likelihood Iα? In addition, a circuit for calculating the sum Iα + Iγ of the log likelihood Iα and the log likelihood Iγ is provided, and the calculation result is used for calculating the log soft output Iλ. Specifically, the soft output decoding circuit 90 includes an Iα + Iγ calculation circuit 243 in the Iα calculation circuit 158, and the log likelihood Iα calculated by the addition comparison selection circuit 242 and the Iγ distribution circuit 157 by the Iα + Iγ calculation circuit 243. Is added to the log likelihood Iγ obtained in a state where the parallel paths are not bundled, and this sum is used to calculate the log soft output Iλ.
[0936]
By doing so, the element decoder 50 can bundle parallel paths without affecting the decoding result, and as a result, the processing load of the Iα calculation circuit 158 and the Iβ calculation circuit 159 is reduced. Therefore, it is possible to increase the processing speed without degrading the performance. That is, the element decoder 50 inevitably calculates the sum of the log likelihood Iα and the log likelihood Iγ used for calculating the log soft output Iλ when bundling parallel paths.
[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 output decoding circuit 90 uses the uniqueness of the trellis when decoding a Bosencraft-type convolutional code, and can easily decode even when the number of memories of the convolutional encoder is variable. Is provided. Specifically, the soft output decoding circuit 90 is not shown in FIGS. 34, 36, 39, and 40 described above, but the addition comparison selection circuits 241 and 242 in the Iα calculation circuit 158, and Iβ A selector for selecting log likelihoods Iα and Iβ to be processed is provided inside the addition comparison selection circuits 283 and 284 in the calculation circuit 159.
[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-sum operation circuits 245 described above.nAs the addition comparison / selection circuit 241 having four selectors 540, for example, as schematically shown in FIG.15402540Three540FourWhen the log likelihood AL at the next time is calculated, the log likelihood AL calculated at the previous time may be selected.
[0946]
That is, the addition comparison selection circuit 241 includes the selector 540.1Thus, of the log likelihood AL calculated at the previous time based on the memory number information MN, the log likelihood AL01 corresponding to the state whose transition source state number is “1” and the transition source state number “ Logarithmic likelihood AL02 corresponding to the state with 2 ”, log likelihood AL04 corresponding to the state with the transition source state number“ 4 ”, and logarithmic likelihood corresponding to the state with the state number“ 8 ”of the transition source One log likelihood of degree AL08 is selected. Selector 5401For example, when the element encoder has a memory number of “1”, the log likelihood AL01 is selected, and when the element encoder has a memory number of “2”. Selects the log likelihood AL02, and when the element encoder has the memory number “3”, selects the log likelihood AL04, and the element encoder has the memory number “4”. If it is, the log likelihood AL08 is selected. Log-sum operation circuit 2451, 2452Is supplied with the log likelihood AL00 as the log likelihood A0 and the selector 5401The log likelihood selected by is supplied as the log likelihood A1.
[0947]
Further, the addition comparison selection circuit 241 includes a selector 540.2Thus, of the log likelihood AL calculated at the previous time based on the memory number information MN, the log likelihood AL03 corresponding to the state having the transition source state number “3” and the transition source state number “ One log likelihood is selected from the log likelihood AL05 corresponding to the state of “5” and the log likelihood AL09 corresponding to the state of which the transition state number is “9”. Selector 5402For example, when the element encoder has a memory number of “2”, the log likelihood AL03 is selected, and when the element encoder has a memory number of “3”. Selects the log likelihood AL05, and if the element encoder has a memory number of “4”, the log likelihood AL09 is selected. Log-sum operation circuit 245Three, 245FourIs supplied with the log likelihood AL01 as the log likelihood A0 and the selector 5402The log likelihood selected by is supplied as the log likelihood A1.
[0948]
Further, the addition comparison selection circuit 241 includes a selector 540.ThreeThus, of the log likelihood AL calculated at the previous time based on the memory number information MN, the log likelihood AL06 corresponding to the state whose transition source state number is “6” and the transition source state number “ One log likelihood is selected from the log likelihood AL10 corresponding to the state 10 ″. Selector 540ThreeFor example, when the element encoder has a memory number of “3”, AL06 is selected, and when the element encoder has a memory number of “4”, AL10 is selected. Select. Log-sum operation circuit 245Five, 2456Is supplied with the log likelihood AL02 as the log likelihood A0 and the selector 540ThreeThe log likelihood selected by is supplied as the log likelihood A1.
[0949]
Furthermore, the addition comparison selection circuit 241 includes a selector 540.FourThus, based on the memory number information MN, of the log likelihood AL calculated at the previous time, the log likelihood AL07 corresponding to the state whose transition source state number is “7” and the transition source state number “ One log likelihood of the log likelihood AL11 corresponding to the state 11 ″ is selected. Selector 540FourFor example, if the element encoder has a memory number of “3”, AL07 is selected, and if the element encoder has a memory number of “4”, AL11 is selected. Select. Log-sum operation circuit 2457, 2458Is supplied with the log likelihood AL03 as the log likelihood A0 and the selector 540FourThe log likelihood selected by is supplied as the log likelihood A1.
[0950]
In this way, the soft output decoding circuit 90 can decode a Bozencraft type convolutional code having a variable number of memories by including a selector in the addition comparison selection circuit. That is, the soft output decoding circuit 90 can efficiently overlap the trellis of the code according to the number of memories by using the uniqueness of the trellis of the Bozencraft convolutional code. It is possible to easily realize the element decoder 50 that enables decoding of the above.
[0951]
Here, the addition comparison selection circuit 241 in the Iα calculation circuit 158 has been described as an example, but the element decoder 50 is used in the addition comparison selection circuit 242 and the addition comparison selection circuits 283 and 284 in the Iβ calculation circuit 159. Has the same function.
[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 output decoding circuit 90 performs normalization for correcting the distribution bias of the log likelihoods Iα and Iβ.
[0955]
As the first normalization method, as in the normalization method for the log likelihood Iγ shown in “5-4-3”, when the element decoder 50 treats the log likelihood as a negative value, that is, When the constant sgn described above is “+1”, the Iα normalization circuits 250 and 272 in the Iα calculation circuit 158, the Iβ0 normalization circuits 291 and 308 in the Iβ calculation circuit 159, etc. A predetermined value is added to each of the plurality of log likelihoods Iα and Iβ so that the one having the maximum value among the log likelihoods Iα and Iβ is matched with the maximum value that can be expressed by the element decoder 50. What to do is considered. As a first normalization method, when the element decoder 50 treats the log likelihood as a positive value, that is, when the above-described constant sgn is “−1”, the Iα normalization in the Iα calculation circuit 158 is performed. Of the plurality of log likelihoods Iα and Iβ calculated every time by the Iβ0 normalization circuits 291 and 308 in the conversion circuits 250 and 272 and the Iβ calculation circuit 159 It is possible to subtract a predetermined value from each of a plurality of log likelihoods Iα and Iβ so that 50 matches the minimum representable value.
[0956]
The log-sum operation circuit 245 in the Iα calculation circuit 158 that performs normalization by the first method.n, 256nAnd a log-sum operation circuit 286 in the Iβ calculation circuit 159n292nCan be expressed as a log-sum operation circuit 550 schematically shown in FIG. That is, the log-sum calculation circuit 550 adds the log likelihood Iγ and the log likelihoods Iα and Iβ calculated one time ago by the adder 551 and corrects the obtained data by the correction term calculation circuit 552. Calculate the value of the term. Then, the log-sum operation circuit 550 adds the data from the adder 551 and the data from the correction term calculation circuit 552 by the adder 533, and determines based on the data from the adder 553 by the normalization circuit 554. Based on the information JD, the above-described normalization is performed. The normalized data is delayed by one time by the register 555, supplied to the adder 551 as log likelihoods Iα and Iβ, and output to the outside.
[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 normalization circuit 554 performs normalization as shown in FIG. Here, the maximum value or the minimum value that can be expressed by the element decoder 50 is set to “0”.
[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 adder 551 is represented by a + g as shown in FIG. The maximum value or the minimum value of the sum Iα + Iγ of the log likelihood Iα and the log likelihood Iγ at this time is represented as M1. Subsequently, the dynamic range of the data after the log-sum calculation obtained through the processing by the correction term calculation circuit 552 and the adder 553 is represented by a + g because the dynamic range by the log-sum calculation does not increase. The maximum value or minimum value of the data at this time is represented as M2.
[0959]
The normalization circuit 554 performs normalization so that the maximum value or the minimum value M2 of the data after the log-sum calculation is set to “0”, and clips a value having a dynamic range of a or more. At this time, the normalization circuit 554 obtains a value to be added or subtracted from the data after the log-sum calculation based on the determination information JD, and performs normalization. Further, the normalization circuit 554 performs the same normalization on the log likelihood Iβ.
[0960]
The soft output decoding circuit 90 performs such normalization every time, so that a logarithmic likelihood having a large value and a high importance is not clipped, and a difference between appropriate log likelihoods is not caused. Can be expressed, and high-precision decoding can be performed. In particular, the soft output decoding circuit 90, when performing normalization with the log likelihood with the maximum or minimum value being “0”, the log likelihood takes only a negative value or a positive value. The negative dynamic direction is not required, the required dynamic range can be minimized, and the circuit scale can be reduced.
[0961]
The soft output decoding circuit 90 can also use other normalization methods. That is, the soft output decoding circuit 90 uses a plurality of logarithmic likelihoods calculated by the Iα normalization circuits 250 and 272 in the Iα calculation circuit 158 and the Iβ0 normalization circuits 291 and 308 in the Iβ calculation circuit 159 as the second method. When the log likelihoods Iα and Iβ corresponding to the metric having the maximum probability out of the degrees Iα and Iβ exceed a predetermined value, the predetermined value is set for each of the plurality of log likelihoods Iα and Iβ. Perform the operation used.
[0962]
Specifically, the soft output decoding circuit 90 performs the Iα normalization in the Iα calculation circuit 158 when the element decoder 50 treats the log likelihood as a negative value, that is, when the above-described constant sgn is “+1”. Among the plurality of log likelihoods Iα and Iβ calculated by the Iβ0 normalization circuits 291 and 308 in the circuits 250 and 272 and the Iβ calculation circuit 159, when the one having the maximum value exceeds a predetermined value, a plurality When a predetermined value is added to each of the log likelihoods Iα and Iβ and the element decoder 50 treats the log likelihood as a positive value, that is, when the above-described constant sgn is “−1”, The minimum value among the plurality of log likelihoods Iα and Iβ calculated by the Iα normalization circuits 250 and 272 in the Iα calculation circuit 158 and the Iβ0 normalization circuits 291 and 308 in the Iβ calculation circuit 159 is calculated. When what has exceeded a predetermined value, the predetermined value is subtracted from each of the plurality of log likelihoods Iα and Iβ.
[0964]
In particular, the soft output decoding circuit 90 uses the half of the dynamic range as the predetermined value, so that the normalization process becomes very simple.
[0964]
This will be described using the log-sum operation circuit 550 shown in FIG. 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. If it is assumed that the value of the log likelihood Iα having the maximum value or the minimum value corresponding to the metric having the maximum probability is expressed as z <x / 2, the normalization circuit 554 is shown in FIG. Normalization like this will be performed.
[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 adder 551 is expressed by x + g as described above. Further, the maximum value or the minimum value of the sum Iα + Iγ of the log likelihood Iα and the log likelihood Iγ at this time is represented by min (z + g, x), which is the smaller one of z + g and x. Subsequently, the dynamic range of the data after the log-sum calculation obtained through the processing by the correction term calculation circuit 552 and the adder 553 is expressed by x + g because the dynamic range by the log-sum calculation does not increase. The maximum value or the minimum value of the data at this time is represented by min (z + g, x) + log2 because it changes at most by log2 (natural logarithm of 2) that is the maximum value of the correction term.
[0966]
When the normalization circuit 554 determines that the value of min (z + g, x) + log2 exceeds x / 2, which is 1/2 of the dynamic range x of the log likelihood Iα, Normalization is performed by subtracting x / 2 from the data, and values having a dynamic range of x or more are clipped. The maximum value or the minimum value of the data at this time is represented by min (z + g, x) + log2−x / 2. The normalization circuit 554 performs the same normalization on the log likelihood Iβ.
[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 normalization circuit 554 performs normalization on the data after the log-sum operation in which the most significant bit is “1” by performing a process of inverting the most significant bit to “0”. Can be made.
[0968]
As described above, when the soft output decoding circuit 90 determines that the log likelihoods Iα and Iβ corresponding to the metric with the highest probability out of the calculated log likelihoods Iα and Iβ exceed a predetermined value. In addition, it is possible to perform normalization by performing an operation using the predetermined value for each of the plurality of log likelihoods Iα and Iβ. In this case, the soft output decoding circuit 90 only needs to invert the most significant bit by setting the predetermined value to a half of the dynamic range of the logarithmic likelihoods Iα and Iβ. Normalization can be performed below.
[0969]
Further, the soft output decoding circuit 90 can use another normalization method. That is, the soft output decoding circuit 90 uses a plurality of logarithmic likelihoods calculated by the Iα normalization circuits 250 and 272 in the Iα calculation circuit 158 and the Iβ0 normalization circuits 291 and 308 in the Iβ calculation circuit 159 as a third method. Among the degrees Iα and Iβ, when the log likelihoods Iα and Iβ corresponding to the metric with the highest probability exceed a predetermined value, a plurality of logarithms are obtained in the next time slot, as in the second method described above. Addition or subtraction using the predetermined value is performed on each of the likelihoods Iα and Iβ.
[0970]
The log-sum operation circuit 245 in the Iα calculation circuit 158 that performs normalization by the third method.n, 256nAnd a log-sum operation circuit 286 in the Iβ calculation circuit 159n292nCan be expressed as a log-sum operation circuit 560 schematically shown in FIG. That is, the log-sum operation circuit 560 adds the log likelihood Iγ and the log likelihoods Iα and Iβ calculated one time ago by the adder 561, and corrects the obtained data by the correction term calculation circuit 562. The value of the term is calculated, and the adder 563 adds the data from the adder 561 and the data from the correction term calculation circuit 562. Then, the log-sum operation circuit 560 performs the above-described normalization by the normalization circuit 564 based on the determination information JD based on the data from the register 565. The normalized data is delayed by one time by the register 565, supplied to the adder 561 as log likelihoods Iα and Iβ, and output to the outside. That is, when it is determined that the data read from the register 565 has exceeded a predetermined value, the log-sum operation circuit 560 performs normalization by the normalization circuit 564 in the next time slot.
[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 normalization circuit 564 is shown in FIG. Normalization like this will be performed.
[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 adder 561 is expressed by x + g as described above. Further, the maximum value or the minimum value of the sum Iα + Iγ of the log likelihood Iα and the log likelihood Iγ at this time is also expressed by min (z + g, x) as described above. Subsequently, the dynamic range of the data after the log-sum calculation obtained through the processing by the correction term calculation circuit 562 and the adder 563 is expressed by x + g because the dynamic range by the log-sum calculation does not increase. The maximum value or the minimum value of the data at this time is represented by min (z + g, x) + log2 because it changes by log2 that is the maximum value of the correction term.
[0973]
When the normalization circuit 564 determines that the value of min (z + g, x) + log2 exceeds a predetermined value, for example, x / 2, which is 1/2 of the dynamic range x of the log likelihood Iα, Normalization is performed by subtracting x / 2 from the data after the log-sum calculation in the time slot. The maximum value or the minimum value of the data at this time is represented by min (z + g, x) + log2. The normalization circuit 564 performs the same normalization on the log likelihood Iβ.
[0974]
By performing such normalization, the soft output decoding circuit 90 does not need to determine whether or not to normalize immediately after the log-sum operation, and can speed up the normalization process.
[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-sum operation circuit 570 that performs the log-sum operation has a differencer 571 as schematically shown in FIG.1To calculate the difference value between the input data AM0 and the data AM1, and the differencer 571.2Thus, the difference value between the data AM1 and the data AM0 is calculated. At the same time, the comparison circuit 572 compares the data AM0 and the data AM1 with each other. Based on the comparison result, the selector 573 calculates the difference.15712One of the two data is selected, and the value of the correction term corresponding to the selected data is read from the lookup table 574. Then, the log-sum operation circuit 570 adds the data DM indicating the value of the correction term and the data SAM that is one of the data AM0 and the data AM1 by the adder 575.
[0976]
Here, in the log-sum operation circuit 570, the size comparison between the data AM0 and the data AM1 by the comparison circuit 572 usually takes time compared to the processing of the other units. It takes time to obtain the data DM as compared to obtaining the SAM, which may cause a large delay.
[0977]
Therefore, as shown in FIG. 35, the soft output decoding circuit 90 does not calculate the value of the correction term after calculating the absolute value of the difference value between the two input data, but converts the difference value into two difference values. The values of a plurality of corresponding correction terms are calculated, and an appropriate one is selected from them. In other words, the soft output decoding circuit 90 performs the size comparison of the difference value between the two input data and the calculation of the value of the correction term in parallel.
[0978]
A log-sum operation circuit 580 that performs such a log-sum operation includes a differentiator 581 as schematically shown in FIG.1To calculate a difference value between the input data AM0 and the data AM1, and a differentiator 581.2The difference value between the data AM1 and the data AM0 is calculated by1The value of the correction term corresponding to the data from the lookup table 5821And the differencer 5812The value of the correction term corresponding to the data from the lookup table 5822Read from. At the same time, the log-sum operation circuit 580 compares the data AM0 and the data AM1 with the comparison circuit 583 corresponding to the selection control signal generation circuit 253 in the Iα calculation circuit 158 described above, and determines the comparison result. Based on the lookup table 582, the selector 584158221 is selected, and the adder 585 adds the selected data DM and the data SAM that is one of the data AM0 and the data AM1.
[0979]
As described above, the soft output decoding circuit 90 calculates the values of a plurality of correction terms corresponding to the two difference values and selects an appropriate one from them, thereby obtaining the log likelihoods Iα and Iβ at high speed. It becomes possible.
[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 signal generation circuit 253 in the Iα calculation circuit 158 described above. A signal needs to be generated. Specifically, the determination sentence of the control signal SEL created by the selection control signal generation circuit 253 indicates the magnitude relationship between the data AM0 and AM1 as shown in the following equation (56).
[0981]
[56]
Figure 0004427883
[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 signal generation circuit 253 includes an absolute value of a difference value between the data AM0 and AM1, a predetermined value, as shown in the following equation (57). It shows the magnitude relationship of.
[0983]
[Equation 57]
Figure 0004427883
[0984]
Here, if the data AM0 and AM1 are each composed of 12 bits, the selection control signal generation circuit 253 has at least a 12-bit comparison circuit, which causes an increase in circuit scale and processing. Incurs a delay.
[0985]
Therefore, the selection control signal generation circuit 253 divides the upper bit and the lower bit of the metric based on at least the data AM0 and AM1, and creates a determination statement for selection, thereby generating the control signals SEL and SL. Generate. That is, the selection control signal generation circuit 253 divides each of the data AM0 and AM1 into upper bits and lower bits, and creates a determination statement for comparing the magnitudes of the data AM0 and AM1.
[0986]
First, let us consider generating a control signal SEL consisting of the determination sentence shown in the above equation (56).
[0987]
The correction term calculation circuit 247 assumes that the data AM0 and AM1 are composed of, for example, 12 bits, and that the “1” is added to the most significant bit of the lower 6 bits of the data AM0 and the lower 6 bits of the data AM1. The difference is taken from the one in which “0” is added to the most significant bit of the data. At the same time, the correction term calculation circuit 247 adds “0” to the most significant bit of the lower 6 bits of the data AM0 and “1” to the most significant bit of the lower 6 bits of the data AM1. Take the difference from the one attached. The selection control signal generation circuit 253 uses the difference values DA1 and DA0 in addition to the data AM0 and AM1, creates a determination statement as shown in the following equation (58), and generates the control signal SEL.
[0988]
[Formula 58]
Figure 0004427883
[0989]
First, the correction term calculation circuit 247 uses the selection control signal generation circuit 253 to compare the magnitudes of the upper 6 bits AM0 [11: 6] and AM1 [11: 6] of the data AM0 and AM1, thereby obtaining the data AM0, The magnitude relationship of AM1 is determined. That is, the magnitude relationship between the upper 6 bits AM0 [11: 6] and AM1 [11: 6] of the data AM0 and AM1 is nothing but the magnitude relationship between the data AM0 and AM1. Therefore, the selection control signal generation circuit 253 creates a determination sentence of (AM0 [11: 6]> AM1 [11: 6]).
[0990]
Further, the correction term calculation circuit 247 can obtain the magnitude relationship of the lower 6 bits of the data AM0 and AM1 by obtaining the difference value DA1. That is, the most significant bit of the difference value DA1 is “1”, which means that the lower 6 bits of the data AM0 are larger than the lower 6 bits of the data AM1. Considering the case where AM1 ≦ AM0 is satisfied under this condition, the upper 6 bits of the data AM0 are larger than the upper 6 bits of the data AM1, and the upper 6 bits of the data AM0 and the upper 6 bits of the data AM1. Sometimes the bits are equal. Therefore, the selection control signal generation circuit 253 creates a determination sentence ((AM0 [11: 6] == AM1 [11: 6]) & DA1 [6] == 1).
[0991]
Therefore, the selection control signal generation circuit 253 can realize the determination sentence shown in the above expression (56) by creating the determination sentence shown in the above expression (58). In other words, the selection control signal generation circuit 253 can be realized only by having a 6-bit comparison circuit and an equal (=) determination circuit, so that the circuit scale can be reduced and the processing speed can be increased. be able to.
[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 term calculation circuit 247, as described above, adds the “1” to the most significant bit of the lower 6 bits of the data AM0 and the data AM1. The difference is obtained by adding “0” to the most significant bit of the lower 6 bits of the data. At the same time, the correction term calculation circuit 247 adds “0” to the most significant bit of the lower 6 bits of the data AM0 and “1” to the most significant bit of the lower 6 bits of the data AM1. Take the difference from the one attached. The selection control signal generation circuit 253 uses the difference values DA1 and DA0 in addition to the data AM0 and AM1, creates a determination statement as shown in the following equation (59), and generates the control signal SL.
[0994]
[Formula 59]
Figure 0004427883
[0995]
First, the correction term calculation circuit 247 uses the selection control signal generation circuit 253 to determine whether the upper 6 bits AM0 [11: 6] and AM1 [11: 6] of the data AM0 and AM1 are equal. That is, if the upper 6 bits AM0 [11: 6] and AM1 [11: 6] of the data AM0 and AM1 are equal, the absolute value of the difference value between the data AM0 and AM1 is less than a predetermined value, here less than 64. It becomes. Therefore, the selection control signal generation circuit 253 creates a determination sentence (AM0 [11: 6] == AM1 [11: 6]).
[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 signal generation circuit 253 generates (({1′b0, AM0 [11: 6]} == {1′b0, AM1 [11: 6]} + 7′d1) & DA1 [6] == 0. ) Is created.
[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 signal generation circuit 253 generates (({1′b0, AM1 [11: 6]} == {1′b0, AM0 [11: 6]} + 7′d1) & DA0 [6] == 0. ) Is created.
[0998]
Therefore, the selection control signal generation circuit 253 can realize the determination statement shown in the above equation (57) by creating the determination statement shown in the above equation (59). That is, the selection control signal generation circuit 253 can be realized only by having an equal (=) determination circuit, and thus the circuit scale can be reduced and the processing speed can be increased.
[0999]
As described above, the soft output decoding circuit 90 compares the magnitudes of the two data when calculating the correction term in the log-sum correction, and sets the absolute value of the difference value between the two data serving as variables to a predetermined value. The circuit scale of the selection control signal generation circuit that generates the selection control signal for clipping to the value can be reduced, and the processing speed can be increased.
[1000]
Although the selection control signal generation circuit 253 has been described here, the selection control signal generation circuit 232 in the Iγ distribution circuit 157 and the selection control signal generation circuit 330 in the soft output calculation circuit 161 are also performed in the same manner. A control signal can be generated.
[1001]
5-6 Calculation of logarithmic soft output Iλ
This is a feature related to the soft output calculation circuit 161 described above. The element decoder 50 has the following two characteristics when calculating the logarithmic soft output Iλ.
[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 output decoding circuit 90 calculates the sum of the log likelihood Iα, log likelihood Iγ, and log likelihood Iβ corresponding to each branch on the trellis in order to enable decoding of an arbitrary code. At the same time, an enable signal indicating the input of each branch is generated, and the logarithmic soft output Iλ is calculated by performing an operation similar to a winning battle based on the enable signal.
[1004]
Here, the log-sum operation circuit 312 in the soft output calculation circuit 161 described above.1However, the cumulative addition operation of the log-sum operation corresponding to the branch whose input is “0” is performed. Log-sum operation circuit 3121Log-sum operation cell circuit 325 in FIG.1, 32531In each of the 32 systems of input data AGB, 2 systems of data AGB are input and 2 systems of enable signals EN corresponding to each of these 2 systems of data AGB are input.
[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 output decoding circuit 90 can calculate the logarithmic soft output Iλ for an arbitrary trellis code having a predetermined number of branches or less.
[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 output decoding circuit 90 is not limited to the number of branches. .
[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 output decoding circuit 90 can calculate the logarithmic soft output Iλ by the following method in addition to the method shown in “5-6-1”.
[1012]
That is, as schematically shown in FIG. 93, the soft output calculation circuit 161 ′ uses the selection circuit 590 to select a corresponding branch from the 32 systems of data AGB according to the input / output pattern of each branch on the trellis. Select eight log-sum operation circuits 5911, ... 5918The log-sum calculation using the selected 16 systems of data AGB is performed. Further, although not shown, the soft output calculation circuit 161 'includes eight log-sum operation circuits 591 by each of the four log-sum operation circuits.1, ... 5918Log-sum calculation using the eight systems of data AGB output from each of the four log-sum calculation circuits, and four log-sum calculation circuits output from each of the four log-sum calculation circuits. Log-sum calculation using data AGB is performed. The soft output calculation circuit 161 ′ includes a log-sum calculation circuit 591.15Thus, the log-sum operation is performed using the two systems of data AGB output from each of the two log-sum operation circuits.
[1013]
The soft output calculation circuit 161 ′ performs such processing for each of cases where the input is “0” or “1”.
[1014]
In this way, the soft output calculation circuit 161 ′ selects, in advance, the corresponding branch from the 32 systems of data AGB according to the input / output pattern of each branch on the trellis by using the selection circuit 590. Log-sum operation circuit 5911, ... 59115Thus, an operation similar to a winning game can be performed, and a cumulative addition operation of a log-sum operation can be realized.
[1015]
Also by such a method, the soft output decoding circuit 90 can calculate the logarithmic soft output Iλ for an arbitrary trellis code having a predetermined number of branches or less.
[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 output decoding circuit 90 is not limited to the number of branches. .
[1017]
5-7 Normalization for external information
This is a feature related to the external information calculation circuit 163 described above.
[1018]
As described above, the soft output decoding circuit 90 can calculate external information in symbol units and external information in bit units by the external information calculation circuit 163. Here, when calculating the external information in symbol units, for example, if it is assumed to be 2 bits and 1 symbol, four pieces of external information are calculated.
[1019]
Therefore, the soft output decoding circuit 90 performs normalization to correct the bias in the distribution of external information in symbol units and reduce the amount of information, and outputs the external information for all symbols as prior probability information in the next stage. Instead, the number of external information of “number of symbols−1” is output.
[1020]
Specifically, the soft output decoding circuit 90, as shown in FIG. 94A, for example, external information ED0, corresponding to each of four symbols “00”, “01”, “10”, “11”, Assuming that ED1, ED2, and ED3 are calculated, as shown in FIG. 5B, the normalization circuit 357 in the external information calculation circuit 163 uses the maximum value among the four external information ED0, ED1, ED2, and ED3. A predetermined value is added to each of the external information ED0, ED1, ED2, ED3 so as to match the external information ED1 having the predetermined value such as “0”, for example, and the external information EA0, EA1, EA2, EA3 Ask for. The soft output decoding circuit 90 can correct the uneven distribution of the external information by performing such normalization.
[1021]
Subsequently, as shown in FIG. 6C, the soft output decoding circuit 90 causes the normalization circuit 357 to set the required dynamic range for the four pieces of external information EA0, EA1, EA2, and EA3 after normalization. In response, clipping is performed to obtain external information EN0, EN1, EN2, and EN3. By performing such clipping, the soft output decoding circuit 90 can hold a value difference between external information having a large value and high importance.
[1022]
Then, as shown in FIG. 4D, the soft output decoding circuit 90 uses, for example, a symbol “00” among the four pieces of external information EN0, EN1, EN2, and EN3 after clipping by the normalization circuit 357. The value of the external information EN0 is subtracted from the values of the external information EN1, EN2, and EN3 for all other symbols “01”, “10”, and “11”. By performing such normalization, the soft output decoding circuit 90 can output the ratio of the three external information as the external information EX0, EX1, EX2 instead of outputting the four external information.
[1023]
In this way, the soft output decoding circuit 90 does not need to output external information for one symbol, and can reduce the number of external input / output pins. Also, the soft output decoding circuit 90 performs the clipping shown in FIG. 10C before performing the normalization shown in FIG. The difference can be maintained, and highly accurate decoding can be performed.
[1024]
Here, the case where external information for four symbols is calculated and normalized has been described, but the soft output decoding circuit 90 can also normalize external information for a number of symbols other than four. .
[1025]
5-8 Hard decision of received value
This is a feature related to the hard decision circuit 165 described above.
[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 output decoding circuit 90 obtains a boundary value with respect to either the in-phase component or the quadrature component of the received value by table lookup, and obtains a hard decision value according to the value of the other component.
[1030]
Specifically, when the encoding apparatus 1 performs modulation by the 8PSK modulation method, the soft output decoding circuit 90 corresponds to eight signal points on the I / Q plane as shown in FIG. In order to divide into eight regions, four boundary lines (boundary value data) BDR0, BDR1, BDR2, BDR3 for either the I axis or the Q axis are provided, and these boundary value data BDR0, BDR1, BDR2, BDR3 are provided. Is stored as a table in the lookup table 372 in the hard decision circuit 165 described above. In the figure, it is assumed that the in-phase component and the quadrature component are each represented by 5 bits, and each dot represents each bit. The values of the signal points mapped to the areas 0, 1, 2, 3, 4, 5, 6, and 7 are the signal point arrangement information CSIG0, CSIG1, CSIG2, CSIG3, CSIG4, CSIG5, CSIG6, respectively. , CSIG7.
[1031]
As described above, the soft output decoding circuit 90 compares the four boundary value data BDR0, BDR1, BDR2, and BDR3 with respect to either the I axis or the Q axis with the value of the other component by the hard decision circuit 165. The region to which the signal point of the received value belongs is determined, and the hard decision value is obtained.
[1032]
By doing so, the soft output decoding circuit 90 can reduce the capacity of the table stored in the look-up table 372, and does not need to consider accuracy, thereby reducing the circuit scale and processing. Can be speeded up.
[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 interleaver 100. The following features are provided as functions of the interleaver 100. However, in order to clarify the concept of the features, the following features will be described with reference to an appropriately simplified drawing.
[1035]
6-1 Multiple types of interleave functions
The memory circuit 407 described above14072, 40716This is a feature related to control of writing and / or reading of data with respect to.
[1036]
As described above, the interleaver 100 includes a plurality of storage circuits 407 according to the mode indicating the code configuration including the type of interleaving to be performed.14072, 40716Among them, an appropriate one to which data is to be written and / or read is selected, a storage circuit to be used is switched, and a plurality of types of interleaving are realized.
[1037]
Specifically, when the control circuit 400 generates a write address and a read address, the interleaver 100 generates address data based on the interleaver type information CINT and the interleaver non-output position information CNO by the address selection circuit 405. Of AA0, BA0, AA1, BA1, AA2, and BA2, the memory circuit 40714072, 40716Address data to be distributed to is selected. Further, the interleaver 100 uses the input data selection circuit 406 based on the interleave mode signal CDIN, the interleaver type information CINT, and the interleaver input / output replacement information CIPT to interleave data I0, I1, I2, and delay data. Of the data D0, D1, D2, D3, D4, and D5 of the storage circuit 40714072, 40716Select the data to distribute to.
[1038]
As specific examples, those shown in FIGS. 55 to 61 may be considered. That is, the interleaver 100 generates a code configuration including the type of interleaving to be performed by the address selection circuit 405 and the input data selection circuit 406 after the control circuit 400 generates an address regardless of the type of interleaving to be performed. Depending on the mode shown, the memory circuit 40714072, 40716Addresses and data are distributed to the memory circuit 407.14072, 40716Remember me.
[1039]
The interleaver 100 includes the memory circuit 407.14072, 40716Is supplied to the output data selection circuit 408, and by this output data selection circuit 408, the interleave mode signal CDIN, interleaver type information CINT, interleaver input / output replacement information CIPT, control signals IOBS, IOBP 0, IOBP 1, IOBP 2 , DOBS, DOBP, data to be output is selected from the data OR00, OR01,..., OR15, and output as interleaver output data IIO and interleave length delay reception value IDO.
[1040]
As described above, the interleaver 100 can realize a plurality of types of interleaving by switching the storage circuit to be used and distributing the address and data according to the mode indicating the code configuration including the type of interleaving to be performed. It is versatile. Therefore, the element decoder 50 can perform decoding adaptively corresponding to various codes.
[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 memory circuit 40714072, 40716This is a feature related to control of writing and / or reading of data with respect to.
[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 interleaver 100 shares the interleave storage circuit and the delay storage circuit, and a plurality of storage circuits 407 according to the code configuration.14072, 40716The memory circuit to be used is switched, the memory circuit not used for the interleave process is used for the delay process, and the memory circuit not used for the delay process is used for the interleave process.
[1044]
As specific examples, those shown in FIGS. 55 to 61 may be considered. That is, the interleaver 100 uses the address selection circuit 405 and the input data selection circuit 406 to consider both the interleaving process and the delay process according to the code configuration, and the storage circuit 407.14072, 40716The address data and the data are distributed to the output data, and the output data selection circuit 408 outputs desired data.
[1045]
By doing so, the interleaver 100 does not need to have an interleaving memory circuit and a delay memory circuit separately, and only needs to have a minimum number of memory circuits, thereby reducing the circuit scale. be able to.
[1046]
6-3 Operation control of memory circuit by clock blocking signal
As described above, the interleaver 100 includes the plurality of storage circuits 407 having at least a RAM.14072, 40716These memory circuits 407 are provided.14072, 40716Are used to perform interleave processing and delay processing. In this case, the memory circuit 40714072, 40716In general, each time a clock signal is input, an operation such as data writing and / or reading is performed.
[1047]
In such an interleaver 100, there may actually be unused storage circuits. Specifically, in the example shown in FIG. 56, the storage circuit 407 is used.64078RAMD06 and D08 exist as unused RAMs, and in the example shown in FIG.64078407Ten40712RAMD06, D08, D10, and D12 exist as unused RAMs.
[1048]
Therefore, the interleaver 100 generates the clock block signal IH for blocking the input clock signal by the address selection circuit 405, and supplies the clock block signal IH to the unused storage circuit, thereby not using the unused block. Any operation including writing and / or reading in the memory circuit is stopped.
[1049]
More specifically, in the interleaver 100, a plurality of storage circuits 407 are provided.14072, 40716Among them, the memory circuit to be used is determined by dividing in the address direction. Then, the interleaver 100 generates the clock block signal IH for the memory circuit that does not correspond to the write address and / or the read address by the address selection circuit 405, and supplies the clock block signal IH to the memory circuit.
[1050]
As described above, the interleaver 100 can stop the operation of the unused storage circuit by providing the mechanism for activating the clock inhibition signal IH by dividing the storage circuit to be used in the address direction. Therefore, the element decoder 50 includes all the storage circuits 407.14072, 40716Need not be operated in response to all clock signals, the operation rate of the memory circuit can be reduced, and as a result, power consumption can be reduced.
[1051]
6-4 Deinterleave function
As described above, the interleaver 100 can perform both the interleaving process and the deinterleaving process.
[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 interleaver 100 uses the address data for reading used for the interleaving process as address data for writing, and reads out using the sequential address data, thereby performing interleaving and de-interleaving. The same address data is shared with the interleave processing.
[1054]
Specifically, as described above, when performing interleaving processing, the interleaver 100 generates write address data IWA that is sequential address data by the control circuit 400, and uses the write address data IWA. Memory circuit 40714072, 40716The control circuit 400 generates sequential address data IAA, and reads out read address data ADA, which is random address data, from the address storage circuit 110 based on the address data IAA. Using the address data ADA, the memory circuit 40714072, 40716Read data from.
[1055]
On the other hand, as described above, the interleaver 100 generates sequential address data IAA by the control circuit 400 when performing deinterleave processing, and based on this address data IAA, read address which is random address data. The data ADA is read from the address storage circuit 110, and the read address data ADA is used to store the storage circuit 407.14072, 40716The control circuit 400 generates write address data IWA, which is sequential address data, and uses the write address data IWA to store the memory circuit 407.14072, 40716Read data from.
[1056]
Thus, the interleaver 100 shares the same address data between the interleaving process and the deinterleaving process, and switches this address data according to the interleaving process and the deinterleaving process. In other words, the interleaver 100 uses the control circuit 400 to switch the read address data used for the interleave process to be used as the write address data used for the deinterleave process, and to read the read address data used for the deinterleave process. The address data is switched so as to be used as address data for writing used for interleaving processing.
[1057]
The control circuit 400 for switching such address data can be expressed as a configuration shown in FIG. That is, the control circuit 400 includes a write address generation circuit 601 that generates write address data, a read address generation circuit 602 that generates read address data, and two selectors 603.16032It is expressed as having.
[1058]
The control circuit 400 uses the write address generation circuit 601 to generate sequential address data for writing, and selects the selector 603.16032The read address generating circuit 602 generates sequential address data for reading, and selects the selector 603.16032To supply. Then, the selector 60316032Selects one of the address data supplied from the write address generation circuit 601 and the address data supplied from the read address generation circuit 602 based on the interleave mode signal CDIN.
[1059]
Specifically, the selector 6031If the interleave mode signal CDIN indicates that the interleaver 100 performs the interleave process, the address data supplied from the write address generation circuit 601 is selected and the write address data IWA is This is supplied to the interleave address conversion circuit 403. In addition, the selector 6032If the interleave mode signal CDIN indicates that the interleaver 100 performs the interleave process, the address data supplied from the read address generation circuit 602 is selected and the address data IAA is used as the address This is supplied to the storage circuit 110 for use and the interleave address conversion circuit 403.
[1060]
On the other hand, the selector 6031If the interleave mode signal CDIN indicates that the interleaver 100 performs the deinterleave process, the address data supplied from the read address generation circuit 602 is selected as the write address data IWA. , And supplied to the interleave address conversion circuit 403. In addition, the selector 6032If the interleave mode signal CDIN indicates that the interleaver 100 performs the deinterleave process, the address data supplied from the write address generation circuit 601 is selected and the address data IAA is selected. This is supplied to the address storage circuit 110 and the interleave address conversion circuit 403.
[1061]
In this manner, the interleaver 100 can simplify the circuit and reduce the scale by switching the address data shared between the interleaving process and the deinterleaving process by the control circuit 400.
[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 interleaver 100 is provided with a write address counter and a read address counter, respectively, so that data reading is started immediately after data writing to the memory circuit is completed.
[1068]
Specifically, as shown in FIG. 98, when the interleave start position signal TIS indicated by A is input to the interleaver 100, the control circuit 400 counts up the counter for the write address and stores it in the bank A. When data is written to the circuit, the counter for the read address is immediately counted up and the stored data is read. Subsequently, when the next interleave start position signal TIS indicated by B is input, the interleaver 100 counts up a write address counter by the control circuit 400 and writes data to the storage circuit of the bank A. The counter for the read address is immediately counted up and the stored data is read out. Similarly, when the next interleave start position signal TIS indicated by C is input, the interleaver 100 counts up the counter for the write address and immediately writes the data to the storage circuit in the bank A, thereby reading the read address. The counter is counted up and the stored data is read out.
[1069]
In this manner, the interleaver 100 can start reading data immediately after the writing of data to the storage circuit is completed by separately providing the write address counter and the read address counter. That is, the interleaver 100 is configured such that the time between the two interleave start position signals TIS indicated by A and B is different from the time between the two interleave start position signals TIS indicated by B and C. The delay amount can always be fixed to the interleave length, and it becomes easy to match the input timing of the received value to be delayed.
[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 interleaver 100 receives data from the storage circuit when delaying the received value. Is read out in the same order as the data writing to the memory circuit. That is, the interleaver 100 sets the read address to be the same as the write address when delaying the received value.
[1071]
By doing in this way, the interleaver 100 can implement | achieve the delay for an interleave length. In particular, the interleaver 100 can easily realize a delay corresponding to the interleave length by counting up both the counter for the read address and the counter for the write address and generating sequential address data. .
[1072]
By adopting such an easy method, the interleaver 100, for example, when performing an experiment in which the number of iterations is changed, only connects a plurality of element decoders without changing the overall decoding delay. It is possible to perform iterative decoding with the number of repetitions changed.
[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 RAM 8, another one-system interleaver output data IIO 2 is read out.
[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 RAM 0, RAM 1 and RAM 2 shown in FIG. Conversion to information called “slot” is required.
[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 interleaver 100 gives the replacement destination address by a combination of input symbol information and time slot information for each symbol.
[1083]
Specifically, as described above, the interleaver 100 performs interleaving so that, for example, three symbols of data are input as input symbols and three symbols of data are output as output symbols. 103, when interleaving with an interleave length of 32 time slots is performed using the RAM0, RAM1, RAM2, RAM3, RAM4, RAM5, RAM6, RAM7, and RAM8 of the storage circuit of FIG. When data is written, information indicating each time slot and 0 for RAM0, RAM3, and RAM6, such as 0-0, 0-1, 0-2,. A combination with information indicating the symbol eye is given as an address. Further, the interleaver 100 provides information indicating one time slot and one symbol such as 1-0, 1-1, 1-2,..., 1-31 to the RAM1, RAM4, and RAM7, respectively. A combination with information indicating the eye is given as an address. Further, the interleaver 100 provides information indicating each time slot and 2 symbols such as 2-0, 2-1, 2-2,. A combination with information indicating the eye is given as an address.
[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 RAM 0, RAM 1 and RAM 2 shown in FIG. In this case, the information indicating the address “34” is expressed as “0100010” in binary notation with 7 digits. Here, it can be seen that the upper 2 bits “01” indicate the first symbol, and the lower 5 bits “00010” indicate the second time slot. That is, the address assignment shown in FIG. 103 is substantially equivalent to the address assignment shown in FIG. 100, and an address conversion operation is not required when reading data.
[1085]
For example, when performing interleaving with an interleave length of 10 time slots, the interleaver 100 writes 0 to each of RAM0, RAM3, and RAM6 when writing data as shown in FIG. 104, for example. A combination of information indicating each time slot and information indicating the 0th symbol is given as an address, such as −0, 0-1, 0-2,..., 0-9. Further, interleaver 100 provides information indicating one time slot and one symbol such as 1-0, 1-1, 1-2,..., 1-9 to RAM1, RAM4, and RAM7, respectively. A combination with information indicating the eye is given as an address. Furthermore, the interleaver 100 provides information indicating each time slot and 2 symbols such as 2-0, 2-1, 2-2,..., 2-9 to the RAM 2, RAM 5, and RAM 8, respectively. A combination with information indicating the eye is given as an address.
[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 interleaver 100 can eliminate the need for address conversion work when reading data even when the data is not stored in all the storage areas of each RAM when the interleave length is variable. .
[1087]
As described above, the interleaver 100 always inputs a plurality of symbols and outputs a plurality of symbols by giving the replacement destination address in combination with the information of the input symbols and the information of the time slots for each symbol. Even if the interleave length is variable, there is no need to perform address conversion work when reading data, so there is no need to provide a special address conversion circuit. The scale can be reduced.
[1088]
The interleaver 100 is not limited to the address assignment shown in FIGS. 103 and 104, and may be any combination as long as the time slot and the input symbol can be identified.
[1089]
6-8 Data writing and reading by partial write function
The memory circuit 407 described above14072, 40716It is the characteristic regarding.
[1090]
As described above, the storage circuit 407 has a partial write function based on the partial write control signal PW. For example, the memory circuit 407 normally inputs / outputs B-bit data to / from a RAM 424 having a storage capacity of (number of bits B) × (number of words W) as shown in FIG. In the case of acting as a partial write RAM, as shown in FIG. 5B, B / 2 bit data is stored in the RAM 424 having a storage capacity of (bit number B / 2) × (word number 2 W). Can be configured in a pseudo manner so that is input / output.
[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 interleaver 100 can also realize an interleaving process with an interleaving length longer than the normal number of words in the RAM 424 by causing the RAM 424 in the storage circuit 407 to act as a partial write RAM.
[1092]
At this time, since the interleaver 100 is input with data of the number of bits in a normal state other than the partial write function, such as a 16-bit RAM, for example, among the input 16-bit data in the partial write function, It is necessary to switch the data every desired 8-bit data to the RAM 424.
[1093]
Therefore, in the interleaver 100, the data input to the storage circuit 407 is divided into upper bits and lower bits to obtain two symbol data, and during the partial write function, the data of these two symbols is always selected. In addition to selecting the same data, the data is selected so that the read data corresponding to the address is always at the same position in the data to be output.
[1094]
Specifically, the storage circuit 407 writes and reads data as follows during the partial write function.
[1095]
That is, the storage circuit 407 selects the inverted bit IAR of the most significant bit of the address data AR and the most significant bit of the address data AR by each of the selectors 421 and 422. Thus, for example, when the most significant bit of the address data AR is “0”, the data VIH becomes 8-bit data “11111111”, and the data VIL becomes 8-bit data “00000000”. Similarly, when the most significant bit of the address data AR is “1”, the data VIH is 8-bit data “00000000” and the data VIL is 8-bit data “11111111”.
[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 RAM 424, and the data VIL is the data write to the lower address in the bit direction in the storage area of the RAM 424. This indicates whether or not to perform. Assume that the storage circuit 407 writes data to an address in which each bit of the data VIH and VIL is “0”.
[1097]
At the same time, the storage circuit 407 always selects the lower-order 8-bit data IR [7: 0] of the data IR by the selector 423. As a result, the data I is obtained by repeating the data IR [7: 0], that is, I = {IR1, IR0} = {IR [7: 0], IR [7: 0]}.
[1098]
Then, the storage circuit 407 uses the address data IA, which is the data excluding the most significant bit of the address data AR, and the data VIH, VIL to the RAM 424 to determine whether the upper address or the lower address in a predetermined word. Data IR [7: 0] is written into one of them. That is, when the most significant bit of the address data AR is “0”, the memory circuit 407 writes the data IR [7: 0] to the lower address in the predetermined word in the RAM 424, and the address data AR When the most significant bit of “1” is “1”, data IR [7: 0] is written to the RAM 424 at an upper address in a predetermined word.
[1099]
As described above, the storage circuit 407 writes only the data IR [7: 0] of the lower 8 bits of the data IR to the RAM 424 during the partial write function.
[1100]
Then, the storage circuit 407 reads the data stored at the higher address from the RAM 424 as the data OH based on the address data IA that is the data excluding the most significant bit of the address data AR and the data VIH and VIL. At the same time, the data stored in the lower address is read as data OL and is selected by the selectors 425 and 426, thereby outputting the data OR.
[1101]
At this time, the data OR is always configured such that the data OH and OL read from the RAM 424 corresponds to the address is at the same position in the output data. That is, when the data LPD is “0”, the corresponding address is a lower address in the RAM 424. Therefore, the data OR is read from the lower address, and the data OR is read from the upper address. The read data OH is the upper bit, and OR = {SOH, SOL} = {OH, OL}. Similarly, when the data LPD is “1”, the data OR is an upper address in the RAM 424. Therefore, the data OH read from the upper address is set as the lower bit, and the lower address The data OL read from is used as the upper bits, and OR = {SOH, SOL} = {OL, OH}.
[1102]
In this way, the storage circuit 407 always writes the lower bit data IR0 obtained by dividing the input data IR into upper bits and lower bits to the RAM 424 during the partial write function, and always from the RAM 424. Of the read data, the data corresponding to the address is the lower bit of the output data.
[1103]
On the other hand, the memory circuit 407 writes and reads data as follows in the normal state, not in the partial write function.
[1104]
That is, the memory circuit 407 selects a bit having a value of “0” by each of the selectors 421 and 422. Thereby, for example, the data VIH and VIL are always 8-bit data “00000000”.
[1105]
At the same time, the storage circuit 407 always selects the higher-order 8-bit data IR [15: 8] of the data IR by the selector 423. Thus, the data I becomes I = {IR1, IR0} = {IR [15: 8], IR [7: 0]}, and becomes the data IR itself.
[1106]
Then, since the data VIH and VIL are both “00000000”, the storage circuit 407 is based on the address data IA that is data excluding the most significant bit of the address data AR and the data VIH and VIL. Data I is written into the RAM 424 at both the upper address and the lower address in a predetermined word. That is, the storage circuit 407 writes data IR [15: 8] to the upper address in a predetermined word and writes data IR [7: 0] to the lower address in the RAM 424.
[1107]
As described above, the storage circuit 407 normally writes the data IR itself to the RAM 424.
[1108]
Then, the storage circuit 407 reads the data stored at the higher address from the RAM 424 as the data OH based on the address data IA that is the data excluding the most significant bit of the address data AR and the data VIH and VIL. At the same time, the data stored in the lower address is read as data OL and is selected by the selectors 425 and 426, thereby outputting the data OR. At this time, since the data LPD is “0”, the data OR always has the data OL read from the lower address in the RAM 424 as the lower bit, the data OH read from the upper address as the upper bit, OR = {SOH, SOL} = {OH, OL}. That is, the data OR is the data itself read from a predetermined word in the RAM 424.
[1109]
As described above, the storage circuit 407 normally writes the data IR to the RAM 424 and outputs it as the data OR.
[1110]
By doing so, the interleaver 100 only needs to grasp the upper bit data or the lower bit data of the input / output multi-bit data, and which bit data contributes to writing and reading. There is no need to be conscious of what it is. For this reason, the interleaver 100 normally uses a RAM having a storage capacity of (number of bits B) × (number of words W) as a partial write RAM and uses it as a RAM of half-number bits × double-length words. It becomes easy.
[1111]
Although the description has been given here assuming that the storage capacity of the RAM 424 is a half bit × double word compared to the normal time in the partial write function, this method is not limited to this storage capacity. In this method, the storage capacity of the RAM 424 during the partial write function is, for example, 1/3 number bits × 3 times longer word, 1/4 number bits × 4 times longer word, 1 bit × number of bits times longer than normal. The present invention can be applied to an arbitrary storage capacity such as a word.
[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 delay compensation circuit 402 and the storage circuit 407 described above.14072, 40716It is the characteristic regarding.
[1114]
When iterative decoding with variable code length is performed, it is necessary to perform variable length delay. The interleaver 100 uses two banks of RAM to switch between writing and reading data in one time slot, so that a delay length, that is, a RAM having the number of words for a time slot that is half the interleave length, is used for interleaving. Long delays can be realized.
[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 addresses 0, 1, and 2, respectively. It is assumed that data B and D are stored in advance for the area, and no data is stored in the storage area at address 0. Further, in the figure, data writing is represented by “W” and data reading is represented by “R”.
[1116]
First, in the 0th time slot, the interleaver 100 reads data A from the storage area at address 0 in the bank A RAM, and writes data F to the storage area at address 0 in the bank B RAM.
[1117]
Subsequently, the interleaver 100 writes the data G to the storage area at the address 0 in the RAM of the bank A, that is, the storage area from which the data A is read out at the 0th time slot, in the first time slot. Then, data B is read from the storage area at address 1 in the RAM of bank B.
[1118]
Subsequently, the interleaver 100 reads the data C from the storage area at the address 1 in the bank A RAM at the second time slot and at the storage area at the address 1 in the bank B RAM, that is, at the first time slot. Data H is written to the storage area from which data F has been read.
[1119]
Subsequently, in the third time slot, the interleaver 100 writes the data I to the storage area of the address 1 in the RAM of the bank A, that is, the storage area from which the data C is read in the second time slot. Data D is read from the storage area at address 2 in the RAM of bank B.
[1120]
Subsequently, the interleaver 100 reads the data E from the storage area at the address 2 in the bank A RAM at the fourth time slot, and at the third time slot at the storage area at the address 2 in the bank B RAM. Data J is written to the storage area from which data D has been read.
[1121]
Subsequently, in the fifth time slot, the interleaver 100 writes the data K into the storage area at address 2 in the bank A RAM, that is, the storage area from which the data E is read out in the fourth time slot. The data F is read from the storage area at address 0 in the RAM of bank B.
[1122]
The interleaver 100 reads the data G from the storage area at the address 0 in the bank A RAM at the sixth time slot, and the data at the storage area at the address 0 in the bank B RAM, that is, the fifth time slot. Data L is written to the storage area from which F has been read.
[1123]
The interleaver 100 switches between writing and reading of data in one time slot using the two banks of RAM. A timing chart of data writing and reading by such an operation is as shown in FIG. That is, the data F written in the bank B is read after the lapse of the time corresponding to the interleave length, and similarly, the data G written to the bank A is also read after the lapse of time corresponding to the interleave length. .
[1124]
As described above, when the interleaver 100 writes data to one bank, the operation of reading data from the other bank is switched for each time slot, so that the RAM has the number of words corresponding to half the time slot of the interleave length. 2 banks can be used to realize a delay with an interleave length.
[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 interleaver 100 performs the above-described operation to perform the delay for the delay length only by the RAM when the even-length delay is performed, and performs the above-described operation to perform the delay of the delay length minus 1 for the odd-length delay. In addition, it is possible to cope with both the even-length delay and the odd-length delay by providing a switching function so that a delay of one time slot is performed using a register.
[1127]
Specifically, as described above, when the interleaver 100 performs the even-length delay based on the interleave length information CINL supplied from the control circuit 60 by the odd-length delay compensation circuit 402, the interleaver 100 generates the data TDI. On the other hand, when only the delay by the RAM is performed and the odd-length delay is performed, the data TDI is delayed so that the delay by the delay length −1 by the RAM and the delay by one time slot by the register are performed. The data TDI that is the target data is selected.
[1128]
By doing so, the interleaver 100 can cope with both the even-length delay and the odd-length delay with a small circuit scale.
[1129]
6-10 I / O order switching function
This is a feature related to the input data selection circuit 406 and the output data selection circuit 408 described above.
[1130]
As described above, the soft output decoding circuit 90 enables decoding of an arbitrary code. However, in order to decode an arbitrary code, it is necessary to obtain an input / output pattern corresponding to the code in advance. is there. Therefore, in practice, it is very difficult for the soft output decoding circuit 90 to decode all codes with one circuit, and it is realistic to perform decoding for an arbitrarily assumed code. is there.
[1131]
As described above, not only the soft output decoding circuit 90 but also a soft output decoding circuit having a limited code to be decoded generally performs soft output decoding of an arbitrary code that inputs a plurality of symbols and outputs a plurality of symbols. However, there are cases where it is not possible to decode a code that differs only in the order between input symbols and / or the order between output symbols.
[1132]
For example, in the case where the decoding device 3 is configured by concatenating the element decoders 50 and a code is encoded by an encoding device that performs encoding by SCCC, the encoding device performs convolutional encoding that encodes an outer code. As a convolutional encoder that can be decoded by the soft-output decoding circuit 90, and as an interleaver that performs inline interleaving, and as a convolutional encoder that encodes an inner code, It is assumed that the decoding circuit 90 includes the convolutional encoder shown in FIG. In this case, needless to say, the decoding device 3 can decode the code by the encoding device.
[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 output decoding circuit 90 does not target the convolutional code, the decoding apparatus 3 It becomes impossible to decode the code by the encoding device.
[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 decoding apparatus 3 is configured such that, for an encoding apparatus that uses a code that is not to be decoded by the soft output decoding circuit 90 as an element code, the element code is in an order between input symbols and / or between output symbols. Even if only the order is different, decoding is impossible.
[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 interleaver 100 has a function of switching the order between input symbols and / or the order between output symbols when performing interleaving for inputting a plurality of symbols and outputting a plurality of symbols, thereby enabling a plurality of interleavers 100 based on the same address. Realize street interleaving.
[1138]
Specifically, when performing interleaving processing, interleaver 100 uses input data selection circuit 406 to replace the input order between symbols based on interleaver input / output replacement information CIPT, and Switch between input position and output position.
[1139]
Further, when performing the deinterleave process, the interleaver 100 uses the output data selection circuit 408 to replace the output order between the symbols based on the interleaver input / output replacement information CIPT, and to input each symbol. Switch between position and output position.
[1140]
In other words, assuming that the decoding device 3 performs decoding of codes by SCCC, two adjacent element decoders 50 constituting the decoding device 3 are used.I, 50JCan be expressed as a configuration shown in FIG. 110, for example. Here, a circuit having a function of switching the order between input symbols and / or the order between output symbols is referred to as a symbol replacement circuit.
[1141]
That is, the element decoder 50IWhen the data output from the soft output decoding circuit 90 is input to the interleaver 100, the interleaver 100 performs deinterleaving processing. At this time, the element decoder 50IWhen a data OR composed of a plurality of symbols subjected to deinterleaving processing through the storage circuit 407 in the interleaver 100 is input to a symbol replacement circuit 610 corresponding to the output data selection circuit 408, the symbol replacement circuit 610 After the interleaver output data IIO to be output is selected, the interleaver output data IIO composed of a plurality of symbols is replaced with each other in the order of input between the symbols according to the code configuration. , The next stage element decoder 50JTo supply.
[1142]
On the other hand, the element decoder 50JThe element decoder 50IIs input to the interleaver 100, the interleaver 100 performs the interleaving process. At this time, the element decoder 50JIs a symbol replacement circuit 611 corresponding to the input data selection circuit 406 in the interleaver 100, and the data I consisting of a plurality of symbols supplied from the soft-output decoding circuit 90 and subjected to various processes, according to the code configuration. The order of the symbols is changed, and the data IR is supplied to the storage circuit 407. The data subjected to the interleaving in this way is supplied to a next-stage element decoder (not shown).
[1143]
By doing in this way, the interleaver 100 can change the order between input symbols and / or the order between output symbols, and can implement a plurality of types of interleaving based on the same address. In particular, the interleaver 100 performs interleaving in which the number of input / output symbols is the same and the input position and the output position are determined on a one-to-one basis, like a normal inline interleaver or a pair-wise interleaver. It is possible to switch the connection between the position of the input symbol and the position of the output symbol.
[1144]
Therefore, even when the element decoder 50 is provided with a general-purpose soft output decoding circuit with a limited code to be decoded, the element decoder 50 can perform decoding between input symbols with respect to a code that can be decoded by the soft output decoding circuit. Codes that differ only in order and / or order between output symbols can be decoded. In addition, the element decoder 50 can limit the number of codes to be decoded by the soft output decoding circuit 90, so that the circuit can be simplified and the scale thereof can be reduced.
[1145]
Here, the example in which the function of changing the order of the symbols is provided in the interleaver 100 has been described. However, the function is not necessarily provided as the function of the interleaver 100. For example, the function of the soft output decoding circuit 90 is provided. Also good.
[1146]
When the function of changing the order of each symbol is provided as a function of the soft output decoding circuit 90, if the decoding device 3 performs decoding of codes by SCCC, two adjacent element decoders 50 constituting the decoding device 3 are used.K, 50LCan be expressed as a configuration shown in FIG. 111, for example.
[1147]
That is, the element decoder 50KPerforms a normal soft output decoding process and a deinterleaving process by the soft output decoding circuit 90 and the interleaver 100, and the obtained data is converted into an element decoder 50 in the next stage.LTo supply.
[1148]
On the other hand, the element decoder 50LThe element decoder 50KWhen data required for soft output decoding processing such as external information or interleaved data TEXT is input to the soft output decoding circuit 90, the information is input by the symbol replacement circuit 612. The order of each symbol is changed according to the code configuration. Further, the element decoder 50LThe external information SOE composed of a plurality of symbols calculated by the external information calculation circuit 163 through various processes similar to those of the soft output decoding circuit 90, the symbol replacement circuit 613 changes the order of the symbols according to the code configuration. After the replacement and various processes, the data TII is supplied to the interleaver 100. Then, the element decoder 50LPerforms an interleaving process on the input data TII and supplies the data to a next-stage element decoder (not shown).
[1149]
In this way, the soft output decoding circuit 90 can decode codes that differ only in the order between input symbols and / or the order between output symbols. Therefore, the element decoder 50 can limit the number of codes to be decoded by the soft-output decoding circuit 90, so that the circuit can be simplified and the scale can be reduced. In particular, the element decoder 50 can decode the code in which the output positions of the tissue components are replaced when it repeatedly decodes the Massy code.
[1150]
Note that the element decoder 50 shown in FIG.LThe symbol replacement circuit 613 is described as being included in the soft output decoding circuit 90, but the symbol replacement circuit 613 may be included in the interleaver 100. That is, the element decoder 50 only needs to include a symbol replacement circuit corresponding to the code configuration in the subsequent stage of the interleaver 100 that performs the deinterleaving process and the previous stage of the interleaver 100 that performs the interleaving process. Of course, even when the decoding device 3 performs decoding of a code by PCCC, the element decoder 50 includes a subsequent stage of the interleaver 100 that performs the deinterleave process and a previous stage of the interleaver 100 that performs the interleave process. In addition, a symbol replacement circuit corresponding to the code configuration may be provided.
[1151]
7). Summary
As described above, in the data transmission / reception system configured using the encoding device 1 and the decoding device 3, the element decoder 50 configuring the decoding device 3 performs interleaving processing and deinterleaving processing by the interleaver 100. By sharing the same address data between the two and switching the address data according to the interleave process and the deinterleave process, the interleave process and the deinterleave process can be performed with the same configuration. 100 simplification and scale reduction can be achieved.
[1152]
That is, the data transmission / reception system configured using the encoding device 1 and the decoding device 3 realizes interleaving processing and deinterleaving processing with the same configuration with a simple configuration with a small circuit scale. It is possible to provide high convenience to the user.
[1153]
The present invention is not limited to the above-described embodiment. For example, in the above-described embodiment, the element decoder 50 integrates the soft output decoding circuit 90, the interleaver 100, and the like as an LSI. Although described as being configured, only the soft output decoding circuit 90 is configured as a single module such as an LSI, and a plurality of the soft output decoding circuits 90 are connected, and other parts including the interleaver 100 are externally attached. You may comprise as the decoding apparatus 3 by providing as an apparatus. Similarly, according to the present invention, only the interleaver 100 is configured as a single module such as an LSI, and a plurality of the interleavers 100 are connected, and other units including the soft output decoding circuit 90 are provided as external devices. Thus, the decoding device 3 may be configured. That is, the present invention is applicable to iterative decoding as long as at least the soft output decoding circuit 90 or the interleaver 100 is configured as a single module such as an LSI.
[1154]
In the above-described embodiment, the correction term value is calculated by the soft output decoding circuit 90. However, the value of the correction term is read from a look-up table configured from a ROM or the like. Instead of the ROM, various memories such as a RAM may be used, and for example, a so-called linear approximation circuit may be provided to calculate the value of the correction term.
[1155]
Further, in the above-described embodiment, the maximum number of symbols input / output to / from interleaver 100 has been described as three symbols. However, the present invention inputs / outputs an arbitrary number of symbols equal to or greater than three symbols. It can also be applied to.
[1156]
Furthermore, in the above-described embodiment, the interleaver 100 includes 16 storage circuits 407.14072, 40716However, it is needless to say that the present invention can also be applied to a case where an arbitrary number of memory circuits according to the code configuration are provided.
[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 interleaver 100. However, the present invention is not limited to these interleaving types. It can also be applied to other types of interleaving.
[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.
上記アドレス用記憶手段を備え請求項1記載のインターリーブ装置。Interleaving device according to claim 1, wherein the Ru with the address storage unit. 半導体基板に集積させて構成されてい請求項1記載のインターリーブ装置。Interleaving device according to claim 1, wherein that have been constructed by integrating a semiconductor substrate. 上記要素符号は、畳み込み符号であ請求項1記載のインターリーブ装置。Said element codes, convolutional codes der Ru claim 1 interleave apparatus according. 複数の要素符号をインターリーバを介して連接して生成された符号を繰り返し復号するために用いるインターリーブ装置であって、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;
シーケンシャルな第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のアドレスデータとして選択されて出力され請求項記載のインターリーブ方法。
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.
複数の要素符号をインターリーブ工程を介して連接して生成された符号を繰り返し復号するために用いるインターリーブ方法であって、An interleaving method used to repeatedly decode a code generated by concatenating a plurality of element codes through an interleaving step,
シーケンシャルな第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.
上記インターリーブ手段は、上記アドレス用記憶手段を有す請求項10記載の復号装置。It said interleaving means, decoding apparatus according to claim 10, wherein that having a said address storage means. 半導体基板に集積させて構成されてい請求項10記載の復号装置。Decoding apparatus according to claim 10, wherein that have been constructed by integrating a semiconductor substrate. 並列連接符号化、縦列連接符号化、並列連接符号化変調又は縦列連接符号化変調がなされた符号を繰り返し復号するためのものであ請求項10記載の復号装置。Parallel concatenated coding, serial concatenated coding, parallel concatenated coded modulation or serial concatenated coded modulation decoding apparatus der Ru claim 10, wherein for the purpose of iterative decoding to made the code. 上記要素符号は、畳み込み符号であ請求項14記載の復号装置。It said element codes, convolutional decoding apparatus codes der Ru claim 14. 上記軟出力復号手段は、Log−BCJRアルゴリズムに基づく最大事後確率復号を行請求項10記載の復号装置。The soft-output decoding means, the decoding device of the maximum a posteriori probability decoding row intends claim 10, wherein the based on the Log-BCJR algorithm. 軟入力とされる受信値に基づいて任意のステートを通過する確率を求め、上記確率を用いて、複数の要素符号をインターリーバを介して連接して生成された符号を繰り返し復号するための、上記要素符号に対応する復号装置であって、  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 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のインターリーブ工程と同一の置換位置情報に基づいて、上記外部情報の順序を置換して並べ替えるインターリーブ処理、又は、上記第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.
軟入力とされる受信値に基づいて任意のステートを通過する確率を求め、上記確率を用いて、複数の要素符号を第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;
上記軟出力復号工程にて生成された上記外部情報を入力し、上記第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.
上記インターリーブ手段は、上記アドレス用記憶手段を有す請求項21記載の復号装置。It said interleaving means, decoding apparatus according to claim 21, wherein that having a said address storage means. 上記インターリーブ手段は、入力されるデータに対して、ランダムインターリーブを施請求項21記載の復号装置。It said interleaving means, to the data input, the decoding apparatus according to claim 21, wherein to facilities random interleaving. 上記インターリーブ手段は、入力される複数シンボルのデータに対して、互いに異なるアドレスに基づいて個別的にインターリーブを施請求項21記載の復号装置。It said interleaving means, to the data of a plurality of input symbols, the decoding device according to claim 21, wherein to facilities interleaved individually based on different addresses from each other. 上記インターリーブ手段は、入力される複数シンボルのデータに対して、各ビットの組み合わせを保持するようにインターリーブを施請求項21記載の復号装置。Said interleaving means, to the data of a plurality of input symbols, the decoding device of facilities to claim 21, wherein the interleaving to hold a combination of each bit. 上記要素復号器は、上記要素符号の数と上記繰り返し復号の繰り返し回数との積で表される数だけ連接され請求項21記載の復号装置。It said element decoder, decoder only articulated Ru claim 21 wherein the number represented by the product of the number of number of iterations of the iterative decoding of the elementary code. 上記要素復号器は、半導体基板に集積させて構成されてい請求項21記載の復号装置。It said element decoder decoding apparatus according to claim 21, wherein that have been constructed by integrating a semiconductor substrate. 並列連接符号化、縦列連接符号化、並列連接符号化変調又は縦列連接符号化変調がなされた符号を繰り返し復号す請求項21記載の復号装置。Parallel concatenated coding, serial concatenated coding, parallel concatenated coded modulation or serial concatenated coded modulation decoding apparatus according to claim 21, wherein you repeat decodes made the code. 上記要素符号は、畳み込み符号であ請求項29記載の復号装置。It said element codes, convolutional decoding apparatus codes der Ru claim 29. 上記軟出力復号手段は、Log−BCJRアルゴリズムに基づく最大事後確率復号を行請求項21記載の復号装置。The soft-output decoding means, the decoding device of the maximum a posteriori probability decoding row intends claim 21 based on the Log-BCJR algorithm. 軟入力とされる受信値に基づいて任意のステートを通過する確率を求め、上記確率を用いて、複数の要素符号を第1のインターリーブ工程を介して連接して生成された符号を繰り返し復号する復号方法であって、
当該復号方法は、複数の要素復号工程が連続して行われるものであり、
上記要素復号工程は、それぞれ、
上記受信値及び事前確率情報を入力して軟出力復号を行い、各時刻における軟出力及び/又は外部情報を生成する軟出力復号工程と、
上記軟出力復号工程にて生成された上記外部情報を入力し、上記第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.
上記要素復号工程は、上記要素符号の数と上記繰り返し復号の繰り返し回数との積で表される数だけ行われ請求項32記載の復号方法。The element decoder step, the method of decoding as many done Ru claim 32 represented by the product of the number of number of iterations of the iterative decoding of the elementary code.
JP2000263132A 2000-08-31 2000-08-31 Interleaving apparatus, interleaving method, decoding apparatus, and decoding method Expired - Fee Related JP4427883B2 (en)

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)

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