реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> timing loop, как его выполнить?
Kokos
сообщение Dec 9 2016, 20:10
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 54
Регистрация: 5-11-10
Из: Санкт-Петербург
Пользователь №: 60 667



Добрый вечер! Если я правильно понимаю то под этим определением имеется в виду тактовая синхронизация по клоку мастера? Может кто-нибудь объяснить "на пальцах" как это делается?

Передатчик передает OFDM сигнал с известной пилотной частотой. Нужно подстроить клок приемника АЦП. Как это делается?Допустим после БПФ по фазе сигнала на пилотном бине я могу определить смещение границы забора OFDM символа во времени, (это если я правильно понимаю timing recovery?). Далее по движению фазы во времени я могу определить разницу между номиналами тактовых частот приемника и передатчика. Но как подстроить фазу приемного клока по передающему?

Извиняюсь, если сумбурно. Буду благодарен за примеры.
Go to the top of the page
 
+Quote Post
quato_a
сообщение Dec 10 2016, 07:59
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 95
Регистрация: 27-07-11
Из: Зеленоград
Пользователь №: 66 439



Перед БПФ должна быть реализована частотная и временная синхронизация по тренировочному символу (преамбула) либо по CP символов. На вход БПФ должны заходить синхронизованные по времени символы, т.е. Вы знаете начало символа в пределах CP. После БПФ по пилот-тонам можно оценить фазовое смещение символов, которое обусловлено:
- фазовым смещением от рассогласования синтезаторов передатчика/приёмника и канала,
- остаточным частотным рассогласованием после частотной синхронизации,
- остаточным временным смещением в пределах CP.
Это фазовое смещение в каждом символе компенсируется своими собственными пилотами и созвездия встают в свои квадратуры. Точность компенсации определяется таймингом сэмпла.
Это было, так сказать, оценка и компенсация целого фазового смещения.

Если подумать, то после этого можно оценить остаточное (дробное) фазовое смещение в символе и его завести, как обратную связь в дробный интерполятор (ресемплер, фильтр Фарроу), который поставить сразу же после АЦП и тем самым дробно сдвигать не сам клок, а находить значения сигнала между сэмплами.
http://www.ee.iitm.ac.in/~giri/pdfs/EE6002/book-cho.pdf
стр.178 - восстановление тактовой частоты

К слову, на практике не приходилось компенсировать дробное фазовое смещение. laughing.gif
Компенсации целого было достаточно (например, QAM64).


--------------------
Суббота начинается в понедельник
Go to the top of the page
 
+Quote Post
Kokos
сообщение Dec 10 2016, 17:46
Сообщение #3


Участник
*

Группа: Свой
Сообщений: 54
Регистрация: 5-11-10
Из: Санкт-Петербург
Пользователь №: 60 667



Да так и есть, предварительно перед передачей данных там выполняется тренинг во время которого я определяю границы ofdm символа во времени по известному синхрофрейму, после чего по изменению фазы на пилоте от символа к символу получаю разность частот между генератором передающего устройства и моего приемника. Далее перестраиваю свой тактовый генератор (разница в частотах получается точнее чем +-50ppm предусмотренная в стандарте). Далее перед данными опять периодически передаются синхрофреймы по которым я перерассчитываю частотный эквалайзер при приеме. Созвездия хорошо различимы.

При передаче данных: Когда я выступаю в роли мастера, слейв отвечает на передаваемые мною данные всегда. А когда выступаю в роли слейва, то периодически отвечает а периодически нет, при одинаковой логике работы.

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

During this state, the S shall do timing recovery and loop timing and may do other adaptive
AFE algorithms. Loop timing is defined as the combination of the slaving of the S ADC
clock to the received signal (i.e., to the M DAC clock), and tying the S DAC and ADC
clocks together.

Сообщение отредактировал Kokos - Dec 10 2016, 18:32
Go to the top of the page
 
+Quote Post
quato_a
сообщение Dec 10 2016, 19:12
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 95
Регистрация: 27-07-11
Из: Зеленоград
Пользователь №: 66 439



Ну у меня аналогичный принцип работы: мастер - слейв. Связь типа точка-точка. Транзакция обмена мастер-слейв разделена, например, 50/50 символов + таймауты между передачами для перестройки аналоговых трактов (усилители, коммутаторы и проч.).

Цитата(Kokos @ Dec 10 2016, 20:46) *
...после чего по изменению фазы на пилоте от символа к символу получаю разность частот между генератором передающего устройства и моего приемника.

Да, по пилотам можно определить частотное рассогласование CFO, но перед этим надо на самом первом этапе обработки оценить и скомпенсировать (грубо) CFO по автокорреляции. Без частотной синхры загонять сэмплы в FFT бессмысленно. По крайней мере, в моём случае оценка CFO показывает 20-30 кГц при том, что ширина одной поднесущей 60 кГц.
http://sdsu-dspace.calstate.edu/bitstream/....pdf?sequence=1
тут описан принцип long и short preamble
Оценить CFO через пилоты возможно только, если рассогласование в незначительных пределах.
Предыдущая книга по MIMO-OFDM: стр. 161, figure 5.7

Цитата(Kokos @ Dec 10 2016, 20:46) *
Далее перед данными опять периодически передаются синхрофреймы по которым я перерассчитываю частотный эквалайзер при приеме.

Не совсем понял, то есть у Вас для того, чтобы пройти все этапы синхронизации требуется принять несколько фреймов с синхросимволами?
По первому фрейму временная синхра ... таймаут ожидания ... по 2-му фрейму частотная синхра ... таймаут ожидания ... по 3-му фрейму эквалайзирование?



--------------------
Суббота начинается в понедельник
Go to the top of the page
 
+Quote Post
Kokos
сообщение Dec 10 2016, 20:46
Сообщение #5


Участник
*

Группа: Свой
Сообщений: 54
Регистрация: 5-11-10
Из: Санкт-Петербург
Пользователь №: 60 667



Тут нужно отметить что у меня сигнал уже на нулевой частоте изначально. Полоса 1.104 МГц, частота дискретизации 2.208 МГц. Частотное разделение канала вверх и вниз. Вот, я подозреваю что нужно добиться полной синхронизации частот дискретизации передатчика мастера и приемника слейва.

Я оцениваю разницу и перестраиваю свою частоту дискретизации своего устройства (+-50ppm). И выполняю временную синхронизацию(по синхрофреймам корреляцией определяю место начала фреймов для БПФ). Это все происходит во время инициализации(тогда же настройка трактов усиления).

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

Сообщение отредактировал Kokos - Dec 10 2016, 20:49
Go to the top of the page
 
+Quote Post
quato_a
сообщение Dec 11 2016, 15:00
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 95
Регистрация: 27-07-11
Из: Зеленоград
Пользователь №: 66 439



Цитата(Kokos @ Dec 10 2016, 23:46) *
Я оцениваю разницу и перестраиваю свою частоту дискретизации своего устройства (+-50ppm).

На этапе частотной синхронизации не нужно перестравить дискретизацию устройства (это больше похоже на тактовую синхронизацию).
Пример:
Фаза в пике автокорреляции по преамбуле или CP покажет на разницу частот синтезаторов передатчика и приёмника. Это значение фазы заводим на cordic, который выдает гармонический сингал cos/sin, который комплексно умножаем на входной I/Q, тем самым компенсируем разницу частот.
В книге MIMO-OFDM в разделе CFO про это подробно рассказано.

Цитата(Kokos @ Dec 10 2016, 23:46) *
Тут нужно отметить что у меня сигнал уже на нулевой частоте изначально. Полоса 1.104 МГц, частота дискретизации 2.208 МГц. Частотное разделение канала вверх и вниз. Вот, я подозреваю что нужно добиться полной синхронизации частот дискретизации передатчика мастера и приемника слейва.

У меня в системе тоже оцифровывается сигнал на нулевой частоте. Правда, полоса 1.104 МГц прямо на самом краю fs/2; - опасно. У меня fs = 61.44 МГц, полоса 12 МГц. Повторюсь, работаю без синхронизации fs передатчика/приёмника.

rolleyes.gif


--------------------
Суббота начинается в понедельник
Go to the top of the page
 
+Quote Post
Kokos
сообщение Dec 12 2016, 06:26
Сообщение #7


Участник
*

Группа: Свой
Сообщений: 54
Регистрация: 5-11-10
Из: Санкт-Петербург
Пользователь №: 60 667



Ой, я не так выразился прошу прощения. У меня в самой системе нет гетеродинирования, т.е. сигнал изначально на нулевой частоте, без переносов.
Т.о. частотную синхронизацию мне делать не нужно. Временная сделана корреляцией синхрофреймов. А тактовая - перестройкой задающего генератора (+-50ppm) по сдвигу фазы на пилоте за интервал времени. Вообще могут быть какие-нибудь вредные эффекты из-за несовпадения по фазе тактовых частот передатчика и приемника? Или мне следует искать проблемы в чем-то другом все же?
Go to the top of the page
 
+Quote Post
quato_a
сообщение Dec 12 2016, 08:30
Сообщение #8


Частый гость
**

Группа: Свой
Сообщений: 95
Регистрация: 27-07-11
Из: Зеленоград
Пользователь №: 66 439



Цитата(Kokos @ Dec 12 2016, 09:26) *
Вообще могут быть какие-нибудь вредные эффекты из-за несовпадения по фазе тактовых частот передатчика и приемника?


Тут вредные эффекты не сколько в несовпадение фаз тактовых генераторов, а сколько в несовпадении этих частот. Из-за 2-го фактора будет возникать межсимвольная интерференция.
Все относительно: период символа к периоду семплирования.

Во к примеру решил для себя подсчитать:
fs tx = 61.44 МГц
Ts tx = 16.276 нс
длина символа len = 1024 + 64 (CP) = 1088 сэмплов fs
Tsym tx = 17.708 мкс

Предположим, что генератор передатчика идеальный, а нестабилен генератор приёмника на +50ppm.
fs rx = fs tx * (1 + ppm) = 61.443072 МГц
Ts rx = Ts tx / (1 + ppm) = 16.275 нс

N = len * (1 + ppm) = 1088.0544
Т.е. за 1088 тактов на приёмнике оцифруется более, чем один символ: 1-й символ + 0.0544 части такта следующего.

Верно ли?

Сообщение отредактировал quato_a - Dec 12 2016, 16:43


--------------------
Суббота начинается в понедельник
Go to the top of the page
 
+Quote Post
Kokos
сообщение Dec 12 2016, 10:51
Сообщение #9


Участник
*

Группа: Свой
Сообщений: 54
Регистрация: 5-11-10
Из: Санкт-Петербург
Пользователь №: 60 667



Да все верно, возникает вопрос приемник мастера сам должен компенсировать это расхождение, либо передатчик слейва должен как-то "предискажать сигнал" (не знаю как это назвать по-научному)?
Go to the top of the page
 
+Quote Post
quato_a
сообщение Dec 12 2016, 17:06
Сообщение #10


Частый гость
**

Группа: Свой
Сообщений: 95
Регистрация: 27-07-11
Из: Зеленоград
Пользователь №: 66 439



Цитата(Kokos @ Dec 12 2016, 13:51) *
Да все верно, возникает вопрос приемник мастера сам должен компенсировать это расхождение, либо передатчик слейва должен как-то "предискажать сигнал" (не знаю как это назвать по-научному)?


Если пакетные транзакции.
Допустим, синхронизировались по синхросимволу, далее от символа к символу расхождение возрастает, а тут и фрейм закончился. Все результаты синхронизации, оценки и прочего сбрасываем; оставляем только уровень АРУ. И по новой синхронизируемся по новому синхросимволу, причем предыдущие расхождение нивелируется, начнет заново расходиться.

Ну а если бесконечный поток, то можно дробно передискретизировать сам входной сигнал через ресемплер.
http://ru.dsplib.org/content/resampling_lagrange.html


--------------------
Суббота начинается в понедельник
Go to the top of the page
 
+Quote Post
Kokos
сообщение Dec 13 2016, 12:42
Сообщение #11


Участник
*

Группа: Свой
Сообщений: 54
Регистрация: 5-11-10
Из: Санкт-Петербург
Пользователь №: 60 667



Статья полезная, спасибо. С приемной стороны слейва я понимаю как сделать обработку. Меня беспокоит возможно ли такое что с выходным сигналом для мастера нужно делать что-то подобное?
Go to the top of the page
 
+Quote Post
quato_a
сообщение Dec 13 2016, 16:29
Сообщение #12


Частый гость
**

Группа: Свой
Сообщений: 95
Регистрация: 27-07-11
Из: Зеленоград
Пользователь №: 66 439



Цитата(Kokos @ Dec 13 2016, 15:42) *
Статья полезная, спасибо. С приемной стороны слейва я понимаю как сделать обработку. Меня беспокоит возможно ли такое что с выходным сигналом для мастера нужно делать что-то подобное?


Ресемплер на входе приемников мастера и слейва.

Ранее Вы упоминали, что используется частотное разделение каналов uplink/downlink.
Как вы это реализуете без переноса на несущую. Переносите в цифровом виде: перед ЦАПом и после АЦП ставите up/downconverter?


--------------------
Суббота начинается в понедельник
Go to the top of the page
 
+Quote Post
Kokos
сообщение Dec 13 2016, 18:32
Сообщение #13


Участник
*

Группа: Свой
Сообщений: 54
Регистрация: 5-11-10
Из: Санкт-Петербург
Пользователь №: 60 667



Там просто не перекрывающиеся частотные каналы используются "вверх" 1-31 бин полосы, "вверх" - 32-255 бин полосы. На ОБПФ и в линию.
Go to the top of the page
 
+Quote Post
quato_a
сообщение Dec 13 2016, 19:57
Сообщение #14


Частый гость
**

Группа: Свой
Сообщений: 95
Регистрация: 27-07-11
Из: Зеленоград
Пользователь №: 66 439



Цитата(Kokos @ Dec 13 2016, 21:32) *
Там просто не перекрывающиеся частотные каналы используются "вверх" 1-31 бин полосы, "вверх" - 32-255 бин полосы. На ОБПФ и в линию.


В теории про такой способ не находил, но размышлял.
Получается, если модемы мастера и слейва постоянно и одновременно фигачат, то у Вас хорошая межканальная интерференция от CFO, так что поднесущие в тракте друг на друга полезут. rolleyes.gif


--------------------
Суббота начинается в понедельник
Go to the top of the page
 
+Quote Post
stealth-coder
сообщение Dec 13 2016, 20:16
Сообщение #15


Частый гость
**

Группа: Участник
Сообщений: 112
Регистрация: 27-12-08
Пользователь №: 42 786



Цитата(Kokos @ Dec 12 2016, 13:51) *
Да все верно, возникает вопрос приемник мастера сам должен компенсировать это расхождение, либо передатчик слейва должен как-то "предискажать сигнал" (не знаю как это назвать по-научному)?


Обычно слейв подстраивается под мастер. Как правило это делают аппаратно, изменяя частоту опорного генератора с помощью ЦАП (в частности таким образом функционируют все мобильные телефоны, имеющие собственный низкостабильный опорник из-за ограниченных габаритов и потребления и использующие сигнал базовой станции в качестве референсного для подстройки). Если возможности такой подстройки у Вас нет, то это можно сделать программно с помощью передискретизации.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th June 2025 - 00:19
Рейтинг@Mail.ru


Страница сгенерированна за 0.02097 секунд с 7
ELECTRONIX ©2004-2016