Автоматическая генерация кода для выбранной подсистемы.




Кликаем ПКМ на подсистему и выбираем C/C+ code. Открывается панель генерации кода.

 

«Колесико» - настройка кодогенерации. Для генерации кода, например, для 8-битного микроконтроллера Arduino Uno, необходимо подключить IDE Arduino к Matlab. Описание МК появится в Toolchain.

 

В столбце слева видны сгенерированные файлы. Их можно посмотреть:

Большое количество файлов – результат структуризации кода, что позволяет выделять блоки и генерировать тысячи строк кода. Условная файловая структура проекта представлена ниже.

Рис. Файловая структура проекта

Избыточное количество строк кода не влияет на выполнение программы МК Arduino Uno. Скорость выполнения автоматически сгенерированного кода в Матлаб и самостоятельно написанного С-кода в AVR Studio отличается не более 10%. Скорость выполнения программы на языке wiring меньше в несколько раз.

 

Далее выполнять не надо.

 

Задание. Необходимо создать модель цифрового модулятора сигнала QPSK.

Структурная схема QPSK модулятора на основе универсального квадратурного модулятора показана на рис.

Если отвлечься от физики процесса, то перед нами – преобразователь типов данных. На входе имеется битовый поток и он разбивается по 2 бита последовательно (частота следования Ft/2). Два бита имеют 4 возможных состояния – 00, 10, 01, 11. Эти состояния должны быть переведены в комплексную плоскость

(окружность единичного радиуса) с изменяемой фазой – 4 точки с фазами 45град., 135, 225 и 315. Битовый тип данных переводится в комплексный тип с постоянными амплитудами и фиксированными фазами.

Сигнал имеет вид:

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

Из комплексной огибающей можно выделить фазовую огибающую как:

Важно отметить, что арктангенс должен вычисляться с учетом четверти комплексной плоскости (функции арктангенс 2). Вид фазовой огибающей для информационного потока «1100101101100001» показан на рис. 3.4.14.

 


Рис. 3.4.14. Фазовая огибающая QPSK сигнала.

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

 

 

Готовый модулятор QPSK имеется в Simulink, если удастся его «вскрыть»,

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

 

 

 



Поделиться:




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

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2022-09-12 Нарушение авторских прав и Нарушение персональных данных


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