|
ADPLL, Синхронизация с несущей DCF77 |
|
|
|
Sep 22 2016, 18:42
|
Участник

Группа: Участник
Сообщений: 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 а потом обратно, либо есть другой способ проще? В сигнале также есть фазовая модуляция, которую в дальнейшем также планируется декодировать. Нужно лишь синхронизироваться с несущей в первое время. Над символьной синхронизацией буду думать позже.
|
|
|
|
|
 |
Ответов
(1 - 11)
|
Sep 24 2016, 10:37
|
Местный
  
Группа: Участник
Сообщений: 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 в вики, ее вполне можно и нужно некогерентно принимать. Зачем там подстройка-то вообще? Сносите на небольшую промежуточную частоту + полосовик, в который пролазит сигнал при наличии частотной ошибки + амплитудный детектор.
|
|
|
|
|
Sep 25 2016, 09:04
|
Участник

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

|
Цитата(andyp @ Sep 24 2016, 13:37)  Судя по описанию DCF77 в вики, ее вполне можно и нужно некогерентно принимать. Зачем там подстройка-то вообще? Сносите на небольшую промежуточную частоту + полосовик, в который пролазит сигнал при наличии частотной ошибки + амплитудный детектор. Это если амплитудная модуляция. А что делать с фазовой?
|
|
|
|
|
Sep 25 2016, 20:35
|
Местный
  
Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163

|
Цитата(Veter0k @ Sep 25 2016, 12:04)  Это если амплитудная модуляция. А что делать с фазовой? Насколько понял, фазовая используется для более точного определения времени (с точностью до задержки распространения сигнала +/- 1/646 sec). Это тоже нужно? Если нет, то детектировать начало пакета и принимать первые 200 ms некогерентно. Если да, то придется восстанавливать несущую. При этом, насколько понимаю, при девиации фазы +/- 13 градусов в спектре будет мощный компонент на несущей, т.е. амплитудный спектр будет практически таким же как и у АМ. Следовательно, для восстановления несущей подойдет любой метод выделения этой спектральной компоненты - от PLL типа петли Костаса до методов спектрального оценивания частоты в лоб.
|
|
|
|
|
Sep 25 2016, 22:16
|
Участник

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

|
Цитата(andyp @ Sep 25 2016, 23:35)  Насколько понял, фазовая используется для более точного определения времени (с точностью до задержки распространения сигнала +/- 1/646 sec). Это тоже нужно?
Если нет, то детектировать начало пакета и принимать первые 200 ms некогерентно.
Если да, то придется восстанавливать несущую. При этом, насколько понимаю, при девиации фазы +/- 13 градусов в спектре будет мощный компонент на несущей, т.е. амплитудный спектр будет практически таким же как и у АМ. Следовательно, для восстановления несущей подойдет любой метод выделения этой спектральной компоненты - от PLL типа петли Костаса до методов спектрального оценивания частоты в лоб. Прикол не только в точности. Мое расположение близко к границе возможного приема. У FM BER гораздо лучше. И разве петля Костаса работает для девиации отличной от +/- 90 градусов?
|
|
|
|
|
Sep 25 2016, 22:41
|
Местный
  
Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163

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

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

|
Цитата(andyp @ Sep 26 2016, 01:41)  Она еще работает, когда индекс модуляции 0  . В Вашем случае спектр будет как у АМ с маленькой девиацией - палка на несущей и маленькие боковые, которые (я так думаю, нужно проверить) не будут мешать работать петле. Значит петля Костаса для восстановления несущей. А дальше просто демодуляция. Спасибо.
|
|
|
|
|
Sep 26 2016, 08:03
|
Местный
  
Группа: Участник
Сообщений: 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 плюс детектор.
|
|
|
|
|
Sep 26 2016, 10:31
|
Участник

Группа: Участник
Сообщений: 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.
|
|
|
|
|
Sep 26 2016, 11:42
|
Местный
  
Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163

|
Цитата(Veter0k @ Sep 26 2016, 13:31)  Но у меня PLL чисто цифровая, используя NCO внутри FPGA. Не очень понимаю, что это меняет - умножитель входа на синус (это ФД) + петлевой фильтр, выход которого управляет NCO, вполне себе в цифре внутри FPGA делаются.
|
|
|
|
|
Sep 26 2016, 12:01
|
Участник

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

|
Цитата(andyp @ Sep 26 2016, 14:42)  Не очень понимаю, что это меняет - умножитель входа на синус (это ФД) + петлевой фильтр, выход которого управляет NCO, вполне себе в цифре внутри FPGA делаются. Только как управлять я не совсем понимаю. В качестве сигнала ошибки брать фазу, для чего нужно арктангес вычислять либо подойдет синус разности частот?
|
|
|
|
|
Sep 26 2016, 13:12
|
Местный
  
Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163

|
Цитата(Veter0k @ Sep 26 2016, 15:01)  Только как управлять я не совсем понимаю. В качестве сигнала ошибки брать фазу, для чего нужно арктангес вычислять либо подойдет синус разности частот? Синус сойдет sin(x) ~ x для малых углов, когда петля залочена
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|