Задание 4. Создание имитационной модели MSK-модулятора

В ходе выполнения предыдущих заданий были затронуты различные блоки, переменные, сложные VI. Используя элементы, перечисленные выше, можно начать собирать более сложные модели. В данном задании будет собрана небольшая часть РСПИ, а именно - MSK-модулятор. Однако, прежде чем приступить к непосредственному проектированию модели, хотелось бы дать несколько советов, которые помогут на начальном этапе:

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

2) Решите, что именно будет реализовано в вашей конкретной модели, а что - нет. Например, будет ли происходить помехоустойчивое кодирование. Во многих теоретических моделях реализация большого количества блоков не обязательна.

3) Для каждого конкретного преобразования сигнала найдите (если это возможно) блок в библиотеке LabVIEW, который выполняет аналогичное преобразование.

4) Последовательно расположите и соедините основные блоки схемы. Порядок некоторых блоков может меняться, но в большинстве случаев известно, какой блок следует за каким.

5) После того, как собран "скелет" модели, следует подавать входные значения и подключать Управляющие элементы. По мере необходимости подключать дополнительные блоки.

Ниже будут перечислены блоки, которые понадобятся для разработки модели. Найти их можно с помощью кнопки Search в палитре Functions, либо в палитре AddonsModulationDigital.

  MT Bit Generation. Данный блок генерирует цифровой поток данных, который потом будет смодулирован при помощи MSK.
MT Generate Filter Coefficients. Данный ВП генерирует коэффициенты фильтра, которые будут использоваться во время модуляции для уменьшения ширины полосы модулированного сигнала и влияния сигнала на соседние каналы
MT Generate System Parameters. Данный блок вычисляет параметры, которые в дальнейшем используются в процессе модуляции и демодуляции.
MT Modulate MSK. Данный блок производит MSK модуляцию потока бит, используя системные параметры и заданные коэффициенты фильтра.
MT Add AWGN Данный блок добавляет в канал передачи данных аддитивный белый гауссовский шум.

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

В первую очередь нам необходима последовательность битов информации, которую мы хотим передать. Получить ее можно с помощью блока MT Generate Bits. Щелкнем правой кнопкой мыши на пустом месте блок-диаграммы. Для удобства закрепим палитру функций, а также с помощью кнопки Customize изменим внешний вид палитры: CustomizeView This Palette AsCategory (Icons and Text).

Рис.4.1. Настройка внешнего вида палитры функций

Теперь из палитры ModulationDigital перенесем блок генератора битовой последовательности на диаграмму.

Рис.4.2. расположение блока MT Generate Bits.

Зададим его параметры. Для этого создадим элементы управления, которые будут задавать порядок псевдослучайной последовательности и общее количество битов. Для каждого контроллера, созданного в дальнейшем, следует убрать галочку с параметра View As Icon, чтобы уменьшить его размеры.

Теперь для корректной работы блока нам осталось подать на вход reset (зеленый вход внизу блока) логическую единицу (TRUE). Создаем константу для входа reset. После описанных действий модель должна принять следующий вид:

Рис.4.3. Блок-диаграмма.

Следующим шагом будет добавление блока, который генерирует параметры MSK системы. Перетащим его в модель из палитры ModulationDigitalUtilities. Называется он MT Generate System Parameters.

Рис.4.4. Расположение блока MT Generate System Parameters.

Изначально LabView генерирует данный блок для FSK. Чтобы изменить этот параметр на MSK, необходимо нажать левой кнопкой мыши на «FSK (M)» и выбрать «MSK».

На вход Samples per Symbol (количество выборок на 1 символ) необходимо подать переменные. Для этого создадим еще 1 элемент управления

Рис4.5. Блок-диаграмма.

Следующий блок – это генератор коэффициентов для формирующего и согласованного фильтров MT Generate Filter Coefficients. Найдем мы его там же, где и блок генератора параметров.

Рис.4.6. Расположение блока MT Generate Filter Coefficients.

Зададим его входные параметры. В первую очередь установим вид модуляции (вход наверху). Создадим Constant и в списке с помощью левой кнопки мыши выберем MSK.

На входы pulse shaping samples per symbol и matched samples per symbol подадим такие же значения, как и на другие входы samples per symbol. Модель должна принять вид, показанный на рисунке 4.7.:

Рис.4.7. Блок-диаграмма.

Следующим шагом является добавление самого модулятора. Найдем его в палитре ModulationDigitalModulation и перетащим в модель блок MT Modulate MSK.

Рис.4.8. Расположение блока MT Modulate MSK.

Теперь надо соединить выходы блоков с соответствующими входами модулятора. Для этого следует рассмотреть все входы модулятора и соединить их с одноименными выходами других блоков. Модель должна принять соответствующий вид:

Рис.4.9. Блок-диаграмма.

Сам модулятор готов. Следующим этапом будет добавление блока, создающего сигнальное созвездие и осциллографа, на котором это сигнальное созвездие будет отображено. Как и в прошлых заданиях, осциллограф будет добавлен на лицевой панели. Для добавления осциллографа следует с блок-диаграммы переключиться на лицевую панель (CTRL+E) и на нее перенести блок MT Constellation Graph из палитры ControlsAddonsModulationDigital. (рисунок 4.10.)

Рис.4.10. Расположение блока MT Constellation Graph.

При этом добавленный блок на Лицевой панели и на блок-диаграмме будет иметь вид, показанный на рисунке 4.11

Рис.4.11. Блок MT Constellation Graph на ЛП и БД.

Можно заметить, что на лицевой панели блок MT Constellation Graph состоит из блока MT Format Constellation, осциллографа Constellation Graph и ссылки на этот осциллограф. Данный блок можно было собрать вручную, добавляя обычный XY Graph (ControlsExpressGraph IndicatorsXY Graph на лицевой панели) и блок MT Format Constellation (FunctionsAddonsModulationDigitalVisualizationMT Format Constellation на блок диаграмме), а затем форматируя осциллограф для отображения именно сигнального созвездия.

После добавления блока блок MT Constellation Graph на его подблок MT Format Constellation следует подать выходной сигнал с MSK модулятора, а также количество выборок на символ (Samples per symbol). После всего этого блок диаграмма будет выглядеть так, как показано на рисунке 4.12

Рис.4.12. Блок-диаграмма.

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

Рис.4.13. Параметры сигнала.

Запустив модель можно увидеть, как выглядит сигнальное созвездие незашумленного MSK сигнала.

Рис.4.14. Сигнальное созвездие.

При этом белыми точками изображено само сигнальное созвездие, а красными линиями - переходы между состояниями.

Следующим шагом является добавление шума в канал связи. Для этого потребуется блок MT Add AWGN из палитры ModulationDigitalImpairments.

Рис.4.15. Расположение блока MT Add AWGN.

Блок MT Add AWGN подключается между MSK модулятором и блоком формирования созвездия, поэтому эти блоки придется разъединить Соединим все необходимые входы (input complex waveform, samples per symbol, reset) и выходы (output complex waveform) генератора шума и зададим уровень шума 30дБ (с помощью CreateControl). Теперь подадим зашумленный сигнал на блок формирования созвездия. Также на блок формирования сигнального созвездия (MT format Constellation) на вход autoscale следует подать константу и задать параметр (True). Тем самым мы включим автоматическое скалирование выходного графика. Включение скалирования необходимо, так как зашумленный сигнал будет выходить за границы осциллографа, значения осей которого изменяются в пределах [-1;1]. Теперь блок-диаграмма модели примет вид:

Рис.4.16. Блок-диаграмма модели.

Теперь при запуске модели сигнальное созвездие будет иметь следующий вид:

Рис.4.17. Сигнальное созвездие.

Как видим, векторная диаграмма показывает, что сигнал действительно зашумлен. Чем меньшее задавать значение сигнал/шум (Eb/No), тем больше будет зашумлен сигнал в канале передачи данных.

Для более удобного анализа системы модель следует зациклить. Создадим цикл While, а также замедлим выполнение модели, создав блок Wait(ms) из палитры ProgrammingTiming.

Рис.4.18. Расположение блока Wait(ms).

Создадим для этого блока элемент контроля и выберем значение 1000 мс.

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

Рис.4.19. Окончательный вид ЛП и БД.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: