реклама на сайте
подробности

 
 
10 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> Коды для восстановления ошибок, какой алгоритм применить?
777777
сообщение Nov 6 2011, 08:43
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



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

Какой алгоритм лучше применить для такого случая?
Go to the top of the page
 
+Quote Post
Serg76
сообщение Nov 6 2011, 09:04
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775



Цитата(777777 @ Nov 6 2011, 12:43) *
Телеметрия для передачи данных такова, что ошибочные слова в 99% случаев отличаются от истинных на +-1. Отклонение на большее число крайне редко и такие случаи можно не восстанавливать, а лишь сообщать об ошибке.

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

Расширенный Хемминга или, если понадобится по-мощнее, можно глянуть БЧХ.
Go to the top of the page
 
+Quote Post
777777
сообщение Nov 7 2011, 09:40
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(Serg76 @ Nov 6 2011, 13:04) *
Расширенный Хемминга или, если понадобится по-мощнее, можно глянуть БЧХ.

Но они не используют тот факт, что ошибочное слово может отличаться от правильного на +-1. Может в этом случае можно использовать меньше проверочных слов?
Go to the top of the page
 
+Quote Post
Serg76
сообщение Nov 7 2011, 11:44
Сообщение #4


Профессионал
*****

Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775



Цитата(777777 @ Nov 7 2011, 12:40) *
Но они не используют тот факт, что ошибочное слово может отличаться от правильного на +-1

Это как? Коды Хемминга исправляют однократную ошибку, а БЧХ и подавно.
Go to the top of the page
 
+Quote Post
777777
сообщение Nov 7 2011, 12:15
Сообщение #5


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(Serg76 @ Nov 7 2011, 15:44) *
Это как? Коды Хемминга исправляют однократную ошибку, а БЧХ и подавно.

Да, но исправляется всё слово как бы сильно оно ни испортилось. Даже если все 0 превратятся во все 1. У меня же обычно если происходит ошибка, то это выражается в том, что число становится на 1 больше или меньше. То есть 1000 может превратиться в 0111, но в 0000 - практически исключено. Может есть коды, которые пользуются этим свойством?
Go to the top of the page
 
+Quote Post
SKov
сообщение Nov 7 2011, 12:51
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 812
Регистрация: 22-01-05
Из: SPb
Пользователь №: 2 119



Цитата(777777 @ Nov 7 2011, 16:15) *
Да, но исправляется всё слово как бы сильно оно ни испортилось. Даже если все 0 превратятся во все 1. У меня же обычно если происходит ошибка, то это выражается в том, что число становится на 1 больше или меньше. То есть 1000 может превратиться в 0111, но в 0000 - практически исключено. Может есть коды, которые пользуются этим свойством?

Есть специальные коды для исправления такого рода ошибок.
Называются арифметические коды. Искать в гугле.
Go to the top of the page
 
+Quote Post
i-mir
сообщение Nov 7 2011, 15:31
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 197
Регистрация: 17-06-10
Из: Киев
Пользователь №: 57 986



Интерес вызывает именно Ваш канал передачи данных.
Каким образом он может выполнить операцию "1000 -> 0111" ?
Т.е. ваш канал связи обладает своего рода интеллектом ?
Я у себя доказываю безопасность каналов связи постулируя отсутствие
"интеллекта" и невозможности внесения структурированных изменений ...

Возможно причина ошибок в чем-то другом?
Go to the top of the page
 
+Quote Post
777777
сообщение Nov 7 2011, 16:04
Сообщение #8


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(i-mir @ Nov 7 2011, 19:31) *
Интерес вызывает именно Ваш канал передачи данных.
Каким образом он может выполнить операцию "1000 -> 0111" ?
Т.е. ваш канал связи обладает своего рода интеллектом ?

При чем тут интеллект? Код передается как амплитуда одного периода синусоиды. имеется 16 градаций амплитуды и таким образом один период кодирует 4 бита. Но вследствие помех в канале измерение иногда дает результат, отличающийся на единицу.
Go to the top of the page
 
+Quote Post
des00
сообщение Nov 7 2011, 16:54
Сообщение #9


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(777777 @ Nov 7 2011, 07:15) *
Да, но исправляется всё слово как бы сильно оно ни испортилось. Даже если все 0 превратятся во все 1. У меня же обычно если происходит ошибка, то это выражается в том, что число становится на 1 больше или меньше. То есть 1000 может превратиться в 0111, но в 0000 - практически исключено. Может есть коды, которые пользуются этим свойством?

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

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


--------------------
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Nov 7 2011, 17:05
Сообщение #10


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(des00 @ Nov 7 2011, 21:54) *
код грея даст вам расстояние до соседа +-1 а код хеминга требуемую вами защиту.

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


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
des00
сообщение Nov 7 2011, 17:12
Сообщение #11


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(GetSmart @ Nov 7 2011, 11:05) *
Я так понимаю, что здесь не цифровой формат данных, а псевдо-аналоговый. И видимо, кроме всего прочего, коды, исправляющие ошибки, нужно будет передавать в этом же аналоговом формате. Ну и они тоже могут исказиться.

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


--------------------
Go to the top of the page
 
+Quote Post
paskal
сообщение Nov 7 2011, 18:27
Сообщение #12


Местный
***

Группа: Свой
Сообщений: 352
Регистрация: 29-10-06
Из: Тула
Пользователь №: 21 769



Цитата(777777 @ Nov 7 2011, 15:15) *
Да, но исправляется всё слово как бы сильно оно ни испортилось. Даже если все 0 превратятся во все 1. У меня же обычно если происходит ошибка, то это выражается в том, что число становится на 1 больше или меньше. То есть 1000 может превратиться в 0111, но в 0000 - практически исключено. Может есть коды, которые пользуются этим свойством?

Вот как так происходит, что при прохождении через цифровой канал число 1000 может превратится в 0111, но не может в 0000? Не бывает такого. Поэтому и коды исправляют всё. Сдается мне, что вы на самом деле вы говорите не об ошибках, а о шумах. И задачу надо ставить как то по другому - искать не код исправления ошибок, а какой то фильтр например.
Go to the top of the page
 
+Quote Post
Serg76
сообщение Nov 7 2011, 18:44
Сообщение #13


Профессионал
*****

Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775



Цитата(777777 @ Nov 7 2011, 16:15) *
Да, но исправляется всё слово как бы сильно оно ни испортилось. Даже если все 0 превратятся во все 1. У меня же обычно если происходит ошибка, то это выражается в том, что число становится на 1 больше или меньше. То есть 1000 может превратиться в 0111, но в 0000 - практически исключено. Может есть коды, которые пользуются этим свойством?

Так у вас действительно последовательный код. Примените Грея для начала как советовал des00 + Хемминг для исправления однократной ошибки
Go to the top of the page
 
+Quote Post
i-mir
сообщение Nov 7 2011, 19:03
Сообщение #14


Частый гость
**

Группа: Свой
Сообщений: 197
Регистрация: 17-06-10
Из: Киев
Пользователь №: 57 986



Цитата(777777 @ Nov 7 2011, 19:04) *
При чем тут интеллект? Код передается как амплитуда одного периода синусоиды. имеется 16 градаций амплитуды и таким образом один период кодирует 4 бита. Но вследствие помех в канале измерение иногда дает результат, отличающийся на единицу.


Так отож. И при чем здесь кодирование? У вас проблемы с измерениями а не в канале связи.
Вы принципиально решаете не ту задачу. Лучше решить вопросы с 4-х битным АЦП.
А самый младший бит будет гулять - тут уж закон природы АЦП. Нужно 5 разрядов.
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Nov 7 2011, 19:19
Сообщение #15


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(i-mir @ Nov 8 2011, 00:03) *
Так отож. И при чем здесь кодирование? У вас проблемы с измерениями а не в канале связи.

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

Сообщение отредактировал GetSmart - Nov 7 2011, 19:19


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post

10 страниц V   1 2 3 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 12:44
Рейтинг@Mail.ru


Страница сгенерированна за 0.01496 секунд с 7
ELECTRONIX ©2004-2016