Jump to content

    

Grizzly

Свой
  • Content Count

    749
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Grizzly

  • Rank
    Знающий

Recent Profile Visitors

6271 profile views
  1. Уже нашел один косяк :) Я считал корреляции в частотной области неверно. Брал в качестве длины не размерность Nfft, а длину Задова-Чу, которая занимает только поднесущие, выделенные для передачи информации (это чуть больше половины по центру). Из-за IFO бины циклически сдвигаются, и я терял информацию в итоге. Так стыдно теперь
  2. В том-то всё и дело, что система поганая сама по себе :( Раз в 4 секунды приходит слот из 7 символов OFDM. Четвертый, как в uplink LTE, пилот. Только тут все равно OFDM, а не SC-FDMA. Первый раз я ведь должен найти этот слот по времени, дальше уже можно только подстраиваться каждые 4 секунды, зная его ожидаемое место. Можно, конечно, энергетический детектор использовать для первого обнаружения, но как писал выше, боюсь, что WiFi может очень портить поиск. Зато в этом случае скользящим окном довольно просто считается, не надо коррелировать символы с 1024 отсчётами. На три порядка выигрыш.
  3. @FatRobot только получится довольно много частотных позиций. Ведь нужно будет не 15 кГц делать шаг, а на мелкую сетку разбить, поскольку дробная часть не будет скомпенсирована. Допустим, грубо я засинхронизируюсь во временной области. Относительно этого положения возьму +/-15 отчётов. Итого 31. По частоте +/-60 кГц в моих реалиях. Наверное, 500 Гц шаг брать, не больше. 241 позиция. Итого почти 7500. Хотя в сравнении с числом корреляций для грубого поиска фрейма это фигня ;) Их там миллионы будут при таком редком появлении фрейма. Так что в принципе можно и меньше делать шаг по частоте. Все познается в сравнении.
  4. Спасибо. Буду пробовать. Поэтому я предпочел использовать пилот вместо них, но вскоре влетел в IFO :)
  5. О, свеженькое нашлось, даже из Open Access. Как раз про формулу (7) с дифференциальной корреляцией пишут, что применяется в том числе при ошибках, связанных с оценкой STO. 08653297.pdf Тут, насколько я понимаю, все равно лучше по ЦП подстроиться по времени перед вычислением корреляций в частотной области. При отрицательных IFO пик корреляции пилота во временной области сместится в сторону соседнего символа, с межсимволкой уже фиг что сделаешь в частотной области.
  6. Проблема заключается в том, что это какая-то собственная система, подобная LTE. У меня приходит всего один слот в несколько секунд. Потерять его нельзя. Его надо обнаружить при достаточно большой относительной неопределенности по времени, засинхронизироваться и демодулировать. Думаю, надо сделать буфер несколько больше размеров слота и всё-таки идти по потоку корреляцией с пилотом Задова-Чу. Энергетический метод с двойным окном, я так думаю, будет часто цепляться за Wi-Fi. В итоге из-за частотной расстройким максимум корреляции окажется сдвинут от истинного положения отсчётов на десять, но слот будет обнаружен. Дальше пробегусь в буфере корреляциями с ЦП, компенсирую дробную часть CFO. Дальше уже в частотной области будут снова находить корреляции Задова-Чу. Ошибка во времени даст набег фазы на поднесущих. Попробую сделать дифференциальную корреляцию, то есть и для принятого сигнала, и для пилота коррелировать выражения типа Sd(k) = S(k)S*(k-1). Во вложении формула (19). Так можно избавиться от фазового набега. А по (20) уже точно подстроюсь по времени, чтобы верно определить границы для FFT при демодуляции. kyungsoowoo2007.pdf Интересно, банк согласованных фильтров Задова-Чу, каждый из которых будет со своим значение IFO, не окажется эффективнее? Хотя без компенсации дробной части CFO, наверное, результаты будут очень плохие.
  7. Начал писать свой демодулятор для LTE-подобной системы и столкнулся с проблемой, касающейся оценки частотного смещения на целое число поднесущих. Получается змея, кусающая себя за хвост. Оценка IFO производится в частотной области по корреляции пилот-сигнала с опорным. Положение максимума будет соответствовать величине IFO. Только вот для растета такой корреляции нужно иметь точную синхронизацию по времени, иначе оценка IFO у меня получалась неверной на несколько бинов. Изначально я синхронизировался по времени по корреляции пилота с опорным, находил границу фрейма, затем считал корреляции ЦП во фрейме, усреднял их, находил дробную CFO, компенсировал, а после в частотной области делал оценку IFO. Однако при расстройке на несколько поднесущих у меня максимум корреляции пилота смещался где-то на 10 отсчетов во временной области. Символьная синхронизация может быть сделана и по корреляции циклических префиксов, которая не чувствительна к отстройке на целое число поднесущих, но там ведь априори точность не очень. В моем моделировании пока что получается необходимость синхронизации отсчет в отсчет по времени, чтобы в частотной области получить корректный результат. На рисунке 2 в PDF из вложения видна зависимость модуля корреляции от рассогласования по времени. A Low-Complexity Integer Frequency Offset Estimation Scheme Using Combined Training Symbols for OFDM Systems.pdf В публикациях всё просто. В зависимости от объекта исследования всё остальное считается идельаным. А как на практике поступают? Изначально по префиксам синхронизроваться?
  8. Вот теперь дошло. Я первым делом начал думать про следящие системы feedback. Можно же прямо комплексной экспонентой корректировать без обратных связей. Спасибо огромное! Опорник у меня один. P.S. Даже публикация нашлась на эту тему: Sampling Clock Offset estimation and correction in frequency domain for OFDM Receivers.pdf
  9. Задумался, правильно ли я понимаю, что имеется в виду под SNR в публикациях по исследованию BLER для разных MCS. Это уже post-equalization SNR с учетом всех оценок и неточностей? То есть энергетика на входе демодулятора QPSK/QAM, а не в точке приема сигнала до всех синхронизаций? Вот здесь исследуется CFO и явно указано, где какое определение SNR используется: https://www.researchgate.net/publication/228440024_Analytical_Link_Performance_Evaluation_of_LTE_Downlink_with_Carrier_Frequency_Offset
  10. Хорошая презентация про влияние STO на SINR для LTE. Здесь даже 40 ppm рассматривается, по 20 на приеме и передаче. Вдруг кому-нибудь в дальнейшем поможет для начаьных оценок бюджета. Sample Clock Offset Detection and Correction in the LTE Downlink Receiver.pdf
  11. Я к тому говорил про корреляцию с пилотом, что в LTE Toolbox так находят начало фрейма: https://www.mathworks.com/help/lte/ref/lteulframeoffset.html Для downlink тоже по пилотам ищут.
  12. @FatRobot теперь ясно. Спасибо!
  13. интерполятор не влезет по вычислительным ресурсам :( они и так уже на пределе да, за фрейм он уползает на 2-3 отсчета. в LTE, насколько я понимаю, фрейм из 10 мс рассматривается как самостоятельная единица, оценка его временного положения производится по корреляции с пилотом или усреднением корреляций префиксов. хочу что-то подобное использовать. другое дело, что за фрейм у меня могут появиться/исчезнуть несколько отсчетов, а сам набег ошибки линейный. поэтому я делаю оценку временного положения каждый сабфрейм, который в 10 раз короче. по сути это всё пакетная передача. в чем тут ущербность подхода?
  14. я только за. когда работал в области навигации, то делал пересчет оценок несущей на тактовую. в этом демодуляторе как-то фигово происходит оценка и компенсация несущей, хотел не привлекать её для компенсации STO. видимо, не получится. придется самому всё переделывать в демодуляторе, что поделать... вы имеете в виду, что из-за этого пик будет не в истинном месте, а на несколько отсчетов смещен?
  15. Только в случае дробной величины (в отсчётах) мне ничего с этой оценкой не сделать. У меня нет обратной связи с генератором. Дробную величину я и так подстрою по пилотам в частотной области, оценив фазовый сдвиг на каждой поднесущей. Решил оставить, как прежде. Синхронизироваться с фреймом, длительность его 10 мс, а затем делать оценку сдвига по корреляции пилота во временной области каждый сабфрейм 1 мс. Если появилось больше одного отсчёта от ожидаемого положения, двигать окно, е следующий сабфрейм брать из буфера с учётом этого смещения. Опять же дробную величину исправлю поворотом фазы в частотной области, как уже говорил. Частотная компенсация CFO выполняется сразу для всего сабфрейма, то есть у пилотного символа скачка фазы не должно быть.