реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Мягкое декодирование кода Голея (24, 12, 8), Возможно ли? И какой профит может это дать?
soldat_shveyk
сообщение Sep 5 2018, 08:57
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 454
Регистрация: 3-07-07
Из: С-Петербург
Пользователь №: 28 859



Доброго дня!
Есть радиоканал с QPSK модуляцией, в котором использую расширенный код Голея длиной (24, 12, 8). Сейчас принимаю жесткое решение и декодирую Голея через перебор всех 4096 комбинаций с выбором по минимуму ошибок. Работает, исправляет до 4-х ошибок. Есть время и желание еще улучшить прием за счет мягкого декодирования. Что это может дать в конкретных цифрах, будет ли стоить игра свеч? И возможно ли в принципе мягкое декодирование для кода Голея?
Go to the top of the page
 
+Quote Post
x736C
сообщение Sep 5 2018, 09:47
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1 273
Регистрация: 3-03-06
Пользователь №: 14 942



Цитата(soldat_shveyk @ Sep 5 2018, 11:57) *
И возможно ли в принципе мягкое декодирование для кода Голея?
Возможно.

Цитата(soldat_shveyk @ Sep 5 2018, 11:57) *
Что это может дать в конкретных цифрах, будет ли стоить игра свеч?
Правильнее будет в матлабе набросать на стандартных функциях скрипт и посчитать выигрыш.

Погуглите по словам: extended Golay code soft decoding

https://ieeexplore.ieee.org/document/5450028/
https://pdfs.semanticscholar.org/a562/14de7...0425fd42d50.pdf
и т.п.
Go to the top of the page
 
+Quote Post
soldat_shveyk
сообщение Sep 5 2018, 10:25
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 454
Регистрация: 3-07-07
Из: С-Петербург
Пользователь №: 28 859



Цитата
Правильнее будет в матлабе набросать на стандартных функциях скрипт и посчитать выигрыш.

Вот именно это и хотелось бы сделать, чтобы сравнить с тем, что сейчас работает. Но для этого надо написать модель мягкого декодера. Написать не проблема, но алгоритм мне пока что не известен.
За ссылки спасибо, попробую скачать.

А может существуют хотя бы приблизительные оценки прироста SNR для мягкого декодирования блочного кода? Что-то типа для блочного кода 1/2 длиной 24 бита мягкое декодирование обеспечит выигрыш 2 дБ (ли 3, или 0.2). Было бы интересно.
Go to the top of the page
 
+Quote Post
Serg76
сообщение Sep 5 2018, 11:25
Сообщение #4


Профессионал
*****

Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775



Для кода Голея (24,12) алгоритм Чейза дает следующие характеристики

Алгоритмы 1 и 2:
Pb Eb/No, dB
1e-3 3,7
1e-4 4,7
1e-5 5,4

Алгоритм 3:
Pb Eb/No, dB
1e-3 4,3
1e-4 5,3
1e-5 6,0

Сравнивайте с вашим жестким декодером
Go to the top of the page
 
+Quote Post
soldat_shveyk
сообщение Sep 5 2018, 11:37
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 454
Регистрация: 3-07-07
Из: С-Петербург
Пользователь №: 28 859



Serg76, спасибо огромное!!!
Сейчас сравню со своим декодером при SNR 6дБ.

А как Вы это посчитали? Ткните в источник, если не трудно.
Go to the top of the page
 
+Quote Post
Serg76
сообщение Sep 5 2018, 11:44
Сообщение #6


Профессионал
*****

Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775



Кларк. Кодирование с исправлением ошибок в системах цифровой связи. стр.161, рис.4.8
Go to the top of the page
 
+Quote Post
soldat_shveyk
сообщение Sep 5 2018, 12:22
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 454
Регистрация: 3-07-07
Из: С-Петербург
Пользователь №: 28 859



Спасибо, скачал, изучаю.
Промоделировал свой декодер в мталабе, получил следующие цифры:
SNR 6 dB, BER = 2.5e-4
SNR 5 dB, BER = 1.7e-3
SNR 4 dB, BER = 1.1e-2
SNR 3 dB, BER = 2.4e-2
SNR 2 dB, BER = 5.7e-2
SNR 1 dB, BER = 1.1e-1
SNR 0 dB, BER = 1.4e-1

По сравнению с этим, алгоритм Чейза 1 и 2 дает неплохой профит. Попробую разобраться с реализацией.
Go to the top of the page
 
+Quote Post
Serg76
сообщение Sep 5 2018, 12:30
Сообщение #8


Профессионал
*****

Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775



Да, выигрыш больше, чем на порядок по BER и около 1,5 дБ по С/Ш. Да и реализация декодера сама по себе несложная

Сообщение отредактировал Serg76 - Sep 5 2018, 12:38
Go to the top of the page
 
+Quote Post
andyp
сообщение Sep 5 2018, 12:33
Сообщение #9


Местный
***

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



Цитата(soldat_shveyk @ Sep 5 2018, 15:22) *
По сравнению с этим, алгоритм Чейза 1 и 2 дает неплохой профит. Попробую разобраться с реализацией.


Если в вычислительной дури не сильно ограничены, то можно декодер максимального правдоподобия реализовать - потребуется вычисление 4096 сверток длиной 24 и выбор максимума.
Писать там мало, а работать будет чуть лучше самого хорошего Чейза.
Go to the top of the page
 
+Quote Post
soldat_shveyk
сообщение Sep 5 2018, 12:44
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 454
Регистрация: 3-07-07
Из: С-Петербург
Пользователь №: 28 859



Цитата
можно декодер максимального правдоподобия реализовать - потребуется вычисление 4096 сверток длиной 24 и выбор максимума

У меня QPSK, и один код длиной 24 имеет укладывается 12 символов - комплексных отсчетов.
Я попробовал сделать 4096 dot product с выбором максимума на модели в матлабе - получил такой же результат, как и в моем декодере с жестким решением.
Это максимальное правдоподобие или нет?
Я брал принятые 12 символов QPSK и делал скалярное произведение с каждым из 4096 кодом, который тоже был модулирован QPSK. B процессе умножения выбирал код с максимальным результатом dot.
Go to the top of the page
 
+Quote Post
Serg76
сообщение Sep 5 2018, 12:49
Сообщение #11


Профессионал
*****

Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775



Цитата(andyp @ Sep 5 2018, 15:33) *
а работать будет чуть лучше самого хорошего Чейза.

Да, разница будет порядка одной десятой дБ sm.gif
Go to the top of the page
 
+Quote Post
andyp
сообщение Sep 5 2018, 12:55
Сообщение #12


Местный
***

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



Цитата(soldat_shveyk @ Sep 5 2018, 15:44) *
У меня QPSK, и один код длиной 24 имеет укладывается 12 символов - комплексных отсчетов.
Я попробовал сделать 4096 dot product с выбором максимума на модели в матлабе - получил такой же результат, как и в моем декодере с жестким решением.
Это максимальное правдоподобие или нет?
Я брал принятые 12 символов QPSK и делал скалярное произведение с каждым из 4096 кодом, который тоже был модулирован QPSK. B процессе умножения выбирал код с максимальным результатом dot.


Это максимальное правдоподобие для binary symmetric channel wink.gif. А Вам на входе декодера "мягкий" демодулятор нужен, оценивающий LLR принятых бит. Но тут с Чейзом никакой разницы нет.
У него на входе тоже мягкие решения должны быть.
Go to the top of the page
 
+Quote Post
soldat_shveyk
сообщение Sep 5 2018, 13:10
Сообщение #13


Местный
***

Группа: Свой
Сообщений: 454
Регистрация: 3-07-07
Из: С-Петербург
Пользователь №: 28 859



Цитата
Вам на входе декодера "мягкий" демодулятор нужен

Мягкий демодулятор у меня есть. После установления синхронизации, я получаю по 12 комплексных отсчетов - символов, в которых лежит 24-битный код Голея. Сейчас я каждый символ жестко интерпретирую в два бита [00], [01]... [11] и получаю 24 бита, которые идут на декодер. Чтобы перейти на мягкое решение, я должен каждый комплексный отсчет символа интерпретировать на некое малоразрядное число, и подавать эти числа на алгоритм Чейза?


Цитата
Это максимальное правдоподобие для binary symmetric channel

Понятно. Это только для BPSK будет работать. А как тогда для QPSK реализовать максимальное правдоподобие?
Go to the top of the page
 
+Quote Post
thermit
сообщение Sep 5 2018, 13:21
Сообщение #14


Знающий
****

Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730



Цитата(soldat_shveyk @ Sep 5 2018, 16:10) *
Мягкий демодулятор у меня есть. После установления синхронизации, я получаю по 12 комплексных отсчетов - символов, в которых лежит 24-битный код Голея. Сейчас я каждый символ жестко интерпретирую в два бита [00], [01]... [11] и получаю 24 бита, которые идут на декодер. Чтобы перейти на мягкое решение, я должен каждый комплексный отсчет символа интерпретировать на некое малоразрядное число, и подавать эти числа на алгоритм Чейза?


Каждый комплексный отсчет - 2 мягких бита (re и im), по сути LLR. Их и подаем на чейза. Или на мп-декодер.
Go to the top of the page
 
+Quote Post
soldat_shveyk
сообщение Sep 5 2018, 13:30
Сообщение #15


Местный
***

Группа: Свой
Сообщений: 454
Регистрация: 3-07-07
Из: С-Петербург
Пользователь №: 28 859



Цитата
Или на мп-декодер.

Если я правильно понял, то таким образом можно 12 комплексных отсчетов преобразовать в 24 вещественных для реализации максимального правдоподобия?
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 16th April 2024 - 14:23
Рейтинг@Mail.ru


Страница сгенерированна за 0.01521 секунд с 7
ELECTRONIX ©2004-2016