Veter0k 0 22 сентября, 2016 Опубликовано 22 сентября, 2016 · Жалоба Делаю в ПЛИС 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 9 24 сентября, 2016 Опубликовано 24 сентября, 2016 · Жалоба Делаю в ПЛИС 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 0 25 сентября, 2016 Опубликовано 25 сентября, 2016 · Жалоба Судя по описанию DCF77 в вики, ее вполне можно и нужно некогерентно принимать. Зачем там подстройка-то вообще? Сносите на небольшую промежуточную частоту + полосовик, в который пролазит сигнал при наличии частотной ошибки + амплитудный детектор. Это если амплитудная модуляция. А что делать с фазовой? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andyp 9 25 сентября, 2016 Опубликовано 25 сентября, 2016 · Жалоба Это если амплитудная модуляция. А что делать с фазовой? Насколько понял, фазовая используется для более точного определения времени (с точностью до задержки распространения сигнала +/- 1/646 sec). Это тоже нужно? Если нет, то детектировать начало пакета и принимать первые 200 ms некогерентно. Если да, то придется восстанавливать несущую. При этом, насколько понимаю, при девиации фазы +/- 13 градусов в спектре будет мощный компонент на несущей, т.е. амплитудный спектр будет практически таким же как и у АМ. Следовательно, для восстановления несущей подойдет любой метод выделения этой спектральной компоненты - от PLL типа петли Костаса до методов спектрального оценивания частоты в лоб. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Veter0k 0 25 сентября, 2016 Опубликовано 25 сентября, 2016 · Жалоба Насколько понял, фазовая используется для более точного определения времени (с точностью до задержки распространения сигнала +/- 1/646 sec). Это тоже нужно? Если нет, то детектировать начало пакета и принимать первые 200 ms некогерентно. Если да, то придется восстанавливать несущую. При этом, насколько понимаю, при девиации фазы +/- 13 градусов в спектре будет мощный компонент на несущей, т.е. амплитудный спектр будет практически таким же как и у АМ. Следовательно, для восстановления несущей подойдет любой метод выделения этой спектральной компоненты - от PLL типа петли Костаса до методов спектрального оценивания частоты в лоб. Прикол не только в точности. Мое расположение близко к границе возможного приема. У FM BER гораздо лучше. И разве петля Костаса работает для девиации отличной от +/- 90 градусов? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andyp 9 25 сентября, 2016 Опубликовано 25 сентября, 2016 · Жалоба Прикол не только в точности. Мое расположение близко к границе возможного приема. У FM BER гораздо лучше. И разве петля Костаса работает для девиации отличной от +/- 90 градусов? Она еще работает, когда индекс модуляции 0 ;). В Вашем случае спектр будет как у АМ с маленькой девиацией - палка на несущей и маленькие боковые, которые (я так думаю, нужно проверить) не будут мешать работать петле. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Veter0k 0 26 сентября, 2016 Опубликовано 26 сентября, 2016 · Жалоба Она еще работает, когда индекс модуляции 0 ;). В Вашем случае спектр будет как у АМ с маленькой девиацией - палка на несущей и маленькие боковые, которые (я так думаю, нужно проверить) не будут мешать работать петле. Значит петля Костаса для восстановления несущей. А дальше просто демодуляция. Спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andyp 9 26 сентября, 2016 Опубликовано 26 сентября, 2016 · Жалоба Значит петля Костаса для восстановления несущей. А дальше просто демодуляция. Спасибо. Подумал с утра и понял, что Костас не нужен, нужна обычная PLL + простой демодулятор - при залоченной петле останется меандр в мнимой компоненте, который можно демодулировать. Если при синхронизации нужно выжать последние капли еще и из энергетики, которая используется собственно для передачи данных, то можно рассмотреть использование гибридных петель отсюда: http://descanso.jpl.nasa.gov/monograph/ser...nso9_08_rev.pdf Но я бы не стал - просто обычная PLL плюс детектор. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Veter0k 0 26 сентября, 2016 Опубликовано 26 сентября, 2016 · Жалоба Подумал с утра и понял, что Костас не нужен, нужна обычная PLL + простой демодулятор - при залоченной петле останется меандр в мнимой компоненте, который можно демодулировать. Если при синхронизации нужно выжать последние капли еще и из энергетики, которая используется собственно для передачи данных, то можно рассмотреть использование гибридных петель отсюда: http://descanso.jpl.nasa.gov/monograph/ser...nso9_08_rev.pdf Но я бы не стал - просто обычная PLL плюс детектор. Но у меня PLL чисто цифровая, используя NCO внутри FPGA. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andyp 9 26 сентября, 2016 Опубликовано 26 сентября, 2016 · Жалоба Но у меня PLL чисто цифровая, используя NCO внутри FPGA. Не очень понимаю, что это меняет - умножитель входа на синус (это ФД) + петлевой фильтр, выход которого управляет NCO, вполне себе в цифре внутри FPGA делаются. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Veter0k 0 26 сентября, 2016 Опубликовано 26 сентября, 2016 · Жалоба Не очень понимаю, что это меняет - умножитель входа на синус (это ФД) + петлевой фильтр, выход которого управляет NCO, вполне себе в цифре внутри FPGA делаются. Только как управлять я не совсем понимаю. В качестве сигнала ошибки брать фазу, для чего нужно арктангес вычислять либо подойдет синус разности частот? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andyp 9 26 сентября, 2016 Опубликовано 26 сентября, 2016 · Жалоба Только как управлять я не совсем понимаю. В качестве сигнала ошибки брать фазу, для чего нужно арктангес вычислять либо подойдет синус разности частот? Синус сойдет sin(x) ~ x для малых углов, когда петля залочена Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться