|
|
  |
Алгоритм CRC16 |
|
|
|
Apr 16 2010, 11:16
|

embarrassed systems engineer
    
Группа: Свой
Сообщений: 1 083
Регистрация: 24-10-05
Из: Осокорки
Пользователь №: 10 038

|
Цитата(vallav @ Apr 16 2010, 13:40)  Или Вы все же настаиваете, что для микроконтроллеров 16 битное сложение реализуется существенно сложнее 8 битного? Не-а, я такого не говорил - это Вы все мне упорно пытаетесь приписать данное утверждение  Цитата(vallav @ Apr 16 2010, 13:40)  И еще раз - я не утверждаю, что CRC хуже прямой суммы, я утверждаю, что прямая сумма не хуже CRC во многих случаях но много проще в реализации. Что значит "лучше-хуже"? Давайте уж разговаривать как инженеры а не как "гумонетарии" - в цифрах. Как можно разговаривать в цифрах? А очень просто - в нашем конкретном случае цифра заключена в величине вероятности что прийдет ошибочный пакет и эта ошибка не будет распознана. Такая вероятность вычисляется как сумма произведений вероятности возникновения на данной линии ошибка данного типа (распределение ошибок) на вероятость необнаружения данной ошибки проверочным кодом (определяется самим типом кода). Чтобы подсчитать конкретную цифру надо хорошо владеть теорией линейных кодов. Я эту теорию глубоко не изучал, но как инженер, просто готов воспользоваться выводами математиков - они уверяют что CRC обеспечит одну из наименьших вероятостей (при каких условиях врать не буду- при нормальном ли распределении, или при равномерном - не знаю). Поэтому, у Вас есть два варианта - изучить теорию линейных кодов и подсчитать эти вероятности для Ваших линий самому (и поделиться с нами результатами  ) для случаев арифметической суммы и для CRC, или просто поверить в готовые теоретические выводы, как это сделал я и многие другие. Возможно, у нас на форуме есть люди более глубоко владеющие математической стороной вопроса - они меня поправят или даже приведут цифры. Я, увы, за разумное (как для форумной дискусcии) время сделать этого не могу.
|
|
|
|
|
Apr 16 2010, 11:49
|

Гуру
     
Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954

|
Цитата(vallav @ Apr 16 2010, 13:40)  Я разве говорил, что многобитовая помеха - это когда все 16 бит перевернуты? Не, не обязательно, часть бит из этих 16 может быть не перевернутой. Ну, дык - извините! Если передавали: 1010101010101010, а приняли: 1 11010 0010101 110 в результате действия помехи при передачи всей этой информации, то это - три одиночные ошибки, а не - "множественное поражение шестнадцати бит". PS. Вы этим термином, наверно, именуете, любую последовательность из 16 бит, в которой несколько битов приняты неверно?
|
|
|
|
|
Apr 16 2010, 15:56
|
Частый гость
 
Группа: Участник
Сообщений: 197
Регистрация: 8-04-05
Пользователь №: 3 977

|
Цитата(Палыч @ Apr 16 2010, 16:04)  Ну, дык - извините! Если передавали: 1010101010101010, а приняли: 1110100010101110 в результате действия помехи при передачи всей этой информации, то это - три одиночные ошибки, а не - "множественное поражение шестнадцати бит". Ну да, это три одиночные ошибки, расположенные компактно. Или это - множественное однократное поражение длиной не более 16 бит. Вы похоже с помехами никогда не сталкивались, если решили, что помеха аккуратненько переворачивает все 16 бит в передаваемом пакете. Цитата(Палыч @ Apr 16 2010, 16:04)  PS. Вы этим термином, наверно, именуете, любую последовательность из 16 бит, в которой несколько битов приняты неверно? Я этим термином именую ситуацию, когда ошибок много, но все ни в пределах 16 последовательных бит. Много - это от одной до 16, сколько точно - не известно. Это типичная ситуация, когда на линии возможна редкая мощная помеха.
|
|
|
|
|
Apr 16 2010, 16:03
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(vallav @ Apr 16 2010, 13:40)  И еще раз - я не утверждаю, что CRC хуже прямой суммы, я утверждаю, что прямая сумма не хуже CRC во многих случаях.. Вероятностно ХУЖЕ во всех случаях, кроме одного единственного - одиночная ошибка. В этом случае она ЛУЧШЕ. Все, достаточно толочь воду в ступе. Цитата(vallav @ Apr 16 2010, 19:11)  Я этим термином именую ситуацию, когда ошибок много, но все ни в пределах 16 последовательных бит. А с помехой Вы как договариваетесь, о том, что-бы эти биты еще и располагались выровненно относительно размера суммируемого фрейма?
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Apr 16 2010, 17:19
|
Частый гость
 
Группа: Участник
Сообщений: 197
Регистрация: 8-04-05
Пользователь №: 3 977

|
Цитата(zltigo @ Apr 16 2010, 20:18)  Вероятностно ХУЖЕ во всех случаях, кроме одного единственного - одиночная ошибка. В этом случае она ЛУЧШЕ. Все, достаточно толочь воду в ступе. Откуда такая уверенность? Вроде для обнаружения многобитной одиночной ошибки CRC хуже. Лучше оно только для обнаружения двух разнесенных по блоку однобитных ошибок. Цитата(zltigo @ Apr 16 2010, 20:18)  А с помехой Вы как договариваетесь, о том, что-бы эти биты еще и располагались выровненно относительно размера суммируемого фрейма? А зачем? Разве я где то говорил про какую то выровненность?
|
|
|
|
|
Apr 17 2010, 13:44
|
Частый гость
 
Группа: Участник
Сообщений: 197
Регистрация: 8-04-05
Пользователь №: 3 977

|
Цитата(zltigo @ Apr 16 2010, 23:04)  Да Вы даже об этом и не задумывались, и сейчас не думаете, судя по изобретению дивного термина "многобитная одиночная ошибка"  . Так поясните. Вдруг это Вы не задумывались? И заодно предложите другой термин для многибной ошибки, локализованной в пределах n последовательных бит ( ошибки, вызванные одиночной мощной помехой ).
|
|
|
|
|
Apr 17 2010, 14:16
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(vallav @ Apr 17 2010, 16:59)  И заодно предложите другой термин для многибной ошибки, локализованной в пределах n последовательных бит ( ошибки, вызванные одиночной мощной помехой ). Другие термины для изобретенного Вам сферического коня в вакууме не требуются. Для битового потока одиночная ошибка это бит. Все остальные это множественные ошибки. Их локализация в пределах произвольного количества бит, отстоящих на произвольное количество бит от начала фрейма ничего не дает для простейшего суммирования.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Apr 17 2010, 14:30
|
Частый гость
 
Группа: Участник
Сообщений: 197
Регистрация: 8-04-05
Пользователь №: 3 977

|
Цитата(zltigo @ Apr 17 2010, 18:31)  Другие термины для изобретенного Вам сферического коня в вакууме не требуются. Для битового потока одиночная ошибка это бит. Все остальные это множественные ошибки. Их локализация в пределах произвольного количества бит, отстоящих на произвольное количество бит от начала фрейма ничего не дает для простейшего суммирования. Вы забыли пройтись по первому пункту. Кто там мало подумал? А по поводу вида ошибок - ошибки бывают разные. Под те, что Вы описали - как раз CRC заточено. Это канал с постоянным но небольшим шумом. Но есть и другие например, когда в канале возможна редкая но мощная помеха. В этом случае сбойных битов много, но они в одном месте сосредоточены. Вот для этого CRC мало пригодна.
|
|
|
|
|
Apr 17 2010, 15:11
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(vallav @ Apr 17 2010, 17:45)  Вы забыли пройтись по первому пункту. Кто там мало подумал? Зачем повторяться? Но если хотите, то последний раз - Вы, и продолжаете бездумствовать  , даже после лобовых указаний. Ну так имеющий разум да поймет, ну хотя-бы со временем. Я все сказал. Цитата Вот для этого CRC мало пригодна. Притчу про повторение слова халва слышать приходилось? Можете продолжать, но мне надоело. Цитата(mdmitry @ Apr 17 2010, 18:20)  В этом случае требуется помехоустойчивое кодирование. Не то. В данном случае речь идет просто о банальной вероятности обнаружения ошибки.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|