Main Content

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

comm.gpu.ConvolutionalDeinterleaver

GPU によるシフト レジスタを使用したシンボル順序の復元

説明

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

メモ

このオブジェクトを使用するには、Parallel Computing Toolbox™ のライセンスをインストールして対象 GPU へのアクセス権を入手しなければなりません。GPU の詳細は、GPU 計算 (Parallel Computing Toolbox)を参照してください。

GPU ベースの System object™ は、gpuArray クラスを使用して作成された一般的な MATLAB® 配列またはオブジェクトを受け入れます。GPU ベースの System object は、倍精度または単精度データ型の入力信号をサポートします。出力信号のデータ型は、入力信号から継承されます。

  • 入力信号が MATLAB 配列の場合、System object は CPU と GPU の間のデータ転送を処理します。出力信号は MATLAB 配列です。

  • 入力信号が gpuArray の場合、データは GPU に残ります。出力信号は gpuArray です。オブジェクトに gpuArray が渡されると、計算がすべて GPU 上で実行され、データ転送は発生しません。gpuArray 引数を渡すことにより、シミュレーション時間が短縮されてパフォーマンスが向上します。詳細については、GPU での配列の確立 (Parallel Computing Toolbox)を参照してください。

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

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

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

メモ

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

構築

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

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

H = comm.gpu.ConvolutionalDeinterleaver(M,B,IC) は、NumRegisters プロパティを M に、RegisterLengthStep プロパティを B に、InitialConditions プロパティを IC に設定して、畳み込みデインターリーバー System object H を作成します。MB、および IC は値のみの引数です。値のみの引数を指定するには、先行するすべての値のみの引数も指定しなければなりません。

プロパティ

NumRegisters

内部シフト レジスタの数

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

RegisterLengthStep

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

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

InitialConditions

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

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

メソッド

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

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

すべて折りたたむ

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

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

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

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

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

[data intrlvData deintrlvData]
ans =

     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
    10    10     4
    11     5     5
    12    12     6
    13     7     7
    14    14     8
    15     9     9
    16    16    10
    17    11    11
    18    18    12
    19    13    13
    20    20    14

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

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

     6


numSymErrors =

     0

アルゴリズム

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

拡張機能

R2012a で導入