(57)【特許請求の範囲】
【請求項１】
送受信するデータの符号化の際のデータ長の伸長を行うレートマッチング／デマッチング装置であって、
レートマッチングのための基本パラメータと、レートマッチング／デマッチングするデータの分割位置に関するパラメータ及び分割データの各ビットのパラメータ値を算出し、ビットの挿入・削除処理のパターンが同一となるような分割位置を検出し、該分割位置でデータを分割し、該分割の結果、分割データ数が所定数よりも大きくなった場合には、前記パターンの周期を複数周期に設定し直すことにより、分割データ数を減らす処理を行うパラメータ算出手段と、
前記パラメータ算出手段が算出したパラメータに基づいて、各分割データにおいて削除・挿入されるべきビット位置を算出するビット位置算出手段と、
ビットの削除・挿入を行うビット削除・挿入手段と、
を備えることを特徴とする装置。
【請求項２】
前記ビット削除・挿入手段は複数設けられ、前記分割数に応じて、選択的に使用され、並列にビットの削除・挿入を行うことを特徴とする請求項１に記載の装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、Ｗ−ＣＤＭＡ基地局や端末などの無線通信装置内におけるデータ送受信時の符号化処理の一部であり、データ長を伸長することによりデータ転送レートを調節するレートマッチング／デマッチング処理に関する。
【０００２】
【従来の技術】
図９は、レートマッチング処理アルゴリズムを示す図である。
レートマッチング処理は、データの指定されたビットを削除してデータ長を短くするパンクチャ（Puncture）処理、及び指定されたビットの直後にそのビットをコピー・挿入する事によりデータ長を長くするレピテション（Repetition）処理の２つの処理がある。どのビットを削除、コピーするかは図９のアルゴリズムにより決定される。
【０００３】
ここで、Ｌはレートマッチング処理を行うデータの入力長、ｅｒｒinitはレートマッチング処理を行う先頭ビットまでのオフセット、ｅｒｒplus、ｅｒｒminusはレートマッチング入出力データ長より決定されるｅｒｒ更新値である。ｅｒｒplus、ｅｒｒminusは入出力データ長より求めることができ、その算出方法は、Ｗ−ＣＤＭＡ標準仕様に基づく。
【０００４】
以下にパンクチャ処理の具体例を示す。
３０ビットのデータがあるとする。このデータをｅｒｒinit＝１、ｅｒｒplus＝６０、ｅｒｒminus＝１２の条件でパンクチャして２４ビットにする場合を考える。レートマッチングアルゴリズムより、１、６、１１、１６、２１、２６ビット目の計６ビットがパンクチャされる。
【０００５】
図１０は、パンクチャした結果を示す図である。
ｅｒｒ算出値は入力データに対して、各ビットのｅｒｒminusを引く直前のｅｒｒの値である。
【０００６】
次に、レピテションの具体例を示す。
２６ビットのデータをｅｒｒinit＝１、ｅｒｒplus＝５２、ｅｒｒminus＝８の条件でレピテションして、３０ビットにする。レートマッチングアルゴリズムより、１、７、１４、２０ビット目の計４ビットがレピテションされる。
【０００７】
図１１は、レピテションの結果を示す図である。
ｅｒｒ算出値は入力データに対して、各ビットのｅｒｒminusを引く直前のｅｒｒの値である。
【０００８】
このような処理機能を実現する最も単純な手法は、以下に述べるようなものである。
図１２は、従来のレートマッチング処理の機能ブロック図を示す図である。
【０００９】
レートマッチングを行うデータの入出力長より、パラメータ演算ユニットで、ｅｒｒplus、ｅｒｒminus、ｅｒｒinit等を求める。レートマッチング処理実行ビット番号ｍ＝１、ｅｒｒ初期値をｅｒｒinitとする。
【００１０】
レートマッチング処理マクロは、データが１ビット入力されるごとに、レピテション／パンクチャビット検出ユニットでレートマッチングアルゴリズムを実行し、ｅｒｒの値を更新する（ｅｒｒ＝ｅｒｒ−ｅｒｒminus）。ｅｒｒの値が負になったときに、パンクチャ（データ破棄）またはレピテション（データ複数回送信）を実行するようにレピテション／パンクチャ実行ユニットへ通知する。
【００１１】
ｅｒｒの値が０より大きい場合は、レピテション／パンクチャ実行ユニットはデータをそのまま素通りさせる。パンクチャまたはレピテションが行われた際には、ビット検出ユニットではｅｒｒを更に更新する（ｅｒｒ＝ｅｒｒ＋ｅｒｒplus）。
【００１２】
以上のような処理を入力ビットｌｅｎｇｔｈ ｉｎだけ行うことにより、レートマッチング処理を実行する。
なお、図１２のレートマッチング処理の機能ブロックに入力されるデータ入出力長は以下のようにして得られる。
【００１３】
すなわち、送信処理においては、レートマッチング入力長は符号器に入力されたデータ長より算出する。出力長は、指定された複数のデータ長の中から最適なものが選択される。すなわち、データは、最初トランスポートブロックとして構成され、次に、誤り訂正符号（ＣＲＣ）が付加され、そして、トランスポートブロックが結合され、符号器に入力される。この時の長さがデータ入力長である。そして、データには、典型的には、ターボ符号化、あるいは、畳み込み符号化などの符号化が行われる。得られた符号化データは、第１回目のインタリーブ処理を受け、レートマッチングされ、次に、２回目のインタリーブ処理を受けて、変調器に送られる。
【００１４】
【発明が解決しようとする課題】
Ｗ−ＣＤＭＡシステムでは、高速なデータ転送が特徴となっており、現在は伝送レート３８４ｋｂｐｓの実装を主眼に開発しているが、将来的には最大データ伝送レート２Ｍｂｐｓを実現する予定である。処理するデータ量は５倍以上になり、データ量に比例して処理量は増加する。しかし、レートマッチング処理のための規定時間は一定であるため、伝送レート２Ｍｂｐｓを実現するにはデータ処理性能を現在の５倍以上にしなければならない。
【００１５】
本発明の課題は、簡単な構成で高速にレートマッチング及びレートデマッチングを行うことが出来るレートマッチング／デマッチング処理装置を提供することである。
【００１６】
【課題を解決するための手段】
本発明のレートマッチング／デマッチング装置は、送受信するデータの符号化の際のデータ長の伸長を行うレートマッチング／デマッチング装置であって、レートマッチングのための基本パラメータと、レートマッチング／デマッチングするデータの分割位置に関するパラメータ及び分割データの各ビットのパラメータ値を算出するパラメータ算出手段と、前記パラメータ算出手段が算出したパラメータに基づいて、各分割データにおいて削除・挿入されるべきビット位置を算出するビット位置算出手段と、ビットの削除・挿入を行うビット削除・挿入手段とを備えることを特徴とする。
【００１７】
従来シリアルにデータをレートマッチング／デマッチングしていたところ、本発明によれば、データを分割し、分割されたそれぞれのデータブロックに対して、挿入・削除すべきビットを決定可能としたので、レートマッチング／デマッチング処理を分割データ毎に並列に処理することを可能とし、簡易で、高速なレートマッチング／デマッチング処理を実現することが出来る。
【００１８】
【発明の実施の形態】
図１は、Ｗ−ＣＤＭＡ  ＣＨ−ＣＯＤＥＣ部の概要図である。
まず、送信側では、上位アプリケーションから転送されたデータは、チャネルコーデック送信部１０に入力される。このデータに、ＣＲＣ付加部において、ＣＲＣビットを付加した後に、データの種類により、畳み込み符号器、またはターボ符号器に入力されて符号化する。
【００１９】
符号化されたデータには、１ｓｔインタリーブ部において、第１回目のインタリーブ処理が行われ、その後レートマッチング部にてデータの伸縮操作が行われる。その後、レートマッチング後のデータに２ｎｄインタリーブ部において、第２回目のインタリーブ処理が施されてＭＯＤ部１２へ転送される。
【００２０】
ＭＯＤ部１２では、ＱＰＳＫ拡散及びＱＰＳＫ変調が行われ、送信部１３でＲＦ信号に変換され、アンテナ１５から送信される。
また、受信側では、アンテナ１６で受信された信号は、受信部１４において、ＲＦ信号からベースバンド信号に変換され、ＤＥＭ部１１に入力される。ＤＥＭ部１１では、逆拡散、ＲＡＫＥ合成などを行い、処理後のデータをチャネルコーデック受信部９に入力する。
【００２１】
チャネルコーデック受信部９では、２ｎｄデインタリーブ部において、送信側で行った第２回目のインタリーブを元に戻すデインタリーブを行う。次に、１ｓｔデインタリーブ部において、送信側の第１回目のインタリーブを元に戻すデインタリーブを行う。そして、レートデマッチング部において、デインタリーブされたデータのレートデマッチングを行い、送信側での符号化種別により、ターボ復号器、あるいは、ビタビ復号器にデータを入力して、復号する。復号されたデータは、ＣＲＣチェック部に入力され、誤り検出が行われた後、上位アプリケーションに渡される。
【００２２】
本発明の実施形態は、送信側のレートマッチング部及び受信側のレートデマッチングとその周辺の機能に適用される。
図２は、図１の送信レートマッチング部に本発明の実施形態を用いた場合のハードウェア構成例である。
【００２３】
図２において、ＣＰＵあるいは、ＤＳＰに設けられるレートマッチング基本パラメータ算出部２０は、本発明の実施形態のレートマッチング処理を行うデータの入出力長より、処理に必要なパラメータｅｒｒinit、ｅｒｒplus、ｅｒｒminusを算出するユニットである。
【００２４】
データ分割位置・分割パラメータ算出部２１では、レートマッチングデータの分割数、入出力分割データ長、及び、入力分割データ先頭ビットのｅｒｒ値を基本パラメータ算出部２０で算出したｅｒｒinit、ｅｒｒplus、ｅｒｒminus、および、入出力データ長より算出する。すなわち、本発明の実施形態においては、レートマッチングすべきデータを分割して、分割されたそれぞれのデータを並列にレートマッチングすることにより処理速度を速くするものである。
【００２５】
パラメータ算出後、１ｓｔインタリーブ回路２２にレートマッチング入力分割データ長、データ分割数を通知する。これをもとに、１ｓｔインタリーブ回路２２でデータの出力先をどのバッファにするかを調節し、データの分割を行う。
【００２６】
また、２ｎｄインタリーブ回路２３には、レートマッチング出力データ長、データ分割数を通知する。これをもとに２ｎｄインタリーブ回路２３でデータの結合を行う。
【００２７】
レートマッチング回路２４へは、更に入力分割データ先頭ビットのｅｒｒ値を通知する。これを基にビット挿入・削除の位置検出及び挿入・削除処理を行う。
以上の処理は１ｓｔインタリーブ回路２２がデータ出力を始めるまでに決定しておく。また、これらの処理はＣＰＵやＤＳＰなどのソフトウェア処理で行う。
【００２８】
１ｓｔインタリーブ回路２２が全ての分割データをバッファに格納したら、レートマッチング回路２４でデータの挿入・削除を行う。
図３は、本発明の第１の実施形態の機能ブロック図を示す図である。
【００２９】
本実施形態では、処理データを複数に分割して、各分割データを並列処理することにより、処理速度の向上を実現する。
はじめに、処理するデータを（できるだけ長さが均等になるように）複数個に分割する。しかし、レートマッチング処理を行うには、分割したデータの先頭ビットについてパラメータｅｒｒの値を決定しなければならない。この値を決定しないとレートマッチングアルゴリズムを実行することが出来ない。
【００３０】
ｋビット目のｅｒｒの値はｅｒｒinitからｋ−１回だけｅｒｒminusを引いて、負になった回数だけｅｒｒplusを加えている。そこで、ｋビット目までにひかれた値ｅｒｒminus×（ｋ−１）に何回ｅｒｒplusを加えれば正の値になるかを調べれば良い。したがって、以下の計算式を用いることにより、パラメータｅｒｒのｋビット目の値を計算することができる。
ｅｒｒk＝ｅｒｒinit−［｛ｅｒｒminus×（ｋ−１）｝％ｅｒｒplus］
ただし、もし、（ｅｒｒk≦０）ならば、ｅｒｒk＝ｅｒｒk＋ｅｒｒplus（ｋ≧２）・・・・・（式１）
なお、ここで「％」は、割ったあまりを演算することを意味する。
【００３１】
上記の（式１）より、従来の方法では、処理の直前まで分からなかったｋビット目のｅｒｒの値ｅｒｒkを算出することができ、この値を分割データのｅｒｒinitとして適用する。
【００３２】
ｋの値はパラメータ算出ユニット３０で決定する。また、各分割データの検出ビット番号ｍ（パンクチャあるいはレピテションを行うビットの番号）の初期値は、分割データの先頭のビット番号ｋとしておく。
【００３３】
各分割データの先頭ビットについてｅｒｒinit＝ｅｒｒkとして、ｅｒｒinit値が算出できたら、レピテション／パンクチャ実行ユニット＃１〜＃ｎにおいて、各分割データを同時に処理する。ｅｒｒの値更新演算は各分割データ毎に行わなければならない。
【００３４】
図１０の３０ビット→２４ビットのパンクチャ処理を行う場合を例にとって本実施形態を説明する。
また、本実施形態の機能をハードウェアで実現する場合、１ビットのデータを処理するのに１クロック必要であるとする。
【００３５】
従来の手法では、先頭ビットから順次処理していくので、３０ビットのデータを処理するのに３０クロックの供給が必要である。
このデータを１０ビット毎のデータに３分割する。各分割データの先頭ビットのｅｒｒ値を算出すると、（式１）より以下のようになる。
ｅｒｒinit1＝ｅｒｒ1＝１
ｅｒｒinit2＝ｅｒｒ11＝ｅｒｒinit−［｛ｅｒｒminus×（ｋ−１）｝％ｅｒｒplus］＝１−［（１２×（１１−１）％６０］＝１−［１２０％６０］＝１−０＝１
ｅｒｒinit3＝ｅｒｒ21＝ｅｒｒinit−［｛ｅｒｒminus×（ｋ−１）％ｅｒｒplus］＝１−［｛（１２×（２１−１）％６０］＝１−［２４０％６０］＝１−０＝１
この結果は、図１０下段のｅｒｒ算出値よりも確認できる。各分割データのｅｒｒ値をそれぞれｅｒｒ１、ｅｒｒ２、ｅｒｒ３と表す。
【００３６】
各分割データに、それぞれパンクチャ処理を行う。それぞれの分割処理ユニットに共通のクロックを供給すると、各レピテション／パンクチャ実行ユニット＃１〜＃３（ここでは、ｎ＝３）が処理するデータは１０ビットなので、１０クロックの供給を行えば処理を完了できる。
【００３７】
１クロック目で処理されるデータは、（１、１１、２１）ビット目のデータである。このとき、ｅｒｒ１、ｅｒｒ２、ｅｒｒ３の値はいずれも負の値になるので、１、１１、２１ビット目はパンクチャされる。
【００３８】
２クロック目で処理されるデータは、（２、１２、２２）ビット目であり、このときのｅｒｒ値、ｅｒｒ１、ｅｒｒ２、ｅｒｒ３の値はいずれも正の値なので、パンクチャされずに出力される。
【００３９】
このように処理を行うと、６クロック目で１クロック目と同様に、ｅｒｒ１、ｅｒｒ２、ｅｒｒ３の値が負になり、６、１６、２６ビット目がパンクチャされ、１０クロック目で１０、２０、３０ビット目を処理して全ての処理を終了する。
【００４０】
従って、３分割した場合、従来の１／３の時間でパンクチャ処理を行える。
図１１のレピテション処理も、本実施形態では同様に、８、９、９ビットの３つに分割する。従来の手法では、先頭ビットから順次処理していくので２６ビットのデータを処理するのに２６クロックの供給が必要である。
【００４１】
各分割データの先頭ビットのｅｒｒ値を算出すると以下のようになる。
ｅｒｒinit1＝ｅｒｒ1＝１
ｅｒｒinit9＝ｅｒｒ9＝ｅｒｒinit−［｛ｅｒｒminus×（ｋ−１）｝％ｅｒｒplus］＝１−［｛８×（９−１）％５２］＝１−［６４％５２］＝１ー１２＝−１１
ｅｒｒ9＝−１１＋５２＝４１
ｅｒｒinit3＝ｅｒｒ18＝ｅｒｒinit−［｛ｅｒｒminus×（ｋ−１）｝％ｅｒｒplus］＝１−［（８×（１８−１）％５２］＝１−［１３６％５２］＝１−３２＝−３１
ｅｒｒ18＝−３１＋５２＝２１
この結果は、図１１下段のｅｒｒ算出値よりも確認できる。
【００４２】
そして、各分割データにレピテション処理を行う。各分割データのｅｒｒ値をそれぞれｅｒｒ１、ｅｒｒ２、ｅｒｒ３と表す。それぞれの分割処理ユニットに共通のクロックを供給すると、各ユニットが処理するデータは多くて９ビットなので、９クロックの供給を行えば処理を完了出来る。
【００４３】
１クロック目で処理されるデータは（１、９、１８）ビット目であり、ｅｒｒ１の値が負になる。そのため、１ビット目がレピテションされる。
２クロック目で処理されるデータは（２、１０、１９）ビット目である。このときのｅｒｒ１、ｅｒｒ２、ｅｒｒ３の値はいずれも正なので、レピテションは行われない。
【００４４】
３クロック目では、（３、１１、２０）ビット目が処理される。このとき、ｅｒｒ３の値が負になるため２０ビット目がレピテションされる。
同様に、６クロック目で（６、１４、２３）ビット目を処理し、ｅｒｒ１、ｅｒｒ２の値が負になるため、６ビット目及び１４ビット目がレピテションされる。
【００４５】
８クロック目で（８、１６、２５）ビット目を処理し、ｅｒｒの値は正なのでレピテションはされない。この段階で、先頭分割データ（１〜８ビット）は処理を終了する。
【００４６】
９クロック目で（なし、１７、２６）ビット目を処理し、ｅｒｒの値が正なので、レピテションをしないで全体の処理を終了する。
従って、本実施形態に従えば、従来に比べほぼ１／３の時間で処理できる。
【００４７】
図４は、図２のＤＳＰ及び図３のパラメータ演算ユニット３０の行う処理を説明するフローチャートである。
まず、ステップＳ１において、上位アプリケーションより送信データのデータ長を取得する。そして、ステップＳ２において、レートマッチング基本パラメータを算出する。すなわち、ｅｒｒinit、ｅｒｒplus、ｅｒｒminusを算出する。ここで、これらレートマッチング基本パラメータの算出方法は、既存のものであるので、説明を省略する。
【００４８】
そして、ステップＳ３において、レートマッチング分割入力データ長を算出する。ここで、分割数は、レートマッチング処理を行うデータ単位で固定（ｍ）とし、分割入力データ長（Ｄｉｎ ｋ：ｋ＝１〜ｍ）を算出する。そして、ステップＳ４において、レートマッチング分割出力データ長を算出する。ステップＳ５においては、分割データの先頭ビットｅｒｒ値を算出する。この演算は、前記（式１）によって行う。そして、各分割データの先頭ビットのｅｒｒ値をｅｒｒinitとする。そして、ステップＳ６において、各レピテション／パンクチャ実行ユニットへ分割パラメータを通知する。すなわち、レートマッチング回路に入出力分割データ長、ｅｒｒinit等の各種パラメータを通知すると共に、１ｓｔインタリーブ回路へ分割出力データ長及び分割数を、２ｎｄインタリーブ回路へ分割入力データ長及び分割数を通知する。そして、レートマッチング回路においては、各レピテション／パンクチャ実行ユニットが各分割データに対し、並列にレートマッチング処理を施す。
【００４９】
図５は、第１の実施形態のレートマッチング回路の具体的構成例を示した図である。
今の場合、データはｎ分割されるものとしている。ｎ分割された分割データは、それぞれ、クロックＣＬＫに従って駆動するデータロードユニットに与えられる。データロードユニットは、データを受け取ると、これをデータ転送ユニットに渡す。各データ転送ユニットには、挿入・削除ビット検出回路＃１〜＃ｎが設けられており、データ転送ユニットに入力されたビットが削除あるいは挿入すべきビットであるか否かを判断する。すなわち、パンクチャのとき、データ転送ユニットに入力されたビットが削除対象であると判断された場合には、データ転送ユニットに、そのビットを破棄して、次のビットを読み込むように指示する。また、レピテションの時は、データ転送ユニットに入力されたビットが挿入対象であると判断された場合には、データ転送ユニットに、そのビットを２クロック続けて送出するように指示する。
【００５０】
図６は、本発明の第２の実施形態を説明する概要ブロック図である。
本実施形態においては、処理データを複数に分割して、各分割データを同期させて並列処理する事により、処理速度の向上を実現する。
【００５１】
はじめに、処理するデータを複数個に分割する。ただし、分割データの先頭ビットｋについてｅｒｒkが１ビット目のｅｒｒinitと等しくなるビットを選択する。
【００５２】
レートマッチングアルゴリズムは、「ｅｒｒからビット毎にｅｒｒminusを引いていきｅｒｒの値を更新し、ｅｒｒが０以下の値になったらｅｒｒplusを加える」という周期的な操作を繰り返しているため、ｅｒｒの値がｅｒｒinitと等しくなるビットが存在する。（式１）より以下の条件が成り立つｋが、ｅｒｒの値がｅｒｒinitと等しくなるビット番号となる。
ｅｒｒinit＝ｅｒｒinit−［｛ｅｒｒminus×（ｋ−１）％ｅｒｒplus］（ｋ≧２）・・・（式２）
すなわち、ｅｒｒplusとｅｒｒminusの公倍数となる値Ｇが求まる時である。
Ｇ＝ｅｒｒminus×ｋ＝ｅｒｒplus×ｐ（ｋ≧２）（式３）
上記（式３）のパラメータｋ、ｐは、１〜ｋビットまでにｐ回のパンクチャまたはレピテションが行われるという周期性を表す。Ｇが最小公倍数の時に、最短の周期性が検出できる。
【００５３】
ｋの値は、パラメータ演算ユニット３５で算出する。
ｅｒｒminusとｅｒｒplusの最小公倍数を求め、（式３）よりｋの値が検出できたら、１〜ｋビットが１つの周期になっていることになる。従って、ｋ＋１〜２ｋビット、２ｋ＋１〜３ｋビット・・・は、１〜ｋビットと同じパターンでレートマッチング処理を行うことができる。
【００５４】
レピテション／パンクチャビット検出ユニットにおいて、分割位置が決定したら、レピテション／パンクチャ実行ユニット＃１〜＃ｎにおいて、各分割データを同期させて並列に処理する。全ての分割データにおいてｅｒｒinitが同じなので、分割データに対してｅｒｒの値は共通である。
【００５５】
図１０の３０ビット→２４ビットのパンクチャ処理を行うとする。
ハードウェアで処理する場合、１ビットのデータを処理するのに１クロック必要であるとする。
【００５６】
従来の手法では、先頭ビットから順次処理していくので、３０ビットのデータを処理するのに３０クロックの供給が必要である。
まず、ｅｒｒの値がｅｒｒinitと等しくなるビットを検出する。これは、ｅｒｒplusとｅｒｒminusの最小公倍数Ｇを求めると、Ｇ＝６０となる。
【００５７】
つまり、（式３）が成り立つ最小のｋ、ｐの値はｋ＝５、ｐ＝１となる。
Ｇ＝ｅｒｒminus×ｋ＝ｅｒｒplus×ｐ→１２×ｋ＝６０×ｐ＝６０
これは、「５ビット毎に１ビットのパンクチャ処理がされる」ことを示す。
【００５８】
以上より、ビット１＋ｋ×ｉ（ｉ＝０、１、２・・・）、すなわち、１、６、１１、２１、２６の６ビットはｅｒｒの値がｅｒｒinitと等しくなる。これは、図１０下段のｅｒｒ算出値からも確認できる。
【００５９】
これより、３０ビットのデータを６分割することができ、各分割ユニットは、５ビット処理すれば良いので、共通のクロックを供給すると５クロックでパンクチャ処理を実行できる。実際にパンクチャ処理を行うと、以下のようになる。
【００６０】
１クロック目では、（１、６、１１、１６、２１、２６）ビットが処理される。このときのｅｒｒ値は全て１−１２＝−１１となり、負の値になるので、（１、６、１１、１６、２１、２６）ビットはパンクチャされる。
【００６１】
２クロック目〜５クロック目では、それぞれ（２、７、１２、１７、２２、２７）ビット、・・・（５、１０、１５、２０、２５、３０）ビット目が処理される。この間ｅｒｒの値は常に正なので、パンクチャ処理は行われない。
【００６２】
以上より、計５クロックで３０ビットのパンクチャ処理を終了でき、従来の１／６の時間でレートマッチング処理が出来る。
同様に、図１１のレピテション処理を行うと、ｅｒｒplusとｅｒｒminusの最小公倍数Ｇを求めると、Ｇ＝１０４となり、ｋ、ｐの値は、ｋ＝１３、ｐ＝２となる。これは、「１３ビット毎に２ビットのレピテション処理がされる」ことを示す。
【００６３】
以上より、ビット１＋ｋ×ｉ（ｉ＝０、１、２・・・）、すなわち、１、１４ビットは、ｅｒｒの値がｅｒｒinitと等しくなる。これは、図１１下段のｅｒｒ算出値からも確認できる。
【００６４】
これより、２６ビットのデータを２分割することができ、各分割ユニットは１３ビット処理すれば良いので、共通のクロックを供給すると１３クロックでレピテション処理を実行できる。実際にレピテション処理を行うと、以下のようになる。
【００６５】
１クロック目では、（１、１４）ビットが処理される。このときｅｒｒの値は負の値になり、レピテションが行われる。
２クロック目では、（２、１５）ビットが処理される。このときのｅｒｒの値は正なので、レピテションは行われない。
【００６６】
（３〜６、１６〜１９）ビットの処理で４クロック供給されるが、２クロック目と同様な処理が行われ、レピテションは行われない。
次にレピテションが行われるのは７クロック目の（７、２０）ビットを処理した時で、ｅｒｒの値が負になり、レピテションされる。
【００６７】
残りの（８〜１３、２１〜２６）ビットの処理で６クロック供給されるが、２クロック目と同様な処理が行われ、レピテションは行われない。
以上より、計１３クロックで２６ビットのレピテション処理が終了でき、従来の１／２の時間で処理できる。
【００６８】
なお、図６の実施形態では、データの分割数が場合によって変化するので、レピテション／パンクチャ実行ユニットとそれに付随する構成は、設計上考えられる最大数設けておき、必要に応じて、セレクタなどで、使用するレピテション／パンクチャ実行ユニットを選択して、処理を実行させる。
【００６９】
図７は、本実施形態におけるＤＳＰ及びパラメータ演算ユニットが行う処理を説明するフローチャートである。
まず、ステップＳ１０において、送信入力データ長取得を行う。そして、ステップＳ１１において、レートマッチング基本パラメータの算出を行う。すなわち、レートマッチング入出力データ長、ｅｒｒinit、ｅｒｒplus、ｅｒｒminusを算出する。次に、（式３）に基づいて、レートマッチングパターン周期を検出する。すなわち、一周期のビット数を検出する。ここで、パターンの周期が何周期で構成されているかを示すｎをｎ＝１としておく。そして、ステップＳ１３において、分割データ長・データ数を算出し（ｎ周期でデータを区切る時の分割データ長及び分割数を算出する）、ステップＳ１４において、算出分割数が最大の分割数（設けられているレピテション／パンクチャ実行ユニットの数）よりも大きいか否かを判断する。算出分割数が最大分割数よりも大きい場合には、ステップＳ１５においてｎを１つ増加し、ステップＳ１３に戻って処理を繰り返す。例えば、最初ｎ＝１である場合には、レートマッチングパターンの１周期でデータを分割していたことになるが、ｎを１つ増加することにより、２周期毎にデータを分割することになる。これにより、データの分割数が減ることになる。
【００７０】
ステップＳ１４において、算出分割数が最大分割数より小さくなった場合には、ステップＳ１６に進み、レートマッチング分割出力データ長を算出し、ステップＳ１７において、各回路に分割パラメータを通知する。すなわち、レートマッチング回路に入出力分割データ長、ｅｒｒinit等の各種パラメータを通知し、１ｓｔインタリーブ回路へ分割出力データ長及び分割数を、２ｎｄインタリーブ回路へ分割入力データ長及び分割数を通知する。
【００７１】
図８は、本実施形態のレートマッチング回路の具体例を示した図である。
分割されたデータは、各データロードユニットにロードされ、データ転送ユニットに送られる。挿入・削除ビット検出回路からは、今データ転送ユニットにロードされているビットが削除対象か、挿入対象を示す信号が出力される。データ転送ユニットは、この信号に基づいて、受け取ったビットを破棄したり、繰り返し送出する。この場合、先の実施形態と異なり、各分割データにおいて、削除されるべきビット番号あるいは、挿入されるべきビット番号が全ての分割データにおいて共通となるので、挿入・削除ビット検出回路は、複数のテーブル転送ユニット及びデータロードユニットの組について１つだけ設けられる。
【００７２】
なお、図５及び図８において、データロードユニットは、クロックが供給されるたびにバッファからデータをロードし、保持しておく。
挿入・削除ビット検出回路は、レートマッチングアルゴリズムによりｅｒｒ値の更新を行い（ｅｒｒ＝ｅｒｒ−ｅｒｒminus）、ロードしたデータが挿入・削除処理の対象になるかを判断する。ｅｒｒ値が０以下になった時はデータ転送ユニットへ保持データが挿入・削除処理対象であることを通知し、ｅｒｒ値の再更新を行う（ｅｒｒ＝ｅｒｒ＋ｅｒｒplus）。
【００７３】
データ転送ユニットは、データロードユニットの保持するデータを２ｎｄインタリーブ回路へと転送する。ただし、挿入・削除ビット検出回路よりビット削除を通知された場合は、転送しない。また、ビット挿入を通知された場合は、保持データを複数回転送する。
【００７４】
なお、ビットの挿入・削除の判断は、データ入出力長よりあらかじめ判断しておく。
また、本発明の上記実施形態をＣＰＵやＤＳＰ等のソフトウェア処理で実現すると以下のようになる。
【００７５】
図１０の３０ビット→２４ビットのパンクチャ処理を行うとする。
ＣＰＵやＤＳＰで本発明の上記実施形態を実現する場合には、ＣＰＵあるいはＤＳＰがシリアルに、レートマッチングすべきデータを受け取り、これをメモリに格納して、削除すべきビットあるいは挿入すべきビットを、上記実施形態に従って決定し、削除・挿入を行う。この場合、実際のデータは分割されていないが、仮想的に分割されたものとして、挿入・削除ビットのビット番号を算出する。
【００７６】
まず、ｅｒｒinit（＝１）、ｅｒｒplus（＝６０）、ｅｒｒminus（＝１２）を算出したらｅｒｒplus、ｅｒｒminusの最大公倍数Ｇ＝６０を算出する。（式３）よりｋ＝５、ｐ＝１となり５ビット周期で１ビットのパンクチャが行われることが分かる。ｍ＝１（仮想的分割データの最初のビット）からパンクチャ処理を行う。
【００７７】
ｍ＝１のとき、ｅｒｒの値をｅｒｒminusで更新するとｅｒｒ＜０となり、パンクチャ処理を行うことになる。このとき、ビット番号がｍ＋ｋ×ｉ（ｋは周期、ｉは、仮想的分割データのブロック番号でｉ＝０、１、２・・・である）を満たす他のビット、すなわち、１、６、１１、１６、２１、２６ビット目も同時にパンクチャされる。パンクチャ処理が終わりｅｒｒをｅｒｒplusで更新するとｅｒｒ＝４９となり、ｍ＝ｍ＋１＝２として、次のビットの処理に移る。
【００７８】
ｍ＝２の場合、ｅｒｒの値は０以下にはならないため、パンクチャ処理はされず、データはそのまま転送される。このときも、ビット番号がｍ＋ｋ×ｉ（ｉ＝０、１、２・・・）を満たす他のビット、すなわち、２、７、１２、１７、２２、２７ビットも同時に転送される。ｍ＝ｍ＋１＝３として同様の処理を繰り返す。
【００７９】
ｍ＝３〜５の場合は、ｅｒｒの値が０以下にならないためｍ＝２と同様の処理を行う。
ｍ＝５のパンクチャ処理が終了し、最後にｍ＝６に更新されると、ｍの値が（入力データ長）／分割数＝３０／６＝５（すなわち、周期）より大きくなるため、全てのパンクチャ処理を終了する。
【００８０】
このように、ｅｒｒの更新やｅｒｒ値による条件判断を周期性により処理の共通化をすることにより、全体の演算量を低減している。この場合は、６周期に分割できたので、データのロード・ストア操作を除く、ｅｒｒ算出処理を従来の１／６に低減できる。
【００８１】
同様に、図１１のレピテション処理を行う。
ｅｒｒinit（＝１）、ｅｒｒplus（＝５２）、ｅｒｒminus（＝８）を算出したらｅｒｒplus、ｅｒｒminusの最大公倍数Ｇ＝１０４を算出する。（式３）よりｋ＝１３、ｐ＝２となり、１３ビット周期で２ビットのレピテション処理が行われることが分かる。ｍ＝１からレピテション処理を行う。
【００８２】
ｍ＝１のとき、ｅｒｒの値をｅｒｒminusで更新するとｅｒｒ＜０となり、レピテション処理を行うことになる。このとき、ビット番号がｍ＋ｋ×ｉ（ｉ＝０、１、２・・・）を満たす他のビット、すなわち、１、１４ビット目も同時にレピテションされる。レピテション処理が終わり、ｅｒｒをｅｒｒplusで更新するとｅｒｒ＝４５となり、ｍ＝ｍ＋１＝２として、つぎのビットの処理に移る。
【００８３】
ｍ＝２のとき、ｅｒｒの値は０以下にはならないため、レピテション処理はされず、データはそのまま転送される。このときも、ビット番号がｍ＋ｋ×ｉ（ｉ＝０、１、２・・・）を満たす他のビット、すなわち、２、１５ビットも同時に転送される。ｍ＝ｍ＋１＝３として同様の処理を繰り返す。
【００８４】
ｍ＝３〜５、７〜１３の場合は、ｅｒｒの値が０以下にならないためｍ＝２と同様の処理を行う。
ｍ＝６の場合は、ｅｒｒ＜０となるため、ｍ＝１と同様の処理を行う。
【００８５】
ｍ＝１３のレピテション処理が終了し、最後にｍ＝１４に更新されると、ｍの値が（入力データ長）／分割数＝２６／２＝１３より大きくなるため、全てのレピテション処理を終了する。
【００８６】
このように、ｅｒｒの更新やｅｒｒ値による条件判断処理を周期性により処理の共通化をすることにより、全体の演算量を低減している。この場合は、２周期に分割出来たので、データのロード・ストア操作を除く、ｅｒｒ算出処理を従来の１／２に処理量を低減できる。
【００８７】
なお、以上のようなプログラムは、ハードディスクなどの記録装置やＣＤ−ＲＯＭ、ＤＶＤ、フロッピーディスクなどの可搬記録媒体などに記録して頒布が可能である。
【００８８】
また、レートデマッチングにおいては、送信側から、パンクチャを行ったか、レピテションを行ったかを示す情報と、レートマッチング入出力データ長を情報として受け取る。これに基づいて、ｅｒｒinit等のパラメータを算出し、上記レートマッチングの演算方法と同じ方法で、どのビットが削除あるいは挿入されたかを検出する。ビットが削除された場合には、削除されたビット位置に０などのビットを挿入する。また、ビット挿入が行われたときには、挿入されたビットを削除する。
【００８９】
上記のような手続きにより、レートデマッチングが行われるため、上記実施形態の演算方法は、そのままレートデマッチングに使用できるので、詳細な説明は省略する。
【００９０】
上記本発明の実施形態を適用することにより、レートマッチング処理を行うデータのｋビット目のｅｒｒ値を予め算出することができ、ハードウェアの制限内であれば、入力データを任意の数に分割することができる。
【００９１】
したがって、データ長Ｌビットの入力データを均等にＮ個に分割した場合、各ユニットが処理するデータは、Ｌ／Ｎビットとなり、Ｎ個の分割したデータを同時に処理すれば、従来手法の１／Ｎの時間でレートマッチング処理を実行することができ、伝送レート２Ｍｂｐｓのデータでも規定時間以内で処理することができるようになる。
【００９２】
更に、本発明の別の実施形態を適用することにより、レートマッチング処理の周期性を利用して、ｅｒｒ値を予め算出することができ、入力データをレートマッチング処理周期単位で分割する事が出来る。
【００９３】
したがって、入力データＬビットに対して、レートマッチング周期がＴビット単位の場合、少なくともＮ’＝＜Ｌ／Ｎ＞分割することができるため、分割したデータを同時に処理することにより、従来の方式の１／Ｎ’の以下の処理時間でレートマッチング処理を実行することができ、伝送レート２Ｍｂｐｓのデータでも規定時間内で処理することができるようになる。（ただし、＜Ｘ＞はＸの小数部切り捨て値）
（付記１）送受信するデータの符号化の際のデータ長の伸長を行うレートマッチング／デマッチング装置であって、
レートマッチングのための基本パラメータと、レートマッチング／デマッチングするデータの分割位置に関するパラメータ及び分割データの各ビットのパラメータ値を算出するパラメータ算出手段と、
前記パラメータ算出手段が算出したパラメータに基づいて、各分割データにおいて削除・挿入されるべきビット位置を算出するビット位置算出手段と、
ビットの削除・挿入を行うビット削除・挿入手段と、
を備えることを特徴とする装置。
【００９４】
（付記２）前記パラメータ算出手段は、ビットの挿入・削除処理のパターンが同一となるような分割位置を検出し、該分割位置でデータを分割する事を特徴とする付記１に記載の装置。
【００９５】
（付記３）前記分割の結果、分割データ数が所定数よりも大きくなった場合には、前記パターンの周期を複数周期に設定し直すことにより、分割データ数を減らすことを特徴とする付記２に記載の装置。
【００９６】
（付記４）前記ビット削除・挿入手段は、各分割データに対応して複数設けられ、ビットの削除・挿入を並列に行うことを特徴とする付記１に記載の装置。
（付記５）前記ビット削除・挿入手段は複数設けられ、前記分割数に応じて、選択的に使用され、並列にビットの削除・挿入を行うことを特徴とする付記３に記載の装置。
【００９７】
（付記６）送受信するデータの符号化の際のデータ長の伸長を行うレートマッチング／デマッチング方法であって、
レートマッチングのための基本パラメータと、レートマッチング／デマッチングするデータの分割位置に関するパラメータ及び分割データの各ビットのパラメータ値を算出するパラメータ算出ステップと、
前記パラメータ算出手段が算出したパラメータに基づいて、各分割データにおいて削除・挿入されるべきビット位置を算出するビット位置算出ステップと、
ビットの削除・挿入を行うビット削除・挿入ステップと、
を備えることを特徴とする方法。
【００９８】
（付記７）送受信するデータの符号化の際のデータ長の伸長を行うレートマッチング／デマッチング方法であって、
レートマッチングのための基本パラメータと、レートマッチング／デマッチングするデータの分割位置に関するパラメータ及び分割データの各ビットのパラメータ値を算出するパラメータ算出ステップと、
前記パラメータ算出手段が算出したパラメータに基づいて、各分割データにおいて削除・挿入されるべきビット位置を算出するビット位置算出ステップと、
ビットの削除・挿入を行うビット削除・挿入ステップと、
を備えることを特徴とする方法を情報装置に実現させるプログラムを記録した、情報装置読み取り可能な記録媒体。
【００９９】
【発明の効果】
本発明によれば、簡易かつ高速なレートマッチング、レートデマッチング処理を実現することが出来る。
【図面の簡単な説明】
【図１】Ｗ−ＣＤＭＡ  ＣＨ−ＣＯＤＥＣ部の概要図である。
【図２】図１の送信レートマッチング部に本発明の実施形態を用いた場合のハードウェア構成例である。
【図３】本発明の第１の実施形態の機能ブロック図を示す図である。
【図４】図２のＤＳＰ及び図３のパラメータ演算ユニット３０の行う処理を説明するフローチャートである。
【図５】第１の実施形態のレートマッチング回路の具体的構成例を示した図である。
【図６】本発明の第２の実施形態を説明する概要ブロック図である。
【図７】本実施形態におけるＤＳＰ及びパラメータ演算ユニットが行う処理を説明するフローチャートである。
【図８】本実施形態のレートマッチング回路の具体例を示した図である。
【図９】レートマッチング処理アルゴリズムを示す図である。
【図１０】パンクチャした結果を示す図である。
【図１１】レピテションの結果を示す図である。
【図１２】従来のレートマッチング処理の機能ブロック図を示す図である。
【符号の説明】
９      チャネルコーデック受信部
１０      チャネルコーデック送信部
１１      ＤＥＭ部
１２      ＭＯＤ部
１３      送信部
１４      受信部
１５、１６      アンテナ
２０      レートマッチング基本パラメータ算出部
２１      データ分割位置・分割パラメータ算出部
２２      １ｓｔインタリーブ回路
２３      ２ｎｄインタリーブ回路
２４      レートマッチング回路
３０、３５      パラメータ演算ユニット
【図１】
0003943329.tif 000002
【図２】
0003943329.tif 000003
【図３】
0003943329.tif 000004
【図４】
0003943329.tif 000005
【図５】
0003943329.tif 000006
【図６】
0003943329.tif 000007
【図７】
0003943329.tif 000008
【図８】
0003943329.tif 000009
【図９】
0003943329.tif 000010
【図１０】
0003943329.tif 000011
【図１１】
0003943329.tif 000012
【図１２】
0003943329.tif 000013