MATLAB è Simulink íà ðóññêîì

https://hub.exponenta.ru/
 

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

Список функций CommunicationsToolbox: Модуляция и демодуляция

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

DMODCE
Цифровая модуляция (выход — комплексная огибающая)

Синтаксис:

y = dmodce(x,Fd,Fs,'method/nomap'...);
y = dmodce(x,Fd,Fs,'ask',M);
y = dmodce(x,Fd,Fs,'fsk',M,tone);
y = dmodce(x,Fd,Fs,'msk');
y = dmodce(x,Fd,Fs,'psk',M);
y = dmodce(x,Fd,Fs,'qask',M);
y = dmodce(x,Fd,Fs,'qask/arb',inphase,quadr);
y = dmodce(x,Fd,Fs,'qask/cir',numsig,amp,phs);
y = dmodce(x,Fd,[Fs phase],...);

Необязательные входные параметры:

Параметр Значение по умолчанию
tone Fd
amp [1:length(numsig)]
phs numsig*0

Описание:

Функция dmodce выполняет цифровую модуляцию (манипуляцию), генерируя комплексную огибающую выходного модулированного сигнала. Соответствующая функция демодуляции — ddemodce. В приведенной ниже таблице перечислены поддерживаемые функцией dmodce виды модуляции.

Вид манипуляции Четвертый входной параметр
M-уровневая амплитудная манипуляция (АМн) 'ask'
M-позиционная частотная манипуляция (ЧМн) 'fsk'
Минимальная частотная манипуляция (МЧМ) 'msk'
M-позиционная фазовая манипуляция (ФМн) 'psk'
Квадратурная амплитудная манипуляция (КАМн) 'qask', 'qask/cir' или 'qask/arb'

Отключение первичного отображения:

Обычно функция dmodce сначала выполняет отображение (mapping) цифрового сигнала в аналоговый модулирующий сигнал, а затем осуществляет аналоговую модуляцию. Приведенный ниже обобщенный синтаксис

y = dmodce(x,Fd,Fs,'method/nomap'...)

использует флаг /nomap, чтобы сообщить функции dmodce о том, что цифровой сигнал уже преобразован в аналоговый сигнал x, имеющий частоту дискретизации Fs. При таком способе вызова функция dmodce не будет выполнять указанное отображение. Для преобразования цифрового сигнала в аналоговый можно использовать функцию modmap. В этом обобщенном синтаксисе параметр method — одно из семи возможных строковых значений, перечисленных в приведенной выше таблице. Смысл остальных параметров объясняется в следующем разделе.

Общая информация о синтаксисе:

При всех вариантах вызова функции y = dmodce(x,Fd,Fs,...) в качестве передаваемого цифрового сообщения используется массив x, который должен представлять собой матрицу, состоящую из неотрицательных целых чисел. Если x — вектор длины n, то модулированный сигнал y будет вектором длины n*Fs/Fd. Если же x — матрица, имеющая n строк и m столбцов, то y будет матрицей, имеющей (n*Fs/Fd) строк и m столбцов; каждый столбец матрицы x в данном случае обрабатывается независимо от других. Поскольку функция demodce генерирует комплексную огибающую модулированного сигнала, элементы массива y являются комплексными числами.

Частоты дискретизации (в герцах) для сигналов x и y равны, соответственно, Fd и Fs. (Таким образом, величина 1/Fd представляет собой период следования символов из сигнала x, а величина 1/Fs — период дискретизации сигнала y.) Отношение Fs/Fd должно быть целым положительным числом. Начальная фаза несущего колебания считается равной нулю.

Можно задать частоту дискретизации в виде двухэлементного вектора: y = dmodce(x,Fd,[Fs phase],...). В данном случае первый элемент этого вектора (Fs) задает частоту дискретизации, как описано выше. Второй элемент (phase) — это начальная фаза несущего колебания в радианах.

Конкретные варианты синтаксиса:

  • y = dmodce(x,Fd,Fs,'ask',M)

Реализует M-уровневую амплитудную манипуляцию (АМн). Элементы x должны лежать в диапазоне [0, M-1]. Максимальное значение модулированного сигнала равно 1.

  • y = dmodce(x,Fd,Fs,'fsk',M,tone)

Реализует M-позиционную частотную манипуляцию (ЧМн). Элементы x должны лежать в диапазоне [0, M-1]. Необязательный параметр tone задает расстояние между соседними используемыми частотами в модулированном сигнале y. По умолчанию значение tone равно Fd. Максимальное значение y равно 1.

  • y = dmodce(x,Fd,Fs,'msk')

Реализует минимальную частотную манипуляцию (МЧМ). Элементы x должны быть равны 0 или 1. Максимальное значение y равно 1. Расстояние между двумя используемыми частотами равно Fd/2.

  • y = dmodce(x,Fd,Fs,'psk',M)

Реализует M-позиционную фазовую манипуляцию (ФМн). Элементы x должны лежать в диапазоне [0, M-1]. Максимальное значение y равно 1.

  • y = dmodce(x,Fd,Fs,'qask',M)

Реализует M-позиционную квадратурную амплитудную манипуляцию с использованием “квадратного” сигнального созвездия. Приведенная ниже таблица показывает максимальные значения y для нескольких небольших значений M.

M Максимальное значение y M Максимальное значение y
2 1 32 5
4 1 64 7
8 3 128 11
16 3 256 15

Примечание. Чтобы узнать, как именно символы передаваемого дискретного сообщения отображаются в точки “квадратного” созвездия, можно вывести соответствующий рисунок с помощью функции qaskenco(M).

  • y = dmodce(x,Fd,Fs,'qask/arb',inphase,quadr)

Реализует квадратурную амплитудную манипуляцию с использованием произвольного сигнального созвездия, задаваемого с помощью векторов inphase и quadr. Точка созвездия, соответствующая символу сообщения, равному k, имеет синфазную амплитуду, равную inphase(k+1), и квадратурную амплитуду, равную quadr(k+1).

  • y = dmodce(x,Fd,Fs,'qask/cir',numsig,amp,phs)

Реализует квадратурную амплитудную манипуляцию с использованием “концентрического” сигнального созвездия. Параметры numsig, amp и phs должны быть векторами одинаковой длины. Элементы векторов numsig и amp должны быть положительными числами. Если k — целое число из диапазона [1, length(numsig)], то amp(k) — радиус k-й окружности, numsig(k) — число точек созвездия, лежащих на этой окружности, а phs(k) — фаза первой точки, лежащей на k-й окружности. Все точки, лежащие на одной окружности, распределены на ней равномерно. Если параметр phs не указан, его значение по умолчанию равно numsig*0. Если не указан и параметр amp, его значение по умолчанию равно [1:length(numsig)].

Примечание. Чтобы узнать, как именно символы передаваемого дискретного сообщения отображаются в точки “концентрического” созвездия, можно вывести соответствующий рисунок с помощью функции
apkconst(numsig,amp,phs,'n').

Примеры.

В этом примере реализуется ЧМн с разным расстоянием между соседними частотами (параметр tone). Результаты показывают, что вероятность ошибки приема символов зависит от значения tone. Результаты, полученные вами, могут отличаться от приведенных, поскольку в примере используются случайные числа.

M = 4; Fd = 1; Fs = 32;
SNRperBit = 5;
adjSNR = SNRperBit-10*log10(Fs/Fd)+10*log10(log2(M));
x = randint(5000,1,M); % Исходное сообщение
% Реализуем ЧМн с ортогональными символами (МЧМ)
tone = .5;
% Начальное состояние генератора нормальных случайных чисел
randn('state',1945724);
w1 = dmodce(x,Fd,Fs,'fsk',M,tone);
y1 = awgn(w1, adjSNR, 'measured', [], 'dB');
z1 = ddemodce(y1,Fd,Fs,'fsk',M,tone);
ser1 = symerr(x,z1)
ser1 =

67

% Реализуем ЧМн с неортогональными символами
tone = .25;
% Восстанавливаем прежнее состояние генератора случайных чисел
randn('state',1945724);
w2 = dmodce(x,Fd,Fs,'fsk',M,tone);
y2 = awgn(w2, adjSNR, 'measured', [], 'dB');
z2 = ddemodce(y2,Fd,Fs,'fsk',M,tone);
ser2 = symerr(x,z2)
ser2 =

258

Сопутствующие функции: ddemodce, dmod, ddemod, amod, amodce, modmap, apkconst.

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

 

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


Система Orphus