Main Content

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

comm.DPSKModulator

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

説明

comm.DPSKModulator オブジェクトは、M-ary 差動位相偏移変調メソッドを使用して信号を変調します。出力は、変調信号のベースバンド表現です。

差動位相シフト信号を変調するには、以下の手順に従います。

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

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

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

作成

説明

dpskmod = comm.DPSKModulator は、M-ary 差動位相偏移変調 (M-DPSK) メソッドを使用して入力信号を変調する変調器 System object™ を作成します。

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

dpskmod = comm.DPSKModulator(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)] の整数シンボル値から成る列ベクトルでなければなりません。ここで、MModulationOrder プロパティの値を表します。

  • このプロパティを true に設定すると、入力は、長さが log2(ModulationOrder) の整数倍のビット値の列ベクトルにならなければなりません。このベクトルには、範囲 [0, (M – 1)] の整数を表すビット表現が含まれます。

データ型: logical

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

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

  • このプロパティを "Binary" に設定すると、範囲 [0, (M – 1)] の入力整数 L は出力位相をシフトします。MModulationOrder の値を表します。このシフトは、元の出力位相から (ϕ + 2×π×L / M) ラジアンになります。ϕ は PhaseRotation プロパティの値です。出力シンボルは exp(j×ϕ + j×2×π×L / M)× (previously modulated symbol) です。

依存関係

このプロパティは、BitInput プロパティを true に設定した場合に適用されます。

出力のデータ型。"double" または "single" として指定します。

使用法

説明

Y = dpskmod(X) は復調された DPSK ベースバンド信号を返します。

入力引数

すべて展開する

入力データ。整数として指定するか、数値データ型の整数または logical データ型のビットからなる列ベクトルとして指定します。

BitInput プロパティの設定は、入力データの解釈を決定します。

メモ

入力信号をバイナリの要素として処理するには、BitInput プロパティを 'true' に設定します。バイナリ入力の場合、行数は log2(M) の整数倍でなければなりません。この関数は、log2(M) ビットのグループをシンボルにマッピングします。ここで、最初のビットは MSB を表し、最後のビットは LSB を表します。

出力引数

すべて展開する

DPSK 変調されたベースバンド信号。列ベクトルとして返されます。

複素数のサポート: あり

オブジェクト関数

オブジェクト関数を使用するには、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 で導入