fskdemod

Демодуляция манипулирования сдвига частоты

Синтаксис

z = fskdemod(y,M,freq_sep,nsamp)
z = fskdemod(y,M,freq_sep,nsamp,Fs)
z = fskdemod(y,M,freq_sep,nsamp,Fs,symbol_order)

Описание

z = fskdemod(y,M,freq_sep,nsamp) некогерентно демодулирует комплексный конверт y сигнала с помощью метода клавиши SHIFT частоты. M является размером алфавита и должен быть целочисленной степенью 2. freq_sep является разделением частоты между последовательными частотами в Гц. nsamp является необходимым количеством выборок на символ и должен быть положительным целым числом, больше, чем 1. Частота дискретизации составляет 1 Гц. Если y является матрицей с несколькими строками и столбцами, функциональные процессы столбцы независимо.

z = fskdemod(y,M,freq_sep,nsamp,Fs) задает частоту дискретизации в Гц.

z = fskdemod(y,M,freq_sep,nsamp,Fs,symbol_order) задает, как функция присваивает двоичные слова соответствующим целым числам. Если symbol_order установлен в 'bin' (значение по умолчанию), функция использует естественное двоично кодированное упорядоченное расположение. Если symbol_order установлен в 'gray', он использует серо-закодированное упорядоченное расположение.

Примеры

свернуть все

Передайте сигнал FSK через AWGN, образовывают канал и оценивают получившуюся частоту ошибок по битам (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

Ссылки

[1] Sklar, Бернард. Цифровая связь: основные принципы и приложения. Верхний Сэддл-Ривер, NJ: Prentice Hall, 2001.

Смотрите также

| |

Представлено до R2006a