Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

comm.gpu.BlockDeinterleaver

ブロック インターリーブされたシーケンス順序の GPU による復元

このオブジェクトを使用するには、Parallel Computing Toolbox™ がインストールされており、サポートされる GPU にアクセスできなければなりません。ホスト コンピューターに GPU が構成されている場合、処理には GPU が使用されます。そうでない場合、処理には CPU が使用されます。GPU の詳細については、GPU 計算 (Parallel Computing Toolbox)を参照してください。

説明

comm.gpu.BlockDeinterleaver System object™ は、ブロック デインターリーバー System object を使用してインターリーブされたシーケンスの元の順序を復元します。

入力ベクトルをデインターリーブするには、以下の手順に従います。

  1. comm.gpu.BlockDeinterleaver オブジェクトを作成し、そのプロパティを設定します。

  2. 関数と同様に、引数を指定してオブジェクトを呼び出します。

System object の機能の詳細については、System object とはを参照してください。

作成

説明

gpublockdeinterleaver = comm.gpu.BlockDeinterleaver は、ブロック インターリーブされたシーケンスの元の順序を復元する GPU ベースのブロック デインターリーバーの System object を作成します。

gpublockdeinterleaver = comm.gpu.BlockDeinterleaver(Name=Value) は、GPU ベースのブロック デインターリーバー オブジェクトを作成し、名前と値の引数を 1 つ以上使用してプロパティを設定します。たとえば、gpublockinterleaver = comm.gpu.BlockDeinterleaver(PermutationVector=[2;1;4;3]) は、4 要素入力信号の置換ベクトルを指定します。

gpublockdeinterleaver = comm.gpu.BlockDeinterleaver(permvec) は、GPU ベースのブロック デインターリーバー オブジェクトを作成し、PermutationVector プロパティを permvec に設定します。

プロパティ

すべて展開する

特に指定がない限り、プロパティは "調整不可能" です。つまり、オブジェクトの呼び出し後に値を変更することはできません。オブジェクトは呼び出すとロックされ、ロックを解除するには関数 release を使用します。

プロパティが "調整可能" の場合、その値をいつでも変更できます。

プロパティ値の変更の詳細については、System object を使用した MATLAB でのシステム設計を参照してください。

この プロパティ は読み取り専用です。

置換ベクトルのソース。'Property' として指定します。

置換ベクトル。整数の列ベクトルとして指定します。この入力ベクトルは、入力信号の並べ替えに使用するマッピングを指定します。置換ベクトルは、長さが入力信号の長さと等しくなければならず、範囲 [1 length(x)] の各整数が含まれていなければなりません。

データ型: double

使用法

説明

y = gpublockdeinterleaver(x) は、PermutationVector プロパティで指定されたブロック インターリーバーを使用して、インターリーブされた入力信号の元の順序を復元します。

入力引数

すべて展開する

入力信号。列ベクトルとして指定します。

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical | fi
複素数のサポート: あり

出力引数

すべて展開する

出力信号。長さとデータ型が入力信号 x と同じである列ベクトルとして返されます。出力には、範囲 [1 length(x)] の各整数 k について、y(PermutationVector(k)) = x(k) としてマッピングされた入力信号の要素が含まれます。

オブジェクト関数

オブジェクト関数を使用するには、System object を最初の入力引数として指定します。たとえば、obj という名前の System object のシステム リソースを解放するには、次の構文を使用します。

release(obj)

すべて展開する

stepSystem object のアルゴリズムの実行
releaseリソースを解放し、System object のプロパティ値と入力特性の変更を可能にします。

すべて折りたたむ

GPU ベースのインターリーバー オブジェクトとデインターリーバー オブジェクトを作成します。

特定の置換ベクトルの設定

interleaver = comm.gpu.BlockInterleaver([3 4 1 2]');
deinterleaver = comm.gpu.BlockDeinterleaver([3 4 1 2]');

ランダム データをインターリーバーとデインターリーバーを介して渡します。入力データ ベクトルの長さは、PermutationVector プロパティの長さと等しくなければなりません。関数 randi を使用して、範囲 [1, 7] の整数値で構成された入力データからなる 4 行 1 列の列ベクトルを生成します。

data = randi(7,length(interleaver.PermutationVector),1);
intData = interleaver(data);
deintData = deinterleaver(intData);

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

[data intData deintData]
ans = 4×3

     6     1     6
     7     7     7
     1     6     1
     7     7     7

元のデータとデインターリーブしたデータが同一であることを確認します。

isequal(data,deintData)
ans = logical
   1

ランダムな置換ベクトルの設定

関数 randperm を使用して、一意の整数からなる 8 行 1 列のランダムなベクトルを生成します (このベクトルを置換ベクトルとして使用します)。

permVec = randperm(8)';

permVec を、GPU ベースのインターリーバー オブジェクトおよびデインターリーバー オブジェクトの置換ベクトルとして指定します。

interleaver = comm.gpu.BlockInterleaver(permVec);
deinterleaver = comm.gpu.BlockDeinterleaver(permVec);

ランダム データをインターリーバーとデインターリーバーを介して渡します。

data = randi(10,length(interleaver.PermutationVector),1);
intData = interleaver(data);
deintData = deinterleaver(intData);

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

[data intData deintData]
ans = 8×3

    10     5    10
     5     8     5
     9     9     9
     2     2     2
     5    10     5
    10     5    10
     8    10     8
    10    10    10

元のデータとデインターリーブしたデータが同一であることを確認します。

isequal(data,deintData)
ans = logical
   1

詳細

すべて展開する

拡張機能

バージョン履歴

R2012a で導入