|
Джиттер при восстановлении тактовой синхронизации для PSK-сигналов |
|
|
|
Dec 2 2014, 06:50
|
Участник

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

|
Добрый день! Пытаюсь понять, как можно избавится от джиттера при востановлении символьной синхронизации в цифровом приемнике PSK и QAM-сигналов. В приемнике (на ПЛИС) реализуется восстановление фазы несущей и символьная синхронизация+ последующая обработка-декодирование и т.д. Реализовал тактовую синхронизацию как описано у Гарднера ("Interpolation in digital modems"), соответственно присутствует джиттер восстановленного clock-а (символьного). Когда номинальная символьная частота приемника отличается от символьной частоты принимаемого сигнала (а на практике это всегда так) символьный clock с выхода NCO периодически совершает "скачок", в результате чего получаем clock с джиттером, что не очень удобно с точки зрения построения остальной частотной сетки, привязанной к символьному clock-у, да и выходной clock в итоге получается "грязным". Как вариант - подстроить аналоговый ГУН под частоту символьного clock-a и получить более чистый clock, но это не всегда дает результат (при малых отстройках такта принимаемого сигнала от номинальной тактовой частоты приемника требуется чрезвычайно узкополосная ФАПЧ; при относительно больших отстройках clock получается более-менее). Еще есть другой подход - гибридная тактовая синхронизация (подстраиваем синхросигнал, подаваемый на АЦП, - опять-таки задействуем ГУН). В этом случае clock получаем без скачка, но возникает другая проблема: опорный синхросигнал (который подается на АЦП и используется в ПЛИС для цифровой обработки) становится зашумленным, особенно при малых отношениях сигнал/шум в канале связи. Этот синхросигнал используется помимо всего прочего и как опора для DDS, формирующего выборки cos и sin для восстановления фазы несущей, соответственно вносим в систему фазовый шум. Дополнительный фазовый шум ухудшает работу схемы восстановления несущей, особенно это заметно при малых скоростях передачи данных. Заранее спасибо всем, кто выскажет какие-либо разумные идеи.
|
|
|
|
|
Dec 2 2014, 10:51
|
Участник

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

|
А что делать... В приемнике частоты должны быть синхронизированы с тактом принимаемого синала
|
|
|
|
|
Dec 2 2014, 11:25
|
Участник

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

|
Местные генераторы надо подстраивать под символьную частоту, приемник рассчитан на непрерывный поток данных. Асинхронный вариант не подходит, fifo-буферы переполнятся/ опустеют в любом случае.
|
|
|
|
|
Dec 2 2014, 11:59
|
Участник

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

|
Если предусмотрена возможность пауз, то да. Но не в этом случае
|
|
|
|
|
Dec 2 2014, 12:19
|
Участник

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

|
Спутниковая связь. Синхронизация должна восстанавливаться приемником
|
|
|
|
|
Dec 2 2014, 13:02
|
Участник

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

|
Нужна дальнейшая обработка данных (преобразование символов в битовый поток,декадрирование, декодирование; на каждом шаге при этом частота после преобразования будет отличаться в n/k раз от входной, к примеру, после декодирования с кодовой скоростью 3/4 получим частоту данных точно равную 3/4 от входной), в итоге данные и clock передаются на внешний синхронный интерфейс. В модеме CDM600, для примера, выходной clock, сопроводающий данные, синхронен с clock-ом передатчика. Я проверял  Я слабо себе представляю как можно было бы обойтись здесь без полностью синхронной сетки частот. Собственно я ее и так формирую сейчас в цифре, но у меня все с джиттером получается в итоге.
|
|
|
|
|
Dec 2 2014, 13:08
|
ʕʘ̅͜ʘ̅ʔ
    
Группа: Свой
Сообщений: 1 008
Регистрация: 3-05-05
Пользователь №: 4 691

|
Сигналы синхронного межблочного интерфейса: clock data[] data_enable Fclock может в этом случае быть больше скорости передачи данных data[]. Цитата(dsp_designer @ Dec 2 2014, 14:02)  Я слабо себе представляю как можно было бы обойтись здесь без полностью синхронной сетки частот.
|
|
|
|
|
Dec 2 2014, 13:35
|
Участник

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

|
Как вариант, можно, в самом деле, так сделать, хотя придется на каждом этапе преобразования частоты выставлять clock чуть выше, чем на выходе предыдущего блока. Не уверен, правда, что это будет оптимальный вариант. И, повторюсь, знаю, что есть решения для подобных приемников без всяких буферов и пауз.
|
|
|
|
|
Dec 2 2014, 13:46
|
Гуру
     
Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937

|
Цитата(dsp_designer @ Dec 2 2014, 16:35)  Как вариант, можно, в самом деле, так сделать, хотя придется на каждом этапе преобразования частоты выставлять clock чуть выше, чем на выходе предыдущего блока. Не уверен, правда, что это будет оптимальный вариант. И, повторюсь, знаю, что есть решения для подобных приемников без всяких буферов и пауз. Как-то всё валится в одну кучу. Как уже выше было сказано, FPGA тактируется заведомо большим клоком, синхронизация обработки данных осуществляется через enable сигналы, ниакой безджиттерности и лишних клоковых доменов для обработки не требуется. Необходимо чётко сформулировать почему требуется именно синхронная сеть, просто использовать это как средство от других проблем плохая идея.
|
|
|
|
|
Dec 2 2014, 14:01
|
ʕʘ̅͜ʘ̅ʔ
    
Группа: Свой
Сообщений: 1 008
Регистрация: 3-05-05
Пользователь №: 4 691

|
Поставьте сразу один clock с высокой fclk для всех блоков. Сигналы data[] и data_enable формирует блок-источник clock - тактовая частота всей системы от внешнего генератора. Она в общем случае никак не связана со скоростью передачи данных data[], просто выше ее. Цитата(dsp_designer @ Dec 2 2014, 14:35)  Как вариант, можно, в самом деле, так сделать, хотя придется на каждом этапе преобразования частоты выставлять clock чуть выше, чем на выходе предыдущего блока.
|
|
|
|
|
Dec 2 2014, 14:24
|
Участник

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

|
Цитата(petrov @ Dec 2 2014, 16:46)  Как-то всё валится в одну кучу. Как уже выше было сказано, FPGA тактируется заведомо большим клоком, синхронизация обработки данных осуществляется через enable сигналы, ниакой безджиттерности и лишних клоковых доменов для обработки не требуется. Необходимо чётко сформулировать почему требуется именно синхронная сеть, просто использовать это как средство от других проблем плохая идея. Мы принимаем сигнал со спутника, он имеет тот такт, который имеет, передача идет непрерывно. Чтобы не терять данные, нам нужно обрабатывать либо с той же скоростью, либо выше - это и так понятно. Если точно с той же скоростью, то это синхронная сетка из нескольких частот. В асинхронном случае - нужно как-то связать блоки между собой, причем каждый последующий должен работать быстрее, чем предыдущий, иначе опять-таки данные будут теряться. Что касается разных клоковых доменов, в настоящий момент как раз я использую одноклоковую синхронизацию + enable-ы, что разумеется, очень удобно. Когда я писал выше про разные клоки для разных блоков - это подразумевало в том числе и возможность использования одного clock-а c разными enable-ми. Вообще мы ориентируемся на стандарты, по которым делают спутниковые модемы - начиная с IESS-308 и далее;честно говоря, вариант асинхронной работы я даже не рассматривал раньше (не знаю точно, есть ли против него противопоказания в стандартах, возможно, это неудобно будет для оконечного оборудования)+по существующим модемам сужу (а там на выходе clock и данные, причем нет никаких пауз). Разумеется, безджиттерности для обработки не требуется, сейчас это все работает с джиттером, но выходной clock имеет джиттер и есть некоторые сложности с формированием enable-ов для существующей сетки частот, вот почему я и думаю, можно ли улучшить существующую схему. Простите, не хотел грузить никого, но вот такая у меня задачка. Я подумал, что возможно, кто-то из тех, кто занимается software defined radio, сталкивался с такими вопросами и сможеть подкинуть идею)
Сообщение отредактировал dsp_designer - Dec 2 2014, 14:26
|
|
|
|
|
Dec 2 2014, 14:51
|
Участник

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

|
В оконечной точке тоже просто так clock синхронный не получить из-воздуха. Данные же на выход поступают с некоторой средней частотой. Если они идут в выходной буфер с паузами (если реализовать асинхронно), то как-то надо будет выудить информацию о средней частоте и подстроить локальный генератор. То что я сейчас делаю - подстраиваю vco под свой внутренний цифровой clock с джиттером, но результирующий clock тоже получаю с джиттером, хотя и с меньшим. Уменьшать шумовую полосу ФАПЧ до бесконечности тоже невозможно - стабильность тактовой частоты конечна+ еще нужен запас на эффект Доплера в спутниковом канале.
|
|
|
|
|
Dec 2 2014, 18:03
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(petrov @ Dec 2 2014, 22:14)  А зачем это привязывать к символьной частоте модема? позвольте вмешаться: есть модемы задача которых передача данных. есть модемы которые помимо передачи данных решают задачу передачи синхронизации. Например это модемы которые работают в режимах Sync-E (с различными видами синхронизации), модемы SDH, nЕ1, они же в том числе работают и в многопролетных вариантах, в спецприменениях. На качество восстановления синхронизации накладываются требования на остаточный джиттер, его маски, вандер и т.д. ТС: В вашей системе так и должно быть. Метод лечения зависит от требуемого качества восстановления тактовой частоты и последующего оборудования. Если вам нужен очень качественный клок, то единственный вариант это использование узкополосного деджитера на выходе (с холдовером, если он вам нужен). Насчет узкополосности ФАПЧ вы зря переживаете. Рассчитайте смещение символьной частоты при движении спутника со скоростью ну хотя бы 20км/с на малых углах возвышения, там получаются копейки. Цитата(dsp_designer @ Dec 2 2014, 22:24)  Разумеется, безджиттерности для обработки не требуется, сейчас это все работает с джиттером, но выходной clock имеет джиттер и есть некоторые сложности с формированием enable-ов для существующей сетки частот, вот почему я и думаю, можно ли улучшить существующую схему. Не совсем понятно где именно вам мешает сигнал enable с NCO, который является сигналом валидности данных. Если все решается внутри одной ПЛИС то проблем нет в принципе, если вам нужно передать между устройствами, то это определяется возможностями интерфейса устройств и их возможностями по обработке входных данных и клока.
--------------------
|
|
|
|
|
Dec 2 2014, 18:30
|
Участник

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

|
Да, все внутри ПЛИС. enable с NCO я сейчас использую для формирования сетки других enable-ов (у меня все синхронно сделано сейчас, как я уже выше упоминал). Коэффициенты преобразования частот разные, например, 3/4, 7/8, 2/3, но есть и что-то вроде 1235/1456 (условно), для них уже есть некоторые сложности. Отсутствие джиттера уменьшает проблему. Некоторое уменьшение джиттера я уже делаю в ПЛИС сразу после тактового синхронизатора (с помощью передискретизации и полосового фильтра). Исхожу из стабильности такта на прием в 2*10^(-5). в принципе, при такой разнице по такту ФАПЧ подавляет периодические скачки неплохо, но если отстройка по такту совсем маленькая, то периодические скачки clock-а ФАПЧ отслеживает->clock на выходе также колебания совершает).
|
|
|
|
|
Dec 2 2014, 18:44
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(dsp_designer @ Dec 3 2014, 01:30)  Коэффициенты преобразования частот разные, например, 3/4, 7/8, 2/3, но есть и что-то вроде 1235/1456 (условно), для них уже есть некоторые сложности. Судя по всему вы делаете это для корок декодеров и т.д. А авторы которые делали эти декодеры, не озаботились реализацией сигнала валидности данных? Может быть проще эти корки переписать и сделать по-человечески? Ведь по факту вы занимаетесь прореживанием данных, что легко делается с помощью банального счетчика по сигналу enable. Чистить тактовую нужно уже на выходе сигнала из ПЛИС на другое устройство. Цитата Исхожу из стабильности такта на прием в 2*10^(-5). Стабильность генератора, формирующего спектр на спутнике у вас 20ппм? Поставили из коробки что было? Или все таки у вас транскодер и 20 ппм это стабильность его генератора? Тогда причем здесь влияние этого генератора на тактовую, если транскодер не демодулирует сигнал? Цитата в принципе, при такой разнице по такту ФАПЧ подавляет периодические скачки неплохо, но если отстройка по такту совсем маленькая, то периодические скачки clock-а ФАПЧ отслеживает->clock на выходе также колебания совершает). Все эти системы, по факту переводят джиттер в вандер. Поэтому ничего удивительного.
--------------------
|
|
|
|
|
Dec 2 2014, 18:49
|
Участник

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

|
Можно и по выходу почистить)) Подумаю, что можно оптимизировать. Ну если вандер, то пусть вандером называется, я бы и его почистил еще) Насчет стабильности такта, ну это обычное значение (в максимуме), в принципе, на него и ориентируются. По крайней мере, знающий люди говорят на такую стабильность принимаемого такта рассчитывать из-за Доплера.
Сообщение отредактировал dsp_designer - Dec 2 2014, 18:53
|
|
|
|
|
Dec 2 2014, 18:56
|
Участник

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

|
Да, насчет фазочастотного детектора мысль хорошая. Надо будет попробовать
|
|
|
|
|
Dec 2 2014, 18:58
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(dsp_designer @ Dec 3 2014, 01:49)  Можно и по выходу почистить)) Подумаю, что можно оптимизировать. Ну если вандер, то пусть вандером называется, я бы и его почистил еще) вот это уже фантастика. http://en.wikipedia.org/wiki/Jitter прочитаете внимательно поймете почему Цитата Насчет стабильности такта, ну это обычное значение (в максимуме), в принципе, на него и ориентируются. По крайней мере, знающий люди говорят на такую стабильность принимаемого такта рассчитывать из-за Доплера. тогда это не стабильность, это расстройка. в общем понятно. частотно фазовый детектор ваш выбор.
--------------------
|
|
|
|
|
Dec 2 2014, 19:33
|
Гуру
     
Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937

|
Цитата(des00 @ Dec 2 2014, 21:03)  позвольте вмешаться: есть модемы задача которых передача данных. есть модемы которые помимо передачи данных решают задачу передачи синхронизации. Например это модемы которые работают в режимах Sync-E (с различными видами синхронизации), модемы SDH, nЕ1, они же в том числе работают и в многопролетных вариантах, в спецприменениях. На качество восстановления синхронизации накладываются требования на остаточный джиттер, его маски, вандер и т.д. Только тот ли это случай, в конце концов STM передают через ethernet, вот уж где джиттер, а тут всего лишь непрерывная передача и несинхронные опорные генераторы.
|
|
|
|
|
Dec 3 2014, 02:45
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(petrov @ Dec 3 2014, 02:33)  Только тот ли это случай, в конце концов STM передают через ethernet, вот уж где джиттер, а тут всего лишь непрерывная передача и несинхронные опорные генераторы. Вполне может быть и тот. Например они работают через траснкодер и синхронизируют оборудование в разных частях земли по тональному сигналу Е1. Не всегда использование той же GPS синхронизации или любой другой, работающей по другому каналу, возможно. Есть куча оборудования которые требуют подобной синхронизации. Те же ОпСоСы очень полюбили Sync-E, когда намучались с базовыми станциями с GPS синхронизацией. Если вопрос ТС касался только обработки сигнала в ПЛИС, то вы правы, сигнал валидности и правильные корки решат проблему. Но если ТС задал вопрос об обработке, подразумевая передачу данных и синхронизации стороннему оборудованию, то проблема имеет место быть. ЗЫ. Передача TDM (Е1/SDH) трафика по асинхронным каналам действительно используется, но в этом случае гарантируется только передача данных, с синхронизацией пытаются решить проблему спец. сообщениями для подстройки часов, но.... тактовая там не та.
--------------------
|
|
|
|
|
Dec 3 2014, 05:42
|
Участник

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

|
Спасибо всем за советы, подумаю, что и как можно улучшить.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|