メインコンテンツ

mskdemod

説明

Z = mskdemod(Y,nsamp) は、最小偏移変調 (MSK) 方式で変調された信号 Y に差分符号化 MSK 方式の復調を適用し、復調された入力信号を返します。

Z = mskdemod(Y,nsamp,dataenc) は、MSK のデータ符号化方式を指定します。

Z= mskdemod(Y,nsamp,dataenc,initphase) は、MSK 復調器の初期位相を指定します。

Z= mskdemod(Y,nsamp,dataenc,initphase,initstate) は、MSK 復調器の初期状態を指定します。

[Z,phaseout] = mskdemod(___) は、前述の構文における入力引数の任意の組み合わせについて、Y の最終位相を返します。

[Z,phaseout,stateout] = mskdemod(___) は、前述の構文における入力引数の任意の組み合わせについて、以前に受信した信号の最後のシンボルに対応するサンプル値を返します。

すべて折りたたむ

ノイズを含む最小偏移変調 (MSK) 信号を復調します。ビット エラー数を表示します。

MSK 信号のシンボルあたりのサンプル数を 16 に設定します。

nsamp = 16;

シミュレーション パラメーターを初期化します。

numerrs = 0; 
modPhase = zeros(1,2);    
demodPhase = zeros(1,2);  
demodState = complex(zeros(nsamp,2));

主処理ループには以下のステップが含まれます。

  1. バイナリ データを生成します。

  2. データに MSK 変調を適用します。

  3. 加法性ホワイト ガウス ノイズ チャネル経由で信号を渡します。

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

  5. ビット エラー数を求めます。

for iRuns = 1:20
    txData = randi([0 1],100,2);
    [modSig,modPhase] = mskmod(txData,nsamp,[],modPhase);
    rxSig = awgn(modSig,20,'measured');
    [rxData,demodPhase,demodState] = mskdemod(rxSig,nsamp,[],demodPhase,demodState);
    numerrs = numerrs + biterr(txData,rxData);
end

ビット エラー数を表示します。

numerrs
numerrs = 
0

入力引数

すべて折りたたむ

MSK 変調された信号。ベクトルまたは行列として指定します。Y が行列の場合、関数は列を個別に処理します。

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

MSK シンボルあたりのサンプル数。正の整数として指定します。

データ型: single | double

データ符号化方式。次のいずれかのオプションとして指定します。

  • "diff" — 差分符号化された MSK を使用します。

  • "nondiff" — 非差分符号化された MSK を使用します。

  • [] — 既定値のオーバーライドを回避するために使用します。

MSK 復調器の初期位相 (ラジアン単位)。pi/2 の整数倍の値をもつスカラーまたは行ベクトルとして指定します。initphase の長さは Y のチャネル数と等しくなります。

データ型: single | double

復調器の初期状態。nsamp1 列の列ベクトルまたは nsampC 列の行列として指定します。CY のチャネル数です。引数 initstate には、以前に受信した信号の最後のシンボルが格納されます。

データ型: single | double

出力引数

すべて折りたたむ

復調された入力信号。バイナリ値の列ベクトルまたは行列として返されます。

データ型: double | single

MSK 変調された信号の最終位相。それぞれの値が 0pi/2pi、または 3*pi/2 であるスカラーまたは行ベクトルとして返されます。出力引数 phaseout の次元は入力引数 initphase と同じです。

データ型: single | double

以前に受信した信号の最後のシンボルに対応するサンプル値。nsamp1 列の列ベクトルまたは nsampC 列の行列として返されます。出力引数 stateout の次元は入力引数 initstate と同じです。

データ型: single | double

参照

[1] Pasupathy, S. “Minimum Shift Keying: A Spectrally Efficient Modulation.”IEEE® Communications Magazine (July, 1979): 14–22.

拡張機能

すべて展開する

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

バージョン履歴

R2006a より前に導入

すべて展開する