При создании радиолюбительских приёмников или трансиверов часто возникает задача разработки АМ/ЧМ демодулятора как для узкополосных сигналов, так и для широкополосного ЧМ-радиовещания. Принцип работы большинства таких демодуляторов основан на аналоговой обработке сигнала с помощью частотных или амплитудных детекторов. Концепция развития современных SDR-приёмников (Software Defined Radio) подразумевает программное управление синтезаторами частоты и другими узлами с помощью микроконтроллера. В связи с этим становится заманчивым использование управляющего микроконтроллера и для задач цифровой обработки сигналов.
В этой статье представлены результаты исследования по применению микроконтроллеров STM32F405/407 фирмы STMic-roelectronics. В большинстве случаев такая задача решается с помощью применения цифровых сигнальных процессоров (DSP) или ПЛИС (FPGA), однако в радиолюбительских целях применение подобных устройств зачастую затруднительно в связи с их высокой стоимостью и довольно сложным для ручной пайки корпусом BGA(Ball Grid Array).
Микроконтроллер STM32F405V/407V стоит недорого и имеет стандартный корпус QFP (Quad Flat Package) 64/100 с шагом выводов 0,5 мм, что позволяет работать с ним в домашних условиях. Он содержит богатый набор периферийных модулей, необходимых для управления синтезаторами или аттенюаторами. Тактовая частота ядра - 168 МГц, чего вполне достаточно для несложных задач цифровой обработки сигналов.
Рассмотрим основные алгоритмы цифровой демодуляции АМ/ЧМ-сигналов после переноса их на низкую промежуточную частоту (порядка 100 кГц). Общая блок-схема цифрового демодулятора ЧМ-сигнала приведена в статье "Демодуляция сигналов с угловой модуляцией. PM и FM демодуляторы". - URL: http://www.dsplib.ru/content/ fmdemod/fmdemod.html (27.08.2018). При этом для демодуляции АМ-сигналов выходные данные необходимо снимать с блока вычисления суммы квадратов сигналов, взяв от неё квадратный корень. Таким образом, наиболее сложный вариант с точки зрения процессорного времени обработки представляет демодулятор ЧМ-сигнала.
Рис. 1. Блок-схема квадратурного АМ/ЧМ демодулятора
Блок-схема квадратурного АМ/ЧМ демодулятора приведена на рис. 1. Стандартный подход для "обкатки" алгоритмов ЦОС (цифровой обработки сигналов) в микроконтроллерах или ПЛИС заключается в предварительном тестировании и оптимизации алгоритма в средах математического проектирования, таких как SCILAB, OCTAVE, MATLAB. Таким же образом поступим и мы.
Ниже приведены графики для ЧМ-сигнала со следующими параметрами:
- частота несущей 150 кГц;
- девиация частоты 50 кГц;
- частота однотонального модулирующего сигнала 15 кГц.
Параметры этого сигнала соответствуют параметрам сигнала ЧМ-радиовещания.
Спектр ЧМ-сигнала s(t) на входе демодулятора показан на рис. 2. Полоса занимаемых им частот от 85 до 215 кГц. Таким образом, по теореме Котельникова частота дискретизации АЦП должна быть не меньше 600 кГц. В проекте частота дискретизации выбрана равной 665 кГц.
Рис. 2. Спектр ЧМ-сигнала s(t) на входе демодулятора
Для расчёта ФНЧ рассмотрим спектр сигнала после квадратурных смесителей, изображённый на рис. 3. Видно, что частота среза ФНЧ должна быть 100 кГц, чтобы отфильтровать зеркальные побочные сигнала. Фильтр был спроектирован в программе WinFilter. - URL:http://www.winfilter.20m.com (27.08.2018). Он имеет следующие параметры: частота среза - 100 кГц, затухание на частоте 200 кГц - 60 дБ, частота дискретизации - 665 кГц, тип фильтра - КИХ (с конечной импульсной характеристикой), порядок -11.
Рис. 3. Спектр сигнала после квадратурных смесителей
Фильтры БИХ (с бесконечной импульсной характеристикой) при аналогичных параметрах могут иметь меньший порядок, но их фазочастотная характеристика нелинейна, что приводит к сильным искажениям сигнала, в связи с этим применяется фильтр КИХ.
Сигнал на выходе модели демодулятора показан на рис. 4. Видно, что его искажения незначительны. Таким образом, параметры рассчитанных ФНЧ корректны.
Рис. 4. Сигнал на выходе модели демодулятора
Рассмотрим реализацию алгоритма ЧМ-демодулятора в микроконтроллере STM32F407V. Этот микроконтроллер имеет тактовую частоту 168 МГц, при этом она может быть увеличена до 216 МГц (работает, но полных испытаний не проводилось). Большинство инструкций выполняются за один такт. Из интересующей нас периферии он имеет три блока АЦП с разрешением в 12 бит, частотой дискретизации до 2,4 МГц и опорным напряжением 2,5 В, два модуля ЦАП с частотой до 1 МГц.
Блок-схема аппаратной части демодулятора на микроконтроллере приведена на рис. 5. ЧМ-сигнал s(t) подавался от функционального генератора DG4162.
Рис. 5. Блок-схема аппаратной части демодулятора на микроконтроллере
Блок-схема алгоритма программы микроконтроллера изображена на рис. 6. Основной код программы выполняется в обработчике прерывания по готовности АЦП. Следовательно, основной цикл программы можно использовать для управления и настройки приёмника. Время, затрачиваемое на цифровую обработку при тактовой частоте ядра 216 МГц, - 900 нс. Таким образом, загрузка процессора не превышает 60 % при частоте дискретизации 665 кГц.
Рис. 6. Блок-схема алгоритма программы микроконтроллера
Для разработки программы использовалась среда CoIDE, а для инициализации периферии применялись модули, сгенерированные в программе CUBE MX С-компилятора - GCC. Все данные представлены в целочисленных переменных.
На рис. 7 показана осциллограмма демодулированного сигнала на выходе ЦАП при размахе несущей 2,5 В или 0 дБ (полный динамический диапазон АЦП, определяемый опорным напряжением 2,5 В). При этом за счёт операции масштабирования для устранения амплитудной модуляции работоспособность алгоритма сохраняется вплоть до размаха несущей 50 мВ или -30 дБ. Сигнал на выходе ЦАП при таком уровне входного сигнала показан на рис. 8.
Рис. 7. Осциллограмма демодулированного сигнала на выходе ЦАП
Рис. 8. Сигнал на выходе ЦАП
Полученные результаты позволяют рекомендовать для использования в качестве АМ/ЧМ демодулятора высокопроизводительные микроконтроллеры в "дружелюбном" корпусе и небольшой стоимостью. Такое применение весьма актуально для построения автономных трансиверов. При этом описанный алгоритм можно применять как для демодуляции широкополосного ЧМ-сигнала (Wide Band FM), так и для узкополосного (Narrow Band FM). Отличие будет заключаться только в параметрах ФНЧ. Для создания полноценного прототипа необходимо использовать не табличный вариант вычисления отсчётов гетеродина, а алгоритм CORDIC (Coordinate Rotation Digital Computer), чтобы избежать артефактов в сигнале на стыках фрагментов синусоиды. Также необходимо добавить цифровую петлю ФАПЧ (фазовой автоподстройки частоты) для устранения дрейфа аналогового гетеродина.
Материалы проекта имеются здесь.
Автор: М. Дахин, г. Воронеж.