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

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

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

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

ADEMODCE
Аналоговая демодуляция (вход — комплексная огибающая)

Синтаксис:

z = ademodce(y,Fs,'amdsb-tc',offset,num,den);
z = ademodce(y,Fs,'amdsb-tc/costas',offset,num,den);
z = ademodce(y,Fs,'amdsb-sc',num,den);
z = ademodce(y,Fs,'amdsb-sc/costas',num,den);
z = ademodce(y,Fs,'amssb',num,den);
z = ademodce(y,Fs,'qam',num,den);
z = ademodce(y,Fs,'fm',num,den,vcoconst);
z = ademodce(y,Fs,'pm',num,den,vcoconst);
z = ademodce(y,[Fs phase],...);

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

Параметр Значение по умолчанию или поведение функции, если параметр опущен
offset Выбирается так, чтобы каждый выходной сигнал имел нулевое среднее значение
num, den Если данные параметры опущены, то ademodce не использует фильтр
vcoconst 1

Описание.

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

Вид модуляции Третий входной параметр
Амплитудная демодуляция 'amdsb-tc'
Амплитудная демодуляция, две боковых полосы с подавленной несущей 'amdsb-sc' или 'amdsb-sc/costas'
Амплитудная демодуляция, одна боковая полоса с подавленной несущей 'amssb'
Квадратурная амплитудная демодуляция 'qam'
Частотная демодуляция 'fm'
Фазовая демодуляция 'pm'

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

При всех вариантах вызова функции z = ademodce(y,Fs,...) в качестве принятого модулированного сигнала используется массив y. Параметр Fs — частота дискретизации в герцах. Начальная фаза несущего колебания равна нулю. Параметр y — комплексная матрица, а результат z — вещественная матрица. Размеры этих матриц зависят от вида модуляции:

  • Квадратурная амплитудная модуляция. Если y — вектор размера n, то z будет матрицей, содержащей n строк и 2 столбца. Если y — матрица с n строками и m столбцами, то каждый столбец y обрабатывается независимо и результат z содержит n строк и 2m столбцов. Столбцы z с нечетными номерами представляют синфазные компоненты демодулированного сигнала, а столбцы с четными номерами — его квадратурные компоненты.
  • Другие виды модуляции. Массивы y и z имеют одинаковые размеры. Если y — двумерная матрица, то ее столбцы обрабатываются независимо друг от друга.

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

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

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

  • z = ademodce(y,Fs,'amdsb-tc',offset,num,den)

Реализует амплитудную демодуляцию при наличии двух боковых полос. Параметр offset — это вектор, k-й элемент которого вычитается из k-го столбца матрицы демодулированных сигналов. Если offset — пустая матрица или отсутствует, то по умолчанию из каждого столбца z вычитается такая константа, чтобы среднее значение столбца стало нулевым (если z — вектор, то из него вычитается его среднее значение).

  • z = ademodce(y,Fs,'amdsb-tc/costas',offset,num,den)

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

  • z = ademodce(y,Fs,'amdsb-sc',num,den)

Реализует демодуляцию амплитудно-модулированного сигнала с двумя боковыми полосами и подавленной несущей.

  • z = ademodce(y,Fs,'amdsb-sc/costas',num,den)

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

  • z = ademodce(y,Fs,'amssb',num,den)

Реализует демодуляцию амплитудно-модулированного сигнала с одной боковой полосой и подавленной несущей.

  • z = ademodce(y,Fs,'qam',num,den)

Реализует демодуляцию сигнала с квадратурной амплитудной модуляцией.

  • z = ademodce(y,Fs,'fm',num,den,vcoconst)

Реализует частотную демодуляцию. Для демодуляции используется петля ФАПЧ, состоящая из перемножителя (используемого в качестве фазового детектора), фильтра нижних частот (задаваемого с помощью параметров num и den; по умолчанию фильтр отсутствует) и генератора, управляемого напряжением (ГУН) (английский термин — voltage-controlled oscillator, VCO). Если Fs — двухэлементный вектор, то его второй элемент задает начальную фазу ГУН в радианах. Необязательный параметр vcoconst — число, задающее коэффициент преобразования ГУН в Гц/В.

  • z = ademodce(y,Fs,'pm',num,den,vcoconst)

Реализует фазовую демодуляцию. Для демодуляции используется петля ФАПЧ (которая реализует частотный демодулятор), на выходе которой включен интегратор. Петля ФАПЧ состоит из перемножителя (используемого в качестве фазового детектора), фильтра нижних частот и ГУН. Если Fs — двухэлементный вектор, то его второй элемент задает начальную фазу ГУН в радианах. Необязательный параметр vcoconst — число, задающее коэффициент преобразования ГУН в Гц/В.

Примеры.

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

Fs = 100; % Частота дискретизации сигнала
t = [0:1/Fs:5]'; % Моменты дискретизации сигнала
% Комбинируем три сигнала в трехстолбцовую матрицу
% Каждому сигналу соответствует столбец матрицы
x = [sin(2*pi*t), .5*cos(5*pi*t), sawtooth(4*t)];
y = amodce(x,Fs,'fm'); % Модуляция
z = ademodce(y,Fs,'fm'); % Демодуляция
plot(x); figure; plot(z); % Графики исходных и выходных сигналов

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

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

 

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

Система Orphus

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