repstosw 18 26 февраля Опубликовано 26 февраля (изменено) · Жалоба Объясните, как пользоваться LDPC ? Вот взять к примеру кодек Рида-Соломона: есть процедура кодирования и декодирования. В качестве исходных данных - массив бит или байт. При кодировании получаем - дополнительные проверочные слова. При декодировании - получаем восстановленное сообщение (если повезёт). А как LDPC использовать? Смотрю примеры на гитхабе с LDPC, и чё-т я вкурить не могу - там какие-то полярные модуляции, шумы замешивают... какие -то вероятности... Ничего не понимаю. Мне нужно закодировать массив байт и потом раскодировать. Не вижу прозрачности в пользовании LDPC кодов. Что не так? И почему? Изменено 26 февраля пользователем repstosw Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 2 марта Опубликовано 2 марта · Жалоба Пролейте свет просвещения в понимании LDPC кодов с жёсткими решениями пожалуйста... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
blackfin 32 2 марта Опубликовано 2 марта · Жалоба Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
thermit 1 2 марта Опубликовано 2 марта · Жалоба 18 минут назад, repstosw сказал: Пролейте свет просвещения в понимании LDPC кодов с жёсткими решениями пожалуйста... Умножение кодового слова на проверочную матрицу. Не эффективно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
komah 4 7 марта Опубликовано 7 марта · Жалоба В 02.03.2024 в 13:26, repstosw сказал: Пролейте свет просвещения в понимании LDPC кодов с жёсткими решениями пожалуйста... Самый известный алгоритм - bit-flipping. Очень быстрый, но для перфорированных кодов я его применить нормально не смог. С прозрачностью там все нормально. По сравнению с Ридом-Соломоном точно. Код обычно систематический, кодовое слово очень длинное. При кодировании все операции выполняются в двоичном поле (по модулю 2). При декодировании используется разреженная проверочная матрица. Там много нулей и мало единиц. Для того, чтобы в декодере она занимала меньше места ее не хранят целиком - только номера позиций с единицами. В декодере формируются две таблицы. В одной связь между информационными битами и проверочными - какие проверочные зависят от каждого информационного. В другой- наоборот, для каждого проверочного бита хранятся номера бит, которые используются при его вычислении. С помощью второй таблицы по кодовому слову вычисляются проверки и суммируются. Если сумма не равна 0, в слове есть ошибки. Дальше алгоритм пытается их исправить. bit-flipping самый тупой, для каждого информационного бита проверяется, сколько проверок, в которых он участвует, не сошлось. Если больше половины, то бит инвертируется. Так проходим по всему слову, потом операция повторяется. Число итераций - до 20, больше в этом методе по моему не имеет смысла. Кодирование - это отдельная тема. Выполняется путем умножения на порождающую матрицу. Она не разреженная, то есть, реально занимает очень много места. Для конкретных кодов есть варианты формировать строки этой матрицы на лету, путем циклического сдвига. В документации эту матрицу полностью обычно не приводят, поэтому ее построение может оказаться проблемой. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Viktuar 0 24 апреля Опубликовано 24 апреля · Жалоба Мне кажется, что ldpc с жестким решением практически не выигрывает у бчх со аналогичным кодрейтом, особенно если это простой битфлип. Или я не прав? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться