Kokos 0 9 декабря, 2016 Опубликовано 9 декабря, 2016 · Жалоба Добрый вечер! Если я правильно понимаю то под этим определением имеется в виду тактовая синхронизация по клоку мастера? Может кто-нибудь объяснить "на пальцах" как это делается? Передатчик передает OFDM сигнал с известной пилотной частотой. Нужно подстроить клок приемника АЦП. Как это делается?Допустим после БПФ по фазе сигнала на пилотном бине я могу определить смещение границы забора OFDM символа во времени, (это если я правильно понимаю timing recovery?). Далее по движению фазы во времени я могу определить разницу между номиналами тактовых частот приемника и передатчика. Но как подстроить фазу приемного клока по передающему? Извиняюсь, если сумбурно. Буду благодарен за примеры. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
quato_a 3 10 декабря, 2016 Опубликовано 10 декабря, 2016 · Жалоба Перед БПФ должна быть реализована частотная и временная синхронизация по тренировочному символу (преамбула) либо по CP символов. На вход БПФ должны заходить синхронизованные по времени символы, т.е. Вы знаете начало символа в пределах CP. После БПФ по пилот-тонам можно оценить фазовое смещение символов, которое обусловлено: - фазовым смещением от рассогласования синтезаторов передатчика/приёмника и канала, - остаточным частотным рассогласованием после частотной синхронизации, - остаточным временным смещением в пределах CP. Это фазовое смещение в каждом символе компенсируется своими собственными пилотами и созвездия встают в свои квадратуры. Точность компенсации определяется таймингом сэмпла. Это было, так сказать, оценка и компенсация целого фазового смещения. Если подумать, то после этого можно оценить остаточное (дробное) фазовое смещение в символе и его завести, как обратную связь в дробный интерполятор (ресемплер, фильтр Фарроу), который поставить сразу же после АЦП и тем самым дробно сдвигать не сам клок, а находить значения сигнала между сэмплами. http://www.ee.iitm.ac.in/~giri/pdfs/EE6002/book-cho.pdf стр.178 - восстановление тактовой частоты К слову, на практике не приходилось компенсировать дробное фазовое смещение. :laughing: Компенсации целого было достаточно (например, QAM64). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kokos 0 10 декабря, 2016 Опубликовано 10 декабря, 2016 (изменено) · Жалоба Да так и есть, предварительно перед передачей данных там выполняется тренинг во время которого я определяю границы 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. Изменено 10 декабря, 2016 пользователем Kokos Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
quato_a 3 10 декабря, 2016 Опубликовано 10 декабря, 2016 · Жалоба Ну у меня аналогичный принцип работы: мастер - слейв. Связь типа точка-точка. Транзакция обмена мастер-слейв разделена, например, 50/50 символов + таймауты между передачами для перестройки аналоговых трактов (усилители, коммутаторы и проч.). ...после чего по изменению фазы на пилоте от символа к символу получаю разность частот между генератором передающего устройства и моего приемника. Да, по пилотам можно определить частотное рассогласование 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 Далее перед данными опять периодически передаются синхрофреймы по которым я перерассчитываю частотный эквалайзер при приеме. Не совсем понял, то есть у Вас для того, чтобы пройти все этапы синхронизации требуется принять несколько фреймов с синхросимволами? По первому фрейму временная синхра ... таймаут ожидания ... по 2-му фрейму частотная синхра ... таймаут ожидания ... по 3-му фрейму эквалайзирование? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
quato_a 3 11 декабря, 2016 Опубликовано 11 декабря, 2016 · Жалоба Я оцениваю разницу и перестраиваю свою частоту дискретизации своего устройства (+-50ppm). На этапе частотной синхронизации не нужно перестравить дискретизацию устройства (это больше похоже на тактовую синхронизацию). Пример: Фаза в пике автокорреляции по преамбуле или CP покажет на разницу частот синтезаторов передатчика и приёмника. Это значение фазы заводим на cordic, который выдает гармонический сингал cos/sin, который комплексно умножаем на входной I/Q, тем самым компенсируем разницу частот. В книге MIMO-OFDM в разделе CFO про это подробно рассказано. Тут нужно отметить что у меня сигнал уже на нулевой частоте изначально. Полоса 1.104 МГц, частота дискретизации 2.208 МГц. Частотное разделение канала вверх и вниз. Вот, я подозреваю что нужно добиться полной синхронизации частот дискретизации передатчика мастера и приемника слейва. У меня в системе тоже оцифровывается сигнал на нулевой частоте. Правда, полоса 1.104 МГц прямо на самом краю fs/2; - опасно. У меня fs = 61.44 МГц, полоса 12 МГц. Повторюсь, работаю без синхронизации fs передатчика/приёмника. :rolleyes: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kokos 0 12 декабря, 2016 Опубликовано 12 декабря, 2016 · Жалоба Ой, я не так выразился прошу прощения. У меня в самой системе нет гетеродинирования, т.е. сигнал изначально на нулевой частоте, без переносов. Т.о. частотную синхронизацию мне делать не нужно. Временная сделана корреляцией синхрофреймов. А тактовая - перестройкой задающего генератора (+-50ppm) по сдвигу фазы на пилоте за интервал времени. Вообще могут быть какие-нибудь вредные эффекты из-за несовпадения по фазе тактовых частот передатчика и приемника? Или мне следует искать проблемы в чем-то другом все же? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
quato_a 3 12 декабря, 2016 Опубликовано 12 декабря, 2016 (изменено) · Жалоба Вообще могут быть какие-нибудь вредные эффекты из-за несовпадения по фазе тактовых частот передатчика и приемника? Тут вредные эффекты не сколько в несовпадение фаз тактовых генераторов, а сколько в несовпадении этих частот. Из-за 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 части такта следующего. Верно ли? Изменено 12 декабря, 2016 пользователем quato_a Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kokos 0 12 декабря, 2016 Опубликовано 12 декабря, 2016 · Жалоба Да все верно, возникает вопрос приемник мастера сам должен компенсировать это расхождение, либо передатчик слейва должен как-то "предискажать сигнал" (не знаю как это назвать по-научному)? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
quato_a 3 12 декабря, 2016 Опубликовано 12 декабря, 2016 · Жалоба Да все верно, возникает вопрос приемник мастера сам должен компенсировать это расхождение, либо передатчик слейва должен как-то "предискажать сигнал" (не знаю как это назвать по-научному)? Если пакетные транзакции. Допустим, синхронизировались по синхросимволу, далее от символа к символу расхождение возрастает, а тут и фрейм закончился. Все результаты синхронизации, оценки и прочего сбрасываем; оставляем только уровень АРУ. И по новой синхронизируемся по новому синхросимволу, причем предыдущие расхождение нивелируется, начнет заново расходиться. Ну а если бесконечный поток, то можно дробно передискретизировать сам входной сигнал через ресемплер. http://ru.dsplib.org/content/resampling_lagrange.html Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kokos 0 13 декабря, 2016 Опубликовано 13 декабря, 2016 · Жалоба Статья полезная, спасибо. С приемной стороны слейва я понимаю как сделать обработку. Меня беспокоит возможно ли такое что с выходным сигналом для мастера нужно делать что-то подобное? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
quato_a 3 13 декабря, 2016 Опубликовано 13 декабря, 2016 · Жалоба Статья полезная, спасибо. С приемной стороны слейва я понимаю как сделать обработку. Меня беспокоит возможно ли такое что с выходным сигналом для мастера нужно делать что-то подобное? Ресемплер на входе приемников мастера и слейва. Ранее Вы упоминали, что используется частотное разделение каналов uplink/downlink. Как вы это реализуете без переноса на несущую. Переносите в цифровом виде: перед ЦАПом и после АЦП ставите up/downconverter? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
quato_a 3 13 декабря, 2016 Опубликовано 13 декабря, 2016 · Жалоба Там просто не перекрывающиеся частотные каналы используются "вверх" 1-31 бин полосы, "вверх" - 32-255 бин полосы. На ОБПФ и в линию. В теории про такой способ не находил, но размышлял. Получается, если модемы мастера и слейва постоянно и одновременно фигачат, то у Вас хорошая межканальная интерференция от CFO, так что поднесущие в тракте друг на друга полезут. :rolleyes: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
stealth-coder 2 13 декабря, 2016 Опубликовано 13 декабря, 2016 · Жалоба Да все верно, возникает вопрос приемник мастера сам должен компенсировать это расхождение, либо передатчик слейва должен как-то "предискажать сигнал" (не знаю как это назвать по-научному)? Обычно слейв подстраивается под мастер. Как правило это делают аппаратно, изменяя частоту опорного генератора с помощью ЦАП (в частности таким образом функционируют все мобильные телефоны, имеющие собственный низкостабильный опорник из-за ограниченных габаритов и потребления и использующие сигнал базовой станции в качестве референсного для подстройки). Если возможности такой подстройки у Вас нет, то это можно сделать программно с помощью передискретизации. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться