Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

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 内の要素の順序を復元します。k 番目のシフト レジスタの遅延値は (nrows-k)*slope です。ここで、k = 1, 2, 3,..., nrows です。関数がデータを処理する前に、すべてのシフト レジスタをゼロで初期化します。data が複数の行と列をもつ行列である場合、この関数は列を個別に処理します。

[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 より前に導入