Main Content

comm.DPSKDemodulator

M-ary DPSK 手法を使用した復調

説明

comm.DPSKDemodulator オブジェクトは、M-ary 差動位相偏移変調 (M-DPSK) メソッドを使用して変調された信号を復調します。入力は、変調信号のベースバンド表現です。このオブジェクトの入力と出力はともに離散時間信号です。このオブジェクトは、スカラー値または列ベクトルの入力信号を受け入れます。

差動位相偏移変調で変調された信号を復調するには、以下のようにします。

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

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

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

作成

説明

dpskdemod = comm.DPSKDemodulator は復調器 System object™ を作成します。このオブジェクトは、M-ary 差動位相偏移変調 (M-DPSK) メソッドを使って入力信号を復調します。

dpskdemod = comm.DPSKDemodulator(Name=Value) は、名前と値の引数を 1 つ以上使用してプロパティを設定します。

dpskdemod = comm.DPSKDemodulator(M,phase,Name=Value) は、ModulationOrder プロパティを M に設定し、PhaseRotation プロパティを phase に設定し、さらにオプションで名前と値の引数を使用して、M-DPSK 復調器オブジェクトを作成します。

プロパティ

すべて展開する

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

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

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

信号コンスタレーション点の数。正の整数として指定します。

データ型: double

以前の変調シンボルと現在の変調シンボルの間の追加の位相シフト (ラジアン単位)。スカラーとして指定します。この値は、入力が 0 の場合の以前の変調シンボルと現在の変調シンボルの間の位相差に対応します。

データ型: double

出力データをビットとして提供するオプション。数値または logical 0 (false) または 1 (true) として指定します。

  • このプロパティを false に設定した場合、System object の出力は範囲 [0, (M – 1)] の整数シンボル値から成る列ベクトルになります。ここで、M は ModulationOrder プロパティの値を表します。

  • このプロパティを true に設定した場合、出力は長さが log2(ModulationOrder) の整数倍であるビット値から成る列ベクトルになります。このベクトルには、範囲 [0, (M – 1)] の整数を表すビット表現が含まれます。

データ型: logical

コンスタレーション符号化。"Gray" または "Binary" として指定します。このプロパティは、オブジェクトが整数または log2(ModulationOrder) 入力ビット グループを対応する変調信号にマップする方法を制御します。

  • このプロパティを "Gray" に設定すると、オブジェクトはグレイ符号化された信号コンスタレーションを使用します。

  • このプロパティを "Binary" に設定すると、範囲 [0, (M – 1)] の入力整数 L は現在のシンボルにマップします。このマッピングでは exp(j×ϕ + j×2×π×L / M)× (previously modulated symbol) を使用します。ϕ は PhaseRotation プロパティの値です。

出力のデータ型。"Full precision""Smallest unsigned integer""double""single""int8""uint8""int16""uint16""int32""uint32"、または "logical" として指定します。

  • 入力データ型が単精度または倍精度で、このプロパティを "Full precision" に設定した場合、出力データ型は入力のデータ型と同じになります。

  • BitOutput プロパティを true に設定した場合にのみ、データ型 "logical" が有効なオプションになります。

データ型: char | string

使用法

説明

Y = dpskdemod(X) は、M-DPSK 手法を使用して入力信号を復調します。

入力引数

すべて展開する

M-DPSK 変調された信号。スカラーまたは列ベクトルとして指定します。

データ型: double | single
複素数のサポート: あり

出力引数

すべて展開する

出力信号。スカラーまたは列ベクトルとして返されます。オブジェクトが値を整数として出力するかビットとして出力するかを指定するには、BitOutput プロパティを使用します。出力データ型は、OutputDataType プロパティによって決まります。

オブジェクト関数

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

release(obj)

すべて展開する

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

すべて折りたたむ

DPSK 変調器と復調器のペアを作成します。

bps = 3;   % Bits per symbol
M = 2^bps; % Modulation order  
dpskmod = comm.DPSKModulator(M,pi/8,BitInput=true);
dpskdemod = comm.DPSKDemodulator(M,pi/8,BitOutput=true);

エラー レート計算機を作成します。差分変調によって生じる 1 ビットの遷移に対応するため、ComputationDelay プロパティを 1 に設定します。

errorRate = comm.ErrorRate(ComputationDelay=1);

次のメイン ステップから成るデータ フレーム処理ループを実行します。

  1. 150 個の 3 ビット シンボルから成るデータ フレームを生成します。

  2. データを 8-DPSK 変調します。

  3. AWGN チャネルを通してデータをフィルター処理します。

  4. データを 8-DPSK 復調します。

  5. 誤り統計を収集します。

numframes = 100; % Number of frames
spf = 150;       % Symbols per frame
snr = convertSNR(10,"ebno","snr",BitsPerSymbol=3);
for counter = 1:numframes
    txData = randi([0 1],spf,1);
    modSig = dpskmod(txData);
    rxSig = awgn(modSig,snr,'measured');
    rxData = dpskdemod(rxSig);
    errorStats = errorRate(txData,rxData);
end

誤りの統計を表示します。

ber = errorStats(1)
ber = 0.0095
numErrors = errorStats(2)
numErrors = 143
numBits = errorStats(3)
numBits = 14999

アルゴリズム

すべて展開する

拡張機能

バージョン履歴

R2012a で導入