JP4874312B2 - Turbo code decoding apparatus, turbo code decoding method, and communication system - Google Patents
Turbo code decoding apparatus, turbo code decoding method, and communication system Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 119
- 238000004891 communication Methods 0.000 title claims description 31
- 230000015654 memory Effects 0.000 claims description 503
- 238000012545 processing Methods 0.000 claims description 225
- 230000008569 process Effects 0.000 claims description 73
- 238000004364 calculation method Methods 0.000 claims description 30
- 230000006870 function Effects 0.000 claims description 2
- 230000001934 delay Effects 0.000 claims 1
- 230000008707 rearrangement Effects 0.000 description 39
- 238000010586 diagram Methods 0.000 description 15
- 238000004422 calculation algorithm Methods 0.000 description 6
- 230000003111 delayed effect Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 230000006866 deterioration Effects 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000009897 systematic effect Effects 0.000 description 2
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Landscapes
- Error Detection And Correction (AREA)
Description
この発明は、ディジタル情報処理における誤り訂正技術に係り、特に、ターボ符号を復号するターボ符号復号装置、ターボ符号復号方法及び通信システムに関するものである。 The present invention relates to an error correction technique in digital information processing, and more particularly to a turbo code decoding apparatus, a turbo code decoding method, and a communication system for decoding a turbo code.
ターボ符号の復号は、非インタリーブ系列とインタリーブ系列に対して、BCJR(Bahl Cocke Jeinek Raviv)アルゴリズムと呼ばれるトレリス線図の順方向処理と逆方向処理によってパスメトリック値の算出を繰り返すことにより行われる。
理想的な復号方法として、MAP(maximum a posteriori probability)復号法があり、Log−MAP復号法、Max−Log−MAP復号法なども広く知られている(例えば、非特許文献1を参照)。
The decoding of the turbo code is performed by repeatedly calculating the path metric value for the non-interleaved sequence and the interleaved sequence by a forward process and a backward process of a trellis diagram called a BCJR (Bahl Cocke Jinek Raviv) algorithm.
As an ideal decoding method, there is a MAP (maximum a posteriori probabilistic) decoding method, and a Log-MAP decoding method, a Max-Log-MAP decoding method, and the like are widely known (for example, see Non-Patent Document 1).
ターボ符号を用いて高速ディジタル通信を実施する場合、ターボ符号の復号処理を高速化して、処理の遅延量を小さくする必要がある。
ターボ符号の復号処理を高速化するために、ターボ符号の復号処理を並列化する場合、実装の複雑さが内部インタリーバの構成に依存する。
例えば、「3GPP TS36.212」の規格で規定されているQPP(Quadratic Polynomial Permutation)は(例えば、非特許文献2を参照)は、復号処理の並列化に適している内部インタリーバである(例えば、非特許文献3を参照)。
When high-speed digital communication is performed using a turbo code, it is necessary to speed up the decoding process of the turbo code and reduce the processing delay amount.
In order to speed up the turbo code decoding process, when the turbo code decoding process is parallelized, the implementation complexity depends on the configuration of the internal interleaver.
For example, QPP (Quadratic Polynomial Permutation) defined in the standard of “3GPP TS36.212” (see, for example, Non-Patent Document 2) is an internal interleaver suitable for parallelization of decoding processing (for example, (Refer nonpatent literature 3).
例えば、非特許文献4には、ターボ符号の復号処理を並列化して行う方法が開示されている。
即ち、非特許文献4には、BCJRアルゴリズムを並列数に分割して同時に処理する旨が記載されており、並列数に分割して同時に処理する際、分割の切れ目となるパスメトリック値を保存し、繰り返し処理の次回の演算で、そのパスメトリック値を用いることで、復号性能の劣化を招くことなく、復号することができるようにしている。
For example, Non-Patent
That is, Non-Patent
また、上記の復号方法との組み合わせ方式として、スライディング・ウィンドウ方式が知られている(例えば、非特許文献5を参照)。
スライディング・ウィンドウ方式もBCJRアルゴリズムを分割して、パスメトリック値を算出することで、メモリ量を削減することができる方法である。
その際、分割の切れ目において、処理の度にトレリスを遡ってBCJRアルゴリズムを始めることで、復号性能の劣化を招くことなく、復号することができる。
トレリスを遡る期間は、「マージン幅」や「トレーニング幅」などと呼ばれる。以下、この明細書では、トレリスを遡る期間を「マージン幅」と称するものとする。
Also, a sliding window method is known as a combination method with the above decoding method (see, for example, Non-Patent Document 5).
The sliding window method is also a method that can reduce the amount of memory by dividing the BCJR algorithm and calculating the path metric value.
At that time, decoding can be performed without degrading the decoding performance by starting the BCJR algorithm by tracing back the trellis at each process at the break of the division.
The period going back to the trellis is called “margin width” or “training width”. Hereinafter, in this specification, a period going back the trellis is referred to as a “margin width”.
従来のターボ符号復号装置は以上のように構成されているので、ターボ符号のインタリーバとしてQPP方式が採用される場合、複雑な乗算と剰余計算ではなく、加減算と比較処理を実施するだけでインタリーブ系列を生成することができる(非特許文献2)。しかし、この場合、インタリーブ系列を先頭から順番に生成することができるため、順方向処理の際にはインタリーブ系列の生成と同時に復号を行うことができるが、逆方向処理の際にはインタリーブ系列をメモリに格納して、そのインタリーブ系列を読み出しながら処理する必要がある。このため、インタリーブ系列を格納するメモリが必要となり、メモリ量が大きくなる課題があった。 Since the conventional turbo code decoding apparatus is configured as described above, when the QPP method is adopted as an interleaver for turbo code, an interleave sequence is simply performed by performing addition / subtraction and comparison processing instead of complicated multiplication and remainder calculation. Can be generated (Non-Patent Document 2). However, in this case, since the interleaved sequence can be generated in order from the beginning, decoding can be performed simultaneously with the generation of the interleaved sequence in the forward processing, but the interleaved sequence is generated in the backward processing. It is necessary to store the data in a memory and perform processing while reading the interleaved sequence. For this reason, a memory for storing the interleaved sequence is required, and there is a problem that the amount of memory increases.
ターボ符号の復号処理速度は、復号繰り返し回数や並列数に依存し、スライディング・ウィンドウ方式が使用される場合にはマージンなどに依存する。繰り返し回数を減らせば、復号処理の高速化を図ることができるが、復号性能の劣化を招いてしまう課題があった。また、並列数を高次にしても、復号処理の高速化を図ることができるが、メモリ量の増大を招いてしまう課題があった。
また、スライディング・ウィンドウ方式を用いてメモリ削減を行う場合、特にターボ符号が短いと、マージン幅による処理量の増加の影響が大きく、処理速度が低下する課題があった。
The decoding processing speed of the turbo code depends on the number of decoding repetitions and the number of parallel operations, and on the margin when the sliding window method is used. If the number of repetitions is reduced, the decoding process can be speeded up, but there is a problem that the decoding performance is deteriorated. Even if the number of parallel processing is increased, the speed of the decoding process can be increased, but there is a problem that the amount of memory is increased.
In addition, when memory reduction is performed using the sliding window method, particularly when the turbo code is short, there is a problem that the processing amount is greatly affected by the margin width and the processing speed is lowered.
この発明は上記のような課題を解決するためになされたもので、インタリーブ系列を格納するメモリを実装することなく、ターボ符号の復号処理を並列化することができるターボ符号復号装置、ターボ符号復号方法及び通信システムを得ることを目的とする。 The present invention has been made to solve the above-described problems, and is provided with a turbo code decoding apparatus and turbo code decoding capable of parallelizing turbo code decoding processing without mounting a memory for storing an interleaved sequence. The object is to obtain a method and a communication system.
この発明に係るターボ符号復号装置は、メモリ選択初期テーブルに保持されたパラメータとインタリーブアドレス生成テーブルに保持された係数を用いて加減算処理と比較計算処理を実施して、順方向処理と逆方向処理の、ターボ符号格納手段の並び順とアドレスを決定し、情報選択制御手段により決定された並び順でターボ符号格納手段のアドレスに格納された各データを読み出して、順方向処理と逆方向処理のインタリーブ系列を生成するものである。
The turbo code decoding device according to the present invention performs forward / backward processing and backward processing by performing addition / subtraction processing and comparison calculation processing using the parameters held in the memory selection initial table and the coefficients held in the interleave address generation table. The arrangement order and address of the turbo code storage means are determined, each data stored in the address of the turbo code storage means is read out in the arrangement order determined by the information selection control means, and forward processing and backward processing are performed. An interleave sequence is generated.
この発明によれば、ターボ符号のインタリーブ系列及び非インタリーブ系列を生成する系列生成手段が、ターボ符号のインタリーブ系列を生成する際、加減算処理と比較計算処理を実施して順方向処理と逆方向処理のインタリーブ位置を求めるように構成したので、インタリーブ系列を格納するメモリを実装することなく、ターボ符号の復号処理を並列化することができるようになり、実装するメモリ量を削減することができる効果がある。
According to the present invention, sequence generating means for generating the interleaved sequence and non-interleaved sequence of turbo code, when generating the interleaved sequence of turbo codes, the forward processing and comparison made computing the subtraction processing and backward processing Since the interleave position is obtained, it is possible to parallelize the decoding process of the turbo code without mounting the memory for storing the interleaved sequence, and the effect of reducing the amount of memory to be mounted There is.
実施の形態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からターボ符号格納手段が構成されている。
FIG. 1 is a block diagram showing a turbo code decoding apparatus according to
The
The
The
The
The
メモリインタフェース5は情報メモリ1、パリティ1メモリ2及びパリティ2メモリ3に格納されている受信信号のうち、制御部6が指示するインタリーブ位置から受信信号を読み出して、ターボ符号のインタリーブ系列及び非インタリーブ系列を生成し、制御部6が指示する要素復号器7に対してターボ符号のインタリーブ系列及び非インタリーブ系列を出力し、また、要素復号器7から出力される外部情報系列を外部情報メモリ4に出力する処理を実施する。
制御部6はインタリーブ位置をメモリインタフェース5に指示するとともに、要素復号器7における順方向処理と逆方向処理を制御するものであり、制御部6はメモリインタフェース5がターボ符号のインタリーブ系列を生成する際、加減算処理と比較計算処理を実施するだけで順方向処理と逆方向処理のインタリーブ位置を求める。
なお、メモリインタフェース5及び制御部6から系列生成手段が構成されている。
The
The
The
要素復号器7はP個並列に設置されており、制御部6の指示の下、メモリインタフェース5により生成されたインタリーブ系列及び非インタリーブ系列に対する順方向処理と逆方向処理を繰り返し実施して、ターボ符号を復号するとともに、外部情報系列を算出する処理を実施する。なお、要素復号器7は復号手段を構成している。
The
図1の例では、ターボ符号復号装置の構成要素であるメモリインタフェース5、制御部6及び要素復号器7がそれぞれ専用のハードウェア(例えば、MPUが実装されている半導体集積回路基板)から構成されているものを想定しているが、ターボ符号復号装置がコンピュータで構成される場合、メモリインタフェース5、制御部6及び要素復号器7の処理内容を記述しているプログラムをコンピュータのメモリに格納し、コンピュータのCPUが当該メモリに格納されているプログラムを実行するようにしてもよい。
図2はこの発明の実施の形態1によるターボ符号復号装置の処理内容を示すフローチャートである。
In the example of FIG. 1, the
FIG. 2 is a flowchart showing the processing contents of the turbo code decoding apparatus according to
次に動作について説明する。
例えば、ターボ符号の内部インタリーバとして、整数環上の2次多項式であるQPP方式を採用している図示せぬ送信装置が、例えば、パケットデータなどの情報源をターボ符号化してターボ符号を生成し、そのターボ符号を変調して変調波を送信する。
通信路では、伝播環境に応じて雑音が変調波に付加され、雑音が付加されている変調波が図示せぬ受信装置で受信される。
Next, the operation will be described.
For example, a transmitter (not shown) that employs a QPP method that is a second-order polynomial on an integer ring as an internal interleaver of a turbo code generates a turbo code by turbo-coding an information source such as packet data, for example. Then, the turbo code is modulated and a modulated wave is transmitted.
In the communication path, noise is added to the modulated wave in accordance with the propagation environment, and the modulated wave to which noise is added is received by a receiving device (not shown).
受信装置は、送信装置から送信された変調波を受信すると、その変調波に対する同期検波や復調処理などを実施して、ターボ符号の情報系列(システマティック系列)に相当する受信信号、ターボ符号のパリティ1系列に相当する受信信号及びターボ符号のパリティ2系列に相当する受信信号を算出する。
受信装置には図1のターボ符号復号装置が内蔵されており、ターボ符号復号装置がターボ符号を復号する。
以下、ターボ符号復号装置の処理内容を具体的に説明する。
When the receiving device receives the modulated wave transmitted from the transmitting device, the receiving device performs synchronous detection and demodulation processing on the modulated wave, and receives a received signal corresponding to a turbo code information sequence (systematic sequence), a parity of the turbo code A reception signal corresponding to one sequence and a reception signal corresponding to a
The receiving apparatus incorporates the turbo code decoding apparatus shown in FIG. 1, and the turbo code decoding apparatus decodes the turbo code.
Hereinafter, the processing content of the turbo code decoding apparatus will be described in detail.
ここでは、情報系列の情報長がK、要素復号器7の並列数がPであるとする。
この場合、P個の要素復号器7により並列に処理される並列化単位の長さがW=K/Pとなり、アドレス数もK/Pとなる。
また、1ワードは、受信信号のビット数nに等しいnビットとなる。
Here, it is assumed that the information length of the information sequence is K and the parallel number of the
In this case, the length of the parallelized unit processed in parallel by the
One word is n bits equal to the number of bits n of the received signal.
ターボ符号復号装置におけるP個の情報メモリ1には、ターボ符号の情報系列に相当する受信信号がそれぞれ格納される。ただし、情報系列の先頭から#1〜#Pの順番で情報メモリ1に格納される。
また、ターボ符号復号装置におけるP個のパリティ1メモリ2には、ターボ符号のパリティ1系列に相当する受信信号がそれぞれ格納され、P個のパリティ2メモリ3には、ターボ符号のパリティ2系列に相当する受信信号がそれぞれ格納される。
ただし、パリティ1系列の先頭から#1〜#Pの順番でパリティ1メモリ2に格納され、パリティ2系列の先頭から#1〜#Pの順番でパリティ2メモリ3に格納される。
In the
Also, the
However, they are stored in the
制御部6は、メモリインタフェース5が情報メモリ1、パリティ1メモリ2及びパリティ2メモリ3から読み出す受信信号を制御するとともに、メモリインタフェース5が外部情報メモリ4から読み出す外部情報と、外部情報メモリ4に書き込む外部情報(例えば、要素復号器7による復号結果が“1”又は“0”である確率を示す情報)とを制御する。
ただし、メモリインタフェース5が外部情報を書き込む際には、その外部情報の書き込み先が、読み出す外部情報と同じメモリであって、読み出す外部情報と同じアドレスになるように制御する。
The
However, when the
なお、詳細は後述するが、情報メモリ1及び外部情報メモリ4からの読み出しは、インタリーブ時のアクセスでは、インタリーブ系列に従うランダムアクセスとなり、非インタリーブ時のアクセスでは、順序通りとなる。
また、パリティ1メモリ2及びパリティ2メモリ3からの読み出しは、常に順序通りとなり、非インタリーブの復号時には、パリティ1メモリ2からパリティ1系列に相当する受信信号が読み出されて要素復号器7に出力される。また、インタリーブの復号時には、パリティ2メモリ3からパリティ2系列に相当する受信信号が読み出されて要素復号器7に出力される。
制御部6からは、読み出すメモリ番号B(t)と読み出すアドレスA(t)を示す制御信号がメモリインタフェース5に出力される。
Although details will be described later, reading from the
In addition, the reading from the
From the
ここで、制御部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の約数としている。
Here, the memory number B (t) and the address A (t) output from the
First, the t-th interleave sequence π (t) of the QPP interleaver generated by the
π (t) = (f1 × t + f2 × t × t) mod K (1)
However, f1 and f2 are predetermined constants.
At this time, when the
B (t) = π (i + W × j) / W (2)
A (t) = π (i + W × j) mod W (3)
However, P is a divisor of K for simplicity of explanation here.
したがって、制御部6が式(1)〜式(3)を計算すれば、メモリ番号B(t)とアドレスA(t)を求めることができるが、式(1)〜式(3)の計算では、乗算とmod(剰余)計算が必要となり、実装するには複雑性が高いものとなる。
そこで、この実施の形態1では、下記に示すように、制御部6が加減算処理と比較計算処理を実施するだけで、順方向処理と逆方向処理のインタリーブ位置を求めるようにしている。
アクセスするメモリ番号B(t)とアドレスA(t)を計算するに際して、補助パラメータとしてβ(t),α(t)を用意する。
Therefore, if the
Therefore, in the first embodiment, as shown below, the
When calculating the memory number B (t) and the address A (t) to be accessed, β (t) and α (t) are prepared as auxiliary parameters.
ただし、以下のパラメータβ(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),γ,δを計算して、その計算値を保持しておく分には、大きなメモリ量を必要としない。
However, since the following parameters β (0), α (0), γ, and δ have a large calculation amount, they are stored in the memory in advance.
β (0) = ceil ((f1 + f2) mod K) / W)
α (0) = (f1 + f2) mod W
γ = ceil (2 × f2 / W)
δ = (2 × f2 mod W)
Here, ceil (argument) is a function that returns the next largest integer from the arguments in parentheses.
Note that a large amount of memory is not required for calculating the parameters β (0), α (0), γ, and δ and holding the calculated values.
順方向処理のインタリーブ位置を示すメモリ番号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)
As shown below, the memory number B (t) and the address A (t) indicating the interleave position of the forward processing can be obtained by sequential operations in the forward direction.
[Update of 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
[Update of β (t)] If (α (t) + δ ≧ W)
C = 1
Else
C = 0
β (t + 1) = β (t) + γ + C
If (β (t + 1) ≧ P)
β (t + 1) = β (t + 1) −P
[Update of A (t)] A (t + 1) = A (t) + α (t)
If (A (t + 1) ≧ W)
A (t + 1) = A (t + 1) −W
[Update of α (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),γ,δを保持している。
The
When the information length K is equally divided by the parallel number P and the # 1 to #
Therefore, the
メモリインタフェース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ずつインクリメントするようにする。
When the
At this time, the received signal is read in order from the initial position of the
制御部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に与える。
As described above, the
At this time, each time a received signal is read from the
The received signal stored in the # 1
メモリインタフェース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ずつインクリメントするようにする。
When the
At this time, the received signals are read sequentially from the initial position of the
次に、逆方向処理のインタリーブ位置を示すメモリ番号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)
Next, as shown below, the memory number B (t) and the address A (t) indicating the interleave position of the backward processing can be obtained by sequential operations in the backward direction.
[Update of α (t)] If (α (t) ≧ δ)
α (t−1) = α (t) −δ
Else
α (t−1) = α (t) + W−δ
[Update of A (t)] If (A (t) ≧ α (t−1))
A (t−1) = A (t) −α (t−1)
Else
A (t-1) = A (t) + W- [alpha] (t-1)
[Update of β (t)] If (α (t) + δ ≧ W)
C = 1
Else
C = 0
If (β (t) ≧ γ + C)
β (t−1) = β (t) −γ-C
Else
β (t−1) = β (t + 1) + P−γ−C
[Update of 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),γ,δを保持している。
The
When the information length K is equally divided by the parallel number P and the # 1 to #
Therefore, the
メモリインタフェース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ずつデクリメントするようにする。
When the
At this time, the received signal is sequentially read from the final position of the
制御部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に与える。
As described above, the
At this time, every time a received signal is read from the
The received signal stored in the # 1
メモリインタフェース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ずつデクリメントするようにする。
When the
At this time, the received signal is sequentially read from the last position of the
メモリインタフェース5がインタリーブ系列及び非インタリーブ系列を生成する際の制御部6の動作は、上記の通りである。
以下、図2を参照しながら、制御部6がメモリインタフェース5を制御することにより、インタリーブ系列と非インタリーブ系列を順番に生成させて、要素復号器7がターボ符号を復号する処理を説明する。
なお、図2では、非インタリーブ、インタリーブ、非インタリーブ、インタリーブ、・・・、非インタリーブ、インタリーブの順番で繰り返し復号を行う例を示しているが、非インタリーブとインタリーブは逆の順序でもよい。また、順方向、逆方向、順方向、逆方向の順番で処理しているが、順方向と逆方向は逆の順序でもよい。
The operation of the
Hereinafter, a process in which the
2 shows an example in which iterative decoding is performed in the order of non-interleaving, interleaving, non-interleaving, interleaving,..., Non-interleaving, and interleaving, but non-interleaving and interleaving may be reversed. Further, the processing is performed in the order of the forward direction, the reverse direction, the forward direction, and the reverse direction, but the forward direction and the reverse direction may be reversed.
まず、制御部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で表している。
First, the
Next, the
In FIG. 2, in order to clarify parallel processing, the number of parallel processes is represented by P, and forward processing and backward processing are represented by # 1 to #P.
また、制御部6は、順方向処理と逆方向処理の繰り返し回数とメモリアクセスの初期設定を行うとともに、要素復号器7におけるパスメトリック計算の初期化を行う。
なお、図2では、要素復号器7により算出されたパスメトリック値を“端パスメトリック値”と記述しており、特に、パスメトリック値の格納と読み出しを明確にするため、非インタリーブ順方向の場合をF1、非インタリーブ逆方向の場合をB1、インタリーブ順方向の場合をF2、インタリーブ逆方向の場合をB2で表記している。これらのパスメトリック値は新しい値の算出時に上書きする。
In addition, the
In FIG. 2, the path metric value calculated by the
繰り返し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ステップを要する。
In the first iteration, the
When the
Upon receiving the received signal from the
The forward process in the # 1 to #
次に、制御部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ステップを要する。
Next, in order to perform reverse processing of the non-interleaved sequence in the first iteration, the
When the
Upon receiving the received signal from the
Also, the # 1 to #
The backward process in the # 1 to #
次に、制御部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として内部のメモリに格納する。
Next, the
When the
Also, the external information is read from the
When receiving the received signal and the external information from the
次に、制御部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に格納されている外部情報の上に、新たに算出した外部情報を上書きする)。
Next, the
When the
Also, the external information is read from the
When receiving the received signal and the external information from the
Also, the # 1 to #
繰り返し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の上に、新たに算出したパスメトリック値を上書きする)。
In the second iteration, the
When the
Also, the external information is read from the
Upon receiving the received signal and the external information from the
Then, forward processing is performed on the received signal using the external information to calculate a decoding result and a path metric value in the interleaved forward direction.
The
次に、制御部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に格納する。
Next, in order to perform reverse processing of the non-interleaved sequence in the second iteration, the
When the
Also, the external information is read from the
Upon receiving the received signal and the external information from the
Then, using the external information, reverse processing is performed on the received signal to calculate a decoding result and a non-interleaved reverse path metric value.
The
Further, external information is calculated using the path metric value in the non-interleaved reverse direction, and the external information is stored in the
次に、制御部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を更新する。
Next, the
When the
Also, the external information is read from the
Upon receipt of the received signal and external information from the
Then, forward processing is performed on the received signal using the external information to calculate a decoding result and a path metric value in the interleaved forward direction.
The
次に、制御部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に格納する。
Next, the
When the
Also, the external information is read from the
Upon receipt of the received signal and external information from the
Then, using the external information, reverse processing is performed on the received signal to calculate a decoding result and a path metric value in the interleave reverse direction.
The # 1 to #
Further, external information is calculated using the path metric value in the reverse direction of interleaving, and the external information is stored in the
以降、繰り返し2回目と同様にして、非インタリーブの順方向処理及び逆方向処理と、インタリーブの順方向処理及び逆方向処理とを所定回数だけ繰り返し実施する。
#1〜#Pの要素復号器7は、所定回数だけ繰り返し実施すると、最後に算出した復号結果を出力する。
Thereafter, similarly to the second iteration, the non-interleaved forward process and backward process and the interleaved forward process and backward process are repeated a predetermined number of times.
When the # 1 to #
以上で明らかなように、この実施の形態1によれば、メモリインタフェース5がターボ符号のインタリーブ系列を生成する際、制御部6が加減算処理と比較計算処理を実施するだけで順方向処理と逆方向処理のインタリーブ位置を求めるように構成したので、インタリーブ系列を格納するメモリを実装することなく、ターボ符号の復号処理を並列化することができるようになり、実装するメモリ量を削減することができる効果を奏する。
即ち、インタリーブ系列に依存するメモリアクセスを簡易な計算で逐次的に得ることができるため、インタリーブ系列を保持するためのメモリが不要になり、メモリ量や回路規模を小さく抑えることができる効果を奏する。
As apparent from the above, according to the first embodiment, when the
That is, since memory access depending on the interleaved sequence can be obtained sequentially with a simple calculation, a memory for holding the interleaved sequence becomes unnecessary, and the memory capacity and circuit scale can be reduced. .
なお、この実施の形態1では、要素復号器7が順方向処理と逆方向処理を順番に実施するものについて示したが、要素復号器7が順方向処理と逆方向処理を同時に実施するようにしてもよい。
ただし、要素復号器7が順方向処理と逆方向処理を同時に実施する場合、並列化単位の長さWが奇数であれば、順方向処理又は逆方向処理のいずれか一方の開始を1ステップ先行又は1ステップ遅延させるようにする。
In the first embodiment, the
However, when the
即ち、要素復号器7が順方向処理と逆方向処理を同時に実施する場合、順方向処理は単位の先頭からパスメトリック値を保存しながら処理を進め、逆方向処理は単位の末尾からパスメトリック値を保存しながら処理を進める。
両方向から進んだトレリスが交差した先は、互いのパスメトリック値を読み出すことができるので、外部情報を算出することができる。
ただし、並列化単位の長さWが奇数であれば、順方向処理又は逆方向処理のいずれか一方の開始を1ステップ先行又は1ステップ遅延させるようにする。
その理由は、並列化単位の長さWが奇数である場合、トレリスが交差する位置が同じになるため、いずれのパスメトリック値も保存されていない位置が生じてしまって、外部情報を算出することができないからである。
いずれかの開始を1ステップ先行、もしくは、1ステップ遅延させることで、どのような場合にも処理のタイミングに矛盾なく外部情報を算出することができる。
That is, when the
Since the trellises that have advanced from both directions cross each other, the mutual path metric values can be read out, so that external information can be calculated.
However, if the length W of the parallelization unit is an odd number, the start of either the forward process or the backward process is delayed by one step or delayed by one step.
The reason is that when the parallelization unit length W is an odd number, the positions at which the trellis crosses are the same, so that there is a position where no path metric value is stored, and external information is calculated. Because you can't.
By delaying any start by one step or delaying one step, external information can be calculated in any case without contradiction to the processing timing.
実施の形態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ビットずつ区切って並べ替えるようにする。
In the first embodiment, the
In this case, reading and writing of data when parallelizing the decoding process can be performed by controlling the rearrangement of the address to be accessed and the read data.
For example, if the parallel number is P, the number of addresses is K / P, and one word is n × P bits, which is P times the number of bits n of the received signal, and the read n × P bits are divided into n bits and rearranged. Like that.
制御部6は、メモリインタフェース5が情報メモリ1、パリティ1メモリ2及びパリティ2メモリ3から読み出す受信信号を制御するとともに、メモリインタフェース5が外部情報メモリ4から読み出す外部情報と、外部情報メモリ4に書き込む外部情報とを制御する。ただし、メモリインタフェース5が外部情報を書き込む際には、その外部情報の書き込み先が、読み出す外部情報と同じアドレスになるように制御する。
また、制御部6は、メモリインタフェース5が読み出した受信信号であるデータの並べ替えパターンを制御する。
The
In addition, the
以下、制御部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),γ,δを計算して、その計算値を保持しておく分には、大きなメモリ量を必要としない。
Hereinafter, control of the data rearrangement pattern in the
Here, auxiliary parameters β (t) and α (t) are prepared, assuming that the address accessed by the
However, since the following parameters β (0), α (0), γ, and δ have a large calculation amount, they are stored in the memory in advance.
β (0) = ceil ((f1 + f2) mod K) / W)
α (0) = (f1 + f2) mod W
γ = ceil (2 × f2 / W)
δ = (2 × f2 mod W)
Note that a large amount of memory is not required for calculating the parameters β (0), α (0), γ, and δ and holding the calculated values.
情報長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),γ,δを保持している。
If the information length K is equally divided by the parallel number P and the # 1 to #
Therefore, the
B(t)とA(t)は、順方向のインタリーブ時の逐次的な操作では、上記の式(4)を用いて求めることができ、逆方向のインタリーブ時の逐次的な操作では、上記の式(5)を用いて求めることができる。上記実施の形態1では、上記の式(4)、式(5)におけるB(t)がメモリ番号を表しているが、この実施の形態2では、式(4)、式(5)におけるB(t)がデータの並べ替え順を表しているものとする。
非インタリーブ時のアドレスについては、上記実施の形態1と同様に、初期位置又は最終位置から1ずつアドレスを変化させればよい。
B (t) and A (t) can be obtained using the above equation (4) in a sequential operation during forward interleaving, and in a sequential operation during backward interleaving, (5) can be obtained. In the first embodiment, B (t) in the above equations (4) and (5) represents a memory number. In this second embodiment, B in the equations (4) and (5) It is assumed that (t) represents the data rearrangement order.
As for the address at the time of non-interleaving, the address may be changed one by one from the initial position or the final position as in the first embodiment.
情報メモリ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)を用いて、データの並べ替えを実施している。
In the
When the
However, since the
以下、図2を参照しながら、制御部6がメモリインタフェース5を制御することにより、インタリーブ系列と非インタリーブ系列を順番に生成させて、要素復号器7がターボ符号を復号する処理を説明する。
なお、図2では、非インタリーブ、インタリーブ、非インタリーブ、インタリーブ、・・・、非インタリーブ、インタリーブの順番で繰り返し復号を行う例を示しているが、非インタリーブとインタリーブは逆の順序でもよい。また、順方向、逆方向、順方向、逆方向の順番で処理しているが、順方向と逆方向は逆の順序でもよい。
Hereinafter, a process in which the
2 shows an example in which iterative decoding is performed in the order of non-interleaving, interleaving, non-interleaving, interleaving,..., Non-interleaving, and interleaving, but non-interleaving and interleaving may be reversed. Further, the processing is performed in the order of the forward direction, the reverse direction, the forward direction, and the reverse direction, but the forward direction and the reverse direction may be reversed.
まず、制御部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におけるパスメトリック計算の初期化を行う。
First, the
Next, the
In FIG. 2, in order to clarify parallel processing, the number of parallel processes is represented by P, and forward processing and backward processing are represented by # 1 to #P.
In addition, the
繰り返し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ステップを要する。
In the first iteration, the
When the
Upon receiving the received signal from the
The forward process in the # 1 to #
次に、制御部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ステップを要する。
Next, in order to perform reverse processing of the non-interleaved sequence in the first iteration, the
When the
Upon receiving the received signal from the
Also, the # 1 to #
The backward process in the # 1 to #
次に、制御部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として内部のメモリに格納する。
Next, the
Upon receiving the address A (t) and the rearrangement order parameter B (t) from the
Also, the received signal is read from the
When receiving the received signal and the external information from the
次に、制御部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に格納されている外部情報の上に、新たに算出した外部情報を上書きする)。
Next, the
Upon receiving the address A (t) and the rearrangement order parameter B (t) from the
Also, the received signal is read from the
When receiving the received signal and the external information from the
Also, the # 1 to #
繰り返し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の上に、新たに算出したパスメトリック値を上書きする)。
In the second iteration, the
When the
Also, the received signal is read from the
Upon receiving the received signal and the external information from the
Then, forward processing is performed on the received signal using the external information to calculate a decoding result and a path metric value in the interleaved forward direction.
The
次に、制御部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に格納する。
Next, the
When the
Also, the received signal is read from the
Upon receiving the received signal and the external information from the
Then, using the external information, reverse processing is performed on the received signal to calculate a decoding result and a non-interleaved reverse path metric value.
The
Further, external information is calculated using the path metric value in the non-interleaved reverse direction, and the external information is stored in the
次に、制御部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を更新する。
Next, the
Upon receiving the address A (t) and the rearrangement order parameter B (t) from the
Also, the received signal is read from the
Upon receipt of the received signal and external information from the
Then, forward processing is performed on the received signal using the external information to calculate a decoding result and a path metric value in the interleaved forward direction.
The
次に、制御部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に格納する。
Next, the
Upon receiving the address A (t) and the rearrangement order parameter B (t) from the
Also, the received signal is read from the
Upon receipt of the received signal and external information from the
Then, using the external information, reverse processing is performed on the received signal to calculate a decoding result and a path metric value in the interleave reverse direction.
The # 1 to #
Further, external information is calculated using the path metric value in the reverse direction of interleaving, and the external information is stored in the
以降、繰り返し2回目と同様にして、非インタリーブの順方向処理及び逆方向処理と、インタリーブの順方向処理及び逆方向処理とを所定回数だけ繰り返し実施する。
#1〜#Pの要素復号器7は、所定回数だけ繰り返し実施すると、最後に算出した復号結果を出力する。
Thereafter, similarly to the second iteration, the non-interleaved forward process and backward process and the interleaved forward process and backward process are repeated a predetermined number of times.
When the # 1 to #
以上で明らかなように、この実施の形態2によれば、インタリーブ系列に依存するメモリアクセスを簡易な計算で逐次的に得ることができるため、インタリーブ系列を保持するためのメモリが不要になり、メモリ量や回路規模を小さく抑えることができる効果を奏する。 As apparent from the above, according to the second embodiment, memory access depending on the interleave sequence can be obtained sequentially with a simple calculation, so that a memory for holding the interleave sequence becomes unnecessary. There is an effect that the amount of memory and the circuit scale can be reduced.
なお、この実施の形態2では、要素復号器7が順方向処理と逆方向処理を順番に実施するものについて示したが、要素復号器7が順方向処理と逆方向処理を同時に実施するようにしてもよい。
ただし、要素復号器7が順方向処理と逆方向処理を同時に実施する場合、並列化単位の長さWが奇数であれば、順方向処理又は逆方向処理のいずれか一方の開始を1ステップ先行又は1ステップ遅延させるようにする。
In the second embodiment, the
However, when the
即ち、要素復号器7が順方向処理と逆方向処理を同時に実施する場合、順方向処理は単位の先頭からパスメトリック値を保存しながら処理を進め、逆方向処理は単位の末尾からパスメトリック値を保存しながら処理を進める。
両方向から進んだトレリスが交差した先は、互いのパスメトリック値を読み出すことができるので、外部情報を算出することができる。
ただし、並列化単位の長さWが奇数であれば、順方向処理又は逆方向処理のいずれか一方の開始を1ステップ先行又は1ステップ遅延させるようにする。
その理由は、並列化単位の長さWが奇数である場合、トレリスが交差する位置が同じになるため、いずれのパスメトリック値も保存されていない位置が生じてしまって、外部情報を算出することができないからである。
いずれかの開始を1ステップ先行、もしくは、1ステップ遅延させることで、どのような場合にも処理のタイミングに矛盾なく外部情報を算出することができる。
That is, when the
Since the trellises that have advanced from both directions cross each other, the mutual path metric values can be read out, so that external information can be calculated.
However, if the length W of the parallelization unit is an odd number, the start of either the forward process or the backward process is delayed by one step or delayed by one step.
The reason is that when the parallelization unit length W is an odd number, the positions at which the trellis crosses are the same, so that there is a position where no path metric value is stored, and external information is calculated. Because you can't.
By delaying any start by one step or delaying one step, external information can be calculated in any case without contradiction to the processing timing.
実施の形態3.
図5はこの発明の実施の形態3によるターボ符号復号装置を示す構成図であり、図において、並列化ターボ復号器10は図1又は図3に相当するターボ符号復号装置である。
復号方式制御部11はターボ符号の情報長Kに応じて、要素復号器7の並列数Pを決定し、その並列数分の要素復号器7を制御するとともに、ターボ符号の情報長Kに応じて、要素復号器7における順方向処理と逆方向処理の繰り返し回数Iとマージン幅Mを制御する。なお、復号方式制御部11は制御手段を構成している。
図7はこの発明の実施の形態3によるターボ符号復号装置の処理内容を示すフローチャートである。
FIG. 5 is a block diagram showing a turbo code decoding apparatus according to
The decoding
FIG. 7 is a flowchart showing the processing contents of the turbo code decoding apparatus according to
次に動作について説明する。
ターボ符号の復号処理の高速化を図る場合、動作クロックを上げる方法や、要素復号器7の並列数Pを多くするなどの方法が考えられる。
しかし、動作クロックを上げる方法を用いる場合、例えば、消費電力やデバイスのコストなどが大きくなる。
そこで、この実施の形態3では、要素復号器7の並列数Pを多くする方法を採用し、システムが要求する処理速度に適する復号方式を情報長Kに応じて選択することで、実装上有効な範囲の動作クロックに設定するようにする。
Next, the operation will be described.
In order to increase the speed of the turbo code decoding process, a method of increasing the operation clock or a method of increasing the parallel number P of the
However, when using a method of increasing the operation clock, for example, power consumption and device cost increase.
Therefore, in this third embodiment, a method of increasing the parallel number P of the
例えば、ターボ符号の復号方式として、スライディング・ウィンドウ方式を採用する場合、情報長Kが短いと、マージン幅Mが情報長Kに近い幅となり、スループット(bits/sec:単位時間内に復号するビット数)が著しく低下する。
ターボ符号の復号処理では、順方向処理と逆方向処理でそれぞれWステップが必要であり、非インタリーブとインタリーブの復号繰り返し回数Iを考慮すると、(W+W)×2×Iステップが必要である。ただし、ここでは説明の簡単化のためテイル・ビットの処理を考慮していない。
順方向処理と逆方向処理におけるマージン幅Mを考慮すると、必要なステップ数は、(W+M+W+M)×2×Iステップとなり、Wが小さい場合にはマージン幅Mの与える影響が大きい。
For example, when the sliding window method is adopted as a turbo code decoding method, if the information length K is short, the margin width M becomes a width close to the information length K, and throughput (bits / sec: bits to be decoded within a unit time) Number) is significantly reduced.
In the decoding process of the turbo code, W steps are required for the forward process and the reverse process, respectively, and (W + W) × 2 × I steps are required in consideration of the non-interleaved and interleaved decoding repetition count I. However, tail bit processing is not considered here for the sake of simplicity.
Considering the margin width M in the forward processing and the backward processing, the required number of steps is (W + M + W + M) × 2 × I steps. When W is small, the influence of the margin width M is large.
図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が長い場合と比べて少ない繰り返し回数で収束する。
FIG. 6 is a graph showing the result of the comparison simulation of the decoding performance depending on the difference between the information length K and the decoding repetition count I.
In FIG. 6, the horizontal axis represents the information length K, and the vertical axis represents Eb / N0 [dB] at which the block error rate BLER (Block Error Rate) reaches 1%.
The turbo code uses a turbo code defined by the standard of “3GPP TS36212”, and the code length is 3K + 12.
As a simulation condition, an additive white Gaussian channel and BPSK modulation are assumed, and the “Max Log MAP decoding method” is used for decoding the turbo code.
The decoding performance increases as the number of repetitions I increases, and the performance difference increases as the information length K increases. In the decoding of the turbo code that performs repetition, the number of repetitions required to converge to a correct result depends on the information length K. When the information length K is short, it converges with a smaller number of repetitions than when the information length K is long.
上記の通り、ターボ符号の復号は、情報長Kに依存して特徴が大きく変化する。
この実施の形態3では、通信システムで要求される処理速度を満たして、高い復号性能が得られるように、情報長Kに応じて要素復号器7の並列数P、マージン幅M、復号繰り返し回数Iを制御する。
例えば、図6のグラフにおいて、ターボ符号を用いた通信性能として、繰り返し回数8回に対して0.5dB程度の劣化まで許容できるとすれば、情報長Kが100ビット未満では繰り返し回数を2回、情報長Kが1000ビット未満では繰り返し回数を3回、情報長Kが1000ビット以上では繰り返し回数を4回とすることで、繰り返し回数Iを必要回数に抑えることができる。
As described above, the characteristics of turbo code decoding vary greatly depending on the information length K.
In the third embodiment, the parallel number P of the
For example, in the graph of FIG. 6, if the communication performance using the turbo code is acceptable up to a deterioration of about 0.5 dB with respect to 8 repetitions, the number of repetitions is 2 when the information length K is less than 100 bits. When the information length K is less than 1000 bits, the number of repetitions is 3 times, and when the information length K is 1000 bits or more, the number of repetitions is 4 times.
以下、図7を参照して、ターボ符号復号装置の処理内容を説明する。
この実施の形態3では、予め、通信システムが要求する処理速度を満たすよう設定されている要素復号器7の並列数Pとマージン幅Mがテーブル化されており、そのテーブルが復号方式制御部11に保持されている。
復号方式制御部11は、情報長Kを入力すると(ステップST1)、保持しているテーブルから要素復号器7の並列数Pとマージン幅Mを読み出して、その並列数Pとマージン幅Mを設定する(ステップST2,ST3)。ただし、並列数Pとマージン幅Mは、実装されている回路の持つ最大値以下の値に設定される。
Hereinafter, the processing content of the turbo code decoding apparatus will be described with reference to FIG.
In the third embodiment, the parallel number P and the margin width M of the
When receiving the information length K (step ST1), the decoding
次に、復号方式制御部11は、復号繰り返し回数Iを設定する。復号繰り返し回数Iはステップ数と動作クロックからシステム要求を満たす最大値に設定される。
なお、復号繰り返し回数Iは、システムが要求する復号性能を満たすまで繰り返し回数を減らして、処理速度を向上させるようにしてもよい。
復号方式制御部11は、復号方式制御部11による設定内容でターボ復号を実施し(ステップST5,ST6)、その復号結果を出力する(ステップST7)。
Next, the decoding
Note that the number of decoding iterations I may be reduced by reducing the number of iterations until the decoding performance required by the system is satisfied.
The decoding
以上で明らかなように、この実施の形態3によれば、ターボ符号の情報長Kに応じて、要素復号器7の並列数P、順方向処理と逆方向処理の繰り返し回数I及びマージン幅Mを制御するように構成したので、通信システムの持つ全ての情報長Kに対して、通信システムが要求する処理速度を満たすことが可能になる。
復号回路の動作時間は復号繰り返し回数Iに比例するため、通信システムが要求する復号性能に応じて繰り返し回数Iを制御することで消費電力の低減効果を高めることができる。また、実装上で有効な範囲の動作クロックでシステム要求を満たすため、開発コストを抑えることができる。
As is apparent from the above, according to the third embodiment, the parallel number P of the
Since the operation time of the decoding circuit is proportional to the number of decoding iterations I, the effect of reducing power consumption can be enhanced by controlling the number of iterations I according to the decoding performance required by the communication system. In addition, since the system requirements are satisfied with an operation clock within a range effective for implementation, development costs can be suppressed.
実施の形態4.
図8はこの発明の実施の形態4による通信システムを示す構成図であり、通信システムは送信装置20と受信装置30から構成されている。
図において、送信装置20は内部インタリーバにQPPを用いているターボ符号化器21を実装しており、ターボ符号化器21を使用して、情報源をターボ符号化してターボ符号を生成し、そのターボ符号を変調して変調波を送信する。
受信装置30は図1、図3又は図5のターボ符号復号装置31を実装しており、送信装置20から送信された変調波を受信し、その変調波からターボ符号を復調すると、そのターボ符号復号装置31を使用して、そのターボ符号を復号する。
なお、送信装置20と受信装置30の通信路は、無線でも有線でもよく、ターボ符号を利用するディジタル通信システムの全てに適用することができる。
図9はこの発明の実施の形態4による通信システムの処理内容を示すフローチャートである。
FIG. 8 is a block diagram showing a communication system according to
In the figure, the transmitting
The receiving
Note that the communication path between the
FIG. 9 is a flowchart showing the processing contents of the communication system according to
次に動作について説明する。
送信装置20は、例えば、データ通信対象のパケットデータである情報源を入力すると(ステップST11)、実装しているターボ符号化器21を使用して、その情報源をターボ符号化して、ターボ符号(ターボ符号化系列)を生成する(ステップST12)。
送信装置20は、ターボ符号を生成すると、そのターボ符号を変調して変調波を送信する(ステップST13)。
通信路では、伝播環境に応じて変調波に雑音が付加される。
Next, the operation will be described.
For example, when an information source that is packet data to be subjected to data communication is input (step ST11), the transmitting
When generating the turbo code, the
In the communication path, noise is added to the modulated wave according to the propagation environment.
受信装置30は、送信装置20から送信された変調波を受信し(ステップST14)、その変調波に対する同期検波処理や復調処理を実施することにより、ターボ符号を復調する。
受信装置30は、ターボ符号を復調すると、図1、図3又は図5のターボ符号復号装置を使用して、そのターボ符号を復号し(ステップST15)、その復号結果を例えば再生装置に出力する。
これにより、再生装置により復号結果の再生処理が実施されて(ステップST16)、情報源の再生が行われる。
The receiving
When demodulating the turbo code, receiving
As a result, the reproduction device performs reproduction processing of the decoding result (step ST16), and the information source is reproduced.
この実施の形態4によれば、受信装置30が図1、図3又は図5のターボ符号復号装置31を実装しているので、通信システムが情報長Kに対して安定した通信速度を保つことができ、受信装置30の消費電力や回路規模を抑えることができる効果を奏する。
According to the fourth embodiment, since the receiving
実施の形態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を使用して、そのターボ符号を復号する。
10 is a block diagram showing a communication system according to
In the figure, a
In the
The
この実施の形態5の場合も、基地局50が図1、図3又は図5のターボ符号復号装置51を実装しているので、上記実施の形態4と同様に、通信システムが情報長Kに対して安定した通信速度を保つことができ、基地局50の消費電力や回路規模を抑えることができる効果を奏する。
Also in the case of the fifth embodiment, since the
なお、上記実施の形態1〜5では、無線通信を実施する際に、ターボ符号復号装置がターボ符号を復号するものについて示したが、これに限るものではなく、一般的なディジタル情報処理を実施する際に、ターボ符号復号装置がターボ符号を復号するようにしてもよい。 In the first to fifth embodiments, the turbo code decoding device decodes the turbo code when performing wireless communication. However, the present invention is not limited to this, and general digital information processing is performed. In doing so, the turbo code decoding device may decode the turbo code.
実施の形態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とからなる。
In the first to fifth embodiments, when the decoding process is parallelized, the
例えば上記実施の形態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に相当する。
For example, when realizing the decoding process of the first embodiment, the interleave address generation table 61 holds the coefficients f1 and f2 specific to the information length in the second order polynomial (1) for determining the interleave. The interleave address generation table 61 also holds information α-specific parameters α (0) and δ necessary for the sequential calculation of the address A (t). At the time of interleaving, the
The memory selection initial table 65 includes parameters B (0), B (W), B (2W),..., B ((P− 1) × W), β (0), β (W), β (2W),..., Β ((P−1) × W), γ are held. The information
The
この構成の場合、制御部6がメモリ選択初期テーブル65を備え、情報選択制御部63がメモリ選択初期テーブル65のパラメータを用いてメモリ番号B(t)を逐次的に計算している。この構成では、パラメータを格納するためのメモリに相当するメモリ選択初期テーブル65が必要であった。
そこで、この実施の形態6では、制御部6の情報選択制御部(情報選択制御手段)66が、メモリ選択初期テーブル65のパラメータに代えて、インタリーブアドレス生成テーブル61の値を用いてメモリ番号B(t)を求めるようにする。
In the case of this configuration, the
Therefore, in the sixth embodiment, the information selection control unit (information selection control means) 66 of the
図12は、この発明の実施の形態6によるターボ符号復号装置を示す構成図であり、図1,3及び11と同一又は相当の部分については同一の符号を付す。ここでは、情報系列の情報長がN、要素復号器7の並列数がMであるとする。
この場合、M個の要素復号器7により並列に処理される並列化単位の長さがW=N/Mとなり、アドレス数もN/Mとなる。
FIG. 12 is a block diagram showing a turbo code decoding apparatus according to
In this case, the length of the parallelized unit processed in parallel by the
図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)を用いて、データの並べ替えを実施している。
FIG. 13 is an explanatory diagram schematically showing a memory configuration of the
At the time of interleaving, the correspondence changes between the
並列段数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の約数としている。
When the interleave address of the data stored in the
π (t + k × N / M) = π (t) + k × fx × N / M mod N (6)
Here, t = 0, 1,..., N / M−1, k = 0, 1,.
At this time, the memory number B (t) and the address (t) of the
B (t) = ceil (π (t) / W) (7)
A (t) = π (t) mod W (8)
Here, t = 0, 1,..., W−1, W = N / M, and M is a divisor of N.
したがって、制御部6のアドレス生成部62と情報選択制御部66が式(6)〜(8)を計算すれば、メモリ番号B(t)とアドレスA(t)を求めることができるが、式(6)〜(8)の計算では、乗算とmod(剰余)計算が必要となり、実装するには複雑性が高いものとなる。
そこで、この実施の形態6では、制御部6が上記実施の形態1〜5と同様にアドレスA(t)を簡易な計算で逐次的に算出するとともに、メモリ番号B(t)もアドレス算出のためのパラメータを用いて算出するようにしている。
Therefore, if the
Therefore, in the sixth embodiment, the
制御部6は、図12に示すように、インタリーブアドレス生成テーブル61、アドレス生成部62、情報選択制御部66及び動作制御部64から構成されている。これらインタリーブアドレス生成テーブル61、アドレス生成部62及び動作制御部64は、図11に示す各部と同一である。
なお、図11のインタリーブアドレス生成テーブル61は情報長Kに応じた係数f1,f2を保持するものであるが、この実施の形態におけるインタリーブアドレス生成テーブル61は情報長Nに応じた係数fxを保持するものとする。
As shown in FIG. 12, the
Note that the interleave address generation table 61 in FIG. 11 holds the coefficients f1 and f2 according to the information length K. However, the interleave address generation table 61 in this embodiment holds the coefficient fx according to the information length N. It shall be.
情報選択制御部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からデータを受ける。
The information
In this embodiment, since the interleave address is expressed by the following equation (9), the memory number B (t) of the
π (t + W) = π (t) + fx × W (9)
B (t) = A + (k−1) × fx mod M (10)
Here, A is one memory number B (t) used as a reference, and the data stored in the
For example, when the
情報選択制御部66は、上記のとおり、順方向処理のインタリーブ系列を求める際には式(10)を計算するが、順方向処理と同様にインタリーブアドレス生成テーブル61のfxを用いて、1つのメモリ番号に基づき、逆方向処理における残りのメモリ番号B(t)も求めることができる。
As described above, the information
図14は、実施の形態6によるターボ符号復号装置の処理内容を示すフローチャートである。アドレス生成部62(制御部6)がアドレスA(t)を算出する方法は上記実施の形態1〜5と同様であるので以下では説明を省略している。なお、図14では並列処理を明確にするため、並列数をMとして、順方向処理と逆方向処理を#1〜#Mで表している。 FIG. 14 is a flowchart showing the processing contents of the turbo code decoding apparatus according to the sixth embodiment. The method by which the address generation unit 62 (control unit 6) calculates the address A (t) is the same as that in the first to fifth embodiments, and thus the description thereof is omitted below. In FIG. 14, in order to clarify parallel processing, the number of parallel processes is represented by M, and forward processing and backward processing are represented by # 1 to #M.
まず、動作制御部64は、順方向処理と逆方向処理の繰り返し回数とメモリアクセスの初期設定を行うとともに、要素復号器7のメモリに格納されているパスメトリック値を初期化する。また、動作制御部64は、インタリーブ系列π(t)の生成に係るパラメータとして、情報長固有のパラメータ(α(0)、δ)をインタリーブアドレス生成テーブル61に設定する。
First, the
情報メモリ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に与える。
Reading from the
When the
On the other hand, the access during interleaving is random access according to an interleave sequence. That is, in order to perform forward processing or backward processing of the interleaved sequence, the
When the
また、パリティ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と同様であるので説明を省略する。
Further, the reading from the
On the other hand, at the time of interleaving decoding, the
Note that the process of decoding turbo codes by the # 1 to #
なお、図14では、非インタリーブ、インタリーブ、非インタリーブ、インタリーブ、・・・、非インタリーブ、インタリーブの順番で繰り返し復号を行う例を示しているが、非インタリーブとインタリーブは逆の順序でもよい。また、順方向、逆方向、順方向、逆方向の順番で処理しているが、順方向と逆方向は逆の順序でもよい。 14 shows an example in which iterative decoding is performed in the order of non-interleaving, interleaving, non-interleaving, interleaving,..., Non-interleaving, and interleaving, but non-interleaving and interleaving may be in reverse order. Further, the processing is performed in the order of the forward direction, the reverse direction, the forward direction, and the reverse direction, but the forward direction and the reverse direction may be reversed.
以上で明らかなように、この実施の形態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に相当するメモリが不要になり、メモリ量や回路規模をさらに小さく抑えることができる効果を奏する。
As is apparent from the above, according to the sixth embodiment, the
In addition, since the information
なお、この実施の形態6では、要素復号器7が順方向処理と逆方向処理を順番に実施するものについて示したが、要素復号器7が順方向処理と逆方向処理を同時に実施するようにしてもよい。
即ち、要素復号器7が順方向処理と逆方向処理を同時に実施する場合、順方向処理は並列化単位の最初からパスメトリック値を保存しながら処理を進め、逆方向処理は並列化単位の末尾からパスメトリック値を保存しながら処理を進める。
両方向から進んだトレリスが交差した先は、互いのパスメトリック値を読み出すことができるので、外部情報を算出することができる。
In the sixth embodiment, the
That is, when the
Since the trellises that have advanced from both directions cross each other, the mutual path metric values can be read out, so that external information can be calculated.
実施の形態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の約数としている。
In
In this case, if the information length is N, the t-th interleave sequence π (t) of the QPP interleaver is expressed by the following equation (11).
π (t) = f1 × t + f2 × t × t mod N (11)
However, f1 is an odd constant, and f2 is an even constant.
At this time, the memory number B (t) and the address (t) of the
B (t) = ceil (π (t) / W) (12)
A (t) = π (t) mod W (13)
Here, t = 0, 1,..., W−1, W = N / M, and M is a divisor of N.
したがって、制御部6のアドレス生成部62と情報選択制御部66が式(11)〜(13)を計算すれば、メモリ番号B(t)とアドレスA(t)を求めることができるが、式(11)〜(13)の計算では、乗算とmod(剰余)計算が必要となり、実装するには複雑性が高いものとなる。
そこで、この実施の形態7では、上記実施の形態1〜6と同様にメモリ番号B(t)及びアドレスA(t)を逐次的に算出するようにしている。アクセスするアドレスA(t)を計算するに際して、補助パラメータとしてα(t)を用意する。
Therefore, if the
Therefore, in the seventh embodiment, the memory number B (t) and the address A (t) are sequentially calculated as in the first to sixth embodiments. When calculating the access address A (t), α (t) is prepared as an auxiliary parameter.
ただし、以下のパラメータα(0),δは、計算量が大きいので、予めインタリーブアドレス生成テーブル61に格納しておくものとする。
α(0)=f1+f2 mod W
δ=2×f2 mod W
なお、パラメータα(0),δを計算して、その計算値を保持しておく分には、大きなメモリ量を必要としない。
However, since the following parameters α (0) and δ have a large calculation amount, they are stored in the interleave address generation table 61 in advance.
α (0) = f1 + f2 mod W
δ = 2 × f2 mod W
Note that a large amount of memory is not required for calculating the parameters α (0) and δ and holding the calculated values.
メモリインタフェース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)を変化させればよい。
The address A (t) of the
[Update of α (t)] α (t + 1) = α (t) + δ
If (α (t + 1) ≧ W)
α (t + 1) = α (t + 1) −W
[Update of A (t)] A (t + 1) = A (t) + α (t)
If (A (t + 1) ≧ W)
A (t + 1) = A (t + 1) −W
(14)
The
また、メモリインタフェース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との対応関係を表している。
Further, the memory number B (t) of the
B (t) = A + (k−1) × f1 mod M (15)
Here, A is one memory number B (t) used as a reference, and the data stored in the
For example, when the # 1
In this embodiment, parallel processing is performed in which the number M of parallel stages is four. In this case, the remainder obtained by dividing the value of the coefficient f1 by 4 becomes an odd number, and there are cases of 1 and 3. FIG. 15 shows a pattern of the memory number B (t) that the
また、メモリインタフェース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)を変化させればよい。
Further, the address A (t) of the
[Update of α (t)] If (α (t) ≧ δ)
α (t−1) = α (t) −δ
Else
α (t−1) = α (t) + W−δ
[Update of A (t)] If (A (t) ≧ α (t−1))
A (t−1) = A (t) −α (t−1)
Else
A (t-1) = A (t) + W- [alpha] (t-1)
(16)
The
また、メモリインタフェース5がアクセスする情報メモリ1のメモリ番号B(t)も、順方向の逐次的な操作と同様に情報選択制御部66がインタリーブアドレス生成テーブル61のf1を用いて、1つのメモリ番号に基づいて逆方向の逐次的な操作で求めることができる。
The memory number B (t) of the
以下、図14を援用しながら、制御部6がメモリインタフェース5を制御することによりインタリーブ系列と非インタリーブ系列を順番に生成させて、要素復号器7がターボ符号を復号する処理を説明する。
Hereinafter, a process in which the
まず、動作制御部64は、順方向処理と逆方向処理の繰り返し回数とメモリアクセスの初期設定を行うとともに、要素復号器7のメモリに格納されているパスメトリック値を初期化する。また、動作制御部64は、インタリーブ系列π(t)の生成に係るパラメータとして、情報長固有のパラメータ(α(0)、δ)をインタリーブアドレス生成テーブル61に設定する。
First, the
情報メモリ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に与える。
Reading from the
When the
On the other hand, the access during interleaving is random access according to an interleave sequence. That is, in order to perform forward processing or backward processing of the interleave sequence, the
When the
また、パリティ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と同様であるので説明を省略する。
In addition, reading from the
On the other hand, at the time of interleaving decoding, the
The process of decoding turbo codes by the # 1 to # 4
以上で明らかなように、この実施の形態7によれば、ターボ符号復号装置は、ターボ符号のインタリーバとしてQPP方式を採用し、並列数を2又は4とし、情報選択制御部66はインタリーブアドレス生成テーブル61に保持された情報長Nに応じた係数f1を用いて、1つの情報メモリ1のメモリ番号を基準に情報メモリ1の並び順を決定するように構成した。そのため、上記実施の形態1〜6と同様に、インタリーブ系列に依存するメモリアクセスを簡易な計算で逐次的に得ることができるため、インタリーブ系列を保持するためのメモリが不要になり、メモリ量や回路規模を小さく抑えることができる。
また、情報選択制御部66がインタリーブアドレス生成テーブル61に格納された情報を用いてメモリ番号を生成するようにしたため、QPP方式を用いるターボ符号復号装置においても上記実施の形態1〜5のメモリ選択初期テーブル65に相当するメモリが不要になり、メモリ量や回路規模をさらに小さく抑えることができる効果を奏する。
As is apparent from the above, according to the seventh embodiment, the turbo code decoding apparatus adopts the QPP method as the turbo code interleaver, sets the parallel number to 2 or 4, and the information
In addition, since the information
なお、この実施の形態7では、要素復号器7が順方向処理と逆方向処理を順番に実施するものについて示したが、要素復号器7が順方向処理と逆方向処理を同時に実施するようにしてもよい。
即ち、要素復号器7が順方向処理と逆方向処理を同時に実施する場合、順方向処理は並列化単位の最初からパスメトリック値を保存しながら処理を進め、逆方向処理は並列化単位の末尾からパスメトリック値を保存しながら処理を進める。
両方向から進んだトレリスが交差した先は、互いのパスメトリック値を読み出すことができるので、外部情報を算出することができる。
In the seventh embodiment, the
That is, when the
Since the trellises that have advanced from both directions cross each other, the mutual path metric values can be read out, so that external information can be calculated.
また、上記実施の形態6及び7によるターボ符号復号装置を、上記実施の形態3による並列化ターボ復号器10(図5)に適用してもよく、または上記実施の形態4による受信装置30に(図8)に実装してもよく、更には上記実施の形態5による基地局50(図10)に実装してもよい。このような構成とした場合であっても、上述した効果を奏する。
Further, the turbo code decoding apparatus according to the sixth and seventh embodiments may be applied to the parallel turbo decoder 10 (FIG. 5) according to the third embodiment, or the receiving
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 メモリ選択初期テーブル。
1 information memory (turbo code storage means), 2
Claims (14)
上記ターボ符号格納手段により格納されたターボ符号のインタリーブ系列及び非インタリーブ系列を生成する系列生成手段と、
上記系列生成手段により生成されたインタリーブ系列及び非インタリーブ系列に対する順方向処理と逆方向処理を繰り返し実施して、ターボ符号を並列に復号する並列数分の復号手段とを備えたターボ符号復号装置において、
上記系列生成手段は、
上記ターボ符号格納手段の並び順を決定するためのパラメータを保持するメモリ選択初期テーブルと、
インタリーブ系列を生成する多項式におけるターボ符号の情報長に応じた係数を予め保持するインタリーブアドレス生成テーブルと、
上記メモリ選択初期テーブルに保持されたパラメータと上記インタリーブアドレス生成テーブルに保持された係数を用いて加減算処理と比較計算処理を実施して、順方向処理と逆方向処理の、上記ターボ符号格納手段の並び順とアドレスを決定する情報選択制御手段と、
上記情報選択制御手段により決定された上記並び順で上記ターボ符号格納手段の上記アドレスに格納された各データを読み出して、順方向処理と逆方向処理のインタリーブ系列を生成するメモリインタフェースとを備えたことを特徴とするターボ符号復号装置。 Turbo code storage means for dividing a turbo code received sequence into a number of parallel numbers and storing it,
Sequence generating means for generating an interleaved sequence and a non-interleaved sequence of turbo codes stored by the turbo code storing unit ;
In a turbo code decoding apparatus comprising: a parallel number of decoding means for decoding turbo codes in parallel by repeatedly performing forward processing and backward processing on interleaved sequences and non-interleaved sequences generated by the sequence generating means ,
The series generation means includes
A memory selection initial table holding parameters for determining the arrangement order of the turbo code storage means;
An interleave address generation table that holds in advance a coefficient corresponding to the information length of a turbo code in a polynomial for generating an interleave sequence;
Using the parameters held in the memory selection initial table and the coefficients held in the interleave address generation table, addition / subtraction processing and comparison calculation processing are performed, and forward processing and backward processing of the turbo code storage means Information selection control means for determining the arrangement order and address;
A memory interface that reads out each data stored in the address of the turbo code storage unit in the arrangement order determined by the information selection control unit and generates an interleaved sequence of forward processing and backward processing; The turbo code decoding apparatus characterized by the above-mentioned.
複数の復号手段が上記系列生成手段により生成されたインタリーブ系列及び非インタリーブ系列に対する順方向処理と逆方向処理を繰り返し実施して、ターボ符号を並列に復号する復号ステップとを備えたターボ符号復号方法において、
上記系列生成ステップは、
メモリインタフェースが、ターボ符号の受信系列を並列数の個数に分割してターボ符号格納手段に格納する格納ステップと、
情報選択制御手段が、メモリ選択初期テーブルに予め保持されている、上記ターボ符号格納手段の並び順を決定するためのパラメータと、インタリーブアドレス生成テーブルに予め保持されている、インタリーブ系列を生成する多項式におけるターボ符号の情報長に応じた係数を用いて加減算処理と比較計算処理を実施して、順方向処理と逆方向処理の、上記ターボ符号格納手段の並び順とアドレスを決定する情報選択制御ステップと、
上記メモリインタフェースが、上記情報選択制御ステップで決定された上記並び順で上記ターボ符号格納手段の上記アドレスに格納された各データを読み出して、順方向処理と逆方向処理のインタリーブ系列を生成するインタリーブ系列生成ステップとから成ることを特徴とするターボ符号復号方法。 A sequence generation step in which the sequence generation means generates an interleaved sequence and a non-interleaved sequence of the turbo code; and
A turbo code decoding method comprising: a decoding step in which a plurality of decoding means repeatedly perform forward processing and reverse processing on the interleaved sequence and non-interleaved sequence generated by the sequence generating unit, and decode turbo codes in parallel In
The series generation step includes
A storage step in which the memory interface divides the reception sequence of the turbo code into a number of parallel numbers and stores it in the turbo code storage means;
Parameters for determining the order of arrangement of the turbo code storage means stored in the memory selection initial table in advance by the information selection control means, and polynomials for generating an interleave sequence held in advance in the interleave address generation table Information selection control step for determining the arrangement order and address of the turbo code storage means of forward processing and backward processing by performing addition / subtraction processing and comparison calculation processing using a coefficient corresponding to the information length of the turbo code in When,
An interleaving in which the memory interface reads out each data stored at the address of the turbo code storage means in the arrangement order determined in the information selection control step, and generates an interleave sequence of forward processing and backward processing; A turbo code decoding method comprising: a sequence generation step.
上記ターボ符号復号装置の上記系列生成手段は、
上記ターボ符号格納手段の並び順を決定するためのパラメータを保持するメモリ選択初期テーブルと、
インタリーブ系列を生成する多項式におけるターボ符号の情報長に応じた係数を予め保持するインタリーブアドレス生成テーブルと、
上記メモリ選択初期テーブルに保持されたパラメータと上記インタリーブアドレス生成テーブルに保持された係数を用いて加減算処理と比較計算処理を実施して、順方向処理と逆方向処理の、上記ターボ符号格納手段の並び順とアドレスを決定する情報選択制御手段と、
上記情報選択制御手段により決定された上記並び順で上記ターボ符号格納手段の上記アドレスに格納された各データを読み出して、順方向処理と逆方向処理のインタリーブ系列を生成するメモリインタフェースとを備えたことを特徴とする通信システム。 A turbo code is generated by turbo-coding an information source, a transmitter that modulates the turbo code and transmits a modulated wave, a modulated wave transmitted from the transmitter is received, and a turbo code is demodulated from the modulated wave In the communication system comprising the receiving device, the receiving device stores turbo code storage means for the number of parallel stores of the demodulated turbo code, and interleave sequences and non-interleaved turbo codes stored by the turbo code storage means. A sequence generation unit that generates a sequence, and a forward number process and a reverse direction process for the interleaved sequence and the non-interleaved sequence generated by the sequence generation unit are repeatedly performed, and a plurality of parallel codes for decoding the turbo code in parallel A turbo code decoding device including decoding means,
The sequence generation means of the turbo code decoding device comprises:
A memory selection initial table holding parameters for determining the arrangement order of the turbo code storage means;
An interleave address generation table that holds in advance a coefficient corresponding to the information length of a turbo code in a polynomial for generating an interleave sequence;
Using the parameters held in the memory selection initial table and the coefficients held in the interleave address generation table, addition / subtraction processing and comparison calculation processing are performed, and forward processing and backward processing of the turbo code storage means Information selection control means for determining the arrangement order and address;
A memory interface that reads out each data stored in the address of the turbo code storage unit in the arrangement order determined by the information selection control unit and generates an interleaved sequence of forward processing and backward processing; communication system, characterized in that.
情報選択制御手段は、インタリーブ系列を生成する多項式が下記式で表現され、係数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である。 The turbo code storage means for the parallel number M includes information series and check series data of information length N for each N / M word in order from the head, from address 0 to address N / M− of each turbo code storage means. 1 and store
The information selection control means uses the coefficient fx corresponding to the information length N held in the interleave address generation table when the polynomial that generates the interleave sequence is expressed by the following formula and the coefficient fx is a value that does not depend on t. 12. The turbo code decoding apparatus according to claim 11, wherein the order of arrangement of the turbo code storage means is determined on the basis of one turbo code storage means.
π (t + k × N / M) = π (t) + k × fx × (N / M) mod N
Here, t = 0, 1,..., N / M−1, k = 0, 1,.
情報選択制御手段は、インタリーブ系列を生成する多項式が下記式で表現される場合に、インタリーブアドレス生成テーブルに保持された情報長Nに応じた係数f1を用いて、1つのターボ符号格納手段を基準に並列数2分又は並列数4分のターボ符号格納手段の並び順を決定することを特徴とする請求項12記載のターボ符号復号装置。
π(t)=f1×t+f2×t×t mod N
ここで、t=0,1,・・・,N−1、f1は奇数の定数、f2は偶数の定数である。 When QPP method is adopted as an interleaver for turbo code and the parallel number is 2 or 4,
The information selection control means uses a coefficient f1 corresponding to the information length N held in the interleave address generation table as a reference for one turbo code storage means when the polynomial for generating the interleave sequence is expressed by the following equation: 13. The turbo code decoding apparatus according to claim 12, wherein the arrangement order of the turbo code storage means for 2 minutes in parallel or 4 minutes in parallel is determined.
π (t) = f1 × t + f2 × t × t mod N
Here, t = 0, 1,..., N−1, f1 is an odd constant, and f2 is an even constant.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008220232A JP4874312B2 (en) | 2007-09-20 | 2008-08-28 | Turbo code decoding apparatus, turbo code decoding method, and communication system |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007244163 | 2007-09-20 | ||
JP2007244163 | 2007-09-20 | ||
JP2008220232A JP4874312B2 (en) | 2007-09-20 | 2008-08-28 | Turbo code decoding apparatus, turbo code decoding method, and communication system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009095008A JP2009095008A (en) | 2009-04-30 |
JP4874312B2 true JP4874312B2 (en) | 2012-02-15 |
Family
ID=40666472
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008220232A Active JP4874312B2 (en) | 2007-09-20 | 2008-08-28 | Turbo code decoding apparatus, turbo code decoding method, and communication system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4874312B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013150365A (en) * | 2007-11-26 | 2013-08-01 | Motorola Mobility Llc | Data interleaving circuit and method for vectorized turbo decoder |
Families Citing this family (8)
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 (en) * | 2009-12-25 | 2011-07-07 | Mitsubishi Electric Corp | Device and method for correcting and decoding error of turbo code |
EP2538345A1 (en) * | 2010-02-16 | 2012-12-26 | Nec Corporation | Fast fourier transform circuit |
WO2011111654A1 (en) * | 2010-03-08 | 2011-09-15 | 日本電気株式会社 | Error correcting code decoding device, error correcting code decoding method and error correcting code decoding program |
JP5692780B2 (en) | 2010-10-05 | 2015-04-01 | 日本電気株式会社 | Multi-core type error correction processing system and error correction processing device |
JP2014011627A (en) * | 2012-06-29 | 2014-01-20 | Mitsubishi Electric Corp | Error correction decoder having internal interleaving |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007081640A (en) * | 2005-09-13 | 2007-03-29 | Matsushita Electric Ind Co Ltd | Turbo decoder and turbo decoding method |
US7873893B2 (en) * | 2007-02-28 | 2011-01-18 | Motorola Mobility, Inc. | Method and apparatus for encoding and decoding data |
-
2008
- 2008-08-28 JP JP2008220232A patent/JP4874312B2/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013150365A (en) * | 2007-11-26 | 2013-08-01 | Motorola Mobility Llc | Data interleaving circuit and method for vectorized turbo decoder |
Also Published As
Publication number | Publication date |
---|---|
JP2009095008A (en) | 2009-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4874312B2 (en) | Turbo code decoding apparatus, turbo code decoding method, and communication system | |
May et al. | A 150Mbit/s 3GPP LTE turbo code decoder | |
JP3861084B2 (en) | Hybrid turbo / convolutional code decoder, especially for mobile radio systems | |
KR100955305B1 (en) | Formulaic flexible collision-free memory accessing for parallel turbo decoding with quadratic polynomial permutationqpp interleave | |
JP2003528477A (en) | Partitioned deinterleaver memory for map decoder | |
US9048877B2 (en) | Turbo code parallel interleaver and parallel interleaving method thereof | |
JP2006115145A (en) | Decoding device and decoding method | |
JP5840741B2 (en) | Method and apparatus for programmable decoding of multiple code types | |
JP5700035B2 (en) | Error correction code decoding apparatus, error correction code decoding method, and error correction code decoding program | |
US20100131829A1 (en) | Scheduling data with time diversity in flow systems | |
US7573962B1 (en) | Diversity code combining scheme for turbo coded systems | |
JP4131680B2 (en) | Turbo decoder | |
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 (en) | Error-correcting and decoding device | |
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 (en) | Method and device for receiving data | |
JP4991481B2 (en) | Iterative decoding apparatus and iterative decoding method | |
KR20050122521A (en) | Parallel decoding method for turbo decoding and turbo decoder using the same | |
JP2002198829A (en) | Decoder and decoding method | |
JP2006280010A (en) | Decoding device and decoding method | |
JP2007006541A (en) | Error-correcting code decoding device |
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 |