|
bit log-likelihood ratio, Вычислить LLR каждого бита DQPSK |
|
|
|
Jul 15 2008, 10:20
|
Знающий
   
Группа: Свой
Сообщений: 521
Регистрация: 12-05-06
Пользователь №: 17 030

|
Цитата(sergvks @ Jul 15 2008, 10:24)  На входе имеется DQPSK сигнал, как правильно посчитать log-likelihood ratio для каждого бита в символе ? Не знаю что такое DQPSK, для QPSK с созвездием вида 00 01 10 11 llr битов кажется пропорционален вещественной (мнимой) части принятого символа.
--------------------
ну не художники мы...
|
|
|
|
|
Jul 15 2008, 18:05
|
Местный
  
Группа: Свой
Сообщений: 251
Регистрация: 26-07-05
Пользователь №: 7 117

|
Цитата(alex_os @ Jul 15 2008, 14:20)  Не знаю что такое DQPSK Имеется ввиду pi/4 dqpsk. В случае BPSK если не ошибаюсь для Binary Symmetric Channel (BSC): lratio = bsc_data==1 ? (1-error_prob) / error_prob : error_prob / (1-error_prob); для Additive White Gaussian Noise (AWGN) : lratio = exp(2*awn_data/(NoiseDev*NoiseDev)); А вот как быть с pi/4 dqpsk и с реальным сигналом, когда заранее при приёме символа неизвестна ни вероятность ошибки, ни уровень шума в канале не совсем понятно. ЗЫ В более общем случае нужна функция, которая по точкам на комплексной плоскости будет вычислять LLR для отдельных битов КАМ-созвездия.
|
|
|
|
|
Jul 16 2008, 06:09
|
Знающий
   
Группа: Свой
Сообщений: 521
Регистрация: 12-05-06
Пользователь №: 17 030

|
Цитата(sergvks @ Jul 15 2008, 22:05)  для Additive White Gaussian Noise (AWGN) : lratio = exp(2*awn_data/(NoiseDev*NoiseDev)); Похоже тут exp лишняя. Для BPSK, если мы приняли символ y, llr есть отношение условных вероятностей: Код llr = ln{ P(bit==1| y) / P(bit==0| y) } = ln{ p(y|bit==1) / p(y|bit==0) } = 2*y/NoiseDisp где p(y|bit==1) = exp(- (y - 1)^2/(2*NoiseDisp) ) - условная плотность вероятности, т.е. распределение y при условии что была передана 1 (подразумевается, что при отсутствии шума при передаче бита '1' мы видим y=1 при передаче, при '0' y = -1 ) NoiseDisp - дисперсия шума. P(bit==1| y) = P(bit==1)*p(y|bit==0) / P(y) - известная формула Байеса. Цитата(sergvks @ Jul 15 2008, 22:05)  А вот как быть с pi/4 dqpsk и с реальным сигналом, когда заранее при приёме символа неизвестна ни вероятность ошибки, ни уровень шума в канале не совсем понятно. из формулы выше видно что llr пропорционален сигналу на выходе согласованного фильтра и обратно пропорционален отношению сигнал \шум (snr), здесь подразумевается что мощность сигнала = 1. Т.е snr это общий масштабный множитель который ни на что не влияет. В практических приложениях важно знать какой бит был передан (т.е знак llr) а не вероятности нуля или единицы. Кормите этими llr например декодер витерби или там max-log-map декодер внутри которых llr просто суммируются, т.е. snr можно вынести за скобки  . В dqpsk меня смущает букофка d которая часто обозначает дифференциальное кодирование, можно конечно вывести формулу для llr qpsk c дифф кодированием, и llr будет зависеть еще от предидущего принятого символа, но ИМХО практической ценности это не представляет.. Цитата(sergvks @ Jul 15 2008, 22:05)  В более общем случае нужна функция, которая по точкам на комплексной плоскости будет вычислять LLR для отдельных битов КАМ-созвездия. Для кам точно выражение для llr будет весьма громоздкое, и от snr так легко отделаться не удастся, в некотором приближении для кам можно считать llr = abs(y - C0)^2 - abs(y-C1)^2, C0 - ближайшая точка созвездия где нужный бит=0, C1 - ближайшая точка созвездия где нужный бит=1 зы где-то у меня валяется кусок классной книжки от Hanzo про FEc, попозже поищу и выложу на фтп.
--------------------
ну не художники мы...
|
|
|
|
|
Jul 16 2008, 09:39
|
Знающий
   
Группа: Свой
Сообщений: 521
Регистрация: 12-05-06
Пользователь №: 17 030

|
Цитата(sergvks @ Jul 16 2008, 11:15)  Сейчас жёсткое декодирование осуществляется дифференциальным методом: bit0 = (I[n-1]*Q[n]-Q[n-1]*I[n])>0; bit1 = (I[n-1]*I[n]+Q[n-1]*Q[n])>0; Т.е. значение бита определяется знаком выражения в скобках. Поэтому вопрос сводится к тому что надо сделать с этими выражениями, чтобы правильно работали эти самые декодер витерби или там max-log-map декодер. Вообще в правильных системах дифференциальное декодирование делают после FEC декодера а еще лучше чтобы вообще не было дифференциального. В конкретно случае Вы можете вполне честно считать что llr_bit0 = (I[n-1]*Q[n]-Q[n-1]*I[n]), llr_bit1 = (I[n-1]*I[n]+Q[n-1]*Q[n]); Интересно что за протокол такой передачи данных? Еще можно попытаться восстановить несущую + 1.5 дб.. 2 дб это даст.
--------------------
ну не художники мы...
|
|
|
|
|
Jul 17 2008, 05:49
|
Местный
  
Группа: Свой
Сообщений: 251
Регистрация: 26-07-05
Пользователь №: 7 117

|
Вообще то я немного неправильно написал - это не декодирование, а демодуляция (это не протокол, а вид модуляции используется в системах связи TETRA, APCO25, DAMPS). То что когерентный приём даёт выигрыш в 1-2 дб я в курсе. Т.к. в TDMA системах размер кадра сравнительно мал, когерентный практически не используется. Цитата(alex_os @ Jul 16 2008, 13:39)  В конкретно случае Вы можете вполне честно считать что llr_bit0 = (I[n-1]*Q[n]-Q[n-1]*I[n]), llr_bit1 = (I[n-1]*I[n]+Q[n-1]*Q[n]); В данный момент я так и делаю, просто мне необходимо знать насколько это корректно.
|
|
|
|
|
Jul 17 2008, 17:33
|
Знающий
   
Группа: Свой
Сообщений: 521
Регистрация: 12-05-06
Пользователь №: 17 030

|
Цитата(sergvks @ Jul 17 2008, 09:49)  Вообще то я немного неправильно написал - это не декодирование, а демодуляция (это не протокол, а вид модуляции используется в системах связи TETRA, APCO25, DAMPS). То что когерентный приём даёт выигрыш в 1-2 дб я в курсе. Т.к. в TDMA системах размер кадра сравнительно мал, когерентный практически не используется. В данный момент я так и делаю, просто мне необходимо знать насколько это корректно. Ну наверняка есть или пилоты или преамбула, ловите их и используете когерентный. Еще раньше попадалось куча статей , где для демодуляции дифференциальной psk решение принималось на по двум символам а по нескольким, я сам правда не пробовал такое делать, может кто-нибудь здесь скажет что-нибудь умное по этому поводу...
--------------------
ну не художники мы...
|
|
|
|
|
Jul 17 2008, 17:40
|
Участник

Группа: Участник
Сообщений: 29
Регистрация: 23-07-07
Пользователь №: 29 319

|
Цитата(alex_os @ Jul 17 2008, 21:33)  Ну наверняка есть или пилоты или преамбула, ловите их и используете когерентный. Еще раньше попадалось куча статей , где для демодуляции дифференциальной psk решение принималось на по двум символам а по нескольким, я сам правда не пробовал такое делать, может кто-нибудь здесь скажет что-нибудь умное по этому поводу... Можно хотя бы примерные названия статей?
|
|
|
|
|
Jul 17 2008, 19:37
|
Знающий
   
Группа: Свой
Сообщений: 521
Регистрация: 12-05-06
Пользователь №: 17 030

|
Цитата(furymaxx @ Jul 17 2008, 21:40)  Можно хотя бы примерные названия статей? примерно искать гуглом DQPSK detection multiple symbol
--------------------
ну не художники мы...
|
|
|
|
|
Jul 18 2008, 06:00
|
Местный
  
Группа: Свой
Сообщений: 251
Регистрация: 26-07-05
Пользователь №: 7 117

|
Цитата(alex_os @ Jul 17 2008, 21:33)  Ну наверняка есть или пилоты или преамбула, ловите их и используете когерентный. Еще раньше попадалось куча статей , где для демодуляции дифференциальной psk решение принималось на по двум символам а по нескольким, я сам правда не пробовал такое делать, может кто-нибудь здесь скажет что-нибудь умное по этому поводу... Дело в том что это радиоканал и для когерентного приёма необходимо подстраивать гетеродин приёмника, например, в спутниковом канале идёт сплошной поток данных и подстроить фазу нет проблем, а здесь время передачи кадра порядка десятка мс и как в этом случае сделать когерентный приём на AD9874 лично я не представляю, если кто научит, буду очень рад.
|
|
|
|
|
Jul 18 2008, 09:51
|
Знающий
   
Группа: Свой
Сообщений: 521
Регистрация: 12-05-06
Пользователь №: 17 030

|
Цитата(sergvks @ Jul 18 2008, 10:00)  Дело в том что это радиоканал и для когерентного приёма необходимо подстраивать гетеродин приёмника, например, в спутниковом канале идёт сплошной поток данных и подстроить фазу нет проблем, а здесь время передачи кадра порядка десятка мс и как в этом случае сделать когерентный приём на AD9874 лично я не представляю, если кто научит, буду очень рад. А зачем Вам гетеродин дергать? В цифре фазу несущей и доворачивайте, как нужно. Главное чтобы сигнал в полосу приемника пролез без искажений и при оцифровке наложений не было...
--------------------
ну не художники мы...
|
|
|
|
|
Jul 18 2008, 16:16
|
Участник

Группа: Участник
Сообщений: 29
Регистрация: 23-07-07
Пользователь №: 29 319

|
Цитата(alex_os @ Jul 17 2008, 23:37)  Спасибо. Еще вопрос: является ли это llr_bit0 = (I[n-1]*Q[n]-Q[n-1]*I[n]), llr_bit1 = (I[n-1]*I[n]+Q[n-1]*Q[n]) именно логарифмическим отношением правдоподобия?
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|