crc8 даласса
- Сообщения: 502
- Зарегистрирован: Чт фев 16, 2012 19:00:11
- Реклама
Спасибо за книгу ,скачал но там сильно уж сложно -это я не потянул .Зато нарыл одну вещь http://habrahabr.ru/post/140611/.Научился, сейчас проктикуюсь в этом. Есть вопрос код хеминга который вот сдесь http://habrahabr.ru/post/140611/ он только одиночные ошибки находит или же множество допустим более 5-9?
я ещё крестиком умею вышивать
Чтобы определить наличие ошибок используйте CRC по битам данных. А вот если ошибки нашлись, тогда можно и Хэммингом попробовать восстановить. Затем проверить снова по CRC.
Вариант на хабре позволяет исправлять однократные и обнаруживать двукратные ошибки в блоке.
Вариант на хабре позволяет исправлять однократные и обнаруживать двукратные ошибки в блоке.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Если я вас правильно понял то сперва 1-сообщение+crc.2-кодировать кодом хеминга.3-отправить данные.после получения расчитать crc.если всё хорошо то использавать,если данные пришли с ошибкой исправлять кодом хеминга.
я ещё крестиком умею вышивать
Да, только не забудьте отделить котлеты от мух биты данных от дополнительных битов по Хэммину и CRC по данным.
А можно ещё и биты по Хэммингу обсчитать CRC. Тогда:
1) если CRC по данным совпадает, то - данные целы;
2) если CRC по данным НЕ совпала, а CRC по битам Хэмминга совпала, то восстановить по Хэммингу и проверить CRC по данным, если CRC по данным совпадает, то - данные целы;
3) если обе CRC не совпали, то, IMHO, надо передавать данные по новой.
А можно ещё и биты по Хэммингу обсчитать CRC. Тогда:
1) если CRC по данным совпадает, то - данные целы;
2) если CRC по данным НЕ совпала, а CRC по битам Хэмминга совпала, то восстановить по Хэммингу и проверить CRC по данным, если CRC по данным совпадает, то - данные целы;
3) если обе CRC не совпали, то, IMHO, надо передавать данные по новой.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
- Реклама
хороше с этим понятно.если я правелно понял код хеминга может востановить только 1 битные ошибку в слове или больше?
я ещё крестиком умею вышивать
Такой как на хабре, да. В общем случае можно построить более мощный код (по другому алгоритму), который может исправлять и определять большее количество ошибок. Теоретическую основу можно посмотреть там где сложно
- Уоррен Г.Алгоритмические трюки для программистов, глава 15, стр 357.
Есть ещё коды с коррекцией ошибок на основе полей Галуа. Если не ошибаюсь, то они использовались в Арвиде (кто помнит такой аппарат знают, что там исправлялись трёхкратные ошибки в блоке)
Добавил спустя пару минут.
Вот, например.
Есть ещё коды с коррекцией ошибок на основе полей Галуа. Если не ошибаюсь, то они использовались в Арвиде (кто помнит такой аппарат знают, что там исправлялись трёхкратные ошибки в блоке)
Добавил спустя пару минут.
Вот, например.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
в вашем ответе немного я не понял.1что такое на хабре (из вашего текста).2в книге которую вы мне рекомендовали для чтения информация очень сложная для моего начинающего понимания.для начало пожалуста объясните как мне научится вычислять растояние хеминга допустим есть число0111000101110111,ведь я немогу просто выбрать позиции12345?
я ещё крестиком умею вышивать
Про хабр.
Чтобы разобраться, а не просто повторить частный случай, вам придётся прочитать и вникнуть.
Про вычисление расстояния Хэмминга там, в книге, тоже написано! И вы не читали! Да не то что не читали, даже не просматривали эту книжку. Иначе не задавали бы такой глупый вопрос.FILIK писал(а):Зато нарыл одну вещь http://habrahabr.ru/post/140611/
Чтобы разобраться, а не просто повторить частный случай, вам придётся прочитать и вникнуть.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
возможно я вас не так понял,страница которую вы указали её там нет.книга состоит из 282 страниц.привожу как выглядит то что я читал.если вас не затруднит скиньте именно то что вы рекомендовали для ознакомления.
- Вложения
-
- Новый текстовый документ.txt
- (728 байт) 230 скачиваний
-
- Новый текстовый документ.txt
- (728 байт) 241 скачивание
я ещё крестиком умею вышивать
У вас урезанное издание
http://radiokot.ru/forum/viewtopic.php? ... 1#p1887601
http://radiokot.ru/forum/viewtopic.php? ... 1#p1887601
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
за книгу огромное спасибо,начал разбираться.и сразу несколько выводов(если что-то не правильно исправте)1-код хеминга (еще раз повторюсь)исправляет один бит и детектирует двойные биты(ошибки).2сообщение разбивается на блок фиксированой длины+с добавлением контрольных бит(пример 10101010+контр.бты).3-не могу понять формулу на стр.358 тесть есть у меня число 10101010 +7 контрольных биn+1?
я ещё крестиком умею вышивать
Это неравенство определяет, так сказать, "минимальное" соотношение битов данных и проверочных битов для кодов с коррекцией ошибок. И всё.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
тоесть проверочных бит должно быть не меньше определённого количества но небольше самого сообщения если я правильно понял вас ув.Kavka.
я ещё крестиком умею вышивать
Это неравенство определяет минимальное количество проверочных битов для коррекции одной ошибки.
Ничего не мешает иметь проверочных битов больше чем битов данных. Тогда, например, можно составить код с коррекцией большего количества ошибок и детектирование ещё большего количества без возможности исправления.
Некоторые аспекты есть на стр. 372.
Ничего не мешает иметь проверочных битов больше чем битов данных. Тогда, например, можно составить код с коррекцией большего количества ошибок и детектирование ещё большего количества без возможности исправления.
Некоторые аспекты есть на стр. 372.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
- Сообщения: 193
- Зарегистрирован: Ср фев 16, 2011 22:58:23
Народ, помогите. У меня есть таблица рассчитанных (дизассемблиронных) значений CRC8-256 значений.
Есть допустим принятое сообщение: 0x05 0x06 0x00 0x01 0x00 0x00 0xDC, где 0xDC это CRC8
Как при помощи этой таблицы посчитать CRC? Как я понял: 0x05 = по таблице 0x3F итд. Но у нас же 6 байт. Что со значениями надо делать?
Не могу толковой информации найти как работать с табличным методом расчета CRC8. Просто не хочу себе голову забивать как обсчитывать CRC, полиномами всякими... Нету времени на это.
А всё, разобрался.
Необходимо первое число из таблицы взять, потом его ксорить со следующим. Получившийся результат снова из таблицы, и снова ксорить со следующим. И так все байты.
Код: Выделить всё
00h,5Eh,0BCh,0E2h,61h,3Fh,0DDh,83h,
0C2h,9Ch,7Eh,20h,0A3h,0FDh,1Fh,41h,
9Dh,0C3h,21h,7Fh,0FCh,0A2h,40h,1Eh,
5Fh,01h,0E3h,0BDh,3Eh,60h,82h,0DCh,
23h,7Dh,9Fh,0C1h,42h,1Ch,0FEh,0A0h,
0E1h,0BFh,5Dh,03h,80h,0DEh,3Ch,62h,
0BEh,0E0h,02h,5Ch,0DFh,81h,63h,3Dh,
7Ch,22h,0C0h,9Eh,1Dh,43h,0A1h,0FFh,
46h,18h,0FAh,0A4h,27h,79h,9Bh,0C5h,
84h,0DAh,38h,66h,0E5h,0BBh,59h,07h,
0DBh,85h,67h,39h,0BAh,0E4h,06h,58h,
19h,47h,0A5h,0FBh,78h,26h,0C4h,9Ah,
65h,3Bh,0D9h,87h,04h,5Ah,0B8h,0E6h,
0A7h,0F9h,1Bh,45h,0C6h,98h,7Ah,24h,
0F8h,0A6h,44h,1Ah,99h,0C7h,25h,7Bh,
3Ah,64h,86h,0D8h,5Bh,05h,0E7h,0B9h,
8Ch,0D2h,30h,6Eh,0EDh,0B3h,51h,0Fh,
4Eh,10h,0F2h,0ACh,2Fh,71h,93h,0CDh,
11h,4Fh,0ADh,0F3h,70h,2Eh,0CCh,92h,
0D3h,8Dh,6Fh,31h,0B2h,0ECh,0Eh,50h,
0AFh,0F1h,13h,4Dh,0CEh,90h,72h,2Ch,
6Dh,33h,0D1h,8Fh,0Ch,52h,0B0h,0EEh,
32h,6Ch,8Eh,0D0h,53h,0Dh,0EFh,0B1h,
0F0h,0AEh,4Ch,12h,91h,0CFh,2Dh,73h,
0CAh,94h,76h,28h,0ABh,0F5h,17h,49h,
08h,56h,0B4h,0EAh,69h,37h,0D5h,8Bh,
57h,09h,0EBh,0B5h,36h,68h,8Ah,0D4h,
95h,0CBh,29h,77h,0F4h,0AAh,48h,16h,
0E9h,0B7h,55h,0Bh,88h,0D6h,34h,6Ah,
2Bh,75h,97h,0C9h,4Ah,14h,0F6h,0A8h,
74h,2Ah,0C8h,96h,15h,4Bh,0A9h,0F7h,
0B6h,0FCh,0Ah,54h,0D7h,89h,6Bh,35hКак при помощи этой таблицы посчитать CRC? Как я понял: 0x05 = по таблице 0x3F итд. Но у нас же 6 байт. Что со значениями надо делать?
Не могу толковой информации найти как работать с табличным методом расчета CRC8. Просто не хочу себе голову забивать как обсчитывать CRC, полиномами всякими... Нету времени на это.
А всё, разобрался.
Необходимо первое число из таблицы взять, потом его ксорить со следующим. Получившийся результат снова из таблицы, и снова ксорить со следующим. И так все байты.


