Этот пример симулирует различные шаги основного коммуникационного процесса. Системы связи работают путем модуляции фрагментов информации в более высокую несущую частоту, передачи модулируемых сигналов через шумный физический канал, получения шумных форм волны и демодуляции полученных сигналов восстановить начальную информацию.
Всю информацию несут в сигнале с действительным знаком может быть представлен соответствующим конвертом комплекса lowpass:
.
В этом уравнении:
несущая частота.
представляет действительную часть количества с комплексным знаком.
комплексный конверт .
синфазный компонент комплексного конверта.
квадратурный компонент комплексного конверта.
Комплексный конверт модулируется к несущей частоте и отправляется через канал. В получателе шумная форма волны демодулируется с помощью несущей частоты.
Изменение фазы из-за несущей частоты предсказуемо и таким образом не передает информации. Комплексный конверт не включает изменение фазы и может быть произведен на более низком уровне.
Сгенерируйте сигнал, комплексный конверт которого состоит из синусоиды и щебета. Синфазный компонент является синусоидой с частотой 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
. Отображения приложения набор осей со спектром сигнала. Комплексный конверт имеет двухсторонний спектр, отображенный как линия того же цвета синфазного компонента комплексного конверта.
На вкладке Display нажмите Panner, чтобы активировать регулятор панорамы. Используйте регулятор панорамы, чтобы создать окно изменения масштаба между 300 мс и 720 мс. Перетащите окно изменения масштаба так, чтобы оно было сосредоточено на уровне 0 Гц. Спектр имеет импульс на уровне 0,19 кГц и более широкий конический профиль на более высоких частотах. Область отрицательной частоты спектра является зеркальным отображением области положительной частоты.
Модулируйте сигнал с помощью несущей частоты 200 Гц. Умножьтесь так, чтобы степень модулируемого сигнала равнялась степени исходного сигнала. Добавьте белый Гауссов шум, таким образом, что отношение сигнал-шум составляет 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 мс, таким образом, они заключают спектральный peaks. Нажмите Extract Signals ▼ и выберите Between Time Cursors
. Установите флажок Preserve Start Time. Очистите отображение и постройте извлеченный сигнал. Приложение извлекает и синфазные компоненты и квадратурные компоненты демодулируемого сигнала в необходимой области. Выберите извлеченный сигнал путем нажатия на его столбец Имени в таблице 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 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