Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

pskmod

位相シフト キーイング変調

説明

y = pskmod(x,M) は、変調次数 M の位相シフト キーイング (PSK) を用いて入力信号 x を変調します。

y = pskmod(x,M,ini_phase) は、PSK 変調された信号の初期位相を指定します。

y = pskmod(x,M,ini_phase,symorder) は、PSK 変調された信号のシンボル順序を指定します。

すべて折りたたむ

QPSK 信号と 16-PSK 信号を変調し、コンスタレーションをプロットします。

QPSK

変調次数を 4 に設定します。

M = 4;

ランダム データ シンボルを生成します。

data = randi([0 M-1],1000,1);

データ シンボルを変調します。

txSig = pskmod(data,M,pi/M);

ホワイト ノイズを通して信号を渡し、そのコンスタレーションをプロットします。

rxSig = awgn(txSig,20);
scatterplot(rxSig)

16-PSK

変調次数を 4 から 16 に変更します。

M = 16;

ランダム データ シンボルを生成します。

data = randi([0 M-1],1000,1);

データ シンボルを変調します。

txSig = pskmod(data,M,pi/M);

ホワイト ノイズを通して信号を渡し、そのコンスタレーションをプロットします。

rxSig = awgn(txSig,20);
scatterplot(rxSig)

ランダムなシンボルを生成します。

dataIn = randi([0 3],1000,1);

データを QPSK 変調します。

txSig = pskmod(dataIn,4,pi/4);

AWGN チャネルを通して信号を渡します。

rxSig = awgn(txSig,10);

受信信号を復調し、シンボル誤りの数を計算します。

dataOut = pskdemod(rxSig,4,pi/4);
numErrs = symerr(dataIn,dataOut)
numErrs = 2

グレイ バイナリ符号化データと通常のバイナリ符号化データの PSK シンボル マッピングをプロットします。

変調次数を設定し、コンスタレーション点の完全なセットを含むデータ シーケンスを作成します。

M = 8;
data = (0:M-1);
phz = 0;

グレイ バイナリ符号化データと通常のバイナリ符号化データを使用してデータを変調および復調します。

symgray = pskmod(data,M,phz,'gray');
mapgray = pskdemod(symgray,M,phz,'gray');

symbin = pskmod(data,M,phz,'bin');
mapbin = pskdemod(symbin,M,phz,'bin');

いずれかのシンボル セットを使用してコンスタレーション点をプロットします。コンスタレーション点ごとに、各シンボルのグレイ バイナリ値と通常のバイナリ値を示すラベルを割り当てます。

  • グレイ バイナリ シンボル マッピングでは、隣接するコンスタレーション点は 1 バイナリ ビットだけ異なり、数値上で逐次的になっていません。

  • 通常のバイナリ シンボル マッピングでは、隣接するコンスタレーション点は通常のバイナリ符号化に従い、逐次的になります。

scatterplot(symgray,1,0,'b*');
for k = 1:M
    text(real(symgray(k))-0.2,imag(symgray(k))+.15,...
        dec2base(mapgray(k),2,4));
     text(real(symgray(k))-0.2,imag(symgray(k))+.3,...
         num2str(mapgray(k)));
    
    text(real(symbin(k))-0.2,imag(symbin(k))-.15,...
        dec2base(mapbin(k),2,4),'Color',[1 0 0]);
    text(real(symbin(k))-0.2,imag(symbin(k))-.3,...
        num2str(mapbin(k)),'Color',[1 0 0]);
end
axis([-2 2 -2 2])

入力引数

すべて折りたたむ

入力信号。正の整数のベクトルまたは行列として指定します。x の要素は、[0, M-1] の範囲の値をもたなければなりません。

例: randi([0 3],100,1)

データ型: double

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

例: 2 | 4 | 16

データ型: double

PSK 変調の初期位相。ラジアン単位の実数スカラーで指定します。

ini_phase を空として指定した場合、pskmod は 0 の初期位相を使用します。

例: pi/4

データ型: double

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

  • symorder'bin' に設定されている場合、関数は通常の 2 値符号の順序を使用します。

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

データ型: char

出力引数

すべて折りたたむ

PSK 変調された信号の複素ベースバンド表現。複素数値のベクトルまたは行列として返されます。y の列は独立したチャネルを表します。

R2006a より前に導入