(57)【要約】【課題】互いに並列に設けられた複数の畳込み回路を備える誤り訂正符号化装置において所望の符号化率が得られるようにする。【解決手段】互いに並列に設けられた畳込み部４３および４４は、それぞれソースデータｕに対して畳み込み処理を実行する。インターリーバ４２は、畳込み部４４に対して与えられるソースデータｕをランダム化する。パンクチャリング部４５および４６は、それぞれ予め決められたパンクチャリングパターンに従ってパリティデータ系列Ｙ1KおよびＹ2Kからデータエレメントを選択する。多重化部４７は、データ系列ＸK に対してパンクチャリング部４５および４６により選択されたデータエレメントを付与する。【選択図】図３
2006304348.tif 000002
【特許請求の範囲】
【請求項１】
ソースデータを符号化して第１のパリティデータを生成する第１のエンコーダと、
上記ソースデータについてインターリーブ処理を行ってランダム化データを生成するインターリーバと、
上記ランダム化データを符号化して第２のパリティデータを生成する第２のエンコーダと、
上記ソースデータのデータ長および送信フレームに含まれる出力系列のデータ長に基づいて決まる符号化率に対応して決定されるビット数のデータエレメントを上記第１および第２のパリティデータから各々同数又はほぼ同数選択して第１および第２の選択データを生成する選択手段と、
を有する符号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化装置に係わり、特に、誤り訂正符号に係わる。
【背景技術】
【０００２】
符号化技術は、様々な分野において広く利用されている。例えば、データ伝送においては、送信元装置が伝送すべきデータを符号化して通信路に送出し、受信装置がその符号化されているデータを受信して復号する。また、データを記憶装置に保存する際には、データは、符号化されてディスクなどに書き込まれる。そして、符号化されているデータは、そのディスクから読み出される際に復号される。なお、符号化とは、一般には、情報源データ系列を異なるデータ系列に変換することをいい、また、その変換によって得られる新しいデータ系列を符号という。
【０００３】
ところで、符号化されたデータを伝送する際、その通信路においてエラーが発生することがある。また、符号化されたデータを格納する記憶装置からそのデータを読み出して再生する際にも、エラーが発生し得る。このようなエラーの発生を検出するため、或いはそのエラーを訂正するために、誤り訂正符号がしばしば使用されている。
【０００４】
誤り訂正符号の１つとして、畳込み符号が知られている。畳込み符号では、ｎビットのデータが入力される毎に、そのｎビットのデータ及びそのｎビットのデータの直前に入力されたｓビットのデータに従って決まるｍ（ｍ＞ｎ）ビットのデータが出力される。すなわち、畳込み符号では、伝送すべきデータに対して、「ｍ−ｎ」ビットのデータが誤り訂正のために付与される。このことにより、データの冗長性が増加するので、復号時の復号誤り率を低くすることができる。
【０００５】
なお、伝送すべきデータの量（ソースデータのビット数）と、符号化によって得られるデータの量（出力データのビット数）との比率は、一般に符号化率（または、情報率）Ｒと呼ばれ、下式により与えられる。
Ｒ  ＝  ｎ／ｍ
この符号化率Ｒは、誤り訂正符号においては、常に１よりも小さい。また、一般に、符号化率Ｒは、復号装置における誤り訂正能力を決めるパラメータの１つである。たとえば、符号化率Ｒが小いと、誤り訂正能力は高くなる。
【０００６】
図２０は、畳込み符号を用いた既存の誤り訂正符号化装置の一例のブロック図である。この誤り訂正符号化装置５００は、互いに並列に設けられた２つの畳込み部５０１および５０２を備える。このように、互いに並列に設けられた複数の畳込み部を備える符号化装置は、しばしば、「ターボ符号化装置」と呼ばれている。
【０００７】
誤り訂正符号化装置５００は、ソースデータｄに対して、データ系列ｘ、及びそのデータ系列ｘを訂正するためのパリティデータ系列ｙ１、ｙ２を生成する。データ系列ｘ、パリティデータ系列ｙ１、ｙ２は、多重化されて出力される。そして、この出力がソースデータｄの符号化データである。以下では、Ｎビットのソースデータｄを符号化する際の動作を説明する。
【０００８】
ソースデータｄは、そのままデータ系列ｘとして出力されるとともに、畳込み部５０１およびインターリーバ５０３に与えられる。畳込み部５０１は、ソースデータｄに対して畳込み符号化を実行してパリティデータ系列ｙ１を出力する。インターリーバ５０３は、入力されたＮビットのソースデータｄをいったん保持し、その後に入力順序と異なる順序でその保持されているソースデータｄを読み出して出力する。このことにより、ソースデータｄはランダム化される。インターリーバ５０３の出力は、畳込み部５０２に対して与えられる。そして、畳込み部５０２は、そのインターリーバ５０３の出力に対して畳込み符号化を実行してパリティデータ系列ｙ２を出力する。
【０００９】
上記動作により、誤り訂正符号化装置５００は、Ｎビットのソースデータｄに対して、Ｎビットのデータ系列ｘ、Ｎビットのパリティデータ系列ｙ１、およびＮビットのパリティデータ系列ｙ２を生成する。これらのデータ系列ｘ、パリティデータ系列ｙ１、ｙ２は、例えば、ビット毎に多重化されて符号化データとして出力される。従って、この場合、誤り訂正符号化装置５００は、Ｎビットの入力に対して３×Ｎビットのデータを出力するので、その符号化率Ｒは、１／３となる。
【００１０】
図２１は、図２０に示した誤り訂正符号化装置の変形例のブロック図である。誤り訂正符号化装置５１０は、図２０に示した誤り訂正符号化装置５００に対して選択部５１１を設けることにより実現される。選択部５１１は、予め決められている選択パターンに従って、畳込み部５０１および５０２によりそれぞれ生成されるパリティデータ系列ｙ１およびｙ２を選択してパリティデータ系列Ｚとして出力する。尚、選択部５１１の動作は、「パンクチャリング（Puncturing）」と呼ばれることがある。
【００１１】
選択部５１１は、畳込み部５０１および５０２の出力を交互に１ビットずつ選択する。選択部５１１の出力系列Ｚを表１に示す。ここで、「ｙ１(i) 」は、ソースデータｄの第ｉ番目のデータエレメントに対応する畳込み部５０１の出力であり、「ｙ２(i) 」は、ソースデータｄの第ｉ番目のデータエレメントに対応する畳込み部５０２の出力である。このように、選択部５１１は、誤り訂正符号化装置５１０にＮビットのソースデータｄが入力されると、Ｎビットの出力系列Ｚ（ｙ１(1) ，ｙ２(2) ，ｙ１(3) ，ｙ２(4) ，．．，ｙ１(N-1) ，ｙ２(N) ）を出力する。
【００１２】
【表１】
2006304348.tif 000003
選択部５１１によるパンクチャリング動作は、下記に示す式で表すことができる。
【００１３】
【数１】
2006304348.tif 000004
出力系列Ｚは、データ行列Ｄとパンクチャリング行列Ｐとの掛け算により得られる。例えば、ソースデータｄの第ｉ番目のデータエレメントに対しては、データ行列Ｄの第１行とパンクチャリング行列Ｐの第１列との積により「ｙ１(i) 」が得られる。また、ソースデータｄの第ｉ＋１番目のデータエレメントに対しては、データ行列Ｄの第２行とパンクチャリング行列Ｐの第２列との積により「ｙ２(i+1) 」が得られる。したがって、選択部５１１が畳込み部５０１および５０２の出力を交互に１ビットずつ選択する動作は、上記演算を繰り返し実行する動作として表される。
【００１４】
上記構成により、誤り訂正符号化装置５１０は、Ｎビットのソースデータｄに対して、Ｎビットのデータ系列ｘ、およびＮビットのパリティデータ系列Ｚを生成する。これらのデータ系列ｘおよびパリティデータ系列Ｚは、ビット毎に多重化されて符号化データとして出力される。従って、この場合、誤り訂正符号化装置５１０は、Ｎビットの入力に対して２×Ｎビットのデータを出力するので、その符号化率Ｒは、１／２となる。
【００１５】
なお、図２０および図２１に示した誤り訂正符号化装置については、米国特許５４４６７４７に詳しく開示されている。
【発明の開示】
【発明が解決しようとする課題】
【００１６】
ところで、ソースデータｄのデータ長Ｎ（ビット数）に対する符号化装置の出力系列のデータ長Ｍを任意の長さにしたい、という要求がある。たとえば、移動体通信システムにおいては、一般に、所定のデータ長ごとに分割された音声データ等が予め決められたデータ長のフレームの中に格納されて伝送される。すなわち、移動体通信システムにおいて符号を使用する場合には、所定のデータ長ごとに分割された音声データ等は、符号化された後にフレームの中に格納される。
【００１７】
ところが、図２０または図２１に示した従来の誤り訂正符号化装置の符号化率Ｒはそれぞれ固定されていた。したがって、予め決められた固定長のデータ（上述の例では、フレーム）を作成する場合、そのフレームのデータ格納領域を満たすためには、そこに無意味な情報を格納しなければならなかった。
【００１８】
図２２（ａ）は、図２０に示す誤り訂正符号化装置５００を使用してソースデータを符号化して固定長のフレームに格納する場合の処理を説明する図である。ここでは、ソースデータｄが３３３ビット、また、フレームのデータ格納領域が１５００ビットである。この場合、誤り訂正符号化装置５００は、３３３ビットのデータ系列ｘ、３３３ビットのパリティデータ系列ｙ１、および３３３ビットのパリティデータ系列ｙ２を生成するので、フレームのデータ格納領域を満たすためには、図２２（ｂ）に示すように、５０１ビットのダミーデータをそのフレームに格納しなければならない。従って、網を介してそのフレームを伝送すると、無駄なデータが伝送されることになり、網資源が浪費されてしまう。
【００１９】
図２３（ａ）は、図２１に示す誤り訂正符号化装置５１０を使用してソースデータを符号化して固定長のフレームに格納する場合の処理を説明する図である。ここでは、ソースデータｄが６６６ビット、フレームのデータ格納領域が１５００ビットである。この場合、選択部５１１は、パンクチャリング処理により、パリティデータ系列ｙ１およびパリティデータ系列ｙ２からパリティデータ系列Ｚを生成する。したがって、誤り訂正符号化装置５１０は、６６６ビットのデータ系列ｘ、および６６６ビットのパリティデータ系列Ｚを生成するので、フレームのデータ格納領域を満たすためには、図２３（ｂ）に示すように、１６８ビットのダミーデータをそのフレームに格納しなければならない。したがって、図２２に示した例と同様に、無駄なデータが伝送されることになる。
【００２０】
このように、互いに並列に設けられた複数の畳込み部を備える既存の誤り訂正符号化装置は、その符号化率を所望の値に設定できなかったので、ソースデータを符号化して所定のフレームに格納する際、その効率が悪かった。
【００２１】
本発明の課題は、互いに並列に設けられた複数の畳込み部を備える誤り訂正符号化装置において所望の符号化率が得られるようにすることである。
【課題を解決するための手段】
【００２２】
本発明の符号化装置は、ソースデータを符号化して第１のパリティデータを生成する第１のエンコーダと、上記ソースデータについてインターリーブ処理を行ってランダム化データを生成するインターリーバと、上記ランダム化データを符号化して第２のパリティデータを生成する第２のエンコーダと、上記ソースデータのデータ長および送信フレームに含まれる出力系列のデータ長に基づいて決まる符号化率に対応して決定されるビット数のデータエレメントを上記第１および第２のパリティデータから各々同数又はほぼ同数選択して第１および第２の選択データを生成する選択手段と、を有する。
【発明の効果】
【００２３】
ソースデータを符号化する誤り訂正符号化装置において、所望の符号化率（情報率）が得られる。したがって、この装置を通信システムに利用すれば、無意味なデータを伝送する必要がなくなるので、伝送効率が向上するとともに、復号特性が向上する。
【発明を実施するための最良の形態】
【００２４】
本発明の誤り訂正符号化装置は、様々な分野に適用可能であり、たとえば、通信システムや、データ記憶装置において利用され得る。
図１は、本実施形態の誤り訂正符号化装置が適用される移動体通信システムの構成図である。無線方式は、例えば、ＣＤＭＡである。基地局１０は、移動機２０へ送出すべきデータ（データＡ）を符号化するエンコーダ１１、符号化されたデータを変調する変調器１２、および変調されたデータを送信する送信機１３を備える。基地局１０から送出された無線信号は、移動機２０の受信機２１により受信され、復調器２２により復調され、そしてデコーダ２３により復号される。また、基地局１０は、移動機２０から送られてくる信号を受信する受信機１４、受信信号を復調する復調器１５、および復調されたデータを復号するデコーダ１６を備える。なお、移動機２０は、基地局１０へ送出すべきデータ（データＢ）をエンコーダ２４を用いて符号化し、変調器２５を用いて変調し、そして送信機２６を用いて送信する。
【００２５】
上記通信システムにおいて、本実施形態の誤り訂正符号化装置は、基地局１０に設けられるエンコーダ１１または移動機２０に設けられるエンコーダ２４に相当する。
図２は、本実施形態の誤り訂正符号化装置が適用される記憶装置の構成図である。この記憶装置３０は、データ格納部３３に書き込むべきデータを符号化するエンコーダ３１、符号化されたデータをデータ格納部３３に書き込む書込み制御部３２を備える。データ格納部３３は、たとえば、光ディスク、磁気ディスク、半導体メモリなどの記憶媒体を含む。また、記憶装置３０は、データ格納部３３からデータを読み出す読出し制御部３４、および読み出されたデータを復号するデコーダ３５を備える。
【００２６】
上記記憶装置において、本実施形態の誤り訂正符号化装置は、エンコーダ３１に相当する。
図３は、本発明の一実施形態の誤り訂正符号化装置のブロック図である。この誤り訂正符号化装置の基本的な構成は、図２１に示した従来の誤り訂正符号化装置と同じである。本実施形態の誤り訂正符号化装置のパンクチャリング部は、図２１に示した従来の誤り訂正符号化装置の選択部５１１に対応する。但し、このパンクチャリング部は、選択部５１１とは異なる機能を備える。本実施形態の誤り訂正符号化装置は、パンクチャリング処理により所望の符号化率を実現する。以下、本実施形態の誤り訂正符号化装置の構成および動作について説明する。
【００２７】
誤り訂正符号化装置４０は、組織符号を用いてソースデータｕを符号化する。組織符号では、伝送すべきデータと、そのデータを伝送する際に発生するエラーを訂正するためのデータ（以下では、「パリティデータ」と呼ぶ）とが互いに分離されている。すなわち、誤り訂正符号化装置４０は、ソースデータｕを受け取ると、そのソースデータｕにパリティデータｚを付加して出力する。なお、誤り訂正符号化装置４０は、Ｎビットのソースデータｕを符号化する。また、誤り訂正符号化装置４０は、ソースデータｕを「データ系列Ｘk 」として出力する。パリティデータを「パリティデータ系列Ｚk 」として出力する。
【００２８】
入力Ｉ／Ｆ部４１は、受信したソースデータｕを多重化部４７、第１の畳込み部４３、およびインターリーバ４２に与える。なお、入力Ｉ／Ｆ部４１から多重化部４７に与えられるソースデータｕのことを「データ系列Ｘk 」と呼ぶ。
【００２９】
インターリーバ４２は、入力されたソースデータｕをランダム化する。インターリーバ４２は、Ｎビットのソースデータｕを一時的に保持するためのメモリを備える。入力されたＮビットのソースデータｕは、１ビットずつそのメモリに書き込まれる。そして、そのメモリに書き込まれたデータは、そのメモリへの書き込み順序とは異なる順序で１ビットずつ読み出される。このことにより、ソースデータｕはランダム化される。
【００３０】
なお、インターリーバ４２を設けた目的は、畳込み部４３および４４に対して互いに異なる独立したデータ系列を与えることである。したがって、図３においては、第２の畳込み部４４の前段にのみインターリーバを設けているが、第１の畳込み部４３および第２の畳込み部４４に対してそれぞれインターリーバを設けてもよい。ただし、その場合には、それら２つのインターリーバにより実行されるランダム化処理が互いに異なっている必要がある。
【００３１】
第１の畳込み部４３は、入力されたソースデータｕに対して畳込み処理を実行する。一方、第２の畳込み部４４は、インターリーバ４２によってランダム化されたソースデータｕに対して畳込み処理を実行する。第１の畳込み部４３および第２の畳込み部４４は、互いに同じ構成であってもよいし、互いに異なる構成であってもよい。以下では、これら２つの畳込み部４３、４４の構成が互いに同じであるものとする。
【００３２】
第１の畳込み部４３は、互いに直列に接続された複数のメモリＭ、および１つ以上の加算機を備える。各メモリＭは、たとえば、フリップフロップであり、それぞれ１ビットのデータを保持する。直列に接続されたメモリＭは、シフトレジスタを構成する。加算機は、例えば、排他論理和演算器、又はｍｏｄ２加算機である。図３に示す構成では、第１の畳込み部４３は、２つのメモリＭ、および３つの加算機を備える。この場合、メモリＭにより保持されるデータ量が２ビットなので、拘束長＝２である。なお、この明細書では、畳込み回路の拘束長＝畳込み回路のメモリに格納されるデータのビット数とする。
【００３３】
第１の畳込み部４３は、ソースデータｕのデータエレメントを受け取る毎に、その受け取ったデータエレメントに対応するパリティデータ系列Ｙ1kのデータエレメントを出力する。パリティデータＹ1kのデータエレメントは、第１の畳込み部４３へ新たに入力されたデータエレメントと、そのデータエレメントが入力されたタイミングにおいて上記メモリＭに保持されているデータエレメントとの和によって得られる。すなわち、この畳込み処理では、新たに入力されたデータエレメントに対応するデータエレメントは、先に入力されている１以上のデータエレメントおよびその新たに入力されたデータエレメントに基づいて生成されて出力される。
【００３４】
第１の畳込み部４３の各メモリＭには、それぞれ初期値として「０」が設定される。そして、第１の畳込み部４３は、Ｎビットのデータ系列が入力されると、Ｎビットのパリティデータ系列を出力し、さらにそのパリティデータ系列に続いて終結ビット（tail bit）を出力する。終結ビットのデータ長は、例えば、メモリＭの数と同じであり、「２」である。
【００３５】
第２の畳込み部４４の構成および動作は、基本的に上述した第１の畳込み部４３の構成および動作と同じである。但し、第２の畳込み部４４は、インターリーバ４２によってランダム化されたソースデータｕに対して畳込み処理を実行し、パリティデータ系列Ｙ2kを生成する。
【００３６】
なお、畳込み処理は、既知の技術であり、当業者にはよく知られているので、ここではその詳細な説明は省略する。
第１のパンクチャリング部４５は、第１の畳込み部４３により生成されるパリティデータ系列Ｙ1kの各データエレメントを予め決められたパターンに従って選択し、パリティデータ系列Ｚ1kとして出力する。同様に、第２のパンクチャリング部４６は、第２の畳込み部４４により生成されるパリティデータ系列Ｙ2kの各データエレメントを予め決められたパターンに従って選択し、パリティデータ系列Ｚ2kとして出力する。図３に示す畳込み符号化装置４０の特徴は、これらのパンクチャリング部によるデータエレメントの選択方法である。データエレメントの選択方法については、後述詳しく説明する。
【００３７】
多重化部４７は、入力Ｉ／Ｆ部４１から与えられるデータ系列Ｘk 、第１のパンクチャリング部４５から与えられるパリティデータ系列Ｚ1k、および第２のパンクチャリング部４６から与えられるパリティデータ系列Ｚ2kを多重化して出力する。この多重化部４７からの出力系列Ｃは、ソースデータｕに対する符号化データである。なお、多重化部４７は、入力される３つのデータ系列のタイミングを調整する機能を備えている。これにより、ソースデータｕ（データ系列Ｘk ）の各データエレメントが出力される際には、そのソースデータｕのデータエレメントに対応するパリティデータ系列Ｚ1kおよびＺ2kの各データエレメントがそのソースデータのデータエレメントに関連づけられて出力される。
【００３８】
このように、誤り訂正符号化装置４０は、ソースデータｕが入力されると、そのソースデータｕのデータ系列と同じデータ系列であるデータ系列Ｘk に、誤り訂正のためのパリティデータ系列Ｚ1kおよびＺ2kを付与して出力する。
【００３９】
次に、第１のパンクチャリング部４５および第２のパンクチャリング部４６の動作を構成および説明する。ここでは、ソースデータｕのデータ長がＮビットであり、出力系列Ｃのデータ長がＭビットであることが予め決められているものとする。この場合、誤り訂正符号化装置４０は、符号化率＝Ｎ／Ｍが要求される。ソースデータｕおよび出力系列Ｃのデータ長は、たとえば、この誤り訂正符号化装置が通信システムにおいて利用される場合には、その通信システムの仕様により決定される。特に、出力系列Ｃのデータ長は、その通信システムで伝送されるフレームのフォーマットにより決められる。
【００４０】
図４は、第１のパンクチャリング部４５のブロック図である。なお、第２のパンクチャリング部４６も基本的に同じ構成である。
ラッチ回路５１は、第１の畳込み部４３から出力されるパリティデータ系列Ｙ1kを１ビットずつ保持する。すなわち、ラッチ回路５１は、第１の畳込み部４３からパリティデータ系列Ｙ1kのデータエレメントが出力される毎に更新される。ＣＰＵ５２は、メモリ５３に格納されているプログラムを実行することにより、ラッチ回路５１に保持されているデータエレメントからパリティデータＺ1kのデータエレメントを生成する。パリティデータＺ1kデータエレメントは、出力ポート５４を介して多重化部４７へ送出される。
【００４１】
メモリ５３は、ＣＰＵ５２により実行されるプログラム、およびそのプログラムにより利用されるパンクチャリングテーブルを格納する。このプログラムについては、後述説明する。
【００４２】
図５は、パンクチャリングテーブルの一例を示す図である。パンクチャリングテーブルは、パリティデータ系列Ｙ1kの各データエレメントを選択するか否かを表す選択情報（パンクチャリングパターン情報）を格納する。したがって、この選択情報のデータ長は、第１の畳込み部４３からの出力データ系列のデータ長と同じになる。第１の畳込み部４３は、ソースデータｕのデータ長がＮビットである場合には、Ｎビットのパリティデータ系列Ｚ1kを出力する。したがって、この場合、選択情報のデータ長も、Ｎビットになる。
【００４３】
なお、第１の畳込み部４３は、ソースデータｕを受信すると、パリティデータ系列Ｙ1kを出力し、その後に終結ビットを出力する。ただし、この終結ビットに対してはパンクチャリング処理を実行しない。すなわち、この終結ビットは、パンクチャリング部に入力されることなく、多重化部４７へ送られる。
【００４４】
図５において、選択情報＝「０」は、入力データエレメントを選択しないことを表し、選択情報＝「１」は、入力データエレメントを選択することを表す。例えば、図５に示す選択情報は、入力データ系列から、第２番目、第４番目、第５番目、．．．、Ｎ番目のデータエレメントを選択する旨を規定している。すなわち、このパンクチャリングテーブルを用いてパンクチャリング処理が実行されると、パリティデータ系列Ｙ1k＝Ｙ11，Ｙ12，Ｙ13，Ｙ14，Ｙ15，．．．が順番に入力された場合には、Ｙ12，Ｙ14，Ｙ15，．．．が選択されることになる。そして、この選択されたデータエレメントは、パリティデータ系列Ｚ1kとして多重化部４７へ出力される。
【００４５】
第２のパンクチャリング部４６は、基本的に第１のパンクチャリング部４５と同じである。また、第２のパンクチャリング部４６に設けられるパンクチャリングテーブルも、基本的には第１のパンクチャリング部４５に設けられるパンクチャリングテーブルと同じである。ただし、これら２つのテーブルに設定される選択情報は、必ずしも互いに同じである必要はない。
【００４６】
なお、図４に示したＣＰＵ５２およびメモリ５３は、第１のパンクチャリング部４５および第２のパンクチャリング部４６により共有可能である。さらに、選択情報として１つのパンクチャリングパターンを用意しておき、第１のパンクチャリング部４５および第２のパンクチャリング部４６がその選択情報を共用するようにしてもよい。
【００４７】
パンクチャリングテーブルは、メモリ５３内のＲＡＭ領域に格納される。したがって、必要に応じて選択情報を変更することができる。このことにより、所望の符号化率を得ることができる。また、ソースデータのデータ長に応じて、或いは畳込み部の出力系列のデータ長に応じて選択情報のデータ長を変更することも可能である。
【００４８】
次に、パンクチャリングテーブルの作成方法（即ち、選択情報の作成方法）を説明する。以下では、ソースデータｕのデータ長をＮビット、出力系列Ｃのデータ長をＭビットにする旨が要求されているものとする。この場合、符号化率Ｒ＝Ｎ／Ｍが要求される。なお、第１の畳込み部４３および第２の畳込み部４４によりそれぞれ生成される終結ビットは、そのデータ長がソースデータｕのデータ長と比べて十分に短いので、以下の説明では無視するものとする。
【００４９】
ソースデータｕのデータ長が「Ｎ」である場合は、データ系列Ｘk 、第１の畳込み部４３により生成されるパリティデータ系列Ｙ1k、および第２の畳込み部４４により生成されるパリティデータ系列Ｙ2kのデータ長は、それぞれ「Ｎ」になる。したがって、出力系列Ｃのデータ長をＭビットにするためには、第１のパンクチャリング部４５および第２のパンクチャリング部４６によりそれぞれ生成されるパリティデータ系列Ｚ1kおよびＺ2kの各データ長をそれぞれ「Ｋ1 」および「Ｋ2 」とした場合、以下の式を満たす必要がある。
Ｎ＋Ｋ1 ＋Ｋ2 ＝Ｍ
ここで、Ｋ1 ＝Ｋ2 ＝Ｋとすると、下式が得られる。
Ｋ＝（Ｍ−Ｎ）／２（ただし、Ｍ＞Ｎ，Ｎ＞Ｋ）
すなわち、この場合、第１のパンクチャリング部４５は、Ｎ個のデータエレメントから構成されるパリティデータ系列Ｙ1kからＫ個のデータエレメントを選択してパリティデータ系列Ｚ1kとして出力することになる。同様に、第２のパンクチャリング部４６は、Ｎ個のデータエレメントから構成されるパリティデータ系列Ｙ2kからＫ個のデータエレメントを選択してパリティデータ系列Ｚ2kとして出力することになる。
【００５０】
Ｎ個のデータエレメントからＫ個を選択する際には、パンクチャリングテーブルが利用される。パンクチャリングテーブルに格納される選択情報は、上述したように、入力系列の各データエレメントを選択するか否かを表すので、Ｋ個のデータエレメントを選択するには、Ｎビットの選択情報の中のＫビットに「１：選択」割り当て、他のビットに「０：非選択」を割り当てればよい。Ｎビットの中のＫビットに対して「１」を割り当てる方法の具体例を以下に示す。
【００５１】
（１）複数のシード系列k/n を作成する。「k/n 」は、ｋ個の「１」が均等に割り当てられたｎビットの系列である。なお、ｋ＝１，２，３，．．．、ｎ＝１，２，３，．．．である。また、ｎ＞ｋである。シード系列は、例えば、「ｎ」の最大値を１０、「ｋ」の最大値を９として作成する。シード系列の一部を示す。なお、各シード系列の先頭ビットには、「０」を割り当てる。
k/n = 2/7 ：（０００１００１）
1/3 ：（００１）
3/8 ：（００１００１０１）
2/5 ：（００１０１）
3/7 ：（００１０１０１）
4/9 ：（００１０１０１０１）
5/9 ：（０１０１０１０１１）
1/2 ：（０１）
4/7 ：（０１１０１０１）
3/5 ：（０１１０１）
5/8 ：（０１１１０１０１）
3/4 ：（０１１１）
4/5 ：（０１１１１）
5/6 ：（０１１１１１）
（２） 最適なシード系列を選択する。具体的には、「Ｋ／Ｎ」≧「k/n 」という条件の下で、下式により得られる値ｒが最小となる「k/n 」をさがす。
【００５２】
【数２】
2006304348.tif 000005
たとえば、ソースデータｕのデータ長Ｎが「３００」であり、パンクチャリング処理によって３００個のデータエレメントから１５５個を選択する場合には、Ｋ／Ｎ＝１５５／３００を代入すれば、「k/n 」として「１／２」が得られる。また、この場合、ｒ＝０．０１６６６が得られる。
【００５３】
（３）上記（２）で選択したシード系列を用いてパンクチャリングテーブルに書き込むべき選択情報のベースパターンを作成する。具体的には、選択したシード系列を繰り返すことにより、データ長＝Ｎのベースパターンを作成する。例えば、上述の例のように、k/n ＝１／２のシード系列が選択された場合には、シード系列（０１）を繰り返すことにより、３００ビットのベースパターンを得る。
【００５４】
（４）ベースパターンを修正することにより、選択情報を得る。具体的には、まず、Ａ＝ｒ・Ｎを算出する。そして、上記（４）において作成したベースパターンにおいて、Ａ個の「０」を均等に選択し、それらを「１」に置き換える。なお、ベースパターンの先頭ビットは、選択しない。たとえば、上述の例の場合には、Ａ＝０．１６６６×３００＝５が得られるので、ベースパターン（０１０１０１０１．．．０１０１）において、５個の「０」が「１」に置き換えられる。
【００５５】
上記処理により得られたパターンは、選択情報（パンクチャリングパターン情報）としてパンクチャリングテーブルに格納される。
第１のパンクチャリング部４５および第２のパンクチャリング部４６にそれぞれ設けられるパンクチャリングテーブルは、一実施例としては、互いに同じものを用いるが、それら２つのテーブルは必ずしも互いに同じである必要はない。ただし、それら２つのテーブルに格納される各選択情報に含まれる「１」の数は、互いに同じであるか、あるいは互いに近接していることが望ましい。各選択情報に含まれる「１」の数の差が互い大きく異なると、復号特性が悪くなる恐れがある。
【００５６】
選択情報の先頭ビットを「０」にする理由は以下の通りである。選択情報の先頭ビットは、第１の畳込み部４３により生成されるパリティデータ系列Ｙ1k（または、第２の畳込み部４３により生成されるパリティデータ系列Ｙ2k）の先頭データエレメントを選択するか否かを表す。パリティデータ系列Ｙ1kの先頭データエレメントは、第１の畳込み部４３において、ソースデータｕの先頭データエレメントと図３に示したメモリＭに格納されている初期値との加算演算により生成される。ところが、この初期値は、一般に、「オール０」であるので、パリティデータ系列Ｙ1kの先頭データエレメントは、ソースデータｕの先頭データエレメントそのものである。すなわち、「畳込み」による効果は得られない。したがって、選択情報の先頭ビットに「１」を割り当てることにより、そのパリティデータ系列Ｙ1kの先頭データエレメントを選択して受信装置へ送ったとしても、復号処理において誤り訂正能力を向上させることには寄与しない。
【００５７】
このため、本実施形態では、選択情報の中の「１」を先頭以外の他のデータエレメントを選択するために割り当てることにより、復号処理における誤り訂正能力の向上を図っている。
【００５８】
次に、パンクチャリングテーブルを用いたパンクチャリング処理を説明する。第１のパンクチャリング部４５は、パリティデータ系列Ｙ1kのデータエレメントを受け取るごとに、パンクチャリングテーブルを参照して、そのデータエレメントを選択するか否かを判断する。選択したデータエレメントは、パリティデータ系列Ｚ1kとして多重化部４７へ送出される。一方、選択されなかったデータエレメントは、多重化部４７へ送出されることなく廃棄される。この処理は、第２のパンクチャリング部４６においても同様である。
【００５９】
図６は、パンクチャリング処理のフローチャートである。この処理は、畳込み部により生成されるパリティデータ系列Ｙk のデータエレメントがラッチ回路５１に書き込まれるごとに実行される。なお、パリティデータ系列Ｙk は、パリティデータ系列Ｙ1kまたはＹ2kを表す。即ち、このフローチャートの処理が第１のパンクチャリング部４５の動作を表す場合には、Ｙk ＝Ｙ1kであり、このフローチャートの処理が第２のパンクチャリング部４６の動作を表す場合には、Ｙk ＝Ｙ2kである。
【００６０】
ステップＳ１では、ラッチ回路５１からデータエレメントを取得する。ステップＳ２では、ラッチ回路５１に書き込まれたデータエレメントがパリティデータ系列Ｙk 内の第何番目のデータエレメントであるのかを計数するためのカウンタをインクリメントする。このカウント値ｋは、データエレメントの位置情報あるいはシーケンスナンバに対応する。なお、このカウンタは、１セットのソースデータに対する処理が終了するごとにリセットされる。
【００６１】
ステップＳ３では、上記カウンタのカウント値ｋを用いて、図５に示すパンクチャリングテーブルを参照する。このことにより、ラッチ回路５１に書き込まれたデータエレメントに関する選択情報Ｐ(k) が得られる。ステップＳ４では、ステップＳ３で得た選択情報Ｐ(k) が「１」であるか「０」であるかを調べる。選択情報Ｐ(k) ＝１であれば、ステップＳ５において、ラッチ回路５１に書き込まれたデータエレメントを出力ポート５４を介して多重化部４７へ送出する。このとき、パンクチャリングテーブルを参照する際に用いたカウント値ｋも多重化部４７へ送る。一方、選択情報Ｐ(k) ＝０であれば、ステップＳ６において、ラッチ回路５１に書き込まれたデータエレメントを廃棄する。
【００６２】
ステップＳ７では、カウント値ｋが「Ｎ」に達したか否かを調べる。カウント値ｋが「Ｎ」に達していれば、１セットのソースデータに対する処理が終了したものとみなし、ステップＳ８において上記カウンタをリセットする。
【００６３】
このように、第１のパンクチャリング部４５および第２のパンクチャリング部４６は、入力されるＮビットのパリティデータ系列Ｙk からＫビットを選択して出力する。なお、この選択処理は、上記ステップＳ１〜Ｓ８を記述したプログラムをＣＰＵ５２に実行させることにより実現される。
【００６４】
第１のパンクチャリング部４５および第２のパンクチャリング部４６による出力の例を表２に示す。
【００６５】
【表２】
2006304348.tif 000006
この出力は、入力されるソースデータｕが９ビットであり、また、第１のパンクチャリング部４５および第２のパンクチャリング部４６におけるパンクチャリングパターンＰが共に（００１１０１００１）であった場合に得られる。
【００６６】
図７は、多重化部４７のブロック図である。多重化部４７は、データ系列Ｘk を保持するためのバッファ６１、第１のパンクチャリング部４５により生成されたパリティデータ系列Ｚ1kを保持するためのメモリ６２、第２のパンクチャリング部４６により生成されたパリティデータ系列Ｚ2kを保持するためのメモリ６３およびバッファ６１、およびメモリ６２、６３からデータエレメントを読み出して出力する読出し制御部６４を備える。
【００６７】
データ系列Ｘk のデータエレメントは、バッファ６１に順番に書き込まれる。パリティデータ系列Ｚ1kは、第１のパンクチャリング部４５により選択されたデータエレメントである。これらのデータエレメントは、シーケンスナンバに対応付けられてメモリ６２に書き込まれる。各データエレメントに対応するシーケンスナンバは、たとえば、図６を参照しながら説明したカウンタのカウント値ｋにより指示される。なお、メモリ６２は、シーケンスナンバ毎にそれぞれデータエレメントが書き込まれているか否かを表す「有効／無効表示」が設定される。メモリ６３の構成は、メモリ６２と同じである。
【００６８】
読出し制御部６４は、予め決められた所定の間隔ごとに、バッファ６１、およびメモリ６２、６３の中のいずれか１つから１つのデータエレメントを読み出して出力する。具体的には、下記の手順（１）〜（４）を繰り返し実行することによりデータエレメントを読み出す。
（１）バッファ６１から指定されているシーケンスナンバのデータエレメントを読み出す。
（２）上記指定されているシーケンスナンバのデータエレメントがメモリ６２に格納されている場合には、それを読み出す。
（３）上記指定されているシーケンスナンバのデータエレメントがメモリ６３に格納されている場合には、それを読み出す。
（４）次のシーケンスナンバを指定する。
【００６９】
バッファ６１、メモリ６２、６３が図７に示す状態であった場合に、上記手順（１）〜（４）を繰り返し実行すると、出力系列Ｃは、以下のようになる。出力系列Ｃ＝（Ｘ1 ，Ｘ2 ，Ｘ3 ，Ｙ13，Ｙ23，Ｘ4 ，Ｙ14，Ｙ24，Ｘ5 ，．．．）
このように、図３に示した誤り訂正符号化装置４０は、パンクチャリング部に格納されている選択情報（パンクチャリングパターン）を用いて、誤り訂正のために付加されるパリティデータのデータ量を変えることができる。すなわち、選択情報の設定に従って所望の符号化率Ｒが得られる。
【００７０】
次に、上記誤り訂正符号化装置４０によって符号化されたデータ系列を復号する復号装置について簡単に説明しておく。復号処理としては、様々な方法が知られているが、基本的には、符号化処理を逆の手順で実行することによりデータ系列を復号する。
【００７１】
図８は、復号装置のブロック図である。ここでは、誤り訂正符号化装置４０の第１のパンクチャリング部４５および第２のパンクチャリング部４６において互いに同じ選択情報を用いてパリティデータＹ1kおよびＹ2kに対してパンクチャリング処理が実行されたものとする。また、この復号装置は、特に図示していないが、誤り訂正符号化装置４０において多重化されたデータ系列Ｘとパリティデータ系列Ｚとを分離する機能を備えている。
【００７２】
シリアル／パラレル変換器７１は、受信したパリティデータ系列Ｚをパリティデータ系列Ｚ1kおよびＺ2kに分離する。パリティデータ系列Ｚ1kおよびＺ2kは、それぞれ誤り訂正符号化装置４０の設けられている第１のパンクチャリング部４５および第２のパンクチャリング部４６により生成された系列である。
【００７３】
第１のデパンクチャリング部７２および第２のデパンクチャリング部７３は、それぞれ誤り訂正符号化装置４０が有するパンクチャリングテーブルと同じテーブルを備え、それぞれパリティデータ系列Ｚ1kおよびＺ2kに対して「デパンクチャリング処理」を実行する。
【００７４】
図９を参照しながら、デパンクチャリング処理の一例を説明する。ここでは、パリティデータ系列Ｚ1k＝（Ｚ11，Ｚ12，Ｚ13，Ｚ14，Ｚ15）が入力されたものとする。また、パンクチャリングテーブルには図１０に示す選択情報が格納されていたものとする。なお、以下では、第１のデパンクチャリング部７２の処理を説明するが、第２のデパンクチャリング部７３の処理も同じである。
【００７５】
第１のデパンクチャリング部７２は、パリティデータ系列Ｚ1kを受け取ると、まず、パンクチャリングテーブルのシーケンスナンバ＝「１」に対応する選択情報を調べる。この場合、選択情報＝「０」なので、第１のデパンクチャリング部７２は、「０」を出力する。つづいて、パンクチャリングテーブルのシーケンスナンバ＝「２」に対応する選択情報を調べる。この場合、選択情報＝「１」なので、第１のデパンクチャリング部７２は、パリティデータ系列Ｚ1kの先頭データエレメントである「Ｚ11」を出力する。以下、同様に、第１のデパンクチャリング部７２は、選択情報＝「０」の場合には「０」を出力し、選択情報＝「１」の場合には、パリティデータ系列Ｚ1kのデータエレメントを１つずつ順番に出力していく。この結果、第１のデパンクチャリング部７２は、下記のデータ系列を出力する。
出力系列：（０，Ｚ11，０，Ｚ12，０，Ｚ13，０，Ｚ14，Ｚ15）
この出力系列は、パリティデータ系列Ｙ1kとして、第１の復号器７４に与えられる。同様に、第２のデパンクチャリング部７３は、パリティデータ系列Ｙ2kを生成して第２の復号器７５に与える。
【００７６】
図１０は、デパンクチャリング処理のフローチャートである。ここでは、入力データ系列Ｚに対してデータ系列Ｙを生成する場合を説明する。データ系列Ｚおよびデータ系列Ｙのデータエレメントを、それぞれ「Ｚi 」「Ｙk 」と表す。
【００７７】
ステップＳ１１では、「ｋ」を用いてパンクチャリングテーブルをサーチし、対応する選択情報を取得する。ステップＳ１２では、ステップＳ１１で取得した選択情報が「１」であるか「０」であるのか調べる。取得した選択情報が「１」であれば、ステップＳ１３において、データ系列Ｙk のデータエレメントとしてデータ系列Ｚi のデータエレメントを１つ出力する。そして、ステップＳ１４において、「ｉ」をインクリメントする。一方、取得した選択情報が「０」であったときには、ステップＳ１５において、データ系列Ｙk のデータエレメントとして「０」を出力する。
【００７８】
続いて、ステップＳ１６では、「ｋ」をインクリメントする。そして、ステップＳ１７において、「ｋ」が「Ｎ」に達したか否かを調べる。「Ｎ」は、ソースデータのデータ長である。「ｋ」が「Ｎ」に達していなければ、ステップＳ１１に戻り、「ｋ」が「Ｎ」に達していれば、「ｋ」及び「ｉ」をリセットする。
【００７９】
図８に戻る。第１のデパンクチャリング部７２により生成されたパリティデータ系列Ｙ1kは、第１の復号器７４に与えられる。同様に、第２のデパンクチャリング部７３により生成されたパリティデータ系列Ｙ2kは、第２の復号器７５に与えられる。第１の復号器７４は、パリティデータ系列Ｙ1kを利用しながら受信したデータ系列Ｘk を復号する。また、第２の復号器７５は、パリティデータ系列Ｙ2kを利用しながら第１の復号器７４の出力を復号する。
【００８０】
第２の復号器７５の出力は、判定部７６において予め決められた閾値と比較される。そして、デインターリーバ７７においてその比較結果に対してデインターリービング処理（誤り訂正符号化装置４０におけるランダム化処理の逆の処理）が実行され、その結果が復号データとして出力される。
【００８１】
なお、パリティデータ系列を生成する処理を除く復号処理は、既知の技術を利用して実現可能である。たとえば、米国特許５４４６７４７に記載されている。したがって、ここでは、復号処理についての詳しい説明を省略する。
【００８２】
復号精度を向上させるためには、図１１に示すように、上記構成の復号装置を直列に接続すればよい。この場合、図８に示した復号装置が１つの復号モジュールに相当する。各復号モジュールは、受信データ系列（復号すべきデータ系列Ｘおよびパリティデータ系列）、および前段の復号モジュールにおけるデータ系列Ｘの予測値（系列Ｔ）を受け取り、復号データＳを生成すると共に、新たにデータ系列Ｘを予測する。この新たに予測されたデータ系列Ｘは、次段の復号モジュールに渡される。
【００８３】
上記構成においては、直列に接続される復号モジュールの数を増やすことにより、復号精度は向上する。たとえば、復号モジュール７０−１から出力される復号データＳよりも復号モジュール７０−４から出力される復号データＳの方が復号精度は高くなる。なお、この構成の動作は、米国特許５４４６７４７に記載されている。
【００８４】
図１１に構成において、図８に示したシリアル／パラレル変換部７１、第１のデパンクチャリング部７２、および第２のデパンクチャリング部７３は、第１段目の復号モジュール７０−１に対して設ければよい。
【００８５】
次に、本発明の他の実施形態の誤り訂正符号化装置について説明する。従来の誤り訂正符号化装置は、上述したように、一般に、符号化率が固定的に与えられていた。たとえば、図２０に示した構成では、符号化率Ｒ＝１／２であり、図２１に示した構成では、符号化率＝１／３であった。以下に説明する誤り訂正符号化装置では、任意の符号化率が得られる。特に、１／３よりも小さい任意の符号化率が得られる。
【００８６】
図１２は、本実施形態の誤り訂正符号化装置４０と従来の装置との出力の差異を示す図である。ここでは、従来の装置として、図２１に示した装置を採り上げる。従来の装置では、図２３を参照しながら説明したように、たとえば、ソースデータのデータ長が６６６ビット、要求されている出力データ長が１５００ビットである場合には、符号化データに対して１６８ビットのダミーデータが付与される。この場合、エラーを訂正するために使用されるパリティデータは、６６６ビットとなる。
【００８７】
一方、誤り訂正符号化装置４０を使用した場合には、図ｐ１に示すように、６６６ビットのパリティデータ系列Ｙ1KおよびＹ2Kから、それぞれ４１７ビットのパリティデータ系列Ｚ1KおよびＺ2Kが生成される。この結果、エラーを訂正するために使用されるパリティデータは、８３４ビットとなる。すなわち、従来の装置と比較して、エラーを訂正するために使用されるデータ量が多くなる。したがって、本実施形態においては、復号能力が高くなる。
【００８８】
図１３は、本発明の他の形態の誤り訂正符号化装置８０の構成図である。図１３において、インターリーバ４２、第１の畳込み部４３、第２の畳込み部４４、および多重化部４７は、図３に示したものと同じである。また、図１３では、入力Ｉ／Ｆ部４１を省略している。
【００８９】
誤り訂正符号化装置８０の特徴は、ビット重複部８１を設けたことである。ビット重複部８１は、所望の符号化率を得るために、ソースデータｕの中の所定数のデータエレメントを重複させる。
【００９０】
ビット重複部８１の動作を説明する。以下では、ソースデータｕのデータ長がＮビット、出力データ系列のデータ長がＭビットであるとする。また、Ｍ＞３Ｎとする。すなわち、符号化率として１／３よりも小さい値が要求されている場合を想定する。
【００９１】
ビット重複部８１においてソースデータｕの中のｒビットを重複させることによりデータ系列Ｘk を得るものとすると、データ系列Ｘk 、パリティデータ系列Ｙ1k、およびパリティデータ系列Ｙ2kの各データ長は、それぞれ「Ｎ＋ｒ」になる。したがって、出力データ系列のデータ長をＭビットにするためには、ビット重複部８１において重複させるべきビット数は下式により得られる。
（Ｎ＋ｒ）×３＝Ｍ
∴ｒ＝Ｍ／３−Ｎ
たとえば、ソースデータｕのデータ長を２５０ビット、要求される出力系列のデータ長を９００ビットとすると、上式にＮ＝２５０、Ｍ＝９００を代入することにより、ｒ＝５０が得られる。
【００９２】
ビット重複部８１は、望ましくは、「拘束長＋１」ビットごとにソースデータｕのデータエレメントを重複させる。ここで、拘束長は、畳込み処理においてメモリに保持されるデータのビット数である。たとえば、図１３に示す構成においては、拘束長＝２なので、３ビットごとにソースデータｕのデータエレメントが重複される。
【００９３】
このように、所定のデータエレメントを重複させたデータ系列を符号化して伝送すると、符号技術において既知であるように、データエレメントが重複している部分の後続のデータエレメントに対する復号処理の精度が向上する。
【００９４】
図１４は、ビット重複部８１の動作例を示す図である。ここでは、ソースデータｕのデータ長が７ビット、拘束長＝２、要求される出力系列のデータ長が２７ビットの場合を示している。この場合、２個のデータエレメントが重複される。また、３ビット毎にデータエレメントが重複される。この処理により、誤り訂正符号化装置８０の符号化率は、「７／２７」になる。
【００９５】
図１５は、ビット重複部８１の動作を説明するフローチャートである。ここでは、ソースデータｕ（ｕ0 ，ｕ1 ，ｕ2 ，ｕ3 ，．．．，ｕi ，．．．）が入力されたものとする。また、重複すべきデータエレメントの数を「ｒ」とする。さらに、ｘビット毎にデータエレメントを重複する。
【００９６】
ステップＳ２１では、ソースデータｕのデータエレメントｕi を取得する。以下では、「ｉ」をシーケンスナンバを呼ぶことにする。ステップＳ２２では、ビット重複数ｊが重複すべきデータエレメントの数である「ｒ」に達しているか否かを調べる。ビット重複数ｊは、当該ソースデータｕにおいて既にビット重複を実行した回数を表す。ｊ＞ｒであれば、すでに必要な数のビット重複を終了しているものとみなし、ステップＳ２３において、取得したデータエレメントｕi をそのまま出力する。一方、ｊ≦ｒであれば、更にビット重複を行う必要があるとみなし、ステップＳ２４に進む。
【００９７】
ステップＳ２４では、シーケンスナンバｉが「ｘ」の整数倍であるか否かを調べる。シーケンスナンバｉが「ｘ」の整数倍でなければ、ビット重複を行わないので、ステップＳ２３へ進む。一方、シーケンスナンバｉが「ｘ」の整数倍であったときには、ビット重複を行う。すなわち、ステップＳ２５およびＳ２６においてそれぞれデータエレメントｕi を出力する。このことにより、データエレメントｕi は重複される。続いて、ステップＳ２７において、ビット重複数ｊをインクリメントする。
【００９８】
ステップＳ２８では、シーケンスナンバｉが「Ｎ」に達したか否かを調べる。シーケンスナンバｉが「Ｎ」に達していない場合には、ステップＳ２９においてそのシーケンスナンバｉをインクリメントした後、ステップＳ２１に戻って次のデータエレメントを取得する。一方、シーケンスナンバｉが「Ｎ」に達している場合には、当該ソースデータのすべてのデータエレメントについてステップＳ２１〜Ｓ２９の処理が実行されたものとみなし、ステップＳ３０において「ｉ」および「ｊ」をリセットした後に処理を終了する。
【００９９】
このように、図１３に示した誤り訂正符号化装置８０は、所望の符号化率を得るために、ソースデータの中の所定数のデータエレメントを重複させる。換言すれば、ソースデータの中の所定数のデータエレメントを重複させることにより、所望の符号化率が得られる。また、重複ビットは、復号処理において利用されるので、伝送路の誤り率を小さくすることができる。
【０１００】
なお、誤り訂正符号化装置８０によって符号化されたデータ系列を復号する復号装置は、通常の復号処理を実行した後に、ビット重複部８１による処理を逆の手順で実行する機能を設ければよい。
【０１０１】
図１６は、本発明の更に他の形態の誤り訂正符号化装置９０の構成図である。図１６において、インターリーバ４２、第１の畳込み部４３、第２の畳込み部４４、および多重化部４７は、図３に示したものと同じである。
【０１０２】
誤り訂正符号化装置９０の特徴は、ダミービット挿入部９１を設けたことである。ダミービット挿入部９１は、所望の符号化率を得るために、ソースデータｕに対して所定数のダミービットを挿入する。
【０１０３】
ダミービット挿入部９１の動作を説明する。以下では、ソースデータｕのデータ長がＮビット、出力データ系列のデータ長がＭビットであるとする。また、Ｍ＞３Ｎとする。すなわち、符号化率として１／３よりも小さい値が要求されている場合を想定する。
【０１０４】
ダミービット挿入部９１においてソースデータｕに対してｒビットのダミービットを挿入することによりデータ系列Ｘk を得る場合、データ系列Ｘk 、パリティデータ系列Ｙ1k、及びパリティデータ系列Ｙ2kの各データ長は、それぞれ「Ｎ＋ｒ」になる。従って、出力データ系列のデータ長をＭビットにするためには、ダミービット挿入部９１において挿入すべきビット数は下式により得られる。
（Ｎ＋ｒ）×３＝Ｍ
∴ｒ＝Ｍ／３−Ｎ
ダミービット挿入部９１は、望ましくは、拘束長と同じ長さのダミービットを挿入する。拘束長は、上述したように、畳込み処理においてメモリに保持されるデータのビット数である。したがって、図１３に示す構成においては、ダミービットは、２ビットを１単位としてソースデータｕに挿入される。
【０１０５】
ダミービットとしては、「１」または「０」を用いる。ここで、もしダミービットとして「１」を用いるとすると、拘束長＝２の場合には、ダミーデータとして「１１」が挿入される。例えば、ソースデータｕのデータ長を２５０ビット、要求される出力系列のデータ長を９００ビットとすると、ｒ＝５０が得られる。すなわち、ソースデータｕに対して５０ビットのダミービットを挿入することが要求される。ここで、拘束長＝２とすると、ソースデータｕに対して「１１」が２５カ所に挿入されることになる。挿入位置は、均等に分散させることが望ましい。
【０１０６】
このように、ダミーデータとして「１」が挿入されたデータ系列を符号化して伝送すると、符号技術において既知であるように、そのダミービットの後続のデータエレメントに対する復号処理の精度が向上する。
【０１０７】
なお、図２２および図２３を参照しながら説明したように、従来の誤り訂正符号化装置においてもしばしばダミーデータが使用されていた。しかしながら、従来の方法では、符号化されたデータ系列に対してダミーデータを付加していたのに対し、誤り訂正符号化装置９０では、ソースデータにダミービットを挿入し、そのダミービットが挿入されたソースデータを符号化する構成である。即ち、従来の方法においては、ダミーデータは、「無意味なデータ」であったが、誤り訂正符号化装置８０においては、ダミービットは、復号処理において事前確率尤度として利用されるので、有用なデータである。
【０１０８】
図１７は、ダミービット挿入部９１の動作例を示す図である。ここでは、ソースデータｕのデータ長が７ビット、拘束長＝２、要求される出力系列のデータ長が２７ビットの場合を示している。この場合、ソースデータｕに対して２ビットのダミービットを挿入することにより、符号化率＝７／２７を実現している。
【０１０９】
このように、図１６に示した誤り訂正符号化装置９０は、所望の符号化率を得るために、ソースデータの中の所定数のダミービットを挿入する。換言すれば、ソースデータの中の所定数のダミービットを挿入することにより、所望の符号化率が得られる。また、挿入されたダミービットは、復号処理において利用されるので、伝送路の誤り率を小さくすることができる。
【０１１０】
なお、誤り訂正符号化装置９０によって符号化されたデータ系列を復号する復号装置は、通常の復号処理を実行した後に、ダミービットを除去する機能を設ければよい。
上記図３、図１３、および図１６に示した誤り訂正符号化装置は、それぞれ互いに並列に接続された２つの畳込み部を備える構成であったが、本発明は、この構成に限定されるものではない。すなわち、本発明は、互いに並列に接続された複数の畳込み部を有する装置に適用可能である。
【０１１１】
図１８は、ｍ個の畳込み部を備える誤り訂正符号化装置１００のブロック図である。畳込み部１０１−１〜１−１−ｍは、それぞれソースデータに対して畳み処理を実行する。畳込み部１０１−２〜１−１−ｍに対して互いに異なるインターリーバが設けられている。このことにより、畳込み部１０１−１〜１−１−ｍに対して互いに異なる系列が与えられる。
【０１１２】
パンクチャリング部１０２は、畳込み部１０１−１〜１−１−ｍからそれぞれ出力されるパリティデータ系列Ｙ1k〜Ｙmkのから所定数のデータエレメントを選択して出力する。たとえば、ソースデータｕのデータ長をＮビット、出力系列Ｃのデータ長をＭビットである場合、すなわち符号化率＝Ｎ／Ｍである場合、パンクチャリング部１０２は、以下のようにしてデータエレメントを選択する。ここで、各畳込み部１０１−１〜１−１−ｍは、Ｎビットの系列が与えられたときにＮビットのパリティデータを出力するものとする。
【０１１３】
パンクチャリング部１０２によりパリティデータ系列Ｙ1k〜ＹmkからそれぞれＫ1 〜Ｋm 個のデータエレメントを選択するものとすると、下式が得られる。
Ｎ＋Ｋ1 ＋Ｋ2 ＋Ｋ3 ＋・・・＋Ｋm ＝Ｍ
ここで、Ｋ1 ＝Ｋ2 ＝Ｋ3 ＝・・・＝Ｋm ＝Ｋとすると、下式が得られる。
Ｋ＝（Ｍ−Ｎ）／ｍ
∴符号化率Ｒ＝Ｎ／Ｍ＝（Ｍ−ｍ・Ｋ）／Ｍ    （ただし、Ｍ＞Ｎ，Ｎ＞Ｋ）
このように、誤り訂正符号化装置の符号化率Ｒは、並列に設けられる畳込み部の数、およびＮビットの系列から選択すべきデータエレメントの数に応じて決めることができる。
【０１１４】
なお、上記実施例では、図３、図１３、図１６に示す誤り訂正符号化装置が互いに独立しているものとして説明したが、これらの装置を任意に組み合わせることができる。たとえば、図３に示した誤り訂正符号化装置４０の入力部に、図１３に示したビット重複部８１あるいは図１６に示したダミービット挿入部９１を設けるようにしてもよい。
【０１１５】
また、上記実施例の誤り訂正符号化装置は、組織符号を採用すると共に、畳込み処理を実行する構成を採用していた。しかしながら、本発明は、この構成に限定されるものではない。すなわち、本発明の誤り訂正符号化装置は、必ずしも組織符号に限定されるものではなく、また、必ずしも畳込み部を含む構成に限定されるものでもない。
【０１１６】
図１９は、組織符号に限定されない誤り訂正符号化装置のブロック図である。誤り訂正符号化装置１１０は、ソース系列を符号化するための複数のエンコーダ１１１を有する。各エンコーダ１１１は、畳込み符号であってもよいし、他のブロック符号（例えば、ハミング符号、ＢＣＨ符号など）であってもよい。また、各エンコーダ１１１に与えられる系列が互いに異なるようにインターリーバ１１２が設けられる。パンクチャリング処理および多重化処理については、上述した実施例の構成を利用することができる。
【図面の簡単な説明】
【０１１７】
【図１】本実施形態の誤り訂正符号化装置が適用される移動体通信システムの構成図である。
【図２】本実施形態の誤り訂正符号化装置が適用される記憶装置の構成図である。
【図３】本発明の一実施形態の誤り訂正符号化装置の構成図である。
【図４】パンクチャリング部のブロック図である。
【図５】パンクチャリングテーブルの一例を示す図である。
【図６】パンクチャリング処理のフローチャートである。
【図７】多重化部のブロック図である。
【図８】復号装置のブロック図である。
【図９】デパンクチャリング処理を説明する図である。
【図１０】デパンクチャリング処理のフローチャートである。
【図１１】復号精度を向上させた復号装置の一例のブロック図である。
【図１２】本実施形態の誤り訂正符号化装置の出力と従来の装置の出力との差異を示す図である。
【図１３】本発明の他の形態の誤り訂正符号化装置の構成図である。
【図１４】ビット重複部の動作を説明する図である。
【図１５】ビット重複部の動作を説明するフローチャートである。
【図１６】本発明のさらに他の形態の誤り訂正符号化装置の構成図である。
【図１７】ダミービット挿入部の動作を説明する図である。
【図１８】ｍ個の畳込み部を備える誤り訂正符号化装置のブロック図である。
【図１９】組織符号に限定されない誤り訂正符号化装置のブロック図である。
【図２０】畳込み符号を用いた既存の誤り訂正符号化装置の一例のブロック図である。
【図２１】図２０に示した誤り訂正符号化装置の変形例のブロック図である。
【図２２】（ａ）は、図２０に示す誤り訂正符号化装置を使用してソースデータを符号化して固定長のフレームに格納する場合の処理を説明する図である。（ｂ）は、フレームに格納されるデータを模式的に表した図である。
【図２３】（ａ）は、図２１に示す誤り訂正符号化装置を使用してソースデータを符号化して固定長のフレームに格納する場合の処理を説明する図である。（ｂ）は、フレームに格納されるデータを模式的に表した図である。
【符号の説明】
【０１１８】
１０        基地局
１１、２４  エンコーダ
２０        移動機
３０        記憶装置
３１        エンコーダ
４０        誤り訂正符号化装置
４１        入力Ｉ／Ｆ部
４２        インターリーバ
４３        第１の畳込み部
４４        第２の畳込み部
４５        第１のパンクチャリング部
４６        第２のパンクチャリング部
４７        多重化部
８１        ビット重複部
９１        ダミービット挿入部
【図１】
2006304348.tif 000007
【図２】
2006304348.tif 000008
【図３】
2006304348.tif 000009
【図４】
2006304348.tif 000010
【図５】
2006304348.tif 000011
【図６】
2006304348.tif 000012
【図７】
2006304348.tif 000013
【図８】
2006304348.tif 000014
【図９】
2006304348.tif 000015
【図１０】
2006304348.tif 000016
【図１１】
2006304348.tif 000017
【図１２】
2006304348.tif 000018
【図１３】
2006304348.tif 000019
【図１４】
2006304348.tif 000020
【図１５】
2006304348.tif 000021
【図１６】
2006304348.tif 000022
【図１７】
2006304348.tif 000023
【図１８】
2006304348.tif 000024
【図１９】
2006304348.tif 000025
【図２０】
2006304348.tif 000026
【図２１】
2006304348.tif 000027
【図２２】
2006304348.tif 000028
【図２３】
2006304348.tif 000029