Jump to content
    

Коды для восстановления ошибок

Телеметрия для передачи данных такова, что ошибочные слова в 99% случаев отличаются от истинных на +-1. Отклонение на большее число крайне редко и такие случаи можно не восстанавливать, а лишь сообщать об ошибке.

 

Какой алгоритм лучше применить для такого случая?

Share this post


Link to post
Share on other sites

Телеметрия для передачи данных такова, что ошибочные слова в 99% случаев отличаются от истинных на +-1. Отклонение на большее число крайне редко и такие случаи можно не восстанавливать, а лишь сообщать об ошибке.

 

Какой алгоритм лучше применить для такого случая?

Расширенный Хемминга или, если понадобится по-мощнее, можно глянуть БЧХ.

Share this post


Link to post
Share on other sites

Расширенный Хемминга или, если понадобится по-мощнее, можно глянуть БЧХ.

Но они не используют тот факт, что ошибочное слово может отличаться от правильного на +-1. Может в этом случае можно использовать меньше проверочных слов?

Share this post


Link to post
Share on other sites

Но они не используют тот факт, что ошибочное слово может отличаться от правильного на +-1

Это как? Коды Хемминга исправляют однократную ошибку, а БЧХ и подавно.

Share this post


Link to post
Share on other sites

Это как? Коды Хемминга исправляют однократную ошибку, а БЧХ и подавно.

Да, но исправляется всё слово как бы сильно оно ни испортилось. Даже если все 0 превратятся во все 1. У меня же обычно если происходит ошибка, то это выражается в том, что число становится на 1 больше или меньше. То есть 1000 может превратиться в 0111, но в 0000 - практически исключено. Может есть коды, которые пользуются этим свойством?

Share this post


Link to post
Share on other sites

Да, но исправляется всё слово как бы сильно оно ни испортилось. Даже если все 0 превратятся во все 1. У меня же обычно если происходит ошибка, то это выражается в том, что число становится на 1 больше или меньше. То есть 1000 может превратиться в 0111, но в 0000 - практически исключено. Может есть коды, которые пользуются этим свойством?

Есть специальные коды для исправления такого рода ошибок.

Называются арифметические коды. Искать в гугле.

Share this post


Link to post
Share on other sites

Интерес вызывает именно Ваш канал передачи данных.

Каким образом он может выполнить операцию "1000 -> 0111" ?

Т.е. ваш канал связи обладает своего рода интеллектом ?

Я у себя доказываю безопасность каналов связи постулируя отсутствие

"интеллекта" и невозможности внесения структурированных изменений ...

 

Возможно причина ошибок в чем-то другом?

 

Share this post


Link to post
Share on other sites

Интерес вызывает именно Ваш канал передачи данных.

Каким образом он может выполнить операцию "1000 -> 0111" ?

Т.е. ваш канал связи обладает своего рода интеллектом ?

При чем тут интеллект? Код передается как амплитуда одного периода синусоиды. имеется 16 градаций амплитуды и таким образом один период кодирует 4 бита. Но вследствие помех в канале измерение иногда дает результат, отличающийся на единицу.

 

Share this post


Link to post
Share on other sites

Да, но исправляется всё слово как бы сильно оно ни испортилось. Даже если все 0 превратятся во все 1. У меня же обычно если происходит ошибка, то это выражается в том, что число становится на 1 больше или меньше. То есть 1000 может превратиться в 0111, но в 0000 - практически исключено. Может есть коды, которые пользуются этим свойством?

 

При чем тут интеллект? Код передается как амплитуда одного периода синусоиды. имеется 16 градаций амплитуды и таким образом один период кодирует 4 бита. Но вследствие помех в канале измерение иногда дает результат, отличающийся на единицу.

код грея даст вам расстояние до соседа +-1 а код хеминга требуемую вами защиту.

Share this post


Link to post
Share on other sites

код грея даст вам расстояние до соседа +-1 а код хеминга требуемую вами защиту.

Я так понимаю, что здесь не цифровой формат данных, а псевдо-аналоговый. И видимо, кроме всего прочего, коды, исправляющие ошибки, нужно будет передавать в этом же аналоговом формате. Ну и они тоже могут исказиться.

Share this post


Link to post
Share on other sites

Я так понимаю, что здесь не цифровой формат данных, а псевдо-аналоговый. И видимо, кроме всего прочего, коды, исправляющие ошибки, нужно будет передавать в этом же аналоговом формате. Ну и они тоже могут исказиться.

автор молчит сильно, я предположил что у него есть какая то схема принятия решений (АЦП/компартор и т.д.), поэтому предложил ему грея, т.к. это даст максимальную ошибку в 1 бит. ну а дальше нужно оценить что будетм защищать : символ или пакет %)

Share this post


Link to post
Share on other sites

Да, но исправляется всё слово как бы сильно оно ни испортилось. Даже если все 0 превратятся во все 1. У меня же обычно если происходит ошибка, то это выражается в том, что число становится на 1 больше или меньше. То есть 1000 может превратиться в 0111, но в 0000 - практически исключено. Может есть коды, которые пользуются этим свойством?

Вот как так происходит, что при прохождении через цифровой канал число 1000 может превратится в 0111, но не может в 0000? Не бывает такого. Поэтому и коды исправляют всё. Сдается мне, что вы на самом деле вы говорите не об ошибках, а о шумах. И задачу надо ставить как то по другому - искать не код исправления ошибок, а какой то фильтр например.

Share this post


Link to post
Share on other sites

Да, но исправляется всё слово как бы сильно оно ни испортилось. Даже если все 0 превратятся во все 1. У меня же обычно если происходит ошибка, то это выражается в том, что число становится на 1 больше или меньше. То есть 1000 может превратиться в 0111, но в 0000 - практически исключено. Может есть коды, которые пользуются этим свойством?

Так у вас действительно последовательный код. Примените Грея для начала как советовал des00 + Хемминг для исправления однократной ошибки

Share this post


Link to post
Share on other sites

При чем тут интеллект? Код передается как амплитуда одного периода синусоиды. имеется 16 градаций амплитуды и таким образом один период кодирует 4 бита. Но вследствие помех в канале измерение иногда дает результат, отличающийся на единицу.

 

Так отож. И при чем здесь кодирование? У вас проблемы с измерениями а не в канале связи.

Вы принципиально решаете не ту задачу. Лучше решить вопросы с 4-х битным АЦП.

А самый младший бит будет гулять - тут уж закон природы АЦП. Нужно 5 разрядов.

 

Share this post


Link to post
Share on other sites

Так отож. И при чем здесь кодирование? У вас проблемы с измерениями а не в канале связи.

Там же ясно написано, что проблема с помехами (шумом?) в канале. Если они на уровне 4-ого бита, то хоть 20 битный АЦП ставь, пользы не будет.

Edited by GetSmart

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...