Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ADPLL
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
Veter0k
Делаю в ПЛИС Altera декодер сигналов точного времени DCF77. Сигнал с амплитудной модуляцией 77.5 кГц заходит на АЦП. Нарезаю с частотой 930 кГц (12 точек на период). Сигналы с NCO на 77.5 кГц sin и cos перемножаю с выходом АЦП. Далее идет CIC с децимацией в 93 раза. На выходе имеем 10 кГц. Естественно частоты не совпадают. В NCO есть вход частотной модуляции, которым можно подстроить эту частоту. Вопрос как правильно сделать фазовый детектор? Думал разделить sin на cos и взять atan, а дальше через PI регулятор подстраивать NCO. Но выходят fixed, а atan требует float point. Нужно ли ставить преобразователь fixed-to-float а потом обратно, либо есть другой способ проще? В сигнале также есть фазовая модуляция, которую в дальнейшем также планируется декодировать. Нужно лишь синхронизироваться с несущей в первое время. Над символьной синхронизацией буду думать позже.
andyp
Цитата(Veter0k @ Sep 22 2016, 21:42) *
Делаю в ПЛИС Altera декодер сигналов точного времени DCF77. Сигнал с амплитудной модуляцией 77.5 кГц заходит на АЦП. Нарезаю с частотой 930 кГц (12 точек на период). Сигналы с NCO на 77.5 кГц sin и cos перемножаю с выходом АЦП. Далее идет CIC с децимацией в 93 раза. На выходе имеем 10 кГц. Естественно частоты не совпадают. В NCO есть вход частотной модуляции, которым можно подстроить эту частоту. Вопрос как правильно сделать фазовый детектор? Думал разделить sin на cos и взять atan, а дальше через PI регулятор подстраивать NCO. Но выходят fixed, а atan требует float point. Нужно ли ставить преобразователь fixed-to-float а потом обратно, либо есть другой способ проще? В сигнале также есть фазовая модуляция, которую в дальнейшем также планируется декодировать. Нужно лишь синхронизироваться с несущей в первое время. Над символьной синхронизацией буду думать позже.


Судя по описанию DCF77 в вики, ее вполне можно и нужно некогерентно принимать. Зачем там подстройка-то вообще? Сносите на небольшую промежуточную частоту + полосовик, в который пролазит сигнал при наличии частотной ошибки + амплитудный детектор.

Veter0k
Цитата(andyp @ Sep 24 2016, 13:37) *
Судя по описанию DCF77 в вики, ее вполне можно и нужно некогерентно принимать. Зачем там подстройка-то вообще? Сносите на небольшую промежуточную частоту + полосовик, в который пролазит сигнал при наличии частотной ошибки + амплитудный детектор.

Это если амплитудная модуляция. А что делать с фазовой?
andyp
Цитата(Veter0k @ Sep 25 2016, 12:04) *
Это если амплитудная модуляция. А что делать с фазовой?


Насколько понял, фазовая используется для более точного определения времени (с точностью до задержки распространения сигнала +/- 1/646 sec). Это тоже нужно?

Если нет, то детектировать начало пакета и принимать первые 200 ms некогерентно.

Если да, то придется восстанавливать несущую. При этом, насколько понимаю, при девиации фазы +/- 13 градусов в спектре будет мощный компонент на несущей, т.е. амплитудный спектр будет практически таким же как и у АМ. Следовательно, для восстановления несущей подойдет любой метод выделения этой спектральной компоненты - от PLL типа петли Костаса до методов спектрального оценивания частоты в лоб.


Veter0k
Цитата(andyp @ Sep 25 2016, 23:35) *
Насколько понял, фазовая используется для более точного определения времени (с точностью до задержки распространения сигнала +/- 1/646 sec). Это тоже нужно?

Если нет, то детектировать начало пакета и принимать первые 200 ms некогерентно.

Если да, то придется восстанавливать несущую. При этом, насколько понимаю, при девиации фазы +/- 13 градусов в спектре будет мощный компонент на несущей, т.е. амплитудный спектр будет практически таким же как и у АМ. Следовательно, для восстановления несущей подойдет любой метод выделения этой спектральной компоненты - от PLL типа петли Костаса до методов спектрального оценивания частоты в лоб.

Прикол не только в точности. Мое расположение близко к границе возможного приема. У FM BER гораздо лучше. И разве петля Костаса работает для девиации отличной от +/- 90 градусов?
andyp
Цитата(Veter0k @ Sep 26 2016, 01:16) *
Прикол не только в точности. Мое расположение близко к границе возможного приема. У FM BER гораздо лучше. И разве петля Костаса работает для девиации отличной от +/- 90 градусов?


Она еще работает, когда индекс модуляции 0 wink.gif. В Вашем случае спектр будет как у АМ с маленькой девиацией - палка на несущей и маленькие боковые, которые (я так думаю, нужно проверить) не будут мешать работать петле.
Veter0k
Цитата(andyp @ Sep 26 2016, 01:41) *
Она еще работает, когда индекс модуляции 0 wink.gif. В Вашем случае спектр будет как у АМ с маленькой девиацией - палка на несущей и маленькие боковые, которые (я так думаю, нужно проверить) не будут мешать работать петле.

Значит петля Костаса для восстановления несущей. А дальше просто демодуляция. Спасибо.
andyp
Цитата(Veter0k @ Sep 26 2016, 09:36) *
Значит петля Костаса для восстановления несущей. А дальше просто демодуляция. Спасибо.


Подумал с утра и понял, что Костас не нужен, нужна обычная PLL + простой демодулятор - при залоченной петле останется меандр в мнимой компоненте, который можно демодулировать. Если при синхронизации нужно выжать последние капли еще и из энергетики, которая используется собственно для передачи данных, то можно рассмотреть использование гибридных петель отсюда:
http://descanso.jpl.nasa.gov/monograph/ser...nso9_08_rev.pdf

Но я бы не стал - просто обычная PLL плюс детектор.
Veter0k
Цитата(andyp @ Sep 26 2016, 11:03) *
Подумал с утра и понял, что Костас не нужен, нужна обычная PLL + простой демодулятор - при залоченной петле останется меандр в мнимой компоненте, который можно демодулировать. Если при синхронизации нужно выжать последние капли еще и из энергетики, которая используется собственно для передачи данных, то можно рассмотреть использование гибридных петель отсюда:
http://descanso.jpl.nasa.gov/monograph/ser...nso9_08_rev.pdf

Но я бы не стал - просто обычная PLL плюс детектор.

Но у меня PLL чисто цифровая, используя NCO внутри FPGA.
andyp
Цитата(Veter0k @ Sep 26 2016, 13:31) *
Но у меня PLL чисто цифровая, используя NCO внутри FPGA.


Не очень понимаю, что это меняет - умножитель входа на синус (это ФД) + петлевой фильтр, выход которого управляет NCO, вполне себе в цифре внутри FPGA делаются.
Veter0k
Цитата(andyp @ Sep 26 2016, 14:42) *
Не очень понимаю, что это меняет - умножитель входа на синус (это ФД) + петлевой фильтр, выход которого управляет NCO, вполне себе в цифре внутри FPGA делаются.

Только как управлять я не совсем понимаю. В качестве сигнала ошибки брать фазу, для чего нужно арктангес вычислять либо подойдет синус разности частот?
andyp
Цитата(Veter0k @ Sep 26 2016, 15:01) *
Только как управлять я не совсем понимаю. В качестве сигнала ошибки брать фазу, для чего нужно арктангес вычислять либо подойдет синус разности частот?


Синус сойдет sin(x) ~ x для малых углов, когда петля залочена
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.