Main Content

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

fskdemod

周波数シフト キーイング復調

説明

z = fskdemod(y,M,freq_sep,nsamp) は、周波数シフト キーイング法を使用して、信号の複素エンベロープ y を非コヒーレントに復調します。

z = fskdemod(y,M,freq_sep,nsamp,Fs) は、サンプリング周波数を Hz 単位で指定します。

z = fskdemod(y,M,freq_sep,nsamp,Fs,symorder) は、バイナリ ワードを対応する整数にどのように割り当てるかを指定します。

すべて折りたたむ

AWGN チャネルを通して FSK 信号を渡し、結果のビット誤り率 (BER) を推定します。推定した BER を理論上の値と比較します。

シミュレーション パラメーターを設定します。

M = 2;         % Modulation order
k = log2(M);   % Bits per symbol
EbNo = 5;      % Eb/No (dB)
Fs = 16;       % Sample rate (Hz)
nsamp = 8;     % Number of samples per symbol
freqsep = 10;  % Frequency separation (Hz)

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

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

FSK 変調を適用します。

txsig = fskmod(data,M,freqsep,nsamp,Fs);

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

rxSig  = awgn(txsig,EbNo+10*log10(k)-10*log10(nsamp),...
    'measured',[],'dB');

受信信号を復調します。

dataOut = fskdemod(rxSig,M,freqsep,nsamp,Fs);

ビット誤り率を計算します。

[num,BER] = biterr(data,dataOut);

理論的な BER を求め、推定された BER と比較します。例は乱数を使っているため、BER 値が異なる場合があります。

BER_theory = berawgn(EbNo,'fsk',M,'noncoherent');
[BER BER_theory]
ans = 1×2

    0.0958    0.1029

入力引数

すべて折りたたむ

FSK 変調された信号の複素ベースバンド表現。複素数値のベクトルまたは行列として指定します。y が複数の行と列をもつ行列である場合、fskdemod は列を個別に処理します。

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

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

例: 2 | 4 | 16

データ型: double

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

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

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

データ型: char

目的の周波数の間隔。Hz 単位で指定します。ナイキスト サンプリング理論では、freq_sep および M は (M-1)*freq_sep <= 1 を満たさなければなりません。

データ型: double

出力シンボルあたりのサンプル数。1 より大きい正のスカラーとして指定します。

データ型: double

サンプルレート。正のスカラーで指定します。

データ型: double

出力引数

すべて折りたたむ

出力信号。正の整数のベクトルまたは行列として返されます。z の要素は、[0, M-1] の範囲の値をもちます。

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

データ型: double

参照

[1] Sklar, Bernard. Digital Communications: Fundamentals and Applications. Upper Saddle River, NJ: Prentice-Hall, 2001.

R2006a より前に導入