メインコンテンツ

comm.DBPSKDemodulator

DBPSK メソッドを使って復調する

説明

comm.DBPSKDemodulator System object™ は、差動 2 相位相偏移変調 (DBPSK) メソッドを使用して変調された信号を復調します。入力は、変調信号のベースバンド表現です。

DBPSK 変調信号を復調するには、次のようにします。

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

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

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

作成

説明

dbpskdemod = comm.DBPSKDemodulator は、DBPSK 復調器 System object dbpskdemod を作成します。このオブジェクトは、DBPSK メソッドを使用して入力信号を復調します。

dbpskdemod = comm.DBPSKDemodulator(phase) はさらに、PhaseRotation プロパティを phase に設定します。

dbpskdemod = comm.DBPSKDemodulator(___,Name=Value) は、前述の任意の構文を使用して DBPSK 復調器オブジェクトを作成し、名前と値の引数を 1 つ以上使用してプロパティを設定します。たとえば、OutputDataType="double" は、出力のデータ型を "double" に設定します。

プロパティ

すべて展開する

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

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

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

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

データ型: double

復調の判定方法。"Hard decision" または "Approximate log-likelihood ratio" として指定します。"Hard decision" に設定すると、復調器はビット値の列ベクトルを出力します。"Approximate log-likelihood ratio" に設定すると、オブジェクトは 0 に対して正の値を、1 に対して負の値を生成します。

ノイズ分散のソース。"Property" または "Input port" として指定します。

依存関係

このプロパティを有効にするには、DecisionMethod プロパティを "Approximate log-likelihood ratio" に設定します。

ノイズ分散。非負のスカラーとして指定します。

依存関係

このプロパティを有効にするには、VarianceSource プロパティを "Property" に設定します。

データ型: double

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

依存関係

このプロパティを有効にするには、DecisionMethod プロパティを "Hard decision" に設定します。DecisionMethod"Approximate log-likelihood ratio" に設定すると、出力データ型は入力データ型と同じになります。

使用法

説明

Y = dbpskdemod(X) は、DBPSK 変調された波形に DBPSK 復調を適用し、復調された入力信号を返します。

Y = dbpskdemod(X,nvar) は、Variance プロパティを nvar に設定して、GMSK 復調された入力信号を返します。この構文は、VarianceSource"Input port" に設定し、DecisionMethod"Approximate log-likelihood ratio" に設定した場合に適用されます。

入力引数

すべて展開する

入力データ。スカラーまたは列ベクトルとして指定します。

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

ノイズ分散。非負のスカラーとして指定します。

依存関係

この引数を有効にするには、VarianceSource"Input port" に設定し、DecisionMethod"Approximate log-likelihood ratio" に設定します。

データ型: single | double

出力引数

すべて展開する

出力データ。スカラーまたは列ベクトルとして返されます。YX と同じ長さです。Y に返される値は、DecisionMethod プロパティの設定によって異なります。

  • DecisionMethod"Hard decision" に設定すると、Y は要素の値が 0 または 1 の列ベクトルになります。

  • DecisionMethod'Approximate log-likelihood ratio' に設定すると、Y は、0 を表す正の値と 1 を表す負の値をもつ近似対数尤度比の列ベクトルになります。

出力データ型を指定するには、OutputDataType プロパティを使用します。ただし、DecisionMethod"Approximate log-likelihood ratio" に設定すると、出力データ型は入力データ型と同じになります。

オブジェクト関数

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

release(obj)

すべて展開する

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

すべて折りたたむ

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

dbpskmod = comm.DBPSKModulator(pi/4);
dbpskdemod = comm.DBPSKDemodulator(pi/4);

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

errorRate = comm.ErrorRate('ComputationDelay',1);

信号の処理を行います。処理には以下のステップが含まれます。

  1. 50 ビットのフレームを生成します。

  2. 信号を DBPSK 変調します。

  3. AWGN チャネルを通して、変調された信号を渡します。

  4. ノイズを含む信号を DBPSK 復調します。

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

for counter = 1:100
    txData = randi([0 1],50,1);
    modSig = dbpskmod(txData);
    rxSig = awgn(modSig,7);
    rxData = dbpskdemod(rxSig);
    errorStats = errorRate(txData,rxData);
end

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

ber = errorStats(1)
ber = 
0.0034
numErrors = errorStats(2)
numErrors = 
17
numBits = errorStats(3)
numBits = 
4999

差動 2 相位相偏移変調 (DBPSK) 変調器オブジェクトを作成します。

DBPSKMod = comm.DBPSKModulator;

判定方法が近似対数尤度比である DBPSK 復調器オブジェクトを作成します。

DBPSKDemod = comm.DBPSKDemodulator(DecisionMethod="Approximate log-likelihood ratio");

計算遅延が 1 であるエラー レート計算機オブジェクトを作成します。

ber = comm.ErrorRate(ComputationDelay=1);

10 フレームの送受信をシミュレーションするためにループ処理します。

for counter = 1:10
% Transmit a 100-symbol frame
data = randi([0 1],100,1);                % Generate random binary data
modSignal = DBPSKMod(data);               % Modulate the data using DBPSK
noisySignal = awgn(modSignal,5);          % Pass the modulated signal through AWGN channel
receivedData = DBPSKDemod(noisySignal);   % Demodulate the received signal
errorStats = ber(data, receivedData < 0); % Calculate the error statistics
end

すべての反復後のエラー レートと誤り数を表示します。

fprintf('Error rate = %f\nNumber of errors = %d\n', ...
    errorStats(1), errorStats(2))                
Error rate = 0.024024
Number of errors = 24

アルゴリズム

DBPSK 復調器は、現在のシンボルを前のシンボルと比較します。θπ+θ の位相差をそれぞれ 01 の出力にマッピングします。ここで、θPhaseRotation パラメーターです。

拡張機能

すべて展開する

バージョン履歴

R2012a で導入

すべて展開する