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

https://hub.exponenta.ru/
 

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

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

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

DMOD
Цифровая модуляция (вещественный выходной сигнал)

Синтаксис:

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

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

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

Описание:

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

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

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

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

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

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

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

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

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

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

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

y = dmod(x,Fc,Fd,Fs,'ask',M)

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

y = dmod(x,Fc,Fd,Fs,'fsk',M,tone)

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

y = dmod(x,Fc,Fd,Fs,'msk')

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

y = dmod(x,Fc,Fd,Fs,'psk',M)

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

y = dmod(x,Fc,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 = dmod(x,Fc,Fd,Fs,'qask/arb',inphase,quadr)

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

y = dmod(x,Fc,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').

[y,t] = dmod(...)

Дополнительно возвращает вектор значений времени t, использованных при вычислениях. Длина этого вектора равна числу строк в модулированном сигнале y.

Примеры.

Приведенный ниже код показывает график сигнала, реализующего передачу символов 0 и 1 с помощью 4-уровневой АМн. Обратите внимание на то, что при вызове функции dmod использованы два выходных параметра. Второй выходной параметр t используется для оцифровки горизонтальной оси графика в значениях времени.

Fc = 20; Fd = 10; Fs = 50;
M = 4; % 4-уровневая АМн
x = ones(Fd,1)*[0 1]; x=x(:);
% Модуляция с возвратом вектора значений времени
[y,t] = dmod(x,Fc,Fd,Fs,'ask',M);
plot(t,y) % График зависимости сигнала от времени

Функция dmod используется также в примере, приведенном на странице с описанием функции ddemod.

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

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

 

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


Система Orphus