Main Content

dpskdemod

差動位相偏移変調復調

説明

z = dpskdemod(y,M) は、変調次数 M をもつ DPSK 変調信号の複素エンベロープ y を復調します。

z = dpskdemod(y,M,phaserot) は、DPSK 変調の位相回転を指定します。

z = dpskdemod(y,M,phaserot,symorder) はシンボル順序も指定します。

すべて折りたたむ

位相シフトが導入された通信チャネルの DPSK データを復調します。

4 値データ ベクトルを生成し、DPSK を使用して変調します。

M = 4;                          % Alphabet size
dataIn = randi([0 M-1],1000,1); % Random message
txSig = dpskmod(dataIn,M);      % Modulate

送信プロセスの結果であるランダム位相シフトを適用します。

rxSig = txSig*exp(2i*pi*rand());

受信信号を復調します。

dataOut = dpskdemod(rxSig,M);

変調器と復調器は同じ初期条件をもちます。ただし、受信信号でのみ位相のシフトが発生します。このため、最初に復調されたシンボルは誤っている可能性が高くなります。したがって、DPSK を使用する場合は最初のシンボルは必ず破棄してください。

シンボル誤りの数を確認します。

errs = symerr(dataIn,dataOut)
errs = 1

1 つのシンボルに誤りがあります。最初のシンボルを破棄してから、誤り計算を繰り返します。

errs = symerr(dataIn(2:end),dataIn(2:end))
errs = 0

入力引数

すべて折りたたむ

DPSK 変調された入力信号。実数または複素数のベクトルまたは行列として指定します。y が行列の場合、関数は列を個別に処理します。

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

変調次数。2 の整数乗で指定します。

例: 2 | 4 | 16

データ型: double

DPSK 変調の位相回転。ラジアン単位の実数スカラーで指定します。1 シンボルあたりの合計位相シフトは phaserot と差分変調により生成される位相の和です。

phaserot を空として指定した場合、dspkdemod は 0 度の位相回転を使用します。

例: pi/4

データ型: double

シンボルの順序。'bin' または 'gray' で指定します。この引数は、どのようにバイナリ ベクトルを対応する整数に割り当てるかを指定します。

  • symorder'bin' に設定されている場合、関数はバイナリ符号の順序を使用します。

  • symorder'gray' に設定されている場合、関数はグレイ符号の順序を使用します。

データ型: char

出力引数

すべて折りたたむ

DPSK 復調された出力信号。入力信号 y と同じ列数をもつベクトルまたは行列として返されます。

メモ

この関数で使用される差分アルゴリズムでは、変調した信号の 2 つの連続する要素が比較されます。ベクトル z の最初の要素、または行列 z の最初の行を判定するために、この関数では 0 の初期位相回転が使用されます。

拡張機能

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

R2006a より前に導入