JP4874312B2 - ターボ符号復号装置、ターボ符号復号方法及び通信システム - Google Patents

ターボ符号復号装置、ターボ符号復号方法及び通信システム Download PDF

Info

Publication number
JP4874312B2
JP4874312B2 JP2008220232A JP2008220232A JP4874312B2 JP 4874312 B2 JP4874312 B2 JP 4874312B2 JP 2008220232 A JP2008220232 A JP 2008220232A JP 2008220232 A JP2008220232 A JP 2008220232A JP 4874312 B2 JP4874312 B2 JP 4874312B2
Authority
JP
Japan
Prior art keywords
turbo code
memory
processing
sequence
address
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
JP2008220232A
Other languages
English (en)
Other versions
JP2009095008A (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2008220232A priority Critical patent/JP4874312B2/ja
Publication of JP2009095008A publication Critical patent/JP2009095008A/ja
Application granted granted Critical
Publication of JP4874312B2 publication Critical patent/JP4874312B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Error Detection And Correction (AREA)

Description

この発明は、ディジタル情報処理における誤り訂正技術に係り、特に、ターボ符号を復号するターボ符号復号装置、ターボ符号復号方法及び通信システムに関するものである。
ターボ符号の復号は、非インタリーブ系列とインタリーブ系列に対して、BCJR(Bahl Cocke Jeinek Raviv)アルゴリズムと呼ばれるトレリス線図の順方向処理と逆方向処理によってパスメトリック値の算出を繰り返すことにより行われる。
理想的な復号方法として、MAP(maximum a posteriori probability)復号法があり、Log−MAP復号法、Max−Log−MAP復号法なども広く知られている(例えば、非特許文献1を参照)。
ターボ符号を用いて高速ディジタル通信を実施する場合、ターボ符号の復号処理を高速化して、処理の遅延量を小さくする必要がある。
ターボ符号の復号処理を高速化するために、ターボ符号の復号処理を並列化する場合、実装の複雑さが内部インタリーバの構成に依存する。
例えば、「3GPP TS36.212」の規格で規定されているQPP(Quadratic Polynomial Permutation)は(例えば、非特許文献2を参照)は、復号処理の並列化に適している内部インタリーバである(例えば、非特許文献3を参照)。
例えば、非特許文献4には、ターボ符号の復号処理を並列化して行う方法が開示されている。
即ち、非特許文献4には、BCJRアルゴリズムを並列数に分割して同時に処理する旨が記載されており、並列数に分割して同時に処理する際、分割の切れ目となるパスメトリック値を保存し、繰り返し処理の次回の演算で、そのパスメトリック値を用いることで、復号性能の劣化を招くことなく、復号することができるようにしている。
また、上記の復号方法との組み合わせ方式として、スライディング・ウィンドウ方式が知られている(例えば、非特許文献5を参照)。
スライディング・ウィンドウ方式もBCJRアルゴリズムを分割して、パスメトリック値を算出することで、メモリ量を削減することができる方法である。
その際、分割の切れ目において、処理の度にトレリスを遡ってBCJRアルゴリズムを始めることで、復号性能の劣化を招くことなく、復号することができる。
トレリスを遡る期間は、「マージン幅」や「トレーニング幅」などと呼ばれる。以下、この明細書では、トレリスを遡る期間を「マージン幅」と称するものとする。
萩原春生、「ターボ符号の基礎」、トリケップス、p.37-46、1999年10月7日 J.Sun、O.Y.Takeshita、「Interleavers for turbo codes using permutation polynomials over integer rings」、IEEE Trans. Inform. Theory, vol.51, p.101-119、2005年3月 M.K.Cheng、B.E.Moision、J.Hamkins、M.A.Nakashima、「An interleaver implementation for the serially concatenated pulse-position modulation decoder」、IEEE Symposium on Circuits and Systems, Greece, May 21-24, 2006 越智 俊輔、渋谷 智治、坂庭 好一、山田 功、「MAPアルゴリズムの並列処理によるTurbo-Codeの高速復号法」、信学技法 IT97-57, pp.1-6, 1998 S.Benedetto、D.Divsalar、G.Montorsi、F.Pollara、「Algorithm for continuous decoding of turbo codes」、Electronics Letters Volume 32, Issue 4, 15 Feb 1996, p.314-315
従来のターボ符号復号装置は以上のように構成されているので、ターボ符号のインタリーバとしてQPP方式が採用される場合、複雑な乗算と剰余計算ではなく、加減算と比較処理を実施するだけでインタリーブ系列を生成することができる(非特許文献2)。しかし、この場合、インタリーブ系列を先頭から順番に生成することができるため、順方向処理の際にはインタリーブ系列の生成と同時に復号を行うことができるが、逆方向処理の際にはインタリーブ系列をメモリに格納して、そのインタリーブ系列を読み出しながら処理する必要がある。このため、インタリーブ系列を格納するメモリが必要となり、メモリ量が大きくなる課題があった。
ターボ符号の復号処理速度は、復号繰り返し回数や並列数に依存し、スライディング・ウィンドウ方式が使用される場合にはマージンなどに依存する。繰り返し回数を減らせば、復号処理の高速化を図ることができるが、復号性能の劣化を招いてしまう課題があった。また、並列数を高次にしても、復号処理の高速化を図ることができるが、メモリ量の増大を招いてしまう課題があった。
また、スライディング・ウィンドウ方式を用いてメモリ削減を行う場合、特にターボ符号が短いと、マージン幅による処理量の増加の影響が大きく、処理速度が低下する課題があった。
この発明は上記のような課題を解決するためになされたもので、インタリーブ系列を格納するメモリを実装することなく、ターボ符号の復号処理を並列化することができるターボ符号復号装置、ターボ符号復号方法及び通信システムを得ることを目的とする。
この発明に係るターボ符号復号装置は、メモリ選択初期テーブルに保持されたパラメータとインタリーブアドレス生成テーブルに保持された係数を用いて加減算処理と比較計算処理を実施して、順方向処理と逆方向処理の、ターボ符号格納手段の並び順とアドレスを決定し、情報選択制御手段により決定された並び順でターボ符号格納手段のアドレスに格納された各データを読み出して、順方向処理と逆方向処理のインタリーブ系列を生成するものである。
この発明によれば、ターボ符号のインタリーブ系列及び非インタリーブ系列を生成する系列生成手段が、ターボ符号のインタリーブ系列を生成する際、加減算処理と比較計算処理を実施して順方向処理と逆方向処理のインタリーブ位置を求めるように構成したので、インタリーブ系列を格納するメモリを実装することなく、ターボ符号の復号処理を並列化することができるようになり、実装するメモリ量を削減することができる効果がある。

実施の形態1.
図1はこの発明の実施の形態1によるターボ符号復号装置を示す構成図であり、図において、情報メモリ1は要素復号器7の並列数Pと同じ個数だけ設置され、例えば、「3GPP TS36.212」の規格に規定されているターボ符号の情報系列(システマティック系列)に相当する受信信号を格納する。
パリティ1メモリ2は要素復号器7の並列数Pと同じ個数だけ設置され、ターボ符号のパリティ1系列に相当する受信信号を格納する。
パリティ2メモリ3は要素復号器7の並列数Pと同じ個数だけ設置され、ターボ符号のパリティ2系列に相当する受信信号を格納する。
外部情報メモリ4は要素復号器7の並列数Pと同じ個数だけ設置され、要素復号器7から出力される外部情報系列を格納する。
情報メモリ1、パリティ1メモリ2及びパリティ2メモリ3は、トレリス終端にテイル・ビットが付加されたターボ符号の場合、テイル・ビットの受信信号を格納する。
なお、情報メモリ1、パリティ1メモリ2、パリティ2メモリ3及び外部情報メモリ4からターボ符号格納手段が構成されている。
メモリインタフェース5は情報メモリ1、パリティ1メモリ2及びパリティ2メモリ3に格納されている受信信号のうち、制御部6が指示するインタリーブ位置から受信信号を読み出して、ターボ符号のインタリーブ系列及び非インタリーブ系列を生成し、制御部6が指示する要素復号器7に対してターボ符号のインタリーブ系列及び非インタリーブ系列を出力し、また、要素復号器7から出力される外部情報系列を外部情報メモリ4に出力する処理を実施する。
制御部6はインタリーブ位置をメモリインタフェース5に指示するとともに、要素復号器7における順方向処理と逆方向処理を制御するものであり、制御部6はメモリインタフェース5がターボ符号のインタリーブ系列を生成する際、加減算処理と比較計算処理を実施するだけで順方向処理と逆方向処理のインタリーブ位置を求める。
なお、メモリインタフェース5及び制御部6から系列生成手段が構成されている。
要素復号器7はP個並列に設置されており、制御部6の指示の下、メモリインタフェース5により生成されたインタリーブ系列及び非インタリーブ系列に対する順方向処理と逆方向処理を繰り返し実施して、ターボ符号を復号するとともに、外部情報系列を算出する処理を実施する。なお、要素復号器7は復号手段を構成している。
図1の例では、ターボ符号復号装置の構成要素であるメモリインタフェース5、制御部6及び要素復号器7がそれぞれ専用のハードウェア(例えば、MPUが実装されている半導体集積回路基板)から構成されているものを想定しているが、ターボ符号復号装置がコンピュータで構成される場合、メモリインタフェース5、制御部6及び要素復号器7の処理内容を記述しているプログラムをコンピュータのメモリに格納し、コンピュータのCPUが当該メモリに格納されているプログラムを実行するようにしてもよい。
図2はこの発明の実施の形態1によるターボ符号復号装置の処理内容を示すフローチャートである。
次に動作について説明する。
例えば、ターボ符号の内部インタリーバとして、整数環上の2次多項式であるQPP方式を採用している図示せぬ送信装置が、例えば、パケットデータなどの情報源をターボ符号化してターボ符号を生成し、そのターボ符号を変調して変調波を送信する。
通信路では、伝播環境に応じて雑音が変調波に付加され、雑音が付加されている変調波が図示せぬ受信装置で受信される。
受信装置は、送信装置から送信された変調波を受信すると、その変調波に対する同期検波や復調処理などを実施して、ターボ符号の情報系列(システマティック系列)に相当する受信信号、ターボ符号のパリティ1系列に相当する受信信号及びターボ符号のパリティ2系列に相当する受信信号を算出する。
受信装置には図1のターボ符号復号装置が内蔵されており、ターボ符号復号装置がターボ符号を復号する。
以下、ターボ符号復号装置の処理内容を具体的に説明する。
ここでは、情報系列の情報長がK、要素復号器7の並列数がPであるとする。
この場合、P個の要素復号器7により並列に処理される並列化単位の長さがW=K/Pとなり、アドレス数もK/Pとなる。
また、1ワードは、受信信号のビット数nに等しいnビットとなる。
ターボ符号復号装置におけるP個の情報メモリ1には、ターボ符号の情報系列に相当する受信信号がそれぞれ格納される。ただし、情報系列の先頭から#1〜#Pの順番で情報メモリ1に格納される。
また、ターボ符号復号装置におけるP個のパリティ1メモリ2には、ターボ符号のパリティ1系列に相当する受信信号がそれぞれ格納され、P個のパリティ2メモリ3には、ターボ符号のパリティ2系列に相当する受信信号がそれぞれ格納される。
ただし、パリティ1系列の先頭から#1〜#Pの順番でパリティ1メモリ2に格納され、パリティ2系列の先頭から#1〜#Pの順番でパリティ2メモリ3に格納される。
制御部6は、メモリインタフェース5が情報メモリ1、パリティ1メモリ2及びパリティ2メモリ3から読み出す受信信号を制御するとともに、メモリインタフェース5が外部情報メモリ4から読み出す外部情報と、外部情報メモリ4に書き込む外部情報(例えば、要素復号器7による復号結果が“1”又は“0”である確率を示す情報)とを制御する。
ただし、メモリインタフェース5が外部情報を書き込む際には、その外部情報の書き込み先が、読み出す外部情報と同じメモリであって、読み出す外部情報と同じアドレスになるように制御する。
なお、詳細は後述するが、情報メモリ1及び外部情報メモリ4からの読み出しは、インタリーブ時のアクセスでは、インタリーブ系列に従うランダムアクセスとなり、非インタリーブ時のアクセスでは、順序通りとなる。
また、パリティ1メモリ2及びパリティ2メモリ3からの読み出しは、常に順序通りとなり、非インタリーブの復号時には、パリティ1メモリ2からパリティ1系列に相当する受信信号が読み出されて要素復号器7に出力される。また、インタリーブの復号時には、パリティ2メモリ3からパリティ2系列に相当する受信信号が読み出されて要素復号器7に出力される。
制御部6からは、読み出すメモリ番号B(t)と読み出すアドレスA(t)を示す制御信号がメモリインタフェース5に出力される。
ここで、制御部6がメモリインタフェース5に出力するメモリ番号B(t)とアドレスA(t)について具体的に説明する。
まず、メモリインタフェース5が生成するQPPインタリーバのt番目のインタリーブ系列π(t)は、下記のように表される。
π(t)=(f1×t+f2×t×t) mod K (1)
ただし、f1,f2は所定の定数である。
このとき、P個の要素復号器7が並列処理する場合、i番目の処理でj番目の要素復号器7に渡すデータとしてアクセスするメモリ番号B(t)とアドレスA(t)は、下記のように表される。
B(t)=π(i+W×j)/W (2)
A(t)=π(i+W×j) mod W (3)
ただし、ここでは説明の簡単化のため、PはKの約数としている。
したがって、制御部6が式(1)〜式(3)を計算すれば、メモリ番号B(t)とアドレスA(t)を求めることができるが、式(1)〜式(3)の計算では、乗算とmod(剰余)計算が必要となり、実装するには複雑性が高いものとなる。
そこで、この実施の形態1では、下記に示すように、制御部6が加減算処理と比較計算処理を実施するだけで、順方向処理と逆方向処理のインタリーブ位置を求めるようにしている。
アクセスするメモリ番号B(t)とアドレスA(t)を計算するに際して、補助パラメータとしてβ(t),α(t)を用意する。
ただし、以下のパラメータβ(0),α(0),γ,δは、計算量が大きいので,予めメモリに格納しておくものとする。
β(0)=ceil((f1+f2)mod K)/W)
α(0)=(f1+f2) mod W
γ=ceil(2×f2/W)
δ=(2×f2 mod W)
ただし、ceil(引数)は、カッコ内の引数から次に大きい整数を返す関数である。
なお、パラメータβ(0),α(0),γ,δを計算して、その計算値を保持しておく分には、大きなメモリ量を必要としない。
順方向処理のインタリーブ位置を示すメモリ番号B(t)とアドレスA(t)は、以下に示すように、順方向の逐次的な操作で求めることができる。
[B(t)の更新] If (A(t)+α(t)≧W)
C=1
Else
C=0
B(t+1)=B(t)+β(t)+C
If (B(t+1)≧P)
B(t+1)=B(t+1)−P
[β(t)の更新] If (α(t)+δ≧W)
C=1
Else
C=0
β(t+1)=β(t)+γ+C
If (β(t+1)≧P)
β(t+1)=β(t+1)−P
[A(t)の更新] A(t+1)=A(t)+α(t)
If (A(t+1)≧W)
A(t+1)=A(t+1)−W
[α(t)の更新] α(t+1)=α(t)+δ
If (α(t+1)≧W)
α(t+1)=α(t+1)−W
(4)
メモリインタフェース5は、制御部6から出力されるメモリ番号B(t)が示す情報メモリ1に格納されている受信信号のうち、制御部6から出力されるアドレスA(t)が示すインタリーブ位置から1ワード分の受信信号を読み出すことで、順方向のインタリーブ系列π(t)を生成することができる。
なお、情報長Kを並列数Pで等分割して、#1〜#Pの要素復号器7が並列処理を実施する場合、#1〜#Pの要素復号器7における並列処理の始点は、それぞれQPPインタリーバの先頭0,W,2W,・・・,(P−1)×Wとなる。
したがって、制御部6は、逐次計算式における並列処理の初期値となるパラメータとして、B(0),B(W),B(2W),・・・,B((P−1)×W),β(0),β(W),β(2W),・・・,β((P−1)×W),α(0),γ,δを保持している。
メモリインタフェース5は、順方向のインタリーブ系列π(t)を生成して、そのインタリーブ系列π(t)を要素復号器7に与える場合、パリティ2メモリ3からターボ符号のパリティ2系列に相当する受信信号を読み出して、その受信信号を要素復号器7に与えるが、#1のパリティ2メモリ3に格納されている受信信号は#1の要素復号器7に与え、#2のパリティ2メモリ3に格納されている受信信号は#2の要素復号器7に与え、また、#Pのパリティ2メモリ3に格納されている受信信号は#Pの要素復号器7に与える。
このとき、#1〜#Pのパリティ2メモリ3の初期位置から順番に受信信号を読み出すが、#1〜#Pのパリティ2メモリ3から受信信号を読み出す毎に、読み出しアドレス(最初は、初期位置のアドレス=#1〜#Pのパリティ2メモリ3に格納されているW個の受信信号のうち、先頭に格納されている受信信号を示すアドレス)を1ずつインクリメントするようにする。
制御部6は、上記の通り、順方向処理のインタリーブ位置を求める際には式(4)を計算するが、メモリインタフェース5が順方向処理の非インタリーブ系列を生成して、その非インタリーブ系列を#1〜#Pの要素復号器7に与える場合、#1〜#Pの情報メモリ1の初期位置から順番に1ワード分の受信信号を読み出すようにする。
このとき、#1〜#Pの情報メモリ1から受信信号を読み出す毎に、読み出しアドレス(最初は、初期位置のアドレス=#1〜#Pの情報メモリ1に格納されているW個の受信信号のうち、先頭に格納されている受信信号を示すアドレス)を1ずつインクリメントするようにする。
なお、#1の情報メモリ1に格納されている受信信号は#1の要素復号器7に与え、#2の情報メモリ1に格納されている受信信号は#2の要素復号器7に与え、また、#Pの情報メモリ1に格納されている受信信号は#Pの要素復号器7に与える。
メモリインタフェース5は、順方向の非インタリーブ系列を生成して、その非インタリーブ系列を要素復号器7に与える場合、パリティ1メモリ2からターボ符号のパリティ1系列に相当する受信信号を読み出して、その受信信号を要素復号器7に与えるが、#1のパリティ1メモリ2に格納されている受信信号は#1の要素復号器7に与え、#2のパリティ1メモリ2に格納されている受信信号は#2の要素復号器7に与え、また、#Pのパリティ1メモリ2に格納されている受信信号は#Pの要素復号器7に与える。
このとき、#1〜#Pのパリティ1メモリ2の初期位置から順番に受信信号を読み出すが、#1〜#Pのパリティ1メモリ2から受信信号を読み出す毎に、読み出しアドレス(最初は、初期位置のアドレス=#1〜#Pのパリティ1メモリ2に格納されているW個の受信信号のうち、先頭に格納されている受信信号を示すアドレス)を1ずつインクリメントするようにする。
次に、逆方向処理のインタリーブ位置を示すメモリ番号B(t)とアドレスA(t)は、以下に示すように、逆方向の逐次的な操作で求めることができる。
[α(t)の更新] If (α(t)≧δ)
α(t−1)=α(t)−δ
Else
α(t−1)=α(t)+W−δ
[A(t)の更新] If (A(t)≧α(t−1))
A(t−1)=A(t)−α(t−1)
Else
A(t−1)=A(t)+W−α(t−1)
[β(t)の更新] If (α(t)+δ≧W)
C=1
Else
C=0
If (β(t)≧γ+C)
β(t−1)=β(t)−γ−C
Else
β(t−1)=β(t+1)+P−γ−C
[B(t)の更新] If (A(t)+α(t)≧W)
C=1
Else
C=0
If (B(t)≧β(t−1)+C)
B(t−1)=B(t)−β(t−1)−C
Else
B(t−1)=B(t)+P−β(t−1)−C
(5)
メモリインタフェース5は、制御部6から出力されるメモリ番号B(t)が示す情報メモリ1に格納されている受信信号のうち、制御部6から出力されるアドレスA(t)が示すインタリーブ位置から1ワード分の受信信号を読み出すことで、逆方向のインタリーブ系列π(t)を生成することができる。
なお、情報長Kを並列数Pで等分割して、#1〜#Pの要素復号器7が並列処理を実施する場合、#1〜#Pの要素復号器7における並列処理の始点は、それぞれQPPインタリーバの(P−1)×W,・・・,2W,1W,先頭0となる。
したがって、制御部6は、逐次計算式における並列処理の初期値となるパラメータとして、B(0),B(W),B(2W),・・・,B((P−1)×W),β(0),β(W),β(2W),・・・,β((P−1)×W),α(0),γ,δを保持している。
メモリインタフェース5は、逆方向のインタリーブ系列π(t)を生成して、そのインタリーブ系列π(t)を要素復号器7に与える場合、パリティ2メモリ3からターボ符号のパリティ2系列に相当する受信信号を読み出して、その受信信号を要素復号器7に与えるが、#1のパリティ2メモリ3に格納されている受信信号は#1の要素復号器7に与え、#2のパリティ2メモリ3に格納されている受信信号は#2の要素復号器7に与え、また、#Pのパリティ2メモリ3に格納されている受信信号は#Pの要素復号器7に与える。
このとき、#1〜#Pのパリティ2メモリ3の最終位置から順番に受信信号を読み出すが、#1〜#Pのパリティ2メモリ3から受信信号を読み出す毎に、読み出しアドレス(最初は、最終位置のアドレス=#1〜#Pのパリティ2メモリ3に格納されているW個の受信信号のうち、最後尾に格納されている受信信号を示すアドレス)を1ずつデクリメントするようにする。
制御部6は、上記の通り、逆方向処理のインタリーブ位置を求める際には式(5)を計算するが、メモリインタフェース5が逆方向処理の非インタリーブ系列を生成して、その非インタリーブ系列を#1〜#Pの要素復号器7に与える場合、#1〜#Pの情報メモリ1の最終位置から順番に1ワード分の受信信号を読み出すようにする。
このとき、#1〜#Pの情報メモリ1から受信信号を読み出す毎に、読み出しアドレス(最初は、最終位置のアドレス=#1〜#Pの情報メモリ1に格納されているW個の受信信号のうち、最後尾に格納されている受信信号を示すアドレス)を1ずつデクリメントするようにする。
なお、#1の情報メモリ1に格納されている受信信号は#1の要素復号器7に与え、#2の情報メモリ1に格納されている受信信号は#2の要素復号器7に与え、また、#Pの情報メモリ1に格納されている受信信号は#Pの要素復号器7に与える。
メモリインタフェース5は、順方向の非インタリーブ系列を生成して、その非インタリーブ系列を要素復号器7に与える場合、パリティ1メモリ2からターボ符号のパリティ1系列に相当する受信信号を読み出して、その受信信号を要素復号器7に与えるが、#1のパリティ1メモリ2に格納されている受信信号は#1の要素復号器7に与え、#2のパリティ1メモリ2に格納されている受信信号は#2の要素復号器7に与え、また、#Pのパリティ1メモリ2に格納されている受信信号は#Pの要素復号器7に与える。
このとき、#1〜#Pのパリティ1メモリ2の最終位置から順番に受信信号を読み出すが、#1〜#Pのパリティ1メモリ2から受信信号を読み出す毎に、読み出しアドレス(最初は、最終位置のアドレス=#1〜#Pのパリティ1メモリ2に格納されているW個の受信信号のうち、最後尾に格納されている受信信号を示すアドレス)を1ずつデクリメントするようにする。
メモリインタフェース5がインタリーブ系列及び非インタリーブ系列を生成する際の制御部6の動作は、上記の通りである。
以下、図2を参照しながら、制御部6がメモリインタフェース5を制御することにより、インタリーブ系列と非インタリーブ系列を順番に生成させて、要素復号器7がターボ符号を復号する処理を説明する。
なお、図2では、非インタリーブ、インタリーブ、非インタリーブ、インタリーブ、・・・、非インタリーブ、インタリーブの順番で繰り返し復号を行う例を示しているが、非インタリーブとインタリーブは逆の順序でもよい。また、順方向、逆方向、順方向、逆方向の順番で処理しているが、順方向と逆方向は逆の順序でもよい。
まず、制御部6は、要素復号器7のメモリに格納されているパスメトリック値を初期化する。
次に、制御部6は、インタリーブ系列π(t)の生成に係るパラメータとして、情報長固有のパラメータ(α(0)、γ、δ)と、並列処理を行う際の先頭位置を示すパラメータ(B(0),B(W),B(2W),・・・,B((P−1)×W),β(0),β(W),β(2W),・・・,β((P−1)×W)とを設定する。
なお、図2では並列処理を明確にするため、並列数をPとして、順方向処理と逆方向処理を#1〜#Pで表している。
また、制御部6は、順方向処理と逆方向処理の繰り返し回数とメモリアクセスの初期設定を行うとともに、要素復号器7におけるパスメトリック計算の初期化を行う。
なお、図2では、要素復号器7により算出されたパスメトリック値を“端パスメトリック値”と記述しており、特に、パスメトリック値の格納と読み出しを明確にするため、非インタリーブ順方向の場合をF1、非インタリーブ逆方向の場合をB1、インタリーブ順方向の場合をF2、インタリーブ逆方向の場合をB2で表記している。これらのパスメトリック値は新しい値の算出時に上書きする。
繰り返し1回目では、制御部6は、非インタリーブ系列の順方向処理を行うため、#1〜#Pの要素復号器7に与える順方向の非インタリーブ系列の位置を示すアドレスとメモリ番号をメモリインタフェース5に出力する。
メモリインタフェース5は、制御部6からアドレスとメモリ番号を受けると、そのアドレスとメモリ番号にしたがって、#1〜#Pの情報メモリ1から受信信号をそれぞれ読み出して、各受信信号を#1〜#Pの要素復号器7に与えるとともに、パリティ1メモリ2から受信信号をそれぞれ読み出して、各受信信号を#1〜#Pの要素復号器7に与える。
#1〜#Pの要素復号器7は、メモリインタフェース5から受信信号を受けると、その受信信号に対する順方向処理を実施して、復号結果を算出するとともに、非インタリーブ順方向のパスメトリック値を算出し、そのパスメトリック値を端パスメトリック値F1として内部のメモリに格納する。受信信号に対する順方向処理、復号結果やパスメトリック値を算出する方法は、公知の技術であり、例えば、非特許文献1に開示されている。
なお、#1〜#Pの要素復号器7における順方向処理では、Wステップを要する。
次に、制御部6は、繰り返し1回目における非インタリーブ系列の逆方向処理を行うため、#1〜#Pの要素復号器7に与える逆方向の非インタリーブ系列の位置を示すアドレスとメモリ番号をメモリインタフェース5に出力する。
メモリインタフェース5は、制御部6からアドレスとメモリ番号を受けると、そのアドレスとメモリ番号にしたがって、#1〜#Pの情報メモリ1から受信信号をそれぞれ読み出して、各受信信号を#1〜#Pの要素復号器7に与えるとともに、パリティ1メモリ2から受信信号をそれぞれ読み出して、各受信信号を#1〜#Pの要素復号器7に与える。
#1〜#Pの要素復号器7は、メモリインタフェース5から受信信号を受けると、その受信信号に対する逆方向処理を実施して、復号結果を算出するとともに、非インタリーブ逆方向のパスメトリック値を算出し、そのパスメトリック値を端パスメトリック値B1として内部のメモリに格納する。
また、#1〜#Pの要素復号器7は、非インタリーブ逆方向のパスメトリック値を用いて、外部情報(例えば、要素復号器7による復号結果が“1”又は“0”である確率を示す情報)を算出し、その外部情報を#1〜#Pの外部情報メモリ4に格納する。受信信号に対する逆方向処理や外部情報を算出する方法は、公知の技術であり、例えば、非特許文献1に開示されている。
なお、#1〜#Pの要素復号器7における逆方向処理では、Wステップを要する。
次に、制御部6は、繰り返し1回目におけるインタリーブ系列の順方向処理を行うため、上記の式(4)を用いて、メモリ番号B(t)とアドレスA(t)を算出し、そのメモリ番号B(t)とアドレスA(t)をメモリインタフェース5に出力する。
メモリインタフェース5は、制御部6からメモリ番号B(t)とアドレスA(t)を受けると、そのメモリ番号B(t)とアドレスA(t)にしたがって、#1〜#Pの情報メモリ1から受信信号をそれぞれ読み出して、各受信信号を#1〜#Pの要素復号器7に与えるとともに、パリティ2メモリ3から受信信号をそれぞれ読み出して、各受信信号を#1〜#Pの要素復号器7に与える。
また、#1〜#Pの外部情報メモリ4から外部情報をそれぞれ読み出して、各外部情報を#1〜#Pの要素復号器7に与える。
#1〜#Pの要素復号器7は、メモリインタフェース5から受信信号と外部情報を受けると、その外部情報を用いて、その受信信号に対する順方向処理を実施して、復号結果を算出するとともに、インタリーブ順方向のパスメトリック値を算出し、そのパスメトリック値を端パスメトリック値F2として内部のメモリに格納する。
次に、制御部6は、繰り返し1回目におけるインタリーブ系列の逆方向処理を行うため、上記の式(5)を用いて、メモリ番号B(t)とアドレスA(t)を算出し、そのメモリ番号B(t)とアドレスA(t)をメモリインタフェース5に出力する。
メモリインタフェース5は、制御部6からメモリ番号B(t)とアドレスA(t)を受けると、そのメモリ番号B(t)とアドレスA(t)にしたがって、#1〜#Pの情報メモリ1から受信信号をそれぞれ読み出して、各受信信号を#1〜#Pの要素復号器7に与えるとともに、パリティ2メモリ3から受信信号をそれぞれ読み出して、各受信信号を#1〜#Pの要素復号器7に与える。
また、#1〜#Pの外部情報メモリ4から外部情報をそれぞれ読み出して、各外部情報を#1〜#Pの要素復号器7に与える。
#1〜#Pの要素復号器7は、メモリインタフェース5から受信信号と外部情報を受けると、その外部情報を用いて、その受信信号に対する逆方向処理を実施して、復号結果を算出するとともに、インタリーブ逆方向のパスメトリック値を算出し、そのパスメトリック値を端パスメトリック値B2として内部のメモリに格納する。
また、#1〜#Pの要素復号器7は、インタリーブ逆方向のパスメトリック値を用いて外部情報を算出し、その外部情報を#1〜#Pの外部情報メモリ4に格納する(外部情報メモリ4に格納されている外部情報の上に、新たに算出した外部情報を上書きする)。
繰り返し2回目では、制御部6は、非インタリーブ系列の順方向処理を行うため、#1〜#Pの要素復号器7に与える順方向の非インタリーブ系列の位置を示すアドレスとメモリ番号をメモリインタフェース5に出力する。
メモリインタフェース5は、制御部6からアドレスとメモリ番号を受けると、そのアドレスとメモリ番号にしたがって、#1〜#Pの情報メモリ1から受信信号をそれぞれ読み出して、各受信信号を#1〜#Pの要素復号器7に与えるとともに、パリティ1メモリ2から受信信号をそれぞれ読み出して、各受信信号を#1〜#Pの要素復号器7に与える。
また、#1〜#Pの外部情報メモリ4から外部情報をそれぞれ読み出して、各外部情報を#1〜#Pの要素復号器7に与える。
#1〜#Pの要素復号器7は、メモリインタフェース5から受信信号と外部情報を受けると、内部のメモリに格納されている端パスメトリック値F1(繰り返し1回目における非インタリーブ系列の順方向処理で算出された端パスメトリック値F1)を読み出して、その端パスメトリック値F1を順方向処理の初期値として設定する。
そして、その外部情報を用いて、その受信信号に対する順方向処理を実施して、復号結果を算出するとともに、インタリーブ順方向のパスメトリック値を算出する。
#1〜#Pの要素復号器7は、そのパスメトリック値を端パスメトリック値F1として、内部のメモリに格納されている端パスメトリック値F1を更新する(内部のメモリに格納されている端パスメトリック値F1の上に、新たに算出したパスメトリック値を上書きする)。
次に、制御部6は、繰り返し2回目における非インタリーブ系列の逆方向処理を行うため、#1〜#Pの要素復号器7に与える逆方向の非インタリーブ系列の位置を示すアドレスとメモリ番号をメモリインタフェース5に出力する。
メモリインタフェース5は、制御部6からアドレスとメモリ番号を受けると、そのアドレスとメモリ番号にしたがって、#1〜#Pの情報メモリ1から受信信号をそれぞれ読み出して、各受信信号を#1〜#Pの要素復号器7に与えるとともに、パリティ1メモリ2から受信信号をそれぞれ読み出して、各受信信号を#1〜#Pの要素復号器7に与える。
また、#1〜#Pの外部情報メモリ4から外部情報をそれぞれ読み出して、各外部情報を#1〜#Pの要素復号器7に与える。
#1〜#Pの要素復号器7は、メモリインタフェース5から受信信号と外部情報を受けると、内部のメモリに格納されている端パスメトリック値B1(繰り返し1回目における非インタリーブ系列の逆方向処理で算出された端パスメトリック値B1)を読み出し、その端パスメトリック値B1を逆方向処理の初期値として設定する。
そして、その外部情報を用いて、その受信信号に対する逆方向処理を実施して、復号結果を算出するとともに、非インタリーブ逆方向のパスメトリック値を算出する。
#1〜#Pの要素復号器7は、そのパスメトリック値を端パスメトリック値B1として、内部のメモリに格納されている端パスメトリック値B1を更新する。
また、非インタリーブ逆方向のパスメトリック値を用いて外部情報を算出し、その外部情報を#1〜#Pの外部情報メモリ4に格納する。
次に、制御部6は、繰り返し2回目におけるインタリーブ系列の順方向処理を行うため、上記の式(4)を用いて、メモリ番号B(t)とアドレスA(t)を算出し、そのメモリ番号B(t)とアドレスA(t)をメモリインタフェース5に出力する。
メモリインタフェース5は、制御部6からメモリ番号B(t)とアドレスA(t)を受けると、そのメモリ番号B(t)とアドレスA(t)にしたがって、#1〜#Pの情報メモリ1から受信信号をそれぞれ読み出して、各受信信号を#1〜#Pの要素復号器7に与えるとともに、パリティ2メモリ3から受信信号をそれぞれ読み出して、各受信信号を#1〜#Pの要素復号器7に与える。
また、#1〜#Pの外部情報メモリ4から外部情報をそれぞれ読み出して、各外部情報を#1〜#Pの要素復号器7に与える。
#1〜#Pの要素復号器7は、メモリインタフェース5から受信信号と外部情報を受けると、内部のメモリに格納されている端パスメトリック値F2(繰り返し1回目におけるインタリーブ系列の順方向処理で算出された端パスメトリック値F2)を読み出し、その端パスメトリック値F2を順方向処理の初期値として設定する。
そして、その外部情報を用いて、その受信信号に対する順方向処理を実施して、復号結果を算出するとともに、インタリーブ順方向のパスメトリック値を算出する。
#1〜#Pの要素復号器7は、そのパスメトリック値を端パスメトリック値F2として、内部のメモリに格納されている端パスメトリック値F2を更新する。
次に、制御部6は、繰り返し2回目におけるインタリーブ系列の逆方向処理を行うため、上記の式(5)を用いて、メモリ番号B(t)とアドレスA(t)を算出し、そのメモリ番号B(t)とアドレスA(t)をメモリインタフェース5に出力する。
メモリインタフェース5は、制御部6からメモリ番号B(t)とアドレスA(t)を受けると、そのメモリ番号B(t)とアドレスA(t)にしたがって、#1〜#Pの情報メモリ1から受信信号をそれぞれ読み出して、各受信信号を#1〜#Pの要素復号器7に与えるとともに、パリティ2メモリ3から受信信号をそれぞれ読み出して、各受信信号を#1〜#Pの要素復号器7に与える。
また、#1〜#Pの外部情報メモリ4から外部情報をそれぞれ読み出して、各外部情報を#1〜#Pの要素復号器7に与える。
#1〜#Pの要素復号器7は、メモリインタフェース5から受信信号と外部情報を受けると、内部のメモリに格納されている端パスメトリック値B2(繰り返し1回目におけるインタリーブ系列の逆方向処理で算出された端パスメトリック値B2)を読み出し、その端パスメトリック値B2を逆方向処理の初期値として設定する。
そして、その外部情報を用いて、その受信信号に対する逆方向処理を実施して、復号結果を算出するとともに、インタリーブ逆方向のパスメトリック値を算出する。
#1〜#Pの要素復号器7は、そのパスメトリック値を端パスメトリック値B2として、内部のメモリに格納されている端パスメトリック値B2を更新する。
また、インタリーブ逆方向のパスメトリック値を用いて外部情報を算出し、その外部情報を#1〜#Pの外部情報メモリ4に格納する。
以降、繰り返し2回目と同様にして、非インタリーブの順方向処理及び逆方向処理と、インタリーブの順方向処理及び逆方向処理とを所定回数だけ繰り返し実施する。
#1〜#Pの要素復号器7は、所定回数だけ繰り返し実施すると、最後に算出した復号結果を出力する。
以上で明らかなように、この実施の形態1によれば、メモリインタフェース5がターボ符号のインタリーブ系列を生成する際、制御部6が加減算処理と比較計算処理を実施するだけで順方向処理と逆方向処理のインタリーブ位置を求めるように構成したので、インタリーブ系列を格納するメモリを実装することなく、ターボ符号の復号処理を並列化することができるようになり、実装するメモリ量を削減することができる効果を奏する。
即ち、インタリーブ系列に依存するメモリアクセスを簡易な計算で逐次的に得ることができるため、インタリーブ系列を保持するためのメモリが不要になり、メモリ量や回路規模を小さく抑えることができる効果を奏する。
なお、この実施の形態1では、要素復号器7が順方向処理と逆方向処理を順番に実施するものについて示したが、要素復号器7が順方向処理と逆方向処理を同時に実施するようにしてもよい。
ただし、要素復号器7が順方向処理と逆方向処理を同時に実施する場合、並列化単位の長さWが奇数であれば、順方向処理又は逆方向処理のいずれか一方の開始を1ステップ先行又は1ステップ遅延させるようにする。
即ち、要素復号器7が順方向処理と逆方向処理を同時に実施する場合、順方向処理は単位の先頭からパスメトリック値を保存しながら処理を進め、逆方向処理は単位の末尾からパスメトリック値を保存しながら処理を進める。
両方向から進んだトレリスが交差した先は、互いのパスメトリック値を読み出すことができるので、外部情報を算出することができる。
ただし、並列化単位の長さWが奇数であれば、順方向処理又は逆方向処理のいずれか一方の開始を1ステップ先行又は1ステップ遅延させるようにする。
その理由は、並列化単位の長さWが奇数である場合、トレリスが交差する位置が同じになるため、いずれのパスメトリック値も保存されていない位置が生じてしまって、外部情報を算出することができないからである。
いずれかの開始を1ステップ先行、もしくは、1ステップ遅延させることで、どのような場合にも処理のタイミングに矛盾なく外部情報を算出することができる。
実施の形態2.
上記実施の形態1では、情報メモリ1、パリティ1メモリ2、パリティ2メモリ3及び外部情報メモリ4をP個ずつ実装しているものを示したが、図3に示すように、情報メモリ1、パリティ1メモリ2、パリティ2メモリ3及び外部情報メモリ4を1個ずつ実装するようにしてもよい。
この場合、復号処理を並列化する際のデータの読み書きは、アクセスするアドレスと読み出したデータの並べ替えを制御することで可能となる。
例えば、並列数をPとすると、アドレス数はK/P、1ワードは受信信号のビット数nのP倍であるn×Pビットとなり、読み出したn×Pビットをnビットずつ区切って並べ替えるようにする。
制御部6は、メモリインタフェース5が情報メモリ1、パリティ1メモリ2及びパリティ2メモリ3から読み出す受信信号を制御するとともに、メモリインタフェース5が外部情報メモリ4から読み出す外部情報と、外部情報メモリ4に書き込む外部情報とを制御する。ただし、メモリインタフェース5が外部情報を書き込む際には、その外部情報の書き込み先が、読み出す外部情報と同じアドレスになるように制御する。
また、制御部6は、メモリインタフェース5が読み出した受信信号であるデータの並べ替えパターンを制御する。
以下、制御部6におけるデータの並べ替えパターンの制御について説明する。
ここでは、メモリインタフェース5がアクセスするアドレスをA(t)、データの並べ替え順を示すパラメータをB(t)として、補助パラメータβ(t),α(t)を用意する。
ただし、以下のパラメータβ(0),α(0),γ,δは、計算量が大きいので,予めメモリに格納しておくものとする。
β(0)=ceil((f1+f2)mod K)/W)
α(0)=(f1+f2) mod W
γ=ceil(2×f2/W)
δ=(2×f2 mod W)
なお、パラメータβ(0),α(0),γ,δを計算して、その計算値を保持しておく分には、大きなメモリ量を必要としない。
情報長Kを並列数Pで等分割して、#1〜#Pの要素復号器7が並列処理を実施する場合、#1〜#Pの要素復号器7における並列処理の始点は、それぞれQPPインタリーバの先頭0,W,2W,・・・,(P−1)×Wとなる。
したがって、制御部6は、逐次計算式における並列処理の初期値となるパラメータとして、B(0),B(W),B(2W),・・・,B((P−1)×W),β(0),β(W),β(2W),・・・,β((P−1)×W),α(0),γ,δを保持している。
B(t)とA(t)は、順方向のインタリーブ時の逐次的な操作では、上記の式(4)を用いて求めることができ、逆方向のインタリーブ時の逐次的な操作では、上記の式(5)を用いて求めることができる。上記実施の形態1では、上記の式(4)、式(5)におけるB(t)がメモリ番号を表しているが、この実施の形態2では、式(4)、式(5)におけるB(t)がデータの並べ替え順を表しているものとする。
非インタリーブ時のアドレスについては、上記実施の形態1と同様に、初期位置又は最終位置から1ずつアドレスを変化させればよい。
情報メモリ1、パリティ1メモリ2、パリティ2メモリ3及び外部情報メモリ4は、1ワードがn×Pビットで構成されており、図4は読み出したn×PビットをP個の要素復号器7に受け渡すために並べ替える手順を示している。
情報メモリ1、パリティ1メモリ2、パリティ2メモリ3及び外部情報メモリ4を1個ずつ実装する場合において、データ番号iに対してPでの剰余(i mod P)が等しい値を同じアドレスに格納して並列処理するとすれば、インタリーブ時においても、同じ組み合わせを同時に処理することになる。
ただし、データを受け渡す要素復号器7については変わるので、データの並べ替えが必要となる。図4では、上記の式(4)、式(5)から得られるB(t)を用いて、データの並べ替えを実施している。
以下、図2を参照しながら、制御部6がメモリインタフェース5を制御することにより、インタリーブ系列と非インタリーブ系列を順番に生成させて、要素復号器7がターボ符号を復号する処理を説明する。
なお、図2では、非インタリーブ、インタリーブ、非インタリーブ、インタリーブ、・・・、非インタリーブ、インタリーブの順番で繰り返し復号を行う例を示しているが、非インタリーブとインタリーブは逆の順序でもよい。また、順方向、逆方向、順方向、逆方向の順番で処理しているが、順方向と逆方向は逆の順序でもよい。
まず、制御部6は、要素復号器7のメモリに格納されているパスメトリック値を初期化する。
次に、制御部6は、インタリーブ系列π(t)の生成に係るパラメータとして、情報長固有のパラメータ(α(0)、γ、δ)と、並列処理を行う際の先頭位置を示すパラメータ(B(0),B(W),B(2W),・・・,B((P−1)×W),β(0),β(W),β(2W),・・・,β((P−1)×W)とを設定する。
なお、図2では並列処理を明確にするため、並列数をPとして、順方向処理と逆方向処理を#1〜#Pで表している。
また、制御部6は、順方向処理と逆方向処理の繰り返し回数とメモリアクセスの初期設定を行うとともに、要素復号器7におけるパスメトリック計算の初期化を行う。
繰り返し1回目では、制御部6は、非インタリーブ系列の順方向処理を行うため、上記の式(4)を用いて、並べ替え順パラメータB(t)を算出し、その並べ替え順パラメータB(t)と、順方向の非インタリーブ系列の位置を示すアドレスとをメモリインタフェース5に出力する。
メモリインタフェース5は、制御部6からアドレスと並べ替え順パラメータB(t)を受けると、そのアドレスにしたがって情報メモリ1から受信信号を読み出し、その並べ替え順パラメータB(t)にしたがって、その受信信号の並び替えを実施し、並び替え後の受信信号を#1〜#Pの要素復号器7に出力する。また、パリティ1メモリ2から受信信号を読み出して、その受信信号を#1〜#Pの要素復号器7に与える。
#1〜#Pの要素復号器7は、メモリインタフェース5から受信信号を受けると、その受信信号に対する順方向処理を実施して、復号結果を算出するとともに、非インタリーブ順方向のパスメトリック値を算出し、そのパスメトリック値を端パスメトリック値F1として内部のメモリに格納する。
なお、#1〜#Pの要素復号器7における順方向処理では、Wステップを要する。
次に、制御部6は、繰り返し1回目における非インタリーブ系列の逆方向処理を行うため、上記の式(5)を用いて、並べ替え順パラメータB(t)を算出し、その並べ替え順パラメータB(t)と、逆方向の非インタリーブ系列の位置を示すアドレスとをメモリインタフェース5に出力する。
メモリインタフェース5は、制御部6からアドレスと並べ替え順パラメータB(t)を受けると、そのアドレスにしたがって情報メモリ1から受信信号を読み出し、その並べ替え順パラメータB(t)にしたがって、その受信信号の並び替えを実施し、並び替え後の受信信号を#1〜#Pの要素復号器7に出力する。また、パリティ1メモリ2から受信信号を読み出して、その受信信号を#1〜#Pの要素復号器7に与える。
#1〜#Pの要素復号器7は、メモリインタフェース5から受信信号を受けると、その受信信号に対する逆方向処理を実施して、復号結果を算出するとともに、非インタリーブ逆方向のパスメトリック値を算出し、そのパスメトリック値を端パスメトリック値B1として内部のメモリに格納する。
また、#1〜#Pの要素復号器7は、非インタリーブ逆方向のパスメトリック値を用いて外部情報を算出し、その外部情報を外部情報メモリ4に格納する。
なお、#1〜#Pの要素復号器7における逆方向処理では、Wステップを要する。
次に、制御部6は、繰り返し1回目におけるインタリーブ系列の順方向処理を行うため、上記の式(4)を用いて、アドレスA(t)と並べ替え順パラメータB(t)を算出し、そのアドレスA(t)と並べ替え順パラメータB(t)をメモリインタフェース5に出力する。
メモリインタフェース5は、制御部6からアドレスA(t)と並べ替え順パラメータB(t)を受けると、そのアドレスA(t)にしたがって情報メモリ1から受信信号を読み出し、その並べ替え順パラメータB(t)にしたがって、その受信信号の並び替えを実施し、並び替え後の受信信号を#1〜#Pの要素復号器7に出力する。
また、パリティ2メモリ3から受信信号を読み出して、その受信信号を#1〜#Pの要素復号器7に与え、外部情報メモリ4から外部情報を読み出して、その外部情報を#1〜#Pの要素復号器7に与える。
#1〜#Pの要素復号器7は、メモリインタフェース5から受信信号と外部情報を受けると、その外部情報を用いて、その受信信号に対する順方向処理を実施して、復号結果を算出するとともに、インタリーブ順方向のパスメトリック値を算出し、そのパスメトリック値を端パスメトリック値F2として内部のメモリに格納する。
次に、制御部6は、繰り返し1回目におけるインタリーブ系列の逆方向処理を行うため、上記の式(5)を用いて、アドレスA(t)と並べ替え順パラメータB(t)を算出し、そのアドレスA(t)と並べ替え順パラメータB(t)をメモリインタフェース5に出力する。
メモリインタフェース5は、制御部6からアドレスA(t)と並べ替え順パラメータB(t)を受けると、そのアドレスA(t)にしたがって情報メモリ1から受信信号を読み出し、その並べ替え順パラメータB(t)にしたがって、その受信信号の並び替えを実施し、並び替え後の受信信号を#1〜#Pの要素復号器7に出力する。
また、パリティ2メモリ3から受信信号を読み出して、その受信信号を#1〜#Pの要素復号器7に与え、外部情報メモリ4から外部情報を読み出して、その外部情報を#1〜#Pの要素復号器7に与える。
#1〜#Pの要素復号器7は、メモリインタフェース5から受信信号と外部情報を受けると、その外部情報を用いて、その受信信号に対する逆方向処理を実施して、復号結果を算出するとともに、インタリーブ逆方向のパスメトリック値を算出し、そのパスメトリック値を端パスメトリック値B2として内部のメモリに格納する。
また、#1〜#Pの要素復号器7は、インタリーブ逆方向のパスメトリック値を用いて外部情報を算出し、その外部情報を外部情報メモリ4に格納する(外部情報メモリ4に格納されている外部情報の上に、新たに算出した外部情報を上書きする)。
繰り返し2回目では、制御部6は、非インタリーブ系列の順方向処理を行うため、上記の式(4)を用いて、並べ替え順パラメータB(t)を算出し、その並べ替え順パラメータB(t)と、順方向の非インタリーブ系列の位置を示すアドレスとをメモリインタフェース5に出力する。
メモリインタフェース5は、制御部6からアドレスと並べ替え順パラメータB(t)を受けると、そのアドレスにしたがって情報メモリ1から受信信号を読み出し、その並べ替え順パラメータB(t)にしたがって、その受信信号の並び替えを実施し、並び替え後の受信信号を#1〜#Pの要素復号器7に出力する。
また、パリティ1メモリ2から受信信号を読み出して、その受信信号を#1〜#Pの要素復号器7に与え、外部情報メモリ4から外部情報を読み出して、その外部情報を#1〜#Pの要素復号器7に与える。
#1〜#Pの要素復号器7は、メモリインタフェース5から受信信号と外部情報を受けると、内部のメモリに格納されている端パスメトリック値F1(繰り返し1回目における非インタリーブ系列の順方向処理で算出された端パスメトリック値F1)を読み出して、その端パスメトリック値F1を順方向処理の初期値として設定する。
そして、その外部情報を用いて、その受信信号に対する順方向処理を実施して、復号結果を算出するとともに、インタリーブ順方向のパスメトリック値を算出する。
#1〜#Pの要素復号器7は、そのパスメトリック値を端パスメトリック値F1として、内部のメモリに格納されている端パスメトリック値F1を更新する(内部のメモリに格納されている端パスメトリック値F1の上に、新たに算出したパスメトリック値を上書きする)。
次に、制御部6は、繰り返し2回目における非インタリーブ系列の逆方向処理を行うため、上記の式(5)を用いて、並べ替え順パラメータB(t)を算出し、その並べ替え順パラメータB(t)と、逆方向の非インタリーブ系列の位置を示すアドレスとをメモリインタフェース5に出力する。
メモリインタフェース5は、制御部6からアドレスと並べ替え順パラメータB(t)を受けると、そのアドレスにしたがって情報メモリ1から受信信号を読み出し、その並べ替え順パラメータB(t)にしたがって、その受信信号の並び替えを実施し、並び替え後の受信信号を#1〜#Pの要素復号器7に出力する。
また、パリティ1メモリ2から受信信号を読み出して、その受信信号を#1〜#Pの要素復号器7に与え、外部情報メモリ4から外部情報を読み出して、その外部情報を#1〜#Pの要素復号器7に与える。
#1〜#Pの要素復号器7は、メモリインタフェース5から受信信号と外部情報を受けると、内部のメモリに格納されている端パスメトリック値B1(繰り返し1回目における非インタリーブ系列の逆方向処理で算出された端パスメトリック値B1)を読み出し、その端パスメトリック値B1を逆方向処理の初期値として設定する。
そして、その外部情報を用いて、その受信信号に対する逆方向処理を実施して、復号結果を算出するとともに、非インタリーブ逆方向のパスメトリック値を算出する。
#1〜#Pの要素復号器7は、そのパスメトリック値を端パスメトリック値B1として、内部のメモリに格納されている端パスメトリック値B1を更新する。
また、非インタリーブ逆方向のパスメトリック値を用いて外部情報を算出し、その外部情報を外部情報メモリ4に格納する。
次に、制御部6は、繰り返し2回目におけるインタリーブ系列の順方向処理を行うため、上記の式(4)を用いて、アドレスA(t)と並べ替え順パラメータB(t)を算出し、そのアドレスA(t)と並べ替え順パラメータB(t)をメモリインタフェース5に出力する。
メモリインタフェース5は、制御部6からアドレスA(t)と並べ替え順パラメータB(t)を受けると、そのアドレスA(t)にしたがって情報メモリ1から受信信号を読み出し、その並べ替え順パラメータB(t)にしたがって、その受信信号の並び替えを実施し、並び替え後の受信信号を#1〜#Pの要素復号器7に出力する。
また、パリティ2メモリ3から受信信号を読み出して、その受信信号を#1〜#Pの要素復号器7に与え、外部情報メモリ4から外部情報を読み出して、その外部情報を#1〜#Pの要素復号器7に与える。
#1〜#Pの要素復号器7は、メモリインタフェース5から受信信号と外部情報を受けると、内部のメモリに格納されている端パスメトリック値F2(繰り返し1回目におけるインタリーブ系列の順方向処理で算出された端パスメトリック値F2)を読み出し、その端パスメトリック値F2を順方向処理の初期値として設定する。
そして、その外部情報を用いて、その受信信号に対する順方向処理を実施して、復号結果を算出するとともに、インタリーブ順方向のパスメトリック値を算出する。
#1〜#Pの要素復号器7は、そのパスメトリック値を端パスメトリック値F2として、内部のメモリに格納されている端パスメトリック値F2を更新する。
次に、制御部6は、繰り返し2回目におけるインタリーブ系列の逆方向処理を行うため、上記の式(5)を用いて、アドレスA(t)と並べ替え順パラメータB(t)を算出し、そのアドレスA(t)と並べ替え順パラメータB(t)をメモリインタフェース5に出力する。
メモリインタフェース5は、制御部6からアドレスA(t)と並べ替え順パラメータB(t)を受けると、そのアドレスA(t)にしたがって情報メモリ1から受信信号を読み出し、その並べ替え順パラメータB(t)にしたがって、その受信信号の並び替えを実施し、並び替え後の受信信号を#1〜#Pの要素復号器7に出力する。
また、パリティ2メモリ3から受信信号を読み出して、その受信信号を#1〜#Pの要素復号器7に与え、外部情報メモリ4から外部情報を読み出して、その外部情報を#1〜#Pの要素復号器7に与える。
#1〜#Pの要素復号器7は、メモリインタフェース5から受信信号と外部情報を受けると、内部のメモリに格納されている端パスメトリック値B2(繰り返し1回目におけるインタリーブ系列の逆方向処理で算出された端パスメトリック値B2)を読み出し、その端パスメトリック値B2を逆方向処理の初期値として設定する。
そして、その外部情報を用いて、その受信信号に対する逆方向処理を実施して、復号結果を算出するとともに、インタリーブ逆方向のパスメトリック値を算出する。
#1〜#Pの要素復号器7は、そのパスメトリック値を端パスメトリック値B2として、内部のメモリに格納されている端パスメトリック値B2を更新する。
また、インタリーブ逆方向のパスメトリック値を用いて外部情報を算出し、その外部情報を#1〜#Pの外部情報メモリ4に格納する。
以降、繰り返し2回目と同様にして、非インタリーブの順方向処理及び逆方向処理と、インタリーブの順方向処理及び逆方向処理とを所定回数だけ繰り返し実施する。
#1〜#Pの要素復号器7は、所定回数だけ繰り返し実施すると、最後に算出した復号結果を出力する。
以上で明らかなように、この実施の形態2によれば、インタリーブ系列に依存するメモリアクセスを簡易な計算で逐次的に得ることができるため、インタリーブ系列を保持するためのメモリが不要になり、メモリ量や回路規模を小さく抑えることができる効果を奏する。
なお、この実施の形態2では、要素復号器7が順方向処理と逆方向処理を順番に実施するものについて示したが、要素復号器7が順方向処理と逆方向処理を同時に実施するようにしてもよい。
ただし、要素復号器7が順方向処理と逆方向処理を同時に実施する場合、並列化単位の長さWが奇数であれば、順方向処理又は逆方向処理のいずれか一方の開始を1ステップ先行又は1ステップ遅延させるようにする。
即ち、要素復号器7が順方向処理と逆方向処理を同時に実施する場合、順方向処理は単位の先頭からパスメトリック値を保存しながら処理を進め、逆方向処理は単位の末尾からパスメトリック値を保存しながら処理を進める。
両方向から進んだトレリスが交差した先は、互いのパスメトリック値を読み出すことができるので、外部情報を算出することができる。
ただし、並列化単位の長さWが奇数であれば、順方向処理又は逆方向処理のいずれか一方の開始を1ステップ先行又は1ステップ遅延させるようにする。
その理由は、並列化単位の長さWが奇数である場合、トレリスが交差する位置が同じになるため、いずれのパスメトリック値も保存されていない位置が生じてしまって、外部情報を算出することができないからである。
いずれかの開始を1ステップ先行、もしくは、1ステップ遅延させることで、どのような場合にも処理のタイミングに矛盾なく外部情報を算出することができる。
実施の形態3.
図5はこの発明の実施の形態3によるターボ符号復号装置を示す構成図であり、図において、並列化ターボ復号器10は図1又は図3に相当するターボ符号復号装置である。
復号方式制御部11はターボ符号の情報長Kに応じて、要素復号器7の並列数Pを決定し、その並列数分の要素復号器7を制御するとともに、ターボ符号の情報長Kに応じて、要素復号器7における順方向処理と逆方向処理の繰り返し回数Iとマージン幅Mを制御する。なお、復号方式制御部11は制御手段を構成している。
図7はこの発明の実施の形態3によるターボ符号復号装置の処理内容を示すフローチャートである。
次に動作について説明する。
ターボ符号の復号処理の高速化を図る場合、動作クロックを上げる方法や、要素復号器7の並列数Pを多くするなどの方法が考えられる。
しかし、動作クロックを上げる方法を用いる場合、例えば、消費電力やデバイスのコストなどが大きくなる。
そこで、この実施の形態3では、要素復号器7の並列数Pを多くする方法を採用し、システムが要求する処理速度に適する復号方式を情報長Kに応じて選択することで、実装上有効な範囲の動作クロックに設定するようにする。
例えば、ターボ符号の復号方式として、スライディング・ウィンドウ方式を採用する場合、情報長Kが短いと、マージン幅Mが情報長Kに近い幅となり、スループット(bits/sec:単位時間内に復号するビット数)が著しく低下する。
ターボ符号の復号処理では、順方向処理と逆方向処理でそれぞれWステップが必要であり、非インタリーブとインタリーブの復号繰り返し回数Iを考慮すると、(W+W)×2×Iステップが必要である。ただし、ここでは説明の簡単化のためテイル・ビットの処理を考慮していない。
順方向処理と逆方向処理におけるマージン幅Mを考慮すると、必要なステップ数は、(W+M+W+M)×2×Iステップとなり、Wが小さい場合にはマージン幅Mの与える影響が大きい。
図6は情報長Kと復号繰り返し回数Iの違いによる復号性能の比較シミュレーションの結果を示すグラフ図である。
図6において、横軸は情報長K、縦軸はブロック誤り率BLER(Block Error Rate)が1%に達するEb/N0[dB]を示している。
ターボ符号は、「3GPP TS36212」の規格で規定されているターボ符号を用いており、符号長は3K+12である。
シミュレーション条件として、加法的白色ガウス通信路、BPSK変調を仮定しており、ターボ符号の復号には「Max Log MAP復号法」を用いている。
繰り返し回数Iが多いほど復号性能が高く、情報長Kが大きくなるほど性能差が大きくなる。繰り返しを行うターボ符号の復号は、正しい結果に収束するまでに要する繰り返し回数が情報長Kに依存する。情報長Kが短い場合、情報長Kが長い場合と比べて少ない繰り返し回数で収束する。
上記の通り、ターボ符号の復号は、情報長Kに依存して特徴が大きく変化する。
この実施の形態3では、通信システムで要求される処理速度を満たして、高い復号性能が得られるように、情報長Kに応じて要素復号器7の並列数P、マージン幅M、復号繰り返し回数Iを制御する。
例えば、図6のグラフにおいて、ターボ符号を用いた通信性能として、繰り返し回数8回に対して0.5dB程度の劣化まで許容できるとすれば、情報長Kが100ビット未満では繰り返し回数を2回、情報長Kが1000ビット未満では繰り返し回数を3回、情報長Kが1000ビット以上では繰り返し回数を4回とすることで、繰り返し回数Iを必要回数に抑えることができる。
以下、図7を参照して、ターボ符号復号装置の処理内容を説明する。
この実施の形態3では、予め、通信システムが要求する処理速度を満たすよう設定されている要素復号器7の並列数Pとマージン幅Mがテーブル化されており、そのテーブルが復号方式制御部11に保持されている。
復号方式制御部11は、情報長Kを入力すると(ステップST1)、保持しているテーブルから要素復号器7の並列数Pとマージン幅Mを読み出して、その並列数Pとマージン幅Mを設定する(ステップST2,ST3)。ただし、並列数Pとマージン幅Mは、実装されている回路の持つ最大値以下の値に設定される。
次に、復号方式制御部11は、復号繰り返し回数Iを設定する。復号繰り返し回数Iはステップ数と動作クロックからシステム要求を満たす最大値に設定される。
なお、復号繰り返し回数Iは、システムが要求する復号性能を満たすまで繰り返し回数を減らして、処理速度を向上させるようにしてもよい。
復号方式制御部11は、復号方式制御部11による設定内容でターボ復号を実施し(ステップST5,ST6)、その復号結果を出力する(ステップST7)。
以上で明らかなように、この実施の形態3によれば、ターボ符号の情報長Kに応じて、要素復号器7の並列数P、順方向処理と逆方向処理の繰り返し回数I及びマージン幅Mを制御するように構成したので、通信システムの持つ全ての情報長Kに対して、通信システムが要求する処理速度を満たすことが可能になる。
復号回路の動作時間は復号繰り返し回数Iに比例するため、通信システムが要求する復号性能に応じて繰り返し回数Iを制御することで消費電力の低減効果を高めることができる。また、実装上で有効な範囲の動作クロックでシステム要求を満たすため、開発コストを抑えることができる。
実施の形態4.
図8はこの発明の実施の形態4による通信システムを示す構成図であり、通信システムは送信装置20と受信装置30から構成されている。
図において、送信装置20は内部インタリーバにQPPを用いているターボ符号化器21を実装しており、ターボ符号化器21を使用して、情報源をターボ符号化してターボ符号を生成し、そのターボ符号を変調して変調波を送信する。
受信装置30は図1、図3又は図5のターボ符号復号装置31を実装しており、送信装置20から送信された変調波を受信し、その変調波からターボ符号を復調すると、そのターボ符号復号装置31を使用して、そのターボ符号を復号する。
なお、送信装置20と受信装置30の通信路は、無線でも有線でもよく、ターボ符号を利用するディジタル通信システムの全てに適用することができる。
図9はこの発明の実施の形態4による通信システムの処理内容を示すフローチャートである。
次に動作について説明する。
送信装置20は、例えば、データ通信対象のパケットデータである情報源を入力すると(ステップST11)、実装しているターボ符号化器21を使用して、その情報源をターボ符号化して、ターボ符号(ターボ符号化系列)を生成する(ステップST12)。
送信装置20は、ターボ符号を生成すると、そのターボ符号を変調して変調波を送信する(ステップST13)。
通信路では、伝播環境に応じて変調波に雑音が付加される。
受信装置30は、送信装置20から送信された変調波を受信し(ステップST14)、その変調波に対する同期検波処理や復調処理を実施することにより、ターボ符号を復調する。
受信装置30は、ターボ符号を復調すると、図1、図3又は図5のターボ符号復号装置を使用して、そのターボ符号を復号し(ステップST15)、その復号結果を例えば再生装置に出力する。
これにより、再生装置により復号結果の再生処理が実施されて(ステップST16)、情報源の再生が行われる。
この実施の形態4によれば、受信装置30が図1、図3又は図5のターボ符号復号装置31を実装しているので、通信システムが情報長Kに対して安定した通信速度を保つことができ、受信装置30の消費電力や回路規模を抑えることができる効果を奏する。
実施の形態5.
図10はこの発明の実施の形態5による通信システムを示す構成図であり、通信システムは図8の送信装置20に相当する移動体端末40と、図8の受信装置30に相当する基地局50とから構成されている。
図において、移動体端末40は「3GPP TS36.212」の規格で規定されたターボ符号化器41を実装しており、そのターボ符号化器41を使用して、情報源をターボ符号化してターボ符号を生成し、そのターボ符号を変調して変調波を送信する。
なお、移動体端末40では、基地局50に送信するデータのうち、ターボ符号を利用するチャネル(例えば、Uplink Shared Channel)に割り当てられたデータ系列をターボ符号化し、そのターボ符号を生成して送信する。
基地局50は図1、図3又は図5のターボ符号復号装置51を実装しており、移動体端末40から送信された変調波を受信し、その変調波からターボ符号を復調すると、そのターボ符号復号装置51を使用して、そのターボ符号を復号する。
この実施の形態5の場合も、基地局50が図1、図3又は図5のターボ符号復号装置51を実装しているので、上記実施の形態4と同様に、通信システムが情報長Kに対して安定した通信速度を保つことができ、基地局50の消費電力や回路規模を抑えることができる効果を奏する。
なお、上記実施の形態1〜5では、無線通信を実施する際に、ターボ符号復号装置がターボ符号を復号するものについて示したが、これに限るものではなく、一般的なディジタル情報処理を実施する際に、ターボ符号復号装置がターボ符号を復号するようにしてもよい。
実施の形態6.
上記実施の形態1〜5では、復号処理を並列化する際、メモリインタフェース5がアクセスする情報メモリ1のメモリ番号B(t)とアドレスA(t)とを制御部6が逐次的に計算していた。図11は、上記実施の形態1〜5に係るターボ符号復号装置を示す構成図であり、特に制御部6の内部構成を詳細に示すものである。上記実施の形態1〜5では制御部6として記載しているが(図1及び図3)、この制御部(系列生成手段)6は、アドレスA(t)を計算するためのインタリーブアドレス生成テーブル61及びアドレス生成部62と、メモリ番号B(t)を計算するための情報選択制御部63及びメモリ選択初期テーブル65と、これら各部の動作を制御するための動作制御部64とからなる。
例えば上記実施の形態1の復号処理を実現する場合、インタリーブアドレス生成テーブル61は、インタリーブを決定するための2次多項式(1)における情報長固有の係数f1,f2を保持している。インタリーブアドレス生成テーブル61はまた、アドレスA(t)の逐次計算に必要な、情報長固有のパラメータα(0),δを保持している。インタリーブ時、アドレス生成部62は、インタリーブアドレス生成テーブル61が保持する情報長Kに応じた係数及びパラメータを用いて、式(4)又は式(5)を計算してアドレスA(t)を求める。
メモリ選択初期テーブル65は、メモリ番号B(t)の逐次計算式における並列処理の初期値となるパラメータB(0),B(W),B(2W),・・・,B((P−1)×W),β(0),β(W),β(2W),・・・,β((P−1)×W),γを保持している。情報選択制御部63は、メモリ選択初期テーブル65が保持するパラメータを用いて、式(4)又は式(5)を計算してメモリ番号B(t)を求める。そして、メモリインタフェース5がメモリ番号B(t)とアドレスA(t)にしたがってインタリーブ系列を生成して要素復号器(復号手段)7へ渡す。メモリインタフェース5はまた、要素復号器7から出力される外部情報系列を外部情報メモリ4に出力する処理を実施する。
動作制御部64は、順方向処理と逆方向処理の繰り返し回数とメモリアクセスの初期設定を行うとともに、要素復号器7におけるパスメトリック計算の初期化を行う。ただし、上記実施の形態3においては、動作制御部64は復号方式制御部11に相当する。
この構成の場合、制御部6がメモリ選択初期テーブル65を備え、情報選択制御部63がメモリ選択初期テーブル65のパラメータを用いてメモリ番号B(t)を逐次的に計算している。この構成では、パラメータを格納するためのメモリに相当するメモリ選択初期テーブル65が必要であった。
そこで、この実施の形態6では、制御部6の情報選択制御部(情報選択制御手段)66が、メモリ選択初期テーブル65のパラメータに代えて、インタリーブアドレス生成テーブル61の値を用いてメモリ番号B(t)を求めるようにする。
図12は、この発明の実施の形態6によるターボ符号復号装置を示す構成図であり、図1,3及び11と同一又は相当の部分については同一の符号を付す。ここでは、情報系列の情報長がN、要素復号器7の並列数がMであるとする。
この場合、M個の要素復号器7により並列に処理される並列化単位の長さがW=N/Mとなり、アドレス数もN/Mとなる。
図13は、情報メモリ1のメモリ構成及びインタリーブ時のメモリアクセス方法を模式的に示す説明図である。図13では一例として情報長Nを32、並列数Mを4とした構成を示す。この場合にはターボ符号復号装置に要素復号器7が4個実装され、情報メモリ1、パリティ1メモリ2、パリティ2メモリ3及び外部情報メモリ4もそれぞれ4個ずつ実装される。メモリインタフェース5は、受信情報系列、パリティ1系列、パリティ2系列及び外部情報系列を、情報メモリ1、パリティ1メモリ2、パリティ2メモリ3及び外部情報メモリ4のアドレス0から順にアドレスN/M−1までに格納する。
インタリーブ時には、情報メモリ1と、情報メモリ1に書き込まれたデータが受け渡される要素復号器7とで対応関係が変わるので、データの並べ替えが必要となる。図13では、後述する式(10)から得られるメモリ番号B(t)を用いて、データの並べ替えを実施している。
並列段数Mにおいて、t番目に情報メモリ1に格納されたデータのインタリーブアドレスをπ(t)とすると、下記式(6)を満たすようなインタリーバのとき、要素復号器7で同時に復号処理するデータの組み合わせが非インタリーブ時とインタリーブ時で同一となるため、1つのメモリの1つのアドレスに同時処理する複数のデータを1ワードとして格納しておき、読み書きすることが可能となる。
π(t+k×N/M)=π(t)+k×fx×N/M mod N (6)
ここで、t=0,1,・・・,N/M−1、k=0,1,・・・,M−1である。
このとき、M個の要素復号器7が並列処理する場合にアクセスする情報メモリ1のメモリ番号B(t)とアドレス(t)は、下記のように表される。
B(t)=ceil(π(t)/W) (7)
A(t)=π(t) mod W (8)
ここで、t=0,1,・・・,W−1であり、W=N/Mとし、MはNの約数としている。
したがって、制御部6のアドレス生成部62と情報選択制御部66が式(6)〜(8)を計算すれば、メモリ番号B(t)とアドレスA(t)を求めることができるが、式(6)〜(8)の計算では、乗算とmod(剰余)計算が必要となり、実装するには複雑性が高いものとなる。
そこで、この実施の形態6では、制御部6が上記実施の形態1〜5と同様にアドレスA(t)を簡易な計算で逐次的に算出するとともに、メモリ番号B(t)もアドレス算出のためのパラメータを用いて算出するようにしている。
制御部6は、図12に示すように、インタリーブアドレス生成テーブル61、アドレス生成部62、情報選択制御部66及び動作制御部64から構成されている。これらインタリーブアドレス生成テーブル61、アドレス生成部62及び動作制御部64は、図11に示す各部と同一である。
なお、図11のインタリーブアドレス生成テーブル61は情報長Kに応じた係数f1,f2を保持するものであるが、この実施の形態におけるインタリーブアドレス生成テーブル61は情報長Nに応じた係数fxを保持するものとする。
情報選択制御部66は、インタリーブアドレス生成テーブル61の係数fxを用いて、#1〜#Mのうちのいずれか1つのメモリ番号を基に残りのメモリ番号(ターボ符号格納手段の並び順)を逐次的な操作により求め、メモリインタフェース5へ出力する。
この実施の形態において、インタリーブアドレスは下記式(9)により表現されるため、メモリインタフェース5がアクセスする情報メモリ1のメモリ番号B(t)は、以下に示すように、情報選択制御部66において順方向の逐次的な操作で求めることができる。
π(t+W)=π(t)+fx×W (9)
B(t)=A+(k−1)×fx mod M (10)
ここで、Aは基準に用いる1つのメモリ番号B(t)であり、このメモリ番号B(t)の情報メモリ1に格納されたデータが最初の処理で#1の要素復号器7に渡される。ただし、基準となるメモリ番号Aは任意の値であって、#1〜#Mのうちのいずれであってもよく、従来のように式(7)を計算して求めればよい。
例えば、#1の要素復号器7が#A(A=1,2,・・・,M)の情報メモリ1からデータを受ける場合には、#2の要素復号器7は#(A+fx)(mod M)の情報メモリ1からデータを受けることとなる。以下、同様に、#kの要素復号器7は#(A+(k−1)×fx)(mod M)の情報メモリ1からデータを受ける。
情報選択制御部66は、上記のとおり、順方向処理のインタリーブ系列を求める際には式(10)を計算するが、順方向処理と同様にインタリーブアドレス生成テーブル61のfxを用いて、1つのメモリ番号に基づき、逆方向処理における残りのメモリ番号B(t)も求めることができる。
図14は、実施の形態6によるターボ符号復号装置の処理内容を示すフローチャートである。アドレス生成部62(制御部6)がアドレスA(t)を算出する方法は上記実施の形態1〜5と同様であるので以下では説明を省略している。なお、図14では並列処理を明確にするため、並列数をMとして、順方向処理と逆方向処理を#1〜#Mで表している。
まず、動作制御部64は、順方向処理と逆方向処理の繰り返し回数とメモリアクセスの初期設定を行うとともに、要素復号器7のメモリに格納されているパスメトリック値を初期化する。また、動作制御部64は、インタリーブ系列π(t)の生成に係るパラメータとして、情報長固有のパラメータ(α(0)、δ)をインタリーブアドレス生成テーブル61に設定する。
情報メモリ1からの読み出しは、非インタリーブ時のアクセスでは、順序通りのアクセスである。即ち非インタリーブ系列の順方向処理又は逆方向処理を行うため、アドレス生成部62は#1〜#Mの要素復号器7に与える順方向又は逆方向の非インタリーブ系列の位置を示すアドレスを、情報選択制御部66はメモリ番号を、それぞれメモリインタフェース5に出力する。
メモリインタフェース5は、アドレス生成部62からアドレスを、情報選択制御部66からメモリ番号を受け取ると、そのアドレスとメモリ番号にしたがって、#1〜#Mの情報メモリ1から受信信号をそれぞれ読み出して、各受信信号を#1〜#Mの要素復号器7に与える。
他方、インタリーブ時のアクセスでは、インタリーブ系列に従うランダムアクセスである。即ちインタリーブ系列の順方向処理又は逆方向処理を行うため、アドレス生成部62は式(4)又は式(5)のA(t)及びα(t)に関する計算式を用いて、アドレスA(t)を算出し、そのアドレスA(t)をメモリインタフェース5に出力する。また、情報選択制御部66は式(10)を用いて、メモリ番号B(t)を算出し、そのメモリ番号B(t)をメモリインタフェース5に出力する。
メモリインタフェース5は、アドレス生成部62からアドレスA(t)を、情報選択制御部66からメモリ番号B(t)を受け取ると、そのアドレスA(t)とメモリ番号B(t)にしたがって、#1〜#Mの情報メモリ1から受信信号をそれぞれ読み出して、各受信信号を#1〜#M要素復号器7に与える。
また、パリティ1メモリ2及びパリティ2メモリ3からの読み出しは、上記実施の形態1〜5と同様に、インタリーブ時及び非インタリーブ時ともに常に順序通りとなる。即ち、非インタリーブの復号時には、メモリインタフェース5が#1〜#Mのパリティ1メモリ2からパリティ1系列に相当する受信信号をそれぞれ読み出して、各受信信号を#1〜#Mの要素復号器7に与える。
他方、インタリーブの復号時には、メモリインタフェース5が#1〜#Mのパリティ2メモリ3からパリティ2系列に相当する受信信号をそれぞれ読み出して、各受信信号を#1〜#Mの要素復号器7に与える。
なお、#1〜#Mの要素復号器7がターボ符号を復号する処理は上記実施の形態1〜5と同様であるので説明を省略する。
なお、図14では、非インタリーブ、インタリーブ、非インタリーブ、インタリーブ、・・・、非インタリーブ、インタリーブの順番で繰り返し復号を行う例を示しているが、非インタリーブとインタリーブは逆の順序でもよい。また、順方向、逆方向、順方向、逆方向の順番で処理しているが、順方向と逆方向は逆の順序でもよい。
以上で明らかなように、この実施の形態6によれば、制御部6は、ターボ符号の情報長Nに応じた係数fxを予め保持しているインタリーブアドレス生成テーブル61と、インタリーブアドレス生成テーブル61に保持された係数fxを用いて、並列数M分の情報メモリ1に格納された各データのアドレスを決定するアドレス生成部62と、インタリーブアドレス生成テーブル61に保持された係数fxを用いて、情報メモリ1の並び順を決定する情報選択制御部66と、情報メモリ1に格納されたデータを情報選択制御部66により決定された並び順で読み出し、かつ、アドレス生成部62により決定されたアドレスから読み出してインタリーブ系列を生成するメモリインタフェース5とを備えるように構成した。そのため、上記実施の形態1〜5と同様に、インタリーブ系列に依存するメモリアクセスを簡易な計算で逐次的に得ることができるため、インタリーブ系列を保持するためのメモリが不要になり、メモリ量や回路規模を小さく抑えることができる。
また、情報選択制御部66がインタリーブアドレス生成テーブル61に格納された情報を用いてメモリ番号を生成するようにしたため、上記実施の形態1〜5のメモリ選択初期テーブル65に相当するメモリが不要になり、メモリ量や回路規模をさらに小さく抑えることができる効果を奏する。
なお、この実施の形態6では、要素復号器7が順方向処理と逆方向処理を順番に実施するものについて示したが、要素復号器7が順方向処理と逆方向処理を同時に実施するようにしてもよい。
即ち、要素復号器7が順方向処理と逆方向処理を同時に実施する場合、順方向処理は並列化単位の最初からパスメトリック値を保存しながら処理を進め、逆方向処理は並列化単位の末尾からパスメトリック値を保存しながら処理を進める。
両方向から進んだトレリスが交差した先は、互いのパスメトリック値を読み出すことができるので、外部情報を算出することができる。
実施の形態7.
上記実施の形態6では、一般的な多項式により生成されるインタリーブ系列を用いるターボ符号復号装置を示したが、図12に示すターボ符号復号装置において、一般的な多項式に代えて2次多項式であるQPP方式を採用し、並列段数Mを4段あるいは2段にしてもよい。以下では、並列段数Mを4段にした構成について説明する。
この場合、情報長をNとすると、QPPインタリーバのt番目のインタリーブ系列π(t)は、下記式(11)のようになる。
π(t)=f1×t+f2×t×t mod N (11)
ただし、f1は奇数の定数、f2は偶数の定数である。
このとき、4個の要素復号器7が並列処理する場合にアクセスする情報メモリ1のメモリ番号B(t)とアドレス(t)は、下記のように表される。
B(t)=ceil(π(t)/W) (12)
A(t)=π(t) mod W (13)
ここで、t=0,1,・・・,W−1であり、W=N/Mとし、MはNの約数としている。
したがって、制御部6のアドレス生成部62と情報選択制御部66が式(11)〜(13)を計算すれば、メモリ番号B(t)とアドレスA(t)を求めることができるが、式(11)〜(13)の計算では、乗算とmod(剰余)計算が必要となり、実装するには複雑性が高いものとなる。
そこで、この実施の形態7では、上記実施の形態1〜6と同様にメモリ番号B(t)及びアドレスA(t)を逐次的に算出するようにしている。アクセスするアドレスA(t)を計算するに際して、補助パラメータとしてα(t)を用意する。
ただし、以下のパラメータα(0),δは、計算量が大きいので、予めインタリーブアドレス生成テーブル61に格納しておくものとする。
α(0)=f1+f2 mod W
δ=2×f2 mod W
なお、パラメータα(0),δを計算して、その計算値を保持しておく分には、大きなメモリ量を必要としない。
メモリインタフェース5がアクセスする情報メモリ1のアドレスA(t)は、以下に示すように、アドレス生成部62において順方向の逐次的な操作で求めることができる。
[α(t)の更新] α(t+1)=α(t)+δ
If (α(t+1)≧W)
α(t+1)=α(t+1)−W
[A(t)の更新] A(t+1)=A(t)+α(t)
If (A(t+1)≧W)
A(t+1)=A(t+1)−W
(14)
アドレス生成部62は、インタリーブ時には上記式(14)を計算してアドレスA(t)を求め、非インタリーブ時には初期位置から1ずつアドレスA(t)を変化させればよい。
また、メモリインタフェース5がアクセスする情報メモリ1のメモリ番号B(t)は、以下に示すように、情報選択制御部66において順方向の逐次的な操作で求めることができる。
B(t)=A+(k−1)×f1 mod M (15)
ここで、Aは基準に用いる1つのメモリ番号B(t)であり、このメモリ番号B(t)の情報メモリ1に格納されたデータが最初の処理で#1の要素復号器7に渡される。ただし、基準となるメモリ番号Aは任意の値であって、#1〜#4のうちのいずれであってもよく、従来のように式(12)を計算すればよい。
例えば、#1の要素復号器7が#A(A=1,2,・・・,M)の情報メモリ1からデータを受ける場合には、#2の要素復号器7は#(A+f1)(mod M)の情報メモリ1からデータを受けることとなる。以下、同様に、#3の要素復号器7は#(A+2×f1)(mod M)の情報メモリ1から、#4の要素復号器7は#(A+3×f1)(mod M)の情報メモリ1から、それぞれデータを受ける。
この実施の形態では、並列段数Mを4段とした並列処理が行われる。この場合には、係数f1の値を4で除した剰余が奇数となり、1の場合と3の場合が存在する。剰余1,3それぞれの場合に要素復号器7がメモリインタフェース5を介してアクセスするメモリ番号B(t)のパターンを図15に示す。図15は、並列処理を行う#1〜#4の要素復号器7と、要素復号器7にデータを受け渡す#1〜#4の情報メモリ1との対応関係を表している。
また、メモリインタフェース5がアクセスする情報メモリ1のアドレスA(t)は、以下に示すように、アドレス生成部62において逆方向の逐次的な操作で求めることができる。
[α(t)の更新] If (α(t)≧δ)
α(t−1)=α(t)−δ
Else
α(t−1)=α(t)+W−δ
[A(t)の更新] If (A(t)≧α(t−1))
A(t−1)=A(t)−α(t−1)
Else
A(t−1)=A(t)+W−α(t−1)
(16)
アドレス生成部62は、インタリーブ時には上記式(16)を計算してアドレスA(t)を求め、非インタリーブ時には初期位置から1ずつアドレスA(t)を変化させればよい。
また、メモリインタフェース5がアクセスする情報メモリ1のメモリ番号B(t)も、順方向の逐次的な操作と同様に情報選択制御部66がインタリーブアドレス生成テーブル61のf1を用いて、1つのメモリ番号に基づいて逆方向の逐次的な操作で求めることができる。
以下、図14を援用しながら、制御部6がメモリインタフェース5を制御することによりインタリーブ系列と非インタリーブ系列を順番に生成させて、要素復号器7がターボ符号を復号する処理を説明する。
まず、動作制御部64は、順方向処理と逆方向処理の繰り返し回数とメモリアクセスの初期設定を行うとともに、要素復号器7のメモリに格納されているパスメトリック値を初期化する。また、動作制御部64は、インタリーブ系列π(t)の生成に係るパラメータとして、情報長固有のパラメータ(α(0)、δ)をインタリーブアドレス生成テーブル61に設定する。
情報メモリ1からの読み出しは、非インタリーブ時のアクセスでは、順序通りのアクセスである。即ち非インタリーブ系列の順方向処理又は逆方向処理を行うため、アドレス生成部62は#1〜#4の要素復号器7に与える順方向又は逆方向の非インタリーブ系列の位置を示すアドレスを、情報選択制御部66はメモリ番号を、それぞれメモリインタフェース5に出力する。
メモリインタフェース5は、アドレス生成部62からアドレスを、情報選択制御部66からメモリ番号を受け取ると、そのアドレスとメモリ番号にしたがって、#1〜#4の情報メモリ1から受信信号をそれぞれ読み出して、各受信信号を#1〜#4の要素復号器7に与える。
他方、インタリーブ時のアクセスでは、インタリーブ系列に従うランダムアクセスである。即ちインタリーブ系列の順方向処理又は逆方向処理を行うため、アドレス生成部62は式(14)又は式(16)を用いて、アドレスA(t)を算出し、そのアドレスA(t)をメモリインタフェース5に出力する。また、情報選択制御部66は式(15)を用いてメモリ番号B(t)を算出し、そのメモリ番号B(t)をメモリインタフェース5に出力する。
メモリインタフェース5は、アドレス生成部62からアドレスA(t)を、情報選択制御部66からメモリ番号B(t)を受け取ると、そのアドレスA(t)とメモリ番号B(t)にしたがって、#1〜#4の情報メモリ1から受信信号をそれぞれ読み出して、各受信信号を#1〜#4の要素復号器7に与える。
また、パリティ1メモリ2及びパリティ2メモリ3からの読み出しは、インタリーブ時及び非インタリーブ時ともに常に順序通りとなる。即ち、非インタリーブの復号時には、メモリインタフェース5が#1〜#4のパリティ1メモリ2からパリティ1系列に相当する受信信号をそれぞれ読み出して、各受信信号を#1〜#4の要素復号器7に与える。
他方、インタリーブの復号時には、メモリインタフェース5が#1〜#4のパリティ2メモリ3からパリティ2系列に相当する受信信号をそれぞれ読み出して、各受信信号を#1〜#4の要素復号器7に与える。
なお、#1〜#4の要素復号器7がターボ符号を復号する処理は上記実施の形態1〜5と同様であるので説明を省略する。
以上で明らかなように、この実施の形態7によれば、ターボ符号復号装置は、ターボ符号のインタリーバとしてQPP方式を採用し、並列数を2又は4とし、情報選択制御部66はインタリーブアドレス生成テーブル61に保持された情報長Nに応じた係数f1を用いて、1つの情報メモリ1のメモリ番号を基準に情報メモリ1の並び順を決定するように構成した。そのため、上記実施の形態1〜6と同様に、インタリーブ系列に依存するメモリアクセスを簡易な計算で逐次的に得ることができるため、インタリーブ系列を保持するためのメモリが不要になり、メモリ量や回路規模を小さく抑えることができる。
また、情報選択制御部66がインタリーブアドレス生成テーブル61に格納された情報を用いてメモリ番号を生成するようにしたため、QPP方式を用いるターボ符号復号装置においても上記実施の形態1〜5のメモリ選択初期テーブル65に相当するメモリが不要になり、メモリ量や回路規模をさらに小さく抑えることができる効果を奏する。
なお、この実施の形態7では、要素復号器7が順方向処理と逆方向処理を順番に実施するものについて示したが、要素復号器7が順方向処理と逆方向処理を同時に実施するようにしてもよい。
即ち、要素復号器7が順方向処理と逆方向処理を同時に実施する場合、順方向処理は並列化単位の最初からパスメトリック値を保存しながら処理を進め、逆方向処理は並列化単位の末尾からパスメトリック値を保存しながら処理を進める。
両方向から進んだトレリスが交差した先は、互いのパスメトリック値を読み出すことができるので、外部情報を算出することができる。
また、上記実施の形態6及び7によるターボ符号復号装置を、上記実施の形態3による並列化ターボ復号器10(図5)に適用してもよく、または上記実施の形態4による受信装置30に(図8)に実装してもよく、更には上記実施の形態5による基地局50(図10)に実装してもよい。このような構成とした場合であっても、上述した効果を奏する。
この発明の実施の形態1によるターボ符号復号装置を示す構成図である。 この発明の実施の形態1によるターボ符号復号装置の処理内容を示すフローチャートである。 この発明の実施の形態2によるターボ符号復号装置を示す構成図である。 読み出したn×PビットをP個の要素復号器7に受け渡すために並べ替える手順を示す説明図である。 この発明の実施の形態3によるターボ符号復号装置を示す構成図である。 情報長Kと復号繰り返し回数Iの違いによる復号性能の比較シミュレーションの結果を示すグラフ図である。 この発明の実施の形態3によるターボ符号復号装置の処理内容を示すフローチャートである。 この発明の実施の形態4による通信システムを示す構成図である。 この発明の実施の形態4による通信システムの処理内容を示すフローチャートである。 この発明の実施の形態5による通信システムを示す構成図である。 この発明の実施の形態1〜5に係るターボ符号復号装置を示す構成図であり、特に制御部を詳細に示すものである。 この発明の実施の形態6によるターボ符号復号装置を示す構成図である。 この発明の実施の形態6によるターボ符号復号装置の情報メモリ1のメモリ構成及びインタリーブ時のメモリアクセス方法を模式的に示す説明図である。 この発明の実施の形態6によるターボ符号復号装置の処理内容を示すフローチャートである。 この発明の実施の形態7によるターボ符号復号装置においてメモリインタフェース5がアクセスするメモリ番号のパターンを示す。
符号の説明
1 情報メモリ(ターボ符号格納手段)、2 パリティ1メモリ(ターボ符号格納手段)、3 パリティ2メモリ(ターボ符号格納手段)、4 外部情報メモリ(ターボ符号格納手段)、5 メモリインタフェース(系列生成手段)、6 制御部(系列生成手段)、7 要素復号器(復号手段)、10 並列化ターボ復号器、11 復号方式制御部(制御手段)、20 送信装置、21 ターボ符号化器、30 受信装置、31 ターボ符号復号装置、40 移動体端末、41 ターボ符号化器、50 基地局、51 ターボ符号復号装置、61 インタリーブアドレス生成テーブル、62 アドレス生成部、63,66 情報選択制御部、64 動作制御部、65 メモリ選択初期テーブル。

Claims (14)

  1. ターボ符号の受信系列を並列数の個数に分割して格納するターボ符号格納手段と、
    上記ターボ符号格納手段により格納されたターボ符号のインタリーブ系列及び非インタリーブ系列を生成する系列生成手段と、
    上記系列生成手段により生成されたインタリーブ系列及び非インタリーブ系列に対する順方向処理と逆方向処理を繰り返し実施して、ターボ符号を並列に復号する並列数分の復号手段とを備えたターボ符号復号装置において、
    上記系列生成手段は、
    上記ターボ符号格納手段の並び順を決定するためのパラメータを保持するメモリ選択初期テーブルと、
    インタリーブ系列を生成する多項式におけるターボ符号の情報長に応じた係数を予め保持するインタリーブアドレス生成テーブルと、
    上記メモリ選択初期テーブルに保持されたパラメータと上記インタリーブアドレス生成テーブルに保持された係数を用いて加減算処理と比較計算処理を実施して、順方向処理と逆方向処理の、上記ターボ符号格納手段の並び順とアドレスを決定する情報選択制御手段と、
    上記情報選択制御手段により決定された上記並び順で上記ターボ符号格納手段の上記アドレスに格納された各データを読み出して、順方向処理と逆方向処理のインタリーブ系列を生成するメモリインタフェースとを備えたことを特徴とするターボ符号復号装置。
  2. ターボ符号の情報長に応じて、順方向処理と逆方向処理を実施する復号手段の並列数を決定し、上記並列数分の復号手段を制御する制御手段を設けたことを特徴とする請求項1記載のターボ符号復号装置。
  3. ターボ符号の情報長に応じて、復号手段における順方向処理と逆方向処理の繰り返し回数を制御する制御手段を設けたことを特徴とする請求項1記載のターボ符号復号装置。
  4. 複数の復号手段が順方向処理と逆方向処理を同時に実施する機能を有することを特徴とする請求項1から請求項3のうちのいずれか1項記載のターボ符号復号装置。
  5. 復号手段は、順方向処理と逆方向処理を同時に実施する場合、順方向処理又は逆方向処理のいずれか一方の開始を1ステップ先行又は1ステップ遅延させることを特徴とする請求項4記載のターボ符号復号装置。
  6. 系列生成手段は、「3GPP TS36.212」の規格に規定されているターボ符号のインタリーブ系列及び非インタリーブ系列を生成することを特徴とする請求項1から請求項5のうちのいずれか1項記載のターボ符号復号装置。
  7. 系列生成手段は、ターボ符号のインタリーバとしてQPP方式を採用していることを特徴とする請求項1から請求項5のうちのいずれか1項記載のターボ符号復号装置。
  8. 系列生成手段がターボ符号のインタリーブ系列及び非インタリーブ系列を生成する系列生成ステップと、
    複数の復号手段が上記系列生成手段により生成されたインタリーブ系列及び非インタリーブ系列に対する順方向処理と逆方向処理を繰り返し実施して、ターボ符号を並列に復号する復号ステップとを備えたターボ符号復号方法において、
    上記系列生成ステップは、
    メモリインタフェースが、ターボ符号の受信系列を並列数の個数に分割してターボ符号格納手段に格納する格納ステップと、
    情報選択制御手段が、メモリ選択初期テーブルに予め保持されている、上記ターボ符号格納手段の並び順を決定するためのパラメータと、インタリーブアドレス生成テーブルに予め保持されている、インタリーブ系列を生成する多項式におけるターボ符号の情報長に応じた係数を用いて加減算処理と比較計算処理を実施して、順方向処理と逆方向処理の、上記ターボ符号格納手段の並び順とアドレスを決定する情報選択制御ステップと、
    上記メモリインタフェースが、上記情報選択制御ステップで決定された上記並び順で上記ターボ符号格納手段の上記アドレスに格納された各データを読み出して、順方向処理と逆方向処理のインタリーブ系列を生成するインタリーブ系列生成ステップとから成ることを特徴とするターボ符号復号方法。
  9. 情報源をターボ符号化してターボ符号を生成し、上記ターボ符号を変調して変調波を送信する送信装置と、上記送信装置から送信された変調波を受信し、上記変調波からターボ符号を復調する受信装置とからなる通信システムにおいて、上記受信装置が、復調後のターボ符号を格納する並列数分のターボ符号格納手段と、上記ターボ符号格納手段により格納されたターボ符号のインタリーブ系列及び非インタリーブ系列を生成する系列生成手段と、上記系列生成手段により生成されたインタリーブ系列及び非インタリーブ系列に対する順方向処理と逆方向処理を繰り返し実施して、ターボ符号を並列に復号する並列数分の複数の復号手段とを備えたターボ符号復号装置を実装し、
    上記ターボ符号復号装置の上記系列生成手段は、
    上記ターボ符号格納手段の並び順を決定するためのパラメータを保持するメモリ選択初期テーブルと、
    インタリーブ系列を生成する多項式におけるターボ符号の情報長に応じた係数を予め保持するインタリーブアドレス生成テーブルと、
    上記メモリ選択初期テーブルに保持されたパラメータと上記インタリーブアドレス生成テーブルに保持された係数を用いて加減算処理と比較計算処理を実施して、順方向処理と逆方向処理の、上記ターボ符号格納手段の並び順とアドレスを決定する情報選択制御手段と、
    上記情報選択制御手段により決定された上記並び順で上記ターボ符号格納手段の上記アドレスに格納された各データを読み出して、順方向処理と逆方向処理のインタリーブ系列を生成するメモリインタフェースとを備えたことを特徴とする通信システム。
  10. 送信装置が移動体端末であり、受信装置が基地局であることを特徴とする請求項9記載の通信システム。
  11. 情報選択制御手段は、インタリーブアドレス生成テーブルに保持された係数を用いてターボ符号格納手段の並び順を決定するためのパラメータを求め、該パラメータと該係数とを用いて加減算処理と比較計算処理を実施して、順方向処理と逆方向処理の、上記ターボ符号格納手段の並び順とアドレスを決定することを特徴とする請求項1記載のターボ符号復号装置。
  12. 並列数M分のターボ符号格納手段は、情報長Nの情報系列及び検査系列のデータをそれぞれ、先頭から順にN/Mワード毎に、当該各ターボ符号格納手段のアドレス0からアドレスN/M−1に格納し、
    情報選択制御手段は、インタリーブ系列を生成する多項式が下記式で表現され、係数fxがtに依存しない値の場合に、インタリーブアドレス生成テーブルに保持された情報長Nに応じた係数fxを用いて、1つのターボ符号格納手段を基準に上記各ターボ符号格納手段の並び順を決定することを特徴とする請求項11記載のターボ符号復号装置。
    π(t+k×N/M)=π(t)+k×fx×(N/M) mod N
    ここで、t=0,1,・・・,N/M−1、k=0,1,・・・,M−1である。
  13. ターボ符号のインタリーバとしてQPP方式を採用し、並列数を2又は4としたとき、
    情報選択制御手段は、インタリーブ系列を生成する多項式が下記式で表現される場合に、インタリーブアドレス生成テーブルに保持された情報長Nに応じた係数f1を用いて、1つのターボ符号格納手段を基準に並列数2分又は並列数4分のターボ符号格納手段の並び順を決定することを特徴とする請求項12記載のターボ符号復号装置。
    π(t)=f1×t+f2×t×t mod N
    ここで、t=0,1,・・・,N−1、f1は奇数の定数、f2は偶数の定数である。
  14. 情報選択制御ステップでは、情報選択制御手段が、インタリーブアドレス生成テーブルに予め保持されている係数を用いてターボ符号格納手段の並び順を決定するためのパラメータを求め、該パラメータと該係数とを用いて加減算処理と比較計算処理を実施して、順方向処理と逆方向処理の、上記ターボ符号格納手段の並び順とアドレスを決定することを特徴とする請求項8記載のターボ符号復号方法。
JP2008220232A 2007-09-20 2008-08-28 ターボ符号復号装置、ターボ符号復号方法及び通信システム Active JP4874312B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008220232A JP4874312B2 (ja) 2007-09-20 2008-08-28 ターボ符号復号装置、ターボ符号復号方法及び通信システム

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2007244163 2007-09-20
JP2007244163 2007-09-20
JP2008220232A JP4874312B2 (ja) 2007-09-20 2008-08-28 ターボ符号復号装置、ターボ符号復号方法及び通信システム

Publications (2)

Publication Number Publication Date
JP2009095008A JP2009095008A (ja) 2009-04-30
JP4874312B2 true JP4874312B2 (ja) 2012-02-15

Family

ID=40666472

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008220232A Active JP4874312B2 (ja) 2007-09-20 2008-08-28 ターボ符号復号装置、ターボ符号復号方法及び通信システム

Country Status (1)

Country Link
JP (1) JP4874312B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013150365A (ja) * 2007-11-26 2013-08-01 Motorola Mobility Llc ベクトル化されたターボ復号器のためのデータ・インターリーブ回路および方法

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2443751A1 (en) * 2009-06-17 2012-04-25 Coherent Logix Incorporated Parallel execution of trellis-based methods
US20120106683A1 (en) * 2009-06-18 2012-05-03 Zte Corporation Method and apparatus for parallel turbo decoding in long term evolution system (lte)
US8255759B2 (en) 2009-10-29 2012-08-28 Qualcomm Incorporated APP (a priori probability) storage design for LTE turbo decoder with quadratic permutation polynomial interleaver
JP2011135471A (ja) * 2009-12-25 2011-07-07 Mitsubishi Electric Corp ターボ符号の誤り訂正復号装置及び誤り訂正復号方法
EP2538345A1 (en) * 2010-02-16 2012-12-26 Nec Corporation Fast fourier transform circuit
WO2011111654A1 (ja) * 2010-03-08 2011-09-15 日本電気株式会社 誤り訂正符号復号装置、誤り訂正符号復号方法および誤り訂正符号復号プログラム
JP5692780B2 (ja) 2010-10-05 2015-04-01 日本電気株式会社 マルチコア型誤り訂正処理システムおよび誤り訂正処理装置
JP2014011627A (ja) * 2012-06-29 2014-01-20 Mitsubishi Electric Corp 内部インタリーブを有する誤り訂正復号装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007081640A (ja) * 2005-09-13 2007-03-29 Matsushita Electric Ind Co Ltd ターボ復号装置およびターボ復号方法
US7873893B2 (en) * 2007-02-28 2011-01-18 Motorola Mobility, Inc. Method and apparatus for encoding and decoding data

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013150365A (ja) * 2007-11-26 2013-08-01 Motorola Mobility Llc ベクトル化されたターボ復号器のためのデータ・インターリーブ回路および方法

Also Published As

Publication number Publication date
JP2009095008A (ja) 2009-04-30

Similar Documents

Publication Publication Date Title
JP4874312B2 (ja) ターボ符号復号装置、ターボ符号復号方法及び通信システム
May et al. A 150Mbit/s 3GPP LTE turbo code decoder
JP3861084B2 (ja) 特に移動無線システム用とした、複合型ターボ符号/畳み込み符号デコーダ
KR100955305B1 (ko) 큐피피 인터리브를 갖는 병렬 터보 디코딩을 위한 공식적플렉서블 충돌 방지 메모리 억세싱
JP2003528477A (ja) マップデコーダ用の区分されたデインターリーバメモリ
US9048877B2 (en) Turbo code parallel interleaver and parallel interleaving method thereof
JP2006115145A (ja) 復号装置及び復号方法
JP5840741B2 (ja) 複数のコード・タイプをプログラマブル復号する方法および装置
JP5700035B2 (ja) 誤り訂正符号復号装置、誤り訂正符号復号方法および誤り訂正符号復号プログラム
US20100131829A1 (en) Scheduling data with time diversity in flow systems
US7573962B1 (en) Diversity code combining scheme for turbo coded systems
JP4131680B2 (ja) ターボ復号装置
US7584407B2 (en) Decoder and method for performing decoding operation using map algorithm in mobile communication system
US9130728B2 (en) Reduced contention storage for channel coding
JP2003152556A (ja) 誤り訂正符号復号装置
Raymond et al. Design and VLSI implementation of a high throughput turbo decoder
Adiono Radix-4 max-log-map parallel turbo decoder architecture with a new cache memory data flow for lte
Gazi Prunable collision free random interleaver design
JP2004222197A (ja) データ受信方法及び装置
JP4991481B2 (ja) 反復復号装置及び反復復号方法
KR20050122521A (ko) 터보 복호화를 위한 병렬 복호 방법 및 이를 사용한 터보복호기
JP2002198829A (ja) 復号装置及び復号方法
JP2006280010A (ja) 復号装置及び復号方法
JP2007006541A (ja) 誤り訂正符号復号装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110124

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110804

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110816

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110930

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111122

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141202

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4874312

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250