convdeintrlv
シフト レジスタを使用してシンボルの順序を復元
構文
deintrlved = convdeintrlv(data,nrows,slope)
[deintrlved,state] = convdeintrlv(data,nrows,slope)
[deintrlved,state] = convdeintrlv(data,nrows,slope,init_state)
説明
deintrlved = convdeintrlv(data,nrows,slope)
は、一連の nrows
内部シフト レジスタを使用して data
内の要素の順序を復元します。slope
はレジスタの長さのステップです。遅延の詳細については、畳み込みインターリーブと畳み込みデインターリーブの遅延を参照してください。
[deintrlved,state] = convdeintrlv(data,nrows,slope)
はシフト レジスタの最終状態を保持する構造体を出力します。state.value
は任意のシフトされないシンボルを保存します。state.index
はシフトされる次のレジスタのインデックスです。
[deintrlved,state] = convdeintrlv(data,nrows,slope,init_state)
はシフト レジスタを init_state.value
に含まれるシンボルで初期化し、最初の入力シンボルを init_state.index
で参照されるシフト レジスタへ導きます。構造体 init_state
は通常、この同じ関数を以前に呼び出したときの state
出力で、対応するインターリーバーには無関係です。
インターリーバーとデインターリーバーの組み合わせの使用
この関数を関数 convintrlv
の逆関数として使用するには、両関数とも同じ nrows
入力と slope
入力を使用します。その場合は、両関数は、nrows*(nrows-1)*slope
の複合遅延を考慮した後 convintrlv
に続いて convdeintrlv
を適用するとデータが変更されないという意味で逆関数といえます。遅延の詳細については、畳み込みインターリーブと畳み込みデインターリーブの遅延を参照してください。
例
MATLAB を使用して畳み込みインターリーブされたデータの再生に対する遅延の影響の例では convdeintrlv
を使用してデータ復元時のインターリーバー/デインターリーバーの組み合わせの遅延の処理方法を示します。
muxdeintrlv
のリファレンス ページの例はこの関数での state
出力および init_state
入力の使用方法を示します。この関数のプロセスは同じです。
詳細
参考文献
[1] Heegard, Chris and Stephen B. Wicker. Turbo Coding. Boston: Kluwer Academic Publishers, 1999.
バージョン履歴
R2006a より前に導入