Main Content

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

mskdemod

最小シフトキーイング復調

構文

z = mskdemod(y,nsamp)
z = mskdemod(y,nsamp,dataenc)
z = mskdemod(y,nsamp,dataenc,ini_phase)
z = mskdemod(y,nsamp,dataenc,ini_phase,ini_state)
[z,phaseout] = mskdemod(...)
[z,phaseout,stateout] = mskdemod(...)

説明

z = mskdemod(y,nsamp) は、差分符号化最小シフト キーイング (MSK) メソッドを使用して、信号の複素エンベロープ y を復調します。nsamp は、シンボルあたりのサンプル数を表し、正の整数でなければなりません。復調器の初期位相は 0 です。y が複数の行と列をもつ行列の場合、この関数は列を独立したチャネルとして取り扱い、個別に処理します。

z = mskdemod(y,nsamp,dataenc) は MSK のデータを符号化する方法を指定します。dataenc は差分符号化 MSK では 'diff'、非差分符号化 MSK では 'nondiff' です。

z = mskdemod(y,nsamp,dataenc,ini_phase) は復調器の初期位相を指定します。ini_phase は、長さが y のチャネル数で、値が pi/2 の整数倍である行ベクトルです。dataenc の既定値のオーバーライドを回避するには、dataenc[] に設定します。

z = mskdemod(y,nsamp,dataenc,ini_phase,ini_state) は復調器の初期状態を指定します。ini_state はあらかじめ受信した信号の最後の半分のシンボルを含みます。ini_statensamp 行 C 列の行列で、C は y のチャネル数です。

[z,phaseout] = mskdemod(...) はこれ以降の信号の復調に重要な y の最終位相を返します。出力 phaseoutini_phase 入力と同じ次元をもち、値 0pi/2pi3*pi/2 を想定します。

[z,phaseout,stateout] = mskdemod(...)y の最終 nsamp 値を返します。これは、これ以降の信号の最初のシンボルを復調するのに役立ちます。stateoutini_state 入力と同じ次元です。

すべて折りたたむ

ノイズを含む MSK 信号を変調および復調します。受信した誤り数を表示します。

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

nsamp = 16;

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

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

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

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

  • データを MSK 変調します。

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

  • MSK 信号を復調します。

  • ビット誤り数を求めます。

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

参考文献

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

R2006a より前に導入