Найти тему
IT. Как это работает?

Фазовая модуляция на языке Verilog

Оглавление

Всем привет! В прошлый раз мы познакомились с фазовой модуляцией зайдя лишь с теоретической стороны. Конкретно, этот вид модуляции гармонического сигнала был описан с применением математической формулы. Кроме того, эта формула позволила набросать схему передатчика фазомодулированного сигнала. На этот раз ничего не мешает реализовать этот передатчик на базе ПЛИС, этим и займемся.

Пишем код

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

Схема фазового модулятора гармонического сигнала
Схема фазового модулятора гармонического сигнала

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

С точки зрения синтаксиса этот модуль не представляет собой ничего интересного. Параметр WIDTH задает разрядность обрабатываемых чисел, на вход модуля поступает тактовый сигнал clk, величины квадратурных составляющих I и Q, код частоты несущего гармонического колебания freq, а сигнал на выходе модуля это S.

Накапливаемая в интеграторе полная фаза колебания снимается с его выхода y и поступает по шине проводов angle в генератор гармонических сигналов, работающий по алгоритму CORDIC. Разрядность фазы 32 бита. По шинам проводов SIN и COS гармонические колебания поступают на умножители, где вычисляются их произведения с квадратурными составляющими I и Q. Сумматор произведений оканчивает обработку сигнала. С этого момента на выходе модуля фазовой модуляции появляется образованный ортогональными гармониками фазомодулированный сигнал.

Синтез схемы

Среда разработки Quartus Prime после компиляции исходного кода показывает такую схему:

-3

В левой части угадываются очертания интегратора (аккумулятор фазы). CORDIC генератор на основании накопленной полной фазы колебания отправляет на умножители ортогональные гармоники (синус и косинус). Два умножителя и сумматор завершают все вычисления. В структуре умножителей видны дополнительные модули для преобразования чисел из дополнительного кода в прямой и обратно.

Моделируем работу разработанного модуля

Чтобы смоделировать работу разработанного модуля необходимо просто подать на его вход тактовый сигнал clk, код частоты несущего колебания freq, а также значения синфазной составляющей I в разные моменты времени:

Результат моделирования безупречен и демонстрирует совершенно ученический вид сигнала с ФМ-2 модуляцией (она же PSK):

-4

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

В коде использованы материалы статей:

  • аккумулятор фазы,
  • CORDIC генератор гармонических колебаний,
  • умножитель,
  • сумматор.

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

Также не обойдите вниманием канал на YouTube. Подписки и лайки будут приятным ответом от аудитории.