Jump to content

    

Компенсация STO в OFDM

В принципе дорефакторил демодулятор. При хорошей энергетике довольно неплохие результаты есть, но в нем не учтена компенсация STO.

Допустим, тактовая частота 30,72 МГц и нестабильность опорника 20 ppm. Это соответствует ~640 Гц (640 отсчетам в секунду). Правильно я понимаю, что в случае feedforward алгоритмов требуется интерполяция? Как, например, тут: https://www.wirelessinnovation.org/assets/Proceedings/2011Europe/2011-europe-2a-briggs.pdf

Если остройка всегда положительная, то вроде бы можно сделать совсем тупую вещь без интерполяции. Например, по корреляции с последовательностью Задова-Чу во временной области обнаруживать смещение на целое число отсчетов и двигать окно. Пока мы находимся в диапазоне +/0,5 отсчета, то эквализация в частотной области по той же последовательности Задова-Чу довернет фазу на всех поднесущих на нужный угол. Периодичность Задова-Чу 1 мс, за это время набежит до 0,6 отсчетов. А вот уже при пропадании отсчетов просто двигать окно не выйдет, придется самому интерполяцией порождать новые. Но с быстродейтсвием всё очень плохо, а тут придется еще для 30,72 МГц интерполировать.

Или всё-таки сдвиг окна в другую сторону, если отсчет пропал, делать можно? Пусть и с большими потерями в выходном SNR.

Share this post


Link to post
Share on other sites
10 minutes ago, Grizzly said:

В принципе дорефакторил демодулятор. При хорошей энергетике довольно неплохие результаты есть, но в нем не учтена компенсация STO.

Допустим, тактовая частота 30,72 МГц и нестабильность опорника 20 ppm. Это соответствует ~640 Гц (640 отсчетам в секунду). Правильно я понимаю, что в случае feedforward алгоритмов требуется интерполяция?

В основном зависит от рабочих Es/N0. В моих вляпываниях в OFDM этого не требовалось, хватало докрутки фазы весов эквалайзера в зависимости от номера поднесущей, но если рабочие отношения выше 30 dB и поднесущих много, то, наверное, можно задуматься о чем-то таком, чтобы убить ICI, которая вылезет выше остального шума.

Share this post


Link to post
Share on other sites
14 минут назад, andyp сказал:

рабочие отношения выше 30 dB и поднесущих много,

Поднесущих 1200, ОСШ около 20 дБ. Я пока окно двигаю. Вопрос задал потому, что удивился некоторому результату. Задал сдвиг на +/-5 отсчётов независимо от действительного значения оценки. Измерил BLER, затем сделал честную оценку по смещению положения максимума корреляции пилот-символа, BLER получился чуточку хуже. Возможно, в данном конкретном случае просто угадал :)

Теперь все больше склоняюсь к тому, что удастся без интерполяции обойтись.

Share this post


Link to post
Share on other sites
3 hours ago, Grizzly said:

Поднесущих 1200, ОСШ около 20 дБ. Я пока окно двигаю. Вопрос задал потому, что удивился некоторому результату. Задал сдвиг на +/-5 отсчётов независимо от действительного значения оценки. Измерил BLER, затем сделал честную оценку по смещению положения максимума корреляции пилот-символа, BLER получился чуточку хуже. Возможно, в данном конкретном случае просто угадал :)

Теперь все больше склоняюсь к тому, что удастся без интерполяции обойтись.

вы на дробное сдвинте и еще поставьте вариацию сдвига (как в моделях petrov проверяются петли по символьной). А так, в скляре есть таблица: деградация кривой кодирования в зависимости от смещения отсчета сигнала, от оптимального. Если вас устраивает такая деградация  сигнала, при ваших параметрах, то можно и не делать.

А вообще, забавная ситуация, сколько смотрю статей, все расписывают как здорово в искажениях работают те или иные методы модуляции, эквалайзирования и кодирования, при этом забывают что для того что бы добраться до всего этого, надо восстановить символьную и несущую частоту) А вот алгоритмы их восстановления, могут не работать при тех искажениях))))

Share this post


Link to post
Share on other sites
7 hours ago, Grizzly said:

Теперь все больше склоняюсь к тому, что удастся без интерполяции обойтись.

Я бы на рабочей 20 и  таком количестве поднесущих точно обошелся  бы без ресемплера. Да и на более высоких SNR трудно получить такую деградацию SNR за счет плохого клока, чтобы в результате опуститься ниже 20, которые требуются BICM для хорошей спектральной эффективности.

Share this post


Link to post
Share on other sites
13 minutes ago, andyp said:

Я бы на рабочей 20 и  таком количестве поднесущих точно обошелся  бы без ресемплера. Да и на более высоких SNR трудно получить такую деградацию SNR за счет плохого клока, чтобы в результате опуститься ниже 20, которые требуются BICM для хорошей спектральной эффективности.

может у него КАМ64 с кодированием рид соломона)

Share this post


Link to post
Share on other sites
16 минут назад, des00 сказал:

КАМ64 с кодированием рид соломона)

Неа) Турбокод различных скоростей вплоть до 4/5 при QAM-64. Здесь уже на тоненького ;) Но канал хороший из-за направленной антенны, райсовский. Провалов больше 4 дБ не видел, обычно 1,5-2 дБ.

Share this post


Link to post
Share on other sites
1 minute ago, Grizzly said:

Неа) Турбокод различных скоростей вплоть до 4/5 при QAM-64. Здесь уже на тоненького ;)

ИМХО запас маловат, на пустом месте(символьная синхра) минимум 6дб терять.....))) но, решать вам)

Share this post


Link to post
Share on other sites
17 minutes ago, des00 said:

может у него КАМ64 с кодированием рид соломона)

Судя по остальным параметрам, про LTE разговор. 

 

9 minutes ago, des00 said:

ИМХО запас маловат, на пустом месте(символьная синхра) минимум 6дб терять.....))) но, решать вам)

Если про STO и OFDM, то потери от Es/N0 зависят - чем выше, тем больше вклад помех от других поднесущих. При 20 начинаем вообще что-то видимое терять. При 50 и 10 потерять можно - эффективный Es/N0 опустится до 40 и ниже.

С другой стороны, пропускная способность канала BICM:

20 - примерно порог для 64QAM - спектральная эффективность уже почти 6 бит на поднесущую. На 16 QAM стоит соскакивать начиная с 12 примерно.

Это всё очень оценочно конечно. Реальная схема кодирования еще свои поправки внесет.

 

Share this post


Link to post
Share on other sites

@andyp по моим измерениям, где-то при 24 дБ BLER для самих высоких MCS на уровне 0,01 и ниже. При 20 около порогового значения 0,1. Это с QAM-64. Оценка ОСШ может быть занижена, так как делается уже в частотной области после синхронизации.

С QAM-16 где-то при 16 дБ приличное качество приёма.

Материалы по BLER для MCS я видел для LTE. В 99% они получены, разумеется, для АБГШ-канала. Ещё сколько-то дБ потеряется из-за качества оценки передачи канала.

Я изначально за увеличение бюджета канала, чтобы гарантировать стабильность приема.

Вот тут интересные результаты в том числе для многолучевых каналов. Больше подобного не попадалось.

A Novel CQI Calculation Scheme in LTE-LTE-ASystems.pdf

Share this post


Link to post
Share on other sites
52 minutes ago, Grizzly said:

@andyp по моим измерениям, где-то при 24 дБ BLER для самих высоких MCS на уровне 0,01 и ниже. При 20 около порогового значения 0,1. Это с QAM-64. Оценка ОСШ может быть занижена, так как делается уже в частотной области после синхронизации.

С QAM-16 где-то при 16 дБ приличное качество приёма.

Материалы по BLER для MCS я видел для LTE. В 99% они получены, разумеется, для АБГШ-канала. Ещё сколько-то дБ потеряется из-за качества оценки передачи канала.

Я изначально за увеличение бюджета канала, чтобы гарантировать стабильность приема.

Вот тут интересные результаты в том числе для многолучевых каналов. Больше подобного не попадалось.

A Novel CQI Calculation Scheme in LTE-LTE-ASystems.pdf

Да все за увеличение бюджета, кто ж против-то?  Просто имхо, коррекция STO при пусть даже и 20 ppm (а это плохой клок по современным понятиям) начинает влиять там, где и так уже всё более-менее. Если SNR с учетом ICI от отсутствия компенсации STO насыщается на уровне >30 dB, то большого вреда для 64QAM нет.  CFO и оценка канала гораздо более важны имхо.

А оценка ОСШ конечно занижена. Там же уже вся остаточная ICI после коррекции CFO и шум оценки канала тоже там. Ну и шум STO тоже, разумеется.

Если Вы больше 30 dB там вообще хоть в проводе измеряете, я бы вообще уже  коррекцией STO не парился :)

 

PS Я когда про отсутствие коррекции писал, имел в виду только отсутствие ресамплера. Поднесущие докручивать всяко обязательно, тем или иным образом учитывая изменение наклона ФЧХ канала из-за STO.

 

 

 

Edited by andyp

Share this post


Link to post
Share on other sites
26 минут назад, andyp сказал:

 это плохой клок по современным понятиям)

Возможно, будет внешний опорный генератор с более низким ppm.

Безусловно, CFO и оценка делаются. Поднесущие тоже докручиваются.

Спасибо за помощь! Перепроверю сишную реализацию на предмет ошибок. В принципе оценки смещения на несколько отсчётов из-за плохого опорника выглядят верными, вдруг где-то со сдвигом окна ошибаюсь. Ну вот явно они в 2-3 отсчёта появляются постоянно. Если двигать на меньшую величину по сравнению с оценкой, то в итоге у меня окно уползало настолько, что приходилось пересинхронизироваться. При магических взятых от балды +/-5 результат получился чуть лучше честных оценок. Что несколько странно. Хорошо, что теперь не срывается ничего, как было в переданном мне проекте :)

Share this post


Link to post
Share on other sites

считайте, что частота несущей и частота отсчетов берутся от одной опоры

оценка cfo пересчитается в sto

Share this post


Link to post
Share on other sites
2 часа назад, FatRobot сказал:

оценка cfo пересчитается в sto

Только в случае дробной величины (в отсчётах) мне ничего с этой оценкой не сделать. У меня нет обратной связи с генератором. Дробную величину я и так подстрою по пилотам в частотной области, оценив фазовый сдвиг на каждой поднесущей.

Решил оставить, как прежде. Синхронизироваться с фреймом, длительность его 10 мс, а затем делать оценку сдвига по корреляции пилота во временной области каждый сабфрейм 1 мс. Если появилось больше одного отсчёта от ожидаемого положения, двигать окно, е следующий сабфрейм брать из буфера с учётом этого смещения. Опять же дробную величину исправлю поворотом фазы в частотной области, как уже говорил. Частотная компенсация CFO выполняется сразу для всего сабфрейма, то есть у пилотного символа скачка фазы не должно быть.

Share this post


Link to post
Share on other sites

что делать - интерполировать во временной области в dfe

насчет подстройки по пилотам: мне кажется вы не сможете разделить sto и channel mean delay, плюс, вероятно, вариации канала будут у вас переоценены

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

но вам конечно виднее

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now