Мой код работает для индекса 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
Мобильная версия