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

Получение импульсной характеристики канала связи с QPSK

Доброго дня! 

Пытаюсь получить импульсную характеристику канала связи с QPSK модуляцией. Хочу получить картину многолучевости и исправить ее. 
Для простоты считаю, что переданные данные мне известны.  На приеме добавляю второй луч, задержанный на X отсчетов. 
Делаю ifft( fft(Rx) / fft(Tx) ) - четко вижу импульсную характеристику канала. 
Но если присутствует уход частоты, то я получаю уже комплексные коэффициенты импульсной характеристики, которые повернуты по фазе. И на этом застрял, не понимаю куда двигать дальше.
Убирать уход частоты из принятого сигнала, а потом удалять импульсную характеристику канала? Или же есть способ компенсировать многолучевость без предварительного удаления сдвига частоты? 
Модель приложил. 

P.S. Пока еще только въезжаю в тему многолучевости, с эквалайзерами дела не имел. Просьба с ходу в гугл не отправлять. Пытаюсь сразу что-то делать, так интереснее :)       
 

h_estimate_with_shift.m

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


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

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

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


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

Это так, но я пока что в рамках более-менее примитивной модели хочу разобраться. 
Если добавляю в сигнал его копию, задержанную на 10 отсчетов, и умноженную на 0.5, то это эквивалентно тому, что я пропустил сигнал через фильтр с импульсной характеристикой [1 0 0 0 0 0 0 0 0 0.5].
При отсутствии ухода частоты, после ifft( fft(Rx) / fft(Tx) ) я получаю точно коэффициенты  [1 0 0 0 0 0 0 0 0 0.5]. 
Если в добавить уход частоты, то уже получается импульсная характеристика, повернутая по фазе типа [0.8-j0.3 0 0 0 0 0 0 0 0 0 0.4+j0.2]. 

Как при наличии ухода частоты получить реальную характеристику канала [1 0 0 0 0 0 0 0 0 0.5]?
Или же надо продолжать работать с теми комплексными коэффициентами которые получились из-за сдвига частоты?
Моя цель - максимально достоверно оценивать ИХ канала и компенсировать ее в принимаемом сигнале. 
Что дельного можно почитать на эту тему? Желательно, максимально приближенное к практике. 

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


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

Из свойств передаваемого сигнала, которые априори известны приемной стороне.

Например из пилот-сигналов или синхрогрупп.

8 hours ago, soldat_shveyk said:

Как при наличии ухода частоты получить реальную характеристику канала [1 0 0 0 0 0 0 0 0 0.5]?

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


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

18 hours ago, soldat_shveyk said:

Или же надо продолжать работать с теми комплексными коэффициентами которые получились из-за сдвига частоты?

выполняете коррекцию CFO/CPO/STO, потом оцениваете, литературу не знаю, ее много, вам наверное что-то из литературы по синхронизации офдм подойдет

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


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

Спасибо! С этим разобрался. Довернул полученную импульсную характеристику на уход частоты и фазы, и получаю исходную и.х канала, которую и задавал в модели.
Если известна импульсная характеристика канала, как ее компенсировать перед декодированием? 
Найти обратную импульсную характеристику и свернуть принимаемый сигнал с ней? 


 

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


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

soldat_shveyk

Найти обратную импульсную характеристику и свернуть принимаемый сигнал с ней?

Усиливать шум - плохо. Из относительно простых известных способов - DFE, COFDM, но они так себе. Простых и хороших не существует.

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


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

13 hours ago, soldat_shveyk said:

Если известна импульсная характеристика канала, как ее компенсировать перед декодированием? 
Найти обратную импульсную характеристику и свернуть принимаемый сигнал с ней?

у вас же все есть для этого,

Z = S_rx./S_ref;

а дальше фурье эквалайзер, самое простое. Правда есть немного тонкостей, но это мелочи. За ними в базовые книги по эквалайзированию

11 hours ago, petrov said:

Усиливать шум - плохо. Из относительно простых известных способов - DFE, COFDM, но они так себе. Простых и хороших не существует.

FDE +DFE относительно простой по вычислительной мощности и довольно неплохой по результатам.

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


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

19 hours ago, petrov said:

Усиливать шум - плохо.

Не очень понимаю:  каким образом произойдет усиление шума?

 

 

7 hours ago, des00 said:

FDE +DFE относительно простой по вычислительной мощности и довольно неплохой по результатам.

То есть получив импульсную характеристику канала можно сделать коррекцию АЧХ через FDE. А после добавить DFE, опираясь результаты декодирования. 
А одним махом это не реализовать, если ИХ канала уже известна?
 

 

8 hours ago, des00 said:

За ними в базовые книги по эквалайзированию

Можете что-то конкретное рекомендовать? 

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


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

14 hours ago, soldat_shveyk said:

Не очень понимаю:  каким образом произойдет усиление шума?

Многолучевка это частотно-селективное замирание, выглядит как спектральный ноль. Когда вы будете выравнивать это искажение, вы будете вытягивать этот спектральный ноль, разгоняя шум. Иными словами, положим у вас есть система работащая при сигнал шуме 0. При замирании 20дб, если у вас нет в канале сигнал шума 20, система работать не будет. Естественно речь про одну несущую.

Quote

То есть получив импульсную характеристику канала можно сделать коррекцию АЧХ через FDE. А после добавить DFE, опираясь результаты декодирования. 
А одним махом это не реализовать, если ИХ канала уже известна?

Ну DFE сложно добавить после декодера, т.к. большая задержка на декодирование. Хороший код блочный, накопили, декодировали, скорректировали, снова декодировали. Как-то сложновато ИМХО. ЧХ канала у вас же уже есть, умножаете на инверсную и все. Но, как показывает практика, этого недостаточно. Почему, мне мозгов не хватает сформулировать, но чувствую что авторы правы)

Quote

Можете что-то конкретное рекомендовать? 

Книги по адаптивной обработке, но они об общем, но у Сайеда есть тонкости и детали. 

adaptive_filter_theory__3ed__-_haykin

adaptive_filtering_-_algorithms_and_practical_implementation_-_diniz

adaptive_filters_-_ali_h_sayed

Хотя наверное они уже устарели.

ЗЫ. В самом матлабе хорошая подборка по эквалайзированию кстати

ЗЗЫ. Еще интересная тема турбоэквалайзеры, но я в ней как свинья в апельсинах, знаю только на пальцах

PPPPS. еще учтите что для FDE нужно выполнение условий линейной свертки, либо делать overlap-add/save либо ставить циклический префикс

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


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

soldat_shveyk

То есть получив импульсную характеристику канала можно сделать коррекцию АЧХ через FDE. А после добавить DFE, опираясь результаты декодирования. 
А одним махом это не реализовать, если ИХ канала уже известна?

Самый простой вариант - совместно настраивать линейный эквалайзер и DFE по критерию MMSE по хорошей известной последовательности. ИХ канала знать не надо.

А именно хороший эквалайзер работает с использованием известной ИХ грубо так: пропускаем через ИХ все возможные последовательности данных, сравниваем какая ближе к принятой, см. эквалайзер Витерби.

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


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

On 9/30/2020 at 5:57 AM, des00 said:

Многолучевка это частотно-селективное замирание, выглядит как спектральный ноль.

Получается, что если лучи сложились в противофазе, и в данный момент времени на данной частоте получился ноль сигнала на выходе антенны, вытащить сигнал обратно методами ЦОС не получится. Что вполне логично :) Чтобы это исправить, надо ставить вторую антенну рядом. 
 

On 9/30/2020 at 5:57 AM, des00 said:

Хороший код блочный, накопили, декодировали, скорректировали, снова декодировали. Как-то сложновато ИМХО. ЧХ канала у вас же уже есть, умножаете на инверсную и все

У меня как раз достаточно короткий блочный код. А как получить инверсную АЧХ? Если известна ИХ канала, то можно от нее получить обратную? 
 

On 9/30/2020 at 5:57 AM, des00 said:

Книги по адаптивной обработке, но они об общем, но у Сайеда есть тонкости и детали.

Спасибо! Даже если они устарели, мне как начинающему в этой области, будет полезно с ними ознакомиться. 

 

 

On 9/30/2020 at 10:35 AM, petrov said:

Самый простой вариант - совместно настраивать линейный эквалайзер и DFE по критерию MMSE по хорошей известной последовательности. ИХ канала знать не надо.

А именно хороший эквалайзер работает с использованием известной ИХ грубо так: пропускаем через ИХ все возможные последовательности данных, сравниваем какая ближе к принятой, см. эквалайзер Витерби.

Спасибо! Попробую разобраться с этим. Кстати, а даст ли выигрыш эквалайзер при приеме блочного кода по максимальному правдоподобию? И если даст, то что можно ожидать примерно?

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


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

33 minutes ago, soldat_shveyk said:

Получается, что если лучи сложились в противофазе, и в данный момент времени на данной частоте получился ноль сигнала на выходе антенны, вытащить сигнал обратно методами ЦОС не получится. Что вполне логично :) Чтобы это исправить, надо ставить вторую антенну рядом. 

Как говорил знакомый гуру: "если в приемной антене нет мощности, то хоть какую обработку делай, ничего не поможет"

33 minutes ago, soldat_shveyk said:

У меня как раз достаточно короткий блочный код. А как получить инверсную АЧХ? Если известна ИХ канала, то можно от нее получить обратную? 

Вы же уже ее получаете, вот ваш же код

Z = S_rx./S_ref;

только надо инвертировать для коррекции. Этот метод используется для начальной установки FDE эквалайзера перед адаптацией.

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


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

soldat_shveyk

надо ставить вторую антенну рядом.

Это очень хороший вариант, если можно сделать несколько приёмных каналов, и обеспечиваются некоррелированные замирания в антеннах, можно обойтись линейным MRC эквалайзером. Еще лучше если и предача разнесённая Alamouti STBC.

Кстати, а даст ли выигрыш эквалайзер при приеме блочного кода по максимальному правдоподобию? И если даст, то что можно ожидать примерно?

Без решения проблемы многолучевого распространения может вообще не работать, даже при хорошем отношении сигнал/шум, никакие коды не помогут.

 

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


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

Доброго дня! 

Подниму старую тему по многолучевке. Так и не довел до конца в прошлом году, теперь уже точно надо добить :
В общем, идея следующая: по известной последовательности получаю импульсную характеристику канала, но чтобы не размножать шумы не делаю умножение сигнала на инверсную имп. характеристику. 
У меня сейчас довольно короткий блочный код, который я просто перебираю в MLE декодере. Соответственно,  оценив h канала, я могу пропускать через нее все возможные варианты кода и сравнивать с принятым из канала пакетом. У кого меньше метрика - значит тот и передавался.    

Импульсная характеристика канала, которую я получил по известной последовательности, начинает устаревать, пока передаются данные а не training. Надо бы ее корректировать по результатам декодирования пакетов. Если у меня есть избыток вычислительной мощности, то я могу декодировать пакет не один раз, подстраивая коэффициенты ИХ канала, чтобы SNR улучшалось. То есть фактически делать эквалайзер. 

Получается не то что бы  классическое решение.   Вот не понятно: как подстраивать коэффициенты ИХ канала при каждой итерации декодирования?   Допустим, мне не лень хоть 10 раз декодировать. 
Может я и велосипед изобретаю, но пробежался по выше перечисленным книгам по эквалайзированию, там ничего похожего не нашел. 

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


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

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

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

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

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

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

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

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

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

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