(57)【要約】【目的】正しく各クラスの音声符号のビット数を識別できるようにする。【構成】誤り検出用データを含む可変長のデータで変調された信号を受信し、復調する受信手段と、複数のデータ長の候補を順に選択し、復調した信号について該選択したデータ長分だけ抽出して、前記誤り検出用データを用いて誤り検出を行う誤り検出手段と、該誤り検出手段により誤りを検出しなかった場合のデータ長の候補を前記可変長のデータ長として判定する判定手段を備え、前記判定手段は、前記誤り検出手段により誤りを検出しなかった最初のデータ長の候補を前記可変長のデータ長として判定する。【選択図】図１
2010141910.tif 000002
【特許請求の範囲】
【請求項１】
誤り検出用データを含む可変長のデータで変調された信号を受信し、復調する受信手段と、複数のデータ長の候補を順に選択し、復調した信号について該選択したデータ長分だけ抽出して、前記誤り検出用データを用いて誤り検出を行う誤り検出手段と、該誤り検出手段により誤りを検出しなかった場合のデータ長の候補を前記可変長のデータ長として判定する判定手段を備え、
前記判定手段は、前記誤り検出手段により誤りを検出しなかった最初のデータ長の候補を前記可変長のデータ長として判定する、
ことを特徴とする受信装置。
【請求項２】
前記可変長のデータは、通話音声に基いて順次生成された、異なるデータ長を有する有音データ、無音データ、背景雑音データのいずれかと、誤り検出用データとを含むデータからなり、
前記誤り検出手段は、前記判定手段により判定した可変長のデータ長の候補を後続して受信した次の可変長のデータについて最初に選択するデータ長の候補とする、
ことを特徴とする請求項１記載の受信装置。
【請求項３】
前記順次生成はミリ秒オーダで生成されることを特徴とする請求項２記載の受信装置。
【請求項４】
前記可変長のデータは、通話音声に基いて所定の規則で順次生成された、異なるデータ長を有する有音データ、無音データ、背景雑音データのいずれかと、誤り検出用データとを含むデータからなり、
前記誤り検出手段は、前記判定手段により判定した可変長のデータ長の候補の履歴と前記所定の規則とを参照して、次の可変長のデータについて選択するデータ長の候補の順番を決定する、
ことを特徴とする請求項１記載の受信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、受信装置に係わり、特に、AMR（Adaptive Multi−Rate；適応マルチレート）方式などの音声符号化方式で符号化された所定送信時間間隔の音声符号を複数のクラスに分けると共に各クラスの音声符号をそれぞれ所定ビットレートに応じたビット数で表現し、所定クラスの音声符号に一定長のチェックコードを付加し、かつ、各クラスの音声符号に誤り訂正符号化処理を施し、各クラスの誤り訂正符号化処理が施された音声符号を、前記チェックコード付加クラスを先頭にして多重して送信する通信システムにおける受信装置に関する。
【背景技術】
【０００２】
３ＧＰＰ規格に準ずるW−CDMAシステムにおいて、端末装置は基地局装置から複数のトランスポートチャネルTrCHの多重データを受信する際、１０msのフレーム毎に各フレームにマッピングされているTFCIビット（Transport Format Combination Indicator）を復号する。そして、このTFCIビットに基いて、各トランスポートチャネルTrCHのビットレート、すなわち単位時間あたりの情報ビット長（トランスポートフォーマット）を識別する。しかる後、端末装置は、識別したトランスポートフォーマットに基いて受信した多重データより各トランスポートチャネルの送信データを分離する。
ところで、低ユーザレートのチャネルに関しては、このTFCIビットが存在しない場合がある。その際、CRCチェックを利用したBTFD（Blind Transport Format Detection）処理により各トランスポートチャネルTrCHにおけるトランスポートフォーマットを判別して受信多重データより各トランスポートチャネルの送信データを再生する。
3GPP規格によれば、BTFD処理は音声符号の受信に際して適用される。すなわち、送信側の音声コーデック部は音声信号を例えばAMR方式により、(1)人間の声道を表現するＬＳＰパラメータ、(2)音声の周期性を表現するピッチ周期成分、(3)音声に含まれる雑音成分、(4)ピッチ周期成分のゲイン、(5)雑音成分のゲインで表現し、入力音声よりこれら各要素を抽出して量子化し、量子化データを音声符号として出力する。ＬＳＰパラメータ、ピッチ周期成分、ピッチゲインは重要であり、第１のトランスポートチャネル（クラスＡのTrCH）に分配し、雑音成分や雑音ゲインは少しぐらいエラーが乗っても致命的でないため、第２、第３のトランスポートチャネル（クラスＢ，ＣのTrCH）に分配する。
送信装置は、音声コーデック部より得られた各クラスの音声符号をそれぞれ所定ビットレートに応じたビット数で表現し、クラスＡの音声符号に一定長のチェックコードを付加し、かつ、各クラスの音声符号に誤り訂正符号化処理を施し、各クラスの誤り訂正符号化処理が施された音声符号を、前記チェックコード付加クラスＡを先頭にして多重して送信する。
受信装置は、CRCチェックを利用したBTFD処理により各クラスＡ〜ＣのトランスポートチャネルTrCHにおけるトランスポートフォーマット（ビット長）を判別し、該ビット長に基いて受信した各クラスの音声符号を抽出し、音声コーデックに入力し、音声コーデックは音声符号より音声信号を復元して出力する。なお、受信側において、受信物理チャネルは高位レイヤにてロジカルチャネルに遷移するが、物理チャネル〜ロジカルチャネルに遷移する間に、トランスポートチャネル（TrCH）という状態に遷移する。音声はTrCHが３チャネルで１つのロジカルチャネルとなり、各TrCHがそれぞれ、Class Ａ，Class Ｂ，Class Ｃのトランスポートチャネルとなる。
図９は従来の移動局の構成図である。送信に際して、音声コーデック部１はマイク２から入力する音声信号を送信時間間隔TTI＝２０ms毎にAMR符号化方式により音声符号に変換し、クラスＡ〜Ｃの音声符号としてデータ分配部４に入力する。データ分配部４は音声コーデックからの指示によりクラスＡ〜Ｃの音声符号を選択的に符号化時間長２０msの送信バッファ部５１〜５３に入力する。
各送信バッファ部５１〜５３はクラスＡ〜Ｃの音声符号（送信データ）を２０ms毎に図示しないバッファメモリに書き込むと共に、次段のエンコード処理部６１〜６３に入力する。
エンコード処理部６１〜６３はそれぞれ時間２０msの送信データを畳み込み符号あるいはターボ符号に従って符号化し（クラスＡについてはCRCチェックビット付加後）、フレーム単位（１０ms単位）に分割して多重部７に入力する。多重部７は各エンコード処理部６１〜６３から入力する誤り訂正符号化データを１０ms毎に多重して１フレーム分の多重データを作成し、多重された符号化データを同相成分（IN−Phase component）データとして送出する。
制御信号発生部８はパイロットPILOT、TFCI、TPCなどの制御データを直交成分（Quadrature component）データとして一定シンボル速度で出力する。QPSＫ拡散＆変調器９のQPSＫ拡散器９ａは入力される同相成分（Ich成分）、直交成分（Qch成分）に所定の拡散コードを用いて拡散変調を施し、DA変換してQPSＫ直交変調器９ｂに入力する。直交変調器９ｂはIch信号、Qch信号にQPSＫ直交変調を施し、無線送信部１０は直交変調器から出力するベースバンド信号を高周波数に周波数変換（IF→RF）すると共に、高周波増幅等を行ってアンテナANTTより送信する。
受信に際して、無線受信部１１はアンテナATNRにより受信した高周波信号をベースバンド信号に周波数変換（RF→IF変換）し、しかる後、ベースバンド信号を直交検波して同相成分（I成分）データと直交成分（Q成分）データを発生し、AD変換して逆拡散復調部１２に入力する。逆拡散復調部１２はI成分信号、Q成分信号に拡散符号と同じ符号を用いて逆拡散処理を施し、送信されてきた符号化データを復調（同期検波）し、分離部１３に入力する。
分離部１３は入力する多重データよりフレーム毎（１０ms毎）にクラスＡ〜Ｃのデータを分離し、それぞれデコード処理部１４１〜１４３に入力する。各デコード処理部１４１〜１４３は１０msのデータを２つ結合して送信時間間隔TTI＝２０msのデータにし、しかる後、クラスＡ〜Ｃのデータに誤り訂正復号処理を施して元のクラスＡ〜Ｃの音声符号データを復号し、受信バッファ部１５１〜１５３のバッファメモリに書き込む。受信バッファ部１５１〜１５３はバッファメモリから同期してクラスＡ〜Ｃの音声符号データを読み出してデータ分配部４に入力し、データ分配部４は各クラスの音声符号データを音声コーデック１に入力する。音声コーデック部１は音声符号より音声信号を復元してスピーカ３より出力する。
以上要約すれば、W−CDMAシステムにおける送信側チャネルコーデック部２１は、上位レイヤよりクラスＡ〜Ｃの音声符号データを受け取り、クラスＡ〜Ｃのトランスポートチャネル（TrCH）毎に符号化処理を行ない、符号化したデータを多重して物理チャネルにマッピングして送信する。逆に、受信側チャネルコーデック部２２は、物理チャネル上の多重データよりクラスＡ〜Ｃのトランスポートチャネル（TrCH）毎にデータを分離して復号処理を行ない、その結果（クラスＡ〜Ｃの音声符号）を上位レイヤに受け渡す。
送信側の音声コーデック部１は前述のようにマイク２から入力する音声信号を送信時間間隔TTI＝２０ms毎にAMR符号化方式により音声符号に変換し、クラスＡ〜Ｃの音声符号としてデータ分配部４に入力するが、各クラスの音声符号のビットレート（ビット長）は呼接続時に基地局から指示される。すなわち、基地局は呼接続時に各クラスＡ〜Ｃのビットレートの組み合わせ候補を複数、発信端末及び着信端末にそれぞれ通知すると共に、どの組み合わせのビットレートで音声符号を送信するか指示する。図１０は3GPP規格における音声フォーマット（ビットレートの組み合わせ候補）の一例であり、TTI＝２０ms毎に符号化した各クラスＡ〜Ｃの音声符号を表現するためのビット長を示している。図１０には１０種類のビットレートの組み合わせが示され、それぞれを特定するためにフレームタイプ番号が付されている。ビットレートの組み合わせ候補は分類すると、(1)無音のビットレート組み合わせ（１１１１）、(2)背景雑音のビットレート組み合わせ（０００１）、(3)有音のビットレート組み合わせ（００００〜１１１０）がある。有音の場合、どのビットレート組み合わせを使用するかは、呼接続時の通信トラフィックによって決定される。具体的には、トラフィックが空いているときは、高ビットレート12.2kbpsで高品質の音声データのやりとりを行うが、逆にトラフィックが混んでいるときは、混雑度に応じて低いレートに変えて送受信データのビット長を小さくする。なお、有音のビットレートの組み合わせは呼接続時に一度、決定されると終話時まで、そのビットレートは維持され、中間でビットレートの切り替えはしない。現状では、有音のビットレート組み合わせは12.2kbpsのフレームタイプ１１１０だけである。
背景雑音は聴感上の自然さを与えるために必要なものである。人間の会話には、音声のある区間（有音区間）と、話の区切りや相手の話を黙って聞いている音声の無い区間（無音区間）が存在する。また、一般には、音声にオフィス、自動車または街路などで生じる背景雑音が重畳される。従って、実際の音声通信では、音声に背景雑音が重畳されている区間（有音区間）と背景雑音のみの区間（無音区間）が存在することになる。そのため、無音区間を検出し、無音区間の情報伝送を停止することにより大幅な伝送量の削減が可能となる。しかし、無音区間で何もしないか、あるいは一定レベルの雑音を出力せざるを得ないため不自然で、聴取者に違和感が生じる。そこで、図１１に示すように無音状態が継続し、７回無音フレームが連続したとき、背景雑音を生成するために必要な１つの背景雑音フレームを挿入し、これにより背景雑音の伝送量を少なくしつつ、受信側で自然な違和感の無い再生を可能にする。
基地局は呼接続時に図１０に示す各クラスＡ〜Ｃのビットレートの組み合わせ候補を発信端末及び着信端末にそれぞれ通知すると共に、フレームタイプ番号でどの組み合わせのビットレートで音声符号を送信するかを指示する。発信端末の音声コーデック部１（図９）は、基地局より指示されたビット長で各クラスの音声符号を表現し、送信側チャネルコーデック部２１はクラスＡの音声符号に一定長のCRCチェックコードを付加し、各クラスの音声符号に誤り訂正符号化処理を施し、フレーム単位（１０ms単位）に分割し、各クラスの誤り訂正符号化データを１０ms毎に多重して１フレーム分の多重データを作成して送出する。着信端末の受信側チャネルコーデック部２２は多重データより各クラスのデータを分離し、それぞれに復号処理を施す。
図１２は分離された後のTTI＝２０msの各クラスのデータ構成であり、（Ａ）はクラスＡのデータ構成図、（Ｂ），（Ｃ）はクラスＢ，Ｃのデータ構成図である。クラスＡのデータは、(1)基地局より指示されたフレームタイプに応じたビット長を有するクラスＡの音声符号部分Ａ１、(2)一定長のCRCチェック符号部分Ａ２、(3)エンプティ部分Ａ３で構成されている。クラスＢ，Ｃのデータは、(1)基地局より指示されたフレームタイプに応じたビット長の音声符号部分Ｂ１，Ｃ１、(2)エンプティ部分Ｂ２，Ｃ２で構成されている。尚、エンプティ部分には信号の送信がされていないが、雑音による信号が送信されている。
受信側チャネルコーデック２２は図１２に示す構成のデータより音声符号部分Ａ１，Ｂ１，Ｃ１（雑音による信号を除去して）のみを正確に切り取って音声コーデック部に入力しなければならない。そこで、従来はCRCチェックを利用したBTFD（Blind Transport Format Detection）処理により各クラスの音声符号のビット長を判別して分離する。すなわち、受信側チャネルコーデック部２２は、クラスＡの音声符号が、図１０に示す各フレームタイプにおけるクラスＡの単位時間当たりのビット数（０，３９，４２，４９，．．８１）で表現されているものと仮定して受信データに誤り訂正復号処理を施す。尚、ビット数の小さい順に番号nend＝１，２，．．が付される。
しかる後、復号データに対してCRCチェックにより全てのパターンについて一通り復号結果が正しいかの検査を行ってから、該検査により復号結果が正しいと判定したものを検索し、図１０を参照してその時のビットレートの組み合わせにおける各クラスの単位時間当たりのビット数（ビットレート）を求め、該ビット数を各クラスの音声符号を表現するビット数であると判別する。各クラスのビット長が判別すれば、受信側チャネルコーデック２２は図１２（Ａ）〜（Ｃ）に示す構成のデータより音声符号部分のみを正確に切り取って音声コーデック部に入力する。
以下ではBTFD処理について説明するが、その前にBTFD処理を理解する上で必要な畳み込み符号及びビタビ復号を説明する。
図１３は畳み込み符号器の例であり、２ビットのシフトレジスタSFRと２つの排他的論理和回路EXOR１，EXOR２を備え、EXOR１は入力とＲ１の排他的論理和ｇ０を出力し、EXOR２は入力とＲ０とＲ１の排他的論理和ｇ１（”１”が奇数のとき出力は”１”、それ以外は”０”）を出力する。したがって、入力データが０１１０１の場合における畳み込み符号器の入出力関係及びシフトレジスタSFRの状態は図1４に示すようになる。
畳み込み符号器のシフトレジスタSFRの内容はstate（状態）と定義され、図１５に示すように００，０１，１０，１１の４つの状態があり、それぞれを状態ａ，状態ｂ，状態ｃ，状態ｄと表現する。図１３の畳込み符号器ではシフトレジスタSFRの状態がａ〜ｄのいずれの状態であるか、及び、次に入力するデータが”０”であるか”１”であるかにより、出力（ｇ０，ｇ１）及び次の状態が一意に決まる。図１６はかかる畳込み符号器の状態と入出力の関係図であり、点線は”０”入力、実線は”１”入力を示している。例えば、
（１）状態ａにおいて、”０”が入力すると出力は００で状態はａになり、”１”が入力すると出力は１１で状態はｃになる。
（２）状態ｂにおいて、”０”が入力すると出力は１１で状態はａになり、”１”が入力すると出力は００で状態はｃになる。
（３）状態ｃにおいて、”０”が入力すると出力は０１で状態はｂになり、”１”が入力すると出力は１０で状態はｄになる。
（２）状態ｄにおいて、”０”が入力すると出力は１０で状態はｂになり、”１”が入力すると出力は０１で状態はｄになる。
この入出力関係を用いて図１３の畳み込み符号器の畳み込み符号を格子状表現すると図１７（ａ）に示すようになる。ただし、ｋは第ｋビット入力時点を意味し、符号器における初期（ｋ＝０）の状態はａ（００）である。又、点線”０”入力、実線は”１”入力を示し、線上の２つの数値は出力（ｇ０，ｇ１）を示している。したがって、初期状態ａ（００）において、”０”が入力すると出力は００で状態はａになり、”１”が入力すると出力は１１で状態はｃになることがわかる。
この格子状表現図を参照すると、原データが１１００１であれば、図１７（ｂ）の２点鎖線で示すパスを介して状態ｃに至り、符号器出力は
１１→１０→１０→１１→１１
となることがわかる。
復号器の受信データ（ｇ０，ｇ１）が１１→１０→１０→１１→１１で誤りのない理想状態を想定すると、図１８（ａ）の２点鎖線で示すパスが得られ、点線を”０”、実線を”１”とすることにより、図１８（ｂ）に示すように１１００１の復号結果を得ることができる。しかし、実際には、受信データに誤りが含まれる場合が多い。図１８（ｃ）に示すように、第５ビット目に誤りが発生し、硬判定受信データ（ｇ０，ｇ１）が１１→１０→００→１１→１１であるとすると、ｋ＝２のデータ入力時点で１０，０１のどちらへ分岐すべきか迷う（エラー回数ERR＝１）。１０とみなして上側のパスを選択すると、ｋ＝３，ｋ＝４で迷うこと無く状態ｃに至る。したがって、２点鎖線パスでのエラー回数ERR＝１となり、その時の復号結果は１１００１となる。一方、ｋ＝２のデータ入力時点で０１とみなして下側のパスを選択すると、ｋ＝３の時点でも、どちらへ分岐すべきか迷い、総エラー回数ERR＝２となる。以後、同様にパスを選択し、分岐に迷った時にERRをカウントアップすると、最終的に以下の結果が得られる。すなわち、
復号結果を１１００１とした時の総エラー回数ERR：１
復号結果を１１１００とした時の総エラー回数ERR：２
復号結果を１１１０１とした時の総エラー回数ERR：４
復号結果を１１１１０とした時の総エラー回数ERR：３
復号結果を１１１１１とした時の総エラー回数ERR：３
となる。そこで、エラー回数ERRが最小の復号結果１１００１を選択して出力する。このようにすれば、受信データに誤りがあっても原データ１１００１を正しく復元できる。
ところで、以上のように受信データに基づいて可能な全パスのエラー回数ERRを求め、そのうち最小のパスより原データを復号する処理は煩雑である。そこで、ビタビ復号は以下のように行う。尚、受信データは硬判定の結果１１１０００であったとする。図１８のｋ＝３の状態ａでは、２つの入力パスがある。その該当するパスのみを取り出して記述したものを図１９（ａ）に示す。２つのパスとは図中に示したパス（１）とパス（２）である。受信データと各パスで得られる復号データとの間のハミング距離（以後、パスメトリック値という）を計算すると図１９（ｂ）、（ｃ）に示すように、それぞれ３、４となる。
この計算結果から、「パス（１）をたどって状態ａに到達した」と仮定する方のパスメトリック値が、「パス（２）をたどって状態ａに到達した」と仮定するより小さい。そのため、パス（１）の方が送信されたデータに応じたパスであるという信頼性が高いため生き残りとして残し、他のパスを捨てる。このパスの取捨選択処理を各状態ａ〜ｄについて、時間ｋ＝１から連続して実行すると任意の時間ｋにおける各状態ａ，ｂ，ｃ，ｄにそれぞれ至るパスメトリック値が最小のパス（エラー最小のパス）を求めることができ、以後、同様の取捨選択処理を継続することができる。
以上より、Ｎ個の受信データが入力したとき、ｋ＝Ｎにおける各状態ａ，ｂ，ｃ，ｄにそれぞれ至るパスメトリック値最小（エラー最小）の４本のパスのうち、パスメトリック値が最小のパスを決定し、該パスに基づいて復号データを出力する。図２０は受信データ１１１０ ００ １１ １１であるときの各時間ｋ（＝１〜５）の各状態ａ〜ｄに至る最短パスを示しており、線上の数値はパスメトリック値である。ｋ＝５のデータ入力時点では、状態ｃに至るパスのパスメトリック値が最小となる。従って、ｋ＝５の時点の状態ｃから該パスに沿ってトレースバック処理を行うとデータ１１００１が得られ、これが復号データとなる。以上の復号アルゴリズムがViterbiアルゴリズムである。
なお、ｋ＝nendのデータ入力時点における状態ａ（＝状態０）のパスメトリック値をａ０（nend）、各状態ａ〜ｄのうち最大のパスメトリック値をａｍａｘ（nend）、各状態のうち最少のパスメトリック値をａｍｉｎ（nend）とおくと、符号化データに対して誤りが少ないほどａ０（nend）＞ａｍｉｎ（nend）の関係が顕著になる特性がある。すなわち、符号化データに対して誤りが少ないほどａ０（nend）はより大きくなり、ａｍｉｎ（nend）はより小さくなる特性がある。このため、［ａｍａｘ（nend）−ａｍｉｎ（nend）］に対する［ａ０（nend）−ａｍｉｎ（nend）］の割合は大きくなる。この特性より、次式
S(nend)＝−10 log[{a０(nend)−amin(nend)}／{amax(nend)−amin(nend)}]［dB］  （１）
で与えられるＳ（nend）値は、誤りが少ないほど小さくなる。BTFD処理においてはこのＳ（nend）値が用いられる。BTFD処理は図２１にしたがって詳細に説明するが、概略、以下の処理を段階的に行う。すなわち、
（ａ）ビットレートの候補が複数指定される。
（ｂ）各ビットレート候補におけるクラスＡのビットレートに対して、ビットレートの小さい順（nendの小さな順）にビタビ復号を行い、Add−Compare−Select（以後、ACS）処理を行いパスメトリック値を求め、そのパスメトリック値を用いて（１）式によりＳ（nend）を計算する。
（ｃ）Ｓ（nend）と閾値Ｄとの大小判断を行う。
（ｄ）Ｓ（nend）が閾値Ｄより小さければ、最終ビット位置においてパスメトリック値が最小の状態から、トレースバック処理を行う。
（ｅ）トレースバック処理によりえられた復号データに対してCRCチェックを行う。
（ｆ）CRCチェックがOKであれば、今回のＳ（nend）とそれまでの最小値であるSminとの比較をおこなう。
（ｂ）〜（ｆ）をビットレートの候補数分行い、CRCチェック結果がOKで、かつ、最終的に最も確からしいもの、すなわち、Ｓ（nend）が最小のビットレート候補を選択する。このビットレート候補における各クラスのビット数が各クラスの音声符号を表現するビット数であると決定する。ただし、（ｃ）の結果、Ｓ（nend）が閾値Ｄより大きい場合、つまり、確からしさが低い場合は（ｄ），（ｅ），（ｆ）の処理は行わない。
図２１はBTFD処理フローである。
上位アプリケーションよりビットレートの候補（図１０）が指定されるから、クラスＡのビットレート（単位時間当たりのビット数）の小さい順に番号付けし、nend＝１，２，３，．．．とする（ステップ１０１）。ついで、nend＝１、Smin＝Ｄ、nend′＝０と初期化する（ステップ１０２）。
しかる後、nend位置までACS処理を行い（ステップ１０３）、（１）式によりＳ（nend）を計算する（ステップ１０４）。Ｓ（nend）が求まれば、このＳ（nend）と閾値Ｄとの大小判断を行う（ステップ１０５）。
Ｓ（nend）≦Ｄであれば、nend位置のパスメトリック値が最小の状態から、トレースバック処理を行う（ステップ１０６）。ついで、トレースバック処理により得られた復号データに対してCRCチェックを行う（ステップ１０７）。CRCチェックがOKであれば、今回のＳ（nend）とそれまでの最小値であるSminとの比較を行う（ステップ１０９）。
Smin＞Ｓ（nend）であればSmin＝Ｓ（nend）として最小値を更新すると共に、nend′＝nendとしてその時のnend、すなわち、クラスＡにおける音声符号のビット数を保存する（ステップ１１０）。しかる後、nendが最後の候補であるかチェックし（ステップ１１１）、最後でなければnend＝nend＋１によりnendを歩進し（ステップ１１２）、ステップ１０３以降の処理を繰り返す。
一方、ステップ１０５において、Ｓ（nend）＞Ｄであれば、あるいは、ステップ１０８において、CRCチェックがＮＯであれば、あるいは、ステップ１０９において、Smin≦Ｓ（nend）であれば、ステップ１１１の処理を行う。
全候補のnendについて上記処理を繰り返せば、ステップ１１１において「YES」となるから、nend′＝０であるかチェックし（ステップ１１３）、「YES」であればエラー出力する（ステップ１１４）。しかし、nend′＝０でなければ、該nend′が最も確からしいビットレートの組み合わせにおけるクラスＡのビットレート（ビット数）と判定し、出力する（ステップ１１５）。以後、図１０のビットレートの組み合わせ候補を参照して他のクラスのビットレート（ビット数）を求める。
図２２はBTFD処理を実行する受信側チャネルコーデック部の構成図である。図示しない分離・結合部は多重データよりクラス毎に分離したデータをクラス毎に結合してTTI＝２０msの各クラスのデータを作成する。受信データメモリ部２２ａは、このTTI＝２０msの各クラスのデータを受信して保持する。ビタビ復号部２２ｂはACS演算／パスメトリックメモリ／パスメモリ部３１、トレースバック部３２、トレースバック後メモリ３３を備えている。パスメモリは各時点ｋにおいて、状態ａ，ｂ，ｃ，ｄにそれぞれ至るパスメトリック値が最小の４本のパスをそれぞれ記憶するもの、パスメトリックメモリは各パスのパスメトリック値を記憶するものである。図２０のｋ＝５の例では、
状態ａに到るパスは１１１００でパスメトリック値は２、
状態ｂに到るパスは１１１１０でパスメトリック値は３、
状態ｃに到るパスは１１００１でパスメトリック値は１、
状態ｄに到るパスは１１１１１でパスメトリック値は３、
である。トレースバック部３２は状態ａ，ｂ，ｃ，ｄに到る４本のパスのうちパスメトリック値が最小となるパスを決定し、該パスに沿ってトレースバック処理を行って復号データを求めてトレースバック後メモリ３３に保存する。
ビタビ復号部は、Ａクラスについてはnend位置までのデータに対してビタビ復号処理を施す。又、Ｂ，Ｃクラスについてはデータ長が判らないため末尾位置までのビタビ復号処理を行い、各データ長候補に対応する時点ｋにおいて、状態ａ，ｂ，ｃ，ｄにそれぞれ至るパスメトリック値が最小の４本のパスをパスメモリに記憶し、それぞれのパスメトリック値をパスメトリックメモリに記憶する。
CRC演算部２２ｃはクラスＡの復号結果に基づいてCRCチェック演算を行う。CRCチェック演算後メモリ２２ｄは、図９における受信バッファ１５に相当するもので、CRCチェックOKとなり、且つ、SminとなったときのクラスＡの復号データ（音声符号）を記憶する。又、トレースバック部はBTFD処理により決定されたクラスＢ，Ｃのビット数に対応する時点ｋにおける４本のパスのうちパスメトリック値が最小のパスを求め、該パスに沿ってトレースバック処理を行って該クラスＢ，Ｃの音声符号を取得し、CRCチェック演算後メモリ２２ｄに記憶する。
BTFD制御部は２２ｅは、図２１のフローにしたがってBTFD処理を行って各クラスの音声符号のビット数を決定するものであり、候補レート設定／保持部３４は上位レイヤ（上位アプリケーション）４１より通知される複数のビットレート候補を保持すると共に、受信データメモリ部２２ａに所定のビットレートを設定する。
上位レイヤ（上位アプリケーション）４１から、あらかじめ、音声の候補レート情報（図１０に示すクラスＡ，Ｂ，Ｃのbit長）がBTFD制御部２２ｅに通知され、候補レート設定／保持部３４は通知された候補レート情報（ビットレート組み合わせ情報）を保持する。
一方、図示しない分離部で分離された各クラスの受信データは受信データメモリ部２２ａに保持され、BTFD制御部２２ｅの候補レート設定／保持部３４は複数のビットレート組み合わせ候補におけるクラスＡのビットレートを小さい順に受信データメモリ部２２ａに設定する。
ビットレートを受け取った受信データメモリ部２２ａは、該ビットレートに応じたビット数のクラスＡの受信データをビタビ復号部のACS演算／パスメトリックメモリ／パスメモリ部３１に入力する。ACS演算／パスメトリックメモリ／パスメモリ部３１はACS演算を行い、その演算結果であるパスメトリック値を内蔵のパスメトリックメモリに保持するとともに、最大パスメトリック値ａｍａｘ（nend）、最少パスメトリック値ａｍｉｎ（nend）、状態ａ（状態０）のパスメトリック値ａ０（nend）をそれぞれBTFD制御部２２ｅに通知する。
BTFD制御部２２ｅは、Ｓ（nend）の計算を行い、さらに、Ｓ（nend）と閾値Ｄとの比較を行う。その結果、トレースバックを行うと判断すれば、トレースバック部３２に対して、トレースバック起動情報を入力する。これによりトレースバック部３２はトレースバックを行い、nend位置までの復号結果をトレースバック後メモリ部３３に保存する。
しかる後、受信データメモリ部２２ａは、最大レートの組み合わせ（図１０の例ではフレームタイプ１１１０）におけるクラスＢ，Ｃのビットレートに応じたビット数のクラスＢ、クラスＣ受信データをビタビ復号部２２ｂに入力し、ビタビ復号部２２ｂはビタビ復号処理を行い、得られたパスをパスメモリ部に保存する。すなわち、前述のように、各データ長候補に対応する時点ｋにおいて、状態ａ，ｂ，ｃ，ｄにそれぞれ至るパスメトリック値が最小の４本のパスをパスメモリに記憶し、それぞれのパスメトリック値をパスメトリックメモリに記憶する。
クラスＡの復号が終了すれば、トレースバック後メモリ部３３はCRC演算部２２ｃにBTFD制御部２２ｅから通知されたビットレート組み合わせ情報が指示するクラスＡのビット数＋CRCチェック符号数分の復号結果を入力する。CRC演算部２２ｃはCRCチェック演算を行い、そのCRCチェック結果をBTFD制御部２２ｅに通知する。BTFD制御部２２ｅは、そのCRCチェック結果をもとに、図２１の処理フローにしたがってSminとＳ（nend）の大小を比較し、Smin＞Ｓ（nend）であれば、Smin、nend′値の更新を行う。又、CRCチェックがOKで、かつ、Smin＞Ｓ（nend）の条件が成立すればCRCチェック符号を削除した復号結果をそれまでの復号結果に替えてCRC演算後メモリ２２ｄに保存する。以後、BTFD制御部２２ｅは、クラスＡについて上記処理をビットレート組み合わせ候補分行えば、その時のnend′値に応じたビット数をクラスＡの音声符号のビット数であると認識する。なお、nend′値に応じたビット数のクラスＡの音声符号データは既にCRC演算後メモリ２２ｄに格納されている。
ついで、BTFD制御部２２ｅは、ビットレート組み合わせ候補テーブル（図１０）とクラスＡのビット数とからクラスＢ，Ｃの音声符号のビット数を識別する。以後、BTFD制御部２２ｅは、トレースバック部３２を起動し、該トレースバック部はパスメモリ部から、クラスＢ，Ｃのビット長に相当する時点ｋにおける４本のパスのうちパスメトリック値が最小のパスを求め、該パスに沿ってトレースバック処理を行って該クラスＢ，Ｃの音声符号を取得しCRC演算部２２ｃ経由でCRC演算後メモリ２２ｄに格納する。CRC演算後メモリ２２ｄはクラスＡ，Ｂ，Ｃの音声符号がそろったところで、これら音声符号を音声コーデック部１に１論理チャネルとして送り、音声コーデック部１は受信した音声符号より音声信号を復元する。
３ＧＰＰ規格にのっとった従来のBTFD処理では、図２１の処理フローより明らかなように、ビットレートすなわちデータ長の短い順にビタビ復号処理、CRCチェック演算を行い、最終的に全てのビットレート組み合わせ候補について処理した後に、最も確からしい各クラスの音声符号のデータ長を決定し、受信データより各クラスの音声符号データを切り取って音声コーデック部に入力する。しかし、かかる従来方法では、毎回全てのレート候補について演算するので、処理量が非常に多くなり、消費電流も増加する問題がある。
従来のBTFD処理シーケンスでは、真の音声符号と異なるデータ長においてもCRCチェックOKが生じることを想定しているため、全ての候補について検出処理を行って特性上良い方に基いて各クラスの音声符号のビット長を決定している。しかし、本来送信している真のデータ長以外で、CRCチェックOKが生じる確率は、CRC−SIZE＝12bitとして、２−１２であり、この処理による特性の改善は、微小であると考えざるを得ない。
また、ビットレート組み合わせ候補が無音用、背景雑音用、12.2k音声データ用の３つの場合を考えると、通話中は１２．２ｋ音声データがある程度続く。それにも拘わらず、従来のシーケンスでは、毎回、無音、背景雑音、12.2k音声データの順（レートが小さい順）にビタビ復号処理、CRCチェック演算を行い、結局１２．２ｋ音声データが正しいことを検出して受信するため、処理量が多く消費電流も増加する問題がある。
また、従来のBTFD処理シーケンスでは、ビタビ復号、トレースバック処理、CRC演算を終えた各クラスの復号結果を一旦CRC演算後メモリ２２ｄに格納する。このように従来のBTFD処理シーケンスでは、トレースバック後メモリ部とCRC演算後メモリの両方が必要になるため使用するメモリ数が非常に多くなる問題がある。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
以上より本発明の目的は、BTFD処理の処理量及び消費電流を減少でき、しかも、これらを減少しても正しく各クラスの音声符号のビット数を識別し、各クラスの音声符号を正しく分離して音声コーデック部に入力できるようにすることである。
本発明の別の目的は、BTFD処理に使用するメモリ数を減少でき、しかも、使用メモリ数を減少しても正しく各クラスの音声符号のビット数を識別できるようにすることである.
【課題を解決するための手段】
【０００４】
上記課題は、本発明によれば、誤り検出用データを含む可変長のデータで変調された信号を受信し、復調する受信手段と、複数のデータ長の候補を順に選択し、復調した信号について該選択したデータ長分だけ抽出して、前記誤り検出用データを用いて誤り検出を行う誤り検出手段と、該誤り検出手段により誤りを検出しなかった場合のデータ長の候補を前記可変長のデータ長として判定する判定手段とを備え、前記判定手段は、前記誤り検出手段により誤りを検出しなかった最初のデータ長の候補を前記可変長のデータ長として判定する受信装置ことにより達成される。
前記可変長のデータは、通話音声に基いて順次生成された、異なるデータ長を有する有音データ、無音データ、背景雑音データのいずれかと、誤り検出用データとを含むデータからなり、前記誤り検出手段は、前記判定手段により判定した可変長のデータ長の候補を後続して受信した次の可変長のデータについて最初に選択するデータ長の候補とする。
前記可変長のデータは、通話音声に基いて所定の規則で順次生成された、異なるデータ長を有する有音データ、無音データ、背景雑音データのいずれかと、誤り検出用データとを含むデータからなり、前記誤り検出手段は、前記判定手段により判定した可変長のデータ長の候補の履歴と前記所定の規則とを参照して、次の可変長のデータについて選択するデータ長の候補の順番を決定する。
【発明の効果】
【０００５】
本発明によれば、BTFD処理の処理量及び消費電流を減少でき、しかも、これらを減少しても正しく各クラスの音声符号のビット数を識別し、各クラスの音声符号を正しく分離して音声コーデック部に入力できる。
又、本発明によれば、BTFD処理に使用するメモリ数を減少でき、しかも、使用メモリ数を減少しても正しく各クラスの音声符号のビット数を識別できる。
又、本発明によれば、各クラスの音声符号のビット数が送信時間間隔TTI毎に変化しても各クラスのデータを記憶するメモリの先頭アドレスを一定にして先頭アドレスの制御を容易にすることができる。
【図面の簡単な説明】
【０００６】
【図１】本発明のW−CDMAシステムにおける移動端末の概略構成図である。
【図２】送信側チャネルコーデック部及び受信側チャネルコーデック部の処理説明図である。
【図３】送信側チャネルコーデック部における各クラスのデータフォーマット及び多重データ構成説明図である。
【図４】受信側チャネルコーデック部における各クラスの音声符号分離動作説明図である。
【図５】本発明のBTFD処理を実行する受信側チャネルコーデック部及びBTFD制御部の構成図である。
【図６】本発明の第１実施例のBTFD処理フローである。
【図７】本発明の第２実施例のBTFD処理フローである。
【図８】本発明の第３実施例のBTFD処理フローである。
【図９】従来の移動局の構成図である。
【図１０】３ＧＰＰ規格における音声フォーマット（クラスＡ〜Ｃのビットレート）説明図表である。
【図１１】背景雑音フレームの挿入説明図である。
【図１２】復号処理された後におけるTTI＝20msの各クラスのデータ構成である。
【図１３】畳み込み符号器の例である。
【図１４】畳込み符号器の入出力関係説明図である。
【図１５】畳込み符号器の状態説明図である。
【図１６】畳込み符号器の状態と入出力関係図である。
【図１７】格子状表現説明図である。
【図１８】畳込み符号の復号化の説明図である。
【図１９】ビタビ復号説明図である。
【図２０】任意の時点ｋにおける各状態のエラー最小パスの説明図である。
【図２１】従来のBTFD処理フローである。
【図２２】BTFD処理を実行する従来の受信側チャネルコーデック部の構成図である。
【発明を実施するための形態】
【０００７】
・発明の開示
本発明の第１は、BTFD処理においてCRCチェックOKを検出した時、それ以降のBTFD処理を停止し、CRCチェックOK時のビットレート組み合わせにおける各クラスのビットレートに基いて各クラスの音声符号のビット数を決定し、該ビット数に基いて受信データより各クラスの音声符号を分離して音声コーデック部に入力する。このようにすれば、BTFD処理の処理量及び消費電流を減少でき、しかも、これらを減少しても各クラスの音声符号のビット数を識別し、各クラスの音声符号を正しく分離して音声コーデック部に入力できる。
3GPP規格ではクラスＡに付加するCRCチェック符号のサイズは１２ビットと規定されており、このサイズのCRCチェックにより２１２ビット中１ビット以上の誤りを検出することが可能である。図１０の全てのビットレート組み合わせにおいて、クラスＡのビットレートは０〜８１bitであり２１２ビットと比較すると非常に小さい。このため、CRCチェックOKであったビットレートが駄目で、別のビットレートが正解となる確立は非常に小さい。
本発明の第２は、BTFD処理においてCRCチェックOKとなるまでビットレートの小さい順にビタビ復号、CRCチェック演算を行う。しかし、CRCチェックOKとなってクラスＡのビットレートが確定した時は、そのときのビットレート組み合わせを送信時間間隔TTIの間保持し、次のTTI経過後のBTFD処理をこの記憶してあるビットレートの組み合わせにおけるクラスＡのビットレートから開始する。このようにすれば、短時間で各クラスのビット長が判別する確率が大きく、BTFD処理の処理量及び消費電流を減少でき、しかも、これらを減少しても各クラスの音声符号のビット数を識別し、各クラスの音声符号を正しく分離して音声コーデック部に入力できる。
各クラスの音声符号のビット数は、送信側の音声コーデックにより決定される。ところで、音声通話であれば有音部分（12.2kbpsレート）と無音部分はそれぞれ数十秒単位で連続するのが普通であり、音声符号のTTI単位は20msである。このため、音声通話の有音部分／無音部分の変化の間隔は、TTI単位に対して長く、現TTIと次TTIでレートが変化する確率は、変化しない確率に比べて低いことになる。そのため、第２の発明は、ビットレートが確定したら次TTIでも同じビットレートでBTFD処理を行えば、その時点でCRCチェックOKとなり、ビットレートが確定する確率が高くなることを利用するものである。
本発明の第３は、無音状態をカウントし、過去に連続して７回の無音状態を検出すれば、次のTTIでは背景雑音に応じたビットレートからBTFD処理を開始する。これは3GPP音声コーデックの仕様によれば、8×TTIの無音状態において１つの背景雑音を挿入するように定義されているからである。このようにすれば、BTFD処理の処理量を減少できる。
本発明の第４では、BTFD処理により確定したフレームタイプ情報（各クラスのビットレートの組み合わせ）を、BTFD制御部から音声コーデック部に通知し、音声コーデック部がこのフレームタイプ情報をもとに、クラスＡの音声符号をCRC演算後メモリから読み出し、クラスＢ，Ｃの音声符号はトレースバック後メモリから読み出す。このようにすれば、CRC演算後メモリにクラスＢ，Ｃの音声符号を保持する必要がなくなり、使用メモリ数を減少できる。なお、CRC演算後メモリを削除し、音声コーデック部が通知されるフレームタイプ情報をもとに、クラスＡ，Ｂ，Ｃの音声符号をトレースバック後メモリから読み出すように構成することもできる。このようにすれば、CRC演算後メモリを削除できるためますます使用メモリ数を減少できる。
（Ａ）W−CDMAシステムにおける移動端末の構成
図１は本発明のW−CDMAシステムにおける移動端末の概略構成図であり、入力音声信号を符号化すると共に、音声符号を音声信号に復元して出力する音声コーデック部５１、音声符号に誤り訂正符号化処理（チャネルエンコード処理）を施して出力する送信側チャネルコーデック部５２、送信データを拡散変調する変調部５３、拡散変調されたベースバンド信号を高周波信号に変換して送信アンテナANTTより送信する送信部５４、受信アンテナANTRにより受信した受信信号をベースバンド信号に復調する受信部６１、ベースバンド信号を逆拡散する復調部６２、逆拡散された受信データに誤り訂正復号処理（チャネルデコード処理）を施し、復号された音声符号を音声コーデック部５１に入力する受信側チャネルコーデック６３、BTFD制御を行う制御プロセッサー（BTFD制御部）７１を有している。
音声コーデック部５１はAMR音声符号化方式により音声信号をTTI＝20ms毎に符号化し、得られた音声符号をクラスＡ〜Ｃの３つに分け、それぞれを所定のビットレートに応じたビット長で表現し、各クラスの音声符号を３つのトランスポートチャネルTrCHで送信するように送信側チャネルコーデック部５２に入力する。呼接続時に基地局は発信端末及び着信端末にそれぞれ各クラスＡ〜Ｃのビットレートの組み合わせ候補を複数（図１０参照）通知すると共に、どの組み合わせのビットレートで音声符号を送信するのかを指示する。音声コーデック部５１は該指示された組み合わせの各クラスのビットレートに応じたビット数で音声符号を表現してチャネルコーデック部５２に入力する。
送信側チャネルコーデック部５２は、クラスＡの音声符号に一定長のCRCチェックコードを付加し、ついで、各クラスＡ〜ＣのTTI＝20msの音声符号にビタビ符号化処理を施して符号化し、レートマッチングしてからフレーム単位（10ms単位）に分割し、10ms毎に各クラスの誤り訂正符号化処理が施された音声符号データをクラスＡを先頭にして多重し、変調部５３、送信部５４を介して送信する。
受信チャネルコーデック部６３は受信部６１、復調部６２を介して入力する多重データより、フレーム毎（10ms毎）にクラスＡ〜Ｃのデータを所定間隔で分離すると共に、各クラスの10msの受信データを２つ結合して送信時間間隔TTI＝20msのデータにし、しかる後、クラスＡ〜Ｃのデータに誤り訂正復号処理を施して元のクラスＡ〜Ｃの音声符号データを復号し、音声コーデック５１に入力する。この際、受信チャネルコーデック部６３は各クラスの所定ビット長の音声符号データを正しく分離して音声コーデック部に入力する必要がある。このため、BTFD制御部７１はBTFD処理により各クラスの音声符号データのビット長を識別し、受信チャネルコーデック部６３は識別されたビット長の各クラスの音声符号データを復号結果から切り取って音声コーデック部５１に入力する。なお、BTFD処理において受信チャネルコーデック部６３はクラスＡの復号データに対してCRCチェック演算を行い、BTFD制御部７１はCRCチェック結果に基づいて各クラスの音声符号データのビット長を識別する。
（Ｂ）送信側／受信側チャネルコーデック部の処理
図２は送信側チャネルコーデック部５２及び受信側チャネルコーデック部６３の処理説明図である。音声コーデック部５１からの各クラスＡ〜Ｃの音声符号データは、送信側チャネルコーデック５２に入力する。送信側チャネルコーデック５２はクラスＡの音声符号データに、CRCチェックビットを付加し（ステップ２０１）、ついで、各クラスの音声符号データにビタビ符号化処理を施す（ステップ２０２）。しかる後、送信側チャネルコーデック５２は、符号化した各クラスのデータに１ｓｔインタリーブ処理を行ない（ステップ２０３）、その後レートマッチング操作（各TrCHの許容レートに収まるようにデータの伸縮操作）を行なう（ステップ２０４）。送信側チャネルコーデック５２はレートマッチング処理を行なった各クラスの符号化データを10ms毎に分割し、10ms毎に各クラスの符号化データをクラスＡが先頭となる順番で多重化（ステップ２０５）、この多重データに２ｎｄインタリーブ処理を施して（ステップ２０６）、変調部（MO部）５３へ入力する。変調部５３はQPSＫ拡散およびQPSＫ変調を行い、送信部５４はRF信号に変換してアンテナより送信する。尚、レートマッチングは伸縮率に制限があり、許容レートに満たない場合は、その部分に所定のデータが挿入され、そのデータの挿入区間では送信を行わないこととする。図１２のＡ３のエンプティ期間に対応する。
受信に際して、受信部６１はRF信号からベースバンド信号に変換し、復調部（DEM部）６２はQPSＫ復調およびQPSＫ逆拡散／レーク合成して受信データを復調し、復調データを受信側チャネルコーデック部６３に入力する。受信側チャネルコーデック部６３は、受信した多重データに２ｎｄデインタリーブ処理を施し（ステップ２０７）、ついで、10msデータ毎に受信した多重データをクラスＡ〜Ｃ毎に分離した10msデータをクラス毎に結合してTTI＝20msのデータを生成する（ステップ２０８）。以後、受信側チャネルコーデック部６３は、クラス毎に受信データに１ｓｔデインタリーブ処理を行ない（ステップ２０９）、ビタビ復号処理を施して復号し（ステップ２１１）、復号後、クラスＡの復号データにCRCチェック処理を施し、BTFD制御にしたがって該CRCチェック結果に基づいて各クラスの音声符号データのビット長を識別し（ステップ２１２）、該ビット長に基いて各クラスの音声符号を音声コーデック部５１に入力する。
（Ｃ）各クラスのデータフォーマット及び多重／分離動作
図３は送信側チャネルコーデック部における各クラスのデータフォーマット及び多重データ構成説明図である。音声コーデック部５１はAMR音声符号化方式により音声信号をTTI＝20ms毎に符号化し、得られた音声符号をクラスＡ〜Ｃの３つに分け、それぞれを所定のビットレート、例えば、図１０に示す最大レートのフレームタイプ１１１０に応じたビット長（クラスＡ：８１ビット、クラスＢ：１０３ビット、クラスＣ：６０ビット）で表現し、各クラスの音声符号を送信側チャネルコーデック部５２に入力する（（ａ）参照）。
送信側チャネルコーデック部５２は、クラスＡの音声符号に一定長、例えば12ビットのCRCチェックコードを付加し（（ａ））、ついで、TTI＝20msの各クラスの音声符号にビタビ符号化処理、インタリーブ処理、レートマッチング処理を施して符号化データを発生する（ｂ）、（ｃ）参照）。畳み込み符号化処理、レートマッチング処理により各クラスのビット長は８１′、１０３′、６０′に増大する。畳み込み符号の符号化率をｎとすれば各クラスの符号化データの長さは元の長さのｎ倍＋α（αはレートマッチングにより増減する量である）となる。
TTI＝20msの各クラスの符号化データは、実際には10ms毎に分割され、10ms毎にクラスＡを先頭にして多重するが、分割しないものとすれば、（ｄ）に示すように各クラスの符号化データを隙間なく多重する。すなわち、最大レートの組み合わせ候補に応じたビット数で各クラスの音声符号を表現する場合には、隙間なく各クラスの符号化データを多重する。尚、最大レートの組み合わせ候補における各クラスの符号化データ長８１′，１０３′，６０′は既知の値である。最大レート以外のレートの組み合わせ候補、例えばフレームタイプ０１１０の組み合わせに応じたビット数（クラスＡ：６５ビット、クラスＢ：９９ビット、クラスＣ：４００ビット）で各クラスの音声符号を表現する場合、各クラスの符号化データ長６５′，９９′，４０′は最大符号化データ長８１′，１０３′，６０′に満たない。かかる場合は、（ｅ）の斜線で示すように満たない分送信しない区間を示すデータを挿入する。このようにすることにより、受信側において各クラスのデータを容易に分離することが可能になる。ところで、実際には、前述のように、TTI＝20msの各クラスの符号化データは、10ms毎に前半と後半に分割され、10ms毎にクラスＡを先頭にして多重する。従って、（ｅ）に示すフレームタイプ０１１０の組み合わせの場合、（ｆ）に示すように各クラスＡ〜Ｃの符号化データは10msの前半と後半に分割され、（ｇ）に示すように10ms毎にクラスＡを先頭にして多重されて送信される。
図４は受信側チャネルコーデック部における各クラスの音声符号分離動作説明図である。受信チャネルコーデック部６３は、受信部６１、復調部６２を介して入力する多重データ（（ａ）参照）より10ms毎にクラスＡ〜Ｃのデータを既知の所定長で分離し、（ｂ）に示すように各クラスの10msの受信データを２つ結合して送信時間間隔TTI＝20msのデータを生成する。しかる後、受信側チャネルコーデック部６３はクラスＡ〜Ｃのデータにビタビ復号処理を施して元のクラスＡ〜Ｃの音声符号データを復号し、音声コーデック５１に入力する（（ｃ）、（ｄ）参照）。この際、BTFD処理により各クラスの音声符号データのビット長を識別し、識別されたビット長に基いて雑音等によるデータ部分（斜線部分）を除去した各クラスの音声符号データを復号結果から取り出して音声コーデック部５１に入力する。
（Ｄ）BTFD処理を実行する受信側チャネルコーデック部の構成
図５は本発明のBTFD処理を実行する受信側チャネルコーデック部及びBTFD制御部の構成図である。
受信側チャネルコーデック部６３の復号前処理部６３ａは、図２で説明した2ndインタリーブ処理２０７、クラス毎の分割＆結合処理２０８、1stデインタリーブ処理２０９を実行する。受信データメモリ部６３ｂは、復号前処理部６３ａから出力するTTI＝20msの各クラスのデータを保存する。この場合、受信データメモリ部６３ｂは、図４（ｂ）に示すように既知の最大レートに応じた符号化データ長に満たない部分（斜線部）にはパディングデータが埋め込まれた状態で各クラスのTTI＝20msのデータを記憶する。
ビタビ復号部６３ｃは、ACS演算／パスメトリックメモリ／パスメモリ部６３ｃ−１、トレースバック部６３ｃ−２、トレースバック後メモリ６３ｃ−３を備え、Ａクラスについてはnend位置までのデータ部分に対してビタビ復号処理を施し、Ｂ，Ｃクラスについてはデータ全体にビタビ復号処理を施し、各時点におけるパスをパスメモリに保存する。すなわち、Ｂ，Ｃクラスについてはデータ長が判らないため末尾位置までのビタビ復号処理を行い、各データ長候補に対応する時点ｋにおいて、状態ａ，ｂ，ｃ，ｄにそれぞれ至るパスメトリック値が最小の４本のパスをパスメモリに記憶し、それぞれのパスメトリック値をパスメトリックメモリに記憶する。
CRC演算部６３ｄはＡクラスの復号結果に基づいてCRCチェック演算を行う。CRCチェック演算後メモリ６３ｅは、CRCチェックOKとなり、且つ、BTFD処理においてSminとなったときのクラスＡの復号データ（音声符号）を記憶する。
BTFD制御部７１は後述するフローにしたがってBTFD処理を行って各クラスの音声符号のビット数を決定するもので、候補レート設定／保持部７２、CRCチェックOK検出＆レート決定制御部７３、確定レート保持＆レート決定制御部７４、無音フレームカウント＆レート決定制御部７５，フレームタイプ通知手段７６を有している。
候補レート設定／保持部７２は上位レイヤ（上位アプリケーション）８１より通知される複数のビットレート候補（図１０参照）を保持すると共に、受信データメモリ部６３ｂにクラスＡのビットレートを小さい順に順次設定する。
CRCチェックOK検出＆レート決定制御部７３は、ビットレート組み合わせ候補を順次変更してクラスＡのビット長を小さい順に切り替え、CRCチェックOKを検出した時のビットレート組み合わせ候補に基いて各クラスのビット長を決定する。
確定レート保持＆レート決定制御部７４は、CRCチェックOKが検出されて各クラスのビットレートが確定したとき、その時のビットレート組み合わせ候補を１送信時間間隔TTIの間保持し、TTI時間経過後の次のビットレート決定処理において、その記憶したビットレート組み合わせ候補におけるクラスＡのビットレートでBTFD処理を開始して各クラスのビット長を決定する。
無音フレームカウント＆レート決定制御部７５は、無音フレームを検出した場合に無音フレーム連続数をカウントし、７回に達したら背景雑音に応じたビットレート組み合わせ候補のクラスＡのビットレートでBTFD処理を開始して各クラスのビット長を決定する。
フレームタイプ通知手段７６はBTFD処理により各クラスのビットレートを決定したとき、その時のビットレート組み合わせ候補を特定するフレームタイプ情報を音声コーデック部５１に通知する。これにより、音声コーデック部５１は、該フレームタイプ情報、すなわち、各クラスのビット長をトレースバック部６３ｃ−２に入力して該トレースバック部を起動する。トレースバック部６３ｃ−２はパスメモリ部から、クラスＢ，Ｃのビット長に相当する時点ｋにおける４本のパスのうちパスメトリック値が最小のパスを求め、該パスに沿ってトレースバック処理を行って該クラスＢ，Ｃの音声符号を取得しCRC演算部２２ｃ経由でCRC演算後メモリ２２ｄに格納する。音声コーデック部５１は、CRC演算後メモリ２２ｄにクラスＡ，Ｂ，Ｃの音声符号がそろったところで、これら音声符号を取り込んで音声符号より音声信号を復元する。
（Ｅ）本発明のBTFD処理の第１実施例
図６は本発明の第１実施例のBTFD処理フローである。第１実施例のBTFD処理ではCRCチェックOKを検出した時、それ以降のBTFD処理を停止し、CRCチェックOK時のビットレート組み合わせにおける各クラスのビットレートに基いて各クラスの音声符号のビット数を決定し、該ビット数に基いて受信データより各クラスの音声符号を抽出して音声コーデック部に入力する。
BTFD制御部７１は、上位アプリケーション８１よりビットレートの候補（図１０）が指定されるから、クラスＡのビットレート（単位時間当たりのビット数）の小さい順に番号付けし、nend＝１，２，３，．．．とする（ステップ３０１）。ついで、nend＝１、Smin＝Ｄ、nend′＝０と初期化する（ステップ３０２）。
しかる後、nend位置までACS処理を行い（ステップ３０３）、（１）式によりＳ（nend）を計算する（ステップ３０４）。Ｓ（nend）が求まれば、このＳ（nend）と閾値Ｄとの大小判断を行う（ステップ３０５）。
Ｓ（nend）≦Ｄであれば、nend位置のパスメトリック値が最小の状態から、トレースバック処理を行う（ステップ３０６）。ついで、トレースバック処理により得られた復号データに対してCRCチェックを行う（ステップ３０７）。CRCチェックがOKであれば（ステップ３０８）、そのときのnendが最も確からしいビットレートの組み合わせにおけるクラスＡのビットレート（ビット数）と判定し、出力する（ステップ３０９）。以後、図１０のビットレートの組み合わせ候補を参照して他のクラスのビットレート（ビット数）を求める。
一方、ステップ３０５において、Ｓ（nend）＞Ｄであれば、あるいは、ステップ３０８において、CRCチェックがＮＯであれば、ステップ３１０の処理を行う。ステップ３１０では全候補のnendについて上記処理を行ったかチェックする（ステップ３１０）。
CRCチェックOKとなることなく全候補のnendについて上記処理を繰り返せば、ステップ３１０において「YES」となるからエラー出力する（ステップ３１１）。しかし、全候補のnendについて上記処理が終了してなければnendを歩進し（ステップ３１２）、ステップ３０３の処理を繰り返す。
以上のBTFD処理を考慮して受信動作を説明する。
上位レイヤ（上位アプリケーション）８１から、あらかじめ、各クラスのビットレートの組み合わせ候補が複数（図１０参照）、BTFD制御部７１に通知され、候補レート設定／保持部７２はこの通知された候補レート情報を保持する。かかる状態において、受信データメモリ部６３ｂは、復号前処理部６３ａで分離結合された各クラスのTTI＝20msのデータを記憶する。BTFD制御部７１の候補レート設定／保持部７２は、複数の候補レートの中からレートの小さい順にクラスＡのビットレートを受信データメモリ部６３ｂに設定する。
受信データメモリ部６３ｂは、受信したクラスＡについて設定レートに応じたビット数分順にビタビ復号部のACS演算／パスメトリックメモリ／パスメモリ部６３ｃ−１に入力する。ACS演算／パスメトリックメモリ／パスメモリ部６３ｃ−１はACS演算を行い、その演算結果であるパスメトリック値を内蔵のパスメモリに保持するとともに、最大パスメトリック値ａｍａｘ（nend）、最少パスメトリック値ａｍｉｎ（nend）、状態ａ（＝状態０）のパスメトリック値ａ０（nend）をそれぞれBTFD制御部７１に通知する。
BTFD制御部７１は、Ｓ（nend）の計算を行い、さらに、Ｓ（nend）と閾値Ｄとの比較を行う。その結果、トレースバックを行うと判断すれば、すなわち、Ｓ（nend）≦Ｄであれば、トレースバック部６３ｃ−２に対して、トレースバック起動情報を入力する。これによりトレースバック部６３ｃ−２にnend位置までの復号結果を保存する。
しかる後、あるいは、クラスＡのビタビ復号処理前に、受信データメモリ部６３ｂは、クラスＢ，Ｃの受信データをビタビ復号部６３ｃに入力し、ビタビ復号部６３ｃは復号結果をパスメモリ部に保存する。すなわち、ビタビ復号部６３ｃはＢ，Ｃクラスについてはデータ長が判らないため末尾位置までのビタビ復号処理を行い、各データ長候補に対応する時点ｋにおいて、状態ａ，ｂ，ｃ，ｄにそれぞれ至るパスメトリック値が最小の４本のパスをパスメモリに記憶し、それぞれのパスメトリック値をパスメトリックメモリに記憶する。
クラスＡの復号処理が終了すれば、トレースバック部６３ｃ−２はCRC演算部６３ｄにnend値に応じたビット数（クラスＡのビット数ＮＡ＋CRCチェック符号数）分の復号結果を入力する。CRC演算部６３ｄはCRCチェック演算を行い、CRCチェックがOKであれば、CRCチェック符号を削除した復号結果をCRC演算後メモリ６３ｅに保存し、その時のnend値に応じたクラスＡのビット数（ＮＡ）がクラスＡの真の音声符号のビット数であると認識する。
ついで、BTFD制御部７１は、ビットレート組み合わせ候補テーブル（図１０）とクラスＡのビット数とからビットレート組み合わせ候補を識別し、音声コーデック部５１に該ビットレート組み合わせ候補を特定するフレームタイプ情報を通知する。音声コーデック部５１は通知されたビットレート組み合わせ候補より各クラスの音声符号ビット数を識別し、該音声符号ビット数をトレースバック部６３ｃ−２に入力して該トレースバック部を起動する。トレースバック部６３ｃ−２はパスメモリ部から、クラスＢ，Ｃのビット長に相当する時点ｋにおける４本のパスのうちパスメトリック値が最小のパスを求め、該パスに沿ってトレースバック処理を行って該クラスＢ，Ｃの音声符号を取得しCRC演算部２２ｃ経由でCRC演算後メモリ２２ｄに格納する。音声コーデック部５１は、CRC演算後メモリ２２ｄにクラスＡ，Ｂ，Ｃの音声符号がそろったところで、これら音声符号を取り込んで音声符号より音声信号を復元する。
以上、第１実施例によれば、CRCチェックOKの時点でBTFD処理を終了できるため、BTFD処理の処理量を減少でき、結果的に消費電流を減少でき、しかも、これらを減少しても各クラスの音声符号のビット数を識別し、各クラスの音声符号を正しく分離して音声コーデック部に入力できる。
（Ｅ）本発明のBTFD処理の第２実施例
図７は本発明の第２実施例のBTFD処理フローであり、第１実施例の処理フローと同一処理には同一ステップ番号を付している。
第２実施例では、CRCチェックOKとなってクラスＡのビットレートが確定した時のビットレート組み合わせ候補を送信時間間隔TTIの間保持しておき、次のTTI経過後のBTFD処理を該記憶してあるビットレートの組み合わせ候補におけるクラスＡのビットレートから開始する。
通常、音声通話であれば有音部分（12.2kbpsレート）と無音部分はそれぞれ数十秒単位で連続するのが普通であり、音声符号のTTI単位は20msである。このため、音声通話の有音部分／無音部分の変化の間隔は、TTI単位に対して長く、現TTIと次TTIでのレートが変化する確率は、変化しない確率に比べて低いことになる。そのため、第２実施例は、ビットレートが確定したら次TTIでも同じビットレートでBTFD処理を行えば、その時点でCRCチェックOKとなり、ビットレートが確定する確率が高くなることを利用するものである。
第１実施例の処理フローと異なる点は、各クラスのビットレートが確定したときにセットされるレート確定フラグを導入し、このレート確定フラグを用いてBTFD処理を行う点である。以下では、第１実施例と異なる処理を重点的に説明する。
まず、音声受信を開始する前にレート確定フラグをオフする。ついで、音声受信を開始し、レート確定フラグがオンかオフかを判別する（ステップ４０１）。初回はオフなので、第１実施例と同様にレートが小さい順からBTFD処理を行う（ステップ３０１〜３０９）。ステップ３０９において、クラスＡのビットレートが確定すれば、レート確定フラグをオンし（ステップ４１２）、その時のクラスＡのビットレート（TTI単位のビット長）、すなわち、nendを次TTIまで保持する（ステップ４１３）。この結果、次TTIでは、ステップ４１１においてレート確定フラグがオンとなっているため、前TTI時に保持したnendからACS演算を開始する。
一方、ステップ３０５においてＳ（nend）＞Ｄとなり確からしくないデータと判断した場合、レート確定フラグがオンであるかチェックし（ステップ４１４）、レート確定フラグがオンであればレート確定フラグをオフし（ステップ４１５）、ステップ４１１に戻り、以降の処理を繰り返す。又、ステップ４１１において、レート確定フラグがオフであれば、ステップ３１０の処理を行う。すなわち、ステップ３１０において全候補のnendについて上記処理を行ったかチェックする（ステップ３１０）。CRCチェックOKとなることなく全候補のnendについて上記処理を繰り返せば、ステップ３１０において「YES」となるからエラー出力する（ステップ３１１）。しかし、全候補のnendについて上記処理が終了してなければnendを歩進し（ステップ３１２）、ステップ４１１以降の処理を繰り返す。
また、ステップ３０８においてCRCチェックの結果OKでないと判明した場合、レート確定フラグがオンであるかチェックし（ステップ４１６）、レート確定フラグがオンであればレート確定フラグをオフし（ステップ４１５）、ステップ４１１に戻り、以降の処理を繰り返す。又、ステップ４１６において、レート確定フラグがオフであれば、ステップ３１０以降の処理を行う。
以上、第２実施例によれば、ビットレートが確定したら次TTIでも同じビットレートでBTFD処理を行うようにしたから、少ないBTFD処理で各クラスのビットレートを決定することができる。
（Ｆ）本発明のBTFD処理の第３実施例
図８は本発明の第３実施例のBTFD処理フローであり、第１、第２実施例の処理フローと同一処理部分には同一ステップ番号を付している。第３実施例では、無音状態をカウントし、過去に連続して７回の無音状態を検出すれば、次のTTIでは背景雑音のビットレートからBTFD処理を開始する。これは３ＧＰＰ音声コーデックの仕様によれば、8×TTIの無音状態において１つの背景雑音を挿入するように定義されているからである。このようにすれば、BTFD処理の処理量を減少できる。
音声受信を開始する前に無音フレーム数Ｕを０に初期化する。以後、音声受信を開始し、レート確定フラグがオフであれば（ステップ４１１）、第１実施例と同様にレートが小さい順からBTFD処理を行う（ステップ３０１〜３０９）。ステップ３０９において、クラスＡのビットレートが確定すれば、レート確定フラグをオンし（ステップ４１２）、その時のクラスＡのビットレート、すなわち、nendを次TTIまで保持する（ステップ４１３）。ついで、確定したnendが無音のビットレートであるかどうかの判断し（ステップ５０１）、無音でなければ、次のTTIになるのを待つ。一方、無音であれば、無音状態数Ｕをカウントアップし（Ｕ＝Ｕ＋１，ステップ５０２）、次のTTIになるのを待つ。
次TTIにおいて、レート確定フラグがオンであれば（ステップ４１１）、無音フレーム数Ｕが７回に達したかチェックする（ステップ５０３）。７回に達してなければ、nendを前TTIで確定したnendとしてステップ３０３以降の処理をおこない、７回に達していればnendを背景雑音とする（ステップ５０４）。その際、無音フレーム数Ｕを０に初期化し（ステップ５０５）、レート確定フラグをオフにし（ステップ５０６）、ステップ３０３以降の処理を行う。Ｕ＝０にし、レート確定フラグをオフにしたことにより、次TTIからはレートが小さい順に、つまり、無音のnendらBTFD処理が開始することになる。
以上では、本発明を移動端末に適用した場合について説明したが、固定端末にも適用できることは勿論である。
（Ｇ）発明の効果
以上本発明によれば、BTFD処理の処理量及び消費電流を減少でき、しかも、これらを減少しても正しく各クラスの音声符号のビット数を識別し、各クラスの音声符号を正しく分離して音声コーデック部に入力できる。
又、本発明によれば、BTFD処理に使用するメモリ数を減少でき、しかも、使用メモリ数を減少しても正しく各クラスの音声符号のビット数を識別できる。
又、本発明によれば、各クラスの音声符号のビット数が送信時間間隔TTI毎に変化しても各クラスのデータを記憶するメモリの先頭アドレスを一定にして先頭アドレスの制御を容易にすることができる。
【符号の説明】
【０００８】
５１  音声コーデック部
５２  送信側チャネルコーデック部
５３  変調部
５４  送信部
６１  受信部
６２  復調部
６３  受信側チャネルコーデック
７１  制御プロセッサー（BTFD制御部）
【図１】
2010141910.tif 000003
【図２】
2010141910.tif 000004
【図３】
2010141910.tif 000005
【図４】
2010141910.tif 000006
【図５】
2010141910.tif 000007
【図６】
2010141910.tif 000008
【図７】
2010141910.tif 000009
【図８】
2010141910.tif 000010
【図９】
2010141910.tif 000011
【図１０】
2010141910.tif 000012
【図１１】
2010141910.tif 000013
【図１２】
2010141910.tif 000014
【図１３】
2010141910.tif 000015
【図１４】
2010141910.tif 000016
【図１５】
2010141910.tif 000017
【図１６】
2010141910.tif 000018
【図１７】
2010141910.tif 000019
【図１８】
2010141910.tif 000020
【図１９】
2010141910.tif 000021
【図２０】
2010141910.tif 000022
【図２１】
2010141910.tif 000023
【図２２】
2010141910.tif 000024