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 内の要素の順序を復元します。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 入力の使用方法を示します。この関数のプロセスは同じです。

詳細

すべて折りたたむ

畳み込みインターリーブと畳み込みデインターリーブの遅延

畳み込みインターリーバーと畳み込みデインターリーバーのペアによる合計遅延は N × slope × (N – 1) です。

  • N はレジスタの数で、引数 nrows の値と同じ

  • slope はレジスタの長さのステップで、引数 slope の値と同じ

次の図は、シフト レジスタのセットで構成される一般的な畳み込みインターリーバーの構造を示しています。各シフト レジスタには、D(1)、D(2)、...、D(N) として示される指定された遅延と、入力を切り替え、レジスタを経由してシンボルを出力するコミュテーターがあります。k 番目のシフト レジスタは D(k) 個のシンボルを保持します。ここで k = 1, 2, 3, … N です。k 番目のシフト レジスタの遅延値は ((k–1) × slope) です。新しい入力シンボルごとに、コミュテーターは新しいレジスタに切り替わり、新しいシンボルをシフトインしながら、そのレジスタ内の最も古いシンボルをシフトアウトします。コミュテーターが N 番目のレジスタに到達し、次の新しい入力が発生すると、コミュテーターは最初のレジスタに戻ります。

General convolutional interleaver showing the set of shift registers, the delay values D(1), D(2),..., D(N) for each register, and a commutator to switch input and output symbols through registers

参考文献

[1] Heegard, Chris and Stephen B. Wicker. Turbo Coding. Boston: Kluwer Academic Publishers, 1999.

バージョン履歴

R2006a より前に導入