ここ数週間、Viterbi C/C++ デコーダーを動作させようとしてきました。どういうわけか、私はそれを機能させることができません。私は最初に Phil Karn の FEC ライブラリから始めました: http://www.ka9q.net/code/fec/
しかし、このコードは 64 ビット Linux 用にコンパイルしたくありません。 次に、X86 アーキテクチャ用に最適化された特別な Viterbi デコーダーを生成するhttp://www.spiral.net/software/viterbi.htmlを見つけました。これを機能させてコンパイルすると、データがデコードされますが、データが正しくデコードされません。最後に、viterbi-3.0.1.tar と呼ばれる Phil Karn のライブラリの簡易バージョンに基づく別のライブラリを見つけました (リンクを思い出せません)。
Matlab で、すべてゼロ、すべて 1、および長さ 2048 ビットのランダム データの 3 つのテスト データ セットを生成しました。スパイラル デコーダーは、0 と 1 のデータ セットを正しくデコードしますが、ランダム データはデコードしません。
ここにテスト データ テストと共にコードを配置しました。 http://dl.dropbox.com/u/65739307/viterbicpp.tar.bz2