Система связи со встроенным получателем РФ

Этот пример показывает, как интегрировать получатель РФ вместе с алгоритмами обработки основополосного сигнала, чтобы смоделировать сквозную систему связи.

Пример требует Communications Toolbox™.

Часть 1: основополосная линия связи с интегрированной моделью получателя РФ

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

model = 'simrfV2_comms_rf_example';
open_system(model);

Для этой модели блоки от Communications Toolbox и DSP System Toolbox™ используются, чтобы выполнить обработку основополосного сигнала. Нестандартный совместимый основополосный сигнал имеет прямоугольную совокупность QAM с повышенной фильтрацией косинуса, и основополосный получатель не включает поставщика услуг/тактовую синхронизацию. Параметры для генерации основополосного сигнала заданы в Model Properties-> Model callbacks PreLoadFcn, который устанавливает эти параметры в рабочем пространстве MATLAB, когда модель загружается:

  • BW = 8 МГц;

  • Tstep = 125 нс; % 1/BW

  • FrameLength = 128;

  • M = 4; размер Совокупности % 2^M

  • Tsymbol = 64 нас; % M*FrameLength*Tstep

Sample time для основополосного сигнала и Step size Блока Configuration получателя RF Blockset имеет то же значение. Это гарантирует, что пропускная способность симуляции РФ сопоставима с уровнем выборки входного сигнала. Получатель RF Blockset имеет порты ввода и вывода, которые преобразовывают Сигналы Simulink в количества области РФ и масштабируют их степень к ссылочному импедансу на 50 Ом. Входной порт сосредотачивает основополосный сигнал на заданной центральной частоте 2,45 ГГц и Демодуляторе IQ РФ downconverts входной сигнал к основной полосе с одним квадратурным этапом.

bdclose(model);

Часть 2: включайте внеполосный вмешивающийся сигнал блокировщика

Модель simrfV2_comms_rf_interferer показывает, как добавить, что мощный внеполосный interferer сосредоточил приблизительно 2,5 ГГц. Этот блокировщик влияет на получатель РФ путем управления им в нелинейную область. Используйте следующие шаги, чтобы выполнить эту задачу.

model = 'simrfV2_comms_rf_interferer';
open_system(model);

Добавьте источник блока 8-PSK Modulator Baseband, чтобы включать сигнал блокирования с более высоким уровнем мощности, чем сигнал передатчика. Используя блок Vector Concatenate, объедините сигналы блокировщика и основная полоса. Входной сигнал к получателю РФ теперь состоит из двух комплексных основополосных сигналов. Важно, чтобы два основополосных источника использовали ту же частоту дискретизации, чтобы обеспечить равную пропускную способность симуляции для каждого сигнала (та же пропускная способность конверта). Если два сигнала не имеют того же шага расчета, они должны передискретизироваться перед объединением. Это - рекомендуемая лучшая практика для симуляции сигналов блокировщика, когда они "далеко" от желаемого сигнала в спектре частоты и не могут быть включены в тот же конверт для конкретного поставщика услуг. Чтобы отобразить спектральное расположение этих двух входных сигналов в блоке Spectrum Analyzer, опция Offset имеет две частоты, заданные для этих двух основополосных сигналов.

Входной порт получателя РФ был изменен, чтобы включать двух поставщиков услуг (Carrier frequencies) сигналы (2,45 ГГц и 2,5 ГГц). Первоначально мы оставляем блок Configuration, чтобы автоматически выбрать основные тоны и гармонический порядок.

bdclose(model);

Часть 3: добавьте недостатки в получатель РФ

Модель simrfV2_comms_rf_impairments показывает, как добавить нарушения в получатель РФ, которые не были первоначально оценены в бюджете ссылки RF Budget Analyzer.

model = 'simrfV2_comms_rf_impairments';
open_system(model);

Под маской получателя РФ измените демодулятор РФ, чтобы добавить недостатки, которые будут управляться сигналом блокирования. В маске IQ демодулятор изменяют эти параметры:

  • I/Q gain mismatch = 0,5 дБ

  • I/Q phase mismatch = 1 степень

  • LO to RF isolation = 85 дБ

  • IIP2 = 45 дБ

  • Phase noise frequency offset = [1e5 5e5 2e6] Гц

  • Phase noise level = [-95 - 120 - 140] дБн/Гц

Каждый из этих недостатков отдельно увеличивает частоту ошибок по битам. Эти недостатки вызывают конечное отклонение изображений и смещение DC, которое удалено в основополосной области. Как наблюдается, исправление смещения DC требует, чтобы время интегрировало степень сигнала и удалило компонент DC. Чтобы далее изменить структуру системы демодулятора I/Q, можно нажать на кнопку "Edit System". С этой операцией вы отключаете ссылку на библиотеку, встраиваете значение параметров и имеете способность вручную изменить параметры блоков, а также архитектуру блока.

bdclose(model);

Часть 4: как уменьшить время симуляции

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

model = 'simrfV2_comms_rf_speed';
open_system(model);

В Simulink выберите режим Accelerator, чтобы ускорить симуляцию путем усиления автоматической генерации кода C.

В разделе RF Blockset, чтобы ускорить симуляцию уменьшают Harmonic order блока Configuration Конверта Схемы. Снимите флажок с Automatically select fundamental tones and harmonic order и установите Harmonic order, равный 3. Total simulation frequencies уменьшается с 61 до 25, эквивалентный аппроксимированным 2.5, которые ускоряют времена. После сокращения Гармонического порядка проверьте, что результаты симуляции не изменяются.

Чтобы далее увеличить скорость симуляции, моделирование Frequency domain использования вместо моделирования Time domain для S-параметров ВИДЕЛО, что фильтр блокировался. Необходимо проверить, что при изменении S-параметров, моделируя подход моделируемая передаточная функция все еще правильна и что модель использует достаточно длинный Impulse response duration.

С вышеупомянутыми модификациями симуляция приблизительно в пять раз быстрее, значительно не влияя на результаты симуляции.

bdclose(model);
clear model;