soldat_shveyk 2 22 сентября, 2020 Опубликовано 22 сентября, 2020 · Жалоба Доброго дня! Пытаюсь получить импульсную характеристику канала связи с QPSK модуляцией. Хочу получить картину многолучевости и исправить ее. Для простоты считаю, что переданные данные мне известны. На приеме добавляю второй луч, задержанный на X отсчетов. Делаю ifft( fft(Rx) / fft(Tx) ) - четко вижу импульсную характеристику канала. Но если присутствует уход частоты, то я получаю уже комплексные коэффициенты импульсной характеристики, которые повернуты по фазе. И на этом застрял, не понимаю куда двигать дальше. Убирать уход частоты из принятого сигнала, а потом удалять импульсную характеристику канала? Или же есть способ компенсировать многолучевость без предварительного удаления сдвига частоты? Модель приложил. P.S. Пока еще только въезжаю в тему многолучевости, с эквалайзерами дела не имел. Просьба с ходу в гугл не отправлять. Пытаюсь сразу что-то делать, так интереснее :) h_estimate_with_shift.m Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 23 сентября, 2020 Опубликовано 23 сентября, 2020 · Жалоба могу ошибаться, но мне всегда казалось что многолучевой канал, комплексный априори. разность хода лучей дает задержку по времени и разность фаз, а разность амплитуд получается из разных условий распространения. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
soldat_shveyk 2 23 сентября, 2020 Опубликовано 23 сентября, 2020 · Жалоба Это так, но я пока что в рамках более-менее примитивной модели хочу разобраться. Если добавляю в сигнал его копию, задержанную на 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]? Или же надо продолжать работать с теми комплексными коэффициентами которые получились из-за сдвига частоты? Моя цель - максимально достоверно оценивать ИХ канала и компенсировать ее в принимаемом сигнале. Что дельного можно почитать на эту тему? Желательно, максимально приближенное к практике. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
FatRobot 0 23 сентября, 2020 Опубликовано 23 сентября, 2020 · Жалоба Из свойств передаваемого сигнала, которые априори известны приемной стороне. Например из пилот-сигналов или синхрогрупп. 8 hours ago, soldat_shveyk said: Как при наличии ухода частоты получить реальную характеристику канала [1 0 0 0 0 0 0 0 0 0.5]? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 24 сентября, 2020 Опубликовано 24 сентября, 2020 · Жалоба 18 hours ago, soldat_shveyk said: Или же надо продолжать работать с теми комплексными коэффициентами которые получились из-за сдвига частоты? выполняете коррекцию CFO/CPO/STO, потом оцениваете, литературу не знаю, ее много, вам наверное что-то из литературы по синхронизации офдм подойдет Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
soldat_shveyk 2 28 сентября, 2020 Опубликовано 28 сентября, 2020 · Жалоба Спасибо! С этим разобрался. Довернул полученную импульсную характеристику на уход частоты и фазы, и получаю исходную и.х канала, которую и задавал в модели. Если известна импульсная характеристика канала, как ее компенсировать перед декодированием? Найти обратную импульсную характеристику и свернуть принимаемый сигнал с ней? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
petrov 6 28 сентября, 2020 Опубликовано 28 сентября, 2020 · Жалоба soldat_shveyk Найти обратную импульсную характеристику и свернуть принимаемый сигнал с ней? Усиливать шум - плохо. Из относительно простых известных способов - DFE, COFDM, но они так себе. Простых и хороших не существует. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 29 сентября, 2020 Опубликовано 29 сентября, 2020 · Жалоба 13 hours ago, soldat_shveyk said: Если известна импульсная характеристика канала, как ее компенсировать перед декодированием? Найти обратную импульсную характеристику и свернуть принимаемый сигнал с ней? у вас же все есть для этого, Z = S_rx./S_ref; а дальше фурье эквалайзер, самое простое. Правда есть немного тонкостей, но это мелочи. За ними в базовые книги по эквалайзированию 11 hours ago, petrov said: Усиливать шум - плохо. Из относительно простых известных способов - DFE, COFDM, но они так себе. Простых и хороших не существует. FDE +DFE относительно простой по вычислительной мощности и довольно неплохой по результатам. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
soldat_shveyk 2 29 сентября, 2020 Опубликовано 29 сентября, 2020 · Жалоба 19 hours ago, petrov said: Усиливать шум - плохо. Не очень понимаю: каким образом произойдет усиление шума? 7 hours ago, des00 said: FDE +DFE относительно простой по вычислительной мощности и довольно неплохой по результатам. То есть получив импульсную характеристику канала можно сделать коррекцию АЧХ через FDE. А после добавить DFE, опираясь результаты декодирования. А одним махом это не реализовать, если ИХ канала уже известна? 8 hours ago, des00 said: За ними в базовые книги по эквалайзированию Можете что-то конкретное рекомендовать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 30 сентября, 2020 Опубликовано 30 сентября, 2020 · Жалоба 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 либо ставить циклический префикс Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
petrov 6 30 сентября, 2020 Опубликовано 30 сентября, 2020 · Жалоба soldat_shveyk То есть получив импульсную характеристику канала можно сделать коррекцию АЧХ через FDE. А после добавить DFE, опираясь результаты декодирования. А одним махом это не реализовать, если ИХ канала уже известна? Самый простой вариант - совместно настраивать линейный эквалайзер и DFE по критерию MMSE по хорошей известной последовательности. ИХ канала знать не надо. А именно хороший эквалайзер работает с использованием известной ИХ грубо так: пропускаем через ИХ все возможные последовательности данных, сравниваем какая ближе к принятой, см. эквалайзер Витерби. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
soldat_shveyk 2 1 октября, 2020 Опубликовано 1 октября, 2020 · Жалоба 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 по хорошей известной последовательности. ИХ канала знать не надо. А именно хороший эквалайзер работает с использованием известной ИХ грубо так: пропускаем через ИХ все возможные последовательности данных, сравниваем какая ближе к принятой, см. эквалайзер Витерби. Спасибо! Попробую разобраться с этим. Кстати, а даст ли выигрыш эквалайзер при приеме блочного кода по максимальному правдоподобию? И если даст, то что можно ожидать примерно? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 1 октября, 2020 Опубликовано 1 октября, 2020 · Жалоба 33 minutes ago, soldat_shveyk said: Получается, что если лучи сложились в противофазе, и в данный момент времени на данной частоте получился ноль сигнала на выходе антенны, вытащить сигнал обратно методами ЦОС не получится. Что вполне логично :) Чтобы это исправить, надо ставить вторую антенну рядом. Как говорил знакомый гуру: "если в приемной антене нет мощности, то хоть какую обработку делай, ничего не поможет" 33 minutes ago, soldat_shveyk said: У меня как раз достаточно короткий блочный код. А как получить инверсную АЧХ? Если известна ИХ канала, то можно от нее получить обратную? Вы же уже ее получаете, вот ваш же код Z = S_rx./S_ref; только надо инвертировать для коррекции. Этот метод используется для начальной установки FDE эквалайзера перед адаптацией. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
petrov 6 1 октября, 2020 Опубликовано 1 октября, 2020 · Жалоба soldat_shveyk надо ставить вторую антенну рядом. Это очень хороший вариант, если можно сделать несколько приёмных каналов, и обеспечиваются некоррелированные замирания в антеннах, можно обойтись линейным MRC эквалайзером. Еще лучше если и предача разнесённая Alamouti STBC. Кстати, а даст ли выигрыш эквалайзер при приеме блочного кода по максимальному правдоподобию? И если даст, то что можно ожидать примерно? Без решения проблемы многолучевого распространения может вообще не работать, даже при хорошем отношении сигнал/шум, никакие коды не помогут. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
soldat_shveyk 2 13 июля, 2021 Опубликовано 13 июля, 2021 · Жалоба Доброго дня! Подниму старую тему по многолучевке. Так и не довел до конца в прошлом году, теперь уже точно надо добить :) В общем, идея следующая: по известной последовательности получаю импульсную характеристику канала, но чтобы не размножать шумы не делаю умножение сигнала на инверсную имп. характеристику. У меня сейчас довольно короткий блочный код, который я просто перебираю в MLE декодере. Соответственно, оценив h канала, я могу пропускать через нее все возможные варианты кода и сравнивать с принятым из канала пакетом. У кого меньше метрика - значит тот и передавался. Импульсная характеристика канала, которую я получил по известной последовательности, начинает устаревать, пока передаются данные а не training. Надо бы ее корректировать по результатам декодирования пакетов. Если у меня есть избыток вычислительной мощности, то я могу декодировать пакет не один раз, подстраивая коэффициенты ИХ канала, чтобы SNR улучшалось. То есть фактически делать эквалайзер. Получается не то что бы классическое решение. Вот не понятно: как подстраивать коэффициенты ИХ канала при каждой итерации декодирования? Допустим, мне не лень хоть 10 раз декодировать. Может я и велосипед изобретаю, но пробежался по выше перечисленным книгам по эквалайзированию, там ничего похожего не нашел. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться