Main Content

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

comm.ConvolutionalInterleaver

同じプロパティ値のシフト レジスタを使用して、入力シンボルを並べ替える

説明

ConvolutionalInterleaver オブジェクトは、入力信号のシンボルを置換します。内部的には、このクラスは一連のシフト レジスタを使用します。

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

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

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

メモ

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

構築

H = comm.ConvolutionalInterleaver は、畳み込みインターリーバー System object H を作成します。これは、一連のシフト レジスタを使用して入力信号内のシンボルを置換します。

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

プロパティ

NumRegisters

内部シフト レジスタの数

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

RegisterLengthStep

連続する各シフト レジスタに組み込む追加のシンボル数

連続する各シフト レジスタに組み込む追加のシンボル数を正のスカラー整数で指定します。既定の設定は 2 です。最初のレジスタはゼロ シンボルを保持します。

InitialConditions

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

各シフト レジスタに最初に格納される値を数値スカラーまたはベクトルとして指定します。最初のシフト レジスタはゼロ遅延であるため、値を指定する必要はありません。既定の設定は 0 です。最初のシフト レジスタの遅れがゼロであるため、このプロパティの最初の要素の値は重要ではありません。このプロパティをスカラーに設定した場合、最初のシフト レジスタを除くすべてのシフト レジスタには、同一の指定値が格納されます。これを NumRegisters プロパティの値と同じ長さの列ベクトルに設定した場合、i 番目のシフト レジスタは指定のベクトルの i 番目の要素を格納します。

メソッド

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

拡張機能

R2012a で導入