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

https://hub.exponenta.ru/
 

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

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

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

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

Синтаксис:

z = ddemodce(y,Fd,Fs,'ask/opt',M,num,den);
z = ddemodce(y,Fd,Fs,'fsk/opt',M);
z = ddemodce(y,Fd,Fs,'msk');
z = ddemodce(y,Fd,Fs,'psk/opt',M,num,den);
z = ddemodce(y,Fd,Fs,'qask/opt',M,num,den);
z = ddemodce(y,Fd,Fs,'qask/arb/opt',inphase,quadr,num,den);
z = ddemodce(y,Fd,Fs,'qask/cir/opt',numsig,amp,phs,num,den);
z = ddemodce(y,Fd,[Fs phase],...);

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

Параметр Значение по умолчанию или поведение функции, если параметр опущен
opt После демодуляции функция ddemodce производит преобразование аналогового сигнала в цифровое сообщение (demapping). Если вид манипуляции — АМн, при демодуляции не используется алгоритм Костаса. Если вид манипуляции — ЧМн, применяется когерентная демодуляция.
num, den При отсутствии этих параметров функция ddemodce не подвергает демодулированный сигнал фильтрации.
amp [1:length(numsig)]
phs numsig*0

Описание:

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

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

Флаг /opt во втором столбце таблицы может быть опущен; остальная часть четвертого входного параметра при вызове функции ddemodce является обязательной. В третьем столбце перечислены возможные значения для флагов /opt. При использовании нескольких флагов одновременно они могут следовать в любом порядке.

Отключение первичного отображения (только АМн, ФМн и КАМн):

Обычно функция ddemodce сначала выполняет аналоговую демодуляцию входного сигнала, а затем осуществляет преобразование аналогового демодулированного сигнала в цифровое сообщение (demapping). Необязательный флаг /nomap, добавляемый к четвертому входному параметру (строке, задающей вид манипуляции), отключает указанное преобразование. В этом случае результатом работы функции являются отсчеты аналогового демодулированного сигнала с частотой дискретизации Fs. Для преобразования этого сигнала в цифровое сообщение можно использовать функцию ddemodmap. Флаг /nomap нельзя использовать для частотной (ЧМн) и минимальной частотной (МЧМ) манипуляции ('fsk' и 'msk').

Размер массива z при использовании флага /nomap зависит от вида манипуляции:

  • АМн. Размеры массивов y и z совпадают. Если y — матрица, каждый ее столбец обрабатывается независимо от других.
  • ФМн и КАМн. Массив z имеет вдвое больше столбцов, чем массив y, а число строк этих двух массивов совпадает. Каждый столбец y обрабатывается независимо. Столбцы z с нечетными номерами представляют синфазные компоненты демодулированного сигнала, а столбцы с четными номерами — его квадратурные компоненты.

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

При всех вариантах вызова функции z = ddemodce(y,Fd,Fs,...) цифровое сообщение z восстанавливается из принятого аналогового сигнала y. После измерения расстояния от принятого сигнала до сигналов, соответствующих всем возможным символам (в соответствии с используемым видом манипуляции) функция выбирает ближайший вариант и возвращает соответствующий символ.

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

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

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

В случае АМн, ФМн и КАМн функция ddemod после выполнения аналоговой демодуляции может использовать фильтр нижних частот для устранения побочных продуктов демодуляции. Чтобы задать параметры фильтра, включите в список входных параметров векторы num и den. Параметры num и den должны быть векторами-строками, содержащими коэффициенты полиномов числителя и знаменателя функции передачи фильтра в порядке убывания степеней. Если параметр num является пустой матрицей, равен нулю или отсутствует, фильтрация не производится.

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

  • z = ddemodce(y,Fd,Fs,'ask',M)

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

  • z = ddemodce(y,Fd,Fs,'ask/costas',M)

То же, что и предыдущий вариант синтаксиса, но для демодуляции используется алгоритм Костаса (алгоритм с фазовой автоподстройкой частоты (ФАПЧ)).

  • z = ddemodce(y,Fd,Fs,'fsk',M,tone)

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

  • z = ddemodce(y,Fd,Fs,'fsk/noncoherence',M,tone)

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

  • z = ddemodce(y,Fd,Fs,'msk')

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

  • z = ddemodce(y,Fd,Fs,'psk',M)

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

  • z = ddemodce(y,Fd,Fs,'qask',M)

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

M Максимальные значения координат точек созвездия M Максимальные значения координат точек созвездия
2 1 32 5
4 1 64 7
8 3 (для квадратурной амплитуды — 1) 128 11
16 3 256 15

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

  • z = ddemodce(y,Fd,Fs,'qask/arb',inphase,quadr)

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

  • z = ddemodce(y,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').

Примеры.

Пример использования функции ddemodce можно найти на странице с описанием функции dmodce.

Сопутствующие функции: dmodce, amodce, ademodce, dmod, ddemod, demodmap, eyediagram, scatterplot.

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

 

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


Система Orphus