Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: тактовая синхронизация при QPSK демодуляции
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
Страницы: 1, 2
Виктор39
реализовываю программно QPSK демодулятор.
для тактовой синхранизации у меня имеется перестраиваемый цифровой синтезатор частот (dds), который тактирует АЦП и определяет частоту дискретизации. Частоту дискретизации выбираю такой, чтобы на один символ(дибит) приходилось 4 отсчета. не могу найти алгоритм, как вычисляется ошибка тактовой дискретизации, которая должна определять величину перестройки частоты на dds для компенсации ошибки. может кто-нибудь может объяснить как это делается или укажет на источник(если возможно на русском языке), где можно почитать о конкретном алгоритме.?! спасибо.
Lmx2315
вот книжка товарища Незами , там вроде есть что-то похожее:

RF_Architectures_and_Digital_Signal_Processing_Aspects_of_Digital_Wireless_Trans
ceivers_-_Nezami

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

имхо , раздел три и далее .
Виктор39
Цитата(Lmx2315 @ Feb 15 2013, 09:50) *
вот книжка товарища Незами , там вроде есть что-то похожее:


использовать схему тактовой синхронизации Гарднера? (Figure 4 -13)?
на русском языке случайно не имеется объяснения?
Lmx2315
QUOTE (Виктор39 @ Feb 15 2013, 08:57) *
использовать схему тактовой синхронизации Гарднера? (Figure 4 -13)?
на русском языке случайно не имеется объяснения?


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

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

и вот ещё:

http://www.google.ru/search?q=%D1%81%D1%85...680&bih=911
Виктор39
Насколько я понимаю, схема Гарднера просто позволяет выбрать лучший из 4 отсчетов. Она не поможет мне корректировать частоту дискретизации... или я все не правильно понял?

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

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


насколько я понимаю, предложенная ФАПЧ может помочь мне синхронизироваться по несущей, но никак не по тактовой частоте...
Lmx2315
QUOTE (Виктор39 @ Feb 15 2013, 09:40) *
Насколько я понимаю, схема Гарднера просто позволяет выбрать лучший из 4 отсчетов. Она не поможет мне корректировать частоту дискретизации... или я все не правильно понял?
насколько я понимаю, предложенная ФАПЧ может помочь мне синхронизироваться по несущей, но никак не по тактовой частоте...


..не волоку, может более компетентные товарищи подскажут.
Фапч привёл в пример просто , потому что на русском - может на что наведт . Там весь сайт интерессный.
fontp
QUOTE (Виктор39 @ Feb 15 2013, 09:40) *
Насколько я понимаю, схема Гарднера просто позволяет выбрать лучший из 4 отсчетов. Она не поможет мне корректировать частоту дискретизации... или я все не правильно понял?
насколько я понимаю, предложенная ФАПЧ может помочь мне синхронизироваться по несущей, но никак не по тактовой частоте...



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


Оригинальная статья Гарднера с картинками.
Lmx2315
Возможно вам будет полезен следующий документ :
Виктор39
Цитата
Схема Гарднера хороша тем, что не чувствительна к расстройке частоты несущей, т.е. захват тактовой происходит еще до настройки несущей


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


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

схема Гарднера рассчитана на входной сигнал имеющий 2 отсчета на символ. может быть есть более точные алгоритмы которые предполагают больше отсчетов на символ, например 4. или данная схема достаточно точно даже по двум отсчетам синхранизируется?
petrov
Цитата(Виктор39 @ Feb 15 2013, 14:36) *
спасибо за статью. думаю это то, что мне надо. может посоветуете, где можно почитать еще про петлевой фильтр и собственно саму корректировку тактовой ошибки. или может кто-нибудь может поделиться готовым матлабовским кодом по Гарднеру...

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


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


почему нет смысла управлять АЦП? вы предлагаете производить интерполяцию между отсчетами для выбора наиболее подходящего?
petrov
Цитата(Виктор39 @ Feb 18 2013, 10:07) *
почему нет смысла управлять АЦП? вы предлагаете производить интерполяцию между отсчетами для выбора наиболее подходящего?


Да.
Виктор39
может подскажете, нормально ли будет использовать следующий алгоритм. я повышу частоту дискретизации до 8 отсч/сим. по алгоритму Гарднера (беру каждый 4-ый отсчет, 2 отсчета на символ) буду вычислять фазовую ошибку тактирования. и затем по накопленной ошибке в зависимости от ее знака и величины, буду выбирать для вычисления ошибки уже другие отсчеты(например не 2-ой и 6-ой, а уже 1-ый и 5-ый либо 3-ий и 7-ой), при этом сбрасывать аккумулятор ошибки в ноль. таким образом мне не будет необходимости подстраивать АЦП, а также производить интерполяцию между отсчетами для нахождения наиболее подходящего.
fontp
QUOTE (Виктор39 @ Feb 19 2013, 11:01) *
может подскажете, нормально ли будет использовать следующий алгоритм. я повышу частоту дискретизации до 8 отсч/сим. по алгоритму Гарднера (беру каждый 4-ый отсчет, 2 отсчета на символ) буду вычислять фазовую ошибку тактирования. и затем по накопленной ошибке в зависимости от ее знака и величины, буду выбирать для вычисления ошибки уже другие отсчеты(например не 2-ой и 6-ой, а уже 1-ый и 5-ый либо 3-ий и 7-ой), при этом сбрасывать аккумулятор ошибки в ноль. таким образом мне не будет необходимости подстраивать АЦП, а также производить интерполяцию между отсчетами для нахождения наиболее подходящего.


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

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

Другая возможность состоит в непрерывном слежении по петле ФАПЧ с помощью 4-точечного сплайн-интерполятора, но он сам вносит приличные искажения, которые однако могут быть допустимы. Для этого собственно непосредственно предназначена схема Гарднера
petrov
Цитата(Виктор39 @ Feb 19 2013, 12:01) *
может подскажете, нормально ли будет использовать следующий алгоритм. я повышу частоту дискретизации до 8 отсч/сим. по алгоритму Гарднера (беру каждый 4-ый отсчет, 2 отсчета на символ) буду вычислять фазовую ошибку тактирования. и затем по накопленной ошибке в зависимости от ее знака и величины, буду выбирать для вычисления ошибки уже другие отсчеты(например не 2-ой и 6-ой, а уже 1-ый и 5-ый либо 3-ий и 7-ой), при этом сбрасывать аккумулятор ошибки в ноль. таким образом мне не будет необходимости подстраивать АЦП, а также производить интерполяцию между отсчетами для нахождения наиболее подходящего.


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

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

[quote]В типичном случае высокоскоростного модема нет возможности повышать частоту обработки, но поступают наоборот - из 2-4 отсчетов делают 8-16-32 с помощью высококачественных интерполирующих фильтров/quote]

я правильно понимаю. фазовую расстройку всегда вычисляют по двум приходящим отсчетам с АЦП (дабы не повышать частоту обработки), затем интерполируются например до 16 на симовл, и в зависимости уже от вычисленной фазовой расстройки выбирается нужный отсчет.
petrov
Цитата(Виктор39 @ Feb 19 2013, 13:21) *
неужели это по своей сути не есть одно и то же. не выдает ли мне схема Гарднера в зависимости от фазовой расстройки строб-импульс соответствующий положению правильной фазы?


Ну в общем да, так ФАПЧ с детектором временной ошибки Гарднера и работает, по обратной связи ошибка к нулю сводится, NCO выдаёт тактовые стробы и дробную ошибку для интерполятора.

Цитата(Виктор39 @ Feb 19 2013, 13:21) *
я правильно понимаю. фазовую расстройку всегда вычисляют по двум приходящим отсчетам с АЦП (дабы не повышать частоту обработки), затем интерполируются например до 16 на симовл, и в зависимости уже от вычисленной фазовой расстройки выбирается нужный отсчет.


Нет, по двум отсчётам на символ работает детектор ошибки Гарднера в ФАПЧ, эти два отсчёта вычисляются интерполятором, который управляется ФАПЧ, посмотрите уже модельки симулинковские.

Виктор39
Цитата
посмотрите уже модельки симулинковские.


что-то не могу найти рабочую модельку... если не сложно, может бросите ссылочку. спасибо.
petrov
Цитата(Виктор39 @ Feb 19 2013, 14:56) *
что-то не могу найти рабочую модельку... если не сложно, может бросите ссылочку. спасибо.


http://electronix.ru/forum/index.php?showtopic=23652
Виктор39
Цитата


спасибо, за предоставленные моделки. кажется разобрался с тактовой синхронизацией по Гарднеру и фазовой синхронизацией с помощью петли управляемой решением... все очень интересно и просто. а главное все работает. хотел узнать, исходя из каких предпосылок высчитываются коэффициенты усиления петлевого фильтра? насколько оптимальны они в предоставленных модельках? либо они подбираются вручную?
в разбираемой мною модели QPSK демодулятора, частота дискретизации входного сигнала была 8 отсч/сим. я изменил до 4 отсч/сим. все как бы работает. просто думал, в какую сторону должны в таком случае измениться коэффициенты усиления петли в тактовой и фазовой синхронизации?
Виктор39
не могу разобраться в элементарных вопросах.
1) Я формирую QPSK сигнал на промежуточной частоте 70МГц, и на этой же частоте он приходит на приемник и поступает на АЦП. Я выполняю снос сигнала на нулевую частоту путем умножения отсчетов сигнала на комплексную гармонику промежуточной частоты. Далее осуществляю согласованную фильтрацию полученного сигнала. Так вот, если я выполняю снос сигнала на нулевую частоту с частотой дискретизации АЦП 8 отсчетов на символ, I и Q составляющие восстанавливаются практически идеально. Если у меня на входе сигнал с частотой дискретизации 4 или 2 отсчета на символ, I и Q составляющие не восстанавливаются. Для нормального восстановление, приходиться значительно повышать входную промежуточную частоту(это не выход). что я делаю не так?! Либо я должен снимать сигнал с АЦП при большей частоте дискретизации, а потом производить передискретизацию до 4 или 2 отсч/сим.?

2) Использую схему petrov-а qpsk_fb_symbol_sync_fb_phase_sync_agc_2008_05_15. Так вот, достаточно ли для применение на практике имеющихся в схеме тактовой синхронизации и фазовой синхронизации несущей? не нужно ли еще производить частотную синхронизацию несущей(например возведением сигнала в 4-ую степень и выделением нужной гармоники), на случай, если в начальный момент частота опорного генератора довольно сильно отличаться от частоты несущего сигнала?
petrov
Цитата(Виктор39 @ Feb 25 2013, 13:44) *
хотел узнать, исходя из каких предпосылок высчитываются коэффициенты усиления петлевого фильтра? насколько оптимальны они в предоставленных модельках? либо они подбираются вручную?


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


Цитата(Виктор39 @ Feb 25 2013, 13:44) *
в разбираемой мною модели QPSK демодулятора, частота дискретизации входного сигнала была 8 отсч/сим. я изменил до 4 отсч/сим. все как бы работает. просто думал, в какую сторону должны в таком случае измениться коэффициенты усиления петли в тактовой и фазовой синхронизации?


Вы должны научиться учитывать все коэффициенты передачи в ФАПЧ, а не только петлевого фильтра, но и фазового детектора, NCO и т. п.


Цитата(Виктор39 @ Feb 28 2013, 11:33) *
Использую схему petrov-а qpsk_fb_symbol_sync_fb_phase_sync_agc_2008_05_15. Так вот, достаточно ли для применение на практике имеющихся в схеме тактовой синхронизации и фазовой синхронизации несущей? не нужно ли еще производить частотную синхронизацию несущей(например возведением сигнала в 4-ую степень и выделением нужной гармоники), на случай, если в начальный момент частота опорного генератора довольно сильно отличаться от частоты несущего сигнала?


Так всё от вашей практики зависит, считайте какой у вас наихудший сдвиг, вполне возможно что одной только ФАПЧ не обойтись.
Виктор39
Цитата
Так всё от вашей практики зависит, считайте какой у вас наихудший сдвиг, вполне возможно что одной только ФАПЧ не обойтись.


я пока не знаю, какой у меня наихудший сдвиг, но предварительно хочу реализовать дополнительно частотную подстройку, в случае если опорная частота довольно таки сильно отличается от частоты несущей. думаю использовать следующий алгоритм: возводить сигнал в 4-ю степень путем комплексного перемножения. далее вычислять амплитудный спектр свернутого таким образом сигнала. в спектре будут явно видны 3 гармоники:центральная (наиболее мощная) будет указывать на частотную расстройку сигнала, а расстояние о центральной до любой из боковых укажет на бодовую скорость. так вот, у меня возникает вопрос, каким образом я должен выделить из имеющего спектра нужную мне гармонику, и каким образом произвести компенсацию частотной расстройки?
des00
Цитата(Виктор39 @ Mar 1 2013, 00:47) *
я пока не знаю, какой у меня наихудший сдвиг, но предварительно хочу реализовать дополнительно частотную подстройку, в случае если опорная частота довольно таки сильно отличается от частоты несущей. думаю использовать следующий алгоритм: возводить сигнал в 4-ю степень путем комплексного перемножения. далее вычислять амплитудный спектр свернутого таким образом сигнала. в спектре будут явно видны 3 гармоники:центральная (наиболее мощная) будет указывать на частотную расстройку сигнала, а расстояние о центральной до любой из боковых укажет на бодовую скорость. так вот, у меня возникает вопрос, каким образом я должен выделить из имеющего спектра нужную мне гармонику, и каким образом произвести компенсацию частотной расстройки?

а потом сделаете SNR = 6 и все %) или сосед мощный встанет %)

более того, не знаю точно ваши ТТХ, но посчитайте требуемое кол-во коэффициентов ряда Фурье, для получения разрешающей способности, позволяющей определить расстройку по несущей ну хотя бы в 2 КГц.
Serg76
Цитата(des00 @ Mar 1 2013, 08:59) *
а потом сделаете SNR = 6 и все %) или сосед мощный встанет %)

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

При 5...6-ти дБ еще не так все плохо, потери от возведения составят около 3-х дБ, !!! НО потребуются хорошие вычислительные затраты на обработку алгоритма и достаточная длина реализации. А вот меньше 5-ти уже беда, конечно.
des00
Цитата(Serg76 @ Mar 1 2013, 00:30) *
При 5...6-ти дБ еще не так все плохо, потери от возведения составят около 3-х дБ, !!! НО потребуются хорошие вычислительные затраты на обработку алгоритма и достаточная длина реализации. А вот меньше 5-ти уже беда, конечно.

назвал на глаз, спасибо за уточнение. Мне интересно как вот эти ребята http://www.iprium.ru/products/microwave/ добились

Цитата
Система синхронизации компании Иприум проверена в широком диапазоне температур, позволяет устойчиво удерживать режим синхронности канала при соотношении сигнал/шум -6дБ на приемной стороне.

причем они немного не договаривают. у них есть захват при -6дб, а не удержание.
Виктор39
Цитата
а потом сделаете SNR = 6 и все %) или сосед мощный встанет %)


простите, я не совсем понял смысл. могли бы немного поподробней объяснить?!

Цитата
более того, не знаю точно ваши ТТХ, но посчитайте требуемое кол-во коэффициентов ряда Фурье, для получения разрешающей способности, позволяющей определить расстройку по несущей ну хотя бы в 2 КГц.

у меня на входе сигнал с частотой 70 МГц. шаг спектра (после преобразования Фурье) 2 кГц будет достаточным? может больше шаг брать, для понижения затрат вычисления? у меня далее ФАПЧ будет применяться...

вычислив преобразование Фурье, мне просто нужно будет вычислить максимальную составляющую спектра? а что далее? у меня на вход поступают I и Q составляющие. мне просто нужно будет в комплексной форме перемножать входной сигнал и имеющую составляющую спектра?
Serg76
Цитата(des00 @ Mar 1 2013, 09:37) *
назвал на глаз, спасибо за уточнение. Мне интересно как вот эти ребята http://www.iprium.ru/products/microwave/ добились


причем они немного не договаривают. у них есть захват при -6дб, а не удержание.

Так сразу не ответишь, для начала надо со стандартом физического уровня ознакомиться, чтобы понять за счет чего происходит захват/удержание ФАПЧ. Наверняка, какая-нибудь корреляционная обработка.
des00
Цитата(Виктор39 @ Mar 1 2013, 00:54) *
простите, я не совсем понял смысл. могли бы немного поподробней объяснить?!

На пальцах : Диапазон работы цепей захвата и удержания синхронизации задается минимальным SNR при котором возможен захват. Возведение сигнала в степень, увеличивает шум. Это приводит у повышению минимального SNR при котором возможен захват.
Цитата
у меня на входе сигнал с частотой 70 МГц. шаг спектра (после преобразования Фурье) 2 кГц будет достаточным? может больше шаг брать, для понижения затрат вычисления? у меня далее ФАПЧ будет применяться...

Ну вот положим что это ПЧ,берем АЦП ну положим на 60МГЦ. При нарезке вы сносите спектр ПЧ 10МГц. Решаете делать фурье на частоте 60МГц. Минимальная длинна фурье составит 60МГц/(2*2КГц) = 15 000. Причем это длинна только для того что бы два частотных бина, удачно попавших на спектре были разделимы. Более опытные в фурье товарищи меня поправят.
Serg76
Цитата(Виктор39 @ Mar 1 2013, 09:54) *
вычислив преобразование Фурье, мне просто нужно будет вычислить максимальную составляющую спектра? а что далее? у меня на вход поступают I и Q составляющие. мне просто нужно будет в комплексной форме перемножать входной сигнал и имеющую составляющую спектра?

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

Да, и чем выше Вы хотите получить точность Фурье для определения начальной отстройки, тем больше вычислительных затрат.
des00
Цитата(Serg76 @ Mar 1 2013, 01:02) *
Так сразу не ответишь, для начала надо со стандартом физического уровня ознакомиться, чтобы понять за счет чего происходит захват/удержание ФАПЧ. Наверняка, какая-нибудь корреляционная обработка.

Что удалось выведать это "обычный" РРЛ модем, т.е. модуляции от QPSK до QAM256, все петли в цифре. Вроде как есть вставка какой то преамбулы(но судя по заявленным скоростям, доля этой преамбулы мала). Диапазон захвата несушки 200ppm, при несущей в 5 ГГц.

Serg76
Цитата(des00 @ Mar 1 2013, 10:14) *
Что удалось выведать это "обычный" РРЛ модем, т.е. модуляции от QPSK до QAM256, все петли в цифре. Вроде как есть вставка какой то преамбулы(но судя по заявленным скоростям, доля этой преамбулы мала). Диапазон захвата несушки 200ppm, при несущей в 5 ГГц.

Ну скорее всего по преамбуле и работают, плюс может еще и пилоты в кадр вставлены. Чудес не должно быть sm.gif да и вообще, релейки не работают при таком С/Ш, скорее всего просто рекламный ход.
des00
Цитата(Serg76 @ Mar 1 2013, 01:24) *
Ну скорее всего по преамбуле и работают, плюс может еще и пилоты в кадр вставлены. Чудес не должно быть sm.gif

как бы да, но
1. мне сказали что пилотов нет 100%. (может наврали конечно)
2. поиск частоты не используется.
3. Берем преамбулу ну положим 1024 символа. Если я не ошибаюсь, разрешение по несушке получится не лучше чем 1/1024 от тактовой, что для тактовой 60МГц, составит ~59КГц. И чем такую расстройку съедать ?
Да и корреляторов потребуется вагон и маленькая тележка%) Если там преамбула 2^16, то тогда как они такие битрейты передают ? sm.gif

Вот и теряюсь в догадках как это сделано %)
Serg76
Цитата(des00 @ Mar 1 2013, 10:28) *
как бы да, но
1. мне сказали что пилотов нет 100%. (может наврали конечно)
2. поиск частоты не используется.
3. Берем преамбулу ну положим 1024 символа. Если я не ошибаюсь, разрешение по несушке получится не лучше чем 1/1024 от тактовой, что для тактовой 60МГц, составит ~59КГц. И чем такую расстройку съедать ?
Да и корреляторов потребуется вагон и маленькая тележка%) Если там преамбула 2^16, то тогда как они такие битрейты передают ? sm.gif

Вот и теряюсь в догадках как это сделано %)

Так непонятно: это в режиме передачи они способны работать под шумами или это просто такой "уникальный" узел ФАПЧ, потому что вроде как релейки так не работают. Да, и что там за кадровая структура, длина в частности?
des00
Цитата(Serg76 @ Mar 1 2013, 02:45) *
Так непонятно: это в режиме передачи они способны работать под шумами или это просто такой "уникальный" узел ФАПЧ, потому что вроде как релейки так не работают. Да, и что там за кадровая структура, длина в частности?

За что купил за то продал : ребята разработали "крутую" систему восстановления тактовых и несущих частот для одного проекта и запихали ее в корку РРЛ модема. Такие параметры обеспечиваются при работе своего модулятора на свой демодулятор. Детали не рассказывают, так только общими намеками %(
fontp
QUOTE (des00 @ Mar 1 2013, 10:28) *
3. Берем преамбулу ну положим 1024 символа. Если я не ошибаюсь, разрешение по несушке получится не лучше чем 1/1024 от тактовой, что для тактовой 60МГц, составит ~59КГц. И чем такую расстройку съедать ?
Да и корреляторов потребуется вагон и маленькая тележка%) Если там преамбула 2^16, то тогда как они такие битрейты передают ? sm.gif


Такую расстройку можно съесть интерполяцией спектра. Используемая псевдослучайная преамбула гарантирует вам, что никакой "сосед" вам не мешает. Помеху можно поставить только преднамеренно.
Скользящим окном снимаете преамбулу и делаете Фурье. В окрестности одиночного максимума спектра ведёте интерполяцию. Вместо 1/1024 выходите на значительно меньшую ошибку Крамера-Рао ограниченную только отношением сигнал/шум. Вычислительные мощности, конечно нужны приличные, чтобы вести Фурье-преобразование скользящим окном.
des00
Цитата(fontp @ Mar 1 2013, 02:12) *
Такую расстройку можно съесть интерполяцией спектра. Используемая псевдослучайная преамбула гарантирует вам, что никакой "сосед" вам не мешает. Помеху можно поставить только преднамеренно.
Скользящим окном снимаете преамбулу и делаете Фурье. В окрестности одиночного максимума ведёте интерполяцию.

Хмм, вариант. Спасибо за идею %)

Правильно ли понимаю, под интерполяцией вы понимаете то, что нужный бин растекается на несколько, по которым строиться интерполирующая кривая и ищется ее максимум? А форма интерполирующей кривой как выбирается ? Ведь нужно в сабжевом интервале 59КГц, найти точку с точностью +- Полоса захвата по несущей/2 (обычно полоса захвата несушки порядка 2-4 Кгц).
fontp
QUOTE (des00 @ Mar 1 2013, 11:19) *
Хмм, вариант. Спасибо за идею %)

Правильно ли понимаю, под интерполяцией вы понимаете то, что нужный бин растекается на несколько, по которым строиться интерполирующая кривая и ищется ее максимум? А форма интерполирующей кривой как выбирается ? Ведь нужно в сабжевом интервале 59КГц, найти точку с точностью +- Полоса захвата по несущей/2 (обычно полоса захвата несушки порядка 2-4 Кгц).



Я много раз приводил ссылки на квадратичную интерполяцию (параболой после добавления нулей). Причем для случая гарантированно одиночного максимума спектра (линии) никаких спектральных окон не нужно - доказано, что прямоугольное окно оптимально

https://ccrma.stanford.edu/STANM/stanms/stanm114/index.html

http://electronix.ru/forum/index.php?showt...mp;#entry695667

Вообще-то интерполяция спектра для повышения точности может использоваться (и работает) и при учетверении фазы, в слепую, после синхронизации символьной частоты. Без скользящего окна, то есть блочно в точках символьной выборки. Но в этом случае метод очень уязвим по отношению к помехам, поскольку синусоидальные помехи возможны везде, в отличие от специфических псевдослучайных
petrov
Цитата(fontp @ Mar 1 2013, 12:12) *
Такую расстройку можно съесть интерполяцией спектра. Используемая псевдослучайная преамбула гарантирует вам, что никакой "сосед" вам не мешает. Помеху можно поставить только преднамеренно.
Скользящим окном снимаете преамбулу и делаете Фурье. В окрестности одиночного максимума спектра ведёте интерполяцию. Вместо 1/1024 выходите на значительно меньшую ошибку Крамера-Рао ограниченную только отношением сигнал/шум. Вычислительные мощности, конечно нужны приличные, чтобы вести Фурье-преобразование скользящим окном.



ИМХО слишком в лоб, все бины FFT не нужны, достаточно нескольких согласованных с последовательностью фильтров со сдвигом по частоте, плюс быстрый алгоритм их вычисления исходя из свойств последовательности.
des00
Цитата(fontp @ Mar 1 2013, 02:12) *
Скользящим окном снимаете преамбулу

Можно еще вопрос. Не до конца понимаю вот эту вашу фразу. Под снятием преамбулы вы имеет в виду пропуск сигнала через коррелятор/СФ? если да, то на выходе такого блока будет АКФ, спектр которой не содержит четкого спектрального максимума. Или вы имели в виду что-то вроде биспектральной обработки и АКФ считается по спектру?

Цитата(petrov @ Mar 1 2013, 02:56) *
ИМХО слишком в лоб, все бины FFT не нужны, достаточно нескольких согласованных с последовательностью фильтров со сдвигом по частоте, плюс быстрый алгоритм их вычисления исходя из свойств последовательности.

Простой расчет: нужен диапазон захвата +-100КГц. Ширина петли по несущей 2КГц. для накрытия такого диапазона нужно 200КГц/(2/2)КГц = 200 СФ. При этом фильтр согласованный по частоте делается комплексным, а для длинной преамбулы еще и длинным.
fontp
QUOTE (petrov @ Mar 1 2013, 11:56) *
ИМХО слишком в лоб, все бины FFT не нужны, достаточно нескольких согласованных с последовательностью фильтров со сдвигом по частоте, плюс быстрый алгоритм их вычисления исходя из свойств последовательности.


Это совсем хорошо вычислительно, особенно если использовать регулярные последовательности, какого-нибудь Адамара. Вы всё там заранее свернёте. Но зависит ещё и от величины расстойки и могут оказаться нужны все бины. 100% расстройку заработать не сложно. Когда на ВЧ в Q-диапазоне умники хотят приспособить кварц на 5 ppm и без термостабилизации)) Расстройка главным образом функция стоимости изделия

QUOTE (des00 @ Mar 1 2013, 12:04) *
Можно еще вопрос. Не до конца понимаю вот эту вашу фразу. Под снятием преамбулы вы имеет в виду пропуск сигнала через коррелятор/СФ? если да, то на выходе такого блока будет АКФ, спектр которой не содержит четкого спектрального максимума. Или вы имели в виду что-то вроде биспектральной обработки и АКФ считается по спектру?


Я имел в виду умножение сигнала на комплексно-сопряженную последовательность на каждом отсчете АЦП скользящим образом. В момент правильного позиционирования (по символьной и началу последовательности), вы обнаружите мощную одиночную линию в спектре. Для этого не нужна даже тактовая (символьная синхронизация), если сигнал оцифрован с достаточным шагом
des00
Цитата(fontp @ Mar 1 2013, 03:04) *
Я имел в виду умножение на комплексно-сопряженную последовательность на каждом отсчете АЦП скользящим образом. В момент правильного позиционирования (по символьной и началу последовательности), вы обнаружите мощную одиночную линию в спектре. Для этого не нужна даже тактовая (символьная синхронизация)

Хмм, не ждал что АКФ может дать спектральный выброс. Скидал примитивную модельку подобной системы, что-то даже есть. Символьная все равно же нужна, фильтрация же идет на частотах выше символьной, там фазу нужно правильно выбрать. В общем надо покрутить что к чему. Спасибо за информацию.

ЗЫ. Виктор39 извините что зафлудил вашу тему %)
fontp
QUOTE (des00 @ Mar 1 2013, 12:25) *
Хмм, не ждал что АКФ может дать спектральный выброс. Скидал примитивную модельку подобной системы, что-то даже есть. Символьная все равно же нужна, фильтрация же идет на частотах выше символьной, там фазу нужно правильно выбрать. В общем надо покрутить что к чему. Спасибо за информацию.
ЗЫ. Виктор39 извините что зафлудил вашу тему %)


Разве это АКФ? )) АКФ это умножить на сопряженную копию преамбулы и просуммировать. Я предложил (Вам, а не вообще, давно так известную модуляцию снимают) умножить и сделать Фурье, т.е. много раз проссумировать с разным вращением фазы. АКФ - это постоянная составляющая такой операции. Умножение последовательностей - это в лоб снятие известной модуляции. А спектральный анализ обнаружит вращение этого созвездия
petrov
Цитата(des00 @ Mar 1 2013, 13:04) *
Простой расчет: нужен диапазон захвата +-100КГц. Ширина петли по несущей 2КГц. для накрытия такого диапазона нужно 200КГц/(2/2)КГц = 200 СФ. При этом фильтр согласованный по частоте делается комплексным, а для длинной преамбулы еще и длинным.


Расчёт неправильный, надо не на полосу захвата делить, а обеспечить точность определения частоты при наихудшем отношении сигнал/шум.

Цитата(fontp @ Mar 1 2013, 13:04) *
Когда на ВЧ в Q-диапазоне умники хотят приспособить кварц на 5 ppm и без термостабилизации)) Расстройка главным образом функция стоимости изделия.


Безобразие sm.gif В стоимости радиорелейки, которую выше приводили, нормальный генератор капля в море.

Цитата(fontp @ Mar 1 2013, 13:29) *
Разве это АКФ? )) АКФ это умножить на сопряженную копию преамбулы и просуммировать. Я предложил (Вам, а не вообще, давно так известную модуляцию снимают) умножить и сделать Фурье, т.е. много раз проссумировать с разным вращением фазы. АКФ - это постоянная составляющая такой операции. Это в лоб снятие известной модуляции.


FFT - это зло вечно всех с толку сбивает sm.gif , это всего лишь быстрый алгоритм, по сути там куча параллельных согласованных фильтров на выходе которых ловим пик и по частоте и по времени.
fontp
QUOTE (petrov @ Mar 1 2013, 12:44) *
Расчёт неправильный, надо не на полосу захвата делить, а обеспечить точность определения частоты при наихудшем отношении сигнал/шум.
Безобразие sm.gif В стоимости радиорелейки, которую выше приводили, нормальный генератор капля в море.
FFT - это зло вечно всех с толку сбивает sm.gif , это всего лишь быстрый алгоритм, по сути там куча параллельных согласованных фильтров на выходе которых ловим пик и по частоте и по времени.



Я имел в виду ДПФ, чтобы было понятно, не говорил FFT. Много-много согласованых фильтров - это хорошо.
Но ДПФ мне позволяет приделать туда ещё и интерполяцию спектра, и многократно повысить точность измерения частотной расстройки - до теоретически возможного предела.
Конечно, вы можете реализовать это всё как набор фильтров. Но частоту пика определять по нескольким фильтрам с интерполяцией, а не по одному.

Совсем тему испортили автору, пардон.
des00
Цитата(fontp @ Mar 1 2013, 03:29) *
Разве это АКФ? )) АКФ это умножить на сопряженную копию преамбулы и просуммировать. Я предложил (Вам, а не вообще, давно так известную модуляцию снимают) умножить и сделать Фурье, т.е. много раз проссумировать с разным вращением фазы. АКФ - это постоянная составляющая такой операции. Умножение последовательностей - это в лоб снятие известной модуляции. А спектральный анализ обнаружит вращение этого созвездия

Что-то я туплю. Вашу фразу "Я имел в виду умножение сигнала на комплексно-сопряженную последовательность на каждом отсчете АЦП скользящим образом" я понял как умножить на комплексно-сопряженную копию преамбулы. Но похоже что тут что-то другое. Из методов снятия модуляций знаю возведение в степень, умножение на комплексно-сопряженную копию. Но опять же копию, а не какую то левую последовательность.


Цитата(petrov @ Mar 1 2013, 03:44) *
Расчёт неправильный, надо не на полосу захвата делить, а обеспечить точность определения частоты при наихудшем отношении сигнал/шум.

Хмм, вы считаете что требуемая точность определения частоты != половине полосы захвата? СФ на определенное смещение несушки даст признак того, что сигнал стоит близко к средней частоте СФ. Интерполировать сигналы разных СФ, что бы уточнить где конкретно находится сигнал мне кажется не правильным и не корректным.
fontp
QUOTE (des00 @ Mar 1 2013, 12:55) *
Что-то я туплю. Вашу фразу "Я имел в виду умножение сигнала на комплексно-сопряженную последовательность на каждом отсчете АЦП скользящим образом" я понял как умножить на комплексно-сопряженную копию преамбулы. Но похоже что тут что-то другое. Из методов снятия модуляций знаю возведение в степень, умножение на комплексно-сопряженную копию. Но опять же копию, а не какую то левую последовательность.



Почему левую последовательность? Речь идет как раз о умножении сигнала на сопряженную копию преамбулы по всей длине преамбулы.
И делаем Фурье по длине преамбулы, понятно.
А преамбулу мы выберем левую сами - при проектировании (если линия связи не стандартная)

QUOTE (des00 @ Mar 1 2013, 12:55) *
Интерполировать сигналы разных СФ, что бы уточнить где конкретно находится сигнал мне кажется не правильным и не корректным.


Корректно, если интерполировать грамотно. Я же привел Вам ссылку, как это делают в Стэнфордском универе, я её всегда привожу уже несколько лет))

Понятно, что линейно-интерполировать не правильно. А квадратично можно проинтерполировать, если добавить нулей
Существуют и другие методы интерполяции.
petrov
Цитата(des00 @ Mar 1 2013, 13:55) *
Интерполировать сигналы разных СФ, что бы уточнить где конкретно находится сигнал мне кажется не правильным и не корректным.


Ключевое слово "кажется". :)
des00
Цитата(fontp @ Mar 1 2013, 04:59) *
Почему левую последовательность? Речь идет как раз о умножении сигнала на сопряженную копию преамбулы по всей длине преамбулы.

так, похоже лучше спуститься на язык матлаба. Я понял вас так что на каждом такте нужно вычислять FFT(conv(data, conj(ref_preamble))). Но conv(data, conj(ref_preamble)) это и есть АКФ ? или АКФ на самом деле это что-то другое?

Цитата(petrov @ Mar 1 2013, 05:00) *
Ключевое слово "кажется". sm.gif

Хмм, ну выход СФ в отчетный момент времени это просто какое то значение. На это значение имеет влияние все то, что пришло на вход фильтра. В том числе шумы, наводки и прочее (т.е. фильтр фактически при расчете свертки с ИХ берет все что ему прилетело). В идеальном мире да интерполяция возможна, но в реальном.... Или это все левые страхи ?
fontp
QUOTE (des00 @ Mar 1 2013, 13:05) *
так, похоже лучше спуститься на язык математики. Я понял вас так что на каждом такте нужно вычислять FFT(conv(data, conj(ref_preamble))). Но conv(data, conj(ref_preamble)) это и есть АКФ ? или АКФ на самом деле это что-то другое?


зачем Вам conv? Вычисляйте FFT(data[i]*ref_preamble[i])))


Лучше даже DFT, учитывая возмжность улучшения метода. Возможно, не все частоты Вам нужны?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.