exponenta event banner

fskdemod

Демодуляция с частотной манипуляцией

Описание

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

пример

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, определяемого как вектор или матрица комплексных значений. Если 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] Склар, Бернард. Цифровые коммуникации: основы и приложения. Река Верхнее Седло, Нью-Джерси: Прентис-Холл, 2001.

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