Каково значение идеального значения индекса полинома генератора в библиотеке Шифра для кода исправления ошибок Рида-СолоC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Каково значение идеального значения индекса полинома генератора в библиотеке Шифра для кода исправления ошибок Рида-Соло

Сообщение Anonymous »

Я пытаюсь использовать в проекте библиотеку кода Шифры Рида-Соломона, исправляющую ошибки. У меня нет никаких знаний о том, как работают код Рида-Соломона и поле Галуа. У меня возникли проблемы с определением идеального значения генератора_полиномиального_индекса для 16-битного символа (дескриптора поля).

Мой код работает для индекса 0 и многих других. Я попробовал все значения index. Код работает для многих из них (точнее, 0-32724 и 32779-65485), но

Вопросы

< ol>
[*]Какова самая идеальная ценность?
[*]Что изменится, если я переключусь на другое значение индекса (которое тоже работает, но не идеально)?


Остальные мои открытия:
  • field_descriptor = размер символа (биты/символ)
    code_length(Общее количество символов (символы данных + символы кода исправления ошибок)) = 2^symbol_size - 1 (библиотека поддерживает только это значение длины кода)< /li>
    generator_polynomial_root_count = fec_length(избыточность или количество символов исправления ошибок)
  • Ошибки измеряются в символах и не биты, т. е. 1 неправильный бит в конкретном символе считается 1 ошибкой. Но даже если все 16 бит неверны; это будет считаться как 1 ошибка (а не 16).
  • Максимальное количество ошибок и стираний, которые можно исправить, должно подчиняться следующему неравенству: 2*num_errors + num_erasures < fec_length
Пожалуйста, поправьте меня, если я где-то ошибаюсь

const std::size_t field_descriptor = 16;
const std::size_t generator_polynomial_index = index;
const std::size_t generator_polynomial_root_count = 50;

/* Reed Solomon Code Parameters */
const std::size_t code_length = 65535;
const std::size_t fec_length = 50;
const std::size_t data_length = code_length - fec_length;

/* Instantiate Finite Field and Generator Polynomials */
const schifra::galois::field field(field_descriptor,
schifra::galois::primitive_polynomial_size14, schifra::galois::primitive_polynomial14);


Подробнее здесь: https://stackoverflow.com/questions/577 ... -in-the-sc
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»