Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Самокорректирующийся код
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Математика и Физика
MIX@
Доброго времени суток!

Не знал куда поместить вопрос - решил, что здесь ему самое место.

Итак суть вопроса: потребовался самокорректирующийся код, который позволял бы исправлять две ошибки исходного сообщения и региструющий тройную, как бонус. Существующие реализации (например, код Хемминга) умеют исправлять только 1 ошибку и обнаруживать двойную.
Кодирование, естественно, двоичное.

Может кто решал такую задачу - посоветуйте.
scifi
В этой области давно всё изучено:
Forward Error Correction
MrYuran
Цитата(MIX@ @ Feb 17 2009, 21:59) *
Существующие реализации (например, код Хемминга) умеют исправлять только 1 ошибку и обнаруживать двойную.

Существующие реализации (например, БЧХ) позволяют исправить и обнаружить любое количество ошибок. Вопрос, готовы ли вы за это платить.
Чем больше мощность кода, тем больше избыточность.
Причём надо понимать, что 2 ошибки могут быть не только в вашем исходном байте, а во всём полученном кодовом слове.
То есть вы берёте байт, кодируете его, получаете кодовое слово (примерно в 2 раза большее), и вот эти 2-3 исправляемые ошибки будут "размазаны" по всему слову.
Лет так 10 назад я писал диплом по коду Голея, который исправляет любые 3 ошибки в 24р слове, причём информационных бит там ровно половина.
Gantz
Цитата(MIX@ @ Feb 17 2009, 21:59) *
Доброго времени суток!

Не знал куда поместить вопрос - решил, что здесь ему самое место.

Итак суть вопроса: потребовался самокорректирующийся код, который позволял бы исправлять две ошибки исходного сообщения и региструющий тройную, как бонус. Существующие реализации (например, код Хемминга) умеют исправлять только 1 ошибку и обнаруживать двойную.
Кодирование, естественно, двоичное.

Может кто решал такую задачу - посоветуйте.


код Хемминга достаточно эффективен. Также вы видели всего пример на основе одной ошибке. Если взять теорию, то можно составить любую вариацию исправлять две и более ошибок. Усложняется только матрица и увеличивается размер дополнительного кода.
777777
Коды Рида-Соломона используются достаточно широко. Можно например поискать стандарт DVD ECMA-267, глава 18, но там описано весьма мутно. Лучше поискать более популярную литературу.
Valery_Vlad
Цитата(MIX@ @ Feb 17 2009, 21:59) *
Итак суть вопроса: потребовался самокорректирующийся код, который позволял бы исправлять две ошибки исходного сообщения и региструющий тройную, как бонус. Существующие реализации (например, код Хемминга) умеют исправлять только 1 ошибку и обнаруживать двойную.
Кодирование, естественно, двоичное.

Если еще интересно, то задача решена, и решение описано в статье <Помехоустойчивое кодирование радиоканалов с частотной модуляцией.
Брауде-Золотарев Ю. М., Лаврентьев М. А.> журнал «РАДИОТЕХНИКА», № 6, 2004 г.
hlebn
блочное или поточное кодирование?
для последнего весьма эффективна и проста в реализации сверточное кодирование. при скорости кодирования 2/3 (на два информационных бита один контрольный) в легкую исправляет четыре ошибки. проверенно на 150МБит ной радиолинии.
Serg76
Цитата(hlebn @ Mar 7 2009, 19:13) *
блочное или поточное кодирование?
для последнего весьма эффективна и проста в реализации сверточное кодирование. при скорости кодирования 2/3 (на два информационных бита один контрольный) в легкую исправляет четыре ошибки. проверенно на 150МБит ной радиолинии.

По-видимому вы имеете ввиду решетчатое (треллис) кодирование TCM2/3. Оно применяется с 8PSK видом модуляции. Кстати автор темы о этом ничего не сказал.

Цитата(Valery_Vlad @ Mar 7 2009, 12:48) *
Если еще интересно, то задача решена, и решение описано в статье <Помехоустойчивое кодирование радиоканалов с частотной модуляцией.
Брауде-Золотарев Ю. М., Лаврентьев М. А.> журнал «РАДИОТЕХНИКА», № 6, 2004 г.

Видимо вы имеете ввиду многопороговые декодеры?
hlebn
Цитата(Serg76 @ Mar 7 2009, 20:08) *
По-видимому вы имеете ввиду решетчатое (треллис) кодирование TCM2/3. Оно применяется с 8PSK видом модуляции. Кстати автор темы о этом ничего не сказал.

я имел ввиду именно сверточное кодирование с длинным ортогональным кодом. никакого отношения к виду модуляции оно не имело. в радиолинии использовалась QPSK модуляция. 8PSK при требуемом сигнал шум вряд ли работал.
для декодирования использовался могопороговый декодер.
Valery_Vlad
Цитата(Serg76 @ Mar 7 2009, 20:08) *
Видимо вы имеете ввиду многопороговые декодеры?

Это блочный код 16,8. Восстанавливает все одиночные и все двойные ошибки. В информационном слове все тройные ошибки если они находятся три подряд в любом месте слова. И некоторые тройные распределенные в информационном слове и в проверочном.
Serg76
Цитата(hlebn @ Mar 7 2009, 20:58) *
я имел ввиду именно сверточное кодирование с длинным ортогональным кодом. никакого отношения к виду модуляции оно не имело. в радиолинии использовалась QPSK модуляция. 8PSK при требуемом сигнал шум вряд ли работал.
для декодирования использовался могопороговый декодер.

спасибо, понятно, самоортогональными кодами плотно занимался как раз Золотарев может Valery_Vlad именно этого автора имел ввиду. А TCM 2/3+8PSK для Intelsat тоже представляет собой сверточный код на базе полинома (133,171).
Цитата(Valery_Vlad @ Mar 7 2009, 20:58) *
Это блочный код 16,8. Восстанавливает все одиночные и все двойные ошибки. В информационном слове все тройные ошибки если они находятся три подряд в любом месте слова. И некоторые тройные распределенные в информационном слове и в проверочном.

Попробую еще раз угадать. Может CRC?
Valery_Vlad
Цитата(Serg76 @ Mar 7 2009, 23:02) *
спасибо, понятно, самоортогональными кодами плотно занимался как раз Золотарев может Valery_Vlad именно этого автора имел ввиду.
Попробую еще раз угадать. Может CRC?

Это другой Золотарев, Брауде-Золотарев Юрий Михайлович. Почитайте статью сами, я не большой спец по кодам.
По моему разумению взяли код Хемминга 255,247 и укоротили его до 16,8. И вместо синдромного исправления ошибок, сделали так, что синдром указывал на адрес в таблице где находится корректирующее слово. А изюминка сама была в выборе полиномов.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.