Формирователь ЛЧМ сигнала на VHDL

ЛЧМ сигнал на VHDLЛЧМ сигнал это в котором присутствует или заложена линейная частотная модуляция. Простыми словами это линейное изменение частоты сигнала за определенный промежуток времени. Линейно-частотно модулированный сигнал может быть описан следующим образом.

  • t — время;
  • A — амплитуда;
  • ~\varphi_0 — начальная фаза;
  • ~\omega_0 — начальная частота;
  • ~a — скорость изменения частоты (\tfrac{d\omega}{dt}).

ЛЧМ сигналы часто используются в гидроакустике для построения излучающих трактов гидроакустических станций различного назначения. В недавнем прошлом для построения цифрового формирователя ЛЧМ требовалась жменька цифровых логических микросхем. В настоящее время такой формирователь легко можно соорудить на ПЛИС. Проще всего построить логику формирователя ЛЧМ на базе языка VHDL, кстати полезно по этому поводу посетить соответствующий раздел литературы по VHDL Verilog. Итак допустим стоит задача создать формирователь ЛЧМ сигнала длительностью в 13 мс с начальной частотой 71кГц и конечной 79кГц. Допустим, что частота задающего генератора равна 8 000кГц. Прежде чем произвести какие либо расчеты представим блок схему формирователя. Что для этого нужно? Многоразрядные двоичный счетчик, сумматор и регистр (фазовый накопитель) и небольшая схема управления. Ниже приведен скриншот блок схемы формирователя ЛЧМ.

Формирователь ЛЧМ сигнала

  • G - задающий генератор
  • 1 - делитель
  • 2 - многоразрядный счетчик
  • SМ - сумматор
  • RG - регистр
  • К1 - начальный коэффициент деления счетчика 2
  • К2 - конечный коэффициент деления счетчика 2

Как это работает? S производит запуск (сброс) всей системы - счетчика 2, предварительного делителя 1, регистра RG с одновременной записью начального коэффициента деления К1 в счетчик 2. Далее по мере достижения на выходе счетчика 1 конечного коэффициента деления К2 формирователь останавливается до следующего импульса запуска S.

Как известно, мнгновенная частота ЛЧМ сигнала построенного на базе фазового накопителя определяется как F = k*f/2в степениN. f - частота задающего генератора или частота тактирования, N - разрядность сумматора. Для начала необходимо определить минимальную разрядность фазового накопителя для обеспечения условия точности формирования выходной частоты. К примеру нам нужно обеспечить точность не более чем ±100 Гц. Тогда поделив частоту задающего генератора на 100 получим число, перевод которого в бинарный вид, покажет нам минимальную разрядность фазового накопителя, тоесть 8000000/100 = 10011100010000000. Получается 17 разрядов. Для того, чтобы с запасом перекрыть требуемую точность вполне можно выбрать 20 разрядов.

Дальше необходимо определиться с начальным и конечным коэффициентами деления счетчика и частотой его тактирования. К1 = 71* 1048576 (два в двадцатой степени)/8000 К1 = 9306 К2 = 79*1048576/8000 К2 = 10354. При этом разность К2 - К1 должна уложиться в наши 13 мс. Тоесть коэффициент деления счетчика 2 должен измениться в (К2 - К1) раз за 13 мс. А значит частота тактирования предварительного делителя 1 должна быть (К2 - К1)/13, тоесть 80615 Гц. Или при тактовой частоте 8000 кГц коэффициент деления предварительного делителя должен быть 8000/80,615 = 99.

На базе этих рассуждений был написан VHDL код формирователя ЛЧМ сигнала в среде проектирования Quartus 8.0. Архив с проектом содержит VHDL код с комментариями и модель формирователя представленную в симуляторе.

Если что не так в расчетах, какие либо некорректности или у Вас есть полезные мысли по поводу формирования ЛЧМ сигнала милости прошу на форму для комментов, ссылка на которую находится ниже по тексту.

комментариев: (4)

Перейти и растаять в своей любимой социалке