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

 
 
4 страниц V  < 1 2 3 4 >  
Reply to this topicStart new topic
> БЧХ декодер - поясните
des00
сообщение May 5 2011, 14:31
Сообщение #16


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(alexPec @ May 5 2011, 07:43) *
Как раз такой декодер и делаю, только не DVB-S, а специализированный. LDPC осилил biggrin.gif , поддерживает 9 длин входных блоков, каждый на 3 скорости декодировать можно. Не без ниоса конечно, но ниос только при смене длины блока/скорости участвует (переконфигурирует).

тоже что ли время на LDPC найти....

Цитата
Нужно получить 2t синдромов....Не соображу как это.

у вас же даже код под рукой, там синдром считается на примитивной логике. кодовое слово рассматривается как полином, в который подставляется в качестве корня (правильный термин не придумывается) примитивный элемент поля в степени от 1 до t


--------------------
Go to the top of the page
 
+Quote Post
alexPec
сообщение May 6 2011, 06:33
Сообщение #17


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

Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968



Уважаемый Des, увидел такую штуку в Вашем коде при вычислении синдрома:

mult_by_a[i] = ^(data & MULT_BY_A[i]);

MULT_BY_A - это как я понял таблица перемножений в поле Галуа 2^m. А обязательна эте таблица? Перемножение нельзя сделать схемой деления/умножения полиномов, типа той что я в пред. посте выкладывал? Ато памяти жалко на таблицу при m=10.
Go to the top of the page
 
+Quote Post
Mikhalych
сообщение May 6 2011, 07:04
Сообщение #18


Частый гость
**

Группа: Свой
Сообщений: 82
Регистрация: 7-12-05
Из: 77
Пользователь №: 11 952



Цитата(alexPec @ May 6 2011, 10:33) *
... это как я понял таблица перемножений в поле Галуа 2^m. А обязательна эте таблица? Перемножение нельзя сделать схемой деления/умножения полиномов, типа той что я в пред. посте выкладывал? Ато памяти жалко на таблицу при m=10.


тема уже обсуждалась http://electronix.ru/forum/index.php?showtopic=80688
посмотрите - там выложена статья по аппаратной реализации умножителей в поле Галуа на комбинационнной логике (без памяти)


--------------------
Не, ну наболело, капитан - он выступает как директор пляжа, посол! (с) Ширли-Мырли
Go to the top of the page
 
+Quote Post
SKov
сообщение May 6 2011, 07:27
Сообщение #19


Знающий
****

Группа: Свой
Сообщений: 812
Регистрация: 22-01-05
Из: SPb
Пользователь №: 2 119



Цитата(alexPec @ May 6 2011, 10:33) *
как я понял таблица перемножений в поле Галуа 2^m. А обязательна эте таблица? Перемножение нельзя сделать схемой деления/умножения полиномов, типа той что я в пред. посте выкладывал? Ато памяти жалко на таблицу при m=10.

Можно разменять память на время. Обычно при большом поле делают переход к представлению элементов из 2^m в виде пары элементов
из 2^(m/2). При этом операция умножения в большом поле сводится к 2м операциям умножения в половинном
поле + некоторые простые операции (типа сложение). Т.е. в вашем случае нужны таблицы размера 2^5.
Но, боюсь, это трудно объяснить на пальцах, а самому вам не разобраться..
Go to the top of the page
 
+Quote Post
des00
сообщение May 6 2011, 07:31
Сообщение #20


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(alexPec @ May 6 2011, 01:33) *
Уважаемый Des, увидел такую штуку в Вашем коде при вычислении синдрома:

mult_by_a[i] = ^(data & MULT_BY_A[i]);

MULT_BY_A - это как я понял таблица перемножений в поле Галуа 2^m. А обязательна эте таблица? Перемножение нельзя сделать схемой деления/умножения полиномов, типа той что я в пред. посте выкладывал? Ато памяти жалко на таблицу при m=10.

откуда там память? посмотрите синтез %)

умножитель в полях галуа вида variable by constant это ксор, определенных битов variable. вот эти определенные биты заранее рассчитываются и их маска сидит в "памяти".


--------------------
Go to the top of the page
 
+Quote Post
Fast
сообщение May 6 2011, 11:44
Сообщение #21


Местный
***

Группа: Свой
Сообщений: 216
Регистрация: 31-03-05
Из: Зеленоград
Пользователь №: 3 839



Цитата(SKov @ May 5 2011, 14:42) *
Если серьезно - пару месяцев уйдет на то, чтобы прочесть хотя бы 10 (лучше 30-50) статей и разобраться с разновидностями декодеров и выбрать, что вам подходит по цвету и вкусу wink.gif
ушло 2 часа на то, чтобы разобраться, что выбирать особо не из чего ))
пара удобоваримых для реализации алгоритмов для БЧХ (БМ и Евклида) и тройка для LDPC (мягкий BP, min-sum и класс многопороговых).
а если к вопросу подойти творчески, то внешний код БЧХ можно использовать лишь для обнаружения, исправляя все внутренним LDPC...
Цитата(SKov @ May 5 2011, 14:42) *
Не забудьте выложить в доступном месте wink.gif
посмотрим wink.gif
Go to the top of the page
 
+Quote Post
alexPec
сообщение May 6 2011, 14:52
Сообщение #22


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

Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968



Цитата(des00 @ May 6 2011, 11:31) *
откуда там память? посмотрите синтез %)

умножитель в полях галуа вида variable by constant это ксор, определенных битов variable. вот эти определенные биты заранее рассчитываются и их маска сидит в "памяти".


Ой, ступил, извините. Редко в чужих кодах копаюсь, обычно свое все пишу, не привык laughing.gif Копаю дальше...
Go to the top of the page
 
+Quote Post
SKov
сообщение May 6 2011, 16:02
Сообщение #23


Знающий
****

Группа: Свой
Сообщений: 812
Регистрация: 22-01-05
Из: SPb
Пользователь №: 2 119



Цитата(Fast @ May 6 2011, 15:44) *
ушло 2 часа на то, чтобы разобраться, что выбирать особо не из чего ))
пара удобоваримых для реализации алгоритмов для БЧХ (БМ и Евклида) и тройка для LDPC (мягкий BP, min-sum и класс многопороговых).
а если к вопросу подойти творчески, то внешний код БЧХ можно использовать лишь для обнаружения, исправляя все внутренним LDPC...
посмотрим wink.gif

У вас два часа ушло, чтобы выучить несколько красивых слов wink.gif
Если Вы пишете про "мягкий BP" (а что, бывает жесткий?) и через запятую поминаете класс многопороговых алгоритмов - Вам еще разбираться и разбираться в этих хитросплетениях. И почему вы называете БЧХ внешним? Он там, скорее, внутренний
и предназначен не для обнаружения ошибок (LDPC и сам прекрасно все обнаруживает.)
В общем, "еще 5 тысяч ведер, и ключик будет ваш" wink.gif)
Go to the top of the page
 
+Quote Post
Serg76
сообщение May 6 2011, 16:52
Сообщение #24


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

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



Цитата(SKov @ May 6 2011, 19:02) *
И почему вы называете БЧХ внешним? Он там, скорее, внутренний
и предназначен не для обнаружения ошибок (LDPC и сам прекрасно все обнаруживает.)

Человек прав БЧХ - внешний, а LDPC - внутренний, более мощный, а вот по поводу многопороговых алгоритмов декодирования, то здесь с ним не соглашусь, для LDPC они не подходят, так как эти коды не соответсвуют условиям ортогональности.
Go to the top of the page
 
+Quote Post
SKov
сообщение May 6 2011, 17:48
Сообщение #25


Знающий
****

Группа: Свой
Сообщений: 812
Регистрация: 22-01-05
Из: SPb
Пользователь №: 2 119



Цитата(Serg76 @ May 6 2011, 20:52) *
Человек прав БЧХ - внешний, а LDPC - внутренний, более мощный, а вот по поводу многопороговых алгоритмов декодирования, то здесь с ним не соглашусь, для LDPC они не подходят, так как эти коды не соответсвуют условиям ортогональности.

Строго говоря, в этом стандарте не классическая каскадная схема, где действует правило
умножения минимальных расстояний каскадируемых кодов. Поэтому термины внутренний-внешний
тут принимают немного другой смысл, чем это принято в классических каскадных кодах.
Если считать, что внешний тот, который кодирует первым, а декодирует последним, то тогда согласен.
LDPC обычно имеют ортогональные проверки относительно каждого символа (других примеров LDPC мне не известно).
Сейчас точно не помню, как строятся коды в стандарте, но было бы очень странно, если бы там не было ортогональных проверок.
Так что их вполне можно декодировать много раз с разными порогам. Так, кстати, иногда и делают.
Это называется weighted majority decoding. По сложности - это очень просто,
а по качеству до BP или MIN-SUM, как до неба.
Go to the top of the page
 
+Quote Post
Serg76
сообщение May 6 2011, 19:14
Сообщение #26


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

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



Цитата(SKov @ May 6 2011, 20:48) *
Если считать, что внешний тот, который кодирует первым, а декодирует последним, то тогда согласен.

Вроде как всегда было так принято.
Цитата(SKov @ May 6 2011, 20:48) *
LDPC обычно имеют ортогональные проверки относительно каждого символа (других примеров LDPC мне не известно).

Перечитал Золотарева, действительно все так, как Вы писали wink.gif
Go to the top of the page
 
+Quote Post
Fast
сообщение May 6 2011, 20:20
Сообщение #27


Местный
***

Группа: Свой
Сообщений: 216
Регистрация: 31-03-05
Из: Зеленоград
Пользователь №: 3 839



Цитата(SKov @ May 6 2011, 20:02) *
У вас два часа ушло, чтобы выучить несколько красивых слов wink.gif
Если Вы пишете про "мягкий BP" (а что, бывает жесткий?) и через запятую поминаете класс многопороговых алгоритмов - Вам еще разбираться и разбираться в этих хитросплетениях. И почему вы называете БЧХ внешним? Он там, скорее, внутренний
и предназначен не для обнаружения ошибок (LDPC и сам прекрасно все обнаруживает.)
В общем, "еще 5 тысяч ведер, и ключик будет ваш" wink.gif)

мягкий BP - работающий по мягким решениям демодулятора, дающим начальные априорные вероятности для бит(символов)
термин мягкий употребляется по аналогии с мягким декодированием Витерби, или допустим мягким декодированием циклических кодов.
а что не понравилось во фразе класс МПД-алгоритмов ? это вообще-то целый табор вариантов формирования порогов и решающих схем исправления символов даже применительно к конкретному LDPC-коду, не считая алгоритмов MПД для двоичных/недвоичных, систематических/несист, блоковых/сверточных и т.д. кодов. Об этом есть фундаментальные труды Золотарева В.В.

если вести речь о конкретном стандарте DVB-S2, БЧХ все же внешний, ознакомьтесь повнимательнее
и может быть предназначен как для исправления, так и для обнаружения, в зависимости от схемы реализации декодера обощенного кода БЧХ-LDPC
т.е. по большому счету - это зависит от хотелок разработчика и с учетом характеристик канала связи.

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

Цитата(Serg76 @ May 6 2011, 20:52) *
Человек прав БЧХ - внешний, а LDPC - внутренний, более мощный, а вот по поводу многопороговых алгоритмов декодирования, то здесь с ним не соглашусь, для LDPC они не подходят, так как эти коды не соответсвуют условиям ортогональности.
http://www.mtdbest.iki.rssi.ru/


Цитата(SKov @ May 6 2011, 21:48) *
Строго говоря, в этом стандарте не классическая каскадная схема, где действует правило
умножения минимальных расстояний каскадируемых кодов. Поэтому термины внутренний-внешний
тут принимают немного другой смысл, чем это принято в классических каскадных кодах.
и какой же смысл несут термины внутренний-внешний, кроме того, что один код внутренний, а другой внешний ? sm.gif
Go to the top of the page
 
+Quote Post
SKov
сообщение May 6 2011, 21:39
Сообщение #28


Знающий
****

Группа: Свой
Сообщений: 812
Регистрация: 22-01-05
Из: SPb
Пользователь №: 2 119



Цитата(Fast @ May 7 2011, 00:20) *
мягкий BP - работающий по мягким решениям демодулятора, дающим начальные априорные вероятности для бит(символов)

Это все понятно. Просто я хотел подчеркнуть, что выражение "мягкий BP" выдает с головой новичка в этой области.
Т.к. "жесткий" BP теоретически возможен, но я ни разу не встречал его применительно к LDPC.
Поэтому упоминание о мягкости BP мне показалось излишним.

Цитата
термин мягкий употребляется по аналогии с мягким декодированием Витерби, или допустим мягким декодированием циклических кодов.

Декодер Витерби жесткий я встречал неоднократно. А вот жесткий BP - нет.
Если Вы встречали жесткий BP- с благодарностью приму от вас ссылку, как говорится, век живи - век учись.

Цитата
а что не понравилось во фразе класс МПД-алгоритмов ? это вообще-то целый табор вариантов формирования порогов и решающих схем исправления символов даже применительно к конкретному LDPC-коду, не считая алгоритмов MПД для двоичных/недвоичных, систематических/несист, блоковых/сверточных и т.д. кодов.

Я вроде пытался ответить в предыдущем посте. Еще раз: характеристики МПД и BP абсолютно несравнимы
как по качеству декодироваия так и по сложности. Причем по качеству резкий перекос в одну сторону, а по сложности - в другую.

Цитата
Об этом есть фундаментальные труды Золотарева В.В.

Я, в принципе, к трудам ВВЗ отношусь неплохо. Лучше, чем многие wink.gif
Он первый перенес многопороговый алгоритм Таунсенда-Велдона для декодирования самоортогоналных
блоковых кодов на случай самоортогоналных сверточных кодов. И назвал это МПД.
И потом все жизнь бился (и, наверное, до сих пор бьется) с иппишниками за официальное
признание своих кодировочных достижений. Но, вроде бы, насколько я знаю,
так до сих пор и числится в "кодировочном андеграунде" wink.gif
Но я не хотел бы здесь дискутировать на эту бесконечную тему.
Цитата
если вести речь о конкретном стандарте DVB-S2, БЧХ все же внешний,

Да я уже не спорю. wink.gif Я просто хотел сказать, что сама конструкция совсем не каскадная в классическом смысле этого слова.
Понимаете, слово БЧХ кода является (информационной) частью кода LDPC и в этом смысле БЧХ находится
(в буквальном смысле) внутри слова LDPC. Поэтому хочется назвать его внутренним по отношению к LDPC;)

Цитата
я могу на свое усмотрение исправлять ошибки как обоими кодами, так и любым из них, используя второй для обнаружения

Это уже какая-то ерунда.

Цитата

Ой, вот только ссылок на МПД мне не надо! Увольте!!!

Go to the top of the page
 
+Quote Post
Fast
сообщение May 7 2011, 06:22
Сообщение #29


Местный
***

Группа: Свой
Сообщений: 216
Регистрация: 31-03-05
Из: Зеленоград
Пользователь №: 3 839



Цитата(SKov @ May 7 2011, 01:39) *
Это все понятно. Просто я хотел подчеркнуть, что выражение "мягкий BP" выдает с головой новичка в этой области.
Т.к. "жесткий" BP теоретически возможен, но я ни разу не встречал его применительно к LDPC.
Поэтому упоминание о мягкости BP мне показалось излишним.
BP никогда не делал, как и декодеры турбо-кодов. С последних проектов по TCM+констурукции Унгербоека прошло много лет, с момента, когда ручками прорешивал ПГЦ и БМА, строил порождающие и проверочные матрицы.., - еще больше. Поэтому современную терминологию, широко принятую в узких кругах, еще пока не освоил.
Цитата(SKov @ May 7 2011, 01:39) *
Я вроде пытался ответить в предыдущем посте. Еще раз: характеристики МПД и BP абсолютно несравнимы как по качеству декодироваия так и по сложности. Причем по качеству резкий перекос в одну сторону, а по сложности - в другую.
может вы не поняли, но я не сравнивал их по качеству и сложности.
Цитата(SKov @ May 7 2011, 01:39) *
Это уже какая-то ерунда.
а если хорошо подумать ? я сходу вижу три подхода
1. оба исправляют: LDPC-BP + БЧХ-БМА
2. LDPC оценивает,
- БЧХ исправляет методом усеченного перебора ранжированных по достоверности символов (по какому-то порогу достоверности)
- БЧХ исправляет Чейзом
- стираем 2t малодостоверных, БЧХ восстанавливает стирания
3. БЧХ оценивает (= считаем синдром)
1) LDPC-MinSum, исправляет
2) считаем синдром БЧХ,
синдром ненулевой => корректируем априорные вероятности (критерий пока не важен), идем к п.1

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

Цитата(SKov @ May 7 2011, 01:39) *
Ой, вот только ссылок на МПД мне не надо! Увольте!!!
ссылка вообще-то не вам была. увольняю )))
Go to the top of the page
 
+Quote Post
SKov
сообщение May 7 2011, 11:04
Сообщение #30


Знающий
****

Группа: Свой
Сообщений: 812
Регистрация: 22-01-05
Из: SPb
Пользователь №: 2 119



Цитата(Fast @ May 7 2011, 10:22) *
я сходу вижу три подхода
1. оба исправляют: LDPC-BP + БЧХ-БМА

Это наиболее разумный вариант. Я бы добавил, что БЧХ может и обнаруживать тяжелые ошибки,
если в обнаружении есть какой-то смысл.

Цитата
2. LDPC оценивает,
- БЧХ исправляет методом усеченного перебора ранжированных по достоверности символов (по какому-то порогу достоверности)
- БЧХ исправляет Чейзом
- стираем 2t малодостоверных, БЧХ восстанавливает стирания
3. БЧХ оценивает (= считаем синдром)
1) LDPC-MinSum, исправляет
2) считаем синдром БЧХ,
синдром ненулевой => корректируем априорные вероятности (критерий пока не важен), идем к п.1

Это ерунда. ИМХО, конечно.

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

Предложить-то можно. Но делать не советую.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 6th July 2025 - 10:34
Рейтинг@Mail.ru


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