Main Content

istrellis

有効なトレリス構造体に対して真

構文

[isok,status] = istrellis(s)

説明

[isok,status] = istrellis(s) は、入力 s が有効なトレリス構造体であるかどうかをチェックします。入力が有効なトレリス構造体の場合、isok は 1 で、status は空の文字ベクトルです。有効なトレリス構造体でない場合、isok は 0 で、statuss が有効なトレリス構造体でない理由を示します。

有効なトレリス構造体は、次の表のようなフィールドをもつ MATLAB 構造体です。

符号化率 k/n の符号に対する有効なトレリス構造体のフィールド

トレリス構造体のフィールド次元平均
numInputSymbolsスカラー 符号化器への入力シンボルの数: 2k
numOutputSymbolsスカラー 符号化器からの出力シンボルの数: 2n
numStatesスカラー 符号化器内の状態の数
nextStatesnumStates 行 2k 列の行列 現在の状態と現在の入力のすべての組み合わせの次の状態
outputsnumStates 行 2k 列の行列 現在の状態と現在の入力のすべての組み合わせの出力 (8 進数)

nextStates 行列において、各エントリは、0 ~ numStates-1 の間の整数です。s 行 u 列目の要素は、開始状態が s-1 で入力ビットが 10 進表現 u-1 であるときに次の状態を示します。入力ビットを 10 進数に変換するには、最初の入力ビットを最上位ビット (MSB) として使用します。たとえば、nextStates 行列の 2 列目は、現在の入力値のセットが {0,...,0,1} であるときに、次の状態を保存します。

状態を 10 進値に変換するには、このルールを使用します。k が 1 を超える場合は、符号化器の最初の入力ストリームを受信するシフト レジスタは、状態番号に最下位のビットを与え、最終の入力ストリームを受信するシフト レジスタは、状態番号に最上位のビットを与えます。

outputs 行列において、s 行 u 列目の要素は、開始状態が s-1 で入力ビットが 10 進表現 u-1 であるときに、符号化器の出力を示します。10 進数値に変換するには、最初の出力ビットを MSB として使用します。

以下のコマンドはフィールドを非常にシンプルなトレリス構造体に集め、トレリス構造体の妥当性を確認します。

trellis.numInputSymbols = 2;
trellis.numOutputSymbols = 2;
trellis.numStates = 2;
trellis.nextStates = [0 1;0 1];
trellis.outputs = [0 0;1 1];
[isok,status] = istrellis(trellis)

出力は以下のようになります。

isok =

     1


status =

     ''

トレリスの別の例が畳み込み符号のトレリス表現にあります。

拡張機能

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

R2006a より前に導入