honeycomb0
Oct 4 2016, 10:14
С горем пополам удалось реализовать модель ФАПЧ (кстати прекрасно описанной на dsplib.ru) для простой, как мне казалось задачи - просто "схватиться" за фазу входной медленой (30Гц) синусойды и сихронизировать с ней NCO на той же частоте (другими словами просто "скопировать сигнал"). Удачно подобрал коэффициенты для моей задачи, получившийся ФАПЧ устраивает всем, кроме одного - модель используют double тип данных, а моя конечная цель - реализовать ФАПЧ на полностью целочисленной арифметике. На данный момент, все мои попытки конвертировать получившиюся модель на integer математику, как и ожидалось, неудачны. Проблема в том, что коэффициенты петлевого фильтра нещадно малы - я отчаяно пытаюсь их маштабировать, но на выходе ФАПЧ выходит каша... Хотел узнать, ведь наверняка кто-то сталкивался с подобной проблемой, может подтолкнете меня в нужное направление? Ведь каким-то образом данная задача реализовывалась на ПЛИС?
Спасибо
alex_os
Oct 4 2016, 10:57
honeycomb0
Oct 4 2016, 14:11
В курсе, но вот незадача: ki = 5.9164e-009, kp = 1.5384e-005.
jorikdima
Oct 4 2016, 15:39
в чем проблема коэффициенты умножить на, скажем 10 в 9 или около того, а результат на выходу петлевого фильтра затем разделить?
И коэффициенты не подбирать надо, а расчитывать.
honeycomb0
Oct 4 2016, 19:04
Насчет подбора, я полностью соглашусь. Однако я должен признать свою полную несостоятельность на этом поприще. Я перерыл много материала по теме, везде подробно описано как устроена ФАПЧ, приведена передаточная хар-ка петли, выведены основные параметры (резонансная частота петли, коэффициенты фазового детектора, коэффициент ГНУ, демпинг фактор и др.), мне даже стали понятны критерии стабильности всей ФАПЧ - однако как расчитать коэффициенты я так и не понял. Они все связаны между собой, и никак не получается систематизировать их отношения и рассматривать как отдельно взятую еденицу. Я ищу этот рецепт, но пока результат никакой, рецепта найти не удалось. Повсеместно гоняю ФАПЧ в симуляторе, однако уже становится понятным что результат этой затеи плачевен...
stealth-coder
Oct 4 2016, 19:41
Цитата(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

))
SemperAnte
Oct 5 2016, 09:57
А посмотрите вот этот Матлаб пример для HDL кодера. Здесь в модуле Fine Frequency Compensation - PLL как раз реализована в fixed point.
HDL Optimized QPSK Receiver with Captured Data
https://www.mathworks.com/help/comm/example...ommqpskrxhdl-25
honeycomb0
Oct 7 2016, 16:16
Спасибо за наводки, буду смотреть-разбираться...
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.