ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
21 ноября
95274
Evgeny_CD (26.07.2007 02:48, просмотров: 2359)
Экономное кодирование в канале связи. Интересно, как называется то, что я "изобрел"? Есть канал связи. За одну атомарную транзакцию он передает word бит. Есть поток информации. Он разбит на блоки. Нам надо получить синхронизацию на приеме, т.е. четко выделять начало блока. Банить ради этого бит в word - преступление (например, [6:0] - это всегда данные, а 7 бит - это типа управление) для 8 битных каналов связи. Или даже целый word, считая, что все, что со старшим битом =1 контрольная информация. Байт стаффинг не эффективен в случае неравномерной статистики данных - а вдруг наш "esc" байт как раз популярный... Алгоритм таков. Прием. Приняли word. Смотрим по таблице - он, оказывается кодирует m информационных бит и k контрольных. Контрольные обрабатываем, информационные засовываем в сдвиговый регистр. Или регистры, распарсив сообщение на битовые поля согласно контрольным данным - тоже очень удобно, сразу имеем структуру для обработки. Передача. Берем word бит из буфера. Смотрим по таблице. Если такая комбинация не противоречит контрольным последовательностям - передаем в лоб. если иначе - берем word-1 бит и снова смотрим. Далее до полного удовлетворения. Стойкость к ошибкам. Биты в канале не утекут :), но вот инвертироваться могут. ну что же, значит мы потерям в общем случае максимум два кадра. Можно построить стратегию с дополнительными буферами, который будут хранить предысторию, и пытаться декодировать сообщение задним числом, когда мы приняли правильный кадр, и понимаем, что перед ним что-то было. например, применить какую-нибудь экономную ECC. Типа той, кторая применяется в NAND - что-то типа 16 байт на 256 информационных корректируют одиночную ошибку в этих 256 байтах. Кстати, если хорошо пошаманить с деперемежением, то можно поверх RS-232 сделать протокол, который будет даже потерю байта из-за сбоя синхронизации корректировать. Если использовать что-то типа БЧХ (32, 21). Для кодирования и декодироания такой хрени как раз и пригодятся 60 МГц мелких армов (нехрен им со всей 60 Мгц мощью клавиатуру в цикле опрашивать) :) Я не верю, что я в силу особой гениальности первым додумался до такого. Как это называется???