Перейти к содержанию
    

Ошибки при синхронизации OFDM по циклическому префиксу

Прошу прощения, а правильно я понимаю, что ЦП - это когда в начале и конце символа передаются 160 (в конкретном случае) сэмплов сигнала? Если так, то должна быть автокорреляция между ними, причем слабо чувствительная к отстройке по несущей частоте.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 часов назад, GenaGenin сказал:

Прошу прощения, а правильно я понимаю, что ЦП - это когда в начале и конце символа передаются 160 (в конкретном случае) сэмплов сигнала? Если так, то должна быть автокорреляция между ними, причем слабо чувствительная к отстройке по несущей частоте.

При честных 160 различных отсчетах это так. Сейчас я работаю с минимальной полосой LTE, там 9 или 10 отсчетов. Оверсемплинг в 16 раз тут не помощник. Вдобавок влияние канала.

Странно, конечно, что для Задова-Чу такое влияние частоты. Надо ещё перепроверить себя, а то вчера утверждал, что ошибка по частоте мала...

В любом случае где-то на ±2 или ±3 целых частоты надо делать проверку. Но тут как бы не вышла змея, кусающая себя за хвост, когда частотная синхронизация требует временную, которая очень плоха без компенсации частотной расстройки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нашлась дурацкая ошибка. Я не "тянул" фазу на сабфрейме. То есть у меня для каждого из 7 OFDM-символов умножение на комплексную экспоненту начиналось с нулевой фазы... Это, конечно, не отменяет факта, что надо еще компенсировать IFO, но с дробной частью был косячок.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хотя это странное явление с фазой. По логике на каждом OFDM-символе начальная фаза начинается с нуля. В моем случае как будто аналоговым образом формировался сигнал, где фаза от символа к символу продолжает бежать. Любопытно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

С чего вы это взяли? Даже при цифровом преобразовании частоты преобразователь не сбрасывается каждый символ. Он вообще не имеет представления о типе сигнала и границах символов в нем.

 

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

signal=exp(1i*pi/2*randi(4,128,100));
signal=ifft(signal);
signal=[signal(120:128,:);signal];
signal=reshape(signal,1,numel(signal));
Correlation=(filter(ones(9,1),1,conj(signal(1:end-128)).*signal(129:end)));
Energy=(filter(ones(9,1),1,abs(signal(1:end-128)).^2+abs(signal(129:end)).^2))/2;
plot(abs(Correlation)-Energy)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

53 минуты назад, KalashKS сказал:

С чего вы это взяли?

Почему-то так казалось. Был неправ.

 

Спасибо за код. Попробую. Вчера МП-алгоритм запускал (https://www.mathworks.com/matlabcentral/fileexchange/33299-ml-estimation-of-timing-and-cfo-in-ofdm-systems), видел ложные пики на коротком ЦП даже на сигнале без шума.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Совсем без них, может быть, и не получится. Просто их будет меньше.

Строго не выводил, но по ощущениям МП-синхронизация по нескольким символам должна сводиться к усреднению корреляции и энергии:

Correlation_mean=zeros(1,numel(Correlation)-3*137);
Energy_mean=zeros(1,numel(Correlation)-3*137);
for k=0:3,
    Correlation_mean=Correlation_mean+Correlation(k*137+(1:numel(Correlation_mean)));
    Energy_mean=Energy_mean+Energy(k*137+(1:numel(Energy_mean)));
end

Ложных пиков будет еще меньше.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А, понял свою ошибку. У меня нет пилотных вставок в OFDM-символах с данными, поэтому я должен вести фазу без разрывов от символа с последовательностью Задова-Чу, по которой определена АЧХ канала. Когда я начинал фазу считать с нуля в начале каждого OFDM-символа, то происходил её скачок. Без опорных пилотов поворот созвездия из-за скачка не устранить. Можно в принципе по решениям довернуть, но хотелось бы проще. Продолжая компенсировать фазу без разрыва и затем доворачивая созвездие оценкой канала, получаю его правильное положение.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...