Перейти к содержанию
    

тактовая синхронизация при QPSK демодуляции

реализовываю программно QPSK демодулятор.

для тактовой синхранизации у меня имеется перестраиваемый цифровой синтезатор частот (dds), который тактирует АЦП и определяет частоту дискретизации. Частоту дискретизации выбираю такой, чтобы на один символ(дибит) приходилось 4 отсчета. не могу найти алгоритм, как вычисляется ошибка тактовой дискретизации, которая должна определять величину перестройки частоты на dds для компенсации ошибки. может кто-нибудь может объяснить как это делается или укажет на источник(если возможно на русском языке), где можно почитать о конкретном алгоритме.?! спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вот книжка товарища Незами , там вроде есть что-то похожее:

 

RF_Architectures_and_Digital_Signal_Processing_Aspects_of_Digital_Wireless_Trans

ceivers_-_Nezami

 

http://www.docin.com/p-527995875.html

 

имхо , раздел три и далее .

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вот книжка товарища Незами , там вроде есть что-то похожее:

 

использовать схему тактовой синхронизации Гарднера? (Figure 4 -13)?

на русском языке случайно не имеется объяснения?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

использовать схему тактовой синхронизации Гарднера? (Figure 4 -13)?

на русском языке случайно не имеется объяснения?

 

..тут цифровая ФАПЧ на русском, возможно вам подойдёт :

 

http://www.dsplib.ru/content/dpll/dpll.html

 

и вот ещё:

 

http://www.google.ru/search?q=%D1%81%D1%85...680&bih=911

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Насколько я понимаю, схема Гарднера просто позволяет выбрать лучший из 4 отсчетов. Она не поможет мне корректировать частоту дискретизации... или я все не правильно понял?

 

..тут цифровая ФАПЧ на русском, возможно вам подойдёт :

 

http://www.dsplib.ru/content/dpll/dpll.html

 

насколько я понимаю, предложенная ФАПЧ может помочь мне синхронизироваться по несущей, но никак не по тактовой частоте...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Насколько я понимаю, схема Гарднера просто позволяет выбрать лучший из 4 отсчетов. Она не поможет мне корректировать частоту дискретизации... или я все не правильно понял?

насколько я понимаю, предложенная ФАПЧ может помочь мне синхронизироваться по несущей, но никак не по тактовой частоте...

 

..не волоку, может более компетентные товарищи подскажут.

Фапч привёл в пример просто , потому что на русском - может на что наведт . Там весь сайт интерессный.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Насколько я понимаю, схема Гарднера просто позволяет выбрать лучший из 4 отсчетов. Она не поможет мне корректировать частоту дискретизации... или я все не правильно понял?

насколько я понимаю, предложенная ФАПЧ может помочь мне синхронизироваться по несущей, но никак не по тактовой частоте...

 

 

Схема Гарднера позволяет не выбрать отсчет из 4-х отсчетов, а как раз выработать на основе 4-х отсчетов сигнал ошибки для подстройки АЦП.

Замыкая петлю обратной связи Вы как раз получите ФАПЧ тактовой частоты. С расчетом ФАПЧ нужно разбираться, чтобы рассчитать петлевой фильтр (в том числе коэффициент усиления в петле, чаще фильр используется пропорционально-интегрирующий, т.е. 2 коэффициента), если сразу не получилось угадывать )). Схема Гарднера хороша тем, что не чувствительна к расстройке частоты несущей, т.е. захват тактовой происходит еще до настройки несущей

 

 

Оригинальная статья Гарднера с картинками.

A_BPSK_QPSK_Timing_Error_Detector_for_Sampled_Receivers.pdf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Схема Гарднера хороша тем, что не чувствительна к расстройке частоты несущей, т.е. захват тактовой происходит еще до настройки несущей

 

 

Оригинальная статья Гарднера с картинками.

 

спасибо за статью. думаю это то, что мне надо. может посоветуете, где можно почитать еще про петлевой фильтр и собственно саму корректировку тактовой ошибки. или может кто-нибудь может поделиться готовым матлабовским кодом по Гарднеру...

 

схема Гарднера рассчитана на входной сигнал имеющий 2 отсчета на символ. может быть есть более точные алгоритмы которые предполагают больше отсчетов на символ, например 4. или данная схема достаточно точно даже по двум отсчетам синхранизируется?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

спасибо за статью. думаю это то, что мне надо. может посоветуете, где можно почитать еще про петлевой фильтр и собственно саму корректировку тактовой ошибки. или может кто-нибудь может поделиться готовым матлабовским кодом по Гарднеру...

 

схема Гарднера рассчитана на входной сигнал имеющий 2 отсчета на символ. может быть есть более точные алгоритмы которые предполагают больше отсчетов на символ, например 4. или данная схема достаточно точно даже по двум отсчетам синхранизируется?

 

Два отсчёта легко получить из четырёх децимацией, схемы для симулинка тыщу раз выкладывались, ацп смысла управлять нет, всё полностью программно вычисляется.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Два отсчёта легко получить из четырёх децимацией, схемы для симулинка тыщу раз выкладывались, ацп смысла управлять нет, всё полностью программно вычисляется.

 

почему нет смысла управлять АЦП? вы предлагаете производить интерполяцию между отсчетами для выбора наиболее подходящего?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

почему нет смысла управлять АЦП? вы предлагаете производить интерполяцию между отсчетами для выбора наиболее подходящего?

 

Да.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

может подскажете, нормально ли будет использовать следующий алгоритм. я повышу частоту дискретизации до 8 отсч/сим. по алгоритму Гарднера (беру каждый 4-ый отсчет, 2 отсчета на символ) буду вычислять фазовую ошибку тактирования. и затем по накопленной ошибке в зависимости от ее знака и величины, буду выбирать для вычисления ошибки уже другие отсчеты(например не 2-ой и 6-ой, а уже 1-ый и 5-ый либо 3-ий и 7-ой), при этом сбрасывать аккумулятор ошибки в ноль. таким образом мне не будет необходимости подстраивать АЦП, а также производить интерполяцию между отсчетами для нахождения наиболее подходящего.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

может подскажете, нормально ли будет использовать следующий алгоритм. я повышу частоту дискретизации до 8 отсч/сим. по алгоритму Гарднера (беру каждый 4-ый отсчет, 2 отсчета на символ) буду вычислять фазовую ошибку тактирования. и затем по накопленной ошибке в зависимости от ее знака и величины, буду выбирать для вычисления ошибки уже другие отсчеты(например не 2-ой и 6-ой, а уже 1-ый и 5-ый либо 3-ий и 7-ой), при этом сбрасывать аккумулятор ошибки в ноль. таким образом мне не будет необходимости подстраивать АЦП, а также производить интерполяцию между отсчетами для нахождения наиболее подходящего.

 

В принципе такое возможно, только не очень "красиво". Так или иначе "выбирая" отсчет правильно, Вы можете добиться фазовой ошибки в 1/16 символьного интервала, что будет обычно давать умеренные потери меньше 0.1 дб. Только схема Гарднера для этого не предназначена - она дает фазовую расстройку (с точностью до множителя), а не положение "правильной фазы". Для оценки фазы существуют другие схемы, например схема двух Мюлеров

 

В типичном случае высокоскоростного модема нет возможности повышать частоту обработки, но поступают наоборот - из 2-4 отсчетов делают 8-16-32 с помощью высококачественных интерполирующих фильтров НЧ (полифазных фильтров) и выбирают отсчет с выхода фильтра с "правильной" фазой.

 

Другая возможность состоит в непрерывном слежении по петле ФАПЧ с помощью 4-точечного сплайн-интерполятора, но он сам вносит приличные искажения, которые однако могут быть допустимы. Для этого собственно непосредственно предназначена схема Гарднера

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

может подскажете, нормально ли будет использовать следующий алгоритм. я повышу частоту дискретизации до 8 отсч/сим. по алгоритму Гарднера (беру каждый 4-ый отсчет, 2 отсчета на символ) буду вычислять фазовую ошибку тактирования. и затем по накопленной ошибке в зависимости от ее знака и величины, буду выбирать для вычисления ошибки уже другие отсчеты(например не 2-ой и 6-ой, а уже 1-ый и 5-ый либо 3-ий и 7-ой), при этом сбрасывать аккумулятор ошибки в ноль. таким образом мне не будет необходимости подстраивать АЦП, а также производить интерполяцию между отсчетами для нахождения наиболее подходящего.

 

Советую в симулинке все нюансы отработать, алгоритм должен быть не умозрительный, а на основе четких базовых элементов например таких как NCO т. п., а так различные сочетания полифазных и дробных интерполяторов возможны.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...