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

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

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

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

PAMMOD
Амплитудно-импульсная модуляция (АИМ; английский термин - Pulse Amplitude Modulation, PAM)

Синтаксис:

y = pammod(x,M)
y = pammod(x,M,ini_phase)

Описание

y = pammod(x,M)

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

y = pammod(x,M,ini_phase)

То же, что предыдущий вариант синтаксиса, но дополнительный входной параметр ini_phase задает начальную фазу комплексной огибающей в радианах.

Примеры:

В приведенном ниже коде с помощью функции berawgn вычисляется вероятность ошибки на символ для амплитудно-импульсной модуляции (АИМ) при ряде значений отношения энергии одного бита к спектральной плотности мощности шума (Eb/N0). Кроме того, в данном коде моделируется передача 8-позиционного АИМ-сигнала по каналу с аддитивным белым гауссовым шумом для сравнения аналитических результатов и результатов моделирования. Также код выводит в общих осях координат графики зависимости теоретической и экспериментально полученной вероятности ошибки от отношения Eb/N0.

% 1. Вычисляем теоретическую вероятность ошибки с помощью функции BERAWGN.
M = 8;                                % Размер алфавита
EbNo = [0:13];                        % Вектор отношений Eb/N0
ser = berawgn(EbNo,'pam',M).*log2(M); % Теоретическая вероятность ошибки 
% Выводим теоретические результаты
figure; 
semilogy(EbNo,ser,'r');
xlabel('E_b/N_0 (dB)'); 
ylabel('Symbol Error Rate');
grid on; 
drawnow;
% 2. Оцениваем вероятность ошибки путем моделирования
n = 10000;   % Число символов для моделирования
k = log2(M); % Число бит на символ
% Пересчитываем отношение Eb/N0 в отношение сигнал/шум (SNR)
snr = EbNo+3+10*log10(k);
ynoisy=zeros(n,length(snr)); % Выделение памяти для ускорения вычислений
% Главный цикл моделирования
x = randint(n,1,M); % Информационное сообщение
y = pammod(x,M);    % Модуляция
% Пропускаем модулированный сигнал через канал связи
% при различных отношениях Eb/N0
for jj = 1:length(snr)
   ynoisy(:,jj) = awgn(real(y),snr(jj),'measured');
end
z = pamdemod(ynoisy,M); % Демодуляция
% Вычисляем эмпирическую вероятность ошибки на символ
[num,rt] = symerr(x,z);
% 3. Выводим эмпирические результаты в тех же осях координат
hold on; 
semilogy(EbNo,rt,'b.');
legend('Theoretical SER','Empirical SER');
title('Comparing Theoretical and Empirical Error Rates');
hold off;

Результатом работы примера является график, подобный приведенному ниже. Ваши результаты могут отличаться, поскольку в примере используется генератор случайных чисел.

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

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

 

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

Система Orphus

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