Main Content

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

comm.ConvolutionalDeinterleaver

シフト レジスタを使用してシンボルの順序を復元

説明

ConvolutionalDeinterleaver オブジェクトは、畳み込みインターリーバー オブジェクトを使用してインターリーブされた信号を復元します。2 つのブロックのパラメーターが同じ値をもたなければなりません。

畳み込みインターリーブされたバイナリ データを復元するには、以下の手順に従います。

  1. 畳み込みデインターリーバー オブジェクトを定義および設定します。構築を参照してください。

  2. step を呼び出して、comm.ConvolutionalDeinterleaver のプロパティに従い、畳み込みデインターリーブを行います。step の動作は、ツールボックスの各オブジェクト固有のものです。

メモ

R2016b 以降では、step メソッドを使用して、System object™ によって定義された演算を実行する代わりに、引数を関数であるかのように使ってオブジェクトを呼び出すことができます。たとえば、y= step(obj,x)y = obj(x) は同等の演算を実行します。

構築

H = comm.ConvolutionalDeinterleaver は、畳み込みデインターリーバー System object H を作成します。このオブジェクトは、畳み込みインターリーバー System object を使用してインターリーブされたシーケンスの元の順序を復元します。

H = comm.ConvolutionalDeinterleaver(Name,Value) は、指定の各プロパティが指定の値に設定された畳み込みデインターリーバー System object H を作成します。(Name1,Value1,...,NameN,ValueN) のように、追加の名前と値のペアの引数を任意の順番で指定できます。

プロパティ

NumRegisters

内部シフト レジスタの数

内部シフト レジスタの数をスカラーの正の整数として指定します。既定の設定は 6 です。

RegisterLengthStep

連続する各シフト レジスタのシンボル容量の差

最後のレジスタが正のスカラー整数でゼロ シンボルをもつ、連続する各シフト レジスタのシンボル容量の差を指定します。既定の設定は 2 です。

InitialConditions

シフト レジスタの初期条件

各シフト レジスタに、数値のスカラーまたはベクトルとして開始時に格納される、ゼロ遅延をもつ最後のシフト レジスタ以外の値を指定します。このプロパティをスカラーに設定した場合、最後のシフト レジスタを除くすべてのシフト レジスタには、同一の指定値が格納されます。また、このプロパティを NumRegisters プロパティの値に等しい長さの列ベクトルに設定することもできます。この設定によって、i 番目のシフト レジスタは、指定されたベクトルの (N–i+1) 番目の要素を格納します。最後のシフト レジスタの遅れがゼロであるため、このプロパティの最初の要素の値は重要ではありません。既定の設定は 0 です。

メソッド

reset畳み込みデインターリーバー オブジェクトの状態のリセット
stepシフト レジスタを使用してシンボルの順序を復元
すべての System object に共通
release

System object のプロパティ値の変更の許可

すべて折りたたむ

畳み込みインターリーバーおよびデインターリーバー オブジェクトを作成します。

interleaver = comm.ConvolutionalInterleaver('NumRegisters',2, ...
    'RegisterLengthStep',3);
deinterleaver = comm.ConvolutionalDeinterleaver('NumRegisters',2, ...
    'RegisterLengthStep',3);

データを生成し、畳み込みインターリーバーを経由してデータを渡します。インターリーブ データを畳み込みデインターリーバーを経由して渡します。

data = (0:20)';
intrlvData = interleaver(data);
deintrlvData = deinterleaver(intrlvData);

元のシーケンス、インターリーブ シーケンス、復元されたシーケンスを表示します。

[data intrlvData deintrlvData]
ans = 21×3

     0     0     0
     1     0     0
     2     2     0
     3     0     0
     4     4     0
     5     0     0
     6     6     0
     7     1     1
     8     8     2
     9     3     3
      ⋮

インターリーバーとデインターリーバーのペアを経由するときの遅延は、NumRegisters プロパティと RegisterLengthStep プロパティの積に等しくなります。この遅延を考慮して、元のデータとデインターリーブしたデータが同一であることを確認します。

intrlvDelay = interleaver.NumRegisters * interleaver.RegisterLengthStep
intrlvDelay = 6
numSymErrors = symerr(data(1:end-intrlvDelay),deintrlvData(1+intrlvDelay:end))
numSymErrors = 0

アルゴリズム

このオブジェクトは、Convolutional Deinterleaver ブロックのリファレンス ページで説明されているアルゴリズム、入力、および出力を実装しています。オブジェクト プロパティはブロック パラメーターに対応します。

拡張機能

R2012a で導入