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

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