
- •Введение в коды Рида-Соломона: принципы, архитектура и реализация
- •1. Введение
- •2. 2. Свойства кодов Рида-Соломона
- •3.3. Архитектура кодирования и декодирования кодов Рида-Соломона
- •3.1 Архитектура кодера
- •3.2 Архитектура декодера
- •4.Реализации кодера и декодера Рида-Соломона
- •5. Рекомендованная литература
- •6. Об авторах
Коды Рида-Соломона
Martyn Riley and Iain Richardson
Перевод с английского: Юрьев И.В.
Источник: http://www.cs.cmu.edu/afs/cs.cmu.edu/project
Введение в коды Рида-Соломона: принципы, архитектура и реализация
1. Введение
Коды Рида-Соломона позволяют исправить ошибки в блоках данных и используются в широком ряде приложений связанных с цифровой коммуникацией и хранением информации. Коды Рида-Соломона используются для исправления ошибок во многих системах, включая:
Запоминающие устройства (включая ленту, Компакт-диск, DVD, штрих коды, и т.д.)
Беспроводная или мобильная связь (включая сотовые телефоны, микроволновая связь, и т.д.)
Спутниковая связь
Цифровое телевиденье / DVB
Высокоскоростные модемы, такие как ADSL, xDSL, и т.д.
Типичная система показана здесь:
Кодер Рида-Соломона в цифровой блок данных добавляет добавочные "избыточные" биты. Ошибки происходят в течение передачи или хранении информации по ряду причин (например помехи или наложение, царапины на компакт-диске и т.д.) Декодер Рида-Соломона обрабатывает каждый блок данных и пытается исправить ошибки, чтоб вернуть данные в оригинальном виде. Количество и тип ошибок, которые могут быть исправлены, зависит от характеристик кода Рида-Соломона.
2. 2. Свойства кодов Рида-Соломона
Коды Рида-Соломона являются подмножеством кодов БЧХ и являются линейными. Коды Рида-Соломона указываются как RS(n,k) с s-бит символами. Это означает, что кодер берёт k символов данных по s бит каждый и добавляет паритетные символы, чтобы сделать ключевое слово длиной n. Есть также символы с n-k паритетом по s-бит каждый. Декодер Рида-Соломона может исправить вплоть до t символов, которые содержат ошибки в кодовом слове, где 2t = n-k.
Далее показана диаграмма типичного кода Рида-Соломона ( известный как Систематический код, потому что данные слева в неизменном состоянии и паритетные символы присоединены):
Пример:Популярный код Рида-Соломона RS(255,223) с 8-разрядными символами. Каждое ключевое слово содержит 255 байтов кодового слова, из которых 223 байта - данные, и 32 паритетные байты. Для этого кода:
n = 255, k = 223, s = 8
2t = 32, t = 16
Декодер может исправить любые 16 ошибок символа в кодовом слове: т.е. ошибки вплоть до 16 байтов где-нибудь в ключевом слове могут быть автоматически исправлены.
Получим размер символа s, для длины (n) максимального ключевого слова кода Рида-Соломона n = 2s – 1
Например, максимальная длина кода с 8-разрядными символами (s=8) составляет 255 байтов.
Коды Рида-Соломона могут сокращаться (концептуально) бросая ряд нулевых символов данных на кодер, не передавая их, а затем повторно вставляя их в декодер.
Пример: Код описанный выше может быть сокращен до (200,168). Кодер берет блок 168 байтов данных, (концептуально) добавляет 55 нулевых байтов, создает (255,223) ключевое слово и передает только 168 байтов данных и 32 паритетных байта.
Количество "мощность" обработки требует, чтобы кодировались и декодировались коды Рида-Соломона вместе с числом паритетных символов, образуя ключевое слово. Большое значение t означает, что большой ряд ошибок может быть исправлен, но требует большую вычислительную мощность, чем маленькое значение t.
Ошибки Символа
Одна ошибка символа происходит, когда 1 бит в символе неправилен или когда все биты в символе неправильны.
Пример: RS(255,223) может исправить 16 ошибок символа. В наихудшем случае, когда 16 разрядные ошибки, находятся в каждом отдельном символе (байте). В лучшем случае, когда 16 полных байтовых ошибок тогда, декодер исправляет 16 x 8 разрядных ошибок.
Коды Рида-Соломона особенно хорошо исправляют ошибки разрыва (где серии битов в ключевом слове получены с ошибкой).
Декодирование
Алгебраические процедуры декодирования могут исправить ошибки и стирающие сигналы. Стирающий сигнал происходит, когда позиция ошибки символа известна. Декодер может исправить вплоть до t ошибок или вплоть до 2t стирающих сигналов.Информация о стирающих сигналах может часто снабжаться демодулятором в цифровой системе коммуникации, т.е. "флаги" демодулятора получили символы, которые, вероятно, содержат ошибки.
Когда ключевое слово декодировано, есть три возможных результата:
1. Если 2s + r < 2t (s ошибки, r стирающие сигналы) тогда оригинальное передаваемое кодовое слово будет всегда возвращаться,
ИНАЧЕ
2. Декодер обнаружил, что не может вернуть оригинальное кодовое слово и указывает этот факт.
ИЛИ
3. Декодер не исправил возникшие ошибки, то возвращается некорректное кодовое слово без любого указания.
Вероятность каждой из трех возможностей зависит от специфики кода Рида-Соломона, а также от количества и порядка расположения ошибок.
Преимущество кодирования
Преимущество использования кодов Рида-Соломона в том, что вероятность ошибки, остающейся в декодированных данных (обычно), намного ниже, чем вероятность ошибки, если код Рида-Соломона не используется. Это часто рассматривается, как преимущество..
Пример: Проектируется цифровая система коммуникации с вероятностным соотношением ошибки в информации 10-9, то есть не более одной ошибки в109 битов информации. Этого можно достичь повышением мощности сигнала отправки информации или добавляя код Рида-Соломона (или другой тип кода исправляющего ошибки). Код Рида-Соломона позволяет системе достигать исправления ошибок в информации с низшей мощностью сигнала отправителя. Энергетическая "экономия", предоставленная кодом Рида-Соломона (в децибелах), - есть преимущество кодирования.