JP4308226B2 - Error correction coding device - Google Patents
Error correction coding device Download PDFInfo
- Publication number
- JP4308226B2 JP4308226B2 JP2006168226A JP2006168226A JP4308226B2 JP 4308226 B2 JP4308226 B2 JP 4308226B2 JP 2006168226 A JP2006168226 A JP 2006168226A JP 2006168226 A JP2006168226 A JP 2006168226A JP 4308226 B2 JP4308226 B2 JP 4308226B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- unit
- sequence
- error correction
- bit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Landscapes
- Detection And Prevention Of Errors In Transmission (AREA)
- Detection And Correction Of Errors (AREA)
- Error Detection And Correction (AREA)
Description
本発明は、符号化装置に係わり、特に、誤り訂正符号に係わる。 The present invention relates to an encoding apparatus, and more particularly to an error correction code.
符号化技術は、様々な分野において広く利用されている。例えば、データ伝送においては、送信元装置が伝送すべきデータを符号化して通信路に送出し、受信装置がその符号化されているデータを受信して復号する。また、データを記憶装置に保存する際には、データは、符号化されてディスクなどに書き込まれる。そして、符号化されているデータは、そのディスクから読み出される際に復号される。なお、符号化とは、一般には、情報源データ系列を異なるデータ系列に変換することをいい、また、その変換によって得られる新しいデータ系列を符号という。 Encoding technology is widely used in various fields. For example, in data transmission, data to be transmitted by a transmission source device is encoded and transmitted to a communication path, and a reception device receives and decodes the encoded data. When data is stored in a storage device, the data is encoded and written to a disk or the like. The encoded data is decoded when it is read from the disk. Note that encoding generally refers to converting an information source data sequence into a different data sequence, and a new data sequence obtained by the conversion is referred to as a code.
ところで、符号化されたデータを伝送する際、その通信路においてエラーが発生することがある。また、符号化されたデータを格納する記憶装置からそのデータを読み出して再生する際にも、エラーが発生し得る。このようなエラーの発生を検出するため、或いはそのエラーを訂正するために、誤り訂正符号がしばしば使用されている。 Incidentally, when encoded data is transmitted, an error may occur in the communication path. An error may also occur when reading and reproducing the data from the storage device that stores the encoded data. In order to detect the occurrence of such an error or to correct the error, an error correction code is often used.
誤り訂正符号の1つとして、畳込み符号が知られている。畳込み符号では、nビットのデータが入力される毎に、そのnビットのデータ及びそのnビットのデータの直前に入力されたsビットのデータに従って決まるm(m>n)ビットのデータが出力される。すなわち、畳込み符号では、伝送すべきデータに対して、「m−n」ビットのデータが誤り訂正のために付与される。このことにより、データの冗長性が増加するので、復号時の復号誤り率を低くすることができる。 A convolutional code is known as one of error correction codes. In the convolutional code, every time n bits of data are input, m (m> n) bits of data determined according to the n bits of data and the s bits of data input immediately before the n bits of data are output. Is done. That is, in the convolutional code, “mn” bits of data are added for error correction to the data to be transmitted. This increases the redundancy of data, so that the decoding error rate at the time of decoding can be lowered.
なお、伝送すべきデータの量(ソースデータのビット数)と、符号化によって得られるデータの量(出力データのビット数)との比率は、一般に符号化率(または、情報率)Rと呼ばれ、下式により与えられる。
R = n/m
この符号化率Rは、誤り訂正符号においては、常に1よりも小さい。また、一般に、符号化率Rは、復号装置における誤り訂正能力を決めるパラメータの1つである。たとえば、符号化率Rが小いと、誤り訂正能力は高くなる。
The ratio between the amount of data to be transmitted (the number of bits of source data) and the amount of data obtained by encoding (the number of bits of output data) is generally called a coding rate (or information rate) R. Is given by:
R = n / m
This coding rate R is always smaller than 1 in the error correction code. In general, the coding rate R is one of the parameters that determines the error correction capability in the decoding apparatus. For example, when the coding rate R is small, the error correction capability is high.
図20は、畳込み符号を用いた既存の誤り訂正符号化装置の一例のブロック図である。この誤り訂正符号化装置500は、互いに並列に設けられた2つの畳込み部501および502を備える。このように、互いに並列に設けられた複数の畳込み部を備える符号化装置は、しばしば、「ターボ符号化装置」と呼ばれている。
FIG. 20 is a block diagram of an example of an existing error correction coding apparatus using a convolutional code. This error
誤り訂正符号化装置500は、ソースデータdに対して、データ系列x、及びそのデータ系列xを訂正するためのパリティデータ系列y1、y2を生成する。データ系列x、パリティデータ系列y1、y2は、多重化されて出力される。そして、この出力がソースデータdの符号化データである。以下では、Nビットのソースデータdを符号化する際の動作を説明する。
The error
ソースデータdは、そのままデータ系列xとして出力されるとともに、畳込み部501およびインターリーバ503に与えられる。畳込み部501は、ソースデータdに対して畳込み符号化を実行してパリティデータ系列y1を出力する。インターリーバ503は、入力されたNビットのソースデータdをいったん保持し、その後に入力順序と異なる順序でその保持されているソースデータdを読み出して出力する。このことにより、ソースデータdはランダム化される。インターリーバ503の出力は、畳込み部502に対して与えられる。そして、畳込み部502は、そのインターリーバ503の出力に対して畳込み符号化を実行してパリティデータ系列y2を出力する。
The source data d is output as it is as a data series x and is given to the
上記動作により、誤り訂正符号化装置500は、Nビットのソースデータdに対して、Nビットのデータ系列x、Nビットのパリティデータ系列y1、およびNビットのパリティデータ系列y2を生成する。これらのデータ系列x、パリティデータ系列y1、y2は、例えば、ビット毎に多重化されて符号化データとして出力される。従って、この場合、誤り訂正符号化装置500は、Nビットの入力に対して3×Nビットのデータを出力するので、その符号化率Rは、1/3となる。
With the above operation, error
図21は、図20に示した誤り訂正符号化装置の変形例のブロック図である。誤り訂正符号化装置510は、図20に示した誤り訂正符号化装置500に対して選択部511を設けることにより実現される。選択部511は、予め決められている選択パターンに従って、畳込み部501および502によりそれぞれ生成されるパリティデータ系列y1およびy2を選択してパリティデータ系列Zとして出力する。尚、選択部511の動作は、「パンクチャリング(Puncturing)」と呼ばれることがある。
FIG. 21 is a block diagram of a modification of the error correction coding apparatus shown in FIG. Error
選択部511は、畳込み部501および502の出力を交互に1ビットずつ選択する。選択部511の出力系列Zを表1に示す。ここで、「y1(i) 」は、ソースデータdの第i番目のデータエレメントに対応する畳込み部501の出力であり、「y2(i) 」は、ソースデータdの第i番目のデータエレメントに対応する畳込み部502の出力である。このように、選択部511は、誤り訂正符号化装置510にNビットのソースデータdが入力されると、Nビットの出力系列Z(y1(1) ,y2(2) ,y1(3) ,y2(4) ,..,y1(N-1) ,y2(N) )を出力する。
The
上記構成により、誤り訂正符号化装置510は、Nビットのソースデータdに対して、Nビットのデータ系列x、およびNビットのパリティデータ系列Zを生成する。これらのデータ系列xおよびパリティデータ系列Zは、ビット毎に多重化されて符号化データとして出力される。従って、この場合、誤り訂正符号化装置510は、Nビットの入力に対して2×Nビットのデータを出力するので、その符号化率Rは、1/2となる。
With the above configuration, error
なお、図20および図21に示した誤り訂正符号化装置については、米国特許5446747に詳しく開示されている。 The error correction coding apparatus shown in FIGS. 20 and 21 is disclosed in detail in US Pat. No. 5,446,747.
ところで、ソースデータdのデータ長N(ビット数)に対する符号化装置の出力系列のデータ長Mを任意の長さにしたい、という要求がある。たとえば、移動体通信システムにおいては、一般に、所定のデータ長ごとに分割された音声データ等が予め決められたデータ長のフレームの中に格納されて伝送される。すなわち、移動体通信システムにおいて符号を使用する場合には、所定のデータ長ごとに分割された音声データ等は、符号化された後にフレームの中に格納される。 By the way, there is a demand to make the data length M of the output sequence of the encoding device with respect to the data length N (number of bits) of the source data d arbitrary. For example, in a mobile communication system, generally, audio data or the like divided for each predetermined data length is stored and transmitted in a frame having a predetermined data length. That is, when a code is used in a mobile communication system, audio data or the like divided for each predetermined data length is encoded and stored in a frame.
ところが、図20または図21に示した従来の誤り訂正符号化装置の符号化率Rはそれぞれ固定されていた。したがって、予め決められた固定長のデータ(上述の例では、フレーム)を作成する場合、そのフレームのデータ格納領域を満たすためには、そこに無意味な情報を格納しなければならなかった。 However, the coding rate R of the conventional error correction coding apparatus shown in FIG. 20 or FIG. 21 is fixed. Therefore, when creating data of a predetermined fixed length (a frame in the above example), meaningless information has to be stored in the data storage area of the frame.
図22(a)は、図20に示す誤り訂正符号化装置500を使用してソースデータを符号化して固定長のフレームに格納する場合の処理を説明する図である。ここでは、ソースデータdが333ビット、また、フレームのデータ格納領域が1500ビットである。この場合、誤り訂正符号化装置500は、333ビットのデータ系列x、333ビットのパリティデータ系列y1、および333ビットのパリティデータ系列y2を生成するので、フレームのデータ格納領域を満たすためには、図22(b)に示すように、501ビットのダミーデータをそのフレームに格納しなければならない。従って、網を介してそのフレームを伝送すると、無駄なデータが伝送されることになり、網資源が浪費されてしまう。
FIG. 22A is a diagram for explaining processing when the source data is encoded using the error correction encoding
図23(a)は、図21に示す誤り訂正符号化装置510を使用してソースデータを符号化して固定長のフレームに格納する場合の処理を説明する図である。ここでは、ソースデータdが666ビット、フレームのデータ格納領域が1500ビットである。この場合、選択部511は、パンクチャリング処理により、パリティデータ系列y1およびパリティデータ系列y2からパリティデータ系列Zを生成する。したがって、誤り訂正符号化装置510は、666ビットのデータ系列x、および666ビットのパリティデータ系列Zを生成するので、フレームのデータ格納領域を満たすためには、図23(b)に示すように、168ビットのダミーデータをそのフレームに格納しなければならない。したがって、図22に示した例と同様に、無駄なデータが伝送されることになる。
FIG. 23A is a diagram for explaining processing when the source data is encoded using the error
このように、互いに並列に設けられた複数の畳込み部を備える既存の誤り訂正符号化装置は、その符号化率を所望の値に設定できなかったので、ソースデータを符号化して所定のフレームに格納する際、その効率が悪かった。 As described above, since the existing error correction encoding apparatus including a plurality of convolution units provided in parallel with each other cannot set the encoding rate to a desired value, the source data is encoded to generate a predetermined frame. The efficiency was poor when storing in
本発明の課題は、互いに並列に設けられた複数の畳込み部を備える誤り訂正符号化装置において所望の符号化率が得られるようにすることである。 An object of the present invention is to obtain a desired coding rate in an error correction coding apparatus including a plurality of convolution units provided in parallel to each other.
本発明の符号化装置は、ソースデータを符号化して第1のパリティデータを生成する第1のエンコーダと、上記ソースデータについてインターリーブ処理を行ってランダム化データを生成するインターリーバと、上記ランダム化データを符号化して第2のパリティデータを生成する第2のエンコーダと、上記ソースデータのデータ長および送信フレームに含まれる出力系列のデータ長に基づいて決まる符号化率に対応して決定されるビット数のデータエレメントを上記第1および第2のパリティデータから各々同数又はほぼ同数選択して第1および第2の選択データを生成する選択手段と、を有する。 The encoding apparatus of the present invention includes a first encoder that encodes source data to generate first parity data, an interleaver that performs interleaving processing on the source data to generate randomized data, and the randomization A second encoder that encodes data to generate second parity data, and a coding rate that is determined based on the data length of the source data and the data length of the output sequence included in the transmission frame. Selecting means for selecting first and second selection data by selecting the same number or almost the same number of data elements of the number of bits from the first and second parity data, respectively;
ソースデータを符号化する誤り訂正符号化装置において、所望の符号化率(情報率)が得られる。したがって、この装置を通信システムに利用すれば、無意味なデータを伝送する必要がなくなるので、伝送効率が向上するとともに、復号特性が向上する。 In an error correction coding apparatus that codes source data, a desired coding rate (information rate) can be obtained. Therefore, if this apparatus is used in a communication system, it is not necessary to transmit meaningless data, so that transmission efficiency is improved and decoding characteristics are improved.
本発明の誤り訂正符号化装置は、様々な分野に適用可能であり、たとえば、通信システムや、データ記憶装置において利用され得る。
図1は、本実施形態の誤り訂正符号化装置が適用される移動体通信システムの構成図である。無線方式は、例えば、CDMAである。基地局10は、移動機20へ送出すべきデータ(データA)を符号化するエンコーダ11、符号化されたデータを変調する変調器12、および変調されたデータを送信する送信機13を備える。基地局10から送出された無線信号は、移動機20の受信機21により受信され、復調器22により復調され、そしてデコーダ23により復号される。また、基地局10は、移動機20から送られてくる信号を受信する受信機14、受信信号を復調する復調器15、および復調されたデータを復号するデコーダ16を備える。なお、移動機20は、基地局10へ送出すべきデータ(データB)をエンコーダ24を用いて符号化し、変調器25を用いて変調し、そして送信機26を用いて送信する。
The error correction coding apparatus of the present invention can be applied to various fields, and can be used in, for example, a communication system and a data storage device.
FIG. 1 is a configuration diagram of a mobile communication system to which the error correction coding apparatus of the present embodiment is applied. The radio system is, for example, CDMA. The
上記通信システムにおいて、本実施形態の誤り訂正符号化装置は、基地局10に設けられるエンコーダ11または移動機20に設けられるエンコーダ24に相当する。
図2は、本実施形態の誤り訂正符号化装置が適用される記憶装置の構成図である。この記憶装置30は、データ格納部33に書き込むべきデータを符号化するエンコーダ31、符号化されたデータをデータ格納部33に書き込む書込み制御部32を備える。データ格納部33は、たとえば、光ディスク、磁気ディスク、半導体メモリなどの記憶媒体を含む。また、記憶装置30は、データ格納部33からデータを読み出す読出し制御部34、および読み出されたデータを復号するデコーダ35を備える。
In the communication system, the error correction coding apparatus according to the present embodiment corresponds to the
FIG. 2 is a configuration diagram of a storage device to which the error correction coding apparatus of this embodiment is applied. The
上記記憶装置において、本実施形態の誤り訂正符号化装置は、エンコーダ31に相当する。
図3は、本発明の一実施形態の誤り訂正符号化装置のブロック図である。この誤り訂正符号化装置の基本的な構成は、図21に示した従来の誤り訂正符号化装置と同じである。本実施形態の誤り訂正符号化装置のパンクチャリング部は、図21に示した従来の誤り訂正符号化装置の選択部511に対応する。但し、このパンクチャリング部は、選択部511とは異なる機能を備える。本実施形態の誤り訂正符号化装置は、パンクチャリング処理により所望の符号化率を実現する。以下、本実施形態の誤り訂正符号化装置の構成および動作について説明する。
In the above storage device, the error correction coding device of this embodiment corresponds to the encoder 31.
FIG. 3 is a block diagram of an error correction coding apparatus according to an embodiment of the present invention. The basic configuration of this error correction encoding apparatus is the same as that of the conventional error correction encoding apparatus shown in FIG. The puncturing unit of the error correction encoding apparatus of the present embodiment corresponds to the
誤り訂正符号化装置40は、組織符号を用いてソースデータuを符号化する。組織符号では、伝送すべきデータと、そのデータを伝送する際に発生するエラーを訂正するためのデータ(以下では、「パリティデータ」と呼ぶ)とが互いに分離されている。すなわち、誤り訂正符号化装置40は、ソースデータuを受け取ると、そのソースデータuにパリティデータzを付加して出力する。なお、誤り訂正符号化装置40は、Nビットのソースデータuを符号化する。また、誤り訂正符号化装置40は、ソースデータuを「データ系列Xk 」として出力する。パリティデータを「パリティデータ系列Zk 」として出力する。
The error
入力I/F部41は、受信したソースデータuを多重化部47、第1の畳込み部43、およびインターリーバ42に与える。なお、入力I/F部41から多重化部47に与えられるソースデータuのことを「データ系列Xk 」と呼ぶ。
The input I / F unit 41 provides the received source data u to the
インターリーバ42は、入力されたソースデータuをランダム化する。インターリーバ42は、Nビットのソースデータuを一時的に保持するためのメモリを備える。入力されたNビットのソースデータuは、1ビットずつそのメモリに書き込まれる。そして、そのメモリに書き込まれたデータは、そのメモリへの書き込み順序とは異なる順序で1ビットずつ読み出される。このことにより、ソースデータuはランダム化される。
The
なお、インターリーバ42を設けた目的は、畳込み部43および44に対して互いに異なる独立したデータ系列を与えることである。したがって、図3においては、第2の畳込み部44の前段にのみインターリーバを設けているが、第1の畳込み部43および第2の畳込み部44に対してそれぞれインターリーバを設けてもよい。ただし、その場合には、それら2つのインターリーバにより実行されるランダム化処理が互いに異なっている必要がある。
The purpose of providing the
第1の畳込み部43は、入力されたソースデータuに対して畳込み処理を実行する。一方、第2の畳込み部44は、インターリーバ42によってランダム化されたソースデータuに対して畳込み処理を実行する。第1の畳込み部43および第2の畳込み部44は、互いに同じ構成であってもよいし、互いに異なる構成であってもよい。以下では、これら2つの畳込み部43、44の構成が互いに同じであるものとする。
The
第1の畳込み部43は、互いに直列に接続された複数のメモリM、および1つ以上の加算機を備える。各メモリMは、たとえば、フリップフロップであり、それぞれ1ビットのデータを保持する。直列に接続されたメモリMは、シフトレジスタを構成する。加算機は、例えば、排他論理和演算器、又はmod2加算機である。図3に示す構成では、第1の畳込み部43は、2つのメモリM、および3つの加算機を備える。この場合、メモリMにより保持されるデータ量が2ビットなので、拘束長=2である。なお、この明細書では、畳込み回路の拘束長=畳込み回路のメモリに格納されるデータのビット数とする。
The
第1の畳込み部43は、ソースデータuのデータエレメントを受け取る毎に、その受け取ったデータエレメントに対応するパリティデータ系列Y1kのデータエレメントを出力する。パリティデータY1kのデータエレメントは、第1の畳込み部43へ新たに入力されたデータエレメントと、そのデータエレメントが入力されたタイミングにおいて上記メモリMに保持されているデータエレメントとの和によって得られる。すなわち、この畳込み処理では、新たに入力されたデータエレメントに対応するデータエレメントは、先に入力されている1以上のデータエレメントおよびその新たに入力されたデータエレメントに基づいて生成されて出力される。
Each time the
第1の畳込み部43の各メモリMには、それぞれ初期値として「0」が設定される。そして、第1の畳込み部43は、Nビットのデータ系列が入力されると、Nビットのパリティデータ系列を出力し、さらにそのパリティデータ系列に続いて終結ビット(tail bit)を出力する。終結ビットのデータ長は、例えば、メモリMの数と同じであり、「2」である。
Each memory M of the
第2の畳込み部44の構成および動作は、基本的に上述した第1の畳込み部43の構成および動作と同じである。但し、第2の畳込み部44は、インターリーバ42によってランダム化されたソースデータuに対して畳込み処理を実行し、パリティデータ系列Y2kを生成する。
The configuration and operation of the
なお、畳込み処理は、既知の技術であり、当業者にはよく知られているので、ここではその詳細な説明は省略する。
第1のパンクチャリング部45は、第1の畳込み部43により生成されるパリティデータ系列Y1kの各データエレメントを予め決められたパターンに従って選択し、パリティデータ系列Z1kとして出力する。同様に、第2のパンクチャリング部46は、第2の畳込み部44により生成されるパリティデータ系列Y2kの各データエレメントを予め決められたパターンに従って選択し、パリティデータ系列Z2kとして出力する。図3に示す畳込み符号化装置40の特徴は、これらのパンクチャリング部によるデータエレメントの選択方法である。データエレメントの選択方法については、後述詳しく説明する。
Note that the convolution process is a known technique and is well known to those skilled in the art, so a detailed description thereof will be omitted here.
The
多重化部47は、入力I/F部41から与えられるデータ系列Xk 、第1のパンクチャリング部45から与えられるパリティデータ系列Z1k、および第2のパンクチャリング部46から与えられるパリティデータ系列Z2kを多重化して出力する。この多重化部47からの出力系列Cは、ソースデータuに対する符号化データである。なお、多重化部47は、入力される3つのデータ系列のタイミングを調整する機能を備えている。これにより、ソースデータu(データ系列Xk )の各データエレメントが出力される際には、そのソースデータuのデータエレメントに対応するパリティデータ系列Z1kおよびZ2kの各データエレメントがそのソースデータのデータエレメントに関連づけられて出力される。
The multiplexing
このように、誤り訂正符号化装置40は、ソースデータuが入力されると、そのソースデータuのデータ系列と同じデータ系列であるデータ系列Xk に、誤り訂正のためのパリティデータ系列Z1kおよびZ2kを付与して出力する。
As described above, when the source data u is input, the error
次に、第1のパンクチャリング部45および第2のパンクチャリング部46の動作を構成および説明する。ここでは、ソースデータuのデータ長がNビットであり、出力系列Cのデータ長がMビットであることが予め決められているものとする。この場合、誤り訂正符号化装置40は、符号化率=N/Mが要求される。ソースデータuおよび出力系列Cのデータ長は、たとえば、この誤り訂正符号化装置が通信システムにおいて利用される場合には、その通信システムの仕様により決定される。特に、出力系列Cのデータ長は、その通信システムで伝送されるフレームのフォーマットにより決められる。
Next, the operations of the
図4は、第1のパンクチャリング部45のブロック図である。なお、第2のパンクチャリング部46も基本的に同じ構成である。
ラッチ回路51は、第1の畳込み部43から出力されるパリティデータ系列Y1kを1ビットずつ保持する。すなわち、ラッチ回路51は、第1の畳込み部43からパリティデータ系列Y1kのデータエレメントが出力される毎に更新される。CPU52は、メモリ53に格納されているプログラムを実行することにより、ラッチ回路51に保持されているデータエレメントからパリティデータZ1kのデータエレメントを生成する。パリティデータZ1kデータエレメントは、出力ポート54を介して多重化部47へ送出される。
FIG. 4 is a block diagram of the
The
メモリ53は、CPU52により実行されるプログラム、およびそのプログラムにより利用されるパンクチャリングテーブルを格納する。このプログラムについては、後述説明する。
The
図5は、パンクチャリングテーブルの一例を示す図である。パンクチャリングテーブルは、パリティデータ系列Y1kの各データエレメントを選択するか否かを表す選択情報(パンクチャリングパターン情報)を格納する。したがって、この選択情報のデータ長は、第1の畳込み部43からの出力データ系列のデータ長と同じになる。第1の畳込み部43は、ソースデータuのデータ長がNビットである場合には、Nビットのパリティデータ系列Z1kを出力する。したがって、この場合、選択情報のデータ長も、Nビットになる。
FIG. 5 is a diagram illustrating an example of a puncturing table. The puncturing table stores selection information (puncturing pattern information) indicating whether to select each data element of the parity data sequence Y1k. Therefore, the data length of this selection information is the same as the data length of the output data series from the
なお、第1の畳込み部43は、ソースデータuを受信すると、パリティデータ系列Y1kを出力し、その後に終結ビットを出力する。ただし、この終結ビットに対してはパンクチャリング処理を実行しない。すなわち、この終結ビットは、パンクチャリング部に入力されることなく、多重化部47へ送られる。
When the
図5において、選択情報=「0」は、入力データエレメントを選択しないことを表し、選択情報=「1」は、入力データエレメントを選択することを表す。例えば、図5に示す選択情報は、入力データ系列から、第2番目、第4番目、第5番目、...、N番目のデータエレメントを選択する旨を規定している。すなわち、このパンクチャリングテーブルを用いてパンクチャリング処理が実行されると、パリティデータ系列Y1k=Y11,Y12,Y13,Y14,Y15,...が順番に入力された場合には、Y12,Y14,Y15,...が選択されることになる。そして、この選択されたデータエレメントは、パリティデータ系列Z1kとして多重化部47へ出力される。
In FIG. 5, selection information = “0” indicates that an input data element is not selected, and selection information = “1” indicates that an input data element is selected. For example, the selection information shown in FIG. 5 includes second, fourth, fifth,. . . , Nth data element is selected. That is, when the puncturing process is executed using this puncturing table, the parity data sequence Y1k = Y11, Y12, Y13, Y14, Y15,. . . Are entered in order, Y12, Y14, Y15,. . . Will be selected. The selected data element is output to the
第2のパンクチャリング部46は、基本的に第1のパンクチャリング部45と同じである。また、第2のパンクチャリング部46に設けられるパンクチャリングテーブルも、基本的には第1のパンクチャリング部45に設けられるパンクチャリングテーブルと同じである。ただし、これら2つのテーブルに設定される選択情報は、必ずしも互いに同じである必要はない。
The
なお、図4に示したCPU52およびメモリ53は、第1のパンクチャリング部45および第2のパンクチャリング部46により共有可能である。さらに、選択情報として1つのパンクチャリングパターンを用意しておき、第1のパンクチャリング部45および第2のパンクチャリング部46がその選択情報を共用するようにしてもよい。
Note that the
パンクチャリングテーブルは、メモリ53内のRAM領域に格納される。したがって、必要に応じて選択情報を変更することができる。このことにより、所望の符号化率を得ることができる。また、ソースデータのデータ長に応じて、或いは畳込み部の出力系列のデータ長に応じて選択情報のデータ長を変更することも可能である。
The puncturing table is stored in a RAM area in the
次に、パンクチャリングテーブルの作成方法(即ち、選択情報の作成方法)を説明する。以下では、ソースデータuのデータ長をNビット、出力系列Cのデータ長をMビットにする旨が要求されているものとする。この場合、符号化率R=N/Mが要求される。なお、第1の畳込み部43および第2の畳込み部44によりそれぞれ生成される終結ビットは、そのデータ長がソースデータuのデータ長と比べて十分に短いので、以下の説明では無視するものとする。
Next, a method for creating a puncturing table (that is, a method for creating selection information) will be described. In the following, it is assumed that the data length of the source data u is required to be N bits and the data length of the output sequence C is required to be M bits. In this case, coding rate R = N / M is required. Note that the termination bit generated by each of the
ソースデータuのデータ長が「N」である場合は、データ系列Xk 、第1の畳込み部43により生成されるパリティデータ系列Y1k、および第2の畳込み部44により生成されるパリティデータ系列Y2kのデータ長は、それぞれ「N」になる。したがって、出力系列Cのデータ長をMビットにするためには、第1のパンクチャリング部45および第2のパンクチャリング部46によりそれぞれ生成されるパリティデータ系列Z1kおよびZ2kの各データ長をそれぞれ「K1 」および「K2 」とした場合、以下の式を満たす必要がある。
N+K1 +K2 =M
ここで、K1 =K2 =Kとすると、下式が得られる。
K=(M−N)/2(ただし、M>N,N>K)
すなわち、この場合、第1のパンクチャリング部45は、N個のデータエレメントから構成されるパリティデータ系列Y1kからK個のデータエレメントを選択してパリティデータ系列Z1kとして出力することになる。同様に、第2のパンクチャリング部46は、N個のデータエレメントから構成されるパリティデータ系列Y2kからK個のデータエレメントを選択してパリティデータ系列Z2kとして出力することになる。
When the data length of the source data u is “N”, the data sequence Xk, the parity data sequence Y1k generated by the
N + K1 + K2 = M
Here, if K1 = K2 = K, the following equation is obtained.
K = (MN) / 2 (where M> N, N> K)
That is, in this case, the
N個のデータエレメントからK個を選択する際には、パンクチャリングテーブルが利用される。パンクチャリングテーブルに格納される選択情報は、上述したように、入力系列の各データエレメントを選択するか否かを表すので、K個のデータエレメントを選択するには、Nビットの選択情報の中のKビットに「1:選択」割り当て、他のビットに「0:非選択」を割り当てればよい。Nビットの中のKビットに対して「1」を割り当てる方法の具体例を以下に示す。 When selecting K from N data elements, a puncturing table is used. As described above, the selection information stored in the puncturing table indicates whether or not to select each data element of the input sequence. Therefore, in order to select K data elements, the selection information in the N-bit selection information It is only necessary to assign “1: selected” to the K bits and “0: not selected” to the other bits. A specific example of a method of assigning “1” to K bits in N bits is shown below.
(1)複数のシード系列k/n を作成する。「k/n 」は、k個の「1」が均等に割り当てられたnビットの系列である。なお、k=1,2,3,...、n=1,2,3,...である。また、n>kである。シード系列は、例えば、「n」の最大値を10、「k」の最大値を9として作成する。シード系列の一部を示す。なお、各シード系列の先頭ビットには、「0」を割り当てる。
k/n = 2/7 :(0001001)
1/3 :(001)
3/8 :(00100101)
2/5 :(00101)
3/7 :(0010101)
4/9 :(001010101)
5/9 :(010101011)
1/2 :(01)
4/7 :(0110101)
3/5 :(01101)
5/8 :(01110101)
3/4 :(0111)
4/5 :(01111)
5/6 :(011111)
(2) 最適なシード系列を選択する。具体的には、「K/N」≧「k/n 」という条件の下で、下式により得られる値rが最小となる「k/n 」をさがす。
(1) Create a plurality of seed sequences k / n. “K / n” is an n-bit sequence in which k “1” s are evenly allocated. Note that k = 1, 2, 3,. . . , N = 1, 2, 3,. . . It is. Further, n> k. For example, the seed sequence is created with the maximum value of “n” being 10 and the maximum value of “k” being 9. A part of the seed series is shown. Note that “0” is assigned to the first bit of each seed sequence.
k / n = 2/7: (0001001)
1/3: (001)
3/8: (00100101)
2/5: (00101)
3/7: (0010101)
4/9: (001010101)
5/9: (010101011)
1/2: (01)
4/7: (0110101)
3/5: (01101)
5/8: (01110101)
3/4: (0111)
4/5: (01111)
5/6: (011111)
(2) Select an optimal seed sequence. Specifically, under the condition “K / N” ≧ “k / n”, search for “k / n” that minimizes the value r obtained by the following equation.
(3)上記(2)で選択したシード系列を用いてパンクチャリングテーブルに書き込むべき選択情報のベースパターンを作成する。具体的には、選択したシード系列を繰り返すことにより、データ長=Nのベースパターンを作成する。例えば、上述の例のように、k/n =1/2のシード系列が選択された場合には、シード系列(01)を繰り返すことにより、300ビットのベースパターンを得る。 (3) A base pattern of selection information to be written in the puncturing table is created using the seed sequence selected in (2) above. Specifically, a base pattern of data length = N is created by repeating the selected seed sequence. For example, when a seed sequence of k / n = 1/2 is selected as in the above example, a 300-bit base pattern is obtained by repeating the seed sequence (01).
(4)ベースパターンを修正することにより、選択情報を得る。具体的には、まず、A=r・Nを算出する。そして、上記(4)において作成したベースパターンにおいて、A個の「0」を均等に選択し、それらを「1」に置き換える。なお、ベースパターンの先頭ビットは、選択しない。たとえば、上述の例の場合には、A=0.1666×300=5が得られるので、ベースパターン(01010101...0101)において、5個の「0」が「1」に置き換えられる。 (4) The selection information is obtained by correcting the base pattern. Specifically, first, A = r · N is calculated. Then, in the base pattern created in (4) above, A “0” s are equally selected and replaced with “1”. The first bit of the base pattern is not selected. For example, in the case of the above-described example, A = 0.1666 × 300 = 5 is obtained, so five “0” s are replaced with “1” in the base pattern (01010101... 0101).
上記処理により得られたパターンは、選択情報(パンクチャリングパターン情報)としてパンクチャリングテーブルに格納される。
第1のパンクチャリング部45および第2のパンクチャリング部46にそれぞれ設けられるパンクチャリングテーブルは、一実施例としては、互いに同じものを用いるが、それら2つのテーブルは必ずしも互いに同じである必要はない。ただし、それら2つのテーブルに格納される各選択情報に含まれる「1」の数は、互いに同じであるか、あるいは互いに近接していることが望ましい。各選択情報に含まれる「1」の数の差が互い大きく異なると、復号特性が悪くなる恐れがある。
The pattern obtained by the above processing is stored in the puncturing table as selection information (puncturing pattern information).
The puncturing tables provided in the
選択情報の先頭ビットを「0」にする理由は以下の通りである。選択情報の先頭ビットは、第1の畳込み部43により生成されるパリティデータ系列Y1k(または、第2の畳込み部43により生成されるパリティデータ系列Y2k)の先頭データエレメントを選択するか否かを表す。パリティデータ系列Y1kの先頭データエレメントは、第1の畳込み部43において、ソースデータuの先頭データエレメントと図3に示したメモリMに格納されている初期値との加算演算により生成される。ところが、この初期値は、一般に、「オール0」であるので、パリティデータ系列Y1kの先頭データエレメントは、ソースデータuの先頭データエレメントそのものである。すなわち、「畳込み」による効果は得られない。したがって、選択情報の先頭ビットに「1」を割り当てることにより、そのパリティデータ系列Y1kの先頭データエレメントを選択して受信装置へ送ったとしても、復号処理において誤り訂正能力を向上させることには寄与しない。
The reason for setting the first bit of the selection information to “0” is as follows. Whether the first bit of the selection information selects the first data element of the parity data sequence Y1k generated by the first convolution unit 43 (or the parity data sequence Y2k generated by the second convolution unit 43) Represents The first data element of the parity data series Y1k is generated by the
このため、本実施形態では、選択情報の中の「1」を先頭以外の他のデータエレメントを選択するために割り当てることにより、復号処理における誤り訂正能力の向上を図っている。 For this reason, in this embodiment, “1” in the selection information is assigned to select a data element other than the head, thereby improving the error correction capability in the decoding process.
次に、パンクチャリングテーブルを用いたパンクチャリング処理を説明する。第1のパンクチャリング部45は、パリティデータ系列Y1kのデータエレメントを受け取るごとに、パンクチャリングテーブルを参照して、そのデータエレメントを選択するか否かを判断する。選択したデータエレメントは、パリティデータ系列Z1kとして多重化部47へ送出される。一方、選択されなかったデータエレメントは、多重化部47へ送出されることなく廃棄される。この処理は、第2のパンクチャリング部46においても同様である。
Next, puncturing processing using a puncturing table will be described. Each time the
図6は、パンクチャリング処理のフローチャートである。この処理は、畳込み部により生成されるパリティデータ系列Yk のデータエレメントがラッチ回路51に書き込まれるごとに実行される。なお、パリティデータ系列Yk は、パリティデータ系列Y1kまたはY2kを表す。即ち、このフローチャートの処理が第1のパンクチャリング部45の動作を表す場合には、Yk =Y1kであり、このフローチャートの処理が第2のパンクチャリング部46の動作を表す場合には、Yk =Y2kである。
FIG. 6 is a flowchart of the puncturing process. This process is executed each time the data element of the parity data series Yk generated by the convolution unit is written in the
ステップS1では、ラッチ回路51からデータエレメントを取得する。ステップS2では、ラッチ回路51に書き込まれたデータエレメントがパリティデータ系列Yk 内の第何番目のデータエレメントであるのかを計数するためのカウンタをインクリメントする。このカウント値kは、データエレメントの位置情報あるいはシーケンスナンバに対応する。なお、このカウンタは、1セットのソースデータに対する処理が終了するごとにリセットされる。
In step S1, a data element is acquired from the
ステップS3では、上記カウンタのカウント値kを用いて、図5に示すパンクチャリングテーブルを参照する。このことにより、ラッチ回路51に書き込まれたデータエレメントに関する選択情報P(k) が得られる。ステップS4では、ステップS3で得た選択情報P(k) が「1」であるか「0」であるかを調べる。選択情報P(k) =1であれば、ステップS5において、ラッチ回路51に書き込まれたデータエレメントを出力ポート54を介して多重化部47へ送出する。このとき、パンクチャリングテーブルを参照する際に用いたカウント値kも多重化部47へ送る。一方、選択情報P(k) =0であれば、ステップS6において、ラッチ回路51に書き込まれたデータエレメントを廃棄する。
In step S3, the puncturing table shown in FIG. 5 is referred to using the count value k of the counter. As a result, selection information P (k) relating to the data element written in the
ステップS7では、カウント値kが「N」に達したか否かを調べる。カウント値kが「N」に達していれば、1セットのソースデータに対する処理が終了したものとみなし、ステップS8において上記カウンタをリセットする。 In step S7, it is checked whether or not the count value k has reached “N”. If the count value k has reached “N”, it is considered that the processing for one set of source data has been completed, and the counter is reset in step S8.
このように、第1のパンクチャリング部45および第2のパンクチャリング部46は、入力されるNビットのパリティデータ系列Yk からKビットを選択して出力する。なお、この選択処理は、上記ステップS1〜S8を記述したプログラムをCPU52に実行させることにより実現される。
In this way, the
第1のパンクチャリング部45および第2のパンクチャリング部46による出力の例を表2に示す。
Table 2 shows examples of outputs from the
図7は、多重化部47のブロック図である。多重化部47は、データ系列Xk を保持するためのバッファ61、第1のパンクチャリング部45により生成されたパリティデータ系列Z1kを保持するためのメモリ62、第2のパンクチャリング部46により生成されたパリティデータ系列Z2kを保持するためのメモリ63およびバッファ61、およびメモリ62、63からデータエレメントを読み出して出力する読出し制御部64を備える。
FIG. 7 is a block diagram of the multiplexing
データ系列Xk のデータエレメントは、バッファ61に順番に書き込まれる。パリティデータ系列Z1kは、第1のパンクチャリング部45により選択されたデータエレメントである。これらのデータエレメントは、シーケンスナンバに対応付けられてメモリ62に書き込まれる。各データエレメントに対応するシーケンスナンバは、たとえば、図6を参照しながら説明したカウンタのカウント値kにより指示される。なお、メモリ62は、シーケンスナンバ毎にそれぞれデータエレメントが書き込まれているか否かを表す「有効/無効表示」が設定される。メモリ63の構成は、メモリ62と同じである。
The data elements of the data series Xk are written in the
読出し制御部64は、予め決められた所定の間隔ごとに、バッファ61、およびメモリ62、63の中のいずれか1つから1つのデータエレメントを読み出して出力する。具体的には、下記の手順(1)〜(4)を繰り返し実行することによりデータエレメントを読み出す。
(1)バッファ61から指定されているシーケンスナンバのデータエレメントを読み出す。
(2)上記指定されているシーケンスナンバのデータエレメントがメモリ62に格納されている場合には、それを読み出す。
(3)上記指定されているシーケンスナンバのデータエレメントがメモリ63に格納されている場合には、それを読み出す。
(4)次のシーケンスナンバを指定する。
The
(1) Read the data element of the specified sequence number from the
(2) When the data element of the specified sequence number is stored in the
(3) If the data element of the specified sequence number is stored in the
(4) Designate the next sequence number.
バッファ61、メモリ62、63が図7に示す状態であった場合に、上記手順(1)〜(4)を繰り返し実行すると、出力系列Cは、以下のようになる。出力系列C=(X1 ,X2 ,X3 ,Y13,Y23,X4 ,Y14,Y24,X5 ,...)
このように、図3に示した誤り訂正符号化装置40は、パンクチャリング部に格納されている選択情報(パンクチャリングパターン)を用いて、誤り訂正のために付加されるパリティデータのデータ量を変えることができる。すなわち、選択情報の設定に従って所望の符号化率Rが得られる。
When the
As described above, the error
次に、上記誤り訂正符号化装置40によって符号化されたデータ系列を復号する復号装置について簡単に説明しておく。復号処理としては、様々な方法が知られているが、基本的には、符号化処理を逆の手順で実行することによりデータ系列を復号する。
Next, a decoding device for decoding the data series encoded by the error
図8は、復号装置のブロック図である。ここでは、誤り訂正符号化装置40の第1のパンクチャリング部45および第2のパンクチャリング部46において互いに同じ選択情報を用いてパリティデータY1kおよびY2kに対してパンクチャリング処理が実行されたものとする。また、この復号装置は、特に図示していないが、誤り訂正符号化装置40において多重化されたデータ系列Xとパリティデータ系列Zとを分離する機能を備えている。
FIG. 8 is a block diagram of the decoding apparatus. Here, it is assumed that the
シリアル/パラレル変換器71は、受信したパリティデータ系列Zをパリティデータ系列Z1kおよびZ2kに分離する。パリティデータ系列Z1kおよびZ2kは、それぞれ誤り訂正符号化装置40の設けられている第1のパンクチャリング部45および第2のパンクチャリング部46により生成された系列である。
The serial /
第1のデパンクチャリング部72および第2のデパンクチャリング部73は、それぞれ誤り訂正符号化装置40が有するパンクチャリングテーブルと同じテーブルを備え、それぞれパリティデータ系列Z1kおよびZ2kに対して「デパンクチャリング処理」を実行する。
The
図9を参照しながら、デパンクチャリング処理の一例を説明する。ここでは、パリティデータ系列Z1k=(Z11,Z12,Z13,Z14,Z15)が入力されたものとする。また、パンクチャリングテーブルには図10に示す選択情報が格納されていたものとする。なお、以下では、第1のデパンクチャリング部72の処理を説明するが、第2のデパンクチャリング部73の処理も同じである。
An example of the depuncturing process will be described with reference to FIG. Here, it is assumed that the parity data sequence Z1k = (Z11, Z12, Z13, Z14, Z15) is input. Further, it is assumed that selection information shown in FIG. 10 is stored in the puncturing table. Hereinafter, the process of the
第1のデパンクチャリング部72は、パリティデータ系列Z1kを受け取ると、まず、パンクチャリングテーブルのシーケンスナンバ=「1」に対応する選択情報を調べる。この場合、選択情報=「0」なので、第1のデパンクチャリング部72は、「0」を出力する。つづいて、パンクチャリングテーブルのシーケンスナンバ=「2」に対応する選択情報を調べる。この場合、選択情報=「1」なので、第1のデパンクチャリング部72は、パリティデータ系列Z1kの先頭データエレメントである「Z11」を出力する。以下、同様に、第1のデパンクチャリング部72は、選択情報=「0」の場合には「0」を出力し、選択情報=「1」の場合には、パリティデータ系列Z1kのデータエレメントを1つずつ順番に出力していく。この結果、第1のデパンクチャリング部72は、下記のデータ系列を出力する。
出力系列:(0,Z11,0,Z12,0,Z13,0,Z14,Z15)
この出力系列は、パリティデータ系列Y1kとして、第1の復号器74に与えられる。同様に、第2のデパンクチャリング部73は、パリティデータ系列Y2kを生成して第2の復号器75に与える。
When receiving the parity data sequence Z1k, the
Output series: (0, Z11, 0, Z12, 0, Z13, 0, Z14, Z15)
This output sequence is given to the
図10は、デパンクチャリング処理のフローチャートである。ここでは、入力データ系列Zに対してデータ系列Yを生成する場合を説明する。データ系列Zおよびデータ系列Yのデータエレメントを、それぞれ「Zi 」「Yk 」と表す。 FIG. 10 is a flowchart of the depuncturing process. Here, the case where the data series Y is produced | generated with respect to the input data series Z is demonstrated. The data elements of the data series Z and the data series Y are represented as “Zi” and “Yk”, respectively.
ステップS11では、「k」を用いてパンクチャリングテーブルをサーチし、対応する選択情報を取得する。ステップS12では、ステップS11で取得した選択情報が「1」であるか「0」であるのか調べる。取得した選択情報が「1」であれば、ステップS13において、データ系列Yk のデータエレメントとしてデータ系列Zi のデータエレメントを1つ出力する。そして、ステップS14において、「i」をインクリメントする。一方、取得した選択情報が「0」であったときには、ステップS15において、データ系列Yk のデータエレメントとして「0」を出力する。 In step S11, the puncturing table is searched using “k”, and the corresponding selection information is acquired. In step S12, it is checked whether the selection information acquired in step S11 is “1” or “0”. If the acquired selection information is “1”, in step S13, one data element of the data series Zi is output as the data element of the data series Yk. In step S14, “i” is incremented. On the other hand, if the acquired selection information is “0”, “0” is output as the data element of the data series Yk in step S15.
続いて、ステップS16では、「k」をインクリメントする。そして、ステップS17において、「k」が「N」に達したか否かを調べる。「N」は、ソースデータのデータ長である。「k」が「N」に達していなければ、ステップS11に戻り、「k」が「N」に達していれば、「k」及び「i」をリセットする。 Subsequently, in step S16, “k” is incremented. In step S17, it is checked whether or not “k” has reached “N”. “N” is the data length of the source data. If “k” has not reached “N”, the process returns to step S11. If “k” has reached “N”, “k” and “i” are reset.
図8に戻る。第1のデパンクチャリング部72により生成されたパリティデータ系列Y1kは、第1の復号器74に与えられる。同様に、第2のデパンクチャリング部73により生成されたパリティデータ系列Y2kは、第2の復号器75に与えられる。第1の復号器74は、パリティデータ系列Y1kを利用しながら受信したデータ系列Xk を復号する。また、第2の復号器75は、パリティデータ系列Y2kを利用しながら第1の復号器74の出力を復号する。
Returning to FIG. The parity data sequence Y1k generated by the
第2の復号器75の出力は、判定部76において予め決められた閾値と比較される。そして、デインターリーバ77においてその比較結果に対してデインターリービング処理(誤り訂正符号化装置40におけるランダム化処理の逆の処理)が実行され、その結果が復号データとして出力される。
The output of the
なお、パリティデータ系列を生成する処理を除く復号処理は、既知の技術を利用して実現可能である。たとえば、米国特許5446747に記載されている。したがって、ここでは、復号処理についての詳しい説明を省略する。 Note that the decoding process excluding the process of generating the parity data series can be realized using a known technique. For example, it is described in US Pat. No. 5,446,747. Accordingly, detailed description of the decoding process is omitted here.
復号精度を向上させるためには、図11に示すように、上記構成の復号装置を直列に接続すればよい。この場合、図8に示した復号装置が1つの復号モジュールに相当する。各復号モジュールは、受信データ系列(復号すべきデータ系列Xおよびパリティデータ系列)、および前段の復号モジュールにおけるデータ系列Xの予測値(系列T)を受け取り、復号データSを生成すると共に、新たにデータ系列Xを予測する。この新たに予測されたデータ系列Xは、次段の復号モジュールに渡される。 In order to improve the decoding accuracy, as shown in FIG. 11, the decoding devices having the above-described configuration may be connected in series. In this case, the decoding device shown in FIG. 8 corresponds to one decoding module. Each decoding module receives a received data sequence (data sequence X and parity data sequence to be decoded) and a predicted value (sequence T) of the data sequence X in the preceding decoding module, generates decoded data S, and newly A data series X is predicted. This newly predicted data series X is passed to the next decoding module.
上記構成においては、直列に接続される復号モジュールの数を増やすことにより、復号精度は向上する。たとえば、復号モジュール70−1から出力される復号データSよりも復号モジュール70−4から出力される復号データSの方が復号精度は高くなる。なお、この構成の動作は、米国特許5446747に記載されている。 In the above configuration, the decoding accuracy is improved by increasing the number of decoding modules connected in series. For example, the decoded data S output from the decoding module 70-4 has higher decoding accuracy than the decoded data S output from the decoding module 70-1. The operation of this configuration is described in US Pat. No. 5,446,747.
図11に構成において、図8に示したシリアル/パラレル変換部71、第1のデパンクチャリング部72、および第2のデパンクチャリング部73は、第1段目の復号モジュール70−1に対して設ければよい。
In the configuration shown in FIG. 11, the serial /
次に、本発明の他の実施形態の誤り訂正符号化装置について説明する。従来の誤り訂正符号化装置は、上述したように、一般に、符号化率が固定的に与えられていた。たとえば、図20に示した構成では、符号化率R=1/2であり、図21に示した構成では、符号化率=1/3であった。以下に説明する誤り訂正符号化装置では、任意の符号化率が得られる。特に、1/3よりも小さい任意の符号化率が得られる。 Next, an error correction coding apparatus according to another embodiment of the present invention will be described. As described above, the conventional error correction coding apparatus generally has a fixed coding rate. For example, in the configuration shown in FIG. 20, the coding rate R = 1/2, and in the configuration shown in FIG. 21, the coding rate = 1/3. In the error correction coding apparatus described below, an arbitrary coding rate can be obtained. In particular, an arbitrary coding rate smaller than 1/3 can be obtained.
図12は、本実施形態の誤り訂正符号化装置40と従来の装置との出力の差異を示す図である。ここでは、従来の装置として、図21に示した装置を採り上げる。従来の装置では、図23を参照しながら説明したように、たとえば、ソースデータのデータ長が666ビット、要求されている出力データ長が1500ビットである場合には、符号化データに対して168ビットのダミーデータが付与される。この場合、エラーを訂正するために使用されるパリティデータは、666ビットとなる。
FIG. 12 is a diagram showing a difference in output between the error
一方、誤り訂正符号化装置40を使用した場合には、図p1に示すように、666ビットのパリティデータ系列Y1KおよびY2Kから、それぞれ417ビットのパリティデータ系列Z1KおよびZ2Kが生成される。この結果、エラーを訂正するために使用されるパリティデータは、834ビットとなる。すなわち、従来の装置と比較して、エラーを訂正するために使用されるデータ量が多くなる。したがって、本実施形態においては、復号能力が高くなる。
On the other hand, when the error
図13は、本発明の他の形態の誤り訂正符号化装置80の構成図である。図13において、インターリーバ42、第1の畳込み部43、第2の畳込み部44、および多重化部47は、図3に示したものと同じである。また、図13では、入力I/F部41を省略している。
FIG. 13 is a configuration diagram of an error
誤り訂正符号化装置80の特徴は、ビット重複部81を設けたことである。ビット重複部81は、所望の符号化率を得るために、ソースデータuの中の所定数のデータエレメントを重複させる。
A feature of the error
ビット重複部81の動作を説明する。以下では、ソースデータuのデータ長がNビット、出力データ系列のデータ長がMビットであるとする。また、M>3Nとする。すなわち、符号化率として1/3よりも小さい値が要求されている場合を想定する。
The operation of the bit overlap
ビット重複部81においてソースデータuの中のrビットを重複させることによりデータ系列Xk を得るものとすると、データ系列Xk 、パリティデータ系列Y1k、およびパリティデータ系列Y2kの各データ長は、それぞれ「N+r」になる。したがって、出力データ系列のデータ長をMビットにするためには、ビット重複部81において重複させるべきビット数は下式により得られる。
(N+r)×3=M
∴r=M/3−N
たとえば、ソースデータuのデータ長を250ビット、要求される出力系列のデータ長を900ビットとすると、上式にN=250、M=900を代入することにより、r=50が得られる。
Assuming that the data series Xk is obtained by duplicating r bits in the source data u in the
(N + r) × 3 = M
∴r = M / 3−N
For example, assuming that the data length of the source data u is 250 bits and the data length of the required output sequence is 900 bits, r = 50 is obtained by substituting N = 250 and M = 900 into the above equation.
ビット重複部81は、望ましくは、「拘束長+1」ビットごとにソースデータuのデータエレメントを重複させる。ここで、拘束長は、畳込み処理においてメモリに保持されるデータのビット数である。たとえば、図13に示す構成においては、拘束長=2なので、3ビットごとにソースデータuのデータエレメントが重複される。
The
このように、所定のデータエレメントを重複させたデータ系列を符号化して伝送すると、符号技術において既知であるように、データエレメントが重複している部分の後続のデータエレメントに対する復号処理の精度が向上する。 As described above, when a data sequence in which predetermined data elements are overlapped is encoded and transmitted, the accuracy of decoding processing for subsequent data elements in a portion where the data elements overlap is improved as is known in the encoding technology. To do.
図14は、ビット重複部81の動作例を示す図である。ここでは、ソースデータuのデータ長が7ビット、拘束長=2、要求される出力系列のデータ長が27ビットの場合を示している。この場合、2個のデータエレメントが重複される。また、3ビット毎にデータエレメントが重複される。この処理により、誤り訂正符号化装置80の符号化率は、「7/27」になる。
FIG. 14 is a diagram illustrating an operation example of the
図15は、ビット重複部81の動作を説明するフローチャートである。ここでは、ソースデータu(u0 ,u1 ,u2 ,u3 ,...,ui ,...)が入力されたものとする。また、重複すべきデータエレメントの数を「r」とする。さらに、xビット毎にデータエレメントを重複する。
FIG. 15 is a flowchart for explaining the operation of the
ステップS21では、ソースデータuのデータエレメントui を取得する。以下では、「i」をシーケンスナンバを呼ぶことにする。ステップS22では、ビット重複数jが重複すべきデータエレメントの数である「r」に達しているか否かを調べる。ビット重複数jは、当該ソースデータuにおいて既にビット重複を実行した回数を表す。j>rであれば、すでに必要な数のビット重複を終了しているものとみなし、ステップS23において、取得したデータエレメントui をそのまま出力する。一方、j≦rであれば、更にビット重複を行う必要があるとみなし、ステップS24に進む。 In step S21, the data element ui of the source data u is acquired. Hereinafter, “i” is referred to as a sequence number. In step S22, it is checked whether or not the bit overlap number j has reached “r” which is the number of data elements to be overlapped. The bit duplication number j represents the number of times bit duplication has already been executed in the source data u. If j> r, it is considered that the necessary number of bit duplications have already been completed, and in step S23, the acquired data element ui is output as it is. On the other hand, if j ≦ r, it is considered that further bit duplication needs to be performed, and the process proceeds to step S24.
ステップS24では、シーケンスナンバiが「x」の整数倍であるか否かを調べる。シーケンスナンバiが「x」の整数倍でなければ、ビット重複を行わないので、ステップS23へ進む。一方、シーケンスナンバiが「x」の整数倍であったときには、ビット重複を行う。すなわち、ステップS25およびS26においてそれぞれデータエレメントui を出力する。このことにより、データエレメントui は重複される。続いて、ステップS27において、ビット重複数jをインクリメントする。 In step S24, it is checked whether or not the sequence number i is an integer multiple of “x”. If the sequence number i is not an integer multiple of “x”, no bit duplication is performed, and the process proceeds to step S23. On the other hand, when the sequence number i is an integral multiple of “x”, bit duplication is performed. That is, the data element ui is output in steps S25 and S26, respectively. As a result, the data element ui is duplicated. Subsequently, in step S27, the bit overlap number j is incremented.
ステップS28では、シーケンスナンバiが「N」に達したか否かを調べる。シーケンスナンバiが「N」に達していない場合には、ステップS29においてそのシーケンスナンバiをインクリメントした後、ステップS21に戻って次のデータエレメントを取得する。一方、シーケンスナンバiが「N」に達している場合には、当該ソースデータのすべてのデータエレメントについてステップS21〜S29の処理が実行されたものとみなし、ステップS30において「i」および「j」をリセットした後に処理を終了する。 In step S28, it is checked whether or not the sequence number i has reached “N”. If the sequence number i has not reached “N”, the sequence number i is incremented in step S29, and the process returns to step S21 to acquire the next data element. On the other hand, if the sequence number i has reached “N”, it is considered that the processing of steps S21 to S29 has been performed for all the data elements of the source data, and “i” and “j” are determined in step S30. The process ends after resetting.
このように、図13に示した誤り訂正符号化装置80は、所望の符号化率を得るために、ソースデータの中の所定数のデータエレメントを重複させる。換言すれば、ソースデータの中の所定数のデータエレメントを重複させることにより、所望の符号化率が得られる。また、重複ビットは、復号処理において利用されるので、伝送路の誤り率を小さくすることができる。
As described above, the error
なお、誤り訂正符号化装置80によって符号化されたデータ系列を復号する復号装置は、通常の復号処理を実行した後に、ビット重複部81による処理を逆の手順で実行する機能を設ければよい。
Note that the decoding apparatus that decodes the data series encoded by the error
図16は、本発明の更に他の形態の誤り訂正符号化装置90の構成図である。図16において、インターリーバ42、第1の畳込み部43、第2の畳込み部44、および多重化部47は、図3に示したものと同じである。
FIG. 16 is a configuration diagram of an error correction coding apparatus 90 according to still another embodiment of the present invention. In FIG. 16, the
誤り訂正符号化装置90の特徴は、ダミービット挿入部91を設けたことである。ダミービット挿入部91は、所望の符号化率を得るために、ソースデータuに対して所定数のダミービットを挿入する。
The feature of the error correction coding apparatus 90 is that a dummy
ダミービット挿入部91の動作を説明する。以下では、ソースデータuのデータ長がNビット、出力データ系列のデータ長がMビットであるとする。また、M>3Nとする。すなわち、符号化率として1/3よりも小さい値が要求されている場合を想定する。
The operation of the dummy
ダミービット挿入部91においてソースデータuに対してrビットのダミービットを挿入することによりデータ系列Xk を得る場合、データ系列Xk 、パリティデータ系列Y1k、及びパリティデータ系列Y2kの各データ長は、それぞれ「N+r」になる。従って、出力データ系列のデータ長をMビットにするためには、ダミービット挿入部91において挿入すべきビット数は下式により得られる。
(N+r)×3=M
∴r=M/3−N
ダミービット挿入部91は、望ましくは、拘束長と同じ長さのダミービットを挿入する。拘束長は、上述したように、畳込み処理においてメモリに保持されるデータのビット数である。したがって、図13に示す構成においては、ダミービットは、2ビットを1単位としてソースデータuに挿入される。
When the data sequence Xk is obtained by inserting r dummy bits into the source data u in the dummy
(N + r) × 3 = M
∴r = M / 3−N
The dummy
ダミービットとしては、「1」または「0」を用いる。ここで、もしダミービットとして「1」を用いるとすると、拘束長=2の場合には、ダミーデータとして「11」が挿入される。例えば、ソースデータuのデータ長を250ビット、要求される出力系列のデータ長を900ビットとすると、r=50が得られる。すなわち、ソースデータuに対して50ビットのダミービットを挿入することが要求される。ここで、拘束長=2とすると、ソースデータuに対して「11」が25カ所に挿入されることになる。挿入位置は、均等に分散させることが望ましい。 As the dummy bit, “1” or “0” is used. Here, if “1” is used as a dummy bit, “11” is inserted as dummy data when the constraint length = 2. For example, if the data length of the source data u is 250 bits and the data length of the required output sequence is 900 bits, r = 50 is obtained. That is, it is required to insert 50 dummy bits into the source data u. Here, assuming that the constraint length = 2, “11” is inserted into the source data u at 25 locations. It is desirable that the insertion positions are evenly distributed.
このように、ダミーデータとして「1」が挿入されたデータ系列を符号化して伝送すると、符号技術において既知であるように、そのダミービットの後続のデータエレメントに対する復号処理の精度が向上する。 As described above, when a data series in which “1” is inserted as dummy data is encoded and transmitted, the accuracy of the decoding process for the data element subsequent to the dummy bit is improved, as is known in the encoding technology.
なお、図22および図23を参照しながら説明したように、従来の誤り訂正符号化装置においてもしばしばダミーデータが使用されていた。しかしながら、従来の方法では、符号化されたデータ系列に対してダミーデータを付加していたのに対し、誤り訂正符号化装置90では、ソースデータにダミービットを挿入し、そのダミービットが挿入されたソースデータを符号化する構成である。即ち、従来の方法においては、ダミーデータは、「無意味なデータ」であったが、誤り訂正符号化装置80においては、ダミービットは、復号処理において事前確率尤度として利用されるので、有用なデータである。
As described with reference to FIGS. 22 and 23, dummy data is often used also in the conventional error correction coding apparatus. However, in the conventional method, dummy data is added to the encoded data series, whereas in the error correction coding apparatus 90, dummy bits are inserted into the source data, and the dummy bits are inserted. The source data is encoded. That is, in the conventional method, the dummy data is “meaningless data”. However, in the error
図17は、ダミービット挿入部91の動作例を示す図である。ここでは、ソースデータuのデータ長が7ビット、拘束長=2、要求される出力系列のデータ長が27ビットの場合を示している。この場合、ソースデータuに対して2ビットのダミービットを挿入することにより、符号化率=7/27を実現している。
FIG. 17 is a diagram illustrating an operation example of the dummy
このように、図16に示した誤り訂正符号化装置90は、所望の符号化率を得るために、ソースデータの中の所定数のダミービットを挿入する。換言すれば、ソースデータの中の所定数のダミービットを挿入することにより、所望の符号化率が得られる。また、挿入されたダミービットは、復号処理において利用されるので、伝送路の誤り率を小さくすることができる。 As described above, the error correction coding apparatus 90 shown in FIG. 16 inserts a predetermined number of dummy bits in the source data in order to obtain a desired coding rate. In other words, a desired coding rate can be obtained by inserting a predetermined number of dummy bits in the source data. In addition, since the inserted dummy bits are used in the decoding process, the error rate of the transmission path can be reduced.
なお、誤り訂正符号化装置90によって符号化されたデータ系列を復号する復号装置は、通常の復号処理を実行した後に、ダミービットを除去する機能を設ければよい。
上記図3、図13、および図16に示した誤り訂正符号化装置は、それぞれ互いに並列に接続された2つの畳込み部を備える構成であったが、本発明は、この構成に限定されるものではない。すなわち、本発明は、互いに並列に接続された複数の畳込み部を有する装置に適用可能である。
Note that the decoding device that decodes the data sequence encoded by the error correction encoding device 90 may be provided with a function of removing dummy bits after executing a normal decoding process.
The error correction coding apparatus shown in FIGS. 3, 13, and 16 has a configuration including two convolution units connected in parallel to each other, but the present invention is limited to this configuration. It is not a thing. That is, the present invention can be applied to a device having a plurality of convolution units connected in parallel to each other.
図18は、m個の畳込み部を備える誤り訂正符号化装置100のブロック図である。畳込み部101−1〜1−1−mは、それぞれソースデータに対して畳み処理を実行する。畳込み部101−2〜1−1−mに対して互いに異なるインターリーバが設けられている。このことにより、畳込み部101−1〜1−1−mに対して互いに異なる系列が与えられる。 FIG. 18 is a block diagram of an error correction coding apparatus 100 including m convolution units. The convolution units 101-1 to 1-1-m each perform a convolution process on the source data. Different interleavers are provided for the convolution units 101-2 to 1-1-m. As a result, different sequences are given to the convolution units 101-1 to 1-1-m.
パンクチャリング部102は、畳込み部101−1〜1−1−mからそれぞれ出力されるパリティデータ系列Y1k〜Ymkのから所定数のデータエレメントを選択して出力する。たとえば、ソースデータuのデータ長をNビット、出力系列Cのデータ長をMビットである場合、すなわち符号化率=N/Mである場合、パンクチャリング部102は、以下のようにしてデータエレメントを選択する。ここで、各畳込み部101−1〜1−1−mは、Nビットの系列が与えられたときにNビットのパリティデータを出力するものとする。
The
パンクチャリング部102によりパリティデータ系列Y1k〜YmkからそれぞれK1 〜Km 個のデータエレメントを選択するものとすると、下式が得られる。
N+K1 +K2 +K3 +・・・+Km =M
ここで、K1 =K2 =K3 =・・・=Km =Kとすると、下式が得られる。
K=(M−N)/m
∴符号化率R=N/M=(M−m・K)/M (ただし、M>N,N>K)
このように、誤り訂正符号化装置の符号化率Rは、並列に設けられる畳込み部の数、およびNビットの系列から選択すべきデータエレメントの数に応じて決めることができる。
When the
N + K1 + K2 + K3 +... + Km = M
Here, if K1 = K2 = K3 =... = Km = K, the following equation is obtained.
K = (MN) / m
∴Coding rate R = N / M = (M−m · K) / M (where M> N, N> K)
As described above, the coding rate R of the error correction coding apparatus can be determined according to the number of convolution units provided in parallel and the number of data elements to be selected from the N-bit sequence.
なお、上記実施例では、図3、図13、図16に示す誤り訂正符号化装置が互いに独立しているものとして説明したが、これらの装置を任意に組み合わせることができる。たとえば、図3に示した誤り訂正符号化装置40の入力部に、図13に示したビット重複部81あるいは図16に示したダミービット挿入部91を設けるようにしてもよい。
In the above embodiment, the error correction coding apparatuses shown in FIGS. 3, 13, and 16 have been described as being independent of each other. However, these apparatuses can be arbitrarily combined. For example, the
また、上記実施例の誤り訂正符号化装置は、組織符号を採用すると共に、畳込み処理を実行する構成を採用していた。しかしながら、本発明は、この構成に限定されるものではない。すなわち、本発明の誤り訂正符号化装置は、必ずしも組織符号に限定されるものではなく、また、必ずしも畳込み部を含む構成に限定されるものでもない。 In addition, the error correction coding apparatus of the above embodiment employs a configuration that executes a convolution process while employing a systematic code. However, the present invention is not limited to this configuration. That is, the error correction coding apparatus of the present invention is not necessarily limited to the systematic code, and is not necessarily limited to the configuration including the convolution unit.
図19は、組織符号に限定されない誤り訂正符号化装置のブロック図である。誤り訂正符号化装置110は、ソース系列を符号化するための複数のエンコーダ111を有する。各エンコーダ111は、畳込み符号であってもよいし、他のブロック符号(例えば、ハミング符号、BCH符号など)であってもよい。また、各エンコーダ111に与えられる系列が互いに異なるようにインターリーバ112が設けられる。パンクチャリング処理および多重化処理については、上述した実施例の構成を利用することができる。
FIG. 19 is a block diagram of an error correction coding apparatus that is not limited to systematic codes. The error
10 基地局
11、24 エンコーダ
20 移動機
30 記憶装置
31 エンコーダ
40 誤り訂正符号化装置
41 入力I/F部
42 インターリーバ
43 第1の畳込み部
44 第2の畳込み部
45 第1のパンクチャリング部
46 第2のパンクチャリング部
47 多重化部
81 ビット重複部
91 ダミービット挿入部
DESCRIPTION OF
Claims (1)
上記ソースデータ系列についてインターリーブ処理を行ってランダム化データ系列を生成するインターリーバと、
上記ランダム化データ系列を符号化して第2のパリティデータ系列を生成する第2のエンコーダと、
上記第1および第2のパリティデータ系列のそれぞれに対して、上記ソースデータ系列のデータ長および送信フレームに含まれる出力系列のデータ長に基づいて決まる符号化率に対応して決定されるビット数のデータエレメントを選択するための選択情報を取得する取得手段と、
上記取得手段で取得した選択情報に基づいて上記第1および第2のパリティデータ系列から各々同数又はほぼ同数選択して第1および第2の選択データを生成する選択手段と、
を有する符号化装置。 A first encoder that encodes a source data sequence to generate a first parity data sequence ;
An interleaver that generates a randomized data sequence by performing an interleaving process on the source data sequence ;
A second encoder for generating a second parity data sequence by encoding the randomized data sequence,
The number of bits determined corresponding to the coding rate determined based on the data length of the source data sequence and the data length of the output sequence included in the transmission frame for each of the first and second parity data sequences Acquisition means for acquiring selection information for selecting a data element of
Selection means for generating the first and second selection data by selecting the same or substantially the same number from the first and second parity data series based on the selection information acquired by the acquisition means ;
An encoding device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006168226A JP4308226B2 (en) | 2006-06-19 | 2006-06-19 | Error correction coding device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006168226A JP4308226B2 (en) | 2006-06-19 | 2006-06-19 | Error correction coding device |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP10232580A Division JP2000068862A (en) | 1998-08-19 | 1998-08-19 | Error correction coding device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006304348A JP2006304348A (en) | 2006-11-02 |
JP4308226B2 true JP4308226B2 (en) | 2009-08-05 |
Family
ID=37472009
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006168226A Expired - Lifetime JP4308226B2 (en) | 2006-06-19 | 2006-06-19 | Error correction coding device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4308226B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100873824B1 (en) | 2007-05-04 | 2008-12-15 | 삼성전자주식회사 | Error control code device and method |
-
2006
- 2006-06-19 JP JP2006168226A patent/JP4308226B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2006304348A (en) | 2006-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100566184C (en) | Error correcting encoding set | |
US7246294B2 (en) | Method for iterative hard-decision forward error correction decoding | |
US8347196B2 (en) | Computationally efficient convolutional coding with rate-matching | |
EP2351231B1 (en) | Continuously interleaved error correction | |
JP2006295975A (en) | Transmission system including error correcting circuit, interleaver and puncturing or repeating device | |
US9444494B2 (en) | Systems and methods for network coding using convolutional codes | |
US7231575B2 (en) | Apparatus for iterative hard-decision forward error correction decoding | |
CN101779379B (en) | Encoding and decoding using generalized concatenated codes (GCC) | |
JP3628013B2 (en) | Signal transmitting apparatus and encoding apparatus | |
JP4308226B2 (en) | Error correction coding device | |
CN108667556B (en) | Bit interleaved coding modulation method | |
CN111600613B (en) | Verification method, verification device, decoder, receiver and computer storage medium | |
JP2000022553A (en) | Puncturing method for organization error correction code | |
CN111030710A (en) | Method for adaptively improving decoding speed of Galileo navigation system E5 signal | |
CN119010922A (en) | Error correction method for non-binary deleting errors based on Debrucine sequence | |
KR20120071511A (en) | Method and apparatus for data rate matching for mobile communication systems | |
KR20180005573A (en) | Convolution decoder and method of decoding convolutional codes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090127 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090330 |
|
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: 20090428 |
|
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: 20090430 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120515 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120515 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130515 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130515 Year of fee payment: 4 |
|
EXPY | Cancellation because of completion of term |