Main Content

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

comm.PSKModulator

M-PSK 法を使用した信号の変調

説明

PSKModulatorSystem object™ は、M-ary 位相シフト キーイング (M-PSK) 法を使用して変調します。出力は、変調信号のベースバンド表現です。

M-PSK 法を使用して信号を変調するには、次を行います。

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

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

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

作成

説明

mpskmod = comm.PSKModulator は、M-ary 位相シフト キーイング (M-PSK) 法を使用して、入力信号を変調する変調器 System object mpskmod を作成します。

mpskmod = comm.PSKModulator(Name,Value) は、指定の各プロパティが指定の値に設定された M-PSK 変調器オブジェクト mpskmod を作成します。(Name1,Value1,...,NameN,ValueN) のように、追加の名前と値のペアの引数を任意の順番で指定できます。

mpskmod = comm.PSKModulator(M,phase,Name,Value) は、M で指定された変調次数を使用して、M-PSK 変調器オブジェクト mpskmod を作成します。オブジェクトの PhaseOffset プロパティは phase に、他の指定プロパティは指定の値に設定されています。

プロパティ

すべて展開する

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

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

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

コンスタレーション点の数。正の整数スカラーで指定します。

コンスタレーションの 0 番目の点の位相 (ラジアン単位)。有限の実数値スカラーとして指定します。

ビットで入力するためのオプション。数値または logical 0 (false) または 1 (true) として指定します。

  • このプロパティを 0 (false) に設定する場合、入力値は、2 ビットの入力セグメントおよび 0-3 の範囲の整数表現でなくてはなりません。

  • このプロパティを 1 (true) に設定した場合、入力値は偶数長のバイナリ ベクトルでなければなりません。要素ペアは、整数のバイナリ表現です。

データ型: logical | char

信号コンスタレーションのビット マッピング。'Gray''Binary'、または 'Custom' として指定します。

  • 'Gray' — この値を使用して、グレイ符号化された信号コンスタレーションのマッピングを指定します。

  • 'Binary' — 整数 m は [0, ModulationOrder – 1] の範囲で、複素数値 exp(j(PhaseOffset + 2πm/ModulationOrder)) にマッピングしなければなりません。

  • 'Custom' — この値を使用して、CustomSymbolMapping プロパティで信号コンスタレーション マッピングを指定します。

データ型: char | double

カスタム コンスタレーションの符号化。[0, ModulationOrder – 1] の範囲の値の行ベクトルまたは列ベクトルとして指定します。このベクトルの長さは ModulationOrder プロパティの値と等しくなければなりません。このベクトルの最初の要素は PhaseOffset の角度にあるコンスタレーション点に対応し、続く要素は反時計回りに実行されます。最後の要素は、角度 – 2π/ModulationOrder + PhaseOffset のコンスタレーション点に対応します。

依存関係

このプロパティを有効にするには、SymbolMapping プロパティを 'Custom' に設定します。

データ型: double

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

固定小数点プロパティ

出力信号の固定小数点データ型。Signedness プロパティが Auto に設定された numerictype オブジェクトとして指定します。このタイプのオブジェクトを作成するには、関数 numerictype (Fixed-Point Designer) を使用します。

依存関係

このプロパティを有効にするには、OutputDataType プロパティを 'Custom' に設定します。

使用法

説明

mpsksignal = mpskmod(insignal) は、M-PSK 法を使用して入力信号を変調します。出力は変調した M-PSK ベースバンド信号です。

入力引数

すべて展開する

入力信号。整数またはビットの列ベクトルとして指定します。ベクトルは長さ NS でなければなりません。NS はサンプル数です。

BitInput プロパティの設定は、入力ベクトルの解釈を決定します。

データ型: double

出力引数

すべて展開する

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

オブジェクト関数

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

release(obj)

すべて展開する

constellation理想的なコンスタレーションの計算またはプロット
stepSystem object のアルゴリズムの実行
releaseリソースを解放し、System object のプロパティ値と入力特性の変更を可能にします。
resetSystem object の内部状態のリセット

すべて折りたたむ

8–PSK 信号を変調してホワイト ガウス ノイズを付加した後、信号をプロットしてノイズの影響を可視化します。

M-PSK 変調器 System object™ を作成します。オブジェクトの既定の変調次数は 8 です。

pskModulator = comm.PSKModulator;

信号を変調します。

modData = pskModulator(randi([0 7],2000,1));

加法性ホワイト ガウス ノイズ (AWGN) チャネルを通じて信号を渡して、変調された信号にホワイト ガウス ノイズを付加します。

channel = comm.AWGNChannel('EbNo',20,'BitsPerSymbol',3);

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

channelOutput = channel(modData);

ノイズのないデータとノイズのあるデータを散布図にプロットし、ノイズの影響を可視化します。

scatterplot(modData)

Figure Scatter Plot contains an axes. The axes with title Scatter plot contains an object of type line. This object represents Channel 1.

scatterplot(channelOutput)

Figure Scatter Plot contains an axes. The axes with title Scatter plot contains an object of type line. This object represents Channel 1.

EbNo プロパティを 10 dB に変更してノイズを増やします。

channel.EbNo = 10;

変調データを AWGN チャネルを介して渡します。

channelOutput = channel(modData);

チャネル出力をプロットします。増加したノイズの影響が分かります。

scatterplot(channelOutput)

Figure Scatter Plot contains an axes. The axes with title Scatter plot contains an object of type line. This object represents Channel 1.

カスタムのシンボル マッピングを使用する、16-PSK 変調器および復調器の System object™ を作成します。AWGN チャネルの BER を見積もり、性能を理論上のグレイ符号化 PSK システムと比較します。

16-PSK 変調方式のカスタムのシンボル マッピングを作成します。16 整数シンボルは 0 ~ 15 の間の値でなければなりません。

custMap = [0 2 4 6 8 10 12 14 15 13 11 9 7 5 3 1];

配列 custMap で定義されているカスタムのシンボル マッピングをもつ 16-PSK 変調器と復調器のペアを作成します。

pskModulator = comm.PSKModulator(16,'BitInput',true, ...
    'SymbolMapping','Custom','CustomSymbolMapping',custMap);
pskDemodulator = comm.PSKDemodulator(16,'BitOutput',true, ...
    'SymbolMapping','Custom','CustomSymbolMapping',custMap);

変調器のコンスタレーションを表示します。

constellation(pskModulator)

Figure contains an axes. The axes with title Constellation: 16-PSK,Custom Mapping,PhaseOffset=0.3927rad contains 19 objects of type line, text.

16 配列データを使用するために AWGN チャネル System object を作成します。

awgnChannel = comm.AWGNChannel('BitsPerSymbol',log2(16));

BER 統計を追跡するための誤り率オブジェクトを作成します。

errorRate = comm.ErrorRate;

シミュレーションのベクトルを初期化します。Eb/N0 は 6 から 18 dB の間で 1 dB 刻みで異なります。

ebnoVec = 6:18;
ber = zeros(size(ebnoVec));

変調したバイナリ データ AWGN チャネル経由で渡し、受信した信号を復調し、誤り統計を収集して BER を見積もります。

for k = 1:length(ebnoVec)
    
    % Reset the error counter for each Eb/No value
    reset(errorRate)
    % Reset the array used to collect the error statistics
    errVec = [0 0 0];
    % Set the channel Eb/No
    awgnChannel.EbNo = ebnoVec(k);
    
    while errVec(2) < 200 && errVec(3) < 1e7
        % Generate a 1000-symbol frame
        data = randi([0 1],4000,1);
        % Modulate the binary data
        modData = pskModulator(data);
        % Pass the modulated data through the AWGN channel
        rxSig = awgnChannel(modData);
        % Demodulate the received signal
        rxData = pskDemodulator(rxSig);
        % Collect the error statistics
        errVec = errorRate(data,rxData);
    end
    
    % Save the BER data
    ber(k) = errVec(1);
end

関数berawgnを使用して AWGN チャネルの理論上の BER データを生成します。

berTheory = berawgn(ebnoVec,'psk',16,'nondiff');

シミュレートされた結果と理論上の結果をプロットします。シミュレートされたカスタム シンボル マッピングの 16-PSK 変調の BER 性能は、グレイ符号の理論予測曲線ほど良くありません。

figure
semilogy(ebnoVec,[ber; berTheory])
xlabel('Eb/No (dB)')
ylabel('BER')
grid
legend('Simulation','Theory','location','ne')

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Simulation, Theory.

アルゴリズム

次に従って、入力ビットまたは整数を複素シンボルにマッピングすることにより、ブロックはベースバンド信号を出力します。

sn(t)=exp(jπ(2n+1M));n{0,1,,M1}.

これは、通常の 2 値符号の順序を使用する場合に適用されます。もう 1 つの一般的なマッピングはグレイ符号化で、利点は、変更されるのが隣接するコンスタレーション点の間の 1 ビットのみであることです。これにより、ビット誤り率の性能が向上します。グレイ符号化による 8-PSK 変調の入力シンボルと出力シンボル間のマッピングを示します。

入力出力
0 0 (000)
1 1 (001)
2 3 (011)
3 2 (010)
4 6 (110)
5 7 (111)
6 5 (101)
7 4 (100)

対応するコンスタレーション ダイアグラムは次のようになります。

入力信号がビットで構成されている場合、ブロックは整数を示すバイナリ値入力を受け入れます。ブロックは、受け取ったバイナリ値信号を、log2(M) ビットのグループに集約します。

拡張機能

参考

オブジェクト

関数

R2012a で導入