Jump to content

    
Sign in to follow this  
Wasja

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

Recommended Posts

Не понял какой суммы? С 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у - без

Share this post


Link to post
Share on other sites

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

 

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

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

 

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

 

Здесь код

channel_estimator.zip

 

2 Fast.

 

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

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

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

 

 

 

post-17030-1323440748_thumb.png

Share this post


Link to post
Share on other sites
у меня сейчас просто нет времени смоделировать весь процесс, хотя задачка очень интересная и важная

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

для конца символа имеем 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% защитного интервала не будет отличатся от частотной характеристики в самом символе.

Edited by Wasja

Share this post


Link to post
Share on other sites
Т.е. Вы предлагаете построить линейный фильтр который выделит эхо и потом это эхо вычесть из сигнала?

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

что-то вроде инверсии 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 ?

Share this post


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

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

 

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

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

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

Share this post


Link to post
Share on other sites
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) ).

 

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

Share this post


Link to post
Share on other sites
Так, что деление на числа близкие к нулю будет присутствовать в том или ином месте :).
ну и что, в радиоканале вечная проблема вытянуть спектральные нули. просто не надо делить на ноль :)

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

Share this post


Link to post
Share on other sites
ну и что, в радиоканале вечная проблема вытянуть спектральные нули. просто не надо делить на ноль :)

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

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

 

Share this post


Link to post
Share on other sites
Wasja , Вы уже попробовали способ , предложенный alex_os ?

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

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

 

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

post-14809-1323680320_thumb.png

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

 

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

Share this post


Link to post
Share on other sites
В процессе. Но при QAM-64 результат не радует.

 

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

 

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

        plot(x, 'х');

 

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

999.pdf

Share this post


Link to post
Share on other sites
А Вы звездочку так нарисуйте нагляднее будет.

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

post-14809-1323685170_thumb.png

 

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

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

Share this post


Link to post
Share on other sites
Хорошо, в спектральной области имеем на входе канала имеем 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:

Share this post


Link to post
Share on other sites
По-моему вернее так:

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:

 

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

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

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

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

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this