Jump to content

    

KalashKS

Участник
  • Content Count

    245
  • Joined

  • Last visited

Community Reputation

0 Обычный

About KalashKS

  • Rank
    Местный

Recent Profile Visitors

2706 profile views
  1. ИХ может и должна влиять если она длиннее, чем ЦП. Почему у вас работает без ЦП пока понять не могу. В принипе, ваш результат воспроизводится моделированием с той лишь разницей, что у меня ЦП помогает убрать помеху, а у вас наоборот.
  2. Попробуйте округлять к ближайшему целому. Для этого перед отбросом младших бит сначала прибавляйте половину младшего (после округления) разряда.
  3. Правильно ли я понял, что без ЦП ухудшения MER не наблюдается? Вообще говоря, это странно. Судя по созвездию, наблюдаемая помеха синхронна символьной частоте. Иначе вместо полосок были бы круги. На мой взляд, это говорит о том, что есть ошибки в формировании или обработке сиганала. У вас на нулевой частоте на вход ОБПФ, подается ноль? Если да, проверьте округление на выходе ОБПФ и фильтра. Простое отбрасывание младших разрядов даст существенное смещение по постоянной составляющей, которое пройдя через трансформаторы должно дать наблюдаемый эффект.
  4. Совсем без них, может быть, и не получится. Просто их будет меньше. Строго не выводил, но по ощущениям МП-синхронизация по нескольким символам должна сводиться к усреднению корреляции и энергии: 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 Ложных пиков будет еще меньше.
  5. С чего вы это взяли? Даже при цифровом преобразовании частоты преобразователь не сбрасывается каждый символ. Он вообще не имеет представления о типе сигнала и границах символов в нем. Кстати, про синхронизацию по коротким префиксам. Оптимальный алгоритм, вообще говоря, требует учитывать энергию сигнала на интервале корреляции. Без этого учета ошибка синхронизации больше. А с короткими префиксами можно вообще получить ложные пики даже без шума. Алгоритм с учетом энергии выглядит примерно так. 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)
  6. Может быть, тогда все нормально и вы видите отклики от разных лучей в эфире.
  7. Код выше, как я понял, описывает согласованный фильтр с ИХ zc_time. Если он не дает выраженных пиков, то скорее всего дело в неправильной ИХ. Что касается поворотов по фазе от символа к символу, то они скорее всего вызваны остаточным частотным рассогласованием. Если при этом скачки большие, то можно предположить, что рассогласование кратно расстоянию между несущими. Тогда фаза будет поворачиваться на 2*pi*Ncp/Nfft*df, где df - относительное рассогласование.
  8. Этот эффект вызван случайностью модуля отсчетов сигнала, которая зашумляет корреляционный пик. Причем в окрестности максимума перекосы будут одинаковыми что для большого числа несущих, что для малого, вызывая одинаковую абсолютную ошибку синхронизации, но относительная ошибка при малом числе несущих будет больше. При наличии шума есть шанс вообще не увидель одиночный пик, поэтому если использовать усреднение по нескольким символам, то усреднаять надо саму АКФ, а не оценку начала символа. Если в пилотном символе последовательность Задова-Чу, то модуль отсчетов сигнала будет почти постоянным и дополнительной ошибки синхронизации появляться не должно.
  9. В предложенном мной варианте нормируется мощность сигнала. Средний квадрат равен единице (при амплитудах несущих, нормированных при помощи modnorm). Амплитуда сигнала распределена приблизительно по Релею, поэтому шанс выйти за тройку чуть больше 1e-4. Если выбросы вас устраивают, доделите еще на 3. Если нет, делите еще сильнее, или принимайте меры по ограничению пик-фактора.
  10. Если используется матлабовское IFFT, то надо домножить на корень из размера БПФ. А потом еще на корень из его отношения к числу используемых несущих.
  11. Из любопытсва глянул в матлабе. Для ФМ2 и АГБШ полубайтовый RS (8,4) выигрывает у 4-х Хэммингов примерно 0,5 дБ по PER 1e-4. А дальше, как написали выше, нужна конкретика про ваш канал и то, какие там ошибки.
  12. Все-таки наврал, вы правы. Исправляет 2 ошибки. Пойду вспоминать, как они работают. А по реализации на таких длинах, возможно, готовые блоки будут неоптимальны. Если тактовые частоты позволяют, табличное декодирование может быть лучшим вариантом.
  13. Если не вру, то должен быть код (8,4), укороченный из (15,11) с 4-хбитными символами и исправлением одной символьной ошибки. Можно сделать укороченный БЧХ (32,16) с исправлением двух битовых ошибок. Лучше будет, или хуже зависит от характера ошибок.
  14. На местном FTP можно поискать. А по поводу версий у меня есть гипотеза, что могут быть проблемы с лицензией, но я ее не проверял.