JP5700035B2 - 誤り訂正符号復号装置、誤り訂正符号復号方法および誤り訂正符号復号プログラム - Google Patents

誤り訂正符号復号装置、誤り訂正符号復号方法および誤り訂正符号復号プログラム Download PDF

Info

Publication number
JP5700035B2
JP5700035B2 JP2012504446A JP2012504446A JP5700035B2 JP 5700035 B2 JP5700035 B2 JP 5700035B2 JP 2012504446 A JP2012504446 A JP 2012504446A JP 2012504446 A JP2012504446 A JP 2012504446A JP 5700035 B2 JP5700035 B2 JP 5700035B2
Authority
JP
Japan
Prior art keywords
decoding
code
information
simultaneous
soft
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.)
Active
Application number
JP2012504446A
Other languages
English (en)
Other versions
JPWO2011111654A1 (ja
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2012504446A priority Critical patent/JP5700035B2/ja
Publication of JPWO2011111654A1 publication Critical patent/JPWO2011111654A1/ja
Application granted granted Critical
Publication of JP5700035B2 publication Critical patent/JP5700035B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • H03M13/2978Particular arrangement of the component decoders
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3707Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3972Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using sliding window techniques or parallel windows

Description

本発明は、誤り訂正符号の復号装置に関し、特に、ターボ符号に代表される並列連接符号を復号する誤り訂正符号復号装置、誤り訂正符号復号方法および誤り訂正符号復号プログラムに関する。
誤り訂正符号化技術は、データの符号化・復号という操作を通じてデータ伝送時の通信路上で発生したビット反転等のエラーからデータを保護する技術である。このような誤り訂正符号化技術は、無線通信やデジタル記憶媒体を始めとする各分野で現在広く利用されている。符号化は、送信する情報を、冗長ビットを付加した符号語に変換する処理である。復号は、その冗長性を利用してエラーが混入した符号語(受信語)から元の符号語(情報)を推定する処理である。
Berrouらによって提案されたターボ符号は、その訂正能力の高さからモバイル用途の実用化が進んできた。ターボ符号に関しては非特許文献1に述べられている。
図1にターボ符号器100およびターボ符号復号器110の構成を示す。
図1(a)におけるターボ符号器100は、インターリーバ103を介してフィードバックを持つ組織的な畳込み符号化器101、102が2個並列に連接されて構成される。この畳込み符号はターボ符号の要素符号と呼ばれ、メモリ数4以下の符号が通常使用され、図1はメモリ数2の場合の例を示している。以下、符号化器101を要素符号1、符号化器102を要素符号2と呼び、それぞれで生成されるパリティ系列をパリティ1、パリティ2と呼ぶことにする。インターリーバ103は、ビットの並び替え処理を行う。インターリーバ103の大きさと設計によって符号性能が大きく左右される。
図1(b)におけるターボ符号復号器110の構成について説明する。軟入力軟出力(Soft-In Soft-Output, 以下、SISOともいう)復号器111は、各要素符号に対応する復号処理を行う。メモリ112、113、114は、それぞれ情報系列、パリティ1、パリティ2に対応する受信値を保持する。メモリ115は、要素符号のSISO復号で得られる軟出力値(外部情報)を保持する。デインターリーバ116は、インターリーバ103による並び替えを戻す処理を行う。ターボ符号の復号法の特徴は、要素符号のSISO復号で得られる軟出力値(外部情報)を他方の要素符号の軟入力値(事前情報)として利用し、これを繰り返すことにある。以下、ターボ符号の要素符号は2値の畳込み符号であるとして説明を行う。
最適な軟出力復号は、符号語の制約条件において受信系列に基づき各情報ビットの事後確率を計算して0、1を判定する復号である。このためには次の式(1)を計算すれば十分となる。
L(t) = log(P(u(t)=0|Y)/P(u(t)=1|Y)) … (1)
ここで、u(t)は時点tの情報ビット、Yは符号語に対する受信値の系列、P(u(t)=b|Y)(b=0,1)は受信系列Yの下でu(t)=bとなる条件付確率である。一般の誤り訂正符号でL(t)を求めることは計算量の点で非常に困難であるが、ターボ符号の要素符号のようにメモリ数が小さい畳込み符号の場合には符号語全体を状態数の小さい符号トレリスで表すことが可能であり、これを利用して効率よくSISO復号を実行することができる。このアルゴリズムはBCJRアルゴリズムもしくはMAPアルゴリズムと呼ばれていて非特許文献2に記述されている。
ターボ符号で使用するSISO復号にはこのMAPアルゴリズムを適用することができる。ターボ符号の復号の繰り返しの過程で交換される軟出力値は式(1)の値L(t)そのものではなく、L(t)から算出される、次の式(2)で表される外部情報と呼ばれる値Le(t)である。
Le(t) = L(t)−C ・ x(t) − La(t). … (2)
ここでx(t)は情報ビットu(t)に対する受信値、La(t)はu(t)の事前情報として用いた他方の要素符号の軟出力復号で得られた外部情報、Cは通信路のSN比(signal-to-noise ratio)で決まる係数である。
MAPアルゴリズムについて詳しく述べる。畳込み符号では、符号器におけるメモリの値に応じて入力情報に対する符号語が変化する。この符号器内部におけるメモリの値を符号器の"状態"と呼ぶ。畳込み符号による符号化は情報系列に応じて状態を変化させながら出力を行う。符号トレリスは、この状態の遷移の組み合わせをグラフで表現したものである。この符号トレリスでは、各時点における符号器の状態がノードとして表され、各ノードから遷移が存在する状態のノードのペアにエッジがアサインされる。エッジにはその遷移で出力される符号語のラベルが割り当てられる。エッジの連結をパスと呼び、パスのラベルは畳込み符号の符号語系列に対応する。
図1に示した要素符号の畳込み符号器(メモリ数2)の構成を図2(a)に示す。図2(b)は、図2(a)に示した符号器に対応する符号トレリスである。初期状態はメモリを全て0とする。符号器の状態はメモリの値である。図2の畳込み符号では最初の情報ビットが0であれば符号語"00"を出力して時点1で状態"00"となる。一方、情報ビットが1であれば符号語"11"を出力して時点1の状態は"10"となる。時点2では時点1の状態"00","11"それぞれに対して情報ビット0、1に応じた符号語の出力と時点2への状態遷移が行われる。符号器の状態は"00"を0と表し、"11"を3と表す等、メモリ数分のビット数の整数として表現することもできる。
符号トレリスを利用した復号アルゴリズムとしてよく知られているビタビアルゴリズムと同様に、MAPアルゴリズムは符号トレリスのパスと受信値の系列の相関(パスメトリック)を順次計算する処理を基本とする。MAPアルゴリズムは大きく分けて次の3種類の処理から成る:
(a)フォワード処理:符号トレリスの先頭から各ノードへ到達するパスメトリックを算出する。
(b)バックワード処理:符号トレリスの終端から各ノードへ到達するパスメトリックを算出する。
(c)軟出力生成処理:(a)、(b)の結果を用いて各時点での情報シンボルの軟出力(事後確率比)を算出する。
ここで、フォワード処理におけるパスメトリックは受信系列と事前情報の下、符号トレリスの先頭から各ノードへ到達する確率(の対数値)を相対的に表す。バックワード処理におけるパスメトリックは符号トレリスの末尾から各ノードへ到達する確率(の対数値)を相対的に表す。畳込み符号の状態の集合をSとして時点t、状態s(∈S)のノードにおけるフォワード処理およびバックワード処理で算出されるパスメトリックをそれぞれα(t, s)およびβ(t,s)とおく。また、γ(t, s, s')で時点tで状態sから状態s'へ遷移する際の情報ビットおよび符号語と受信値および事前情報(ターボ符号の場合は他方の要素符号の軟出力)で決定される尤度であるブランチメトリックを表すとする。加法的白色ガウス通信路において、γ(t, s, s')は、状態sから状態s'への遷移で出力される符号語の変調値と受信値の間のユークリッド距離および情報ビットに対する事前情報を用いて容易に計算することができる。このとき、フォワード処理およびバックワード処理は次のように1時点前もしくは1時点後の値を用いて実行される(パスメトリック、軟出力は対数領域で表す):
(a)フォワード処理:
α(t, s) = log(Σ_{s'∈S:τ(s', b)=s, b=0,1} exp(α(t-1, s')+γ(t-1, s', s))) … (3)
(b)バックワード処理:
β(t, s) = log(Σ_{s'∈S:τ(s , b)=s', b=0,1} exp(β(t+1, s')+γ(t, s, s'))) … (4)
(c)軟出力生成処理
L(t) = log(Σ_{s, s'∈S: τ(s , 0)=s'} exp(α(t, s) + γ(t, s, s') + β(t+1, s'))) − log(Σ_{s, s'∈S:τ(s , 1) = s'} exp(α(t, s) + γ(t, s, s') + β(t+1, s'))) … (5)
ここで、τ(s', b) = sは、状態s'から情報ビットbで状態sへ遷移することを表し、Σ_{s'∈S:τ(s', b)=s, b=0,1}は次の時点で状態s'となるすべての状態sに関して和をとることを表す。またΣ_{s, s'∈S: τ(s, b)=s'}は状態sから状態s'への状態遷移における情報ビットがbとなる状態のペア{s, s'}に関して和をとることを表す。
Max-Log-MAPアルゴリズムは式(3)、式(4)および式(5)の処理において、和を最大値によって変更することにより行われ、expとlogへの変換が不要となるためにビタビアルゴリズムにおけるACS(Add-Compare-Select)処理と同一の処理で実現可能となり、大幅な簡易化が可能となる。
式(5)の軟出力生成のためには時点t毎にフォワード処理のαとバックワード処理のβが揃う必要があり、また、各時点のαとβの生成をどのような順序で行うかのスケジューリングを考えることが必要となる。単純な方法として図3(a)のように、符号トレリスの終端からバックワード処理を行って各時点のβを生成しておき、次にトレリスの先頭からフォワード処理および軟出力生成処理を行うスケジュールが考えられる。このスケジュールではトレリス長、つまり情報長分の遅延が発生するため、高速化には限界がある。また、βを情報長分保持する必要もあるため、メモリの使用量も大きい。
そこで、畳込み符号のMAPアルゴリズムが符号トレリス上においてある程度局所的に実行できる性質を利用して、図3(b)のように符号トレリスをウィンドウ(大きさW時点)に分割してウィンドウ毎にフォワード処理、バックワード処理および軟出力生成処理を行うスケジューリングが考えられる。図3(b)において301はバックワード処理のトレーニング処理のタイミングを表しており、式(4)に従ってW時点分βを更新する。初期値はすべての状態に対してβを同じ値に設定する、もしくはターボ符号復号では反復復号における前回の処理で計算した値を用いる方法がある。302はフォワード処理のタイミングを表しており、式(3)のパスメトリックαはその時点の軟出力生成処理が終了するまで保持する。303は、301で計算したウィンドウ境界におけるパスメトリックを初期値としてバックワード処理を行うと同時に302のαを利用して軟出力生成を行うタイミングを表している。図3においてフォワード処理とバックワード処理を入れ替えて行うスケジューリングも考えられる。
上述のウィンドウを用いたSISO復号は局所的な処理が可能であるため、局所的なSISO復号器を複数個用意してこれを並列に実行させることで高速化を図ることが自然に考えられる。図4は、符号トレリスを4個のブロックに分割して4個のSISO復号器(SISO0〜SISO3)を用いて復号処理する場合の模式図である。符号トレリス終結処理に対応するバックワード処理は予め計算しておけばよいので、符号トレリスの終結を行っていても、分割は終結部分を除いて考えればよい。このとき符号トレリスの時点数は情報長(= インターリーバ長)Kと一致する。また、符号トレリスがM分割されM個のSISO復号器が復号処理に使用される場合、復号器1個あたりの処理時点数(=ブロックの大きさ)はB = K/M時点となる。図3のウィンドウ処理ではバックワード処理のトレーニングで2W時点分の遅延が発生するが、ブロックがウィンドウに比して十分大きければ、M個のSISO復号器を用いた復号処理においてM倍に近い高速化が達成できる。
複数のSISO復号器による並列化を考えた場合、情報受信値メモリ、外部情報メモリ、パリティ受信値メモリも分割して構成すること、および複数のSISO復号器からの同一メモリへの同時アクセスが発生しないようにすることが、望ましい。図5のように複数のSISO復号器によるメモリアクセスの競合(メモリコンテンション)が発生する場合にはメモリの細分化やポートの増設などによって競合を回避し高速性を保つか、バッファを用意して遅延を許容して処理するといった処理が必要になる。前者は大幅な装置規模の増大を、後者は復号器のスループットの大きな低下を招く。パリティ受信値に関しては、要素符号1および要素符号2でそれぞれ分割したブロックに対応するようにブロック数分に分割して保持すればメモリアクセスの競合は発生せず、同一アドレスでアクセスできる。このため、パリティ受信値メモリは、1個のメモリとしても実現可能となる。しかし、情報受信値と外部情報については要素符号1と要素符号2の復号時に同一のメモリにアクセスすることになる。つまり、要素符号1に対応したブロックに応じてメモリが用意されるとしても、要素符号2の復号時のアクセスは、インターリーブしたアドレスを使用することになるため、単にランダムなインターリーバではメモリアクセスの競合が通常発生する。MAPアルゴリズムの1サイクルで符号トレリスのn時点分の処理を行う並列化であるradix-2^nアルゴリズムを考える場合にも同様に外部情報などのメモリをn個に分割してもメモリアクセスの競合の発生可能性がある。
この問題に対してメモリアクセスの競合が起こらないようにインターリーバを設計する方法が知られている。Radix-2^nのMAPアルゴリズムを実行するM個のSISO復号器を使用することを考える。3GPP LTE(3rd Generation Partnership Project Long Term Evolution)で採用されたインターリーバは、インターリーバサイズKがM・nの倍数の場合には、M個のradix-2^n SISO復号器による並列復号時にメモリアクセス競合が発生しないことを保証する。なぜならインターリーバサイズKがM・nの倍数の場合、インターリーバは、情報受信値や外部情報をM・n個のブロックに対応したメモリに分割して保持するからである。3GPP LTEのインターリーバについては、例えば非特許文献3に記載されている。
モバイル用途では情報長が小さい場合も多く、ターボ符号のインターリーバサイズKも細かく対応可能にすることで通信効率を向上させる方式が採られている。非特許文献3の3GPP LTEのターボ符号は、K=40から6144の中の188個に応じたインターリーバを設定している。Kが小さいほど、より細かいステップでインターリーバが設定されている。たとえば、K=40から512までは8のステップ、K=512から1024までは16のステップ、K=1024から2048までは32のステップ、K=2048以上は64のステップの各サイズに対して、インターリーバが設定されている。このときすべてのインターリーバサイズに対応するためには並列度はM・n = 8が限度となる。
また、ターボ符号復号の並列化の手法として2個の要素符号を同時に復号する方法も知られている。これに関しては特許文献1に述べられている。
図6に、特許文献1に記載の復号装置の構成を示す。図6において、要素符号1および要素符号2の符号トレリスはそれぞれ4個のブロックに分割され、これらのブロックに対してSISO復号器(SISO0〜SISO7)は同時に復号処理を実行する。置換処理部601および置換処理部602は、インターリーバに対応して、メモリおよびSISO復号器の間で外部情報のアサインを実現する置換処理およびその逆変換処理をそれぞれ実行する。置換処理部601は、要素符号2の復号において、情報受信値(図示せず)も同一に置換処理を行ってSISO復号器へ入力をアサインする。この特許文献1に記載の復号装置は、他方の要素符号で生成された外部情報を直ちに事前情報として利用してSISO復号を行うことが特徴である。したがって、ブロック長B=K/MがWに比して大きければ、繰り返し復号の収束速度も高めることができる。しかし、この並列化手法では図6のように外部情報や情報受信値を要素符号に応じて異なるメモリに持つ必要があるため、これらのメモリサイズは図1の方式と比べて2倍となる。
C. Berrou et.al, "Near Shannon limit error-correcting coding and decoding: Turbo codes", Proc. IEEE International Conference of Communications (ICC), pp.1064-1070, 1993. L.R.Bhal et.al, "Optimal decoding of linear codes for minimizing symbol error rate", IEEE Transaction on Information Theory, pp.284-287, 1974. 3rd Generation Partnership Project; Technical Specification Group Radio Access Network; Evolved Universal Terrestrial Radio Access (E-UTRA); Multiplexing and channel coding (Release 8)、2009年
特開2007−006541号公報
しかしながら、非特許文献3に記載された3GPP LTEの復号装置では、並列度に限度があるため、モバイル用途で用いられるターボ符号の多様なインターリーバサイズに対して効率よく復号処理を行っていないという課題があった。
また、特許文献1に記載された復号装置では、効率よく復号処理を行うためにメモリサイズの増加を必要とし装置規模が増大するという課題があった。
本発明は、上述の課題を解決するためになされたもので、装置規模の増大を抑えながら多様なインターリーバサイズに対して効率よく復号処理を行うことができる誤り訂正符号復号装置を提供することを目的とする。
本発明の誤り訂正符号復号装置は、情報の畳込み符号である第1の要素符号と、インターリーバによって置換された前記情報の畳込み符号である第2の要素符号と、前記情報とを含む符号化情報の受信情報に対して繰り返し復号を実行する誤り訂正符号復号装置において、前記インターリーバのサイズに応じて前記第1および第2の要素符号を同時復号するか否かを選択する同時復号選択手段と、前記受信情報を、前記同時復号選択手段の選択結果に応じた位置に格納する受信情報格納手段と、前記第1および第2の要素符号にそれぞれ対応する外部情報を、前記同時復号選択手段の選択結果に応じた位置に格納する外部情報格納手段と、前記第1および第2の要素符号が分割された各ブロックに対して前記受信情報および前記外部情報に基づく軟入力軟出力復号を並列に実行して前記外部情報をそれぞれ出力する複数の軟入力軟出力復号器を有し、前記同時復号選択手段によって同時復号が選択されなかった場合は、前記第1の要素符号の復号および前記第2の要素符号の復号を順次実行して繰り返し、前記同時復号選択手段によって同時復号が選択された場合は、前記第1および第2の要素符号を同時に復号して繰り返す軟入力軟出力復号手段と、を備える。
また、本発明の誤り訂正符号復号方法は、情報の畳込み符号である第1の要素符号と、インターリーバによって置換された前記情報の畳込み符号である第2の要素符号と、前記情報とを含む符号化情報の受信情報に対して繰り返し復号を実行する誤り訂正符号復号装置が、前記インターリーバのサイズに応じて前記第1および第2の要素符号を同時復号するか否かを選択し、前記受信情報を、前記同時復号の選択結果に応じた位置で受信情報格納手段に格納し、前記第1および第2の要素符号にそれぞれ対応する外部情報を、前記同時復号の選択結果に応じた位置で外部情報格納手段に格納し、前記第1および第2の要素符号が分割された各ブロックに対して前記受信情報および前記外部情報に基づく軟入力軟出力復号を並列に実行して前記外部情報をそれぞれ出力する複数の軟入力軟出力復号器を用いて、前記同時復号を選択しなかった場合は、前記第1の要素符号の復号および前記第2の要素符号の復号を順次実行して繰り返し、前記同時復号を選択した場合は、前記第1および第2の要素符号を同時に復号して繰り返す。
また、本発明の誤り訂正符号復号プログラムは、情報の畳込み符号である第1の要素符号と、インターリーバによって置換された前記情報の畳込み符号である第2の要素符号と、前記情報とを含む符号化情報の受信情報に対して繰り返し復号を実行する誤り訂正符号復号装置に、前記インターリーバのサイズに応じて前記第1および第2の要素符号を同時復号するか否かを選択する同時復号選択ステップと、前記受信情報を、前記同時復号の選択結果に応じた位置で受信情報格納手段に格納する受信情報格納ステップと、前記第1および第2の要素符号にそれぞれ対応する外部情報を、前記同時復号の選択結果に応じた位置で外部情報格納手段に格納する外部情報格納ステップと、前記第1および第2の要素符号が分割された各ブロックに対して前記受信情報および前記外部情報に基づく軟入力軟出力復号を並列に実行して前記外部情報をそれぞれ出力する複数の軟入力軟出力復号器を用いて、前記同時復号を選択しなかった場合は、前記第1の要素符号の復号および前記第2の要素符号の復号を順次実行して繰り返し、前記同時復号を選択した場合は、前記第1および第2の要素符号を同時に復号して繰り返す軟入力軟出力復号ステップと、を実行させる。
本発明は、装置規模の増大を抑えながら多様なインターリーバサイズに対して効率よく復号処理を行うことができる誤り訂正符号復号装置を提供することができる。
(a)は、関連技術のターボ符号器の構成図、(b)は、関連技術のターボ符号復号器の構成図である。 (a)は、関連技術のターボ符号復号器における畳込み符号化器の構成図、(b)は、畳込み符号化器の状態遷移を表す符号トレリスの概念図である。 (a)は、関連技術のターボ符号復号器のMAPアルゴリズムにおけるフォワード処理、バックワード処理および軟出力生成処理の順序を示す図、(b)は、このMAPアルゴリズムにおけるウィンドウを用いてのフォワード処理、バックワード処理および軟出力生成処理の順序を示す図である。 関連技術のターボ符号復号装置において、符号トレリスを分割したブロック毎に同時にSISO復号を行う並列化を説明する模式図である。 関連技術のターボ符号復号装置において、SISO復号の並列化でメモリアクセスの競合が発生する状況を説明する模式図である。 他の関連技術のターボ符号復号装置の構成図である。 本発明の第1の実施の形態としての誤り訂正符号復号装置の構成図である。 本発明の第1の実施の形態としての誤り訂正符号復号装置の動作を示すフローチャートである。 本発明の第2の実施の形態としてのターボ符号復号装置の構成図である。 本発明の第2の実施の形態におけるメモリ構成の説明図である。 本発明の第2の実施の形態における置換部の構成を示すブロック図である。 本発明の第2の実施の形態における硬判定部の配置を示すブロック図である。 本発明の第2の実施の形態における硬判定部の構成を示すブロック図である。 本発明の第2の実施の形態としてのターボ符号復号装置を3GPP LTEターボ符号(インターリーバ長504)の復号に適用したときの特性を示すグラフである。
以下、本発明の第1の実施の形態について、図面を参照して詳細に説明する。
本発明の第1の実施の形態としての誤り訂正符号復号装置1の構成を図7に示す。図7において、誤り訂正符号復号装置1は、機能ブロックとして、同時復号選択部2と、受信情報格納部3と、外部情報格納部4と、軟入力軟出力復号部5とを備えている。
ここで、同時復号選択部2は、後述の同時復号選択機能を実現する回路によって構成され、受信情報格納部3および外部情報格納部4は、RAM(Random Access Memory)等の記憶装置および記憶装置に対するデータの読み書きを制御する制御回路によって構成され、軟入力軟出力復号部5は、M(Mは1以上の整数)個のSISO復号器によって構成される。
同時復号選択部2は、通信セッションの開始時に送信側と受信側でインターリーバサイズKを決定する。また、同時復号選択部2は、決定したインターリーバサイズK(Kは1以上の整数)に応じて、後述の要素符号1および要素符号2を同時復号するか否かを選択または決定するための選択結果(決定情報)を出力する。
受信情報格納部3は、図示しない誤り訂正符号器から通信経路を介して、情報の畳込み符号である要素符号1と、この情報がインターリーバによって置換された情報の畳込み符号である要素符号2と、この情報とを含む符号化情報を受信し、受信された受信情報を格納する。
ここで、受信情報は、情報に対応する情報受信値、要素符号1のパリティに対応するパリティ1受信値、および要素符号2のパリティに対応するパリティ2受信値によって構成される。
また、受信情報格納部3は、この受信情報を、同時復号選択部2の選択結果に応じた位置に格納する。
外部情報格納部4は、軟入力軟出力復号部5のSISO復号器によって軟出力される外部情報を、同時復号選択部2の選択結果に応じた位置に格納する。
軟入力軟出力復号部5は、例えば、ウィンドウを用いて局所的な処理が可能なradix-2^nのMAPアルゴリズムを実行する、M個のSISO復号器を有する。この場合、M個のSISO復号器は、本発明におけるL(=M・n)個のSISO復号器の一実施形態を構成する。
また、軟入力軟出力復号部5は、同時復号選択部2によって同時復号が選択されなかった場合、要素符号1の復号および要素符号2の復号を順次実行して繰り返す。詳細には、軟入力軟出力復号部5は、複数のSISO復号器を用いて要素符号1の符号トレリスを分割した各ブロックに対する復号を並列に実行する処理と、要素符号2の符号トレリスを分割した各ブロックに対する復号を並列に実行する処理とを、順次繰り返す。
また、軟入力軟出力復号部5は、同時復号選択部2によって同時復号が選択された場合、要素符号1および要素符号2を同時に復号して繰り返す。詳細には、軟入力軟出力復号部5は、要素符号1の符号トレリスを分割した各ブロックに対する復号と、要素符号2の符号トレリスを分割した各ブロックに対する復号とを同時に並列に実行して繰り返す。
なお、以下、軟入力軟出力復号部5が、要素符号1の復号および要素符号2の復号を順次実行して繰り返す処理を、「通常の並列化」と呼ぶ。また、軟入力軟出力復号部5が、要素符号1および要素符号2の復号を同時に実行する処理を、「要素符号の同時復号」と呼ぶことにする。
次に、本発明の第1の実施の形態としての誤り訂正符号復号装置1の動作について図8を用いて説明する。
なお、図8において、誤り訂正符号復号装置1は、要素符号1および要素符号2の同時復号を行うことが可能なインターリーバサイズの最大値としてあらかじめKsを記憶しているものとする。
また、誤り訂正符号復号装置1は、図8において、通信セッションの開始時に送信側と受信側でインターリーバサイズKを既に決定しており、そのセッションで複数のフレームを送信する場合も、同一のインターリーバサイズKを用いるものとする。
図8において、まず、誤り訂正符号復号装置1は、現セッションのインターリーバサイズKに対して、Kが(M/q)×nの倍数となるような最小のMの約数qを求める(ステップS1)。
次に、同時復号選択部2は、インターリーバサイズKに応じて2個の要素符号の同時復号を実行するか否かを選択する選択結果を出力する(ステップS2)。
例えば、同時復号選択部2は、q=1もしくはK>Ksが成り立つか否かに基づいて、要素符号1および要素符号2の同時復号を実行するか否かを選択してもよい。
ステップS2において、q=1もしくはK>Ksであり通常の並列化が選択されると、受信情報格納部3は、選択結果に基づいて、情報受信値およびパリティ受信値を、通常の並列化に応じたアドレスに読み込む(ステップS3)。
次に、軟入力軟出力復号部5は、M/q個のSISO復号器を用いて要素符号1の復号を行い(ステップS4)、その後、要素符号2の復号をM/q個のSISO復号器を用いて復号を行う(ステップS5)。
軟入力軟出力復号部5は、繰り返し復号の終了の判定となるまで(ステップS6でYes)、ステップS4〜S5を繰り返す。
誤り訂正符号復号装置1は、現セッションのすべてのフレームの復号処理を終了したら、セッションの復号処理を終了する(ステップS7でYes)。
一方、ステップS2において、2個の要素符号の同時復号が選択されると、受信情報格納部3は、選択結果に基づいて、情報受信値およびパリティ受信値を、要素符号の同時復号に応じたアドレスに読み込む(ステップS8)。
次に、軟入力軟出力復号部5は、M/q個のSISO復号器を用いて要素符号1の復号を、別のM/q個のSISO復号器を用いて要素符号2の復号を同時に行う(ステップS9、S10)。
軟入力軟出力復号部5は、繰り返し復号の終了の判定となるまで(ステップS11でYes)、ステップS9およびS10の同時実行を繰り返す。
誤り訂正符号復号装置1は、現セッションのすべてのフレームの復号処理を終了したら、セッションの復号処理を終了する(ステップS12でYes)。
以上で、誤り訂正符号復号装置1は動作を終了する。
なお、ステップS1およびS2において、同時復号選択部2は、すべてのインターリーバサイズKに対してあらかじめステップS1およびS2の処理を実行して記憶装置(図示せず)に保存しておき、実行時にそれを参照してもよい。また、同時復号選択部2は、同時復号を実行するか否かの選択を、単にK>Ksの判定のみに基づいて行ってもよい。ここで、Kが小さい場合は必然的にブロックサイズBも小さくなり、ウィンドウサイズWのバックワード処理のトレーニングに必要なオーバーヘッドも大きくなる。したがって、要素符号あたりの並列度を抑えて2個の要素符号の同時復号を行うことにより、この点においても高速化に貢献することが期待できる。
また、ステップS5およびS11において、軟入力軟出力復号部5は、終了判定を、予め情報部分に付加されているCRCを用いて判定してもよい。
次に、本発明の第1の実施の形態の効果について述べる。
本発明の第1の実施の形態としての誤り訂正符号復号装置は、装置規模の増大を抑えながら多様なインターリーバサイズに対して効率よく復号処理を行うことができる。
その理由は、誤り訂正符号復号装置は、要素符号毎に各ブロックに対する復号を並列に実行し、要素符号1の復号および要素符号2の復号を順次繰り返す通常の並列化と、2個の要素符号の復号を同時に行う並列化を選択可能に併用するからである。
また、本発明の第1の実施の形態としての誤り訂正符号復号装置は、受信情報および外部情報を、受信情報格納部および外部情報格納部内の、同時復号を実行するか否かの選択結果に応じた位置に格納するので、受信情報格納部および外部情報格納の容量の増加を抑えることができる。
次に、本発明の第2の実施の形態について、図面を参照して詳細に説明する。なお、本発明の第2の実施の形態としては、本発明の誤り訂正符号復号装置を、ターボ符号を復号するターボ符号復号装置に適用した例について説明する。
本発明の第2の実施の形態としてのターボ符号復号装置20の構成を図9に示す。なお、図9において、本発明の第1の実施の形態としての誤り訂正符号復号装置1と同一の構成については同一の符号を付して詳細な説明を省略する。
図9において、ターボ符号復号装置20は、同時復号選択部1100と、アドレス生成部800と、情報受信値メモリ801と、パリティ受信値メモリ802と、外部情報メモリ803と、軟入力軟出力復号部5と、置換部900と、硬判定部1001とを備えている。
ここで、アドレス生成手段800、情報受信値メモリ801およびパリティ受信値メモリ802は、本発明の受信情報格納手段の一実施形態を構成する。また、アドレス生成手段および外部情報メモリ803は、本発明の外部情報格納手段の一実施形態を構成する。
図10に、M=8、n=2のときのアドレス生成手段800、情報受信値メモリ801、パリティ受信値メモリ802、および、外部情報メモリ803の構成を示す。
アドレス生成部800は、同時復号選択部1100の選択結果に応じて、情報受信値メモリ801、パリティ受信値メモリ802および外部情報メモリ803のリード/ライトのためのアドレスを生成する。アドレスの生成法については後述する。
情報受信値メモリ801は、(M・n)個のメモリU_0, U_1, …, U_{M・n-1}で構成される。また、情報受信値メモリ801は、K個の情報受信値をM'=M/q等分したブロックをさらにアドレスのmod nで分割して(M'・n)個のメモリに保持する。つまり、情報受信値メモリをU_0, U_1, …,U_{M'・n-1}、情報受信値をx(j) (j=0,…,K-1)で表すと、メモリU_{n・j+i} (0≦i<n)にはx(j・B+i), x(j・B+i+n), x(j・B+i+2n),…,x(j・B+i+B-n)のB/n個の受信値を格納する。ここでB=K/M'はブロックサイズである。要素符号の同時復号を行う場合q>1であり、メモリU_{2・(n・j+i)}にはメモリU_{n・j+i}と同一のデータを格納するように構成する。メモリU_0, U_1, …,U_{M'・n-1}は要素符号1の復号で使用され、メモリU_{M'・n}, U_{M'・n+1}, …,U_{2・M'・n-1}は要素符号2の復号で使用される。
パリティ受信値メモリ802は、(M・n)個のメモリで構成される。通常の並列化では、パリティ1およびパリティ2の受信値をM'=M/q等分してM'個のメモリに保持する。パリティ1およびパリティ2の受信値をy1(j), y2(j)(j=0,1,…,K-1)で表すと、メモリP_{n・j+i} (0≦i<n)は、y1(j・B+i), y1(j・B+i+n),…,y1(j・B+i+B-n),y2(j・B+i), y2(j・B+i+n),…,y2(j・B+i+B-n)の2・B/n個の受信値を格納する。要素符号の同時復号では、パリティ1およびパリティ2のK個の受信値をそれぞれM'=M/q等分し(q>1)、メモリP_0,P_1,…,P_{M'・n-1}はパリティ1の受信値を、メモリP_{M'・n},P_{M'・n+1},…,P_{2・M'・n-1}はパリティ2の受信値を保持する。
外部情報メモリ803は(M・n)個のメモリで構成される。通常の並列化では、外部情報メモリ803は、K個の外部情報をM'=M/q等分し、M'個のメモリに情報受信値と同様に保持する。ここで、外部情報は、軟入力軟出力復号部5のSISO復号器によって軟出力され、さらに置換部900で後述する事前情報に置換された情報である。具体的に、要素符号の同時復号では、外部情報メモリ803は、K個の外部情報をM'等分し、要素符号1のSISO復号化された出力である外部情報e1(j)を、要素符号2のSISO復号の事前情報となるようにメモリE_{M'・n}, E_{M'・n+1},…, E_{2・M'・n-1}に格納する。また、外部情報メモリ803は、要素符号2のSISO復号化された出力である外部情報e2(j)を、要素符号1のSISO復号の事前情報となるようにメモリE_0, E_1,…,E_{M'・n-1}に格納する。
また、情報受信値メモリ801、外部情報メモリ803のメモリサイズのトータルは、同時復号を実行可能なインターリーバサイズの最大値Ksの2倍以上かつインターリーバサイズの最大値以上に設定される。
図11に、置換部900の構成を示す。
図11において、置換部900は、置換処理部901および逆変換処理部905を有している。
ここで、メモリアクセスの衝突がない場合のインターリーブ処理は、図8のアドレス生成手段800で生成するアドレスと、情報受信値メモリ801およびパリティ受信値メモリ802から同時に読み出したデータとの、複数のSISO復号器への対応を与える置換処理で実現することができる。Radix-2^n のSISO復号であればこの置換処理部901および逆変換処理部905もそれぞれn個用意する。
置換処理部901および逆変換処理部905は、通常の並列化の場合および要素符号の同時復号の場合の各qに応じて、サイズM/qの置換処理を実行するよう構成される。
図11において、置換処理部901および逆変換処理部905は、M=8に対してq=1およびq=2に応じた置換処理を実行するよう構成される。
置換処理部901は、通常の並列化を行う場合の置換処理部902と、要素符号の同時復号を行う場合の置換処理部903と、置換処理部902および置換処理部903の選択を行うセレクタ904とを有している。
置換処理部902は、外部情報メモリ803からのM個のデータ(外部情報)の置換処理(Π1と表す)を行う。
置換処理部903は、要素符号1に対応するM'個のデータの恒等変換および要素符号2に対応するM'個のデータの置換処理(Π2と表す)を行う。
逆変換処理部905は、通常の並列化を行う場合の逆変換処理部906と、要素符号の同時復号を行う場合の逆変換処理部907と、スワップ処理部908と、逆変換処理部906および逆変換処理部907の選択を行うセレクタ909とを有している。
逆変換処理部905は、軟入力軟出力復号部5のSISO復号器で生成される外部情報に対して逆変換を行ってから外部情報メモリ803を更新する。
逆変換処理部906および逆変換処理部907は、それぞれ置換処理部902のΠ1および置換処理部903のΠ2に対する逆変換処理Inv_Π1およびInv_Π2を行う。
スワップ処理部908は、逆変換処理部907によって生成された要素符号1の外部情報および要素符号2の外部情報のスワップ処理を行う。これにより、要素符号1の復号で生成される外部情報は要素符号2の復号で事前情報として読み込まれるように、要素符号2の復号で生成される外部情報は要素符号1の復号で事前情報として読み込まれるように、外部情報メモリ803に書き込まれる。
再び図9に戻り、アドレス生成部800について説明する。ここで、ブロック内のSISO復号の処理スケジュールはサイズWのウィンドウを用いて図3(b)に示したようにウィンドウ単位でバックワード処理を最初に行う処理順序を想定する。置換処理部901による各メモリからのデータの読み出しもこれに合わせて行う。M'= M/q, B=K/M'とする。
このとき、アドレス生成部800は、通常の並列化で要素符号1の復号のときには、すべてのメモリに共通にウィンドウ単位で、
W-1, W-2, …, 1, 0, 2・W-1,2・W-2,…,W, 3・W-1,3・W-2,…
とアドレスを生成する。
また、アドレス生成部800は、通常の並列化で要素符号2の復号のときには、情報受信値メモリ801および外部情報メモリ803からのデータ読み出しのために、
Π1-1(π(W-1) mod B, π(B+W-1) mod B, …, π((M'-1)B+W-1) mod B),
Π1-1(π(W-2) mod B, π(B+W-2) mod B, …, π((M'-1)B+W-2) mod B),
...
Π1-1(π(1) mod B, π(B+1) mod B, …, π((M'-1)B+1) mod B),
Π1-1(π(0) mod B, π(B) mod B, …, π((M'-1)B) mod B),
Π1-1(π(2W-1) mod B, π(B+2W-1) mod B, …, π((M'-1)B+2W-1) mod B),
Π1-1(π(2W-2) mod B, π(B+2W-2) mod B, …, π((M'-1)B+2W-2) mod B),
...
と各メモリのアドレスを生成する。
ここでターボ符号のインターリーブ処理は、情報系列u(0), u(1),u(2),...,u(K-1)をu(π(0)),u(π(1)),...,u(π(K-1))の順序に並べ直すものとすると、Π1-1は逆変換処理部905による逆変換処理を表し、各メモリと複数SISO復号器との対応を与える。"a mod B"はaのBによる剰余で、0からB-1までの値とする。LTE(Long Term Evolution)インターリーバではπ(z) mod B = π(B+z) mod B = ... = π((M'-1)B+z) mod Bが成り立つため、要素符号2のときもすべてのメモリで同一アドレスとすることができる。
また、アドレス生成部800は、通常の並列化でパリティ2の読み出しのために、
B/n+W-1, B/n+W-2, …, B/n+1, B/n, B/n+2・W-1,B/n+2・W-2,…,
B/n+W, B/n+3・W-1, B/n+3・W-2,…
とアドレスを生成する。
また、アドレス生成部800は、要素符号の同時復号において、要素符号1のSISO復号の入力に対応するメモリU_0,U_1,...,U_{M'・n-1}およびE_0,E_1,...,E_{M'・n-1}については、上述の要素符号1の復号のときと同様に、また要素符号2のSISO復号の入力に対応するメモリU_{M'・n},U_{M'・n+1},...,U_{2・M'・n-1}およびE_{M'・n},E_{M'・n +1},...,E_{2・M'・n-1}については、上述の要素符号2の復号のときと同様に、それぞれアドレスを生成する。
また、アドレス生成部800は、要素符号の同時復号でのパリティに関してはP_0,...,P_{2・M'-1}まで共通に通常の並列化における要素符号1の場合と同様にアドレスを生成する。
硬判定部1001は、図12に示すように配置され、情報受信値メモリ801から読み出した情報受信値、外部情報メモリ803から読み出した事前情報としての外部情報、および軟入力軟出力復号部5によって生成される外部情報を用いて硬判定を行う。
ここで、硬判定部1001の構成を図13に示す。硬判定部1001は、テンポラリメモリ1002と、アドレス制御部1003と、硬判定メモリ1004と、硬判定回路1005とを有している。
テンポラリメモリ1002は、情報受信値および事前情報を外部情報が生成されるまで一時的に保持するメモリである。
アドレス制御部1003は、テンポラリメモリ1002および硬判定メモリ1004のリード/ライトのアドレスを生成する。
硬判定回路1005は、情報受信値x(t)、事前情報La(t)および外部情報Le(t)から式(2)によってL(t)を生成する処理を実行する回路である。硬判定回路1005は、L(t)の正負に基づき復号結果0または1を判定する。要素符号の同時復号を行う場合には要素符号1の硬判定結果のみをみれば十分であるため、硬判定回路1005のセレクタは、図11のスワップ処理部908によってスワップされた要素符号1の外部情報を要素符号1の受信値と外部情報に対応するように戻す処理を行う。
同時復号選択部1100は、本発明の第1の実施の形態の同時復号選択部2と同様に構成され、さらに、その選択結果を、アドレス生成部800、置換部905、硬判定部1001および軟入力軟出力復号部5に出力する。
以上のように構成されたターボ符号復号装置20が、3GPP LTEのターボ符号に対する復号を行う例について以下、説明する。
3GPP LTEのターボ符号では前述のようにM・n=8まではすべてのインターリーバサイズKにおいてメモリアクセスの競合を回避することができるが、ここでは、M = 8, n = 2 (radix-2^2のSISO復号器8個)を適用したターボ符号復号装置20の例を、要素符号の同時復号を選択した場合を中心に示す。
ターボ符号復号装置20は、M = 8, n = 2に対して、図10に示したように、情報受信値、パリティ受信値および外部情報を格納するメモリとして、それぞれM×n=16個のメモリを用いる。LTEインターリーバの最大長は6144のため、図10において、情報受信値と外部情報の1個あたりのメモリのサイズ(深さ)は6144/16 = 384となる。また、パリティ受信値のメモリのサイズ(深さ)はパリティ1とパリティ2の受信値を併せて384×2=768となる。
前述のように、LTEインターリーバでは512以上のKに対しては通常の並列化で符号トレリスを8個に分割してradix-2^2のSISO復号器を8個用いることにより、メモリアクセスの競合を回避して並列復号を実行させることができる。よって、ターボ符号復号装置20は、要素符号の同時復号を行うときのインターリーブサイズの上限Ksとして512を設定することが好ましい。このとき、ターボ符号復号装置20において、インターリーバの最大長6144はKsの2倍より大であるため、要素符号の同時復号を行ってもメモリ容量の増加を必要としない。
ターボ符号復号装置20は、K < Ks = 512でq = 2の場合には、M' = 4, n = 2として2個の要素符号の同時復号を実行する。例えばK = 504のときはq = 2となり、図8のステップS2で要素符号の同時復号が選択される。
なお、ターボ符号復号装置20は、K < 512であれば、q = 1とすることが可能な場合(例えばKが16の倍数となる場合)であってもq = 2として処理を行ってもよい。
まず、情報受信値メモリ801は、メモリ(以下、「メモリ」を省略)U_0,…,U_15においてq = 2の場合には情報受信値をM' = M/q = 4個のブロックに分割してU_0からU_7に格納する。x(j)(j = 0,1,…,K-1)でj番目の情報受信値を表すとする。ブロック長をB=K/M'とおく。情報受信値メモリ801は、d番目のブロックの受信値x(j)(j = B・d, B・d+1,..., B・d+B-1)に対してj = 0 mod 2のx(j)はU_{2・d}に、j = 1 mod 2のx(j)はU_{2・d+1}に格納する。K = 504のとき、B = K/M'=126でU_0, ..., U_7には次のように126/n = 126/2 = 63個の情報受信値が格納される。
U_0: x(0) x(2) ... x(122) x(124)
U_1: x(1) x(3) ... x(123) x(125)
U_2: x(126) x(128) ... x(248) x(250)
U_3: x(127) x(129) ... x(249) x(251)
U_4: x(252) x(254) ... x(374) x(376)
U_5: x(253) x(255) ... x(375) x(377)
U_6: x(378) x(380) ... x(500) x(502)
U_7: x(379) x(381) ... x(501) x(503)
ここで、要素符号の同時復号では、U_8,...,U_15にもU_0,...,U_7と同一の受信値が格納される。LTEインターリーバでは通常の並列化ではU_0からU_15まで常に同一のアドレスでアクセスされ、また要素符号の同時復号ではU_0からU_7とU_8からU_15はそれぞれ同一のアドレスでアクセスされる。このため、U_0からU_7とU_8からU_15はそれぞれ1個のメモリで構成することもできる。
また、パリティ受信値メモリ802は、要素符号の同時復号ではP_0からP_7には要素符号1のパリティ受信値を、P_8からP_15には要素符号2のパリティ受信値を格納する。y1(j)とy2(j)(j = 0,1,...,K-1)で要素符号1および要素符号2のパリティのj番目の受信値を表すとすると、要素符号の同時復号を行うK=504のとき、パリティ受信値メモリには次のようにパリティ受信値が格納される。
P_0: y1(0) y1(2) ... y1(122) y1(124)
P_1: y1(1) y1(3) ... y1(123) y1(125)
P_2: y1(126) y1(128) ... y1(248) y1(250)
P_3: y1(127) y1(129) ... y1(249) y1(251)
P_4: y1(252) y1(254) ... y1(374) y1(376)
P_5: y1(253) y1(255) ... y1(375) y1(377)
P_6: y1(378) y1(380) ... y1(500) y1(502)
P_7: y1(379) y1(381) ... y1(501) y1(503)
P_8: y2(0) y2(2) ... y2(122) y2(124)
P_9: y2(1) y2(3) ... y2(123) y2(125)
P_10:y2(126) y2(128) ... y2(248) y2(250)
P_11:y2(127) y2(129) ... y2(249) y2(251)
P_12:y2(252) y2(254) ... y2(374) y2(376)
P_13:y2(253) y2(255) ... y2(375) y2(377)
P_14:y2(378) y2(380) ... y2(500) y2(502)
P_15:y2(379) y2(381) ... y2(501) y2(503)
ここで、P_0,...,P_15は通常の並列化でも要素符号の同時復号でも同一のアドレスでアクセスされるため、1個のメモリで実現することができる。
また、外部情報メモリ803は、情報受信値メモリ801と同様に、要素符号の同時復号ではメモリ(以下、「メモリ」を省略)E_0,...,E_7には要素符号2のSISO復号の出力である外部情報を、E_8,...,E_15には要素符号1のSISO復号の出力である外部情報を格納する。e1(j)とe2(j)(j=0,1,...,K-1)が、要素符号1および要素符号2の出力で得られるu
(j)に対する外部情報を表すとすると、K=504のときには外部情報メモリには次のように外部情報が格納される。
E_0: e2(0) e2(2) ... e2(122) e2(124)
E_1: e2(1) e2(3) ... e2(123) e2(125)
E_2: e2(126) e2(128) ... e2(248) e2(250)
E_3: e2(127) e2(129) ... e2(249) e2(251)
E_4: e2(252) e2(254) ... e2(374) e2(376)
E_5: e2(253) e2(255) ... e2(375) e2(377)
E_6: e2(378) e2(380) ... e2(500) e2(502)
E_7: e2(379) e2(381) ... e2(501) e2(503)
E_8: e1(0) e1(2) ... e1(122) e1(124)
E_9: e1(1) e1(3) ... e1(123) e1(125)
E_10:e1(126) e1(128) ... e1(248) e1(250)
E_11:e1(127) e1(129) ... e1(249) e1(251)
E_12:e1(252) e1(254) ... e1(374) e1(376)
E_13:e1(253) e1(255)...e1(375) e1(377)
E_14:e1(378) e1(380)... e1(500) e1(502)
E_15:e1(379) e1(381) ... e1(501) e1(503)
ここで、LTEインターリーバでは、E_0からE_7とE_8からE_15はそれぞれ同一のアドレスでアクセスされるため、それぞれ1個のメモリで実現することができる。
次にK = 504のLTEインターリーバを用いたターボ符号に対する要素符号の同時復号の処理について述べる。K = 504のLTEインターリーバは非特許文献3を参照すると、
u(π(t)) = u((55・t + 84・t^2) mod 504)
とインターリーブ処理を行う。M'= M/q = 4で、radix^2^2 (n = 2)とする。8個のSISO復号器の中の4個のSISO復号器0、1、2および3で要素符号1の復号を実行し, 残りの4個のSISO復号器4、5、6および7で要素符号2の復号を同時に実行する。各ブロックにおけるSISO復号は図3(b)に示したようなウィンドウ(サイズW)を用いたスケジュールを考える。つまり、各ブロックにおいて符号トレリスの時点としてn = 2に対応して2時点ずつ
(W-2, W-1), (W-4,W-3),…, (3, 2), (1, 0), (2W-2, 2W-1), (2W-4, 2W-3),...,(W+3,W+2), (W+1,W),…
の順序でメモリからデータを読み込み、MAPアルゴリズムのバックワード処理を最初に動作させる。以下、ウィンドウサイズWは16に設定してtime 0, 1の場合の処理を示す。
(i) time 0:まず、time 0での処理について説明する。
情報受信値メモリ801および外部情報メモリ803のリードアドレスはad1_0 = ad1_1 = 7であるため、情報受信値メモリU_0,..., U_7, 外部情報メモリE_0,...,E_7から次のような情報受信値および事前情報が読み出されることになる。
x(14), x(15), x(140), x(141), x(266), x(267), x(392), x(393)
e2(14), e2(15), e2(140), e2(141), e2(266), e2(267), e2(392), e2(393)
また、メモリP_0, P_1, P_2, P_3, P_4, P_5, P_6, P_7に対してリードアドレスadp_0 = adp_1= 7から次のようなパリティ受信値が読み出されることになる。
y1(14), y1(15), y1(140), y1(141), y1(266), y1(267), y1(392), y1(393)
そこで、まず、SISO復号器0は、x(14),x(15),e2(14),e2(15),y1(14),y1(15)を読み込んで図3(b)における最初のタイムスロットのバックワード処理を開始する。SISO復号器0は、読み込んだ受信値と外部情報とに基づいて、要素符号1のブランチメトリックγ(14, s, s'), γ(15, s, s') (s, s'∈S)を計算し、これらの外部情報生成が終わるまで復号器内部で一時的に保存する。また、SISO復号器1、2および3は、SISO復号器0と同様に処理を行う。
また、SISO復号器4、5、6および7は、要素符号2の復号に関して次のように受信値、事前情報およびパリティ受信値を読み込む。
SISO復号器4:
情報受信値 x(π(14)) = x(98), x(π(15))) = x(69)
事前情報 e1(π(14)) = e1(98), e1(π(15)) = e1(69)
パリティ2受信値 y2(14), y2(15)
SISO復号器5:
情報受信値 x(π(140)) = x(476), x(π(141)) = x(447)
事前情報 e1(π(140)) = e1(476), e1(π(141)) = e1(447)
パリティ2受信値 y2(140), y2(141)
SISO復号器6:
情報受信値 x(π(266)) = x(350), x(π(267)) = x(321)
事前情報 e1(π(266)) = e1(350), e1(π(267)) = e1(321)
パリティ2受信値 y2(266), y2(267)
SISO復号器7:
情報受信値 x(π(392)) = x(224), x(π(393)) = x(195)
事前情報 e1(π(392)) = e1(224), e1(π(393))) = e1(195)
パリティ2受信値 y2(392), y2(393)
読み込んだ受信値と事前情報から、SISO復号器4、5、6および7は、それぞれ要素符号2のブランチメトリック(γ(14,s,s'), γ(15,s,s')), (γ(140,s,s'), γ(141,s,s')), (γ(266,s,s,'), γ(267,s,s')), (γ(392,s,s'), γ(393,s,s'))を計算し(s,s'∈S)、計算したブランチメトリックを、対応する時点の外部情報生成が終わるまで復号器内部に一時的に保存する。
SISO復号器へのこのようなデータのアサインはU_8,U_10,U_12,U_14およびE_8,E_10,E_12,E_14 のリードアドレスad2,0, U_9,U_11,U_13,U_15およびE_9,E_11,E_13,E_15に対するリードアドレスad2,1, U_8,U_10,U_12,U_14およびE_8,E_10,E_12,E14)から読み出したデータの置換処理Π2_0、U_9,U_11,U_13,U_15およびE_9,E_11,E_13,E15)から読み出したデータの置換処理Π2_1を次のように設定することで実現できる。[x]はx以下の最大の整数を表す。
ad2_0 = (98 mod 126)/2 = (476 mod 126)/2 = (350 mod 126)/2 = (224 mod 126)/2 = 49
ad2_1 = [(69 mod 126)/2] = [(447 mod 126)/2] = [(321 mod 126)/2] = [(195 mod 126)/2] = 34
Π2_0 : (x(98), x(224), x(350), x(476)) → (x(98), x(476), x(350), x(224))
(e1(98), e1(224), e1(350), e1(476)) → (e1(98), e1(476), e1(350), e1(224))
Π2_1 : (x(69), x(195), x(321), x(447)) → (x(69), x(447), x(321), x(195))
(e1(69), e1(195), e1(321), e1(447)) → (e1(69), e1(447), e1(321), e1(195))
次に、SISO復号器0、1、2および3は、生成した外部情報e1(14), e1(15), e1(140), e1(141), e1(266), e1(267), e1(392), e1(393)をそれぞれメモリE_8,...,E_15に書き込む。
同時に、SISO復号器4、5、6および7は、生成した外部情報e2(98), e2(69), e2(224), e2(195), e2(350), e2(321), e2(476), e2(447)を、それぞれメモリE_0,...,E_7に書き込む。
(i) time 1:次に、time 1での処理について説明する。
ここでは、要素符号1の復号の情報受信値メモリおよび外部情報メモリのリードドレスはad1_0 = ad1_1 = 6であり、U_0,..., U_7, E_0,...,E_7からは次のような情報受信値および外部情報が読み出されることになる。
x(12), x(13), x(138), x(139), x(264), x(265), x(390), x(391)
e2(12), e2(13), e2(138), e2(139), e2(264), e2(265), e2(390), e2(391)
また、メモリP_0, P_1, P_2, P_3, P_4, P_5, P_6, P_7からは、リードアドレスのadp_0 = adp_1= 6によって次のようなパリティ1受信値が読み出されることになる。
y1(12), y1(13), y1(138), y1(139), y1(264), y1(265), y1(390), y1(391)
そこで、SISO復号器0は、x(12),x(13),e2(12),e2(13),y1(12),y1(13)を読み込んでバックワード処理を進める。読み込んだ受信値と外部情報から、SISO復号器0は、要素符号1のブランチメトリックγ(12,s,s'), γ(13,s,s')を計算し(s,s'∈S)、これらの外部情報生成が終わるまでSISO復号器内部で一時的に保存する。SISO復号器1、2および3は、SISO復号器0と同様に処理を行う。
一方、SISO復号器4、5、6および7は、要素符号2の復号に関して次のように受信値、事前情報およびパリティ受信値を読み込む。
SISO復号器4:
情報受信値 x(π(12)) = x(156), x(π(13)) = x(295)
事前情報 e1(π(12)) = e1(156), e1(π(13)) = e1(295)
パリティ2受信値 y2(12), y2(13)
SISO復号器5:
情報受信値 x(π(138)) = x(30), x(π(139)) = x(169)
事前情報 e1(π(138)) = e1(30), e1(π(139)) = e1(169)
パリティ2受信値 y2(138), y2(139)
SISO復号器6:
情報受信値 x(π(264)) = x(408), x(π(265))) = x(43)
事前情報 e1(π(264)) = e1(408), e1(π(265))) = e1(43)
パリティ2受信値 y2(264), y2(265)
SISO復号器7:
情報受信値 x(π(390)) = x(282), x(π(391))) = x(421)
事前情報 e1(π(390)) = e1(282), e1(π(391))) = e1(421)
パリティ2受信値 y2(390), y2(391)
読み込んだ受信値と外部情報から、SISO復号器4、5、6および7は、それぞれ要素符号2のブランチメトリック(γ(12,s,s'), γ(13,s,s')), (γ(138,s,s'), γ(139,s,s')), (γ(264,s,s'), γ(265,s,s')), (γ(390,s,s'), γ(391,s,s'))を計算し(s,s'∈S)、このブランチメトリックを、対応する時点の外部情報生成が終わるまで復号器内部に一時的に保存する。
SISO復号器へのこのようなデータの割り当てはU_8,U_10,U_12,U_14およびE_8,E_10,E_12,E_14 のリードアドレスad2_0, U_9,U_11,U_13,U_15およびE_9,E_11,E_13,E_15に対するリードアドレスad2_1, U_8,U_10,U_12,U_14 とE_8,E_10,E_12,E14から読み出したデータの置換処理Π2_0、U_9,U_11,U_13,U_15 とE_9,E_11,E_13,E15から読み出したデータの置換処理Π2_1を次のように設定することで実現できる。
ad2_0 = (30 mod 126)/2 = (156 mod 126)/2 = (282 mod 126)/2 = (408 mod 126)/2 = 15
ad2_1 = [(43 mod 126)/2] = [(169 mod 126)/2] = [(295 mod 126)/2] = [(421 mod 126)/2] = 21
Π2_0 : (x(30), x(156), x(282), x(408)) → (x(156), x(30), x(408), x(282))
(e1(30), e1(156), e1(282), e1(408)) → (e1(156), e1(30), e1(408), e1(282))
Π2_1 : (x(43), x(169), x(295), x(421)) → (x(295), x(169), x(43), x(421))
(e1(43), e1(169), e1(295), e1(421)) → (e1(295), e1(169), e1(43), e1(421))
SISO復号器0、1、2および3は、生成した外部情報e1(12), e1(13), e1(138), e1(139), e1(264), e1(265), e1(390), e1(391)をそれぞれメモリE_8,...,E_15に書き込む。
また、SISO復号器4、5、6および7は、生成した外部情報e2(30), e2(43), e2(156), e2(169), e2(282), e2(295), e2(408), e2(421)を、それぞれメモリE_0,...,E_7に書き込む。
図14に、K = 504のLTEインターリーバに本発明の第2の実施の形態としてのターボ符号復号装置20を適用したときの復号特性を示す。
図14において、特性「公知:W=16, It=8」は、公知のターボ符号復号装置によってメモリアクセスの競合を無視してM=8, n=2として通常の並列化で復号をおこなったときの8 iteration(要素符号1および要素符号2の復号が完了して1 iterationとカウント)での復号特性を示している。
特性「公知:W=16, It=4.5」は、公知のターボ符号復号装置によってメモリアクセスの衝突を考慮してM'=4, n=2として復号を実行し、同一の復号処理サイクル数という条件の下で4.5 iteration復号処理を実行したときの復号特性を示している。
一方、特性「改良:W=16, It=9」は同一の復号処理サイクル数という条件の下でM'=4(q=2), n=2として本発明の第2の実施の形態としてのターボ復号装置2によって要素符号の同時復号を実行したときの復号特性を示している。
図14からわかるように、要素符号の同時復号を併用することで、K=504の場合にもM=8, n=2とする並列化が可能と仮定した場合と同程度の特性が得られ、M'=4とした通常の並列化と比較すると0.2dB程度の符号化利得の改善をみることができる。要素符号の同時復号では外部情報の更新の遅延が小さいほど特性の改善を見ることができるため、ウィンドウサイズWを小さくすることで特性の改善を見ることができる場合もある。
また、図14において、特性「改良:W=8 It=10」は、ウィンドウサイズをW=8として、同一の復号処理サイクル数という条件の下で、本発明の第2の実施の形態としてのターボ符号復号装置20によって要素符号の同時復号を実行したときの信号特性を示している。このとき、図3のバックワード処理のトレーニング期間が小さくなって繰り返し数が10に増えたこともあり、W = 16と比較してわずかではあるが復号特性が改善されていることがわかる。
このように、本発明の第2の実施の形態において、誤り訂正符号復号装置は、通常の並列化か要素符号の同時復号かによってWの設定を変更してもよい。また、適切なWのサイズは符号化率にも依存するため、このとき符号化率も考慮してWを設定すると効果的である。
次に、本発明の第2の実施の形態のターボ符号復号装置20の効果について述べる。
本発明の第2の実施の形態としてのターボ符号復号装置は、上述のように構成することにより、通常の並列化のみでは利用するSISO復号器の個数を小さくする必要があったインターリーバサイズに対してもその個数を大きくすることが可能となり、同一特性を達成するための処理速度もしくは同一処理速度であれば特性の改善を達成することができる。
また、本発明の第2の実施の形態としてのターボ符号復号装置は、情報受信値メモリおよび外部情報メモリの容量の増加を必要としない。なぜなら、ターボ符号復号装置は、情報受信値メモリおよび外部情報メモリのサイズのトータルを最大インターリーバサイズ以上に設定し、この最大インターリーバサイズの1/2以下のインターリーバサイズの場合のみに2個の要素符号の同時復号を選択可能にするからである。
なお、本発明の第2の実施の形態では、複数のメモリから読み出した情報受信値および外部情報を複数のSISO復号器にアサインする本発明の置換手段として、要素符号の同時復号を行う場合には通常の並列化とは異なる入出力サイズの回路を必要とすることになる。しかしながら、この置換手段では、入出力数が最大となる通常の並列化の場合の処理が支配的となるため、本発明において2個の要素符号の復号を同時に行う処理に対応するためのオーバーヘッドは限定的となる。
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限定されない。
(付記1)情報の畳込み符号である第1の要素符号と、インターリーバによって置換された前記情報の畳込み符号である第2の要素符号と、前記情報とを含む符号化情報の受信情報に対して繰り返し復号を実行する誤り訂正符号復号装置において、前記インターリーバのサイズに応じて前記第1および第2の要素符号を同時復号するか否かを選択する同時復号選択手段と、前記受信情報を、前記同時復号選択手段の選択結果に応じた位置に格納する受信情報格納手段と、前記第1および第2の要素符号にそれぞれ対応する外部情報を、前記同時復号選択手段の選択結果に応じた位置に格納する外部情報格納手段と、前記第1および第2の要素符号が分割された各ブロックに対して前記受信情報および前記外部情報に基づく軟入力軟出力復号を並列に実行して前記外部情報をそれぞれ出力する複数の軟入力軟出力復号器を有し、前記同時復号選択手段によって同時復号が選択されなかった場合は、前記第1の要素符号の復号および前記第2の要素符号の復号を順次実行して繰り返し、前記同時復号選択手段によって同時復号が選択された場合は、前記第1および第2の要素符号を同時に復号して繰り返す軟入力軟出力復号手段と、を備えた誤り訂正符号復号装置。
(付記2)前記同時復号選択手段は、前記インターリーバのサイズが、前記複数の軟入力軟出力復号器の個数の倍数ではない場合に前記第1および第2の要素符号の同時復号を選択することを特徴とする付記1に記載の誤り訂正符号復号装置。
(付記3)前記同時復号選択手段は、前記インターリーバのサイズが予め定められた値よりも小さい場合に前記第1および第2の要素符号の同時復号を選択することを特徴とする付記1に記載の誤り訂正符号復号装置。
(付記4)前記同時復号選択手段は、前記インターリーバのサイズがあらかじめ定められた値である場合に前記第1および第2の要素符号の同時復号を選択することを特徴とする付記1に記載の誤り訂正符号復号装置。
(付記5)前記同時復号選択手段によって前記同時復号が選択された場合に、前記受信情報格納手段は、前記受信情報のうち前記情報に対応する情報受信値を二重に格納し、前記外部情報格納手段は、前記第1の要素符号の復号結果である外部情報を、前記第2の要素符号を復号する前記軟入力軟出力復号器によって読み込まれるよう格納し、前記第2の要素符号の復号結果である外部情報を、前記第1の要素符号を復号する前記軟入力軟出力復号器によって読み込まれるよう格納することを特徴とする付記1から付記4のいずれかに記載の誤り訂正符号復号装置。
(付記6)前記情報受信値および前記外部情報を、前記同時復号選択手段の選択結果に応じたサイズで置換して、前記受信情報格納手段および前記外部情報格納手段と前記軟入力軟出力復号手段との間で入出力する置換手段をさらに備えたことを特徴とする付記1から付記5のいずれかに記載の誤り訂正符号復号装置。
(付記7)前記同時復号選択手段によって前記同時復号が選択された場合に、前記第1および第2のいずれかの要素符号の軟出力に基づいて硬判定を行う硬判定手段をさらに備えたことを特徴とする付記1から付記6のいずれかに記載の誤り訂正符号復号装置。
(付記8)前記軟入力軟出力復号手段は、前記第1および第2の要素符号の軟入力軟出力復号をウィンドウを用いて局所的に実行し、前記同時復号選択手段によって前記同時復号が選択された場合には、前記ウィンドウのサイズを変更することを特徴とする付記1から付記7のいずれかに記載の誤り訂正符号復号装置。
(付記9)前記軟入力軟出力復号手段は、さらに符号化率に基づいて前記ウィンドウのサイズを決定することを特徴とする付記1から付記8のいずれかに記載の誤り訂正符号復号装置。
(付記10)情報の畳込み符号である第1の要素符号と、インターリーバによって置換された前記情報の畳込み符号である第2の要素符号と、前記情報とを含む符号化情報の受信情報に対して繰り返し復号を実行する誤り訂正符号復号装置が、前記インターリーバのサイズに応じて前記第1および第2の要素符号を同時復号するか否かを選択し、前記受信情報を、前記同時復号の選択結果に応じた位置で受信情報格納手段に格納し、前記第1および第2の要素符号にそれぞれ対応する外部情報を、前記同時復号の選択結果に応じた位置で外部情報格納手段に格納し、前記第1および第2の要素符号が分割された各ブロックに対して前記受信情報および前記外部情報に基づく軟入力軟出力復号を並列に実行して前記外部情報をそれぞれ出力する複数の軟入力軟出力復号器を用いて、前記同時復号を選択しなかった場合は、前記第1の要素符号の復号および前記第2の要素符号の復号を順次実行して繰り返し、前記同時復号を選択した場合は、前記第1および第2の要素符号を同時に復号して繰り返す、誤り訂正符号復号方法。
(付記11)情報の畳込み符号である第1の要素符号と、インターリーバによって置換された前記情報の畳込み符号である第2の要素符号と、前記情報とを含む符号化情報の受信情報に対して繰り返し復号を実行する誤り訂正符号復号装置に、前記インターリーバのサイズに応じて前記第1および第2の要素符号を同時復号するか否かを選択する同時復号選択ステップと、前記受信情報を、前記同時復号選択手段の選択結果に応じた位置で受信情報格納手段に格納する受信情報格納ステップと、前記第1および第2の要素符号にそれぞれ対応する外部情報を、前記同時復号の選択結果に応じた位置で外部情報格納手段に格納する外部情報格納ステップと、前記第1および第2の要素符号が分割された各ブロックに対して前記受信情報および前記外部情報に基づく軟入力軟出力復号を並列に実行して前記外部情報をそれぞれ出力する複数の軟入力軟出力復号器を用いて、前記同時復号を選択しなかった場合は、前記第1の要素符号の復号および前記第2の要素符号の復号を順次実行して繰り返し、前記同時復号を選択した場合は、前記第1および第2の要素符号を同時に復号して繰り返す軟入力軟出力復号ステップと、を実行させる誤り訂正符号復号プログラム。
以上、各実施の形態を参照して本願発明を説明したが、本願発明は上記各実施の形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
この出願は、2010年3月8日に出願された日本出願特願2010−050246号を基礎とする優先権を主張し、その開示の全てをここに取り込む。
本発明は、装置規模の増大を抑えながら多様なインターリーバサイズに対して効率よく復号処理を行うことができる誤り訂正符号復号装置を提供することができ、モバイル用途等で多くのインターリーバサイズに対応しているターボ符号に対する復号装置として好適である。
1 誤り訂正符号復号装置
2 同時復号選択部
3 受信情報格納部
4 外部情報格納部
5 軟入力軟出力復号部
20 ターボ符号復号装置
100 ターボ符号器
101、102 符号化器
103 インターリーバ
110 ターボ符号復号器
601、602 置換処理部
800 アドレス生成部
801 情報受信値メモリ
802 パリティ受信値メモリ
803 外部情報メモリ
900 置換部
901、902、903 置換処理部
904、909 セレクタ
905、906、907 逆変換処理部
908 スワップ処理部
1001 硬判定部
1002 テンポラリメモリ
1003 アドレス制御部
1004 硬判定メモリ
1005 硬判定回路
1100 同時復号選択部

Claims (10)

  1. 情報の畳込み符号である第1の要素符号と、インターリーバによって置換された前記情報の畳込み符号である第2の要素符号と、前記情報とを含む符号化情報の受信情報に対して繰り返し復号を実行する誤り訂正符号復号装置において、
    前記インターリーバのサイズに応じて前記第1および第2の要素符号を同時復号するか否かを選択する同時復号選択手段と、
    前記受信情報を、前記同時復号選択手段の選択結果に応じた位置に格納する受信情報格納手段と、
    前記第1および第2の要素符号にそれぞれ対応する外部情報を、前記同時復号選択手段の選択結果に応じた位置に格納する外部情報格納手段と、
    前記第1および第2の要素符号が分割された各ブロックに対して前記受信情報および前記外部情報に基づく軟入力軟出力復号を並列に実行して前記外部情報をそれぞれ出力する複数の軟入力軟出力復号器を有し、前記同時復号選択手段によって同時復号が選択されなかった場合は、前記第1の要素符号の復号および前記第2の要素符号の復号を順次実行して繰り返し、前記同時復号選択手段によって同時復号が選択された場合は、前記第1および第2の要素符号を同時に復号して繰り返す軟入力軟出力復号手段と、
    を備えた誤り訂正符号復号装置。
  2. 前記同時復号選択手段は、前記インターリーバのサイズが、前記複数の軟入力軟出力復号器の個数の倍数ではない場合に前記第1および第2の要素符号の同時復号を選択することを特徴とする請求項1に記載の誤り訂正符号復号装置。
  3. 前記同時復号選択手段は、前記インターリーバのサイズが予め定められた値よりも小さい場合に前記第1および第2の要素符号の同時復号を選択することを特徴とする請求項1に記載の誤り訂正符号復号装置。
  4. 前記同時復号選択手段は、前記インターリーバのサイズがあらかじめ定められた値である場合に前記第1および第2の要素符号の同時復号を選択することを特徴とする請求項1に記載の誤り訂正符号復号装置。
  5. 前記同時復号選択手段によって前記同時復号が選択された場合に、
    前記受信情報格納手段は、前記受信情報のうち前記情報に対応する情報受信値を二重に格納し、
    前記外部情報格納手段は、前記第1の要素符号の復号結果である外部情報を、前記第2の要素符号を復号する前記軟入力軟出力復号器によって読み込まれるよう格納し、前記第2の要素符号の復号結果である外部情報を、前記第1の要素符号を復号する前記軟入力軟出力復号器によって読み込まれるよう格納することを特徴とする請求項1から請求項4のいずれかに記載の誤り訂正符号復号装置。
  6. 前記情報受信値および前記外部情報を、前記同時復号選択手段の選択結果に応じたサイズで置換して、前記受信情報格納手段および前記外部情報格納手段と前記軟入力軟出力復号手段との間で入出力する置換手段をさらに備えたことを特徴とする請求項1から請求項5のいずれかに記載の誤り訂正符号復号装置。
  7. 前記同時復号選択手段によって前記同時復号が選択された場合に、前記第1および第2のいずれかの要素符号の軟出力に基づいて硬判定を行う硬判定手段をさらに備えたことを特徴とする請求項1から請求項6のいずれかに記載の誤り訂正符号復号装置。
  8. 前記軟入力軟出力復号手段は、前記第1および第2の要素符号の軟入力軟出力復号をウィンドウを用いて局所的に実行し、
    前記同時復号選択手段によって前記同時復号が選択された場合には、前記ウィンドウのサイズを変更することを特徴とする請求項1から請求項7のいずれかに記載の誤り訂正符号復号装置。
  9. 前記軟入力軟出力復号手段は、さらに符号化率に基づいて前記ウィンドウのサイズを決定することを特徴とする請求項に記載の誤り訂正符号復号装置。
  10. 情報の畳込み符号である第1の要素符号と、インターリーバによって置換された前記情報の畳込み符号である第2の要素符号と、前記情報とを含む符号化情報の受信情報に対して繰り返し復号を実行する誤り訂正符号復号装置が、
    前記インターリーバのサイズに応じて前記第1および第2の要素符号を同時復号するか否かを選択し、
    前記受信情報を、前記同時復号の選択結果に応じた位置で受信情報格納手段に格納し、
    前記第1および第2の要素符号にそれぞれ対応する外部情報を、前記同時復号の選択結果に応じた位置で外部情報格納手段に格納し、
    前記第1および第2の要素符号が分割された各ブロックに対して前記受信情報および前記外部情報に基づく軟入力軟出力復号を並列に実行して前記外部情報をそれぞれ出力する複数の軟入力軟出力復号器を用いて、前記同時復号を選択しなかった場合は、前記第1の要素符号の復号および前記第2の要素符号の復号を順次実行して繰り返し、前記同時復号を選択した場合は、前記第1および第2の要素符号を同時に復号して繰り返す、誤り訂正符号復号方法。
JP2012504446A 2010-03-08 2011-03-07 誤り訂正符号復号装置、誤り訂正符号復号方法および誤り訂正符号復号プログラム Active JP5700035B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012504446A JP5700035B2 (ja) 2010-03-08 2011-03-07 誤り訂正符号復号装置、誤り訂正符号復号方法および誤り訂正符号復号プログラム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2010050246 2010-03-08
JP2010050246 2010-03-08
PCT/JP2011/055224 WO2011111654A1 (ja) 2010-03-08 2011-03-07 誤り訂正符号復号装置、誤り訂正符号復号方法および誤り訂正符号復号プログラム
JP2012504446A JP5700035B2 (ja) 2010-03-08 2011-03-07 誤り訂正符号復号装置、誤り訂正符号復号方法および誤り訂正符号復号プログラム

Publications (2)

Publication Number Publication Date
JPWO2011111654A1 JPWO2011111654A1 (ja) 2013-06-27
JP5700035B2 true JP5700035B2 (ja) 2015-04-15

Family

ID=44563456

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012504446A Active JP5700035B2 (ja) 2010-03-08 2011-03-07 誤り訂正符号復号装置、誤り訂正符号復号方法および誤り訂正符号復号プログラム

Country Status (4)

Country Link
US (1) US20130007568A1 (ja)
JP (1) JP5700035B2 (ja)
CN (1) CN102792597A (ja)
WO (1) WO2011111654A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014011627A (ja) * 2012-06-29 2014-01-20 Mitsubishi Electric Corp 内部インタリーブを有する誤り訂正復号装置
WO2014089830A1 (en) * 2012-12-14 2014-06-19 Nokia Corporation Methods and apparatus for decoding
WO2014097531A1 (ja) * 2012-12-19 2014-06-26 日本電気株式会社 アクセス競合解決処理回路、データ処理装置及びアクセス競合解決方法
CN104242957B (zh) * 2013-06-09 2017-11-28 华为技术有限公司 译码处理方法及译码器
WO2016151868A1 (en) * 2015-03-23 2016-09-29 Nec Corporation Information processing apparatus, information processing method, and program
WO2020086696A1 (en) * 2018-10-24 2020-04-30 Skaotlom Llc Lpwan communication protocol design with turbo codes
US10868571B2 (en) * 2019-03-15 2020-12-15 Sequans Communications S.A. Adaptive-SCL polar decoder

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008526134A (ja) * 2004-12-22 2008-07-17 クゥアルコム・インコーポレイテッド 余分なものを取り除いたビット反転インターリーバー
JP2009095008A (ja) * 2007-09-20 2009-04-30 Mitsubishi Electric Corp ターボ符号復号装置、ターボ符号復号方法及び通信システム
JP2010050634A (ja) * 2008-08-20 2010-03-04 Oki Electric Ind Co Ltd 符号化装置、復号装置及び符号化システム
JP2010508790A (ja) * 2006-11-01 2010-03-18 クゥアルコム・インコーポレイテッド 高データレートのためのターボインターリーバ

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU5675499A (en) * 1998-08-17 2000-03-06 Hughes Electronics Corporation Turbo code interleaver with near optimal performance
JP3888135B2 (ja) * 2001-11-15 2007-02-28 日本電気株式会社 誤り訂正符号復号装置
JP4229948B2 (ja) * 2006-01-17 2009-02-25 Necエレクトロニクス株式会社 復号装置、復号方法、及び受信装置
US7810018B2 (en) * 2006-10-27 2010-10-05 Telefonaktiebolaget Lm Ericsson (Publ) Sliding window method and apparatus for soft input/soft output processing
US8239711B2 (en) * 2006-11-10 2012-08-07 Telefonaktiebolaget Lm Ericsson (Publ) QPP interleaver/de-interleaver for turbo codes
US8379738B2 (en) * 2007-03-16 2013-02-19 Samsung Electronics Co., Ltd. Methods and apparatus to improve performance and enable fast decoding of transmissions with multiple code blocks

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008526134A (ja) * 2004-12-22 2008-07-17 クゥアルコム・インコーポレイテッド 余分なものを取り除いたビット反転インターリーバー
JP2010508790A (ja) * 2006-11-01 2010-03-18 クゥアルコム・インコーポレイテッド 高データレートのためのターボインターリーバ
JP2009095008A (ja) * 2007-09-20 2009-04-30 Mitsubishi Electric Corp ターボ符号復号装置、ターボ符号復号方法及び通信システム
JP2010050634A (ja) * 2008-08-20 2010-03-04 Oki Electric Ind Co Ltd 符号化装置、復号装置及び符号化システム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6011015533; Cheng-Chi Wong, et al.: 'Turbo Decoder Using Contention-Free Interleaver and Parallel Architecture' IEEE Journal of Solid-State Circuits Vol.45, No.2, 201002, pp.422-432 *

Also Published As

Publication number Publication date
US20130007568A1 (en) 2013-01-03
CN102792597A (zh) 2012-11-21
JPWO2011111654A1 (ja) 2013-06-27
WO2011111654A1 (ja) 2011-09-15

Similar Documents

Publication Publication Date Title
US7191377B2 (en) Combined turbo-code/convolutional code decoder, in particular for mobile radio systems
KR101323444B1 (ko) 반복적 디코더 및 반복적 디코딩 방법
May et al. A 150Mbit/s 3GPP LTE turbo code decoder
JP5700035B2 (ja) 誤り訂正符号復号装置、誤り訂正符号復号方法および誤り訂正符号復号プログラム
KR100761306B1 (ko) 디코딩 방법 및 장치
US9048877B2 (en) Turbo code parallel interleaver and parallel interleaving method thereof
JP5840741B2 (ja) 複数のコード・タイプをプログラマブル復号する方法および装置
JP4874312B2 (ja) ターボ符号復号装置、ターボ符号復号方法及び通信システム
Belhadj et al. Performance comparison of channel coding schemes for 5G massive machine type communications
US6487694B1 (en) Method and apparatus for turbo-code decoding a convolution encoded data frame using symbol-by-symbol traceback and HR-SOVA
JP4837645B2 (ja) 誤り訂正符号復号回路
JP2003198386A (ja) インターリーブ装置及びインターリーブ方法、符号化装置及び符号化方法、並びに復号装置及び復号方法
JP2004343716A (ja) 畳み込み符号化信号の伝送形式をブラインド検出する方法および復号器
KR101051933B1 (ko) 트렐리스의 버터플라이 구조를 이용한 맵 디코딩을 위한메트릭 계산
KR100390416B1 (ko) 터보 디코딩 방법
KR100628201B1 (ko) 터보 디코딩 방법
KR19990081470A (ko) 터보복호기의 반복복호 종료 방법 및 그 복호기
Brejza et al. A high-throughput FPGA architecture for joint source and channel decoding
US9130728B2 (en) Reduced contention storage for channel coding
JP2003152556A (ja) 誤り訂正符号復号装置
Dobkin et al. Parallel VLSI architecture and parallel interleaver design for low-latency MAP turbo decoders
WO2011048997A1 (ja) 軟出力復号器
KR100317377B1 (ko) 변복조 시스템의 부호화 및 복호화 장치
Madhukumar et al. Application of Fixed Point Turbo Decoding Algorithm for Throughput Enhancement of SISO Parallel Advanced LTE Turbo Decoders.
Lu et al. Low-latency turbo decoder design by concurrent decoding of component codes

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141021

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141209

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: 20150120

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150202

R150 Certificate of patent or registration of utility model

Ref document number: 5700035

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150