GenaGenin 0 11 апреля, 2019 Опубликовано 11 апреля, 2019 · Жалоба Прошу прощения, а правильно я понимаю, что ЦП - это когда в начале и конце символа передаются 160 (в конкретном случае) сэмплов сигнала? Если так, то должна быть автокорреляция между ними, причем слабо чувствительная к отстройке по несущей частоте. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Grizzly 0 11 апреля, 2019 Опубликовано 11 апреля, 2019 · Жалоба 5 часов назад, GenaGenin сказал: Прошу прощения, а правильно я понимаю, что ЦП - это когда в начале и конце символа передаются 160 (в конкретном случае) сэмплов сигнала? Если так, то должна быть автокорреляция между ними, причем слабо чувствительная к отстройке по несущей частоте. При честных 160 различных отсчетах это так. Сейчас я работаю с минимальной полосой LTE, там 9 или 10 отсчетов. Оверсемплинг в 16 раз тут не помощник. Вдобавок влияние канала. Странно, конечно, что для Задова-Чу такое влияние частоты. Надо ещё перепроверить себя, а то вчера утверждал, что ошибка по частоте мала... В любом случае где-то на ±2 или ±3 целых частоты надо делать проверку. Но тут как бы не вышла змея, кусающая себя за хвост, когда частотная синхронизация требует временную, которая очень плоха без компенсации частотной расстройки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Grizzly 0 12 апреля, 2019 Опубликовано 12 апреля, 2019 · Жалоба Нашлась дурацкая ошибка. Я не "тянул" фазу на сабфрейме. То есть у меня для каждого из 7 OFDM-символов умножение на комплексную экспоненту начиналось с нулевой фазы... Это, конечно, не отменяет факта, что надо еще компенсировать IFO, но с дробной частью был косячок. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Grizzly 0 12 апреля, 2019 Опубликовано 12 апреля, 2019 · Жалоба Хотя это странное явление с фазой. По логике на каждом OFDM-символе начальная фаза начинается с нуля. В моем случае как будто аналоговым образом формировался сигнал, где фаза от символа к символу продолжает бежать. Любопытно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KalashKS 0 12 апреля, 2019 Опубликовано 12 апреля, 2019 · Жалоба С чего вы это взяли? Даже при цифровом преобразовании частоты преобразователь не сбрасывается каждый символ. Он вообще не имеет представления о типе сигнала и границах символов в нем. Кстати, про синхронизацию по коротким префиксам. Оптимальный алгоритм, вообще говоря, требует учитывать энергию сигнала на интервале корреляции. Без этого учета ошибка синхронизации больше. А с короткими префиксами можно вообще получить ложные пики даже без шума. Алгоритм с учетом энергии выглядит примерно так. 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) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Grizzly 0 12 апреля, 2019 Опубликовано 12 апреля, 2019 · Жалоба 53 минуты назад, KalashKS сказал: С чего вы это взяли? Почему-то так казалось. Был неправ. Спасибо за код. Попробую. Вчера МП-алгоритм запускал (https://www.mathworks.com/matlabcentral/fileexchange/33299-ml-estimation-of-timing-and-cfo-in-ofdm-systems), видел ложные пики на коротком ЦП даже на сигнале без шума. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KalashKS 0 12 апреля, 2019 Опубликовано 12 апреля, 2019 · Жалоба Совсем без них, может быть, и не получится. Просто их будет меньше. Строго не выводил, но по ощущениям МП-синхронизация по нескольким символам должна сводиться к усреднению корреляции и энергии: 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 Ложных пиков будет еще меньше. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Grizzly 0 12 апреля, 2019 Опубликовано 12 апреля, 2019 · Жалоба @KalashKS большое спасибо. В понедельник посмотрю на своих записях. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Grizzly 0 12 апреля, 2019 Опубликовано 12 апреля, 2019 · Жалоба А, понял свою ошибку. У меня нет пилотных вставок в OFDM-символах с данными, поэтому я должен вести фазу без разрывов от символа с последовательностью Задова-Чу, по которой определена АЧХ канала. Когда я начинал фазу считать с нуля в начале каждого OFDM-символа, то происходил её скачок. Без опорных пилотов поворот созвездия из-за скачка не устранить. Можно в принципе по решениям довернуть, но хотелось бы проще. Продолжая компенсировать фазу без разрыва и затем доворачивая созвездие оценкой канала, получаю его правильное положение. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться