(57)【要約】【課題】処理量及び回路面積の増大を抑制しつつ、レート調整の高速化を図ること。【解決手段】基本パラメータ算出部１２１は、レートマッチング処理に用いられる基本パラメータを算出する。先頭パラメータ算出部１２２は、漸化式を用いて、ｉ番目のブロックの先頭判定値Ｅ(i)を順次算出する。ブロック分割部１２３は、符号化データを複数のブロックに分割する。ビット処理部１２４−０〜１２４−ｎは、基本パラメータ算出部１２１によって算出された増分値及び減分値と、先頭パラメータ算出部１２２によって算出されたブロックごとの先頭判定値Ｅ(i)とを用いて、パンクチャ又はレペテションの対象となるビットを決定する。ブロック結合部１２５は、ビット処理部１２４−０〜１２４−ｎによってそれぞれパンクチャ又はレペテションされた各ブロックを結合し、レートが調整された調整データとして出力する。【選択図】図２
2011077943.tif 000002
【特許請求の範囲】
【請求項１】
入力データの各ビットに対するパンクチャ又はレペテションの有無の判定に用いられる判定値を算出するための第１のパラメータを算出する第１の算出部と、
入力データを複数の処理単位に分割した場合の２つの処理単位に対応する判定値の関係から得られる漸化式を用いた演算により、処理単位ごとの第２のパラメータを順次算出する第２の算出部と、
前記第１の算出部及び前記第２の算出部によって算出された第１のパラメータ及び第２のパラメータを用いて各処理単位を構成するビットそれぞれに関する判定値を求め、求められた判定値に基づいてビットの削減又は追加を実行する実行部と
を有することを特徴とするレート調整装置。
【請求項２】
前記実行部は、
入力データを複数の処理単位に分割する分割部と、
前記分割部によって分割されて得られた複数の処理単位ごとに設けられ、それぞれ判定値に基づいて各処理単位を構成するビットの削減又は追加を並列に実行する複数のビット処理部と、
前記複数のビット処理部によってビットの削減又は追加が実行された後の処理単位を結合する結合部と
を含むことを特徴とする請求項１記載のレート調整装置。
【請求項３】
前記実行部は、
複数の処理単位ごとに設けられ、それぞれ判定値に基づいて各処理単位のビットの出力順序を示すパターンを並列に決定する複数の決定部と、
前記複数の決定部によって決定されたパターンを記憶する記憶部と、
前記記憶部によって記憶されたパターンに従って入力データのビットを出力する出力部と
を含むことを特徴とする請求項１記載のレート調整装置。
【請求項４】
前記第２の算出部は、
漸化式によって判定値の関係が示される２つの処理単位のうち一方の処理単位に対応する漸化式の演算部分と第１のパラメータに含まれる増分値との大小を判定する判定部と、
前記判定部による判定の結果、前記演算部分が増分値より大きい場合に、前記演算部分から増分値を減算して他方の処理単位の第２のパラメータを得る減算部と
を含むことを特徴とする請求項１記載のレート調整装置。
【請求項５】
前記第２の算出部は、
前記判定分による判定の結果、前記演算部分が増分値より小さい場合に、前記演算部分を他方の処理単位の第２のパラメータとして得ることを特徴とする請求項４記載のレート調整装置。
【請求項６】
誤り訂正符号化されたデータを送受信する通信装置を備えた通信システムであって、
前記通信装置は、
入力データの各ビットに対するパンクチャ又はレペテションの有無の判定に用いられる判定値を算出するための第１のパラメータを算出する第１の算出部と、
入力データを複数の処理単位に分割した場合の２つの処理単位に対応する判定値の関係から得られる漸化式を用いた演算により、処理単位ごとの第２のパラメータを順次算出する第２の算出部と、
前記第１の算出部及び前記第２の算出部によって算出された第１のパラメータ及び第２のパラメータを用いて各処理単位を構成するビットそれぞれに関する判定値を求め、求められた判定値に基づいてビットの削減又は追加を実行する実行部と
を有することを特徴とする通信システム。
【請求項７】
入力データの各ビットに対するパンクチャ又はレペテションの有無の判定に用いられる判定値を算出するための第１のパラメータを算出する第１の算出ステップと、
入力データを複数の処理単位に分割した場合の２つの処理単位に対応する判定値の関係から得られる漸化式を用いた演算により、処理単位ごとの第２のパラメータを順次算出する第２の算出ステップと、
前記第１の算出ステップ及び前記第２の算出ステップにて算出された第１のパラメータ及び第２のパラメータを用いて各処理単位を構成するビットそれぞれに関する判定値を求める第３の算出ステップと、
前記第３の算出ステップにて求められた判定値に基づいてビットの削減又は追加を実行する実行ステップと
を有することを特徴とするレート調整方法。
【請求項８】
コンピュータによって実行されるレート調整プログラムであって、前記コンピュータに、
入力データの各ビットに対するパンクチャ又はレペテションの有無の判定に用いられる判定値を算出するための第１のパラメータを算出する第１の算出ステップと、
入力データを複数の処理単位に分割した場合の２つの処理単位に対応する判定値の関係から得られる漸化式を用いた演算により、処理単位ごとの第２のパラメータを順次算出する第２の算出ステップと、
前記第１の算出ステップ及び前記第２の算出ステップにて算出された第１のパラメータ及び第２のパラメータを用いて各処理単位を構成するビットそれぞれに関する判定値を求める第３の算出ステップと、
前記第３の算出ステップにて求められた判定値に基づいてビットの削減又は追加を実行する実行ステップと
を実行させることを特徴とするレート調整プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、レート調整装置、レート調整方法及びレート調整プログラムに関する。
【背景技術】
【０００２】
一般に、例えば携帯電話機などの無線通信装置は、送信するデータのレートを伝搬環境などに応じて調整することがある。具体的には、例えば３ＧＰＰ（3rd Generation Partnership Project）によって標準化されているＨＳＰＡ（High Speed Packet Access：高速パケットアクセス）通信技術では、符号化されたデータが送信される際に、誤り訂正符号化後のビット系列に対してレートマッチング処理が施される。すなわち、ＨＳＰＡの誤り訂正においては、符号化率が３分の１のターボ符号が用いられ、１ビットの情報ビットに対して２ビットのパリティビットが生成される。そして、レートマッチング処理では、伝搬路の品質に応じて、誤り訂正符号化後のビット系列からビットの間引き（パンクチャ：puncture）が行われたり、ビットの繰り返し（レペテション：repetition）が行われたりする。また、受信側では、レートマッチング処理とは逆のレートデマッチング処理が行われ、レートデマッチング処理後のビット系列に対して誤り訂正復号が行われる。
【０００３】
３ＧＰＰによって標準化されているレートマッチング処理においては、判定用のパラメータｅを用いたアルゴリズムによってパンクチャ又はレペテションが行われることとなっている。すなわち、パンクチャについては、判定値ｅから所定の減分値ｅminusが順次減算され、減分値ｅminusがｍ回（ｍは１以上の整数）減算された時点で判定値ｅの値が負になると、ｍ番目のビットがパンクチャされ、増分値ｅplusが加算される。また、レペテションについては、あるビットに対応する判定値ｅから所定の減分値ｅminusが減算された後、判定値ｅの値が負になった場合、判定値ｅに所定の増分値ｅplusが順次加算され、判定値ｅの値が正になるまでは、増分値ｅplusが加算されるごとに同一のビットがレペテションされる。
【０００４】
このように、上記のアルゴリズムでは、あるビットがパンクチャされるかレペテションされるかは、直前のビットに対応する判定値ｅに依存しており、ビット系列の前方のビットから順にパンクチャ又はレペテションの有無が判断される。このため、ループ処理が実行される回数が多くなり、特にＨＳＰＡのようにトランスポートブロックのサイズが大きい場合には、レートマッチングの高速化が困難である。
【０００５】
そこで、入力されるビット系列を複数のブロックに分割し、それぞれのブロックの先頭ビットにおける判定値ｅを計算し、各ブロック間で並列にレートマッチング処理を行うことなどが検討されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−１９９０４８号公報
【特許文献２】特開２００８−３１１８６９号公報
【非特許文献】
【０００７】
【非特許文献１】3GPP TS 25.212 V7.10.0, "Multiplexing and channel coding", 2009-3
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、並列にレートマッチング処理を行う場合には、演算が複雑になる傾向があり、処理量及び回路面積の増大を招くという問題がある。すなわち、それぞれのブロックの先頭ビットにおける判定値ｅを計算するためには、例えばｍ番目のビットにおける判定値ｅ(m)を求める以下の式（１）が用いられる。
e(m)=eini-[{eminus(m-1)}mod eplus], m=1,2,...,L  ・・・（１）
【０００９】
ただし、ｅiniは、判定値ｅの初期値であり、Ｌは、入力されるビット系列のサイズ（すなわちビットの数）である。また、式（１）によって求められた判定値ｅ(m)が負の場合は、増分値ｅplusが加算された値が判定値ｅ(m)となる。ここで、式（１）には、剰余演算が含まれるとともに、Ｌの値が大きい場合には、ｅminusと（ｍ−１）の乗算におけるビットの桁数が大きくなる。これらの剰余演算及び乗算は、単なる加算や減算と比較すると複雑な演算であるため、ブロックの先頭ビットにおける判定値ｅを求めるための処理量が大きくなる。そして、処理量が大きい演算を高速に行うためには、回路面積が増大することとなる。
【００１０】
また、以下の式（２）によって、ｍ番目のビットまでにパンクチャ又はレペテションされるビット数を示す調整値ｑ(m)を求めることにより、レートマッチング処理の並列化を行うことも考えられている。式（２）においても、除算及び乗算が含まれており、処理量及び回路面積は増大する結果となる。
【数１】
2011077943.tif 000003
【００１１】
開示の技術は、かかる点に鑑みてなされたものであって、処理量及び回路面積の増大を抑制しつつ、レート調整の高速化を図ることができるレート調整装置、レート調整方法及びレート調整プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本願が開示するレート調整装置は、１つの態様において、入力データの各ビットに対するパンクチャ又はレペテションの有無の判定に用いられる判定値を算出するための第１のパラメータを算出する第１の算出部と、入力データを複数の処理単位に分割した場合の２つの処理単位に対応する判定値の関係から得られる漸化式を用いた演算により、処理単位ごとの第２のパラメータを順次算出する第２の算出部と、前記第１の算出部及び前記第２の算出部によって算出された第１のパラメータ及び第２のパラメータを用いて各処理単位を構成するビットそれぞれに関する判定値を求め、求められた判定値に基づいてビットの削減又は追加を実行する実行部とを備える。
【００１３】
また、本願が開示するレート調整方法は、１つの態様において、入力データの各ビットに対するパンクチャ又はレペテションの有無の判定に用いられる判定値を算出するための第１のパラメータを算出する第１の算出ステップと、入力データを複数の処理単位に分割した場合の２つの処理単位に対応する判定値の関係から得られる漸化式を用いた演算により、処理単位ごとの第２のパラメータを順次算出する第２の算出ステップと、前記第１の算出ステップ及び前記第２の算出ステップにて算出された第１のパラメータ及び第２のパラメータを用いて各処理単位を構成するビットそれぞれに関する判定値を求める第３の算出ステップと、前記第３の算出ステップにて求められた判定値に基づいてビットの削減又は追加を実行する実行ステップとを備える。
【発明の効果】
【００１４】
本願が開示するレート調整装置、レート調整方法及びレート調整プログラムの１つの態様によれば、処理量及び回路面積の増大を抑制しつつ、レート調整の高速化を図ることができるという効果を奏する。
【図面の簡単な説明】
【００１５】
【図１】図１は、実施の形態１に係る通信システムの構成を示す図である。
【図２】図２は、実施の形態１に係るレートマッチング部の構成を示すブロック図である。
【図３】図３は、実施の形態１に係る先頭パラメータ算出部の構成を示すブロック図である。
【図４】図４は、実施の形態１に係るレートデマッチング部の構成を示すブロック図である。
【図５】図５は、実施の形態１に係るレート調整処理を示すフロー図である。
【図６】図６は、先頭パラメータ算出処理を示すフロー図である。
【図７】図７は、先頭パラメータの算出アルゴリズムの一例を示す図である。
【図８】図８は、パンクチャ処理を示すフロー図である。
【図９】図９は、パンクチャ処理の具体例を示す図である。
【図１０】図１０は、レペテション処理を示すフロー図である。
【図１１】図１１は、レペテション処理の具体例を示す図である。
【図１２】図１２は、実施の形態１に係るビット処理のアルゴリズムの一例を示す図である。
【図１３】図１３は、実施の形態２に係るレートマッチング部の構成を示すブロック図である。
【図１４】図１４は、実施の形態２に係るレートデマッチング部の構成を示すブロック図である。
【図１５】図１５は、実施の形態２に係るレート調整処理を示すフロー図である。
【図１６】図１６は、パンクチャ時のパターン決定処理を示すフロー図である。
【図１７】図１７は、パターン決定処理の具体例を示す図である。
【図１８】図１８は、パターン決定処理のアルゴリズムの一例を示す図である。
【図１９】図１９は、実施の形態３に係るレートマッチング部の構成を示すブロック図である。
【図２０】図２０は、実施の形態３に係るレートデマッチング部の構成を示すブロック図である。
【図２１】図２１は、パラメータの算出アルゴリズムの一例を示す図である。
【図２２】図２２は、実施の形態３に係るビット処理のアルゴリズムの一例を示す図である。
【図２３】図２３は、実施の形態４に係るレートマッチング部の構成を示すブロック図である。
【図２４】図２４は、実施の形態４に係るレートデマッチング部の構成を示すブロック図である。
【図２５】図２５は、パンクチャ時のアドレス算出処理を示すフロー図である。
【図２６】図２６は、アドレス算出処理のアルゴリズムの一例を示す図である。
【図２７】図２７は、判定値の増減を説明する図である。
【図２８】図２８は、実施の形態５に係るビット処理のアルゴリズムの一例を示す図である。
【図２９】図２９は、コンピュータのハードウェア構成例を示す図である。
【発明を実施するための形態】
【００１６】
以下、本願が開示するレート調整装置、レート調整方法及びレート調整プログラムの実施の形態について、図面を参照して詳細に説明する。なお、この実施の形態により本発明が限定されるものではない。
【００１７】
（実施の形態１）
図１は、実施の形態１に係る通信システムの構成を示す図である。図１に示すように、本実施の形態に係る通信システムにおいては、送信装置１００と受信装置２００とが無線通信を行っている。具体的には、送信装置１００は、誤り訂正符号化部１１０、レートマッチング部１２０、変調部１３０及び無線送信部１４０を有している。また、受信装置２００は、無線受信部２１０、チャネル推定部２２０、復調部２３０、レートデマッチング部２４０及び誤り訂正復号部２５０を有している。
【００１８】
誤り訂正符号化部１１０は、送信データに対して誤り訂正符号化を行い、得られた符号化データをレートマッチング部１２０へ出力する。具体的には、誤り訂正符号化部１１０は、符号化データの各情報ビットにパリティビットを付加し、得られたビット系列を符号化データとしてレートマッチング部１２０へ出力する。
【００１９】
レートマッチング部１２０は、誤り訂正符号化部１１０から出力される符号化データのビット系列に対して、パンクチャ又はレペテションを行ってレートを調整し、得られた調整データを変調部１３０へ出力する。このとき、レートマッチング部１２０は、符号化データを複数のブロックに分割し、各ブロックの先頭ビットに関する先頭パラメータを漸化式を用いて順次算出し、先頭パラメータに基づいて各ブロックのレートマッチングを並列的に実行する。なお、詳細については後述するが、レートマッチング部１２０が漸化式を用いて先頭パラメータを算出するため、レートマッチングの際の処理量の増大を抑制することができる。
【００２０】
変調部１３０は、レートマッチング部１２０から出力される調整データを変調し、得られた変調データを無線送信部１４０へ出力する。無線送信部１４０は、変調部１３０から出力される変調データに対して所定の無線送信処理（Ｄ／Ａ変換、アップコンバートなど）を施し、得られた無線信号をアンテナを介して送信する。送信された無線信号は、受信装置２００によって受信される。
【００２１】
すなわち、無線受信部２１０は、アンテナを介して無線信号を受信し、受信信号に対して所定の無線受信処理（ダウンコンバート、Ａ／Ｄ変換など）を施す。そして、無線受信部２１０は、受信信号をチャネル推定部２２０及び復調部２３０へ出力する。
【００２２】
チャネル推定部２２０は、受信信号に対するチャネル推定を行い、伝搬路上での位相変動及び振幅変動に対応するチャネル推定値を求める。そして、チャネル推定部２２０は、求められたチャネル推定値を復調部２３０へ出力する。
【００２３】
復調部２３０は、チャネル推定部２２０から出力されるチャネル推定値を用いて受信信号を復調し、得られた復調データをレートデマッチング部２４０へ出力する。具体的には、復調部２３０は、復調によって得られたビット系列を復調データとしてレートデマッチング部２４０へ出力する。
【００２４】
レートデマッチング部２４０は、復調部２３０から出力される復調データのビット系列に対して、レートマッチング部１２０とは逆の処理を行ってレートを復元し、得られた復元データを誤り訂正復号部２５０へ出力する。このとき、レートデマッチング部２４０は、レートマッチング部１２０と同様に、復調データを複数のブロックに分割し、各ブロックの先頭ビットに関する先頭パラメータを漸化式を用いて順次算出し、先頭パラメータに基づいて各ブロックのレートデマッチングを並列的に実行する。
【００２５】
誤り訂正復号部２５０は、レートデマッチング部２４０から出力される復元データを誤り訂正復号し、受信データを出力する。すなわち、誤り訂正復号部２５０は、パリティビットを用いて情報ビットの誤りを訂正し、誤り訂正後の情報ビットを受信データとして出力する。
【００２６】
図２は、本実施の形態に係るレートマッチング部１２０の構成を示すブロック図である。図２に示すレートマッチング部１２０は、基本パラメータ算出部１２１、先頭パラメータ算出部１２２、ブロック分割部１２３、ビット処理部１２４−０〜ｎ（ｎは１以上の整数）及びブロック結合部１２５を有している。
【００２７】
基本パラメータ算出部１２１は、レートマッチング部１２０へ入力される符号化データのデータ長及びレートマッチング部１２０から出力される調整データのデータ長などから、レートマッチング処理に用いられる基本パラメータを算出する。具体的には、基本パラメータ算出部１２１は、３ＧＰＰの規格において規定されている判定値ｅの初期値ｅini、増分値ｅplus及び減分値ｅminusを算出する。
【００２８】
先頭パラメータ算出部１２２は、符号化データを分割して得られる複数のブロックの先頭ビットに関する判定値ｅを算出する。具体的には、先頭パラメータ算出部１２２は、以下の漸化式（３）、（４）を用いて、ｉ番目のブロックの先頭ビットの判定値（以下「先頭判定値」という）Ｅ(i)を算出する。
E(i+1)=eini-α(i+1)  ・・・（３）
α(i+1)=[α(i)+Eminus]mod eplus  ・・・（４）
ただし、Ｅ(0)=ｅiniかつα(0)=０である。また、Ｅminusは、ブロックのサイズ（すなわちビット数）をＢとして、以下の式（５）のように定義される。
Eminus=(eminus・B)modeplus  ・・・（５）
【００２９】
したがって、α(i+1)及びＥminusは、ある値を増分値ｅplusで割った余りであるため、増分値ｅplusより小さい。このことから、式（４）における右辺の[α(i)+Eminus]は、最大でも増分値ｅplusの２倍を超えないことがわかる。そして、式（４）の右辺は、増分値ｅplusの２倍を超えない[α(i)+Eminus]を増分値ｅplusで割った余りであるため、[α(i)+Eminus]が増分値ｅplus以下であれば、α(i+1)は[α(i)+Eminus]の値そのものであり、[α(i)+Eminus]が増分値ｅplusより大きければ、α(i+1)は[α(i)+Eminus]から増分値ｅplusを減算した値となる。換言すれば、先頭パラメータ算出部１２２は、式（３）、（４）を用いることにより、剰余演算を行う代わりに、大小判定と減算によって各ブロックの先頭判定値Ｅ(i)を算出する。
【００３０】
ここで、上式（３）、（４）の導き方について説明しておく。上述したように、ｍ番目のビットの判定値ｅ(m)は、式（１）によって求められる。式（１）のｍの範囲を０〜Ｌ−１に変更すると、式（１）は、以下の式（６）のようになる。
e(m)=eini-[{eminus・m)}mod eplus], m=0,1,...,L-1  ・・・（６）
【００３１】
ところで、ビットのインデックスｍをブロックの番号ｉとブロック内でのビットのインデックスｊとを用いて分解すると、
m=B・i+j
i=0,1,...,ceil(L/B)
j=0,1,...,B-1
となる。ただし、Ｌは符号化データのサイズ（すなわちビット数）を表し、ceil(x)は、ceil関数と呼ばれ、ｘ以上の最小の整数を表す。このｍを式（６）に代入すると、
e(m)=e(B・i+j)
=eini-[{eminus・(B・i+j)}mod eplus]
=eini-[{eminus・B・i+eminus・j}mod eplus]  ・・・（７）
と変形することができる。各ブロックの先頭ビットに関しては、ブロック内でのビットのインデックスｊが０であるため、式（７）はさらに、以下の式（８）のようになる。
E(i)=e(B・i)
=eini-[{eminus・B・i}mod eplus]  ・・・（８）
【００３２】
式（８）において、ｉに関する項をまとめてα(i)とし、上式（５）に示したＥminusを用いれば、式（８）から上式（３）、（４）が得られる。
【００３３】
ブロック分割部１２３は、Ｌ個のビットからなる符号化データをＢ個ずつのビットの複数のブロックに分割し、得られた各ブロックをそれぞれビット処理部１２４−０〜１２４−ｎへ出力する。
【００３４】
ビット処理部１２４−０〜１２４−ｎは、それぞれブロックのビットに対して、パンクチャ又はレペテションの処理を行い、レートの調整を行なう。このとき、ビット処理部１２４−０〜１２４−ｎは、基本パラメータ算出部１２１によって算出された増分値ｅplus及び減分値ｅminusと、先頭パラメータ算出部１２２によって算出されたブロックごとの先頭判定値Ｅ(i)とを用いて、パンクチャ又はレペテションの対象となるビットを決定する。
【００３５】
すなわち、ビット処理部１２４−０〜１２４−ｎは、パンクチャを行う場合、判定値ｅの初期値をＥ(i)として減分値ｅminusを順次減算し、ブロック内の各ビットに対応する判定値ｅを求める。そして、ビット処理部１２４−０〜１２４−ｎは、判定値ｅの値が負になると、対応するビットをパンクチャする。また、ビット処理部１２４−０〜１２４−ｎは、レペテションを行う場合、判定値ｅの初期値をＥ(i)として減分値ｅminusを減算した後、判定値ｅに増分値ｅplusを順次加算する。そして、ビット処理部１２４−０〜１２４−ｎは、判定値ｅの値が正になるまでは、増分値ｅplusが加算されるごとに同一のビットをレペテションする。
【００３６】
ブロック結合部１２５は、ビット処理部１２４−０〜１２４−ｎによってそれぞれパンクチャ又はレペテションされた各ブロックを結合し、レートが調整された調整データとして出力する。
【００３７】
図３は、本実施の形態に係る先頭パラメータ算出部１２２の構成を示すブロック図である。図３に示す先頭パラメータ算出部１２２は、初期値設定部１２２ａ、加算部１２２ｂ、大小判定部１２２ｃ、増分値減算部１２２ｄ、減算部１２２ｅ、正負判定部１２２ｆ及び増分値加算部１２２ｇを有している。
【００３８】
初期値設定部１２２ａは、基本パラメータ算出部１２１によって算出される初期値ｅini、増分値ｅplus及び減分値ｅminusから各ブロックの先頭判定値Ｅ(i)の算出に必要な初期値を設定する。具体的には、初期値設定部１２２ａは、最初のブロック（０番目のブロック）の先頭判定値Ｅ(0)を初期値ｅiniに設定し、上式（３）、（４）で示したα(i)の初期値α(0)を０に設定する。さらに、初期値設定部１２２ａは、上式（５）で示したＥminusを算出しておく。そして、初期値設定部１２２ａは、Ｅminusを加算部１２２ｂへ出力するとともに、α(0)及び先頭判定値Ｅ(0)を減算部１２２ｅへ出力する。
【００３９】
加算部１２２ｂは、初期値設定部１２２ａから出力されたＥminusと減算部１２２ｅからフィードバックされるα(i)とを加算し、加算結果を大小判定部１２２ｃへ出力する。すなわち、加算部１２２ｂは、式（４）における右辺の[α(i)+Eminus]を算出する。したがって、上述したように、加算部１２２ｂの加算結果は、最大でも増分値ｅplusの２倍を超えない。
【００４０】
大小判定部１２２ｃは、加算部１２２ｂによる加算結果と増分値ｅplusとの大小判定を行い、加算結果が増分値ｅplus以上であれば、加算結果を増分値減算部１２２ｄへ出力する。一方、大小判定部１２２ｃは、大小判定の結果、加算結果が増分値ｅplus未満であれば、加算結果を式（４）から得られるα(i+1)として減算部１２２ｅへ出力する。
【００４１】
増分値減算部１２２ｄは、大小判定部１２２ｃの出力から増分値ｅplusを減算し、得られた減算結果を式（４）から得られるα(i+1)として減算部１２２ｅへ出力する。このように、本実施の形態においては、大小判定部１２２ｃ及び増分値減算部１２２ｄによる大小判定及び減算により、除算を行うことなく式（４）に含まれる剰余演算を実行することができる。
【００４２】
減算部１２２ｅは、初期値設定部１２２ａからα(0)及び先頭判定値Ｅ(0)が出力されると、先頭判定値Ｅ(0)を正負判定部１２２ｆへ出力するとともに、α(0)を加算部１２２ｂへフィードバックする。また、減算部１２２ｅは、大小判定部１２２ｃ又は増分値減算部１２２ｄからα(i+1)が出力されると、初期値ｅiniからα(i+1)を減算し、減算結果をＥ(i+1)として正負判定部１２２ｆへ出力するとともに、α(i+1)を加算部１２２ｂへフィードバックする。すなわち、減算部１２２ｅは、式（３）の演算を行うとともに、α(i+2)の算出のために、α(i+1)をフィードバックする。
【００４３】
正負判定部１２２ｆは、減算部１２２ｅから出力される先頭判定値Ｅ(0)を最初のブロック（０番目のブロック）の先頭ビットのパラメータとしてビット処理部１２４−０へ出力する。また、正負判定部１２２ｆは、減算部１２２ｅから出力されるＥ(i+1)の正負を判定し、Ｅ(i+1)が正である場合は、先頭判定値Ｅ(i+1)を（ｉ＋１）番目のブロックの先頭ビットのパラメータとしてビット処理部１２４−（ｉ＋１）（ただし、ｉ＋１≦ｎ）へ出力する。一方、正負判定部１２２ｆは、正負判定の結果、Ｅ(i+1)が負である場合は、先頭判定値Ｅ(i+1)を増分値加算部１２２ｇへ出力する。
【００４４】
増分値加算部１２２ｇは、正負判定部１２２ｆから先頭判定値Ｅ(i+1)が出力されると、先頭判定値Ｅ(i+1)に増分値ｅplusを加算し、得られた加算結果を先頭判定値Ｅ(i+1)としてビット処理部１２４−（ｉ＋１）へ出力する。
【００４５】
このように、本実施の形態に係る先頭パラメータ算出部１２２は、上述した漸化式（３）、（４）を用いて各ブロックの先頭判定値Ｅ(i)を順に求めていく。このとき、大小判定部１２２ｃ及び増分値減算部１２２ｄによる大小判定及び減算により、除算を行うことなく式（４）に含まれる剰余演算を実行することができる。また、初期値設定部１２２ａによって式（５）の演算が１回行われることにより、あらかじめＥminusが算出されるため、先頭判定値Ｅ(i)を算出する際の複雑な演算を省略することができる。
【００４６】
図４は、本実施の形態に係るレートデマッチング部２４０の構成を示すブロック図である。図４において、図２と同じ部分には同じ符号を付し、その説明を省略する。図４に示すレートデマッチング部２４０は、基本パラメータ算出部１２１、先頭パラメータ算出部１２２、ブロック分割部１２３、ビット処理部２４１−０〜２４１−ｎ及びブロック結合部１２５を有している。
【００４７】
ビット処理部２４１−０〜２４１−ｎは、それぞれブロックのビットに対して、パンクチャ又はレペテションとは逆のデパンクチャ又はデレペテションの処理を行い、送信装置１００におけるパンクチャ又はレペテション以前のレートを復元する。このとき、ビット処理部２４１−０〜２４１−ｎは、基本パラメータ算出部１２１によって算出された増分値ｅplus及び減分値ｅminusと、先頭パラメータ算出部１２２によって算出されたブロックごとの先頭判定値Ｅ(i)とを用いて、デパンクチャ又はデレペテションの対象となるビットを決定する。
【００４８】
すなわち、ビット処理部２４１−０〜２４１−ｎは、デパンクチャを行う場合、パンクチャ対象のビットを決定するのと同様の判定により、デパンクチャの対象位置を決定し、決定された対象位置にダミービットを挿入する。また、ビット処理部２４１−０〜２４１−ｎは、デレペテションを行う場合、レペテション対象のビットを決定するのと同様の判定により、デレペテションの対象ビットを決定し、決定された対象ビットを合成する。
【００４９】
なお、レートデマッチング部２４０には、復調部２３０から出力される復調データが入力されるため、図４に示すブロック分割部１２３は、復調データを複数のブロックに分割する。また、図４に示すブロック結合部１２５は、送信装置１００におけるパンクチャ又はレペテション以前のレートを復元した復元データを出力する。
【００５０】
次いで、上記のように構成された送信装置１００におけるレート調整処理について、図５に示すフロー図を参照して説明する。なお、受信装置２００におけるレート調整処理では、パンクチャ又はレペテションではなくデパンクチャ又はデレペテションが行われるものの、基本的な処理手順は送信装置１００におけるレート調整処理と同様であるため説明を省略する。
【００５１】
送信データは、誤り訂正符号化部１１０によって誤り訂正符号化されることにより（ステップＳ１０１）、送信データの情報ビットにパリティビットが付加される。このとき、例えば符号化率３分の１の誤り訂正符号化であれば、１ビットの情報ビットに対して２ビットのパリティビットが付加される。そして、誤り訂正符号化により得られた符号化データのビット系列は、レートマッチング部１２０へ入力され、ブロック分割部１２３によって複数のブロックに分割される（ステップＳ１０２）。すなわち、Ｌ個のビットからなる符号化データのビット系列は、ブロック分割部１２３によってＢ個ずつのビットからなる複数のブロックに分割される。分割により得られた複数のブロックは、それぞれビット処理部１２４−０〜１２４−ｎへ出力される。
【００５２】
一方、基本パラメータ算出部１２１によって、Ｌ個のビットからなる符号化データのレートをどの程度調整するかを示すデータの入出力長から、基本パラメータとして３ＧＰＰによって規定される初期値ｅini、増分値ｅplus及び減分値ｅminusが算出される（ステップＳ１０３）。算出された基本パラメータは、先頭パラメータ算出部１２２及びビット処理部１２４−０〜１２４−ｎへ出力され、先頭パラメータ算出部１２２によって、各ブロックの先頭ビットに関するパラメータが算出される（ステップＳ１０４）。すなわち、先頭パラメータ算出部１２２によって漸化式（３）、（４）が用いられ、各ブロックのα(i)及び先頭判定値Ｅ(i)が順次算出される。算出された先頭判定値Ｅ(i)は、それぞれビット処理部１２４−ｉ（０≦ｉ≦ｎ）へ出力される。
【００５３】
そして、各ビット処理部１２４−０〜１２４−ｎによって、先頭判定値Ｅ(i)と増分値ｅplus及び減分値ｅminusとを用いた演算により対象が決定され、ブロック内の各ビットのパンクチャ又はレペテションが行われる（ステップＳ１０５）。パンクチャ又はレペテションが行われた各ブロックは、ブロック結合部１２５へ出力され、ブロック結合部１２５によって複数のブロックが結合されることにより（ステップＳ１０６）、レートが調整された調整データが出力される。
【００５４】
次に、本実施の形態に係る先頭パラメータ算出処理について、図６に示すフロー図を参照しながら説明する。以下の説明においては、複数のブロックのインデックスをｉとする。ただし、最初のブロックは０番目のブロックであるため、最初のブロックのインデックスｉは０である。
【００５５】
基本パラメータ算出部１２１によって算出された基本パラメータが初期値設定部１２２ａへ入力されると、初期値設定部１２２ａによって、最初のブロックの先頭判定値Ｅ(0)が初期値ｅiniに設定され、α(0)を０に設定される。また、初期値設定部１２２ａによって、ブロック内のビット数と増分値ｅplus及び減分値ｅminusとからＥminusが算出される。そして、先頭判定値Ｅ(0)は、減算部１２２ｅ及び正負判定部１２２ｆを介して、ビット処理部１２４−０へ出力される（ステップＳ２０１）。同時に、α(0)は、加算部１２２ｂへフィードバックされる。
【００５６】
また、初期値設定部１２２ａによって算出されたＥminusが加算部１２２ｂへ出力されると、インデックスｉが１にインクリメントされ（ステップＳ２０２）、１番目のブロックの先頭パラメータの算出が開始される。すなわち、加算部１２２ｂによって、減算部１２２ｅからフィードバックされたα(0)と初期値設定部１２２ａから出力されたＥminusとが加算されてα(1)が算出される（ステップＳ２０３）。加算結果のα(1)は、大小判定部１２２ｃへ出力され、大小判定部１２２ｃによって、α(1)と増分値ｅplusの大小が判定される（ステップＳ２０４）。
【００５７】
そして、大小判定の結果、α(1)が増分値ｅplusより大きければ（ステップＳ２０４Ｙｅｓ）、α(1)は増分値減算部１２２ｄへ出力され、増分値減算部１２２ｄによって、α(1)から増分値ｅplusが減算される（ステップＳ２０５）。減算により得られた新たなα(1)は、減算部１２２ｅへ出力される。一方、大小判定の結果、α(1)が増分値ｅplus以下であれば（ステップＳ２０４Ｎｏ）、α(1)はそのまま減算部１２２ｅへ出力される。
【００５８】
α(1)が減算部１２２ｅへ出力されると、減算部１２２ｅによって、式（３）の演算が行われ（ステップＳ２０６）、１番目のブロックの先頭判定値Ｅ(1)が算出される。そして、α(1)が加算部１２２ｂへフィードバックされるとともに、算出された先頭判定値Ｅ(1)が正負判定部１２２ｆへ出力され、正負判定される（ステップＳ２０７）。
【００５９】
正負判定の結果、先頭判定値Ｅ(1)が負であれば（ステップＳ２０７Ｙｅｓ）、先頭判定値Ｅ(1)は、増分値加算部１２２ｇへ出力され、増分値加算部１２２ｇによって、先頭判定値Ｅ(1)に増分値ｅplusが加算される（ステップＳ２０８）。加算により得られた新たなＥ(1)は、１番目のブロックの先頭ビットに関する判定値としてビット処理部１２４−１へ出力される（ステップＳ２０９）。一方、正負判定の結果、先頭判定値Ｅ(1)が正であれば（ステップＳ２０７Ｎｏ）、そのまま先頭判定値Ｅ(1)がビット処理部１２４−１へ出力される（ステップＳ２０９）。
【００６０】
これにより、１番目のブロックの先頭判定値Ｅ(1)が算出されたため、インデックスｉがインクリメントされ（ステップＳ２１０）、ブロック分割部１２３によって得られるすべてのブロックについて先頭判定値Ｅ(i)の算出が完了したか否かが判定される（ステップＳ２１１）。判定の結果、まだ先頭判定値Ｅ(i)の算出が完了していないブロックがある場合は（ステップＳ２１１Ｎｏ）、引き続きα(2)が算出され、算出されたα(2)からＥ(2)が算出される（ステップＳ２０３〜Ｓ２０９）。また、すべてのブロックについて先頭判定値Ｅ(i)の算出が完了した場合は（ステップＳ２１１Ｙｅｓ）、先頭パラメータ算出処理が終了する。
【００６１】
以上のような先頭パラメータ算出部１２２による先頭パラメータの算出は、例えば図７に示すアルゴリズムによって実現することも可能である。図７に示すアルゴリズムにおいては、Ｅminusの算出に際して乗算及び剰余演算が１回行われるものの、以降は、大小判定及び加減算によって各ブロックの先頭判定値Ｅ(i)が算出されることがわかる。したがって、先頭パラメータ算出部１２２における処理量及び回路面積の増大を抑制することができる。
【００６２】
次に、本実施の形態に係るビット処理の具体例であるパンクチャ処理及びレペテション処理について、図８〜１１を参照しながら説明する。以下の説明においては、ブロック内のビットのインデックスをｊとする。ただし、先頭ビットは０番目のビットであるため、先頭ビットのインデックスｊは０である。また、以下の処理は、ｉ番目のブロックに関するビット処理であるものとし、ビット処理部１２４−ｉによって実行される。
【００６３】
図８は、パンクチャ処理を示すフロー図である。図８に示すように、先頭パラメータ算出部１２２によって算出された先頭判定値Ｅ(i)がビット処理部１２４−ｉへ入力されると、判定値ｅの初期値が先頭判定値Ｅ(i)に設定される（ステップＳ３０１）。また、インデックスｊが０に設定され（ステップＳ３０２）、判定値ｅから減分値ｅminusが減算される（ステップＳ３０３）。そして、減算後の判定値ｅが０以下であるか否かが判定され（ステップＳ３０４）、判定値ｅが０以下である場合は（ステップＳ３０４Ｙｅｓ）、ｊ番目（ここでは０番目）のビットがパンクチャされる（ステップＳ３０５）。また、判定値ｅに増分値ｅplusが加算されて更新され（ステップＳ３０６）、インデックスｊが１インクリメントされる（ステップＳ３０７）。一方、減分値ｅminusを減算後の判定値ｅが０より大きい場合は（ステップＳ３０４Ｎｏ）、ｊ番目（ここでは０番目）のビットをパンクチャすることなく、インデックスｊが１インクリメントされる（ステップＳ３０７）。
【００６４】
インデックスｊが１インクリメントされると、ブロック内にインデックスｊに対応するビットがあるか否かが判定される。換言すれば、ブロック内のすべてのビットについてパンクチャの有無の判定が終了したか否かが判定される（ステップＳ３０８）。この結果、まだパンクチャの有無の判定が終了していないビットがあれば（ステップＳ３０８Ｎｏ）、現在の判定値ｅから再び減分値ｅminusが減算されて、ｊ番目のビットのパンクチャの有無が判定される（ステップＳ３０３〜Ｓ３０６）。
【００６５】
以上のようなパンクチャ処理をブロック分割部１２３から出力される４つのブロック＃０〜＃３について実行する場合の例を図９に示す。図９に示す例では、符号化データのビット数Ｌ＝３０、各ブロックのビット数Ｂ＝８とし、初期値ｅini＝１、増分値ｅplus＝６０、減分値ｅminus＝１２としている。図９において、例えばブロック＃０に着目すると、入力ビットインデックスｊ＝０については、判定値ｅは、先頭判定値Ｅ(0)＝ｅiniから減分値ｅminusが減算されて更新されるため、−１１（＜０）となる。したがって、０番目の入力ビットはパンクチャされる。同時に、判定値ｅは、増分値ｅplusが加算されて４９に更新される。
【００６６】
そして、入力ビットインデックスｊ＝１となると、判定値ｅから減分値ｅminusが減算されて更新され、３７（＞０）となる。したがって、１番目の入力ビットはパンクチャされない。続いて、入力ビットインデックスｊ＝２となると、判定値ｅから減分値ｅminusが減算されて更新され、２５（＞）となる。したがって、２番目の入力ビットはパンクチャされない。以下、同様の処理が繰り返され、入力ビットインデックスｊ＝５のときに、判定値ｅが再び負になるため、５番目の入力ビットがパンクチャされる。また、他のブロック＃１〜＃３についても同様の処理が行われ、各ブロックでは、図９において網掛けで示したビットがパンクチャされる。
【００６７】
このように、ブロック＃０〜＃３内の各入力ビットに対するパンクチャの有無は、ブロック＃０〜＃３の先頭判定値Ｅ(0)〜Ｅ(3)に基づいて順次決定することができる。すなわち、各ブロックに関して独立にパンクチャの有無を決定することができるため、それぞれのビット処理部１２４−０〜１２４−３は、各ブロックに対するパンクチャ処理を並列に実行する。結果として、レート調整の高速化を図ることができる。
【００６８】
図１０は、レペテション処理を示すフロー図である。図１０に示すように、先頭パラメータ算出部１２２によって算出された先頭判定値Ｅ(i)がビット処理部１２４−ｉへ入力されると、判定値ｅの初期値が先頭判定値Ｅ(i)に設定される（ステップＳ４０１）。また、インデックスｊが０に設定され（ステップＳ４０２）、判定値ｅから減分値ｅminusが減算される（ステップＳ４０３）。そして、減算後の判定値ｅが０以下であるか否かが判定され（ステップＳ４０４）、判定値ｅが０以下である場合は（ステップＳ４０４Ｙｅｓ）、ｊ番目（ここでは０番目）のビットがレペテションされる（ステップＳ４０５）。また、判定値ｅに増分値ｅplusが加算されて更新され（ステップＳ４０６）、加算後の判定値ｅが０以下であるか否かが判定され（ステップＳ４０７）、判定値ｅが依然として０以下である場合は（ステップＳ４０７Ｙｅｓ）、再度ｊ番目（ここでは０番目）のビットがレペテションされる（ステップＳ４０５）。
【００６９】
以降、判定値ｅが正になるまでｊ番目（ここでは０番目）のビットのレペテションと増分値ｅplusの加算とが繰り返される（ステップＳ４０５〜Ｓ４０７）。そして、判定値ｅが正になると（ステップＳ４０７Ｎｏ）、ｊ番目のビットのレペテションが終了し、インデックスｊが１インクリメントされる（ステップＳ４０８）。一方、減分値ｅminusを減算後の判定値ｅが０より大きい場合は（ステップＳ４０４Ｎｏ）、ｊ番目（ここでは０番目）のビットをレペテションすることなく、インデックスｊが１インクリメントされる（ステップＳ４０８）。
【００７０】
インデックスｊが１インクリメントされると、ブロック内にインデックスｊに対応するビットがあるか否かが判定される。換言すれば、ブロック内のすべてのビットについてレペテションの有無の判定が終了したか否かが判定される（ステップＳ４０９）。この結果、まだレペテションの有無の判定が終了していないビットがあれば（ステップＳ４０９Ｎｏ）、現在の判定値ｅから再び減分値ｅminusが減算されて、ｊ番目のビットのレペテションの有無が判定される（ステップＳ４０３〜Ｓ４０７）。
【００７１】
以上のようなレペテション処理をブロック分割部１２３から出力される４つのブロック＃０〜＃３について実行する場合の例を図１１に示す。図１１に示す例では、符号化データのビット数Ｌ＝３０、各ブロックのビット数Ｂ＝８とし、初期値ｅini＝１、増分値ｅplus＝７、減分値ｅminus＝１２としている。図１１において、例えばブロック＃０に着目すると、入力ビットインデックスｊ＝０については、判定値ｅは、先頭判定値Ｅ(0)＝ｅiniから減分値ｅminusが減算されて更新されるため、−１１（＜０）となる。したがって、０番目の入力ビットはレペテションされ、０番目の出力ビットとなると同時に１番目の出力ビットともなる。
【００７２】
そして、判定値ｅに増分値ｅplusが加算されて更新されると、判定値ｅが−４（＜０）となる。したがって、０番目の入力ビットはさらにレペテションされ、２番目の出力ビットとなる。続いて、判定値ｅに増分値ｅplusが加算されて更新されると、判定値ｅが３（＞０）となる。したがって、０番目の入力ビットのレペテションは終了し、１番目の入力ビットが３番目の出力ビットとなる。このとき、判定値ｅは、減分値ｅminusが減算されて更新され、−９（＜０）となる。したがって、１番目の入力ビットはレペテションされ、４番目の出力ビットともなる。以下、同様の処理が繰り返され、各ブロック＃０〜＃３のビットがレペテションされる。
【００７３】
このように、ブロック＃０〜＃３内の各入力ビットに対するレペテションの有無は、ブロック＃０〜＃３の先頭判定値Ｅ(0)〜Ｅ(3)に基づいて順次決定することができる。すなわち、各ブロックに関して独立にレペテションの有無を決定することができるため、それぞれのビット処理部１２４−０〜１２４−３は、各ブロックに対するレペテション処理を並列に実行する。結果として、レート調整の高速化を図ることができる。
【００７４】
以上のパンクチャ処理及びレペテション処理のアルゴリズムを図１２に示す。図１２に示すアルゴリズムにおいては、ブロックのインデックスｉ及びブロック内の入力ビットのインデックスｊが用いられており、符号化データ全体に対するパンクチャ処理又はレペテション処理が実行される。
【００７５】
以上のように、本実施の形態によれば、入力データを複数のブロックに分割し、各ブロックの先頭ビットに関する先頭判定値を漸化式を用いて順次算出し、得られた先頭判定値に基づいて各ブロックのビット処理を実行してレートを調整する。このため、先頭判定値の算出に際して、乗算及び剰余演算を含む複雑な演算を行う必要がなく、処理量を低減することができる。また、各ブロックについて並列にビット処理を実行することができる。結果として、処理量及び回路面積の増大を抑制しつつ、レート調整の高速化を図ることができる。
【００７６】
（実施の形態２）
実施の形態２の特徴は、入力データを分割して得られる各ブロックについて、あらかじめ入力ビットと出力ビットとの対応関係を示すパターンを決定しておき、入力データのビット系列を決定されたパターンに従って出力する点である。
【００７７】
本実施の形態に係る通信システムの構成は、実施の形態１（図１）と同様であるため、その説明を省略する。本実施の形態においては、送信装置１００におけるレートマッチング部１２０の構成と、受信装置２００におけるレートデマッチング部２４０の構成とが実施の形態１とは異なる。
【００７８】
図１３は、本実施の形態に係るレートマッチング部１２０の構成を示すブロック図である。図１３において、図２と同じ部分には同じ符号を付し、その説明を省略する。図１３に示すレートマッチング部１２０は、基本パラメータ算出部１２１、先頭パラメータ算出部３０１、パターン決定部３０２−０〜３０２−ｎ（ｎは１以上の整数）、パターン記憶部３０３及び入出力部３０４を有している。
【００７９】
先頭パラメータ算出部３０１は、Ｌ個のビットからなる符号化データをＢ個ずつのビットのブロックに分割した場合に、各ブロックの先頭ビットが何番目の出力ビットとなるかを求める。すなわち、先頭パラメータ算出部３０１は、各ブロックの先頭ビットの通し番号を示す出力ビットインデックス（以下「先頭インデックス」という）を算出する。
【００８０】
このとき、先頭パラメータ算出部３０１は、ceil関数を用いて、ｉ番目（０≦ｉ≦floor(L/B)）のブロックの直前のブロックまでにおけるパンクチャ又はレペテションされたビットの総数ｑ(i)を以下の式（９）によって算出する。
【数２】
2011077943.tif 000004
【００８１】
先頭パラメータ算出部３０１は、式（９）による演算をすべての入力ビットに対して行う必要はなく、各ブロックについて１回実行すれば良いため、処理量の増大を抑制することができる。そして、先頭パラメータ算出部３０１は、ｉ番目のブロックの先頭インデックスｇ(i)を以下の式（１０）又は式（１１）によって算出する。
g(i)=B・i-q(i)  ・・・（１０）
g(i)=B・i+q(i)  ・・・（１１）
【００８２】
ただし、式（１０）は、パンクチャが行われる場合の先頭インデックスを求める式であり、式（１１）は、レペテションが行われる場合の先頭インデックスを求める式である。さらに、先頭パラメータ算出部３０１は、実施の形態１に係る先頭パラメータ算出部１２２と同様に、漸化式（３）、（４）を用いて先頭判定値Ｅ(i)を算出する。そして、先頭パラメータ算出部３０１は、算出された先頭インデックスｇ(i)及び先頭判定値Ｅ(i)をパターン決定部３０２−ｉ（０≦ｉ≦ｎ）へ出力する。
【００８３】
なお、本実施の形態においては、実際の符号化データが複数のブロックに分割されるのではなく、パターン決定の処理の高速化のための処理単位として便宜的に複数のブロックを想定している。
【００８４】
パターン決定部３０２−０〜３０２−ｎは、基本パラメータ、先頭インデックスｇ(i)及び先頭判定値Ｅ(i)を用いて、各ブロックにおける入力ビットの出力順序を示すパターンを決定する。すなわち、パターン決定部３０２−０〜３０２−ｎは、各ブロックのビットに対するパンクチャ又はレペテションの有無を判定し、ブロック内での入力ビットインデックスｊと出力ビットインデックスｋとの対応関係を決定する。そして、パターン決定部３０２−０〜３０２−ｎは、対応する入力ビットインデックスｊと出力ビットインデックスｋとをパターン記憶部３０３へ出力する。
【００８５】
パターン記憶部３０３は、パターン決定部３０２−０〜３０２−ｎによって決定されるパターンを記憶する。すなわち、パターン記憶部３０３は、レートマッチング部１２０への入力ビットのインデックスと出力ビットのインデックスとを対応付けて記憶する。これにより、パターン記憶部３０３は、レートマッチング部１２０へ入力される符号化データの各ビットがレートマッチング部１２０から何番目に出力されるかのパターンを記憶していることになる。要するに、パターン記憶部３０３は、符号化データがパンクチャ又はレペテションされる前後のビットの並びの対応関係を記憶している。
【００８６】
入出力部３０４は、レートマッチング部１２０へ入力される符号化データのビット系列をパターン記憶部３０３によって記憶されたパターンに従って出力する。したがって、入出力部３０４は、パターン記憶部３０３によって記憶されたパターンに従って、符号化データのパンクチャ又はレペテションを行うことになる。
【００８７】
図１４は、本実施の形態に係るレートデマッチング部２４０の構成を示すブロック図である。図１４において、図２及び図１３と同じ部分には同じ符号を付し、その説明を省略する。図１４に示すレートデマッチング部２４０は、基本パラメータ算出部１２１、先頭パラメータ算出部３０１、パターン決定部３０２−０〜３０２−ｎ、パターン記憶部３０３及び入出力部３１１を有している。
【００８８】
入出力部３１１は、レートデマッチング部２４０へ入力される復調データのビット系列をパターン記憶部３０３によって記憶されたパターンに従って出力する。ただし、入出力部３１１は、レートマッチング部１２０の入出力部３０４とは逆の処理をする。すなわち、入出力部３１１は、パターン記憶部３０３によって記憶された出力ビットインデックスをレートデマッチング部２４０への入力ビットに対応付け、ダミービットの挿入又は複数のビットの合成を行うことにより、入力ビットインデックスが０から順に並ぶようにビットを出力する。したがって、入出力部３１１は、パターン記憶部３０３によって記憶されたパターンに従って、復調データのデパンクチャ又はデレペテションを行うことになる。
【００８９】
次いで、上記のように構成された送信装置１００におけるレート調整処理について、図１５に示すフロー図を参照して説明する。なお、受信装置２００におけるレート調整処理では、パンクチャ又はレペテションではなくデパンクチャ又はデレペテションが行われるものの、基本的な処理手順は送信装置１００におけるレート調整処理と同様であるため説明を省略する。また、図１５において、図５と同じ部分には同じ符号を付している。
【００９０】
送信データは、誤り訂正符号化部１１０によって誤り訂正符号化されることにより（ステップＳ１０１）、送信データの情報ビットにパリティビットが付加される。このとき、例えば符号化率３分の１の誤り訂正符号化であれば、１ビットの情報ビットに対して２ビットのパリティビットが付加される。そして、誤り訂正符号化により得られた符号化データのビット系列は、レートマッチング部１２０の入出力部３０４へ入力される。
【００９１】
一方、基本パラメータ算出部１２１によって、Ｌ個のビットからなる符号化データのレートをどの程度調整するかを示すデータの入出力長から、基本パラメータとして３ＧＰＰによって規定される初期値ｅini、増分値ｅplus及び減分値ｅminusが算出される（ステップＳ１０３）。算出された基本パラメータは、先頭パラメータ算出部３０１及びパターン決定部３０２−０〜３０２−ｎへ出力され、先頭パラメータ算出部３０１によって、各ブロックの先頭ビットに関するパラメータが算出される（ステップＳ５０１）。すなわち、先頭パラメータ算出部３０１によって、上式（９）〜（１１）の演算が行われることにより、各ブロックの先頭インデックスｇ(i)が順次算出される。同時に、漸化式（３）、（４）が用いられ、各ブロックのα(i)及び先頭判定値Ｅ(i)が順次算出される。算出された先頭インデックスｇ(i)及び先頭判定値Ｅ(i)は、それぞれパターン決定部３０２−ｉ（０≦ｉ≦ｎ）へ出力される。
【００９２】
そして、パターン決定部３０２−０〜３０２−ｎによって、先頭インデックスｇ(i)、先頭判定値Ｅ(i)、増分値ｅplus及び減分値ｅminusを用いた演算により入出力ビットの対応パターンが決定される（ステップＳ５０２）。決定されたパターンは、パターン記憶部３０３によって記憶され、入出力部３０４へ入力された符号化データのビット系列がパターンに従って出力されることにより（ステップＳ５０３）、レートが調整された調整データが出力される。
【００９３】
次に、本実施の形態に係るパターン決定処理について説明する。図１６は、パンクチャ時のパターン決定処理を示すフロー図である。図１６において、図８と同じ部分には同じ符号を付している。
【００９４】
先頭パラメータ算出部３０１によって算出された先頭判定値Ｅ(i)がパターン決定部３０２−ｉへ入力されると、判定値ｅの初期値が先頭判定値Ｅ(i)に設定される（ステップＳ３０１）。また、ブロック内での入力ビットインデックスｊ及び出力ビットインデックスが０に設定され（ステップＳ３０２）、判定値ｅから減分値ｅminusが減算される（ステップＳ３０３）。そして、減算後の判定値ｅが０以下であるか否かが判定され（ステップＳ３０４）、判定値ｅが０以下である場合は（ステップＳ３０４Ｙｅｓ）、判定値ｅに増分値ｅplusが加算されて更新され（ステップＳ３０６）、入力ビットのインデックスｊが１インクリメントされる（ステップＳ３０７）。
【００９５】
一方、減分値ｅminusを減算後の判定値ｅが０より大きい場合は（ステップＳ３０４Ｎｏ）、ｊ番目（ここでは０番目）の入力ビットがｋ番目（ここでは０番目）の出力ビットとなることが決定される（ステップＳ６０１）。すなわち、ブロック内のｊ番目（ここでは０番目）の入力ビットはパンクチャされることなく、ブロック内のｋ番目（ここでは０番目）の出力ビットとなることが決定される。そして、ブロックの先頭インデックスｇ(i)が用いられて、ブロック内での入力ビットインデックスｊと出力ビットインデックスｋとの対応関係が、符号化データ全体の入力ビットインデックスと出力ビットインデックスとの対応関係に変換される。具体的には、ブロック内のｊ番目の入力ビットの入力ビットインデックスは（B・i+j）であり、ブロック内のｋ番目の出力ビットの出力ビットインデックスは（g(i)+k）である。したがって、これらの入力ビットインデックス及び出力ビットインデックスがパターン記憶部３０３へ出力される。
【００９６】
また、ブロック内のｊ番目の入力ビットがパンクチャされずにブロック内のｋ番目の出力ビットとなる場合には、次の出力ビットのインデックスｋが１インクリメントされる（ステップＳ６０２）。そして、入力ビットのインデックスｊも１インクリメントされる（ステップＳ３０７）。
【００９７】
インデックスｊが１インクリメントされると、ブロック内にインデックスｊに対応するビットがあるか否かが判定される。換言すれば、ブロック内のすべてのビットについてパンクチャの有無の判定が終了したか否かが判定される（ステップＳ３０８）。この結果、まだパンクチャの有無の判定が終了していないビットがあれば（ステップＳ３０８Ｎｏ）、現在の判定値ｅから再び減分値ｅminusが減算されて、ｊ番目のビットのパンクチャの有無が判定される（ステップＳ３０３〜Ｓ３０６、Ｓ６０１、Ｓ６０２）。
【００９８】
以上のようなパターン決定処理を４つのブロック＃０〜＃３について実行する場合の例を図１７に示す。図１７に示す例では、符号化データのビット数Ｌ＝３０、各ブロックの入力ビット数Ｂ＝８とし、初期値ｅini＝１、増分値ｅplus＝６０、減分値ｅminus＝１２としている。図１７において、例えばブロック＃１の先頭ビットの出力ビットインデックス（先頭インデックス）は６となっている。これは、上式（９）、（１０）によって以下のように求められる。
g(1)=8・1-q(1)
=8・1-ceil{(8・1・12-1+1)/60}
=6
【００９９】
そして、各ブロックの入力ビット数Ｂ＝８であるため、ブロック＃１の先頭の入力ビットインデックスは８となり、判定値ｅを用いた判定により、この入力ビットはパンクチャの対象とはならない。また、この入力ビットは、ブロック内の最初の（すなわち０番目の）出力ビットであることから、出力ビットインデックスはｇ(1)＋０＝６であり、入力ビットインデックス８と出力ビットインデックス６とが対応付けられる。同様に、他の入力ビットについても、パンクチャの対象となるか否かが判定され、パンクチャの対象とならない場合は、対応する出力ビットインデックスが算出され、入出力ビットの対応関係を示すパターンが決定される。なお、上述したように、入力ビットがパンクチャの対象となるか否かは、実施の形態１と同様に判定値ｅを用いた判定によって決定される。
【０１００】
このように、ブロック＃０〜＃３の各入力ビットのインデックスに対応する出力ビットインデックスは、ブロック＃０〜＃３の先頭インデックスｇ(0)〜ｇ(3)及び先頭判定値Ｅ(0)〜Ｅ(3)に基づいて順次決定することができる。すなわち、各ブロックに関して独立にパンクチャ前後のビットの対応関係を決定することができるため、それぞれのパターン決定部３０２−０〜３０２−３は、各ブロックに対するパターン決定処理を並列に実行する。結果として、レート調整の高速化を図ることができる。
【０１０１】
以上のパターン決定処理のアルゴリズムを図１８に示す。図１８は、パンクチャ又はレペテションが行われる場合のパターン決定処理のアルゴリズムを示している。図１８に示すアルゴリズムにおいては、ブロック内の入力ビットのインデックスｊを１ずつインクリメントしながら、各入力ビットがパンクチャ又はレペテションの対象となるか否かが判定され、インデックスｊとブロック内の出力ビットのインデックスｋとの対応関係が決定される。そして、ブロック内の出力ビットのインデックスｋが出力ビットインデックス（g(i)+k）に変換され、対応する入力ビットインデックスが（B*i+j）と算出されている。
【０１０２】
以上のように、本実施の形態によれば、入力データを複数のブロックに分割した場合の、各ブロックの先頭の入力ビットに対応する出力ビットのインデックスをあらかじめ算出しておく。そして、各ブロックの先頭判定値を漸化式を用いて順次算出し、得られた先頭判定値に基づいてパンクチャ又はレペテションの有無を判定しながら、入出力のビットインデックスの対応関係を決定する。さらに、決定された対応関係に従って入力データを出力することによりレートを調整する。このため、先頭インデックスの算出は、各ブロックについて１回実行すれば良いとともに、先頭判定値の算出に際して、乗算及び剰余演算を含む複雑な演算を行う必要がなく、処理量を低減することができる。また、各ブロックについて並列にパンクチャ又はレペテション前後のビットの対応関係を決定することができる。結果として、処理量及び回路面積の増大を抑制しつつ、レート調整の高速化を図ることができる。
【０１０３】
（実施の形態３）
実施の形態３の特徴は、入力データをシリアル／パラレル変換し、前方のビットから順にパンクチャ又はレペテションの有無を並列に判定する点である。
【０１０４】
本実施の形態に係る通信システムの構成は、実施の形態１（図１）と同様であるため、その説明を省略する。本実施の形態においては、送信装置１００におけるレートマッチング部１２０の構成と、受信装置２００におけるレートデマッチング部２４０の構成とが実施の形態１とは異なる。
【０１０５】
図１９は、本実施の形態に係るレートマッチング部１２０の構成を示すブロック図である。図１９において、図２と同じ部分には同じ符号を付し、その説明を省略する。図１９に示すレートマッチング部１２０は、基本パラメータ算出部１２１、パラメータ事前算出部４０１、ビット処理部４０２−０〜４０２−ｎ（ｎは１以上の整数）、シリアル／パラレル変換（以下「Ｓ／Ｐ変換」という）部４０３及びパラレル／シリアル変換（以下「Ｐ／Ｓ変換」という）部４０４を有している。
【０１０６】
パラメータ事前算出部４０１は、符号化データを分割して得られる複数のブロックの先頭ビットに関するパラメータと１つのブロックのビットごとのパラメータとをそれぞれ算出する。すなわち、パラメータ事前算出部４０１は、ブロックの数と同数のパラメータ及びブロックを構成するビット数と同数のパラメータを算出する。具体的には、パラメータ事前算出部４０１は、上式（７）の変形により得られる以下のパラメータα(i)及びβ(j)をすべてのｉ及びｊについて算出する。ただし、実施の形態１と同様に符号化データを複数のブロックに分割した場合の各ブロックのインデックスがｉであり、ブロック内でのビットのインデックスがｊである。
α(i)=(Eminus・i)modeplus  ・・・（１２）
β(j)=(eminus・j)modeplus  ・・・（１３）
【０１０７】
ここで、上式（１２）、（１３）のパラメータについて説明しておく。式（７）をインデックスｉ、ｊについてまとめると、
e(m)=e(B・i+j)
=eini-[{eminus・B・i+ eminus・j)}mod eplus]
=eini-[{(Eminus・i)modeplus+(eminus・j)modeplus}mod eplus]
と変形することができる。この式のインデックスｉに関する項が式（１２）に示したパラメータα(i)であり、インデックスｊに関する項が式（１３）に示したパラメータβ(j)である。すなわち、本実施の形態においては、以下の式（１４）により任意のｉ番目のブロックのｊ番目のビットに関する判定値ｅが得られる。
e=eini-{α(i)+β(j)}mod eplus  ・・・（１４）
【０１０８】
ところで、式（１２）に示したパラメータα(i)は、実施の形態１で述べたように漸化式（４）で表すことができる。同様に、式（１３）に示したパラメータβ(j)は、以下の漸化式（１５）で表すことができる。
β(ｊ)=[β(ｊ-1)+eminus]mod eplus  ・・・（１５）
【０１０９】
そこで、パラメータ事前算出部４０１は、漸化式（４）、（１５）を用いることにより、実施の形態１における先頭パラメータ算出部１２２と同様に、大小判定と減算によってパラメータα(i)、β(j)を算出する。これにより、パラメータ事前算出部４０１は、各ブロックの先頭ビットに関するパラメータα(i)と、ブロック内の各ビットに関するパラメータβ(j)とを少ない処理量で算出することができる。
【０１１０】
ビット処理部４０２−０〜４０２−ｎは、Ｓ／Ｐ変換部４０３から出力されるビットに対して、パンクチャ又はレペテションの処理を行い、レートの調整を行う。このとき、ビット処理部４０２−０〜４０２−ｎは、基本パラメータ算出部１２１によって算出された増分値ｅplus及び減分値ｅminusと、パラメータ事前算出部４０１によって算出されたパラメータα(i)、β(j)とを用いて、パンクチャ又はレペテションの対象となるビットを決定する。
【０１１１】
すなわち、ビット処理部４０２−０〜４０２−ｎは、式（１４）を用いて対象ビットの直前ビットに対応する判定値ｅを算出し、算出された判定値ｅから減分値ｅminusを減算し、対象ビットに対応する判定値ｅを求める。そして、ビット処理部４０２−０〜４０２−ｎは、判定値ｅの値が負になる場合は、対象ビットをパンクチャ又はレペテションする。
【０１１２】
Ｓ／Ｐ変換部４０３は、直列データとして入力される符号化データをＳ／Ｐ変換により並列データに変換し、各ビットをビット処理部４０２−０〜４０２−ｎへ出力する。したがって、Ｓ／Ｐ変換部４０３は、符号化データの０番目のビットをビット処理部４０２−０へ出力し、１番目のビットをビット処理部４０２−１へ出力するというように、連続して配置されたビットを並列にビット処理部４０２−０〜４０２−ｎへ出力する。換言すれば、Ｓ／Ｐ変換部４０３は、符号化データの（ｎ＋１）個おきのビットを処理単位として、各処理単位のビットを対応するビット処理部４０２−０〜４０２−ｎへ出力する。
【０１１３】
Ｐ／Ｓ変換部４０４は、ビット処理部４０２−０〜４０２−ｎから並列に出力されるビットをＰ／Ｓ変換により直列データに変換し、レートが調整された調整データとして出力する。すなわち、Ｐ／Ｓ変換部４０４は、ビット処理部４０２−０〜４０２−ｎによってそれぞれパンクチャ又はレペテションされた処理単位を結合し、調整データとして出力する。
【０１１４】
図２０は、本実施の形態に係るレートデマッチング部２４０の構成を示すブロック図である。図２０において、図２及び図１９と同じ部分には同じ符号を付し、その説明を省略する。図２０に示すレートデマッチング部２４０は、基本パラメータ算出部１２１、パラメータ事前算出部４０１、ビット処理部４１１−０〜４１１−ｎ、Ｓ／Ｐ変換部４０３及びＰ／Ｓ変換部４０４を有している。
【０１１５】
ビット処理部４１１−０〜４１１−ｎは、それぞれの処理単位のビットに対して、パンクチャ又はレペテションとは逆のデパンクチャ又はデレペテションの処理を行い、送信装置１００におけるパンクチャ又はレペテション以前のレートを復元する。このとき、ビット処理部４１１−０〜４１１−ｎは、基本パラメータ算出部１２１によって算出された増分値ｅplus及び減分値ｅminusと、パラメータ事前算出部４０１によって算出されたパラメータα(i)、β(j)とを用いて、デパンクチャ又はデレペテションの対象となるビットを決定する。
【０１１６】
すなわち、ビット処理部４１１−０〜４１１−ｎは、式（１４）を用いて対象ビットの直前ビットに対応する判定値ｅを算出し、算出された判定値ｅから減分値ｅminusを減算し、対象ビットに対応する判定値ｅを求める。そして、ビット処理部４１１−０〜４１１−ｎは、判定値ｅの値が負になる場合は、ダミービットの挿入又は複数のビットの合成により、デパンクチャ又はデレペテションする。
【０１１７】
本実施の形態においては、パラメータ事前算出部４０１が事前に各ブロックの先頭ビットに関するパラメータα(i)と１つのブロックの各ビットに関するパラメータβ(j)とを算出しておく。このとき、漸化式（４）、（１５）の右辺における剰余演算は、実施の形態１で説明したように大小判定及び減算で代用することができる。具体的に、例えばパラメータβ(j)の算出アルゴリズムを図２１に示す。図２１に示すアルゴリズムにおいては、剰余演算や乗算などの複雑な演算は行われていないが、すべてのインデックスｊについてパラメータβ(j)が順次算出される。
【０１１８】
このように、パラメータα(i)、β(j)の算出に際して、剰余演算及び乗算を含む複雑な演算を行う必要がないため、レート調整時の処理量を低減することができる。また、すべてのインデックスｉ、ｊに関してパラメータα(i)、β(j)が算出されることにより、式（１４）から任意のビットに関する判定値ｅを算出することが可能となる。このため、ブロック内で逐次的に各ビットに対するパンクチャ又はレペテションの有無を判定するのではなく、任意のビットについて独立にパンクチャ又はレペテションの有無を判定することができる。したがって、本実施の形態においては、符号化データの連続するビットについて並列にパンクチャ又はレペテションの有無を判定することができ、符号化データの前方のビットから順にビット処理を行うことができる。結果として、レートマッチング及びレートデマッチングの処理遅延をさらに低減することができる。
【０１１９】
図２２は、本実施の形態に係るビット処理のアルゴリズムを示す図である。図２２に示すアルゴリズムにおいては、式（１４）の右辺における{α(i)+β(j)}を変数ｔｍｐとしている。ここで、式（１２）、（１３）より、α(i)及びβ(j)は、ある値を増分値ｅplusで割った余りであるため、増分値ｅplusより小さい。このことから、変数ｔｍｐは、最大でも増分値ｅplusの２倍を超えないことがわかる。そして、式（１４）の右辺の{α(i)+β(j)}mod eplusは、増分値ｅplusの２倍を超えない変数ｔｍｐを増分値ｅplusで割った余りであるため、変数ｔｍｐが増分値ｅplus以下であれば、式（１４）は以下のようになる。
e=eini-tmp
また、変数ｔｍｐが増分値ｅplusより大きければ、式（１４）は以下のようになる。
e=eini-(tmp-eplus)
【０１２０】
図２２に示すアルゴリズムは、このように判定値ｅを算出しており、剰余演算及び乗算を含む複雑な演算を行っていない。換言すれば、すべてのインデックスｉ、ｊについて事前に算出されたパラメータα(i)、β(j)を用いて、大小判定及び減算を行うことにより、剰余演算を省略している。結果として、少ない処理量で判定値ｅを算出することができ、各ビットに対するパンクチャ又はレペテションの有無を判定することができる。
【０１２１】
以上のように、本実施の形態によれば、入力データを複数のブロックに分割した場合のブロックごと及びブロックを構成するビットごとのパラメータを漸化式を用いて事前に算出しておく。そして、パラメータに基づいて入力データの前方のビットから順にビット処理を並列に実行してレートを調整する。このため、パラメータの算出に際して、乗算及び剰余演算を含む複雑な演算を行う必要がなく、処理量を低減することができる。また、ブロックごとの逐次処理がないため処理遅延がなく、レート調整をさらに高速化することができる。
【０１２２】
（実施の形態４）
実施の形態４の特徴は、入力データの前方のビットから順に入力ビットと出力ビットとの対応関係を示すパターンを決定し、入力データのビット系列を決定されたパターンに従って出力する点である。
【０１２３】
本実施の形態に係る通信システムの構成は、実施の形態１（図１）と同様であるため、その説明を省略する。本実施の形態においては、送信装置１００におけるレートマッチング部１２０の構成と、受信装置２００におけるレートデマッチング部２４０の構成とが実施の形態１とは異なる。
【０１２４】
図２３は、本実施の形態に係るレートマッチング部１２０の構成を示すブロック図である。図２３において、図２及び図１３と同じ部分には同じ符号を付し、その説明を省略する。図２３に示すレートマッチング部１２０は、基本パラメータ算出部１２１、パラメータ事前算出部５０１、パターン決定部５０２−０〜５０２−ｎ（ｎは１以上の整数）、アドレス算出部５０３、パターン記憶部３０３及び入出力部３０４を有している。
【０１２５】
パラメータ事前算出部５０１は、符号化データを分割して得られる複数のブロックの先頭ビットに関するパラメータと１つのブロックのビットごとのパラメータとをそれぞれ算出する。すなわち、パラメータ事前算出部５０１は、ブロックの数と同数のパラメータ及びブロックを構成するビット数と同数のパラメータを算出する。具体的には、パラメータ事前算出部５０１は、上式（１２）、（１３）で示したパラメータα(i)及びβ(j)をすべてのｉ及びｊについて算出する。このとき、パラメータ事前算出部５０１は、実施の形態３と同様に漸化式（４）、（１５）を用いて、大小判定と減算によってパラメータα(i)、β(j)を算出する。
【０１２６】
パターン決定部５０２−０〜５０２−ｎは、基本パラメータ及びパラメータα(i)、β(j)を用いて、符号化データの連続するビットについて並列にパンクチャ又はレペテションの有無を判定する。このとき、パターン決定部５０２−０〜５０２−ｎは、図２２に示した実施の形態３のアルゴリズムを用いて、前方のビットから順にパンクチャ又はレペテションの有無を判定する。
【０１２７】
そして、パンクチャモード時には、パターン決定部５０２−０〜５０２−ｎは、入力されたビットがパンクチャされると判定した場合には「０」を出力し、パンクチャされないと判定した場合には「１」を出力する。また、レペテションモード時には、パターン決定部５０２−０〜５０２−ｎは、入力されたビットがレペテションされると判定した場合にはレペテションされる回数に１を加算した値を出力し、レペテションされないと判定した場合には「１」を出力する。このとき、パターン決定部５０２−０〜５０２−ｎは、図１８に示した実施の形態２のアルゴリズムを用いてレペテションされる回数を算出するようにしても良い。
【０１２８】
アドレス算出部５０３は、パターン決定部５０２−０〜５０２−ｎから出力される値に基づいて、次にパターン決定部５０２−０〜５０２−ｎが並列処理するビットに付与される出力ビットインデックスを算出する。本実施の形態においては、パターン決定部５０２−０〜５０２−ｎによって、１つのブロックのすべてのビットに関して並列にパンクチャ又はレペテションの有無が判定される。そこで、アドレス算出部５０３は、次にパンクチャ又はレペテションの有無が判定されるブロックに対応する出力ビットインデックスの開始番号（以下「開始インデックス」という）を算出する。具体的には、アドレス算出部５０３は、前回算出された開始インデックスにパターン決定部５０２−０〜５０２−ｎから出力された値を加算して、新たな開始インデックスを算出する。
【０１２９】
また、アドレス算出部５０３は、パターン決定部５０２−０〜５０２−ｎから出力された値に基づいて、ブロック内の入力ビットと出力ビットの対応関係を取得し、取得した対応関係と開始インデックスから入力ビットインデックスと出力ビットインデックスの対応関係を示すパターンを決定する。
【０１３０】
図２４は、本実施の形態に係るレートデマッチング部２４０の構成を示すブロック図である。図２４に示すレートデマッチング部２４０は、図２、図１３及び図１４と同じ処理部から構成されているため、その説明を省略する。
【０１３１】
次に、本実施の形態に係るアドレス算出処理について説明する。図２５は、パンクチャ時のアドレス算出処理を示すフロー図である。以下の説明においては、ブロック内の入力ビットのインデックスをｊとし、出力ビットのインデックスをｋとする。また、以下の処理は、パターン決定部５０２−０〜５０２−ｎ及びアドレス算出部５０３によって実行される。
【０１３２】
まず、現在パターン決定部５０２−０〜５０２−ｎにおいて並列処理中のブロック内での入力ビットインデックスｊ及び出力ビットインデックスが０に設定される（ステップＳ７０１）。そして、各パターン決定部５０２−０によって、判定値ｅを用いた判定により、ｊ番目（ここでは０番目）の入力ビットがパンクチャ対象であるか否かが判定される（ステップＳ７０２）。この判定の結果、ｊ番目（ここでは０番目）の入力ビットがパンクチャ対象でなければ（ステップＳ７０２Ｎｏ）、この入力ビットがｋ番目（ここでは０番目）の出力ビットに決定される（ステップＳ７０３）。このとき、パターン決定部５０２−０からアドレス算出部５０３へ「１」が出力され、出力ビットのインデックスｋが１インクリメントされる（ステップＳ７０４）。一方、ｊ番目（ここでは０番目）の入力ビットがパンクチャ対象であれば（ステップＳ７０２Ｙｅｓ）、パターン決定部５０２−０からアドレス算出部５０３へ「０」が出力され、出力ビットのインデックスｋがインクリメントされることはない。
【０１３３】
アドレス算出部５０３においては、前回算出した開始インデックスにパターン決定部５０２−０から出力される値が加算されることにより、ブロック内での出力ビット数がカウントされる（ステップＳ７０５）。すなわち、パターン決定部５０２−０によってパンクチャの有無が判定されたビットがパンクチャされる場合は、出力ビット数が０とカウントされ、パンクチャされない場合は、出力ビット数が１とカウントされる。
【０１３４】
そして、入力ビットのインデックスｊが１インクリメントされ（ステップＳ７０６）、すべてのパターン決定部５０２−０〜５０２−ｎから「１」又は「０」が出力されたか否かが判断される。すなわち、現在並列処理中のブロック内のすべてのビットについて、アドレス算出部５０３に「１」又は「０」が入力されたか否かが判断される（ステップＳ７０７）。この判断の結果、まだ「１」又は「０」を出力していないパターン決定部５０２−０〜５０２−ｎがある場合には（ステップＳ７０７Ｎｏ）、パターン決定部５０２−１〜５０２−ｎにおいてもパターン決定部５０２−０と同様の判定が行われることにより（ステップＳ７０２〜Ｓ７０６）、「１」又は「０」がアドレス算出部５０３へ出力される。
【０１３５】
なお、図２５においては、説明の便宜上、インデックスｊのインクリメントに応じて、パターン決定部５０２−０〜５０２−ｎから順番に「１」又は「０」が出力されるものとしたが、パターン決定部５０２−０〜５０２−ｎによる判定は並列に実行される。したがって、パターン決定部５０２−０〜５０２−ｎからは、ほぼ同時に「１」又は「０」が出力されても良い。
【０１３６】
すべてのパターン決定部５０２−０〜５０２−ｎからアドレス算出部５０３へ「１」又は「０」が出力されると、アドレス算出部５０３によるカウント結果が、前回算出された開始インデックスに加算される。すなわち、パターン決定部５０２−０〜５０２−ｎによって並列処理されたブロックからいくつのビットが出力されるかが前回算出された開始インデックスに加算され、次のブロックの開始インデックスが決定される（ステップＳ７０８）。
【０１３７】
このように、パンクチャの有無によって各パターン決定部５０２−０〜５０２−ｎから出力される「１」又は「０」の値に基づいて、パターン決定部５０２−０〜５０２−ｎによって次に並列処理されるブロックの出力ビットインデックスの開始番号が決定される。なお、各パターン決定部５０２−０〜５０２−ｎから出力される「１」又は「０」の値は、それぞれの入力ビットがパンクチャされるか否かを示しているため、アドレス算出部５０３は、入力ビットと出力ビットの対応関係を容易に取得することができる。そこで、アドレス算出部５０３は、開始インデックスと入出力ビットの対応関係とから、入力ビットインデックスと出力ビットインデックスの対応関係を示すパターンを決定し、パターン記憶部３０３に記憶させる。
【０１３８】
図２６は、本実施の形態に係るアドレス算出処理のアルゴリズムを示す図である。図２６に示すアルゴリズムにおいては、それぞれのパターン決定部５０２−０〜５０２−ｎから出力される値をpattern(i)としており、この値に基づいてブロック内での出力ビットインデックスの増分sum_blkが算出され、最終的に次のブロックの開始インデックスsumが算出される。
【０１３９】
以上のように、本実施の形態によれば、入力データを複数のブロックに分割した場合のブロックごと及びブロックを構成するビットごとのパラメータを漸化式を用いて事前に算出しておく。そして、パラメータに基づいて入力データの前方のビットから順にパンクチャ又はレペテションの有無を判定しながら、入出力のビットインデックスの対応関係を決定する。さらに、決定された対応関係に従って入力データを出力することによりレートを調整する。このため、パラメータの算出に際して、乗算及び剰余演算を含む複雑な演算を行う必要がなく、処理量を低減することができる。また、ブロックごとの逐次処理がないため処理遅延がなく、レート調整をさらに高速化することができる。
【０１４０】
（実施の形態５）
上記実施の形態１〜４においては、対象ビットの直前のビットに関する判定値ｅから減分値ｅminusが減算され、判定値ｅが負になるか否かによってパンクチャ又はレペテションの有無が判定される。しかし、対象ビットについて直接的にパンクチャ又はレペテションの有無を判定することも可能である。実施の形態５の特徴は、対象ビットについて直接的にパンクチャ又はレペテションの有無を判定する点である。
【０１４１】
本実施の形態に係る通信システムの構成は、実施の形態１（図１）と同様であるため、その説明を省略する。また、本実施の形態においては、レートマッチング部１２０及びレートデマッチング部２４０の構成も実施の形態１〜４のいずれかと同様で良い。ただし、実施の形態１、３のビット処理部１２４−０〜１２４−ｎ、２４１−０〜２４１−ｎ、４０２−０〜４０２−ｎ、４１１−０〜４１１−ｎ又は実施の形態２、４のパターン決定部３０２−０〜３０２−ｎ、５０２−０〜５０２−ｎにおけるパンクチャ又はレペテションの有無の判定に用いられるアルゴリズムが実施の形態１〜４とは異なる。
【０１４２】
上述したように、３ＧＰＰのアルゴリズムにおいては、判定値ｅから減分値ｅminusが順次減算されていき、判定値ｅの正負によってパンクチャ又はレペテションが行われるとともに、判定値ｅが負の場合は増分値ｅplusが加算される。したがって、ｍ番目の直前のビットに関する判定値ｅは、初期値ｅiniから減分値ｅminusが減算され、判定値ｅが負になった回数だけ増分値ｅplusが加算された値である。すなわち、図２７に示すように、判定値ｅと０との差分は（meminus-eini）mod eplusとなる。
【０１４３】
そして、ｍ番目のビットに関する判定値ｅが負になるのは、（meminus-eini）mod eplusが減分値ｅminus以下である場合ということになる。したがって、（meminus-eini）mod eplusが減分値ｅminus以下であるか否かを判定することにより、ｍ番目のビットに関するパンクチャ又はレペテションの有無を直接的に判定することができる。
【０１４４】
ここで、実施の形態１〜４と同様に、入力データの複数のブロックのビット数をＢとして、ブロックのインデックスｉ、ブロック内のビットのインデックスｊとすると、上記の差分は、
tmp(m)=tmp(B・i+j)
={(B・i+j)eminus-eini}mod eplus
={(B・i・eminus+j・eminus-eini}mod eplus
={(B・i・eminus)mod eplus+(j・eminus-eini)mod eplus}mod eplus
={(i・Eminus)mod eplus+(j・eminus-eini)mod eplus}mod eplus  ・・・（１６）
と変形することができる。なお、式（１６）において、Ｅminusは、式（５）に示した値である。そして、ｉに関する項をα(i)とし、ｊに関する項をβ(j)とすれば、
α(i)=(i・Eminus)mod eplus  ・・・（１７）
β(j)= (j・eminus-eini)mod eplus  ・・・（１８）
となる。したがって、式（１６）は、以下の式（１９）のように表せる。
tmp(m)={α(i)+β(j)}mod eplus  ・・・（１９）
【０１４５】
ここで、式（１７）、（１８）より、α(i)及びβ(j)は、ある値を増分値ｅplusで割った余りであるため、増分値ｅplusより小さい。このことから、式（１９）の右辺の{α(i)+β(j)}は、最大でも増分値ｅplusの２倍を超えないことがわかる。そして、式（１９）の右辺は、増分値ｅplusの２倍を超えない{α(i)+β(j)}を増分値ｅplusで割った余りであるため、{α(i)+β(j)}が増分値ｅplus以下であれば、式（１９）は以下のようになる。
tmp(m)=α(i)+β(j)
また、{α(i)+β(j)}が増分値ｅplusより大きければ、式（１９）は以下のようになる。
tmp(m)={α(i)+β(j)}-eplus
【０１４６】
したがって、すべてのｉ及びｊについてあらかじめパラメータα(i)、β(j)を求めておくことにより、ｍ番目のビットについてパンクチャ又はレペテションの有無を判定するために用いられる差分ｔｍｐ(m)は、大小判定と減算により求めることが可能である。
【０１４７】
このことを利用して、差分ｔｍｐ(m)からパンクチャ又はレペテションの有無を判定し、入力データに対してパンクチャ又はレペテションを実行するアルゴリズムを図２８に示す。図２８に示すアルゴリズムにおいては、パラメータα(i)、β(j)を用いた大小判定及び減算によって上述した差分ｔｍｐが算出され、差分ｔｍｐが減分値ｅminus以下である場合には、対象ビットがパンクチャ又はレペテションされている。
【０１４８】
このように、本実施の形態においては、直接的に任意のビットに関するパンクチャ又はレペテションの有無を判定することができ、この判定結果を実施の形態１〜４のビット処理又はパターン決定処理に適用することが可能である。
【０１４９】
以上のように、本実施の形態によれば、入力データを複数のブロックに分割した場合のブロックごと及びブロックを構成するビットごとのパラメータを事前に算出しておく。そして、算出されたパラメータから直接的に任意のビットに関するパンクチャ又はレペテションの有無を判定するためのパラメータを算出する。このため、レート調整時に入力データの各ビットがパンクチャ又はレペテションされるか否かを容易に判定することができる。
【０１５０】
なお、上記各実施の形態においては、送信装置１００及び受信装置２００がアンテナを１本ずつ備えるＳＩＳＯ（Single Input Single Output）を適用した通信システムについて説明したが、本発明はこれに限定されない。すなわち、受信装置及び送信装置が複数のアンテナを備えるＭＩＭＯ(Multi Input Multi Output)、送信ダイバーシティ又は受信ダイバーシティを適用する通信システムにも本発明を適用することができる。同様に、例えばＯＦＤＭ（Orthogonal Frequency Division Multiplexing）などのマルチキャリア通信システムにも本発明を適用することができる。
【０１５１】
また、上記各実施の形態で説明したレート調整処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。この場合、無線通信装置が備えるコンピュータがプログラムを実行することにより、上記各実施の形態と同様の効果を得ることができる。さらに、上記のプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませて実行することにより上記各実施の形態と同様のレート調整処理を実現しても良い。
【０１５２】
図２９は、レート調整処理を実現するコンピュータ６００のハードウェア構成を示すブロック図である。図２９に示すように、このコンピュータ６００は、上記プログラムを実行するＣＰＵ６１０と、データを入力する入力装置６２０と、各種データを記憶するＲＯＭ６３０と、演算パラメータ等を記憶するＲＡＭ６４０と、レート調整処理を実現するためのプログラムを記録した記録媒体７００からプログラムを読み取る読取装置６５０と、ディスプレイ等の出力装置６６０と、ネットワーク７５０を介して他のコンピュータとの間でデータの授受をおこなうネットワークインターフェース６７０とが、バス６８０で接続された構成となっている。
【０１５３】
ＣＰＵ６１０は、読取装置６５０を経由して記録媒体７００に記録されているプログラムを読み込んだ後、プログラムを実行することにより、レート調整処理を実現する。なお、記録媒体７００としては、光ディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ハードディスク等が挙げられる。また、このプログラムは、ネットワーク７５０を介してコンピュータ６００に導入することとしても良い。このとき、ネットワーク７５０は、無線ネットワークであっても有線ネットワークであっても良い。
【０１５４】
以上の各実施の形態に関し、さらに以下の付記を開示する。
【０１５５】
（付記１）入力データの各ビットに対するパンクチャ又はレペテションの有無の判定に用いられる判定値を算出するための第１のパラメータを算出する第１の算出部と、
入力データを複数の処理単位に分割した場合の２つの処理単位に対応する判定値の関係から得られる漸化式を用いた演算により、処理単位ごとの第２のパラメータを順次算出する第２の算出部と、
前記第１の算出部及び前記第２の算出部によって算出された第１のパラメータ及び第２のパラメータを用いて各処理単位を構成するビットそれぞれに関する判定値を求め、求められた判定値に基づいてビットの削減又は追加を実行する実行部と
を有することを特徴とするレート調整装置。
【０１５６】
（付記２）前記実行部は、
入力データを複数の処理単位に分割する分割部と、
前記分割部によって分割されて得られた複数の処理単位ごとに設けられ、それぞれ判定値に基づいて各処理単位を構成するビットの削減又は追加を並列に実行する複数のビット処理部と、
前記複数のビット処理部によってビットの削減又は追加が実行された後の処理単位を結合する結合部と
を含むことを特徴とする付記１記載のレート調整装置。
【０１５７】
（付記３）前記実行部は、
複数の処理単位ごとに設けられ、それぞれ判定値に基づいて各処理単位のビットの出力順序を示すパターンを並列に決定する複数の決定部と、
前記複数の決定部によって決定されたパターンを記憶する記憶部と、
前記記憶部によって記憶されたパターンに従って入力データのビットを出力する出力部と
を含むことを特徴とする付記１記載のレート調整装置。
【０１５８】
（付記４）前記第２の算出部は、
各処理単位の先頭のビットに対応する判定値を処理単位ごとの第２のパラメータとして算出することを特徴とする付記１記載のレート調整装置。
【０１５９】
（付記５）前記第２の算出部は、
各処理単位の先頭のビットに対応する先頭ビットパラメータと、１つの処理単位を構成する各ビットに対応する個別ビットパラメータとを算出することを特徴とする付記１記載のレート調整装置。
【０１６０】
（付記６）前記第２の算出部は、
漸化式によって判定値の関係が示される２つの処理単位のうち一方の処理単位に対応する漸化式の演算部分と第１のパラメータに含まれる増分値との大小を判定する判定部と、
前記判定部による判定の結果、前記演算部分が増分値より大きい場合に、前記演算部分から増分値を減算して他方の処理単位の第２のパラメータを得る減算部と
を含むことを特徴とする付記１記載のレート調整装置。
【０１６１】
（付記７）前記第２の算出部は、
前記判定分による判定の結果、前記演算部分が増分値より小さい場合に、前記演算部分を他方の処理単位の第２のパラメータとして得ることを特徴とする付記６記載のレート調整装置。
【０１６２】
（付記８）前記実行部は、
各ビットの判定値の正負判定によってビットの削減又は追加を実行するか否かを決定することを特徴とする付記１記載のレート調整装置。
【０１６３】
（付記９）前記実行部は、
各ビットの判定値と第１のパラメータに含まれる減分値との大小判定によってビットの削減又は追加を実行するか否かを決定することを特徴とする付記１記載のレート調整装置。
【０１６４】
（付記１０）誤り訂正符号化されたデータを送受信する通信装置を備えた通信システムであって、
前記通信装置は、
入力データの各ビットに対するパンクチャ又はレペテションの有無の判定に用いられる判定値を算出するための第１のパラメータを算出する第１の算出部と、
入力データを複数の処理単位に分割した場合の２つの処理単位に対応する判定値の関係から得られる漸化式を用いた演算により、処理単位ごとの第２のパラメータを順次算出する第２の算出部と、
前記第１の算出部及び前記第２の算出部によって算出された第１のパラメータ及び第２のパラメータを用いて各処理単位を構成するビットそれぞれに関する判定値を求め、求められた判定値に基づいてビットの削減又は追加を実行する実行部と
を有することを特徴とする通信システム。
【０１６５】
（付記１１）入力データの各ビットに対するパンクチャ又はレペテションの有無の判定に用いられる判定値を算出するための第１のパラメータを算出する第１の算出ステップと、
入力データを複数の処理単位に分割した場合の２つの処理単位に対応する判定値の関係から得られる漸化式を用いた演算により、処理単位ごとの第２のパラメータを順次算出する第２の算出ステップと、
前記第１の算出ステップ及び前記第２の算出ステップにて算出された第１のパラメータ及び第２のパラメータを用いて各処理単位を構成するビットそれぞれに関する判定値を求める第３の算出ステップと、
前記第３の算出ステップにて求められた判定値に基づいてビットの削減又は追加を実行する実行ステップと
を有することを特徴とするレート調整方法。
【０１６６】
（付記１２）コンピュータによって実行されるレート調整プログラムであって、前記コンピュータに、
入力データの各ビットに対するパンクチャ又はレペテションの有無の判定に用いられる判定値を算出するための第１のパラメータを算出する第１の算出ステップと、
入力データを複数の処理単位に分割した場合の２つの処理単位に対応する判定値の関係から得られる漸化式を用いた演算により、処理単位ごとの第２のパラメータを順次算出する第２の算出ステップと、
前記第１の算出ステップ及び前記第２の算出ステップにて算出された第１のパラメータ及び第２のパラメータを用いて各処理単位を構成するビットそれぞれに関する判定値を求める第３の算出ステップと、
前記第３の算出ステップにて求められた判定値に基づいてビットの削減又は追加を実行する実行ステップと
を実行させることを特徴とするレート調整プログラム。
【符号の説明】
【０１６７】
１１０  誤り訂正符号化部
１２０  レートマッチング部
１２１  基本パラメータ算出部
１２２、３０１  先頭パラメータ算出部
１２２ａ  初期値設定部
１２２ｂ  加算部
１２２ｃ  大小判定部
１２２ｄ  増分値減算部
１２２ｅ  減算部
１２２ｆ  正負判定部
１２２ｇ  増分値加算部
１２３  ブロック分割部
１２４、２４１、４０２、４１１  ビット処理部
１２５  ブロック結合部
１３０  変調部
１４０  無線送信部
２１０  無線受信部
２２０  チャネル推定部
２３０  復調部
２４０  レートデマッチング部
２５０  誤り訂正復号部
３０２、５０２  パターン決定部
３０３  パターン記憶部
３０４、３１１  入出力部
４０１、５０１  パラメータ事前算出部
４０３  Ｓ／Ｐ変換部
４０４  Ｐ／Ｓ変換部
５０３  アドレス算出部
【図１】
2011077943.tif 000005
【図２】
2011077943.tif 000006
【図３】
2011077943.tif 000007
【図４】
2011077943.tif 000008
【図５】
2011077943.tif 000009
【図６】
2011077943.tif 000010
【図７】
2011077943.tif 000011
【図８】
2011077943.tif 000012
【図９】
2011077943.tif 000013
【図１０】
2011077943.tif 000014
【図１１】
2011077943.tif 000015
【図１２】
2011077943.tif 000016
【図１３】
2011077943.tif 000017
【図１４】
2011077943.tif 000018
【図１５】
2011077943.tif 000019
【図１６】
2011077943.tif 000020
【図１７】
2011077943.tif 000021
【図１８】
2011077943.tif 000022
【図１９】
2011077943.tif 000023
【図２０】
2011077943.tif 000024
【図２１】
2011077943.tif 000025
【図２２】
2011077943.tif 000026
【図２３】
2011077943.tif 000027
【図２４】
2011077943.tif 000028
【図２５】
2011077943.tif 000029
【図２６】
2011077943.tif 000030
【図２７】
2011077943.tif 000031
【図２８】
2011077943.tif 000032
【図２９】
2011077943.tif 000033