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

Доброго дня! 

Есть декодер максимального правдоподобия для небольшого блочного кода. Перемножаю принятый пакет на весь алфавит декодера, смотрю какая последовательность ближе - принимаю решение. MLE в общем. 
В канале есть многолучевость, поэтому по известной последовательности оцениваю h канала. И использую эту h для свертки со всем алфавитом декодера, чтобы определить какая из последовательностей ближе к принятой, которая тоже искажена этой h. Вроде бы все работает.  

Но смущает одна вещь: когда я сворачиваю комплексную h канала (а там сильная многолучевость) с алфавитом декодера, хэммингово расстояние между последовательностями алфавита декодера уже не то. Если оригинальные последовательности довольно сильно отличаются друг от друга, то последовательности "смазанные" h канала становятся более похожими друг на друга. И периодически из-за этого декодер принимает неверное решение, даже при приличном SNR.   

Возникла дилемма: с одной стороны сворачивание h канала с последовательностями декодера дает малую задержку приема, так как приемного фильтра нет вовсе, но при этом декодер не так хорошо отличает последовательности и может ошибаться.  С другой стороны чтобы сохранить заложенное хэммингово расстояние между последовательностями декодера и хорошо их различать, надо исправлять исправлять многолучевость полноценным эквалайзером с DFE и инициацией по известной последовательности.  

Что выгоднее с точки зрения максимально достоверного приема? Задержкой можно немного поступиться. 
Или может я эквалайзер Витерби как-то неправильно реализую? 

 

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


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

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

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


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

Не очень понимаю что такое - решетка канала?    
Если это набор всех возможных передаваемых последовательностей, которые искажены оценкой канала по известной последовательности - то тогда я так и делаю. 

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


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

soldat_shveyk

Что выгоднее с точки зрения максимально достоверного приема? Задержкой можно немного поступиться. 
Эквалайзер Витерби и есть максимально правдоподобное оценивание последовательности символов с учётом памяти канала, по определению должен выигрывать у DFE.

Не очень понимаю что такое - решетка канала?

Канал играет роль свёрточного кодера.

Или может я эквалайзер Витерби как-то неправильно реализую?

Угу. Такие вещи - высший пилотаж, так наскоком эвристически правильно не сделать.

 

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


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

29 minutes ago, petrov said:

Угу. Такие вещи - высший пилотаж, так наскоком эвристически правильно не сделать.

Petrov, спасибо. Значит нет смысла городить огород с DFE, а стоит добивать эквалайзер Витерби. 

Канал - это сверточный кодер передаваемого сигнала с h.  Я могу оценить h по известной последовательности. 
Дальше вроде бы все логично: свернули с h c матрицей всех вариантов пакетов сигнала и посчитали метрики с принятым пакетом. 
Вот что здесь не так?  

Надо ли делать какое-то преобразование принятого пакета у учетом памяти канала перед тем как считать метрики с алфавитом декодера? 

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


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

soldat_shveyk

Petrov, спасибо. Значит нет смысла городить огород с DFE, а стоит добивать эквалайзер Витерби.

Может на DFE уйдёт месяц, а на Витерби год или вообще не получится.

Вот что здесь не так?

Вот декодируем свёрточный код с помощью Витерби, какие такие пакеты?

Надо ли делать какое-то преобразование принятого пакета у учетом памяти канала перед тем как считать метрики с алфавитом декодера?

В литературе пишут, требуется какой-то отбеливающий фильтр.

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


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

21 minutes ago, petrov said:

В литературе пишут, требуется какой-то отбеливающий фильтр.

А например в RLS-DFE разве не отбеливающий фильтр стоит?

Т.е. крутим матрицы чтобы получить белый шум...

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


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

34 minutes ago, petrov said:

Витерби год или вообще не получится.

Получится, никуда не денется. 

 

35 minutes ago, petrov said:

Вот декодируем свёрточный код с помощью Витерби, какие такие пакеты?

Пакет набор - набор символов блочного кода. Но можно ведь и по символам работать? Symbol-by-symbol. Тогда получается как декодирование сверточного кода. 

 

37 minutes ago, petrov said:

В литературе пишут, требуется какой-то отбеливающий фильтр.

Отбеливающий фильтр (witening filter) длиной равной памяти канала?   
Похоже да, что-то у меня все неправильно сделано. 
petrov, спасибо огромное! Хоть и говорите загадками :) Но Ваши советы как всегда ценны. 

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


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

Попадалсь мне такие книги Hanzo

ADAPTlVE WlRELESS TRANSCElVERS Turbo-Coded,  Turbo-Equalized  and  Space-Time  Coded TDMA,  CDMA and OFDM Systems,

Quadrature Amplitude Modulation : From Basics to Adaptive Trellis-Coded, Turbo- Equalized and Space-Time Coded OFDM, CDMA and MC-CDMA  Systems

посмотрите, может чем поможет)

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


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

1 hour ago, des00 said:

Попадалсь мне такие книги Hanzo

Спасибо, огромное! Уже скачал, изучу )

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


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

On 10/8/2021 at 6:07 PM, petrov said:

В литературе пишут, требуется какой-то отбеливающий фильтр.

Так получается, что принятый сигнал надо пропустить через фильтр обратный rrc-фильтру.  

Rx signal = tx_symbs * hrrc * h_channel (* - свертка) 

Импульсная характеристика rrc-фильтра передатчика нам известна. Попробовал поделить принятый сигнал на fft(h_rrc), чтобы сделать deconvolution - ничего не вышло )  
Спектр rrc-харатктеристики имеет нули и после    ifft(1/fft(hrrc)) получается черти что. 

Или все-таки надо во временной форме умножать сигнал на обратную импульсную характеристику rrc?

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


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

On 10/8/2021 at 4:15 PM, petrov said:

Эквалайзер Витерби и есть максимально правдоподобное оценивание последовательности символов с учётом памяти канала

А brute-force MMSE ведь может заменить Витерби? Я так понимаю, что Витреби эквалайзер выгоден когда длина памяти канала M намного меньше вариантов передаваемых последовательностей N? 
В GSM (самом частом примере использования Витерби) перебирать все варианты последовательностей нереально, а память канала довольно короткая. 
Допустим, есть ресурс на перебор всех N последовательностей. Тогда можно не тратить время на Learning to love the Trellis? 

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


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

soldat_shveyk

получается черти что.

Этот фильтр должен под канал подстраиваться, не делают DFE без линейной части.

Тогда можно не тратить время

Наоборот изобретение велосипеда и есть пустая трата времени, а сделать по литературе простейший эквалайзер Витерби для BPSK и известного короткого канала - продвижение вперёд, только потом может и получится применить для другого случая.

Если речь о модуляции с низкой плотностью передачи информации на герц, то там вообще можно всё сильно упростить за счёт формы сигнала устойчивой к искажениям.

 

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


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

17 minutes ago, petrov said:

Этот фильтр должен под канал подстраиваться

Если я правильно понимаю, АЧХ отбеливающего фильтра должна быть обратна АЧХ канала?  Вот с этим фильтром сейчас непонятнее всего. Пропустив через канал известную тестовую последовательность я получаю кросс-корреляцию которая представляет собой свертку автокорреляции последовательности и импульсной характеристики канала. Ryx = conv(Rxx,h)  
Отсюда я могу получить h канала. Вот как из нее сделать фильтр с обратной АЧХ, и при этом устойчивый?   Читаю книгу Прокиса - не доходит ( 
Отбеливающий фильтр ведь не представляет собой полностью обратную импульсную характеристику канала, а только какую-то ее часть (мин.фазовую) которая отвечает за компенсацию АЧХ?

После отбеливающего фильтра вроде бы все понятно - как использовать трелис для известного канала и BPSK я вроде разобрался. 

 

 

31 minutes ago, petrov said:

Наоборот изобретение велосипеда и есть пустая трата времени

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

 

 

33 minutes ago, petrov said:

можно всё сильно упростить за счёт формы сигнала устойчивой к искажениям

Вы имеете ввиду MMS-модуляцию?  У меня действительно низкая плотность бит/Гц. 
 

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


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

On 10/8/2021 at 10:56 AM, soldat_shveyk said:

В канале есть многолучевость, поэтому по известной последовательности оцениваю h канала. И использую эту h для свертки со всем алфавитом декодера, чтобы определить какая из последовательностей ближе к принятой, которая тоже искажена этой h. Вроде бы все работает. 

эээ... такой момент: Был алфавит (число состояний). Можно по аналогии ввести понятие "кодовое ограничение". Далее Вы сворачиваете с h канала. Пусть в h охватывает L символов. Получаем новое кодовое ограничение на L-1 символов больше. Вы так делали?

Или Вы применяете некое не являющееся MLSD упрощение? Короткую свёртку для получения первичных метрик, за которой уже идёт Витерби?

On 10/8/2021 at 6:07 PM, petrov said:

Может на DFE уйдёт месяц, а на Витерби год или вообще не получится.

Скорее с DFE может ничего не получиться. DFE работает в специфических случаях. У нас великие гуру Кловский с Николаевым из Самары уповали на DFE. Не сказал бы что вышло сопоставимо с вариантами без этого упования. 

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


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

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

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

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

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

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

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

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

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

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