exponenta event banner

Модуляция и демодуляция с использованием комплексной огибающей

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

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

s (t) = Re {g (t) ej2.dfct} = i (t) cos2 δ fct + q (t) sin2 δ fct.

В этом уравнении:

  • fc - несущая частота.

  • Re представляет действительную часть комплексной величины.

  • g (t) = i (t) + jq (t) - комплексная огибающая s (t).

  • i (t) - инфазный компонент комплексной оболочки.

  • q (t) - квадратурная составляющая комплексной огибающей.

Комплексная огибающая модулируется до несущей частоты и передается по каналу. В приемнике шумовой сигнал демодулируется с использованием несущей частоты.

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

Генерируют сигнал, сложная огибающая которого состоит из синусоиды и чирпа. Инфазной составляющей является синусоида с частотой 19 Гц. Квадратурная составляющая представляет собой квадратную чирпу, частота которой колеблется от 61 Гц до 603 Гц. Дискретизируют сигнал при частоте 2 кГц в течение 1 секунды.

fs = 2e3;
t = (0:1/fs:1-1/fs)';
inph = sin(2*pi*19*t);
quad = chirp(t-0.6,61,t(end),603,'quadratic');

Вычислите сложный конверт и сохраните его в виде расписания MATLAB ® с частотой выборкиfs.

env = inph + 1j*quad;
g = timetable(env,'SampleRate',fs);

Откройте Signal Analyzer и перетащите сложную оболочку из браузера рабочей области в таблицу Signal. Дисплей показывает инфазную и квадратурную составляющие огибающей в виде линий одинакового оттенка и насыщенности, но разной светимости. Первый цвет линии представляет собой инфазный компонент, а второй цвет линии представляет собой квадратурный компонент. Щелкните Спектр (Spectrum) ▼ на вкладке Отображение (Display) и выберите Spectrum. Приложение отображает набор осей со спектром сигнала. Комплексная огибающая имеет двусторонний спектр, отображаемый как линия того же цвета инфазной составляющей комплексной огибающей.

На вкладке «Отображение» нажмите кнопку «Панорамирование», чтобы активировать панорамирование. Используйте панорамирование для создания окна масштабирования между 300 мс и 720 мс. Перетащите окно масштабирования так, чтобы оно было центрировано с частотой 0 Гц. Спектр имеет импульс при 0,19 кГц и более широкий сужающийся профиль на более высоких частотах. Область отрицательной частоты спектра является зеркальным отражением области положительной частоты.

Модулируйте сигнал с использованием несущей частоты 200 Гц. Умножьте на 2, чтобы мощность модулированного сигнала равнялась мощности исходного сигнала. Добавьте белый гауссов шум, чтобы отношение сигнал/шум было 40 дБ.

fc = 200;
mod = sqrt(2)*real(env.*exp(2j*pi*fc*t));

SNR = 40;
mod = mod + randn(size(mod))*std(mod)/db2mag(SNR);
s = timetable(mod,'SampleRate',fs);

Щелкните Показать ▼ сетки (Display Grid), чтобы добавить второй экран. Перетащите модулированный сигнал в таблицу Сигнал (Signal) и введите информацию о времени. Модуляция переместила спектр на положительные частоты, центрированные на несущей частоте.

Вычислите аналитический сигнал и демодулируйте его путем умножения аналитического сигнала на комплексную отрицательную экспоненту частоты 200 Гц.

dem = hilbert(mod).*exp(-2j*pi*fc*t)/sqrt(2);

Щелкните Показать сетку (Display Grid ▼), чтобы создать сетку отображений три за одним. Перетащите демодулированный сигнал в таблицу Signal. Добавьте информацию о времени в сложную оболочку, щелкнув Значения времени (Time Values) на вкладке Анализатор (Analyzer). Двусторонний спектр показывает восстановленную синфазную и квадратурную составляющие сигнала основной полосы частот.

Щелкните Показать сетку (Display Grid ▼), чтобы создать поочередную сетку дисплеев и построить график демодулированного сигнала. Щелкните Курсоры данных (Data Cursors) ▼ и выберите Two. Поместите курсоры временной области на 300 мс и 900 мс, чтобы они охватывали спектральные пики. Щелкните Извлечь сигналы (Extract Signals) ▼ и выберите Between Time Cursors. Установите флажок «Сохранить время начала». Очистите дисплей и постройте график извлеченного сигнала. Приложение извлекает как инфазную, так и квадратурную составляющие демодулированного сигнала в интересующей области. Выберите извлеченный сигнал, щелкнув его столбец Имя (Name) в таблице Сигнал (Signal). На вкладке Analyzer нажмите Export и сохраните сигнал в MAT-файле с именем dem_ROI.mat.

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

load dem_ROI
inph_dem = real(dem_ROI);
quad_dem = imag(dem_ROI);
t_dem = 0.3+(0:length(dem_ROI)-1)/fs;

Сравните переданные формы сигналов и выделенные области, представляющие интерес. Также сравните их спектры.

subplot(2,1,1)
plot(t,inph,t_dem,inph_dem,'--')
legend('Transmitted Inphase Signal','Received Inphase Signal')

subplot(2,1,2)
plot(t,quad,t_dem,quad_dem,'--')
legend('Transmitted Quadrature Signal','Received Quadrature Signal')

Figure contains 2 axes. Axes 1 contains 2 objects of type line. These objects represent Transmitted Inphase Signal, Received Inphase Signal. Axes 2 contains 2 objects of type line. These objects represent Transmitted Quadrature Signal, Received Quadrature Signal.

figure
subplot(2,1,1)
pspectrum(inph,fs)
hold on
pspectrum(inph_dem,fs)
legend('Transmitted Inphase Signal','Received Inphase Signal')
hold off

subplot(2,1,2)
pspectrum(quad,fs)
hold on
pspectrum(quad_dem,fs)
legend('Transmitted Quadrature Signal','Received Quadrature Signal')
hold off

Figure contains 2 axes. Axes 1 with title Fres = 4.2779 Hz contains 2 objects of type line. These objects represent Transmitted Inphase Signal, Received Inphase Signal. Axes 2 with title Fres = 4.2779 Hz contains 2 objects of type line. These objects represent Transmitted Quadrature Signal, Received Quadrature Signal.

См. также

Приложения

Функции

Связанные примеры

Подробнее