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

Устранение влияния длинного эха в COFDM

Не понял какой суммы? С H понятно что делать. Поэлементно инвертировать и умножить на выход fft. И дальше на демодулятор. А адаптивный фильтр какой? Типа LMS и где он находится ? До FFT ? И как его обучать?
не-не, простой коррекцией АЧХ и ФЧХ не обойтись, нужно именно компенсировать влияние эхо-сигнала, который является тем же самым сигналом что и передавался, только задержанным на dt и "умноженным" на H

 

у меня сейчас просто нет времени смоделировать весь процесс, хотя задачка очень интересная и важная

в двух словах:

для конца символа имеем Sx = S0*H0 + Se*He

где S0 - исходный сигнал, H0 - передаточная характеристика канала для сигнала

где Se - сигнал эха, He - передаточная характеристика эха

 

для повторения конца символа, где 5% остаток без эха: Sy = S0*H0

 

 

Sx = S0*H0 + Se*He

Sy = S0*H0

 

Se*He - (Sx - Sy) = 0

 

Se = S0(-dT)

S0(-dT)*H` - (Sx - Sy) = err

 

необходимо обучить H` для err => 0. сколько потребуется OFDM-символов зависит от С/Ш и уровня эха

h`(t) = h`(t-1) + err*k;

 

 

Sx и Sy - это, соотв, 5% фрагменты символа, которые повторяется в конце, т.е. Sx - с эхом, Sу - без

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


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

Все должно работать!

 

1) Не 1/4 поднесущих полностью обнулится а гораздо меньшее количество, естественно

подразумевается что SNR очень велик.

 

2) FEC 1/2 модуляция QPSK.

 

Здесь код

channel_estimator.zip

 

2 Fast.

 

Т.е. Вы предлагаете построить линейный фильтр который выделит эхо и потом это эхо вычесть из сигнала?

В этом случае ничего хорошего не получится. Что будет представлять из себя АЧХ такого фильтра? Это будет

что-то вроде инверсии AЧХ канала. Соответственно если в спектре нули ....

 

 

 

post-17030-1323440748_thumb.png

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


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

у меня сейчас просто нет времени смоделировать весь процесс, хотя задачка очень интересная и важная

в двух словах:

для конца символа имеем Sx = S0*H0 + Se*He

где S0 - исходный сигнал, H0 - передаточная характеристика канала для сигнала

где Se - сигнал эха, He - передаточная характеристика эха

 

для повторения конца символа, где 5% остаток без эха: Sy = S0*H0

 

 

Sx = S0*H0 + Se*He

Sy = S0*H0

 

Se*He - (Sx - Sy) = 0

 

Se = S0(-dT)

S0(-dT)*H` - (Sx - Sy) = err

 

необходимо обучить H` для err => 0. сколько потребуется OFDM-символов зависит от С/Ш и уровня эха

h`(t) = h`(t-1) + err*k;

 

Sx и Sy - это, соотв, 5% фрагменты символа, которые повторяется в конце, т.е. Sx - с эхом, Sу - без

Возможно я не совсем корректно выразился, но эхо в сигнале присутствует всегда.

 

post-14809-1323670543_thumb.png

 

Поэтому на этих 5% это будет не чистый сигнал - а сумма основного и эхо сигналов одного символа (Si). А на 95% - сумма разных символов - основной сигнал символ Si+1, эхо-сигнал символ Si.

Т.е. частотная характеристика этих 5% защитного интервала не будет отличатся от частотной характеристики в самом символе.

Изменено пользователем Wasja

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


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

Т.е. Вы предлагаете построить линейный фильтр который выделит эхо и потом это эхо вычесть из сигнала?

В этом случае ничего хорошего не получится. Что будет представлять из себя АЧХ такого фильтра? Это будет

что-то вроде инверсии AЧХ канала. Соответственно если в спектре нули ....

это будет линейный фильтр, через который пропускается S(t-dT), и вычитается из S(t)

S`(t) = S(t) - S(t-dT)*H`

будет ли это "что-то вроде инверсии АЧХ канала" - сомневаюсь

 

 

Поэтому на этих 5% это будет не чистый сигнал - а сумма основного и эхо сигналов одного символа (Si). А на 95% - сумма разных символов - основной сигнал символ Si+1, эхо-сигнал символ Si.

Т.е. частотная характеристика этих 5% защитного интервала не будет отличатся от частотной характеристики в самом символе.

тогда нужен другой критерий для минимизации ошибки. например, С/Ш.

точную эхо-задержку можно найти по АКФ

далее решать

S`(t) = S(t) - S(t-dT)*h`

snr->max

 

решение где-то рядом, только надо упорно ковырять

 

p.s.

Wasja , Вы уже попробовали способ , предложенный alex_os ?

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


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

это будет линейный фильтр, через который пропускается S(t-dT), и вычитается из S(t)

S`(t) = S(t) - S(t-dT)*H`

 

Я правильно понимаю что?

S(t) - принятый сигнал

S'(t) - oценка эха.

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


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

Я правильно понимаю что?

S(t) - принятый сигнал

S'(t) - oценка эха.

S(t) - принятый сигнал

S'(t) - очищенный от эха

S(t-dT)*H` - оценка эха

 

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


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

S(t) - принятый сигнал

S'(t) - очищенный от эха

S(t-dT)*H` - оценка эха

 

Хорошо, в спектральной области имеем на входе канала имеем Sx(jw)

На выходе канала S(jw) = Sx(jw)*(1+exp(-1jw*delay)), тогда

H(jw) = Sx(jw) * exp(-1jw*delay) / S(jw) = exp( -1j*w*delay ) / ( 1+exp(-1j*w*delay) ).

 

Так, что деление на числа близкие к нулю будет присутствовать в том или ином месте :).

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


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

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

т.е. это уже совсем другая проблема

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


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

ну и что, в радиоканале вечная проблема вытянуть спектральные нули. просто не надо делить на ноль :)

т.е. это уже совсем другая проблема

Т.е Вы настаиваете на том, что возможен другой, лучший чем традиционный способ декодированая OFDM :) ?

 

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


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

Wasja , Вы уже попробовали способ , предложенный alex_os ?

В процессе. Но при QAM-64 результат не радует.

Прикидываю возможность повышения точности при усреднении частотных оценок.

 

Для 2k-точек (используется 1705 несущих), режим модуляции QPSK после второго исправления получается такая картинка, длина эха 0,95 защитного интервала:

post-14809-1323680320_thumb.png

(синий - реальная составляющая спектра, красный - мнимая).

 

При меньших сдвигах эха - картинки получаются красивее.

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


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

В процессе. Но при QAM-64 результат не радует.

 

При меньших сдвигах эха - картинки получаются красивее.

 

А Вы звездочку так нарисуйте нагляднее будет.

        plot(x, 'х');

 

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

999.pdf

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


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

А Вы звездочку так нарисуйте нагляднее будет.

Можно и звездочку:

post-14809-1323685170_thumb.png

 

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

Дойдет время и до оценки, пока бы функционал проверить...

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


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

Хорошо, в спектральной области имеем на входе канала имеем Sx(jw)

На выходе канала S(jw) = Sx(jw)*(1+exp(-1jw*delay)), тогда

H(jw) = Sx(jw) * exp(-1jw*delay) / S(jw) = exp( -1j*w*delay ) / ( 1+exp(-1j*w*delay) ).

По-моему вернее так:

H(jw) = S(jw) / Sx(jw) = Sx(jw)*(1+exp(-1jw*delay)) / Sx(jw) = 1+exp(-1jw*delay)

Исправление тогда будет осуществляться по формуле:

Sx(jw) = S(jw) / H(jw) = S(jw) / ( 1+exp(-1j*w*delay) )

Соотвественно, точность такого исправления целиком и полностью будет зависеть от точности определения "delay" - небольшой сдвиг даст нелинейные искажения.

К тому же вопрос как такое исправление поведет себя при наличии нескольких эхо сигналов (меньшей мощности).

 

Так, что деление на числа близкие к нулю будет присутствовать в том или ином месте :).

Да, они везде вылазят. :fman:

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


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

По-моему вернее так:

H(jw) = S(jw) / Sx(jw) = Sx(jw)*(1+exp(-1jw*delay)) / Sx(jw) = 1+exp(-1jw*delay)

Исправление тогда будет осуществляться по формуле:

Sx(jw) = S(jw) / H(jw) = S(jw) / ( 1+exp(-1j*w*delay) )

Соотвественно, точность такого исправления целиком и полностью будет зависеть от точности определения "delay" - небольшой сдвиг даст нелинейные искажения.

К тому же вопрос как такое исправление поведет себя при наличии нескольких эхо сигналов (меньшей мощности).

 

 

Да, они везде вылазят. :fman:

 

Все правильно, природу не обманешь!

Если какая-то несущая в результате фединга просела глубоко под шум, то никак

ее не восстановить. Остается только правильно посчитать значения мягких метрик

для данной несущей, чтобы влияние ее на процесс декодирования ПУ кода, было не велико.

 

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


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

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

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

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

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

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

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

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

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

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