Как мягко декодировать DQPSK?

9

Я успешно мягко декодирую D-BPSK, взяв точечное произведение положения созвездия символа и предыдущего символа. Если результат> = 1, то фаза символа не изменилась и бит равен нулю. Если результат <= -1, то фаза сместилась и результат равен единице. В диапазоне от -1 до 1 результатом является мягкий 0 или мягкий 1.

Я не могу понять, как сделать то же самое с D-QPSK. Я могу использовать только фазу, но это отбрасывает много информации, которая может помочь софт-декодеру.

Эта статья объясняет, как это сделать, и дает формулу (10):

б1знак равноре{sNsN-1*},б2знак равноям{sNsN-1*}

Но я не понимаю обозначения - что означает *плавающее выше? Я пытался просто умножить комплексные числа и взять реальные и мнимые части, но это не сработало.

Поскольку созвездие может вращаться, как можно разделить две оси?

Дэн Сандберг
источник
Можете ли вы добавить математику, которую вы используете для «точечного произведения созвездия символа и предыдущего символа».
user2718
Конечно, это: last_symbol.real cur_symbol.real + last_symbol.imag cur_symbol.imag
Дан Сандберг
К сожалению, биты данных и b 2 не могут быть оценены с использованием формулы (10), приведенной выше. В DQPSK один из R e { s n s n - 1 } и I m { s n s n - 1 } большой по величине, а другой небольшой по величине. Какой из них имеет большую величину, говорит вам, будут ли биты данных работать как один из { 00 , 11 }б1б2 ре{sNsN-1*}ям{sNsN-1*}{00,11}или один из . Знак большого масштаба говорит вам , какой из одного из двух вариантов является правильным. То есть, большая величина говорит вам, какая пара дибитов, а знак говорит вам, какой из двух дибитов. {01,10}
Dilip Sarwate
@DilipSarwate, я получил приведенную выше формулу, но мне пришлось предварительно закодировать данные каким-то, казалось бы, произвольным образом, чтобы получить правильные результаты. То, как я его предварительно кодировал, может или не может быть эквивалентно: shf.de/communication/support/application_notes/getfile/230/269 Если я использую только большую величину, я не получаю информацию, подходящую для мягкого декодирования - поскольку 00 и 11 являются противоположными (а не смежными кодами), не имеет смысла иметь мягкую меру между ними. Возможно, я что-то пропустил? Должен ли я начать новый вопрос о прекодерах DQPSK?
Дэн Сандберг

Ответы:

5

Два последовательных символа в демодуляторе: Z1знак равно(Икс1,Y1) и Z2знак равно(Икс2,Y2) где Икс - выходной сигнал ветви I, а Y - выходной сигнал ветви Q приемника. Устройство принятия решения DBPSK для жесткого решения рассматривает вопрос:

Новый символ Z2 ближе к старому символу Z1 или к отрицательному -Z1 старого символа?

и таким образом сравнивает

(X2X1)2+(Y2Y1)2(X2+X1)2+(Y2+Y1)2

которое может быть упрощено до сравнения знака на Z1,Z2знак равноИкс1Икс2+Y1Y2 . Обратите внимание, что это по сути

Находятся ли два вектора Z1 и Z2 примерно в одном и том же направлении (в этом случае внутренний продукт или точечный продукт положительный) или в примерно противоположном направлении (в этом случае точечный продукт отрицательный)?

Третья точка зрения думает о Z1 и Z2 как о комплексных числах и спрашивает

Является ли ре(Z1Z2*)знак равноИкс1Икс2+Y1Y2 положительным или отрицательным?

Устройство принятия решения с мягким решением просто передает точное значение точечного произведения в декодер с мягким решением, который может выбрать квантование продуктов с точками, которые очень велики по величине, в жесткие решения и продолжать колебаться с остальными. Вот каково правило принятия решений, изложенное в вопросе ФП, где большое значение принимается за величину, превышающую 1 .

В DQPSK кодирование использует одно из двух соглашений:

  • фаза сигнала задерживается на 0,π/2,π,3π/2 соответствии с тем, что передаваемый дибит равен 00,01,11,10

  • фаза сигнала расширенный от 0,π/2,π,3π/2 в зависимости от того дибит, подлежащие передаче, 00,01,11,10

Следует отметить, что сигнал DQPSK не является суммой двух сигналов DBPSK, модулированных на фазово-ортогональных несущих, но биты I и Q совместно влияют на фазу чистой несущей.

Для демодуляции сигнала DQPSK устройство принятия решения должно запросить

Какой из четырех символов Z1,jZ1=(Y1,X1),Z1,jZ1=(Y1,X1) являетсяZ2 ближайшим к?

Таким образом, в дополнение к сравнению

(X2X1)2+(Y2Y1)2(Икс2+Икс1)2+(Y2+Y1)2

надо сравнивать

(Икс2+Y1)2+(Y2-Икс1)2(Икс2-Y1)2+(Y2+Икс1)2

что позволяет рассматривать Я(Z1Z2*) в дополнение к ре(Z1Z2*) и принимать решение о том, какая величина имеет наибольшую величину и знак наибольшей величины. Детали того, как декодер мягкого решения использует статистику решения Z1Z2*знак равно(ре(Z1Z2*),Я(Z1Z2*)) определит, как эти цифры в дальнейшем массируются.

Дилип Сарватэ
источник
Спасибо за очень сложный ответ, Дилип. Является ли опечатка? Должна ли она быть Z 1 , Z 2 ? И делает A , B обозначения среднего скалярного произведения? Z1,Z1Z1,Z2A,B
Дэн Сандберг
Ха, я имел в виду очень тщательный ответ! :)
Дэн Сандберг
Да, это опечатка, и я исправил это. обозначений обычно используются для обозначения скалярного произведения в целом из которых скалярного произведение представляет собой особый случай. A,B
Дилип Сарвэйт
если я смотрю только на то, какое количество имеет наибольшую величину, мне кажется, что я выбрасываю информацию. В качестве примера, мнимая часть определяет, будет ли поворот 0 или 180 градусов. Но мягкая мера между этими двумя значениями не имеет смысла, поскольку они не являются смежными вращениями (например, 0 и 90). Есть идеи, как получить более полезное программное декодирование? Бумага кажется вводящей в заблуждение, поскольку в ней утверждается, что первый бит - это действительная часть, а второй - мнимая часть.
Дэн Сандберг
3

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

Si=DiDi1

где и D i - 1 - два последовательных дифференциально-кодированных символа, а S i - дифференциально-декодированный результат. Эта общая формула будет работать для DBPSK или DQPSK (поскольку сигналы BPSK действительны, конъюгат просто выпадает). Результирующий поток сигналов S i лежит в том же созвездии, что и вход, поэтому вы можете принимать жесткие решения, используя те же правила, что и для обычного BPSK или QPSK.DiDi1SiSi

Джейсон Р
источник
Спасибо Джейсон. Я пробовал умножать на комплексное сопряжение перед публикацией, но я не знал, как интерпретировать результат. Поскольку я не знаю ротацию созвездия, как мне перейти к отображению, как я упоминал в вопросе для DBPSK?
Дэн Сандберг
Я посмотрел на результаты вашего предложения, и кажется, что воображаемая часть отображает поворот на 0 градусов или 180 градусов, в то время как реальная часть отображает поворот на 90 или 270 градусов. Когда данные чистые (без шума), одна часть (реальная или мнимая) равна 0, а другая - -1 или 1. Как я могу мягко декодировать это в биты, когда данные не чистые, а отображения не такие идеал?
Дэн Сандберг
Si=DiDi1
@DilipSarwate: Я мог бы быть более подробным в своем ответе, но если ваш дифференциальный кодер имеет функцию выдачи выходного символа с фазой, которая является суммой фаз его предыдущих двух входов, то аналогичная операция на декодере формировать различия в фазе последовательно полученных дифференциально-кодированных символов. Я мог бы объяснить это лучше, но у меня не было возможности вернуться к ответу, а может и нет, поскольку ваш ответ более подробный.
Джейсон Р
Re(Si)Im(Si)Re(Di)Im(Di)