реклама на сайте
подробности

 
 
> ADPLL, Синхронизация с несущей DCF77
Veter0k
сообщение Sep 22 2016, 18:42
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 19-08-13
Пользователь №: 77 980



Делаю в ПЛИС 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 а потом обратно, либо есть другой способ проще? В сигнале также есть фазовая модуляция, которую в дальнейшем также планируется декодировать. Нужно лишь синхронизироваться с несущей в первое время. Над символьной синхронизацией буду думать позже.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 11)
andyp
сообщение Sep 24 2016, 10:37
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163



Цитата(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 в вики, ее вполне можно и нужно некогерентно принимать. Зачем там подстройка-то вообще? Сносите на небольшую промежуточную частоту + полосовик, в который пролазит сигнал при наличии частотной ошибки + амплитудный детектор.

Go to the top of the page
 
+Quote Post
Veter0k
сообщение Sep 25 2016, 09:04
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 19-08-13
Пользователь №: 77 980



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

Это если амплитудная модуляция. А что делать с фазовой?
Go to the top of the page
 
+Quote Post
andyp
сообщение Sep 25 2016, 20:35
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163



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


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

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

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


Go to the top of the page
 
+Quote Post
Veter0k
сообщение Sep 25 2016, 22:16
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 19-08-13
Пользователь №: 77 980



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

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

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

Прикол не только в точности. Мое расположение близко к границе возможного приема. У FM BER гораздо лучше. И разве петля Костаса работает для девиации отличной от +/- 90 градусов?
Go to the top of the page
 
+Quote Post
andyp
сообщение Sep 25 2016, 22:41
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163



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


Она еще работает, когда индекс модуляции 0 wink.gif. В Вашем случае спектр будет как у АМ с маленькой девиацией - палка на несущей и маленькие боковые, которые (я так думаю, нужно проверить) не будут мешать работать петле.
Go to the top of the page
 
+Quote Post
Veter0k
сообщение Sep 26 2016, 06:36
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 19-08-13
Пользователь №: 77 980



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

Значит петля Костаса для восстановления несущей. А дальше просто демодуляция. Спасибо.
Go to the top of the page
 
+Quote Post
andyp
сообщение Sep 26 2016, 08:03
Сообщение #8


Местный
***

Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163



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


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

Но я бы не стал - просто обычная PLL плюс детектор.
Go to the top of the page
 
+Quote Post
Veter0k
сообщение Sep 26 2016, 10:31
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 19-08-13
Пользователь №: 77 980



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

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

Но у меня PLL чисто цифровая, используя NCO внутри FPGA.
Go to the top of the page
 
+Quote Post
andyp
сообщение Sep 26 2016, 11:42
Сообщение #10


Местный
***

Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163



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


Не очень понимаю, что это меняет - умножитель входа на синус (это ФД) + петлевой фильтр, выход которого управляет NCO, вполне себе в цифре внутри FPGA делаются.
Go to the top of the page
 
+Quote Post
Veter0k
сообщение Sep 26 2016, 12:01
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 19-08-13
Пользователь №: 77 980



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

Только как управлять я не совсем понимаю. В качестве сигнала ошибки брать фазу, для чего нужно арктангес вычислять либо подойдет синус разности частот?
Go to the top of the page
 
+Quote Post
andyp
сообщение Sep 26 2016, 13:12
Сообщение #12


Местный
***

Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163



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


Синус сойдет sin(x) ~ x для малых углов, когда петля залочена
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 16th June 2025 - 13:54
Рейтинг@Mail.ru


Страница сгенерированна за 0.01457 секунд с 7
ELECTRONIX ©2004-2016