fskdemod

Цифровая частотная демодуляция

Описание

z = fskdemod(y,M,freq_sep,nsamp) некогерентно демодулирует комплексный конверт y из сигнала с помощью метода клавиши SHIFT частоты.

пример

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

z = fskdemod(y,M,freq_sep,nsamp,Fs,symorder) задает, как функция присваивает двоичные слова соответствующим целым числам.

Примеры

свернуть все

Передайте сигнал 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

Входные параметры

свернуть все

Объедините основополосное представление модулируемого FSK сигнала, specfied как вектор или матрица комплексных чисел. Если y матрица с несколькими строками и столбцами, fskdemod обрабатывает столбцы независимо.

Типы данных: double | single
Поддержка комплексного числа: Да

Порядок модуляции в виде целочисленной степени двойки.

Пример 2| 4 | 16

Типы данных: double

Порядок символа в виде 'bin' или 'gray'. Этот аргумент задает, как функция присваивает бинарные векторы соответствующим целым числам.

  • Если symorder 'bin', функция использует естественное двоично кодированное упорядоченное расположение.

  • Если symorder 'gray', функция использует серо-закодированное упорядоченное расположение.

Типы данных: char

Желаемое разделение между частотами, заданными в Гц. Теоремой отсчетов Найквиста, freq_sep и M должен удовлетворить (M- 1) *freq_sep <= 1.

Типы данных: double

Количество отсчетов на выходной символ в виде положительной скалярной величины, больше, чем 1.

Типы данных: double

Частота дискретизации в виде положительной скалярной величины.

Типы данных: double

Выходные аргументы

свернуть все

Выходной сигнал, возвращенный как вектор или матрица положительных целых чисел. Элементы z имейте значения в области значений [0, M – 1].

Пример: randi([0 3],100,1)

Типы данных: double

Ссылки

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

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

| |

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