Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ФАПЧ на целочисленной арифметике
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
honeycomb0
С горем пополам удалось реализовать модель ФАПЧ (кстати прекрасно описанной на dsplib.ru) для простой, как мне казалось задачи - просто "схватиться" за фазу входной медленой (30Гц) синусойды и сихронизировать с ней NCO на той же частоте (другими словами просто "скопировать сигнал"). Удачно подобрал коэффициенты для моей задачи, получившийся ФАПЧ устраивает всем, кроме одного - модель используют double тип данных, а моя конечная цель - реализовать ФАПЧ на полностью целочисленной арифметике. На данный момент, все мои попытки конвертировать получившиюся модель на integer математику, как и ожидалось, неудачны. Проблема в том, что коэффициенты петлевого фильтра нещадно малы - я отчаяно пытаюсь их маштабировать, но на выходе ФАПЧ выходит каша... Хотел узнать, ведь наверняка кто-то сталкивался с подобной проблемой, может подтолкнете меня в нужное направление? Ведь каким-то образом данная задача реализовывалась на ПЛИС?

Спасибо
alex_os
Насколько малы коэффициенты? Про fixed point в курсе? https://ru.wikipedia.org/wiki/%D0%A7%D0%B8%...%82%D0%BE%D0%B9

honeycomb0
В курсе, но вот незадача: ki = 5.9164e-009, kp = 1.5384e-005.
jorikdima
в чем проблема коэффициенты умножить на, скажем 10 в 9 или около того, а результат на выходу петлевого фильтра затем разделить?

И коэффициенты не подбирать надо, а расчитывать.
honeycomb0

Насчет подбора, я полностью соглашусь. Однако я должен признать свою полную несостоятельность на этом поприще. Я перерыл много материала по теме, везде подробно описано как устроена ФАПЧ, приведена передаточная хар-ка петли, выведены основные параметры (резонансная частота петли, коэффициенты фазового детектора, коэффициент ГНУ, демпинг фактор и др.), мне даже стали понятны критерии стабильности всей ФАПЧ - однако как расчитать коэффициенты я так и не понял. Они все связаны между собой, и никак не получается систематизировать их отношения и рассматривать как отдельно взятую еденицу. Я ищу этот рецепт, но пока результат никакой, рецепта найти не удалось. Повсеместно гоняю ФАПЧ в симуляторе, однако уже становится понятным что результат этой затеи плачевен...
stealth-coder
Цитата(honeycomb0 @ Oct 4 2016, 17:11) *
В курсе, но вот незадача: ki = 5.9164e-009, kp = 1.5384e-005.


А что Вас смущает? Fixed point 1.31 позволяет представить ki в виде числа 13 (13 * 1/(2^31) = 6.053597e-009), если такая точность не устраивает, возьмите побольше разрядность, 1.63 позволит представить точнее чем double sm.gif))
SemperAnte
А посмотрите вот этот Матлаб пример для HDL кодера. Здесь в модуле Fine Frequency Compensation - PLL как раз реализована в fixed point.

HDL Optimized QPSK Receiver with Captured Data
https://www.mathworks.com/help/comm/example...ommqpskrxhdl-25
honeycomb0
Спасибо за наводки, буду смотреть-разбираться...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.