(57)【特許請求の範囲】
【請求項１】
情報を格納するフレームを伝送する通信システムにおいて、上記フレームに格納されている符号化された音声情報のビット数を検出する方法であって、
同じ通信内で過去に受信した直前のフレームに格納されていた優先度の異なる複数の音声情報のうち、最も優先度の高い音声情報に区分される音声情報についてのビット数に基づいて今回のフレームに格納されている最も優先度の高い音声情報に区分される音声情報のビット数についての予測値を生成し、
その生成された予測値を用いて当該今回のフレームについて、該優先度の異なる複数の音声情報のうち、最も優先度の高い音声情報について選択的に誤り検出処理を実行し、
その誤り検出処理の結果に基づいて当該今回のフレームに格納されている、該優先度の異なる複数の音声情報に含まれる、該最も優先度の高い音声情報のビット数及び該最も優先度の高い音声情報との間でビット数について一意の関連性がある他の音声情報のビット数を検出する
ことを特徴とする検出方法。
【請求項２】
請求項１に記載の方法であって、
上記予測値は、直前のフレームに格納されていた情報のビット数を検出できなかった場合には、過去に検出したビット数の中で最新のビット数に基づいて生成される
ことを特徴とする検出方法。
【請求項３】
情報を格納するフレームを伝送する通信システムにおいて、上記フレームに格納されている符号化された音声情報のビット数を検出する検出装置であって、
優先度の異なる複数の音声情報を含む上記フレームを受信する受信手段と、
同じ通信内で上記受信手段により過去に受信された直前のフレームに格納されていた音声情報のうち、最も優先度の高い音声情報に区分される音声情報についてのビット数に基づいて今回のフレームに格納されている最も優先度の高い音声情報に区分される音声情報のビット数についての予測値を生成する予測手段と、
その予測手段により生成された予測値を用いて当該今回のフレームについて、該優先度の異なる複数の音声情報のうち、最も優先度の高い音声情報について選択的に誤り検出処理を実行する誤り検出手段と、
その誤り検出手段による検出結果に基づいて当該今回のフレームに格納されている、該優先度の異なる複数の音声情報に含まれる、該最も優先度の高い音声情報のビット数及び該最も優先度の高い音声情報との間でビット数について一意の関連性がある他の音声情報のビット数を検出するビット数検出手段と
を有する検出装置。
【請求項４】
情報を格納するフレームを伝送する通信システムにおいて、上記フレームに格納されている符号化された音声情報のビット数を検出する検出装置であって、
伝送フレームを受信する受信手段と、
同じ通信内で上記受信手段により受信された優先度の異なる複数の音声情報を含む伝送フレームからデータ列を抽出する抽出手段と、
その抽出手段により抽出されたデータ列に含まれる該優先度の異なる複数の音声情報の中で、最も優先度の高い音声情報に区分される音声情報について選択的に誤り検出処理を実行する誤り検出手段と、
その誤り検出手段による検出結果に従って上記伝送フレームに格納されている該最も優先度の高い音声情報の情報量を検出する情報量検出手段と、を有し、
上記抽出手段は、上記情報量検出手段による過去の直前の、最も優先度の高い音声情報の情報量についての検出結果に基づいて上記伝送フレームから抽出すべき該最も優先度の高い音声情報のビット数及び該最も優先度の高い音声情報との間でビット数について一意の関係を有する他の音声情報のビット数を決定する
ことを特徴とする検出装置。
【請求項５】
複数種類の伝送フォーマットのなかの任意の伝送フォーマットの情報を格納するフレームが伝送される通信システムにおいて、上記フレームに格納されている符号化された音声情報の伝送フォーマットを検出する検出装置であって、
優先度の異なる複数の音声情報を含む上記フレームを受信する受信手段と、
同じ通信内で上記受信手段により過去に受信された直前のフレームに格納されていた、最も優先度の高い音声情報に区分される音声情報のデータ量に基づいて今回のフレームに格納されている情報の伝送フォーマットを予測する予測手段と、
上記予測手段により予測された伝送フォーマットに従って、最も優先度の高い音声情報が当該今回のフレームに格納されているものと仮定して、該優先度の異なる複数の音声情報の中で、最も優先度の高い音声情報について選択的に誤り検出処理を実行する誤り検出手段と、
その誤り検出手段による検出結果に基づいて当該今回のフレームに格納されている、優先度の異なる複数の音声情報のうち、該最も優先度の高い音声情報及び該最も優先度の高い音声情報との間でビット数について一意の関係を有する他の音声情報を含む伝送フォーマットを検出するフォーマット検出手段と
を有する検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、伝送フレームに格納される情報の量（ビット数、または長さ）が伝送フレームごとにダイナミックに変化し得る通信システムに係わる。
【背景技術】
【０００２】
近年、移動体通信が急激に普及してきており、様々な方式が提案・開発されている。そして、次世代携帯電話システム（ＩＭＴ−２０００）のひとつとしてＷ−ＣＤＭＡが提案されている。
【０００３】
Ｗ−ＣＤＭＡでは、伝送速度の高速化、ユーザ数の増加、無線帯域の有効利用などの観点から様々な新しい技術が導入されている。そして、その中のひとつとしてＢＴＦＤ（Blind Transport Format Detection）と呼ばれる技術が採用されている。
【０００４】
ＢＴＦＤを利用するシステムでは、情報を伝送するときのデータレートをダイナミックに変化させることができる。すなわち、情報をフレームに格納して伝送するとき、各フレームに格納される情報のビット数（または、情報ビット長）をフレーム毎に変えることができる。このとき、送信装置は、各フレームに格納した情報のビット数を受信装置に通知しない。したがって、受信装置は、受信したフレームから情報を取得する際、各フレームに格納されている情報のビット数を検出する必要がある。
【０００５】
図１は、ＢＴＦＤにおいて使用される伝送フレームのフォーマットの例である。伝送すべき情報（情報ビット）は、それぞれＣＲＣ（Cyclic Redundancy Code）が付加された後、誤り訂正符号化が行われる。誤り訂正符号は、例えば、畳み込み符号である。そして、上述のようにして符号化されたデータは、伝送フレームに格納されて網へ送出される。なお、以下では、無線網を介して伝送される伝送フレームのことを「無線フレーム」と呼ぶことがある。そして、その無線フレームは、基本的に、固定長である。したがって、符号化されたデータを無線フレームに格納する際には、その無線フレームのデータ格納領域を満たすために、必要に応じてＤＴＸ（Discontinuous Transmission）が設定される。「ＤＴＸ」とは、信号を送信しないことを表す。
【０００６】
このように、ＢＴＦＤでは、各無線フレームに格納される情報のビット数をフレーム毎に変えることができる。そして、受信装置は、伝送されてきた情報を取得する際にその情報のビット数を検出する。
【０００７】
図２は、ＢＴＦＤの一般的なアルゴリズムを説明するフローチャートであり、受信装置により実行される。なお、ここでは、図１に示した３種類の情報ビット（５０ビット、１００ビット、２００ビット）が使用されるシステムを想定する。
【０００８】
ステップＳ１において信号（無線フレーム）を受信すると、その無線フレームに格納されている情報のビット数を検出する処理を開始する。ステップＳ２およびＳ３では、受信した無線フレームに格納されている情報のビット数が５０ビットであるものと仮定して誤り検出処理を実行する。この誤り検出処理は、例えば、ＣＲＣ演算である。そして、ステップＳ３において誤りが検出されなければ、無線フレームに５０ビットの情報が格納されていたものとみなし、その５０ビットの情報を取得する。一方、ステップＳ３において誤りが検出されたときは、ステップＳ４へ進む。
【０００９】
ステップＳ４およびＳ５では、受信した無線フレームに格納されている情報のビット数が１００ビットであるものと仮定して誤り検出処理を実行する。そして、ステップＳ５において誤りが検出されなければ、無線フレームに１００ビットの情報が格納されていたものとみなし、その１００ビットの情報を取得する。一方、ステップＳ５において誤りが検出されたときは、ステップＳ６へ進む。
【００１０】
同様に、ステップＳ６およびＳ７では、受信した無線フレームに格納されている情報のビット数が２００ビットであるものと仮定して誤り検出処理を実行する。そして、ステップＳ７において誤りが検出されなければ、無線フレームに２００ビットの情報が格納されていたものとみなし、その２００ビットの情報を取得する。なお、ステップＳ７において誤りが検出されたときは、伝送路上でエラーが発生したものとみなし、ステップＳ８においてそのエラーに対応する処理を実行する。
【００１１】
このように、ＢＴＦＤが採用されている通信システムにおいては、受信装置は、無線フレームを受信する毎に、そのフレームに格納されている情報のビット数を検出し、その検出結果に従って情報を取得する。なお、既存のＢＴＦＤでは、上述のように、受信フレームに所定のビット数の情報が格納されているものと仮定して誤り検出処理を繰り返し実行する際、各誤り検出処理で使用されるビット数の予測値の順番は、固定的に設定されていた。
【００１２】
ＢＴＦＤに関する詳しい説明は、例えば、3 rd Generation Partnership Project; Technical Specification Group Group Radio Access Network; Multiplexing and channel coding (3G TS 25.212 version 3.1.0)に記載されている。
【発明の開示】
【発明が解決しようとする課題】
【００１３】
ところで、図２に示したアルゴリズムが採用されているとすると、もし、無線フレームに５０ビットの情報が格納されて伝送されてきたのであれば、誤り検出処理は、１回だけ実行される。しかし、無線フレームに１００ビットの情報が格納されていた場合には誤り検出処理は２回実行され、また、２００ビットの情報が格納されていた場合には誤り検出処理は３回実行されることになる。したがって、上述のケースでは、無線フレームを受信する毎に実行すべき誤り検出処理の平均回数は、２回である。
【００１４】
ところが、この誤り検出処理を行う前には、一般に、誤り訂正復号処理等を行う必要があり、その演算量が多い。このため、誤り検出処理の実行回数が増えると、そのための処理時間が長くなると共に、消費電力も大きくなってしまう。したがって、上記誤り検出処理を実行すべき回数はできるだけ少ないことが望ましい。
【００１５】
なお、上述の例では、３種類のビット数を使用できるシステムを想定しているが、使用可能なビット数の種類が増えれば、それだけ実行すべき誤り検出処理の平均回数が増えることは言うまでもない。
【００１６】
本発明は、フレームごとに伝送すべき情報の情報量が可変である通信システムにおいて、受信した情報の情報量を検出する処理の演算量を少なくすることを目的とする。具体的には、Ｗ−ＣＤＭＡにおいて適用されているＢＴＦＤを実行する際の演算量を少なくし、これにより消費電力を低下させることを目的とする。
【課題を解決するための手段】
【００１７】
本発明の伝送フォーマット検出方法は、情報を格納するフレームを伝送する通信システムにおいて、そのフレームに格納されている情報のビット数を検出する方法であって、同じ通信内で過去に受信したフレームに格納されていた情報のビット数に基づいて当該フレームに格納されている情報のビット数についての予測値を生成し、その生成された予測値を用いて当該フレームについて誤り検出処理を実行し、その誤り検出処理の結果に基づいて当該フレームに格納されている情報のビット数を検出する。
【００１８】
この方法によれば、各フレームに格納される情報のビット数に関して一定の傾向が存在する通信システムにおいては、過去の検出結果を利用することにより、誤り検出処理を効率的に行うことができ、その実行回数が減少する。
【００１９】
上記方法において、予測値は、例えば、直前のフレームに格納されていた情報のビット数に基づいて生成される。このようにして予測値を決定すれば、同じビット数の情報が連続的に伝送される場合に、誤り検出処理の効率が向上する。
【００２０】
本発明の他の態様のフォーマット検出方法は、情報を格納するフレームを伝送する通信システムにおいて、上記フレームに格納されている情報のビット数を検出する方法であって、同じ通信内で過去に受信した複数のフレームにそれぞれ格納されていた情報のビット数をそれぞれ検出し、上記検出に基づいてビット数ごとに検出頻度を調べ、上記検出頻度が高いビット数から順番に、各検出されたビット数の情報が当該フレームに格納されているものと仮定して誤り検出処理をそれぞれ実行し、それらの誤り検出処理の結果に基づいて当該フレームに格納されている情報のビット数を検出する。
【００２１】
この方法によれば、特に、特定のビット数の情報が頻繁に伝送される通信システムにおいて誤り検出処理の効率が向上する。
【発明の効果】
【００２２】
本発明によれば、フレームごとに伝送すべき情報の情報量が可変である通信システムにおいて、受信した情報の情報量を検出する処理の演算量が少なくなる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明の実施形態について説明する。はじめに、本発明のＢＴＦＤアルゴリズムの基本処理を示す。
図３は、本発明のＢＴＦＤアルゴリズムを示すフローチャートである。ここでは、図２に示した例と同様に、伝送フレームには５０ビット、１００ビット、または２００ビットの情報を格納することができるものとする。
【００２４】
本発明のＢＴＦＤアルゴリズムでは、伝送フレームに格納されている情報のビット数を予測し、その予測に基づいて誤り検出処理を実行する。すなわち、受信装置は、伝送フレームに格納されている情報のビット数が、５０ビット、１００ビット、または２００ビットのいずれであるのかを予測し、その予測されるビット数の情報に対して誤り検出処理を実行する。
【００２５】
この実施例では、第１、第２、第３の予測値が使用される。そして、これら第１、第２、第３の予測値は、それぞれ記憶領域ｘ(0) 、ｘ(1) 、ｘ(2) に格納される。なお、この例では、伝送フレームに格納可能な情報のビット数が３種類であるので、第１〜第３の予測値が用いられるが、伝送フレームに格納可能な情報のビット数がＮ種類であれば、第１〜第Ｎの予測値が用いられることになる。
【００２６】
ステップＳ１１では、上記予測値の初期設定を行う。ここでは、例えば、記憶領域ｘ(0) に第１の予測値として「５０ビット」が設定され、記憶領域ｘ(1) に第２の予測値として「１００ビット」が設定され、記憶領域ｘ(2) に第３の予測値として「２００ビット」が設定される。
【００２７】
続いて、ステップＳ１２において信号（伝送フレーム）を受信すると、ステップＳ１３において、記憶領域ｘ(0) から第１の予測値を抽出する。このとき、第１の予測値は、「５０ビット」である。したがって、ステップＳ１４では、受信した伝送フレームの所定位置に５０ビットの情報が格納されているものと仮定して誤り検出処理を実行する。そして、誤りが検出されなければ、伝送フレームに格納されている情報のビット数が第１の予測値（ここでは、５０ビット）と一致するものと判断する。この場合、ステップＳ２０へ進んで処理Ａが実行される。なお、処理Ａについては後述する。一方、ステップＳ１４において誤りが検出された場合には、伝送フレームに格納されている情報のビット数が第１の予測値とは一致しないものと判断し、ステップＳ１５へ進む。
【００２８】
ステップＳ１５では、記憶領域ｘ(1) から第２の予測値を抽出する。このとき、第２の予測値は、「１００ビット」である。したがって、ステップＳ１６では、受信した伝送フレームに１００ビットの情報が格納されているものと仮定して誤り検出処理を実行する。そして、誤りが検出されなければ、伝送フレームに格納されている情報のビット数が第２の予測値（ここでは、１００ビット）と一致するものと判断し、ステップＳ２０へ進む。一方、誤りが検出された場合にはステップＳ１７へ進む。
【００２９】
同様に、ステップＳ１７では、記憶領域ｘ(2) から第３の予測値を抽出する。このとき、第３の予測値は、「２００ビット」である。したがって、ステップＳ１８では、受信した伝送フレームに２００ビットの情報が格納されているものと仮定して誤り検出処理を実行する。そして、誤りが検出されなければ、伝送フレームに格納されている情報のビット数が第３の予測値（ここでは、２００ビット）と一致するものと判断し、ステップＳ２０へ進む。一方、誤りが検出された場合には、伝送誤り等が発生したものとみなし、ステップＳ１９へ進む。ステップＳ１９では、伝送フレームに格納されている情報のビット数を検出できなかった旨を表す信号を出力する。
【００３０】
このように、ステップＳ１３〜Ｓ１８の処理により、伝送フレームに格納されている情報のビット数が検出される。
ステップＳ２０（処理Ａ）では、ステップＳ１４、Ｓ１６、Ｓ１８における誤り検出処理の結果に従って、記憶領域ｘ(0) 、ｘ(1) 、ｘ(2) が更新される。具体的には、受信した伝送フレームに格納されていた情報のビット数が、記憶領域(0) に書き込まれる。ここで、伝送フレームに格納されていた情報のビット数は、上述したように、ステップＳ１３〜Ｓ１８の処理により検出される。例えば、ステップＳ１４において誤りが検出されなかったとすると、伝送フレームに格納されていた情報のビット数は第１の予測値と一致し、ステップＳ１６において誤りが検出されなかったとすると、伝送フレームに格納されていた情報のビット数は第２の予測値と一致する。そして、たとえば、記憶領域ｘ(0) 、ｘ(1) 、ｘ(2) にそれぞれ「５０ビット」「１００ビット」「２００ビット」が設定されている状態において、ステップＳ１４で誤りが検出され且つステップＳ１６で誤りが検出されなかったとすると、伝送フレームに１００ビットの情報が格納されていたもの判断し、記憶領域ｘ(0) に「１００ビット」を書き込む。このとき、記憶領域(1) には、「５０ビット」または「２００ビット」が書き込まれ、記憶領域(2) には、「２００ビット」または「５０ビット」が書き込まれる。
【００３１】
このように、「処理Ａ」では、受信した伝送フレームに格納されている情報のビット数が次回の誤り検出処理の第１の予測値として記憶領域(0) に書き込まれる。したがって、以降、伝送フレームを受信した際には、前回の（または、直前の）伝送フレームに格納されていた情報のビット数が第１の予測値として設定されていることになる。すなわち、本発明のＢＴＦＤアルゴリズムでは、伝送フレームを受信すると、まず、前回の伝送フレームに格納されていた情報のビット数を予測値として用いて当該伝送フレームに格納されている情報について誤り検出処理を実行する。そして、その予測が外れた場合に他の予測値を用いて誤り検出処理が実行される。
【００３２】
上記ＢＴＦＤアルゴリズムは、伝送フレームに格納される情報のビット数が変更される頻度が低い通信、あるいは同じビット数の情報が連続的に伝送されることが多い通信において有効である。例えば、１０個のフレームが伝送される際、ビット数の変更が１回だけであったものとする。具体的には、例えば、５０ビットの情報を格納する伝送フレームが５個連続して伝送され、それに続いて１００ビットの情報を格納する伝送フレームが５個連続して伝送されたものとする。この場合、５０ビットの情報が格納された伝送フレームを受信している期間は、第１の予測値として「５０ビット」が設定されている。したがって、この期間は、伝送フレームに格納されている情報のビット数と第１の予測値とが一致するので、伝送誤りが発生していないものとすると、図３に示すフローチャートのステップＳ１４において「誤り無し」と判断されることになり、「情報のビット数＝５０」が検出される。この場合、ステップＳ１４〜Ｓ１８は実行されない。すなわち、５０ビットの情報を格納する伝送フレームを受信したとき、誤り検出処理は、それぞれ１回だけ実行されることになる。
【００３３】
続いて、１００ビットの情報を格納する伝送フレームを受信する。ここで、１００ビットの情報を格納する第１番目の伝送フレームを受信した時点では、第１の予測値として「５０ビット」が設定されているはずである。したがって、この場合、伝送フレームに格納されている情報のビット数と第１の予測値とが一致しないので、ステップＳ１４において「誤り」が検出されることになる。この後、ステップＳ１６が実行される。このとき、第２の予測値として「１００ビット」が設定されていたものとすると、ステップＳ１６において「誤り無し」と判断され、「情報のビット数＝１００」が検出される。このように、伝送フレームに格納されている情報のビット数が変化した直後には、２回の誤り検出処理が実行される。なお、上述の例において、第２の予測値として「２００ビット」が設定され且つ第３の予測値として「１００ビット」が設定されていたものとすると、１００ビットの情報を格納する伝送フレームを受信したときに、３回の誤り検出処理が実行されることになる。
【００３４】
「情報のビット数＝１００」が検出されると、第１の予測値として「１００ビット」が設定される。しがたって、この後、１００ビットの情報を格納する伝送フレームを受信している期間は、各伝送フレームに格納されている情報のビット数と第１の予測値とが一致するので、ステップＳ１４において「誤り無し」と判断されることになり、「情報のビット数＝１００」が検出さる。すなわち、この期間も、誤り検出処理は、伝送フレームを受信するごとに１回だけ実行されることになる。
【００３５】
上述の例において、１０個の伝送フレームを受信した場合に実行される誤り検出処理の合計回数は、１１回である。すなわち、各伝送フレームを受信するごとに実行される誤り検出処理の平均回数は、１．１回である。このように、図３に示すＢＴＦＤアルゴリズムによれば、図２に示した既存のＢＴＦＤアルゴリズムと比較して、誤り検出処理の実行回数が減少する。この効果は、情報のビット数の種類が多くなるに従って顕著になることが期待される。
【００３６】
図４は、本発明の他の態様のＢＴＦＤアルゴリズムを示すフローチャートである。ここでも、図２に示した例と同様に、伝送フレームには５０ビット、１００ビット、または２００ビットの情報を格納することができるものとする。
【００３７】
図４に示すアルゴリズムも、図３に示したアルゴリズムと同様に、伝送フレームに格納されている情報のビット数を予測し、その予測に基づいて誤り検出処理を実行する。ただし、図４に示すアルゴリズムでは、過去に受信した伝送フレームに格納されていた情報のビット数についての統計をとっておき、使用頻度に応じて予測値が決定される。具体的には、例えば、５０ビットの情報を格納する伝送フレームが最も多く、１００ビット及び２００ビットの情報を格納する伝送フレームが少なかったとすると、第１の予測値として記憶領域ｘ(0) に「５０ビット」が設定される。
【００３８】
図４に示すＢＴＦＤアルゴリズムにおいては、上記処理を実現するため、各ビット数（情報長）ごとに、そのビット数の情報を検出した個数をカウントするためのカウンタが設けられる。ここでは、５０ビット、１００ビット、２００ビットの情報に対してそれぞれ対応して、カウンタ(50)、カウンタ(100)、カウンタ(200)が設けられる。
【００３９】
ステップＳ３１では、上記カウンタをリセットする。これにより、カウンタ(50)、カウンタ(100)、カウンタ(200)のカウント値がそれぞれ「０」になる。
続いて、ステップＳ１１〜Ｓ１９が実行される。ステップＳ１１〜Ｓ１９は、図３を参照しながら説明した通りである。すなわち、伝送フレームに格納されている情報のビット数を検出する。ただし、ステップＳ１４、Ｓ１６、またはＳ１８において誤りが検出されなかったときは、検出されたビット数に対応するカウンタをインクリメントする。例えば、記憶領域ｘ(0) に第１の予測値として「５０ビット」が格納され、記憶領域ｘ(1) に第２の予測値として「１００ビット」が格納され、記憶領域ｘ(2) に第３の予測値として「２００ビット」が格納されている場合を想定する。この場合、もし、５０ビットの情報を格納する伝送フレームを受信したとすると、ステップＳ１４において「誤り無し」が検出され、カウンタ(50)がインクリメントされる。すなわち、伝送フレームを受信したとき、「情報のビット数＝５０」が検出されると、カウンタ(50)がインクリメントされる。同様に、１００ビットの情報を格納する伝送フレームを受信したとすると、ステップＳ１６において「誤り無し」が検出され、カウンタ(100)がインクリメントされる。また、２００ビットの情報を格納する伝送フレームを受信したとすると、ステップＳ１８において「誤り無し」が検出され、カウンタ(200)がインクリメントされる。
【００４０】
このように、図４に示すアルゴリズムでは、伝送フレームを受信する毎に、その伝送フレームに格納されている情報のビット数に対応するカウンタがインクリメントされる。これにより、各ビット数の情報を検出した回数が計数される。そして、上記カウンタがインクリメントされると、ステップＳ３２において処理Ｂが実行される。
【００４１】
ステップＳ３２（処理Ｂ）では、上記各カウンタのカウント値が参照され、そのカウント値が大きい順番に予測値が設定される。例えば、１００ビットの情報を格納する伝送フレームを受信した回数が最も多く、次いで５０ビットの情報を格納する伝送フレーム、２００ビットの情報を格納する伝送フレームという順番であったものとすると、記憶領域(0) には第１の予測値として「１００ビット」が設定される。また、記憶領域(1) には第２の予測値として「５０ビット」が設定され、記憶領域(2) には第３の予測値として「２００ビット」が設定されることになる。
【００４２】
このように、「処理Ｂ」では、最も検出頻度の高いビット数が誤り検出処理の第１の予測値として記憶領域(0) に書き込まれる。そして、伝送フレームを受信すると、まず、最も検出頻度の高いビット数と同じビット数の情報が伝送フレームに格納されているものと仮定して誤り検出処理を実行する。したがって、このＢＴＦＤアルゴリズムは、第１回目の誤り検出処理（ステップＳ１４）において、伝送フレームに格納されている情報のビット数とその予測値とが一致する可能性が高くなる。すなわち、このアルゴリズムでは、第１回目の誤り検出処理において、伝送フレームに格納されている情報のビット数を検出できる可能性が高い。この結果、誤り検出処理を実行する合計回数または平均回数が減少する。
【００４３】
上記ＢＴＦＤアルゴリズムは、使用されるビット数が特定のものに偏っているような通信において有効である。例えば、５０ビットの情報が使用される確率が６０％、１００ビットの情報が使用される確率が３０％、２００ビットの情報が使用される確率が１０％であったものとすると、第１〜第３の予測値として、それぞれ「５０ビット」「１００ビット」「２００ビット」が設定されることになる。この場合、５０ビットの情報を格納する伝送フレームを受信すると、第１回目の誤り検出処理においてビット数が検出され、１００ビットの情報を格納する伝送フレームを受信すると、第２回目の誤り検出処理においてビット数が検出され、２００ビットの情報を格納する伝送フレームを受信すると、第３回目の誤り検出処理においてビット数が検出される。すなわち、誤り検出処理を１回だけ実行することによって情報のビット数を検出できる確率は６０％、誤り検出処理を２回実行することによって情報のビット数を検出できる確率は３０％、誤り検出処理を３回実行することによって情報のビット数を検出できる確率は１０％となる。よって、この場合、伝送フレームに格納されている情報のビット数を検出するために必要な誤り検出処理の平均実行回数は、下記の通りである。
【００４４】
１×０．６  ＋  ２×０．３  ＋  ３×０．１  ＝  １．５回
このように、図４に示すＢＴＦＤアルゴリズムによれば、図２に示した既存のＢＴＦＤアルゴリズムと比較して、誤り検出処理の実行回数が減少する。そして、この効果は、情報のビット数の種類が多くなるに従って顕著になることが期待される。
【００４５】
次に、本発明の実施例を説明する。ここでは、本発明のＢＴＦＤアルゴリズムが無線通信システムの受信装置において使用される場合を取り上げる。なお、通信方式は、例えば、畳み込み符号を利用したＣＤＭＡである。また、ここでは、５０ビットの情報、１００ビットの情報、２００ビットの情報を伝送できるものとする。
【００４６】
図５は、本発明が適用される通信システムにおいて使用される送信装置のブロック図である。ここでは、本発明に直接的に関係のある機能のみを示し、例えば、データを生成するための機能、および信号を受信するための機能について省略している。また、この実施例の通信システムは、無線網を想定している。
【００４７】
バッファ１〜３は、それぞれ５０ビットの情報、１００ビットの情報、および２００ビットの情報を格納する。すなわち、送信すべき情報は、５０ビット、１００ビット、または２００ビット毎に分割されて対応するバッファに格納される。
【００４８】
制御部４は、各バッファ１〜３に格納されている情報の量に応じて、またはバッファ１〜３から送出される到着報告に従って、選択装置５に対して選択指示を与える。「到着報告」とは、各バッファに情報が格納されているか否かを指示する情報である。
【００４９】
選択装置５は、制御部４からの選択指示に従って、バッファ１〜３の出力のうちの１つを選択する。これにより、５０ビットの情報、１００ビットの情報、または２００ビットの情報がＣＲＣ付加部６に与えられる。
【００５０】
ＣＲＣ付加部６は、選択装置５により選択された情報にＣＲＣを付加する。ＣＲＣのビット数は、一定であるものとする。なお、ＣＲＣ自体は、既知の技術なので、その説明を省略する。畳み込み符号化部７は、ＣＲＣ付加部６の出力に対して畳み込み符号化処理を実行する。無線部８は、畳み込み符号化部７の出力を無線フレーム（無線網において伝送されるフレーム）に格納する。そして、この無線フレームは、アンテナ９を介して網に送出される。
【００５１】
図６は、上記送信装置により生成される無線フレームの例である。ここでは、情報ビットのビット数にかかわらず、１０ビットのＣＲＣが付加されるものとする。また、畳み込み符号化部７における符号化率は、「１：２」であるものとする。
【００５２】
選択装置５により５０ビットの情報が選択された場合、その情報に１０ビットのＣＲＣが付加された後に符号化されると、１２０ビットの符号化データが生成される。そして、この符号化データをフレームに格納することにより、無線フレーム１１が作成される。同様に、１００ビットの情報が選択された場合には、２２０ビットの符号化データが生成され、その符号化データをフレームに格納することにより、無線フレーム１２が作成される。また、２００ビットの情報が選択された場合には、４２０ビットの符号化データが生成され、その符号化データをフレームに格納することにより、無線フレーム１３が作成される。
【００５３】
図７は、本発明が適用される通信システムにおいて使用される受信装置のブロック図である。この受信装置は、図５に示した送信装置から送出される無線フレーム１１〜１３を受信し、それらの無線フレームから情報ビットを取得する。なお、図７では、本発明に直接的に関係のある機能のみを示す。
【００５４】
アンテナ２１は、無線信号を受信する。そして、無線部２２は、無線フレームを終端する。
制御部２３は、無線フレームに格納されている情報のビット数を予測し、その予測値をビタビ復号装置２４に与える。また、制御部２３は、ＣＲＣ誤り検出部２５による検出結果に従って、ビタビ復号装置２４に対して次の予測値を与える必要があるか否かを判断する。
【００５５】
ビタビ復号装置２４は、制御部２３から与えられる予測値を用いて無線フレームから符号化データを再生または抽出し、その符号化データを復号する。また、ＣＲＣ誤り検出部２５は、ビタビ復号装置２４により復号されたデータについてＣＲＣ演算を実行し、誤りが発生しているか否かを検出する。この検出結果は、制御部２３に与えられる。
【００５６】
制御部２３は、ＣＲＣ演算において誤りが検出されなかった場合には、ビタビ復号装置２４により得られた復号データを、送信装置が送出した情報ビットとして出力する。一方、ＣＲＣ演算において誤りが検出された場合には、制御部２３は、ビタビ復号装置２４に対して次の予測値を与える。
【００５７】
上記受信装置の動作を説明する。受信装置の制御部２３には、図３を参照しながら説明したように、第１〜第３の予測値が設定されている。そして、無線部２２により無線フレームが受信されると、制御部２３は、第１の予測値をビタビ復号装置２４に与える。ここでは、第１の予測値として「５０ビット」が与えられるものとする。
【００５８】
ビタビ復号装置２４は、第１の予測値が与えられると、その第１の予測値に対応するビット数のデータを無線フレームから再生／抽出する。例えば、第１の予測値として「５０ビット」が与えられている場合には、無線フレームから１２０ビットのデータが抽出される。なお、受信装置は、ＣＲＣが１０ビットであること、および送信装置における符号化率が１：２であることを認識している。
【００５９】
そして、ビタビ復号装置２４は、抽出した１２０ビットのデータに対して復号処理を実行し、それに続いてＣＲＣ演算を実行する。このとき、もし、無線部２２が図６に示す無線フレーム１１を受信したのであれば、ＣＲＣ演算において誤りは検出されない。この場合、復号データから１０ビットのＣＲＣを削除することによって得られる５０ビットの情報が出力される。この情報が、送信装置から送出された情報ビットである。
【００６０】
一方、もし、無線部２２が図６に示す無線フレーム１２または１３を受信したのであれば、第１の予測値に従って無線フレームから１２０ビットのデータを再生／抽出して復号処理およびＣＲＣ演算を実行したとすると、誤りが検出されることになる。この場合、ＣＲＣ誤り検出部２５は、ＣＲＣ演算において誤りが検出された旨を制御部２３に通知する。
【００６１】
制御部２３は、この通知を受けると、ビタビ復号装置２４に対して第２の予測値を与える。そして、ビタビ復号装置２４は、その第２の予測値に対応するビット数のデータを無線フレームから再生／抽出する。例えば、第２の予測値として「１００ビット」が与えられている場合には、無線フレームから２２０ビットのデータが再生／抽出され、第２の予測値として「２００ビット」が与えられている場合には、無線フレームから４２０ビットのデータが再生／抽出される。以降の動作は、基本的に、第１の予測値が与えられた場合と同じである。
【００６２】
上記処理によって無線フレームに格納されていた情報のビット数が検出されると、制御部２３は、その検出結果に従って、第１〜第３の予測値を更新する。例えば、図３のフローチャートに示した方法を採用する場合には、次の無線フレームのための第１の予測値として、当該無線フレームに格納されていた情報のビット数を設定する。そして、この第１の予測値は、次の無線フレームを受信した際に最初にビタビ復号装置２４に与えられる。
【００６３】
次に、具体的な実施例を示す。図８は、本発明のＢＴＦＤアルゴリズムの第１の実施例のフローチャートである。この実施例は、図３に示したアルゴリズムをベースにしている。そして、図８において使用するステップ番号のうち、図３において使用されているものは同じ処理を表す。
【００６４】
第１の実施例では、受信した無線フレームに格納されていた情報のビット数が、次の無線フレームに格納されている情報のビット数を検出する処理のための第１の予測値として設定される。換言すれば、無線フレームを受信した場合には、まず、前回の無線フレームに格納されていた情報のビット数と同じビット数の情報が当該無線フレームに格納されていると仮定して情報のビット数の検出を試み、それに失敗した場合に他の予測値が用いられる。
【００６５】
具体的には、第１の実施例のアルゴリズムでは、図３のステップＳ２０（処理Ａ）として、ステップＳ４２およびＳ４３が実行される。また、ステップＳ４２およびＳ４３を実行するためにステップＳ４１が設けられている。ステップＳ４１は、ステップＳ１４において誤りが検出されたときに実行される。すなわち、ステップＳ４１は、第１の予測値を用いた誤り検出処理において誤りが検出されたときに、その第１の予測値を保持しておく処理である。
【００６６】
第１の予測値を用いた誤り検出処理において誤りが検出されなかった場合には（ステップＳ１４：誤り無）、第１〜第３の予測値を更新することなくステップＳ１２に戻り、次の無線フレームを待つ。
【００６７】
第１の予測値を用いた誤り検出処理において誤りが検出された場合には（ステップＳ１４：誤り）、ステップＳ４１においてその第１の予測値がレジスタｙに保持され、続いて、ステップＳ１５およびＳ１６において、第２の予測値を用いた誤り検出処理が実行される。このとき、第２の予測値を用いた誤り検出処理において誤りが検出されなかった場合には（ステップＳ１６：誤り無）、無線フレームに格納されている情報のビット数が第２の予測値に一致するものとみなし、ステップＳ４２に進む。
【００６８】
ステップＳ４２では、ステップＳ１６において使用した第２の予測値を、次の無線フレームのための第１の予測値として設定する。具体的には、記憶領域ｘ(1) に現在格納されている第２の予測値が、第１の予測値を格納するための記憶領域ｘ(0) に書き込まれ、また、レジスタｙに保持されている第１の予測値が、第２の予測値を格納するための記憶領域ｘ(1) に書き込まれる。
【００６９】
一方、第２の予測値を用いた誤り検出処理において誤りが検出された場合には（ステップＳ１６：誤り）、ステップＳ１７およびＳ１８において、第３の予測値を用いた誤り検出処理が実行される。このとき、第３の予測値を用いた誤り検出処理において誤りが検出されなければ（ステップＳ１８：誤り無）、無線フレームに格納されている情報のビット数が第３の予測値に一致するものとみなし、ステップＳ４３に進む。
【００７０】
ステップＳ４３では、ステップＳ１８において使用した第３の予測値を、次の無線フレームのための第１の予測値として設定する。具体的には、記憶領域ｘ(2) に現在格納されている第３の予測値が、第１の予測値を格納するための記憶領域ｘ(0) に書き込まれ、また、レジスタｙに保持されている第１の予測値が、第３の予測値を格納するための記憶領域ｘ(2) に書き込まれる。
【００７１】
なお、すべての誤り検出処理（ステップＳ１４、１６、１８）において誤りが検出された場合には、ステップＳ１９においてエラー処理を実行した後に、ステップＳ１１に戻る。すなわち、この第１の実施例では、受信した無線フレームに格納されている情報のビット数を検出できなかった場合には、次の無線フレームに対しては、初期設定を利用して誤り検出処理が実行される。
【００７２】
ここで、具体的なケースを示す。なお、以下では、制御部２３に設けられる第１の予測値を格納するための記憶領域ｘ(0) 、第２の予測値を格納するための記憶領域ｘ(1) 、第３の予測値を格納するための記憶領域ｘ(2) には、ステップＳ１１の処理により、それぞれ「５０ビット」「１００ビット」「２００ビット」が設定されているものとする。このときの記憶領域ｘ(0) 〜ｘ(2) の状態を図９Ａに示す。
【００７３】
ケース１：５０ビットの情報を格納するフレームを所定数連続して受信した後、１００ビットの情報を格納するフレームを連続して受信する場合
この場合、５０ビットの情報を格納するフレームを連続して受信している期間は、第１の予測値（５０ビット）を用いた誤り検出処理において誤りが検出されない。すなわち、ステップＳ１４において「誤り無」が検出され、ステップＳ１６およびＳ１８が実行されることはない。したがって、記憶領域ｘ(0) 〜ｘ(2) は更新されることはなく、図９Ａに示す状態が保持される。
【００７４】
続いて、１００ビットの情報を格納するフレームを受信すると、第２の予測値（１００ビット）を用いた誤り検出処理において誤りが検出されない。すなわち、ステップＳ１６において「誤り無」が検出され、ステップＳ４２が実行される。ステップＳ４２では、上述したように、第２の予測値として使用されていた値が記憶領域ｘ(0) に書き込まれ、第１の予測値として使用されていた値が記憶領域ｘ(1) に書き込まれる。この結果、記憶領域ｘ(0) 〜ｘ(2) は、図９Ｂに示す状態になる。
【００７５】
この後、１００ビットの情報を格納するフレームを連続して受信する期間は、第１の予測値（１００ビット）を用いた誤り検出処理において誤りが検出されない。すなわち、ステップＳ１４において「誤り無」が検出され、ステップＳ１６およびＳ１８が実行されることはない。したがって、記憶領域ｘ(0) 〜ｘ(2) は更新されることはなく、図９Ｂに示す状態が保持される。
【００７６】
ケース２：５０ビットの情報を格納するフレームを所定数連続して受信した後、２００ビットの情報を格納するフレームを連続して受信する場合
この場合、５０ビットの情報を格納するフレームを連続して受信している期間の動作はケース１と同じである。続いて、２００ビットの情報を格納するフレームを受信すると、第３の予測値（２００ビット）を用いた誤り検出処理において誤りが検出されない。すなわち、ステップＳ１８において「誤り無」が検出され、ステップＳ４３が実行される。ステップＳ４３では、上述したように、第３の予測値として使用されていた値が記憶領域ｘ(0) に書き込まれ、第１の予測値として使用されていた値が記憶領域ｘ(2) に書き込まれる。この結果、記憶領域ｘ(0) 〜ｘ(2) は、図９Ｃに示す状態になる。
【００７７】
この後、２００ビットの情報を格納するフレームを連続して受信する期間は、第１の予測値（２００ビット）を用いた誤り検出処理において誤りが検出されない。すなわち、ステップＳ１４において「誤り無」が検出され、ステップＳ１６およびＳ１８が実行されることはない。したがって、記憶領域ｘ(0) 〜ｘ(2) は更新されることはなく、図９Ｃに示す状態が保持される。
【００７８】
ここで、図１０を参照しながら、誤り検出処理について説明しておく。なお、図１０に示すフローチャートの処理は、ステップＳ１４、Ｓ１６、Ｓ１８の誤り検出処理に相当する。また、このフローチャートの処理は、図７に示すビタビ復号装置２４およびＣＲＣ誤り検出部２５により実行される。
【００７９】
ステップＳ５１では、制御部２３から与えられる予測値を取得する。具体的には、図１０に示すフローチャートがステップＳ１４として実行される場合には第１の予測値を取得し、ステップＳ１６として実行される場合には第２の予測値を取得し、ステップＳ１８として実行される場合には第３の予測値を取得する。
【００８０】
ステップＳ５２およびＳ５３では、ステップＳ５１で取得した予測値に対応するビット数のデータを受信フレームから再生／抽出し、そのデータに対してビタビ復号を実行する。ここで、「予測値に対応するビット数」は、例えば、図６を参照しながら説明した通りである。また、ビタビ復号処理は、ＡＣＳ（Add, Compare, and Select）演算を含み、例えば、トレリス線図を利用して最も尤もらしいパス（あるいは、最もエラーが少ないと思われるパス）を選択する処理である。なお、ビタビ復号については、既知の技術なので、詳細な説明を省略する。
【００８１】
ステップＳ５４では、ステップＳ５３で選択されたパスに基づいてデータ列を再生する。続いて、ステップＳ５５では、ステップＳ５４において得られたデータ列についてＣＲＣ演算を実行する。このＣＲＣ演算は、例えば、ステップＳ５４において得られたデータ列を所定の生成多項式で除算したときの余りが計算される。
【００８２】
ステップＳ５６では、上記ＣＲＣ演算の結果に基づいて誤りの有無が判断される。一般には、上記除算による余りが０（ゼロ）であれば「誤り無し」と判断され、０（ゼロ）以外であったときには「誤りあり」と判断される。そして、誤りが検出されたときは、ステップＳ５７においてその旨を表す信号を出力される。一方、誤りが検出されなかったときは、ステップＳ５８においてその旨を表す信号が出力される。
【００８３】
図１１は、本発明のＢＴＦＤアルゴリズムの第２の実施例のフローチャートである。第２の実施例も、第１の実施例と同様に、図３に示したアルゴリズムをベースにしている。
上述した第１の実施例では、受信した無線フレームに格納されている情報のビット数を検出できなかった場合には、エラー処理を実行した後、ステップＳ１１に戻る。これに対して、第２の実施例では、受信した無線フレームに格納されている情報のビット数を検出できなかった場合には、エラー処理を実行した後、ステップＳ１２に戻る。これにより、第２の実施例のアルゴリズムにおいては、直前のフレームに格納されていた情報のビット数を検出できなかった場合には、過去に検出したビット数のうちで最新のビット数が第１の予測値として使用されることになる。
【００８４】
図１２は、第１の実施例と第２の実施例を比較する図である。ここでは、第ｎフレーム〜第ｎ＋３フレームを受信した場合を想定する。また、第ｎフレームには５０ビットの情報が格納され、第ｎ＋１フレームには１００ビットの情報が格納されているものとする。さらに、第ｎ＋２フレームでは、伝送誤りの発生等によってそのフレームに格納されている情報のビット数を検出できなかったものとする。
【００８５】
図１２Ａは、図８に示す第１の実施例のアルゴリズムの動作を説明する図である。第１の実施例のアルゴリズムにおいては、まず、５０ビットの情報を格納する第ｎフレームを受信することにより、第１の予測値を格納する記憶領域ｘ(0) には「５０ビット」が書き込まれる。続いて、１００ビットの情報を格納する第ｎ＋１フレームを受信することにより、記憶領域ｘ(0) には「１００ビット」が書き込まれる。この後、第ｎ＋２フレームに格納されている情報のビット数を検出できなかったときは、図８に示すように、フローチャートのステップＳ１１の処理が実行される。この結果、記憶領域ｘ(0) には「５０ビット」が書き込まれることになる。そして、第ｎ＋３フレームを受信した際には、第１の予測値として「５０ビット」を使用した誤り検出処理が行われる。
【００８６】
図１２Ｂは、図１１に示す第２の実施例のアルゴリズムの動作を説明する図である。第２の実施例のアルゴリズムにおいて、第ｎフレームおよび第ｎ＋１フレームを受信した際の動作は、第１の実施例のときと同じである。すなわち、第ｎ＋１フレームを受信した後、記憶領域ｘ(0) には「１００ビット」が書き込まれている。この後、第ｎ＋２フレームに格納されている情報のビット数を検出できなかったときは、図１１に示すように、ステップＳ１１を実行することなくステップＳ１２に戻る。この結果、記憶領域ｘ(0) には「１００ビット」が書き込まれたままである。そして、第ｎ＋３フレームを受信した際には、第１の予測値として「１００ビット」を使用した誤り検出処理が行われる。
【００８７】
図１３は、本発明のＢＴＦＤアルゴリズムの第３の実施例のフローチャートである。この実施例は、図４に示したアルゴリズムをベースにしている。なお、図１３において使用するステップ番号のうち、図４において使用されているものは同じ処理を表す。
【００８８】
第３の実施例では、無線フレームに格納される情報のビット数ごとに検出頻度を調べ、最も検出頻度の高いものが第１の予測値として使用される。例えば、１００ビットの情報が頻繁に使用され、５０ビットの情報および２００ビットの情報があまり使用されな場合には、第１の予測値として「１００ビット」が設定され、無線フレームを受信した際には、そのフレームには１００ビットの情報が格納されているものと仮定して誤り検出処理が実行される。そして、その誤り検出処理において誤りが検出された場合に、第２、第３の予測値を用いた誤り検出処理が実行される。
【００８９】
具体的には、第３の実施例のアルゴリズムでは、図４のステップＳ３２（処理Ｂ）として、ステップＳ５４およびＳ５６が実行される。また、ステップＳ５４およびＳ５６を実行するためにステップＳ４１およびＳ５１が設けられている。ステップＳ４１は、ステップＳ１４において誤りが検出されたときに、その誤り検出処理で使用した第１の予測値をレジスタｙに保持しておく処理である。また、ステップＳ５１は、ステップＳ１６において誤りが検出されたときに、その誤り検出処理で使用した第２の予測値をレジスタｚに保持しておく処理である。さらに、ステップＳ５２、５３、５５は、受信した無線フレームに格納されている情報のビット数を検出した際に、その検出したビット数に対応するカウンタをインクリメントする処理である。
【００９０】
ステップＳ５４（処理Ｃ）では、下記の処理が実行される。
IF Counter (x(0)) < Counter (x(1))
Then x(0) = x(1),  x(1) = y
また、ステップＳ５６（処理Ｄ）では、下記の処理が実行される。
IF Counter (x(1)) < Counter (x(2))
Then x(1) = x(2),  x(2) = z
IF Counter (x(0)) < Counter (x(1))
Then x(0) = x(1),  x(1) = y
第３の実施例の動作について具体的な例を示す。以下では、カウンタ(50)、カウンタ(100)、カウンタ(200)、および記憶領域ｘ(0) 〜ｘ(2) が図１４Ａに示す状態である場合を想定する。
【００９１】
ケース１：図１４Ａに示す状態において、５０ビットの情報を格納するフレームを受信
この場合、受信フレームに格納されている情報のビット数と記憶領域ｘ(0) に格納されている第１の予測値とが一致するので（ステップＳ１４：誤り無し）、ステップＳ５２においてカウンタ(50)がインクリメントされる。この結果、各カウンタおよび各記憶領域は、図１４Ｂに示す状態に遷る。このとき、記憶領域ｘ(0) 〜ｘ(2) は、更新されない。
【００９２】
ケース２：図１４Ａに示す状態において、１００ビットの情報を格納するフレームを５個連続して受信
この場合、各受信フレームに格納されている情報のビット数と記憶領域ｘ(1) に格納されている第２の予測値とが一致するので（ステップＳ１６：誤り無し）、これらのフレームを受信するごとにステップＳ５３においてカウンタ(100)がインクリメントされる。この結果、各カウンタは、図１４Ｃに示す状態に遷る。続いて、ステップＳ５４において、カウンタ(50)とカウンタ(100)とが比較される。このとき、カウンタ(50)のカウント値よりもカウンタ(100)のカウント値の方が大きいので、第１の予測値を格納するための記憶領域ｘ(0) に「１００ビット」が書き込まれ、第２の予測値を格納するための記憶領域ｘ(1) に「５０ビット」が書き込まれる。この結果、各記憶領域は、図１４Ｃに示す状態に遷る。
【００９３】
ケース３：図１４Ａに示す状態において、２００ビットの情報を格納するフレームを１０個連続して受信
この場合、各受信フレームに格納されている情報のビット数と記憶領域ｘ(2) に格納されている第３の予測値とが一致するので（ステップＳ１８：誤り無し）、これらのフレームを受信するごとにステップＳ５５においてカウンタ(200)がインクリメントされる。この結果、各カウンタは、図１４Ｄに示す状態に遷る。続いて、ステップＳ５６において、まず、カウンタ(100)とカウンタ(200)とが比較される。このとき、カウンタ(100)のカウント値よりもカウンタ(200)のカウント値の方が大きいので、第２の予測値を格納するための記憶領域ｘ(1) に「２００ビット」が書き込まれ、第３の予測値を格納するための記憶領域ｘ(2) に「１００ビット」が書き込まれる。続いて、カウンタ(50)とカウンタ(100)とが比較される。このとき、カウンタ(50)のカウント値よりもカウンタ(100)のカウント値の方が大きいので、第１の予測値を格納するための記憶領域ｘ(0) に「２００ビット」が書き込まれ、第２の予測値を格納するための記憶領域ｘ(1) に「５０ビット」が書き込まれる。この結果、各記憶領域は、図１４Ｄに示す状態に遷る。
【００９４】
上述のようにして記憶領域ｘ(0) 〜ｘ(2) が更新されると、以降、その更新された内容に従って誤り検出処理が実行される。
このように、第３の実施例のアルゴリズムでは、５０ビットの情報、１００ビットの情報、２００ビットの情報の検出頻度に従って、誤り検出処理において使用される予測値の順番が決定される。
【００９５】
図１５は、本発明のＢＴＦＤアルゴリズムの第４の実施例のフローチャートである。第４の実施例のアルゴリズムは、基本的に、第２の実施例および第３の実施例のコンセプトを組み合わせることにより実現される。すなわち、第４の実施例のアルゴリズムでは、前回のフレームに格納されていた情報のビット数と当該フレームに格納されている情報のビット数とが同じであるものと仮定して誤り検出処理を実行し、その処理において誤りが検出されたときに、過去の検出頻度に応じて以降の予測値が決定される。
【００９６】
上記動作を実現するために、受信フレームに格納されている情報のビット数を検出すると、その都度、対応するカウンタがインクリメントされる（ステップＳ５２、Ｓ５３、Ｓ５５）。このとき、第１の予測値を用いた誤り検出処理により情報のビット数が検出された場合には、次のフレームのための第１〜第３の予測値は変更されない。また、第２の予測値を用いた誤り検出処理により情報のビット数が検出された場合には、ステップＳ４２を実行することにより、次のフレームための第１の予測値として、上記検出されたビット数が設定される。さらに、第３の予測値を用いた誤り検出処理により情報のビット数が検出された場合には、ステップＳ５７が実行される。ステップＳ５７では、下記の処理が実行される。
x(0) = x(2)
IF Counter (x(1)) > Counter (x(2))
Then x(1) = y,  x(2) = z
Else x(1) = z,  x(2) = y
すなわち、ステップＳ５７では、まず、次のフレームための第１の予測値として、当該フレームにおいて検出されたビット数が設定される。また、第２および第３の予測値は、過去の使用頻度に従って決定される。
【００９７】
上述のように、本発明のＢＴＦＤアルゴリズムでは、直前のあるいは過去のフレームに格納されていた情報のビット数に従って、当該フレームに格納されている情報のビット数を予測し、その予測値を用いて当該フレームに格納されている情報のビット数を検出する。したがって、各フレームに格納される情報のビット数に関して一定の傾向が存在する通信システムにおいては、上記予測がヒットする確率が高くなり、誤り検出回数の実行回数が減少する。これにより、受信装置において情報を取得するための処理時間が短くなり、受信装置の消費電力が少なくなる。
【００９８】
ところで、上記実施例のＢＴＦＤアルゴリズムでは、同じビット数の情報が連続して伝送される場合、あるいは、特定のビット数の情報が伝送される頻度が高い場合に効率が高くなる。したがって、もし、送信装置によってそのようなデータ伝送が実現されれば、受信装置におけるＢＴＦＤの効率はさらに向上することが期待される。
【００９９】
図１６は、送信装置の動作の第１の実施例のフローチャートである。このフローチャートの処理は、受信装置において図８に示したアルゴリズムが実行される場合に実行される。
【０１００】
ステップＳ６１では、第１の選択値（x(0)）、第２の選択値（x(1)）、第３の選択値（x(2)）についての初期設定が行われる。図１６では、第１〜第３の選択値として、「５０ビット」「１００ビット」「２００ビット」が設定されている。
【０１０１】
ステップＳ６２では、第１の選択値に対応するバッファに情報が格納されているか否かを調べる。そして、第１の選択値に対応するバッファに情報が格納されている場合には、ステップＳ６３において、そのバッファから情報を読み出して出力する。一方、格納されていない場合には、ステップＳ６４において、その第１の選択値をレジスタｙに保持する。
【０１０２】
ステップＳ６５では、第２の選択値に対応するバッファに情報が格納されているか否かを調べる。そして、第２の選択値に対応するバッファに情報が格納されている場合には、ステップＳ６６において、そのバッファから情報を読み出して出力する。また、ステップＳ６７において、当該選択処理において使用した第２の選択値を、次の処理のための第１の選択値として設定する。
【０１０３】
同様に、ステップＳ６８では、第３の選択値に対応するバッファに情報が格納されているか否かを調べる。そして、第３の選択値に対応するバッファに情報が格納されている場合には、ステップＳ６９において、そのバッファから情報を読み出して出力する。また、ステップＳ７０において、当該選択処理において使用した第３の選択値を、次の処理のための第１の選択値として設定する。
【０１０４】
なお、いずれのバッファにも情報が格納されていなかった場合には、ステップＳ６１を実行することにより、第１〜第３の選択値を初期設定に戻す。
上記手順により、同じビット数の情報が可能な限り連続的に送出されることになる。
【０１０５】
図１７は、送信装置の動作の第２の実施例のフローチャートである。このフローチャートの処理は、受信装置において図１１に示したアルゴリズムが実行される場合に実行される。なお、この実施例では、いずれのバッファにも情報が格納されていなかった場合には、ステップＳ６１を実行することなくステップＳ６２に戻る。したがって、第１〜第３の選択値は初期化されない。
【０１０６】
図１８は、送信装置の動作の第３の実施例のフローチャートである。このフローチャートの処理は、受信装置において図１３に示したアルゴリズムが実行される場合に実行される。
【０１０７】
この実施例の方法では、ビット数ごとに送信頻度をモニタしておき、送信頻度の高いビット数の情報を優先的に送出する。この動作を実現するために、送信装置が情報を送出するごとに、その情報のビット数に対応するカウンタがカウントアップされる（ステップＳ８３、Ｓ８４、Ｓ８６）。また、第２の選択値に従って情報を送信した場合にはステップＳ８５（処理Ｆ）が実行され、第３の選択値に従って情報を送信した場合にはステップＳ８７（処理Ｇ）が実行される。
【０１０８】
処理Ｆは、基本的に、図１３に示した処理Ｃと同じである。また、処理Ｇは、基本的に、図１３に示した処理Ｄと同じである。ただし、処理Ｃおよび処理Ｄでは、誤り検出処理において使用する予測値を更新していたが、処理Ｆおよび処理Ｇでは、バッファから情報を選択するために使用する選択値を更新する。
【０１０９】
図１９は、送信装置の動作の第４の実施例のフローチャートである。このフローチャートの処理は、受信装置において図１５に示したアルゴリズムが実行される場合に実行される。
【０１１０】
この実施例の方法では、可能な限り同じビット数の情報を連続して送出し、それが出来なくなったときに、送信頻度の高いビット数の情報を優先的に送出する。この動作を実現するために、第２の選択値に従って情報を送信した場合にはステップＳ９１が実行され、第３の選択値に従って情報を送信した場合にはステップＳ９２（処理Ｈ）が実行される。
【０１１１】
ステップＳ９１は、基本的に、図１５に示したステップＳ４２の処理と同じである。また、処理Ｈは、基本的に、図１５に示した処理Ｅと同じである。ただし、ステップＳ４２および処理Ｅでは、誤り検出処理において使用する予測値を更新していたが、ステップＳ９１および処理Ｈでは、バッファから情報を選択するために使用する選択値を更新する。
【０１１２】
このように、本実施例の通信システムでは、送信装置においてビット数を選択する手順と、受信装置においてビット数を予測する手順とを同じにすることができるので、受信装置においてフレームに格納されている情報のビット数の予測がヒットする確率がより高くなる。この結果、受信装置において誤り検出処理を実行する回数が減少し、受信装置の消費電力も少なくなる。
【０１１３】
次に、本発明のＢＴＦＤアルゴリズムをＷ−ＣＤＭＡに適用する場合の実施例を示す。
Ｗ−ＣＤＭＡにおいて標準化されている規格では、下記の３つの通信についてＢＴＦＤを適用することができるようになっている。
【０１１４】
上り通信
下り通信（DTX indication with Fix position）
下り通信（DTX indication with Flexible position）
なお、「上り通信」は、移動局から基地局または交換局への信号伝送を意味し、「下り通信」は、基地局または交換局から移動局への信号伝送を意味する。
【０１１５】
上記３つの通信の中で、本発明を適用することが容易かつ現実的と考えられるのは、下り通信（DTX indication with Fix position）である。したがって、ここでは、本発明をＷ−ＣＤＭＡの下り通信（DTX indication with Fix position）に適用する実施例を示す。また、以下の実施例では、音声データを伝送する場合を想定する。
【０１１６】
音声データは、図２０に示す９つの通信モードの中の任意のモードにより伝送されるものとする。なお、通信モードは、伝送すべき音声データの量に応じてダイナミックに切り換えられる。例えば、送信端末のユーザが喋っている期間は、伝送すべき情報の量が多いので、その期間は「AMR 12.2」により音声データが伝送される。一方、例えば、送信端末のユーザが黙っている期間は、音声データを伝送する必要がないので、「SID-UPDATE」により音声データが伝送される。「SID-UPDATE」は、背景雑音を表す信号であり、定期的に更新される。
【０１１７】
各通信モードは、それぞれクラスＡ〜クラスＣの情報を伝送する。クラスＡの情報は、最も優先度の高い情報であり、いくつかの例外を除いてすべての通信において必要とされる。クラスＢの情報は、クラスＡの次に優先度の高い情報であり、音声データを伝送する際に必要である。クラスＣの情報は、優先度の低い情報であり、音声の品質を向上させるために使用される。
【０１１８】
各クラスの情報は、図２０に示すように、それぞれ通信モード毎に決められた所定のビット数に分割されて伝送される。例えば、「AMR 12.2」では、クラスＡの情報は８１ビットごとに分割され、クラスＢの情報は１０３ビットごとに分割され、クラスＣの情報は６０ビットごとに分割される。
【０１１９】
次に、図２１〜図２３を参照しながら、送信装置の動作を説明する。図２１は、「AMR 12.2」によって伝送される情報の分解・組立を説明する図である。送信装置は、「AMR 12.2」により音声データを送信する際には、まず、８１ビットのクラスＡデータ、１０３ビットのクラスＢデータ、および６０ビットのクラスＣデータを取得する。このとき、優先度の高いクラスＡデータに対しては１２ビットのＣＲＣが付加される。そして、各クラスのデータ（クラスＡでは、ＣＲＣが付加された後のデータ）は、それぞれ８ビットのTailビットが付与された後、それぞれ符号化される。ここで、この符号は、畳み込み符号である。また、クラスＡおよびクラスＢにおける符号化率は１：３であり、クラスＣにおける符号化率は１：２である。
【０１２０】
この後、各クラスの符号化データに対して、必要に応じて、レートマッチング処理およびＤＴＸ付加処理が行われる。これらの処理は、各クラスのデータのビット数を予め決められた値（クラスＡ：２９２ビット、クラスＢ：３２２ビット、クラスＣ：１３２ビット）にするための処理である。さらに、各クラスごとにインターリーブ処理が行われる。インターリーブ処理とは、所定の規則に従ってビットを並べ替える処理（ランダム化処理）を意味する。そして、各クラスのデータは、それぞれ予め決められたビット数ごとに分割（Segmentation）される。
【０１２１】
図２２は、制御データの分解・組立を説明する図である。制御データを処理する手順は、基本的に、音声データを処理する手順と同じなので、その説明を省略する。ただし、制御データを処理する手順では、１つの制御データブロックから４つのデータブロックが生成される。
【０１２２】
図２３は、「AMR 12.2」および制御データにおける無線フレームの分解・組立を説明する図である。図２１に示した音声データおよび図２２に示した制御データは、２：１の比率で多重化される。そして、この多重化により、４個のデータブロックが生成される。ここで、各データブロックは、それぞれ各クラスのデータおよび制御データを含んでいる。
【０１２３】
上記各データブロックは、インターリーブ処理が行われた後、１５個のブロックに分割されて無線フレーム内の対応するスロットに格納される。
無線フレームは、図２４に示すように、１５個のスロットから構成されている。そして、各スロットは、データ領域、ＴＰＣ領域、ＴＦＣＩ領域、パイロット信号領域から構成される。データ領域は、図２１〜図２３に示した処理により得られたデータを格納する。ＴＰＣ（Transmit Power Control）領域は、送信パワーを指示する情報を格納する。ＴＦＣＩ（Transport Format Combination Indicator）領域は、当該スロット内に格納されているデータのビット数、または通信モードを表す情報等を格納することができる。なお、この実施例では、各スロットに格納するデータの量をできるだけ多くするために、即ちできるだけオーバヘッドを小さくするために、ＴＦＣＩ領域は削除されているものとする。そして、パイロット信号領域は、同期制御のためのパイロット信号が設定される。
【０１２４】
このように、送信装置は、「AMR 12.2」により音声データを送出する際には、図２１〜図２４に示す手順により無線フレームを作成し、それらの無線フレームを、順次、出力していく。
【０１２５】
図２５および図２６は、「SID-UPDATE」における無線フレームの分解・組立を説明する図である。「SID-UPDATE」は、例えば端末装置のユーザが黙っている期間に選択される通信モードである。
【０１２６】
「SID-UPDATE」においては、音声データとしては、３５ビットのクラスＡデータのみが伝送される。なお、制御データについては、基本的に「AMR 12.2」におけるそれと同じなので、説明を省略する。
【０１２７】
上記３５ビットのクラスＡデータは、ＣＲＣおよびTailビットが付加された後、符号化される。この符号化により、データのビット数は、「１６５」になっている。続いて、レートマッチング処理およびＤＴＸ付加処理では、上記符号化データから所定数のビットを付加／削除し、また、ＤＴＸを付加することにより、２９２ビットのデータブロックが生成される。この後、インターリーブ処理および分割処理が行われる。
【０１２８】
図２５の手順により処理された音声データは、図２６に示すように、制御データといっしょに無線フレームに格納される。この組立手順は、図２３を参照しながら説明した通りである。ただし、「SID-UPDATE」においては、クラスＢデータおよびクラスＣデータが存在しないので、クラスＢデータおよびクラスＣデータを格納するための領域は、ＤＴＸにより満たされる。
【０１２９】
上述のように、送信装置は、通信モードを時々刻々と変化させながら音声データを送出することができる。この実施例では、９つの通信モードが提供されている。そして、送信装置から受信装置へ伝送される情報の量は、通信モードごとに異なっている。例えば、「AMR 12.2」では、無線フレーム毎に８１ビットのクラスＡデータが伝送されるのに対し、「SID-UPDATE」では、無線フレーム毎に３５ビットのクラスＡデータが伝送される。
【０１３０】
ところが、送信装置から受信装置へ無線フレームを伝送する際、送信装置により選択された通信モードあるいは各クラスごとの情報のビット数は、受信装置には通知されない。なお、図２４に示した無線フレームにおいて、ＴＦＣＩ領域を使用すれば上記通知を行うことは可能であるが、この実施例では、オーバヘッドを出来るだけ小さくするためにＴＦＣＩ領域を使用しないことを前提としているので、受信装置は上記通知を受け取ることはない。したがって、受信装置は、無線フレームを受信すると、そのフレームに格納されている各クラス毎に情報のビット数を検出する必要がある。以下、図２０〜図２６を参照しながら、受信装置の動作を説明する。
【０１３１】
受信装置は、無線フレームを受信すると、図２１〜図２４に示した送信装置における組立手順を逆方向に実行していく。すなわち、無線フレームに格納されているデータを各クラスごとに互いに分離し、各クラスごとに逆インターリーブ処理を行う。これにより、例えば、図２１または図２５の上から４番目の状態が得られる。但し、ＤＴＸの削除は行っていないため、ここでのビット数は最大ビット数である「３０３」である。
【０１３２】
この後、受信装置は、本発明のＢＴＦＤアルゴリズムを利用して、クラスＡの情報のビット数を検出する。ここで、この実施例のシステムでは、図２０に示すように、９つの通信モードがされている。そして、無線フレームに格納されているクラスＡの情報のビット数は、「８１」「６５」「７５」「６１」「５８」「５５」「４９」「４２」または「３５」のいずれかである。したがって、受信装置は、これらのビット数に対応する第１〜第９の予測値を利用して誤り検出処理を実行することにより、クラスＡの情報のビット数を検出す。なお、クラスＢおよびクラスＣの情報のビット数は、図２０に示すように、クラスＡの情報のビット数に一意に対応している。このため、クラスＢおよびクラスＣの情報のビット数は、クラスＡの情報のビット数を検出することにより一意に認識できる。
【０１３３】
実施例を示す。ここでは、第１の予測値として、「８１ビット」が設定されているものとする。なお、受信装置は、予測値として「８１ビット」を用いて誤り検出処理を実行する際は、音声データが送信装置において「AMR 12.2」により符号化されているものと仮定して復号処理を行う。すなわち、この場合、図２３に示すように、「ＤＴＸ＝０」および「レートマッチングにより調整されたビット数＝１１」と仮定して３０３ビットのデータ列を生成し、そのデータ列に対して復号処理を実行する。そして、その復号結果から８ビットを削除することによって得られる９３ビットについてＣＲＣ演算を実行する。
【０１３４】
このＣＲＣ演算において誤りが検出されなければ、上記９３ビットからＣＲＣを削除することによって得られる８１ビットを、クラスＡの情報として出力する。なお、クラスＡの情報が８１ビットである場合には、クラスＢの情報およびクラスＣの情報は、それぞれ「１０３ビット」および「６０ビット」であることが一意に認識される。したがって、クラスＢについては、送信装置において１０３ビットの情報が符号化されたものと仮定して復号処理を実行することにより、その１０３ビットの情報が再生される。また、クラスＣについては、送信装置において６０ビットの情報が符号化されたものと仮定して復号処理を実行することにより、その６０ビットの情報が再生される。
【０１３５】
一方、上記９３ビットについてのＣＲＣ演算の結果、誤りが検出された場合には、第２の予測値を用いて上記処理を繰り返す。ここでは、第２の予測値として、「３５ビット」が設定されているものとする。なお、受信装置は、予測値として「３５ビット」を用いて誤り検出処理を実行する際は、音声データが送信装置において「SID-UPDATE」により符号化されているものと仮定して復号処理を行う。すなわち、この場合、図２５に示すように、所定ビット数のＤＴＸを削除すると共に送信装置におけるレートマッチング処理に対応する処理を行うことにより１６５ビットのデータ列を生成する。そして、そのデータ列に対して復号処理を実行した後に、その復号結果から８ビットを削除する。そして、これにより得られる４７ビットについてＣＲＣ演算を実行する。
【０１３６】
このＣＲＣ演算において誤りが検出されなければ、上記４７ビットからＣＲＣを削除することによって得られる３５ビットを、クラスＡの情報として出力する。なお、クラスＡの情報が３５ビットである場合には、クラスＢの情報およびクラスＣの情報は、存在しない。
【０１３７】
上記４７ビットについてのＣＲＣ演算の結果、誤りが検出された場合には、以降、無線フレームに格納されているクラスＡの情報のビット数を検出できるまで、第３、第４、第５、．．．の予測値を用いて上記処理を繰り返す。
【０１３８】
上記実施例において、第１〜第９の予測値は、本発明のアルゴリズムにより決定される。例えば、図３に示したアルゴリズムによれば、受信フレームからクラスＡの情報を取り出したとき、その情報のビット数が、次のフレームのための第１の予測値として設定される。また、図４に示したアルゴリズムによれば、クラスＡの情報のビット数ごとにその検出頻度の統計を求めておき、その検出頻度に基づいて第１〜第９の予測値が決定される。
【０１３９】
なお、上記実施例では、本発明のＢＴＦＤアルゴリズムを利用してクラスＡの情報のビット数を検出しているが、クラスＡの情報のビット数を検出すれば、対応する通信モードを一意に認識できる。すなわち、上記実施例では、実質的に、ＢＴＦＤアルゴリズムを利用して通信モードまたはその通信モードにおいて規定されている伝送フォーマットが検出されている。
【０１４０】
また、本発明のＢＴＦＤアルゴリズムとして、第１〜第４の実施例を示したが、本発明はこれらに限定されるものではない。すなわち、例えば、受信フレームに格納されている情報のビット数を検出する際、前回のフレームにおいて検出されたビット数を用いてＣＲＣ演算を実行し、そのＣＲＣ演算において誤りが検出されたときに上述の「3G TS 25.212 version 3.1.0」に記載されているＢＴＦＤアルゴリズムを実行するようにしてもよい。また、例えば、第１の実施例のアルゴリズムを実行している期間、誤り検出処理の平均実行回数をモニタしてゆき、その平均値が所定値以上であったときに第２〜第４の実施例のアルゴリズムに自動的に切り換えるようにしてもよい。
【０１４１】
また、上述の実施例では、ＣＤＭＡを採り上げたが、本発明は、これに限定されるものではない。本発明は、情報を格納するフレームを伝送する通信システムにおいて、そのフレームに格納されている情報のビット数、あるいはそのフレームの伝送フォーマットを検出する方法に広く適用可能である。
【図面の簡単な説明】
【０１４２】
【図１】ＢＴＦＤにおいて使用される伝送フレームのフォーマットの例である。
【図２】既存のＢＴＦＤの一般的なアルゴリズムを説明するフローチャートである。
【図３】本発明のＢＴＦＤアルゴリズムを示すフローチャートである。
【図４】本発明の他の態様のＢＴＦＤアルゴリズムを示すフローチャートである。
【図５】本発明が適用される通信システムにおいて使用される送信装置のブロック図である。
【図６】図５に示す送信装置により生成される無線フレームの例である。
【図７】本発明が適用される通信システムにおいて使用される受信装置のブロック図である。
【図８】本発明のＢＴＦＤアルゴリズムの第１の実施例のフローチャートである。
【図９】予測値を格納する記憶領域の状態を示す図である。
【図１０】誤り検出処理のフローチャートである。
【図１１】本発明のＢＴＦＤアルゴリズムの第２の実施例のフローチャートである。
【図１２】第１の実施例および第２の実施例を比較する図である。
【図１３】本発明のＢＴＦＤアルゴリズムの第３の実施例のフローチャートである。
【図１４】第３の実施例のアルゴリズムを説明する図である。
【図１５】本発明のＢＴＦＤアルゴリズムの第４の実施例のフローチャートである。
【図１６】送信装置の動作の第１の実施例のフローチャートである。
【図１７】送信装置の動作の第２の実施例のフローチャートである。
【図１８】送信装置の動作の第３の実施例のフローチャートである。
【図１９】送信装置の動作の第４の実施例のフローチャートである。
【図２０】Ｗ−ＣＤＭＡにおいて使用される通信モードを説明する図である。
【図２１】「AMR 12.2」によって伝送される情報の分解・組立を説明する図である。
【図２２】制御データの分解・組立を説明する図である。
【図２３】「AMR 12.2」と制御データにおける無線フレームの分解・組立を説明する図である。
【図２４】無線フレームの構成を説明する図である。
【図２５】「SID-UPDATE」によって伝送される情報の分解・組立を説明する図である。
【図２６】「SID-UPDATE」と制御データにおける無線フレームの分解・組立を説明する図である。
【図１】
0004350371.tif 000002
【図２】
0004350371.tif 000003
【図３】
0004350371.tif 000004
【図４】
0004350371.tif 000005
【図５】
0004350371.tif 000006
【図６】
0004350371.tif 000007
【図７】
0004350371.tif 000008
【図８】
0004350371.tif 000009
【図９Ａ】
0004350371.tif 000010
【図９Ｂ】
0004350371.tif 000011
【図９Ｃ】
0004350371.tif 000012
【図１０】
0004350371.tif 000013
【図１１】
0004350371.tif 000014
【図１２Ａ】
0004350371.tif 000015
【図１２Ｂ】
0004350371.tif 000016
【図１３】
0004350371.tif 000017
【図１４Ａ】
0004350371.tif 000018
【図１４Ｂ】
0004350371.tif 000019
【図１４Ｃ】
0004350371.tif 000020
【図１４Ｄ】
0004350371.tif 000021
【図１５】
0004350371.tif 000022
【図１６】
0004350371.tif 000023
【図１７】
0004350371.tif 000024
【図１８】
0004350371.tif 000025
【図１９】
0004350371.tif 000026
【図２０】
0004350371.tif 000027
【図２１】
0004350371.tif 000028
【図２２】
0004350371.tif 000029
【図２３】
0004350371.tif 000030
【図２４】
0004350371.tif 000031
【図２５】
0004350371.tif 000032
【図２６】
0004350371.tif 000033