MATLAB.Exponenta
MATLAB и Simulink на русском
Технологии разработки и отладки
		сложных технических систем
 

Обработка сигналов и изображений\Communications Toolbox

Список функций CommunicationsToolbox:  Аналоговая модуляция/демодуляция

  В оглавление \ К следующему разделу \ К предыдущему разделу

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

Синтаксис:

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

Описание

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

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

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

То же, что предыдущий вариант синтаксиса, но дополнительный входной параметр Fs задает частоту дискретизации сигнала y (в герцах).

Примеры:

Приведенный ниже код иллюстрирует формирование сигнала с частотной манипуляцией, пропускание его через канал связи с аддитивным белым гауссовым шумом (АБГШ), демодуляцию зашумленного сигнала, оценку вероятности битовой ошибки (BER) и сравнение полученного значения с теоретическим.

M = 2;       % число позиций манипуляции
k = log2(M); % число бит на символ
EbNo = 5;    % отношение энергии бита к СПМ шума
Fs = 16;     % частота дискретизации
N = Fs;
nsamp = 17;  % число отсчетов на символ
freqsep = 8; % разнос частот манипуляции
msg = randint(5000,1,M);                % случайный сигнал 
txsig = fskmod(msg,M,freqsep,nsamp,Fs); % модуляция 
msg_rx  = awgn(txsig,EbNo+10*log10(k)-10*log10(N),...
   'measured',[],'dB');                 % АБГШ-канал
msg_rrx = fskdemod(msg_rx,M,freqsep,nsamp,Fs);  % демодуляция
[num,SER] = symerr(msg,msg_rrx); % оценка вероятности символьной ошибки 
BER = SER*(M/2)/(M-1) % пересчет в вероятность битовой ошибки
BER_theory = berawgn(EbNo,'fsk',M,'noncoherent') % теоретическое значение BER

Ниже приведен результат работы этого кода. Полученная вами экспериментальная оценка BER может отличаться от приведенной, так как в данном примере используется генератор случайных чисел.

BER =
    0.1006

BER_theory =
    0.1029

Сопутствующие функции: fskmod, pskmod, pskdemod

  В оглавление \ К следующему разделу \ К предыдущему разделу

 

Поиск по сайту:

Система Orphus

Яндекс.Метрика