(57)【特許請求の範囲】
【請求項１】
初期メッセージを変換し、この変換されたメッセージにスタッフィングビットを挿入することにより生成された訂正すべきメッセージを訂正するための方法であって、前記方法は、訂正すべき前記メッセージを含む観察シーケンスを提供するステップと、ノードおよび分岐を含む、トレリスを横切る複数の経路推定を構築するステップを備え、前記分岐は、前記ノード間の可能な遷移を表示しており、
更に前記シンボルの観察シーケンスに関する、前記経路推定から最も起こり得る経路推定を選択するステップを含む、訂正すべきメッセージを訂正するための方法において、
前記トレリスにおいて、前記ノードの各々は、前記初期メッセージの前記変換を実行する可能性が高い有限ステートマシンのステートを表示し、
前記分岐は、スタッフィングビットがある場合にしか行うことができない条件付き遷移を示す分岐を含み、
経路推定を構築しながら、スタッフィングビットを検出し、これらスタッフィングビットに関連する分岐を作成することを特徴とするメッセージを訂正する方法。
【請求項２】
前記トレリスを横切る前記複数の経路推定の構築および選択は、ビタルビアルゴリズムまたはＳＯＶＡアルゴリズムに基づくことを特徴とする、請求項１記載の方法。
【請求項３】
前記初期メッセージの前記変換は、前記変換されたメッセージを生成するよう前記初期メッセージと組み合わされた巡回冗長チェックブロックを計算することを含み、前記ノードの各々は、巡回冗長チェックブロックを計算した可能性の高い計算器のステートを示す請求項１または２記載の方法。
【請求項４】
経路推定が構築されるにつれ、スタッフィングビットの挿入を実行する条件が満たされた場合に、スタッフィングビットを検出されたとみなす、請求項１〜３のいずれか１項に記載の方法。
【請求項５】
各経路推定には、１つのステート変数が関連しており、前記経路推定の既に構築された経路に応じて前記経路推定が構築されるにつれ、前記ステート変数は更新され、スタッフィングビットの挿入条件が満たされているかどうかを判断するよう前記ステート変数はモニターされている、請求項４記載の方法。
【請求項６】
各経路推定に対し、前記ステート変数は、同じ値の連続するビットの数を示す請求項５記載の方法。
【請求項７】
前記初期メッセージの前記変換は、前記変換されたメッセージを生成するために前記初期メッセージと組み合わされた巡回冗長チェックブロックの計算を含み、
スタッフィングビットの挿入後変換されたメッセージをコード化することによって生成されたシンボルのシーケンスをデコードすることによって訂正すべきメッセージを得るようになっており、前記トレリスを横切る前記経路の選択は、前記デコードの一部であり、
前記トレリスのノードは、少なくとも前記コード化を実行した可能性が高いコード化器のステートの集合と巡回冗長チェックブロックを計算した可能性の高い計算器のステートの集合との直積の要素を示し、
第１エンコーダステートおよび第１計算器ステートに対応する第１ノードから第２エンコーダステートおよび第２計算器ステートに対応する第２ノードへの遷移は、
変換されたメッセージのビットの存在下で、
-  第１エンコーダステートにあるエンコーダに変換されたメッセージのこのビットを印加する際に、前記エンコーダが前記第２エンコーダステートに遷移した場合および
-  第１計算器ステートにある計算器に変換されたメッセージのこのビットを印加する際に、前記計算器が前記第２計算器ステートに遷移した場合
または、
スタッフィングビットの存在下で、
-  第２エンコーダステートにあるエンコーダに変換されたメッセージのこのビットを印加する際に、
前記エンコーダが前記第２エンコーダステートに遷移し、
-  前記第１計算器ステートが前記第２計算器ステートに等しい場合に可能である請求項１〜６のいずれか１項記載の方法。
【請求項８】
前記観察シーケンスは、例えば、衛星、特に低地球軌道衛星によってＡＩＳ信号から得たものである請求項１〜７のいずれか１項に記載の方法。
【請求項９】
前記観察シーケンスは、同時または時間的に重なる複数のＡＩＳ信号から得たものである請求項８記載の方法。
【請求項１０】
コンピュータによってコンピュータプログラムを実行する際に請求項１〜９のうちいずれか１項記載の方法を実行させる命令を含むコンピュータプログラム。
【請求項１１】
請求項１〜９のうちいずれか１項に記載の方法を実行することになっているデコーダ。
【発明の詳細な説明】
【発明の分野】
【０００１】
本発明は、スタッフィングビット（バイナリー要素）を含むメッセージを訂正するための方法に関する。
【背景技術】
【０００２】
図1は、従来の伝送連鎖図を示す。第1ステップ１２では、巡回冗長チェック（CRC）のブロックを計算するため送信すべきメッセージ（オリジナルメッセージ）１０が、使用される。一般的に、冗長性を追加することにより、伝送誤りを検出するためにCRC技術が、使用される。（メッセージと冗長ブロックのバイナリーシーケンスを連結することによって）オリジナルメッセージに冗長ブロックが、添付される。以下、冗長ブロックの添付によりまたは別の予備的変換によって得られたメッセージを「変換メッセージ」と称し、このメッセージとオリジナルメッセージとを区別する。本明細書に関連し、オリジナルメッセージを、情報メッセージまたはバイナリ形式で表示できる任意の別のメッセージとすることができる。
【０００３】
CRCブロックは、オリジナルメッセージのハッシュによって得られた所定長さのバイナリーシーケンスである。所定長さのオリジナルメッセージで計算された長さnのＣＲＣブロックによって、nおよび、より長いすべてのバースト誤りの1-2-nの何分の1かを超えない長さを有する、バースト誤りを検出することが可能となる。 CRCブロックは、多項式のモジュロ2除算をすることによって計算される。この目的のため、メッセージの多項式（以下M（x）と表示）が、オリジナルメッセージに関連付けされる。 CRCブロックは、次数n + 1の生成多項式(G(x)と表示)によりM（x）・xn＋１のM（x）の剰余R（x）に対応し、除算の商を無視することができる。剰余R(x)は、G（x）−1、例えばnの次数を超えることはできない。必要であれば、固定長のCRCブロックを作成するよう0値のビットを剰余R(x)に加える。ブロックCRCを計算するために、特に線形フィードバックシフトレジスタを使用できる。 CRCブロックが添付されているオリジナルメッセージによって形成されたデータパケットを コードワードと称すことが時々ある。
【０００４】
次のステップ１４では、情報も冗長性も示さないスタッフィングビットまたはスタッフされたビットを変換されたメッセージ内に挿入する。これらスタッフィングビットは、同じ値の連続ビットの数を制限したり、相補的遷移（transition）を導入したりするのに一般に使用される。相補的遷移は、受信機レベルでの同期上の問題を低減したり、特定の意味を有するバイナリーシーケンス（例えば、制御シーケンス）が発生することを防止するのに役立つ。ＨＤＬＣ（ハイレベルデータリンク制御の接頭略語）は、時間フレームのエンド（ＨＤＬＣの場合は、バイナリーシーケンス０１１１１１１０に対応）に対するフラグの出現を防止するのにスタッフィングビットを使用している。ＨＤＬＣプロトコルによれば、値１が５回連続するシーケンスのあとに０ビットが挿入され、メッセージの中間で時間フレームエンドのためのフラグが発生しないことを保証している。このことは、図３に示されている。これらスタッフィングビットは、当該プロトコルの仕様に応じて、値１および／または０と成り得る。ＨＤＬＣまたはＡＩＳ（自動識別システムの接頭略字）の場合、スタッフィングビットは、常に値０とビットとなる。スタッフィングビットを挿入する概念と所定長さのバイナリーシーケンスに達するためにビットを挿入することからなる付け足し（padding）の概念とを混同すべきでないことにも注目されたい。
【０００５】
次に伝送チャンネル１８により伝送する目的のための信号を（変調ステップ１６）変調するためにスタッフされたメッセージが使用される。この変調ステップ１６の前にチャンネルコード化（図１には示されず）が先行することも可能である。
【０００６】
受信機側では、送信信号は、（復調ステップ２０）で復調し、必要であれば、デコードスル。オリジナルメッセージ（情報ビット）を復旧するために、スタッフィングビットを除去する（ステップ２２）。伝送誤りを検出および/または訂正するために、受信機は、検証/訂正されたメッセージ、また訂正が不可能である場合には誤りメッセージをレリースする（ステップ２６）前にステップ２４で送信されたメッセージのＣＲＣを検証する。ＣＲＣを検証するための別の方法も知られている。これらの方法の一つとして、情報ビットの受信シーケンスでＣＲＣを計算し、それと送信されるメッセージのＣＲＣとを比較することからなる方法がある。より容易にハードウェアで実行することができる方法として、ＣＲＣに続くメッセージから成るバイナリーシーケンスのＣＲＣがゼロであり、次のように表すことができるというプロパティを使用する方法もある。
CRC（[data,CRC(data)]）＝０
ここで、CRC(.)は、CRCの計算結果を示し、[.,.]は、2つのバイナリーシーケンスの連結を示す。したがって、この方法で送信されるメッセージのCRCは、（すなわち、情報ビットおよびデコードから得られた冗長ビットの集合で）計算する。結果が0である場合、メッセージが正常に送信されたと考える。誤りビットの位置の検出を可能にする別の方法も存在する。このタイプの方法は、特に次の論文、B.マクダニエル著、巡回冗長チェックの誤り訂正アルゴリズム、C / C + +ユーザージャーナル、2003年６頁に記載されている。この方法の発展により、いくつかの誤りビットの検出が可能となった（例えば、S. Babaie、A.K  Ｚadeh、S.H.Es-hagi,  N.J.Nvimipour、「CRC法を用いたダブルビット誤り訂正」セマンティクスと知識とグリッドに関する国際会議、第5号、254-257ページ、2009年およびC. Shi-yiおよびL.Yu-bai著、信頼宣言に基づく誤り訂正巡回冗長チェック、ITS通信議事録、第6号511〜514ページ、2006年を参照）。しかしながら、これらすべての方法は、これら方法を実施する前に受信されたメッセージからスタッフィングビットが除去されることを前提にするので、このことは実用的な条件では意義を大幅に低減している。
【０００７】
図２は、スタッフィングビットが挿入された後で、変換メッセージがステップ１５でトレリス（trellis）コード化されているという点で図１と異なる従来の伝送連鎖図を示す。受信機側では、例えば、ビタルビアルゴリズムにより（復調ステップ２０）で送信信号は、復調される。スタッフィングビットは、デコード後であって、ＣＲＣの検証前に除去される。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明の１つの目的は、スタッフィングビットが存在していても実施可能なメッセージ訂正方法を提案することにある。
【課題を解決するための手段】
【０００９】
本発明に係わる方法は、メッセージ（訂正すべきメッセージ）に対して実施でき、このメッセージの生成は、オリジナルメッセージの変換と、スタッフィングビットを変化されたメッセージに挿入することに関与する。
【００１０】
この変換は、特にＣＲＣブロックの計算と、このブロックをオリジナルメッセージに組み込むことを含むことができる。
【００１１】
この方法は、訂正すべきメッセージを含む観察シーケンスを（例えば、復調器の出力で）発生することを含む。トレリスがノードおよび分岐を含むという意味で変換に関連するトレリスを横切る（across）ように複数の経路推定（path  hypothesis）を構築し、この場合、各ノードは、オリジナルメッセージを変換できる有限ステートマシンのステートを示し、分岐は、ノード間の可能な遷移を示す。第１ステートにある有限ステートマシンの入力に値０のビットまたは値１のビットを印加すると、マシンが第１ステートに遷移した場合、有限ステートマシンの第１ステートを示す第１ノードと有限ステートマシンの第２ステートを示す第２ノードとの間の遷移が可能である。トレリス図の分岐のうちの、所定の分岐は、ビットスタッフィングが存在する場合にしか行うことができない条件付き遷移を示す。経路推定の生成中に、ビットスタッフィングが検出され、取り出される分岐は、検出されたビットスタッフィングに関連する分岐となる。構築された異なる経路推定のうちで、選択される経路推定は、観察シーケンスに対して最も確率が高いように見える推定である。
【００１２】
訂正すべきメッセージの生成は、通常は（排他的ではないが）本発明に係わる方法の一部を構成しないと理解すべきである。しかしながら、本方法は、所定の態様で生成されたメッセージだけに実施される。訂正すべきメッセージのフォーム、変換およびスタッフィングビットの挿入を特定する条件は、通常あるプロトコルで定義される。このプロトコルに従って生成された場合しかメッセージを訂正できない。
【００１３】
トレリスを横切る複数の経路推定の構築および選択は、ビタルビアルゴリズムまたはＳＯＶＡ（ソフト出力ビタルビアルゴリズムの接頭略語）アルゴリズムに基づくことが好ましい。（所定の数の誤りまでの）起こり得る伝送誤りは、最も確率の高い経路推定、すなわち（構築されたすべての推定のうちの）観察シーケンスから最短距離の経路推定を選択することにより訂正される。
【００１４】
オリジナルメッセージの変換が、変換されたメッセージを生成するためにオリジナルメッセージと組み合わされた巡回冗長チェックブロックを計算することを含む場合、トレリスのノードの各々は、巡回冗長チェックブロックを計算した可能性の高い計算器（すなわち、リニアフィードバックシフトレジスタ）のステートを示す。
【００１５】
好ましくは、スタッフィングビットの挿入が行われるための条件が満たされた場合、本方法が実行され、経路推定が構築されているとき、スタッフィングビットが検出されたとみなす。例えば、各経路推定では、その後、メッセージの送信前に、値1を有する5つの連続したビットの各シーケンスの直後に、１つのスタッフィングビットが挿入されていた場合、経路推定ごとに、値1を有する5つの連続したビットのシーケンスの直後に続くビットは、スタッフィングビットを示すと考えられる。
【００１６】
各経路推定にステート変数が関連することが好ましく、経路推定が構築されているときには、ステート関数を経路推定のすでに構築された部分の関数として更新する。その後、スタッフィングビットを挿入する条件が満たされているかどうかを判断するようにステート変数をモニターする。たとえば、このステート変数は、各経路推定に対して同じ値が連続するビットの数を表示できる。このスタッフィングビットの前に値1を有する5つのビットのシーケンスが先行することを条件に、ビット後方にスタッフィングビットを挿入する例では、トレリスを横切る経路推定が進行する際に、既存のビットに先行している値1のビットの数を表示する変数をモニターする。この変数の値が5に達した、直後の、次のビットは、ビットスタッフィングでなければならなく、対応する条件付き遷移が選択される。
【００１７】
本発明の方法の好ましい実施形態は、メッセージに対して実行され、このメッセージの生成は、オリジナルメッセージの変換として、オリジナルメッセージに追加される巡回冗長チェックブロックを計算することと、スタッフィングビットが追加された後に変換メッセージをコード化（すなわち、チャネルコード化）することを含む。この好ましい実施形態では、トレリスを横切る経路を選択することは、デコード化の一部である。
トレリスのノードは、少なくともコード化（符号化）を実行した可能性が高いコード化器のステートの集合と巡回冗長チェックブロックを計算した可能性の高い計算器のステートの集合との直積の要素を示す。このトレリスは、
第１エンコーダステートおよび第１計算器ステートに対応する第１ノードから第２エンコーダステートおよび第２計算器ステートに対応する第２ノードへの遷移は、
変換されたメッセージのビットの存在下で、
-  第１エンコーダステートにあるエンコーダに変換されたメッセージのこのビットを印加する際に、エンコーダが前記第２エンコーダステートに遷移した場合および
-  第１計算器ステートにある計算器に変換されたメッセージのこのビットを印加する際に、計算器が第２計算器ステートに遷移した場合
または、
スタッフィングビットの存在下で、
-  第２エンコーダステートにあるエンコーダに変換されたメッセージのこのビットを印加する際に、前記エンコーダが前記第２エンコーダステートに遷移し、
-  第１計算器ステートが第２計算器ステートに等しい場合に可能である。
【００１８】
なお、本発明に係る方法は、AISメッセージを訂正するために使用できると理解できよう。例えば衛星、特に低軌道衛星によって受信されたAIS信号からシンボルのシーケンスが得られる。このAIS信号は、他のAIS信号と同じ時間に（すなわち、同時にまたは時間が重なった状態で）と受信される。この場合、本発明に係る方法は、AIS信号に対しては、競合防止および復調方式、例えばSIC方式（逐次干渉除去）又は決定論的または適応ビーム形成方法と組み合わせることが好ましい。米国特許出願第2008/0304597号には、競合したAIS信号から複数の候補AISメッセージを生成するための方法が、記載されている。これらの候補メッセージは、本発明に係る方法においてシンボルシーケンスとして使用することができる。この方法は、衛星搭載または地上の受信機のレベルで使用できることに注目されたい。
【００１９】
本発明の態様は、コンピュータプログラムがコンピュータにより実行されるときに上述の方法を実行させる命令を含むコンピュータプログラムに関する。このコンピュータプログラムは、プログラムが記憶されているデータ記憶媒体（例えば、ハードディスク、フラッシュメモリ、USBキー、CD、DVD、RAMなど）を含むコンピュータプログラム製品の一部を構成することができる。
【００２０】
本発明の別の態様は、例えば本発明の方法を実施するための適当なコンピュータプログラムを有するよう構成されたデコーダにも関する。
添付の図面を参照すれば、本発明の他の特徴及び利点は、例示のために、以下に示すいくつかの好ましい実施例の詳細な説明から明らかになろう。
【図面の簡単な説明】
【００２１】
【図１】メッセージの従来の伝送連鎖図の概略図である。
【図２】送信機側でトレリスコード化をし、受信機側でコード化を行うメッセージの従来の伝送連鎖図の概略図である。
【図３】スタッフィングビットの挿入の図である。
【図４】本発明の第１変形例に係る方法を実施するためのデコーダの簡略図である。
【図５】４つのステートを有するＣＲＣ図である。
【図６】条件付き遷移に対応する追加分岐を有する図４のＣＲＣトレリスの図である。
【図７】スタッフィングビットを検出し、遭遇したスタッフィングビットの総数を表示するためにそれぞれ使用されるステート変数の更新の図である。
【図８】スタッフィングビットのための条件付き遷移を行うべきか否かを判断する判断ステップの図である。
【図９】デコード化、スタッフィングビットの除去および送信メッセージの訂正を実行するデコーダの簡略図である。
【図１０】拡張トレリスの構造の図である。
【図１１】ＣＲＣトレリスおよびコード化トレリスである。
【図１２】ＣＲＣに関連する拡張トレリスおよび図１１のコード化トレリスを横切る経路推定の構築の図である。
【図１３】スタッフィングビットの受信に関連した遷移（条件付き遷移）による拡張トレリスの構築の図である。
【図１４】ＡＩＳ伝送連鎖図の送信側の概略図である。
【図１５】最適ＧＭＳＫ受信機および本発明に係わる方法を使用した受信機に対する信号対ノイズ比を関数とする、シミュレートされたパケット誤りレート（ＰＥＲ）のグラフ表示である。
【図１６】最適ＧＭＳＫ受信機および本発明に係わる方法を使用した受信機に対する信号対ノイズ比を関数とする、シミュレートされたビット誤りレート（ＰＥＲ）のグラフ表示である。
【発明を実施するための態様】
【００２２】
トレリスコード化をしない変形例
図４は、本発明の第１変形例に係わる方法を実行するためのデコーダ３０の極めて簡略された略図である。この、デコーダ３０は、図１に示される従来の伝送連鎖図におけるスタッフィングビット２２のための除去ステージ及びＣＲＣ検証ステージ２４を置き換えるようになっている。
【００２３】
以下、スタッフィングビットは、ＨＤＬＣプロトコルで定義されるように挿入されること、すなわち、値１のビットが５回連続した各シーケンスの直後に値０の１つのスタッフィングビットが挿入されると仮定する。この選択は、実際の例に関連して本発明の説明を可能にするためだけになされたものであると理解すべきである。当業者であれば、スタッフィングビットの挿入に関連する他のシナリオにも本発明の方法を適応させることは困難ではなかろう。
【００２４】
生成多項式（polynomial generator）に関連するリニアフィードバックシフトレジスタによって、ＣＲＣブロックを繰り返し計算できる。このレジスタは、（通常シーケンス［００．．．０］または［１１．．．１１］によって初期化されるが、プロトコルにより別の初期レジスタステートも指定できる。オリジナルのメッセージはビットごとにレジスタに印加され、その後レジスタが含むセルと同じ多くの０が続く。こうして得られる最終ステートは、オリジナルメッセージに添付されたＣＲＣブロックに対応する。ＣＲＣ計算器中間ステート（ＣＲＣ生成多項式に関連するリニアフィードバックシフトレジスタ）をトレリスのステート（ノード）を表示するとイメージできる。これらステートは、計算器が第１ステートとなっているときに、計算器に新しいビットを入力することによって得られる第２計算器ステートへ第１ＣＲＣ計算器ステートをリンクする遷移（分岐）によって相互に接続されている。
【００２５】
図５は、ＣＲＣ計算器が４つの異なるステート、番号０、１、２、および３となりうる場合のケースに対応するＣＲＣトレリスを示す。各ステートから離間する矢印は、トレリスの分岐を示し、印加された入力ビットが０か１であるかによってＣＲＣ計算器の次のステートを表示する。
【００２６】
例えば、復調器からの観察シーケンスを受信すると、ビタルビアルゴリズムを使用して伝送誤りを訂正できる。ＣＲＣトレリスを横切る複数の経路推定を構築し、これら推定のうちから、観察シーケンスに関する最も確率の高い経路推定を選択する。オリジナルメッセージに追加されたＣＲＣブロックが後で追加され可能なスタッフィングビットを考慮しないと仮定した場合、変換されたメッセージ（ＣＲＣブロックが後に続くようなオリジナルンメッセージ）にスタッフィングビットが挿入されていれば、この方法は、作動しない。
【００２７】
したがって、本発明に関連し、ＣＲＣブロックの計算および挿入後で挿入されたスタッフィングビットが存在していてもビタルビアルゴリズムまたはＳＯＶＡアルゴリズムの助けにより、メッセージの訂正が可能となるようＣＲＣトレリスを変更することが提案される。この目的のため、ＣＲＣ計算器ステート間の条件付き遷移、すなわち、スタッフィングビットが存在している場合でしか取ることができない遷移が追加される。図６は、条件付き遷移が追加された図５のトレリスを示す。図５と対照的に、図６は、時間ごとの２つのステートの間の遷移を個々の態様で示している。条件付き遷移は、スタッフィングビットの場合にしか続かない（スタッフィングビットに対してはＢＳを称される）。これらは、各ステートをみずからにリンクし、スタッフィングビットがＣＲＣ計算器ステートになんらの変化を引き起こさないことを表示する。従って、トレリスを横切る経路推定を構築している途中で、スタッフィングビットが検出されると、スタッフィングビットの条件付き遷移しか続かない。スタッフィングビットの場合、ＣＲＣ計算器ステートは、変化しないので、このことは、経路推定構築の過程でスタッフィングビットとして識別されたビットは、無視される。
【００２８】
経路推定の構築の過程で、スタッフィングビットが出現することをモニターするために、時間ｋで各ステートＸ（たとえば、Ｘ＝０，１，２および３）に関連するステート変数Ｐ（ｋ，Ｘ）が導入される。ｋは、残った経路推定を経過したとみなされたステートに到達する前にトレリス内を移動するステート（ノード）の数を示す。Ｐ（ｋ，Ｘ）は、時間ｋでステートＸに到達する直前に受信された値１が連続するビット数を示し、残った経過推定を通って時間ｋでステートＸに到達前にトレリス内で遭遇したスタッフィングビットの総数を示す別のステート変数Ｓ（ｋ，Ｘ）が導入される。最終的に維持される経路推定の数Ｓによって、受信された情報ビットおよびＣＲＣビットの数を推定できる。図７は、３つの可能な状況における変数ＰおよびＳの進展を示す。受信されたビットが情報ビットまたは値０のＣＲＣビットである場合、到達ステートのために変数Ｐは、０にリセットされ、Ｓはおなじままである。受信されたビットが情報ビットまたは値１のＣＲＣビットである場合、到達ステートのために変数Ｐは、１単位だけ増加され、Ｓは再びおなじままである。
受信されたビットがスタッフィングビットである場合、到達ステートのために変数Ｐは、０にリセットされ、Ｓは１単位だけ増加される。
【００２９】
経路推定の構築の過程では、変数Ｐは、次のビットが情報ビット（またはＣＲＣビット）であるのか、またはスタッフィングビットであるのかを示す。我々の例では、ビットがスタッフィングビットとして検出されるための必要十分な条件は、このビットの直前に値１の５つの情報ビットまたはＣＲＣビットの中断されていないシーケンスが先行していることである。変数Ｐが（図８内の右側の）経路推定のノード内で５に到達した場合、次の遷移は、スタッフィングビットに関連する遷移となるはずである。情報ビットまたはＣＲＣビットに関連する遷移は、不可能である。他方、（図８内の左側の）経路推定のノード内でＰ＜５であれば、次の遷移は、情報ビットまたはＣＲＣビットに関連する遷移になるはずである。このステートから開始するスタッフィングビットに関連する遷移は、不可能である。図８では、不可能な遷移は取消線で表示されている。実際には、「無限」距離をこの遷移と比較することによって、遷移が不可能であることを表記できる。ビタルビアルゴリズム内の無限距離の遷移により拡張された経路推定は、残ることはできず、取り除かれる。
【００３０】
観察シーケンスに対し、残った経路推定の間から最も確率の高い経路推定を最終的に選択するために、次のプロパティ、CRC（[data、CRC（data）]）＝０を使用できる。従って、選択すべき経路推定は、CRC計算器ステート［００．．．０］に到達しなければならないことになる。
【００３１】
トレリスコード化をする変形例
図９は、本発明の第２変形例に係わる方法を実施するためのデコーダ３２の極めて簡略化された略図を示す。このデコーダ３２は、デコード化ステージ２１の置換、スタッフィングビットの抑制２２およびＣＲＣ検証２４を行うようになっている。
【００３２】
この方法の本実施形態は、デコード化、スタッフィングビットの抑制およびＣＲＣ検証のための拡張されたトレリスを使用し、この拡張トレリスは、エンコーダおよびＣＲＣ計算器を含む、有限ステートマシンのトレリスに対応し、エンコーダとＣＲＣ計算器には、同じ入力が供給される。すなわち、入力される同じバイナリーシーケンスに従ってステートを変える。
【００３３】
本方法および拡張トレリスの概念について更に良好に理解するために、まず伝送プロトコルでスタッフィングビットの挿入が予測されないケースのための図１０〜１２を参照して本発明について説明する。
【００３４】
スタッフィングビットの抑制をしない比較例
本方法は、ノードが異なるエンコーダステートだけでなく、ＣＲＣブロックの計算器ステートも示す拡張トレリスを使用する。例えば、ビタルビアルゴリズムに関連して、エンコーダのステートおよび遷移を表示するトレリスを使用することは周知である。対照的に、我々は、シンボルのシーケンスのデコード化に関連し、関連する伝送誤りを訂正するためにＣＲＣ計算器に関連するトレリス（単にＣＲＣトレリスと称す）が使用されていることを知らなかった。従って、このＣＲＣトレリスの意味について説明しなければならない。
【００３５】
CRCブロックは、線形フィードバックシフト生成多項式に関連しているレジスタを用いて繰り返し計算することができる。レジスタは、（通常は[00 .. 0]または[11 ... 1]）で初期化されるが、プロトコルによっては、他の任意のレジスタの初期ステートを、指定することもできる。レジスタには、オリジナルメッセージが、ビットごとに適用され、その後にはレジスタが含むのと同じ数の多くのゼロなどが続く。このようにして得られた最終ステートは、オリジナルメッセージに添付されているCRCブロックに対応する。CRCトレリスのステート（ノード）を表示するようCRC計算器の中間ステート（CRC生成多項式に関連した線形フィードバックシフトレジスタ）をイメージできる。これらのステートは、それが第１ステートにあるときに計算器に新しいビットを入力することにより得られる第2計算器ステートへ第１CRC計算器ステートが遷移することによるリンク（分岐）によって相互接続されている。
【００３６】
図5は、コード化トレリス３２およびCRCトレリス３３から拡張されたトレリス３６の構造を示す図である。CRCトレリス３４は、CRC計算部が、4つの異なるステート、番号0、1、2、3となることができる場合に相当する。各ステートからの矢印は、CRCトレリスの枝に対応しており、印加された入力ビットが0または1であるかどうかに応じて、CRCの計算器の、次のステートを示す。コード化トレリス32は、2つのステートを有する。
【００３７】
「拡張」トレリスは、エンコーダとCRC計算器とを含み、かつ、エンコーダとCRCの計算器に、同じ入力が供給され、入力される同じバイナリーシーケンスによりステートを変える、有限ステートマシンのトレリスに対応する。従って、拡張トレリスノードの集合は、CRCトレリスのノードの集合{0、1、2、3}と、コード化トレリスのノードの集合{A、B}との直積{（０、A）、（0、B）、（1、A）、...、（3,B）}に対応する。第1計算器ステートα ∈{0,1,2,3}および第1コード化ステートX ∈{A, B}に対応する第1ノード（α；X）から第２計算器ステートβ ∈{0,1,2,3}および第２コード化ステートY ∈{A, B}に対応する第２ノード（β；Y）への遷移は、CRCトレリスおよび符号化トレリスのそれぞれの遷移α→βおよびX→Yが同じ入力ビット（0または1）によって生じている場合に可能である。例えば、送信されたビットが0（または1）であるとき、符号化トレリスステートY(またはZ)は、ステートXとなり、送信されたビットが１（または０）であるとき、CRCトレリスステートβ(またはγ)は、ステートαとなり、送信されたビットが０（または１）であるとき、ステート（β；Y）(またはγ;Ｚ)は、ステート（α；X）となる。図１０には、遷移を表す矢印ごとに遷移を生じるビットが記載されている。
【００３８】
拡張トレリスのステートの数は、コード化トレリスのノードの数とCRCトレリスのノードの数の積に達する。特にCRCトレリスは、非常に大きい数のノードを示すことができる。例えば２６４個の可能なステートを有するCRCトレリスに対応して６４ビットを有するCRCブロックが存在する。
【００３９】
ビタビアルゴリズムに基づく本発明の方法の実施形態の発展を説明するために、トレリスを横切る経路推定の構成をグラフで説明できるよう、できるだけ短いCRC（1ビット）を選択した（図１２参照）。図１１には実施例で選択されたCRC符号およびトレリスが示されている。
【００４０】
オリジナルメッセージがバイナリーシーケンス[0 1 1 0]と表示されると仮定する。このオリジナルメッセージのために計算されたCRCブロックは、[1]である。このCRCブロックは、オリジナルメッセージ内の1の数が偶数であるかどうかを示すパリティビットに対応する。オリジナルメッセージとCRCブロックとの連結によって得られたデータ&middot;パケット（変換メッセージ）は、[0 1 1 0 1]である。
【００４１】
図１１のコード化トレリスを適用することにより、[0 1 1 0 1]をコード化（符号化）すると、シンボルシーケンス[00 01 11 10 01]が得られる。訂正が行われたことを示すために、第３のシンボルのレベルで1ビットの誤りが、追加される。デコーダの入力におけるシンボルシーケンスは、[00 01 01 10 01]であると推定される。
【００４２】
図１２は、ビタビアルゴリズムに従った拡張トレリスを横切る経路推定の構築を示す。デコード時にはCRC計算器とエンコーダ（符号化器）の初期ステートが知られている。したがって、初めに、ステート（１；A）で始まらない経路推定を除外できる。別の例として、初期ステート（図１２の表示に使用される解決案）とは異なるステートで始まる経路推定に無限距離の性質があると考える。これによってトレリスを横切って進行する過程でこれら経路推定を除外することを保証できる。図１２は、この遷移が対応するシンボルを遷移ごとに表示する。シンボルの表示の次に観察シンボルと遷移が対応するシンボル間の距離（ハミング）が続く。経路推定がトレリスの同じノードに到着するたびに、最も短い累積距離を示す経路推定だけが、残り、他の経路推定は除外される。図１２では除外された経路推定は、取消線で表示され、当該ノード上の残った経路推定の累積距離に注目する。次に時間kにおいて、ステート（α、X）における、累積距離は、Γ(k、α;X)と表示されている。
【００４３】
最終的なステートに到達すると、最短距離を有する経路推定が選択される。この例の場合、ノード（０；B）およびノード（１；0）に到達する経路推定は、同じ最短距離１を有していることに留意すべきである。このことから、CRCの計算器の最終的なステートは、0でなければならないので、プロパティのCRC（[data、CRC（data）]）が使用される。その結果、（0；B）のステートに至る経路推定が維持される。従って、発見されるメッセージは、[0 1 1 0 1]となる。こうして、伝送誤りが訂正される。
【００４４】
スタッフィングビットを抑制しない変形例
上述の例の手順は、CRCブロックの計算の後でスタッフィングビットが挿入されていた場合、実施されないことがある。
【００４５】
スタッフィングビットの（可能な）存在を考慮するために、拡張トレリスには特殊な遷移が入力される。これらの遷移は、１つのスタッフィングビットを受信した後に続き、エンコーダステートが続いた場合に情報ビットまたはCRCビットと同じようにスタッフィングビットを考慮するように定義されるのに対し、受信されたビットがスタッフィングビットのときには、CRC計算器ステートは、変わらない。
【００４６】
以下、HDLCプロトコルで定義されているようなスタッフィングビットが挿入されていると仮定する。すなわち、値0の1つのスタッフィングビットが値1の5つの連続したビットの各シーケンスの直後に挿入されていると仮定する。この選択案は、単に実際の例に関連させて本発明を説明するためなされているに過ぎないことに留意されたい。当業者であれば、スタッフィングビットの挿入を含む他のシナリオに本発明の方法を適応させることには困難はなかろう。
【００４７】
図１３には、CRCトレリスとおよびコード化トレリスから始まるスタッフィングビットの条件付き遷移に拡張されたトレリス構造が示されている。 CRCおよびコード化トレリスは、図１０の場合と同様である。拡張トレリスノードの集合は、CRCトレリスのノードの集合{0、1、2、3}とコード化トレリスのノードの集合{A、B}との直積{（０;A、（0;B）、（1;A）、...、（3;B ）}に対応する。次に、（データパケットのうちの）情報ビットまたはCRCビットに関連する遷移を、スタッフィングビットに関連する条件遷移から区別することができる。情報ビットまたはCRCビットに関連する遷移は、図１０と同じである。CRCトレリスおよびコーディングトレリスのそれぞれの遷移α→βおよびX→Yが入力に印加された同じ情報ビットまたは入力に印加されたCRCビット（0または1）によって生成された場合、第2計算器ステートβ ∈ {0,1,2,3}および第２コード化ステートY ∈ {A, B}に対応する第2ノード(β；Y)への、第１計算器ステートα ∈ {0,1,2,3}および第1コード化ステートX ∈ {A, B}に対応する情報ビットまたは第1ノード（α;X）のCRCビットに関連する遷移が可能である。α=βであり、トレリススタッフィングビットBSと同じ値を有する情報ビットまたはCRCビットに対しコード化トレリスの遷移X→Yが可能であれば、第2計算器ステートβ ∈ {0,1,2,3}および第2コード化ステートY ∈{A, B}に対応する第2ノード(β；Y)への、第１計算器ステートα∈{0,1,2,3}および第1コード化ステートX ∈{A, B}に対応するスタッフィングビットに関連する遷移が可能である。HDLCプロトコルで指定されているようスタッフィングビットが挿入されている場合、すべてのスタッフィングビットは、0の値を有することになる。
【００４８】
送信されたビットが、値０（または１）の情報ビットまたはCRCビットであるとき、コーディングトレリスステートY（またはZ）は、ステートXとなり、送信されたビットが、値が0（または1）の情報ビットまたはCRCビットであるとき、CRCトレリスのステートβ（またはγ）は、ステートαとなり、送信されたビットが、値が0（または1）の情報ビットまたはCRCビットであるとき、ステート（β；Y）(またはγ；Z)は、ステート（α；X）となる。上記の遷移を下記のように表示できる。
0005764671.tif 000002
スタッフィングビットBS（値0）の存在下では、この場合の遷移は、下記のようになる。
0005764671.tif 000003
【００４９】
トレリスでは、ビットスタッフィングが受信された場合にしか、条件付き遷移が行われない。経路推定を構築する過程でスタッフィングビットが発生することをモニターするために、"時間" kにおいて各ステート（α；X）に関連するステート変数P（k（α；X））が導入される（この例では、α= 0、1、2または3であり、X = AまたはBである）。kは、残った経路推定によって検討されたステートに到達する前にトレリスを横ぎったステート（ノード）の数を示し、P（k（α；X））は、時間kにおいて、ステート（α；X）に達する直前に受信した値1が連続したビットの数を示し、導入された、別のステート変数S（k、（α；X））は、残った経路推定を通って時間kにおいてステート（α；X）に達する前に、トレリスで合流したスタッフィングビットの総数を示す。最終的に維持された経路推定の数Sによって、受信された情報ビットおよびCRCビットの数を推定できる。
0005764671.tif 000004
【００５０】
上記の表は、生じうるすべての状況における変数PおよびSの変化を示す。受信されたビットの値が、0の情報ビットまたはCRCビットである場合、変数Pは達成ステートのためにゼロにリセットされ、Sは同じままである。受信されたビットの値が1の情報ビットまたはCRCビットである場合、変数Pは、達成ステートのため1つの単位だけ増加し、Sは再び同じままである。受信されたビットがスタッフィングビット（P = 5）である場合、Sは、一単位しか増加されないのに対し、Pは、達成ステートのためゼロにリセットされる。
【００５１】
拡張トレリス全体で経路推定を構築する過程で、変数Pは、次のビットが情報ビット（またはCRCビット）であるか、またはスタッフィングビットであるかを示す。この例では、ビットがスタッフィングビットとして検出されるための必要十分条件は、値１の５の情報ビットまたはCRCビットの中断されないシーケンスがスタッフィングビットに先行するということである。経路推定のノードにおいて、Ｐの値が５に達したならば、次の遷移はスタフィングビットに関連した遷移であらねばならない。情報ビットあるいはＣＲＣビットに関連した遷移は、そのとき不可能である。変数Pが経路推定のノードで５未満の場合、次の遷移は、情報ビット又はＣＲＣビットに関連した遷移となるはずである。スタッフィングビットに関連する遷移が、このステートから開始することは、不可能である。実際には"無限"距離を付与することによって遷移が不可能であることを表示できる。ビタビアルゴリズムでは、無限遠の遷移によって拡張されており、経路推定は、残ることはできず、除外される。
【００５２】
最も確率が高い経路推定を選択するには、最終的なCRCの計算器ステートが0に等しくなるという特性を再度使用できる。しかしながら、最終的なエンコーダのステート
0005764671.tif 000005
ここで、Sminとし、Smaxは、スタッフィングビットの最小数および最大数をそれぞれ示し、NminおよびNmaxは、情報ビットおよびCRCビットの最小数との最大数をそれぞれ示す。これらの数値を本願に関連して定義する。例えば、AISに対し、Smin=0とし、Smax=4
0005764671.tif 000006
Kmaxの=Nmax + Smaxとの間の任意の値をとることができる。
【００５３】
コンピュータプログラムの例
前述の実施例に係る方法を実施するために使用されるコンピュータプログラムのソースコードを、以下に簡単に記載する。詳細な説明の末尾に参照するコンピュータプログラムエキスパートを付属書として添付する。
【００５４】
プログラムの最初のエキスパートは、変数の初期化に関連する。プログラムのコンテキストでは、拡張トレリスの初期ステートを（A;α）と示す。A（= CRC計算器の初期ステート）を通信プロトコルに従って初期化する。 CRC-16を使用する、AISの場合、216−１に初期化する。αが未知である場合α（=初期のエンコーダのステート）のすべての可能な値に対し距離Γ(0,(A;α))をゼロに設定する。 αが既知である場合、Γ(0,(A;α))となる。ステート変数R(k, (θCRC ; θTC)は、ノード（θCRC、θTC））で残った経路推定の時間kにおける最終遷移に関連するビット（0、1、又はBS）に対応する。
【００５５】
プログラムの第2エキスパートでは、受信されたシンボルごとに遷移変数を更新する。
【００５６】
xkは、時間kで受信されたシンボルを示し、NSは、可能なシンボルの数を示し、Ssは、（可能なシンボルNS）のs番目のシンボルを示す。Distance(xk, Ss)は、時間kに受信されたシンボルとシンボルSsとの間の距離である。θCRCとθTCは、CRCブロック計算器およびエンコーダのそれぞれのステートである。 NCRCは、CRCトレリスの可能なステートの数を示し、NTCは、コート゛化トレリスの可能なステートの数を示す。 NextS（θTC、t）は、エンコーダがステートθTCで発見され、ビットt（tの値は、0、1、またはBSをとることができる）が受信されたときのシンボルの数を意味する。
遷移変数Γtrans((θCRC;θTC ),t)は、Γ(k-1(θCRC;θTC ))の合計としての時間kと、時間ｋで受信されたシンボルとステート（θCRC；θTC）からスタートし、ビットtに関連する遷移に対応するシンボルとの間の距離とで定義される。遷移変数Strans（θCRC；θTC）は、時間kにおいて、スタッフィングビットがステート（θCRC；θTC）の後に受信された場合、1だけインクリメンされたS(k-1, （θCRC；θTC）)として時間kで定義される。遷移変数Ptrans（θCRC；θTC、  ｔ）は、ステート（θCRC；θTC）の後に時間kで1のビット(t=1)が続くときに、1だけインクリメントされたP(k-1, （θCRC；θTC）)として時間kで定義される。受信されたビットが、ビットスタッフィング（t≠BS）でない場合には、遷移変数は、従来のビタビアルゴリズムのように更新される。逆のケースでは、条件付き遷移だけが可能な状態のままである（無限距離は、情報ビットまたはCRCビットに関連する遷移には、無限距離の性質があると考える）。
【００５７】
プログラム情報の第３部は、ステート変数の計算を扱う。関数PrevθCRC（θCRC、t）は、ビットtが受信された場合のステートθCRCの前のCRC計算器のステートを意味する。関数PrevθTC（θTC、t）は、エンコーダのステートを示すビットtが受信された場合、ステートθTCに従うことができるエンコーダのステートを示す。
【００５８】
第４エキスパートでは、拡張トレリスを横切るように最適経路推定を再トレースする。
0005764671.tif 000007
つど逆方向に従うことによって前のステートを繰り返し決定する。情報ビットまたはCRCビット（時間t = 0または1）に対応する、遷移に続くたびに、対応するビットが変数Un内にセーブされる。シーケンス（Un）は、デコードされたメッセージを表示するが、このメッセージからは、スタッフィングビットが除去されている。
【００５９】
シミュレーションの結果
本発明に係る方法を実現するデコーダの性能を説明するために、図１４に示されるように、AIS伝送連鎖図の場合についてシミュレーションを実施した。オリジナルメッセージは、168ビットの固定長であった。CRC16のブロックを加えた後、（１のビットが5つ連続したシーケンスの後でAISプロトコルに従って）スタッフィングビットを挿入した。このようにして得られたフレームは、NRZI（非ゼロ復帰反転）コード化され、パラメータBT（周期シンボルとガウスフィルタの生成関数から-3 dBの周波数バンドの積）＝３およびLT（ガウスフィルタの半分の長さ）= 4でGMSK（ガウス最小シフトキーイング）変調された。私たちは、AWGN（加法性白色ガウス雑音）伝送チャンネルの推定を前提とする。この例では、NRZI符号化およびGMSK変調は、コード化トレリスを示す。AISシステムの技術的特性に関するITU勧告ITU-R M.1371によれば、ブロックCRCを計算するための生成多項式は、G（x）= X16 + X12 + X5
+ 1である。
【００６０】
本発明に係わるデコーダとビタビアルゴリズムに基づくコヒーレント復調を使用する最適なGMSK変調に基づく受信機とを比較する。検討中のNRZIデコードにおいて、変化は、0のビットに関連しており、変化がない場合、1ビットが検出される。
【００６１】
図１５は、信号対ノイズ比（Es/N0）の関数として、本発明に係るデコーダを用いる受信機と最適なGMSK受信機のパケット誤り率（送信パケットの総数に対する、少なくとも一つの誤りビットを含む破損したパケットの比率として定義されるPER）を示す。提案された受信機が最適なGMSK受信機に対して2.5以上dBでの利得を示すことに留意すべきである。
【００６２】
図１６は、信号対ノイズ比（Es/N0）の関数として、本発明のデコーダを使用する受信機と最適なGMSK受信機のビット誤り率（特定の期間中に送信されるビットの総数に対する誤りビットの比として定義されるBER）を示す。図11の高い誤り率は、破損したメッセージの誤り率が高いことを示している。換言すれば、メッセージが少なくとも1つの誤りを含む時、メッセージは平均として多くの誤りを含む。このことは、メッセージが誤りを含むかどうかを判断するためにデータの整合性の検証方法を使用できるようにする。デコードされたメッセージが破損されているとして拒絶するのにCRCブロックを使用することはできないので、このような方法の使用は、破損したメッセージの検出に有用であることが判明した。しかしながら、CRCブロックは、当初からオリジナルメッセージに含めることができるが、このブロックは、誤り訂正のために、本発明に係る方法が実行された後は、メッセージに誤りがないことを検証するのには使用されない。しかしながら、このCRCは、誤りを訂正するために使用されたCRCと同じ生成多項式を使用することはできない。そうでない場合、CRC（[data、CRC(data）]）=0の実行の結果、第２CRCは、常に０に等しくなる。
コンピュータプログラムからの引用
パート1（初期化）
0005764671.tif 000008
パート2（遷移変数の計算）
0005764671.tif 000009
パート3（ステート変数の計算）
0005764671.tif 000010
パート4（経路を読み出す）
0005764671.tif 000011
【図１】
0005764671.tif 000012
【図２】
0005764671.tif 000013
【図３】
0005764671.tif 000014
【図４】
0005764671.tif 000015
【図５】
0005764671.tif 000016
【図６】
0005764671.tif 000017
【図７】
0005764671.tif 000018
【図８】
0005764671.tif 000019
【図９】
0005764671.tif 000020
【図１０】
0005764671.tif 000021
【図１１】
0005764671.tif 000022
【図１２】
0005764671.tif 000023
【図１３】
0005764671.tif 000024
【図１４】
0005764671.tif 000025
【図１５】
0005764671.tif 000026
【図１６】
0005764671.tif 000027