Как мягко декодировать 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)
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.