|
|
  |
коды, исправляющие ошибки |
|
|
|
Jun 9 2010, 08:08
|
Участник

Группа: Участник
Сообщений: 38
Регистрация: 3-06-10
Пользователь №: 57 721

|
Цитата(SKov @ Jun 9 2010, 11:53)  Нет, Вы неправильно понимаете, "недобайты" Вы исправлять не сможете. Или я Вас неправильно понял. Вы писали о том, что хотите исправлять любые ошибки, и желательно никак не привязанные к границам байтов. Например, ваш РС код заткнется и на 3-х одиночных ошибках, если они лягут в три разных байта. Для исправления независимых (непакетных) ошибок код РС подходит плохо. Как видите, можно исправлять одиночные ошибки в 4-х разных байтах и вообще в любых местах кодового слова. Как это делать - я Вам и написал. Но оказалось, что Вы хотите исправлять и как код PC и как двоичный код ВЧХ. На этот счет есть одна известная русская пословица, смысл который сводится к тому, что так не бывает.  С таблицей наилучших кодов все сложно. Свежие таблицы мне не известны. Была хорошая таблица в книжке Теория кодов, исправляющих ошибки, авторы: Мак-Вильямс Ф. Дж., Слоэн Н. Дж. А. Она есть в И-нете. Но она (таблица, не книга) сильно устарела. Попробуйте поискать такой препринт: Зиновьев В. А., Лицын С. Н. Таблица наилучших известных двоичных кодов: Препринт. М.: ИППИ АН СССР. 1984. Эта таблица тоже немножко устарела, но не слишком  Кроме того, в этих таблицах указаны любые коды, в том числе и нелинейные, в том числе и с очень хитроумными (сложными) алгоритмами построения (и декодирования), так что практическое использование этих лучших кодов может быть не так просто. Что Вы имеете ввиду под словами бчх код над GF(2^7):
|
|
|
|
|
Jun 9 2010, 08:54
|
Знающий
   
Группа: Свой
Сообщений: 812
Регистрация: 22-01-05
Из: SPb
Пользователь №: 2 119

|
Цитата(mluk @ Jun 9 2010, 12:08)  Что Вы имеете ввиду под словами бчх код над GF(2^7): Наберите в Гугле "БЧХ код" и почитайте в Википедии, что я имею в виду. Мне кажется, Вы путаете код Рида Соломона, например в вашем случае - над GF(256) и двоичный БЧХ код, например над GF(2^8). GF(256) и GF(2^8) - это не совсем одно и то же
|
|
|
|
|
Jun 9 2010, 09:53
|
Участник

Группа: Участник
Сообщений: 38
Регистрация: 3-06-10
Пользователь №: 57 721

|
Цитата(SKov @ Jun 9 2010, 12:54)  Наберите в Гугле "БЧХ код" и почитайте в Википедии, что я имею в виду. Мне кажется, Вы путаете код Рида Соломона, например в вашем случае - над GF(256) и двоичный БЧХ код, например над GF(2^8). GF(256) и GF(2^8) - это не совсем одно и то же  Я прекрасно понимаю, что вы имеете в виду. По Вашему совету посмотрел в гугле и википедии, однако не нашел различия между бчх над GF(256) и над над GF(2^8). Есть некоторое поле галуа НАД которым строится код. Корни порождающего многочлена лежат в его расширении
|
|
|
|
|
Jun 9 2010, 10:24
|
Знающий
   
Группа: Свой
Сообщений: 812
Регистрация: 22-01-05
Из: SPb
Пользователь №: 2 119

|
Цитата(mluk @ Jun 9 2010, 13:53)  Я прекрасно понимаю, что вы имеете в виду. По Вашему совету посмотрел в гугле и википедии, однако не нашел различия между бчх над GF(256) и над над GF(2^8). Есть некоторое поле галуа НАД которым строится код. Корни порождающего многочлена лежат в его расширении  Разница в символах кода и кодовых параметрах (длина, число инф. символов, мин. расстояние). Грубо говоря, кодовыми словами над полем GF(2^8) являются многочлены с двоичными коэффициентами из GF(2), а кодовыми словами над полем GF(256) являются многочлены с коэффициентами из GF(256). В поле GF(2^8) символом кода является элемент поля GF(2). Соответственно вычисляются кодовая длина в битах, и грубая оценка на число исправляемых ошибок(в двоичных символах кода) = число проверочных символов, деленных на 8(для GF(2^8)). В поле GF(256) символом кода является элемент поля GF(256), т.е. байт. Соответственно ошибка в символе - это любая ошибка в пределах байта, и один оскаженный бит в байте это одна ошибка, и все 8 бит искажены в байте - это тоже одна ошибка в одном символе кода. И кодовая длина уже может быть другая(например, если считать ее в байтах - то 256 символов, а если в битах - то 256*8), и точная оценка на число исправляемых ошибок = число проверочных символов(байтов)/2. Так что разница в полях, может, и небольшая, а вот разница в параметрах кодов над этими полями уже существенна.
|
|
|
|
|
Jun 9 2010, 10:46
|
Участник

Группа: Участник
Сообщений: 38
Регистрация: 3-06-10
Пользователь №: 57 721

|
Цитата(SKov @ Jun 9 2010, 14:24)  Разница в символах кода и кодовых параметрах (длина, число инф. символов, мин. расстояние). Грубо говоря, кодовыми словами над полем GF(2^8) являются многочлены с двоичными коэффициентами из GF(2), а кодовыми словами над полем GF(256) являются многочлены с коэффициентами из GF(256). В поле GF(2^8) символом кода является элемент поля GF(2). Соответственно вычисляются кодовая длина в битах, и грубая оценка на число исправляемых ошибок(в двоичных символах кода) = число проверочных символов, деленных на 8(для GF(2^8)). В поле GF(256) символом кода является элемент поля GF(256), т.е. байт. Соответственно ошибка в символе - это любая ошибка в пределах байта, и один оскаженный бит в байте это одна ошибка, и все 8 бит искажены в байте - это тоже одна ошибка в одном символе кода. И кодовая длина уже может быть другая(например, если считать ее в байтах - то 256 символов, а если в битах - то 256*8), и точная оценка на число исправляемых ошибок = число проверочных символов(байтов)/2. Так что разница в полях, может, и небольшая, а вот разница в параметрах кодов над этими полями уже существенна. Это все понятно, я Вас просил уточнить, что вы имеете ввиду под "бчх над GF(2^8)", чтобы не было недоразумений. Как таковая эта запись не означает, что алфавит кодирования бинарен, а поле разложения порождающего многочлена есть GF(2^8).
|
|
|
|
|
Jun 9 2010, 11:17
|
Знающий
   
Группа: Свой
Сообщений: 812
Регистрация: 22-01-05
Из: SPb
Пользователь №: 2 119

|
Цитата(mluk @ Jun 9 2010, 14:46)  Это все понятно, я Вас просил уточнить, что вы имеете ввиду под "бчх над GF(2^8)", чтобы не было недоразумений. Как таковая эта запись не означает, что алфавит кодирования бинарен... Я как раз именно такой смыл вкладывал в эту запись. Обычно так и пишут: GF(алфавит кода ^ расширение поля алфавита). Ведь запись GF(256) совсем не обязательно означает, что речь идет о байтах  Это просто поле из 256 элементов (корова, яблоко, морковка...), для которых заданы таблицы сложения и умножения и выполняются аксиомы поля. Просто удобно вместо коров и морковки использовать байты, тем более, что таблица сложения совпадает с операцией XOR для байтов. А могла бы и не совпадать  Аналогично для GF(2^8). Есть исходное поле из двух элементов (корова, яблоко), которые удобно представлять в виде 0 и 1. И есть расширение этого поля (вектора, элементы которых состоят из коров или морковок). Ну, это я пожалуй совсем уж все упростил для детского сада. Извиняюсь
|
|
|
|
|
Jun 9 2010, 11:25
|
Участник

Группа: Участник
Сообщений: 38
Регистрация: 3-06-10
Пользователь №: 57 721

|
Цитата(SKov @ Jun 9 2010, 15:17)  Я как раз именно такой смыл вкладывал в эту запись. Обычно так и пишут: GF(алфавит кода ^ расширение поля алфавита). Ведь запись GF(256) совсем не обязательно означает, что речь идет о байтах  Это просто поле из 256 элементов (корова, яблоко, морковка...), для которых заданы таблицы сложения и умножения и выполняются аксиомы поля. Просто удобно вместо коров и морковки использовать байты, тем более, что таблица сложения совпадает с операцией XOR для байтов. А могла бы и не совпадать  Аналогично для GF(2^8). Есть исходное поле из двух элементов (корова, яблоко), которые удобно представлять в виде 0 и 1. И есть расширение этого поля (вектора, элементы которых состоят из коров или морковок). Ну, это я пожалуй совсем уж все упростил для детского сада. Извиняюсь  Большое спасибо за подробное объяснение столь нетривиальных вещей. Думаю мы поняли друг друга
|
|
|
|
|
Jun 9 2010, 13:06
|
Участник

Группа: Участник
Сообщений: 38
Регистрация: 3-06-10
Пользователь №: 57 721

|
Уважаемый SKov, не могли бы Вы поделиться одной из таблиц оптимальных кодов, если они у Вас имеются.
|
|
|
|
|
Jun 9 2010, 13:11
|
Знающий
   
Группа: Свой
Сообщений: 812
Регистрация: 22-01-05
Из: SPb
Пользователь №: 2 119

|
Цитата(mluk @ Jun 9 2010, 17:06)  Уважаемый SKov, не могли бы Вы поделиться одной из таблиц оптимальных кодов, если они у Вас имеются. Если можно, завтра сделаю. Надо сканер доставать и подключать - сегодня нет времени. И еще есть маленькая надежда, что один из авторов последней таблицы пришлет мне какой-то электронный свежий вариант таблицы - я отослал такую просьбу  Подождем до завтра.
|
|
|
|
|
Jun 9 2010, 13:13
|
Участник

Группа: Участник
Сообщений: 38
Регистрация: 3-06-10
Пользователь №: 57 721

|
Большое спасибо
|
|
|
|
|
Jun 10 2010, 09:41
|
Участник

Группа: Участник
Сообщений: 38
Регистрация: 3-06-10
Пользователь №: 57 721

|
Цитата(SKov @ Jun 10 2010, 13:17)  Спасибо)
|
|
|
|
|
Jun 10 2010, 15:03
|
Участник

Группа: Участник
Сообщений: 38
Регистрация: 3-06-10
Пользователь №: 57 721

|
Что есть алфавит кодирования и количество исправляемых ошибок.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|