| Помехоустойчивое кодирование | 
|  | 
| 
 
 
 
 | xvovanx | Дата: Чт, 13.12.2018, 00:30  |                                                                                                                Сообщение # 1 |  
 |   
 
 
 
 
  Группа:
  Модераторы
 
  Ранг: 
 
 Помогаю всем
 
  
 Сообщений: 
 
 
 363
 
 
 Замечания: ± На сайте с 02.05.2013
 
 
 Статус: 
 Offline
 
 | Вечер добрый! Занялся в одном проекте для передачи по радиоканалу помехоустойчивым кодированием и споткнулся вот на чем. Для примера упрощу, чтоб легче было объяснить. Допустим приемник принимает 4 вида сигналов без ошибок:
 00000000, 00001111, 11110000 и 11111111. При помехах сигналы будут с ошибками (то там то тут будут появляться нули или единицы). Вопрос вот в чем - какой можно придумать алгоритм декодирования, чтобы понять, что скажем коды с ошибками типа 01001101 или 10000111 это 00001111, а скажем 01110010 или 11100001 это 11110000? Тоже самое и по кодам, скажем 01110111=>11111111 или 10001000=>00000000.
 
 П.С. есть идея отдельно суммировать 4 младших бита и 4 старших. Если сумма 3 или 4, то биты в этой группе все будут единицы, если сумма 0 или 1 =>0000. Как бы программно это реализовать и попроще, а то создавать 8 переменных (каждую для своего бита), суммировать их и писать условия для анализа полученных сумм, как-то длинновато для программы выходит, особенно если в реале посылка будет не 8 битная, а скажем 10 или 12 битная.
 
 Сообщение отредактировал 
 
 xvovanx - Чт, 13.12.2018, 01:01
 
  |  
 |  |  |  | 
| 
 
 
 
 | brown | Дата: Чт, 13.12.2018, 14:39  |                                                                                                                Сообщение # 2 |  
 |   
 
 
 
 
  Группа:
  Пользователи
 
  Ранг: 
 
 Помогаю всем
 
  
 Сообщений: 
 
 
 331
 
 
 Замечания: ± На сайте с 18.09.2007
 
 
 Статус: 
 Offline
 
 | Первое что пришло на ум: еще во время учебы сказали - код Хемминга. Как оно там работает - хз. Возможно для данной задачи будет избыточным. Вот описание , может что-то разъяснит. 
 Век живи - век учись! К концу жизни поймешь, что ничего не знаешь...
 |  
 |  |  |  | 
| 
 
 
 
 | xvovanx | Дата: Чт, 13.12.2018, 17:21  |                                                                                                                Сообщение # 3 |  
 |   
 
 
 
 
  Группа:
  Модераторы
 
  Ранг: 
 
 Помогаю всем
 
  
 Сообщений: 
 
 
 363
 
 
 Замечания: ± На сайте с 02.05.2013
 
 
 Статус: 
 Offline
 
 | Хемминг, как и Соломон, как и матричный метод при учебе еще 30лет назад были перелопачены (были даже отдельные предметы, связанные с этим). Но всюду голая теория, без програмной поддержки и железа. Всюду фигурируют лишь термины "берем", "добавляем", "убираем", "получаем". А вот чтобы програмно эти комбинации проверочных битов добавить, убрать и отфильтровать, нужно голову поломать и мозгами пораскинуть  
 П.С.мой код будет еще избыточнее, чем у Хемминга
  , чтоб ни одна посылка сигнала не пропала, в данном проекте это очень важно. 
 Сообщение отредактировал 
 
 xvovanx - Чт, 13.12.2018, 17:39
 
  |  
 |  |  |  | 
| 
 
 
 
 | Aleksey_174 | Дата: Сб, 15.12.2018, 07:49  |                                                                                                                Сообщение # 4 |  
 |   
 
 
 
 
  Группа:
  Проверенные
 
  Ранг: 
 
 Новенький
 
  
 Сообщений: 
 
 
 16
 
 
 Замечания: ± На сайте с 22.01.2017
 
 
 Статус: 
 Offline
 
 | Тщательная проверка всей информации, как правило приводит к увеличению времени, а это приводить конце концов от ее отказа, суммирование CRC помоему лучший вариант для проверки т.к при передачи к примеру 8 байт и 9 его проверка, займет меньше времени даже, если код не верный и будет повторная отправка, чем проверять каждый и отвечать да нет, устройству т.к на переключение контроллера с выхода на вход занимает не мало времени. Я лично использую при проверки  простой код ,посылаю байт и инвертированный байт и то где это необходимо. П.С. как правило при передачи по воздуху, если помехи идут, то и дальнейшая передача будет неверной в этот момент времени, поэтому лучше перекурить.
 |  
 |  |  |  | 
| 
 
 
 
 | xvovanx | Дата: Вс, 16.12.2018, 21:27  |                                                                                                                Сообщение # 5 |  
 |   
 
 
 
 
  Группа:
  Модераторы
 
  Ранг: 
 
 Помогаю всем
 
  
 Сообщений: 
 
 
 363
 
 
 Замечания: ± На сайте с 02.05.2013
 
 
 Статус: 
 Offline
 
 | В моем случае система будет без обратной связи, т.е. нужно обязательно поймать  и обработать одну отосланную посылку информации. К тому же будут сильные помехи (работа станков). Отсылать скажем две/три посылки с CRC, тоже не выход - в одном случае обработается первая посылка, в другом случае вторая, а временные задержки (отослал-принял) должны быть одинаковыми (планируется использование в беспроводном измерительном датчике станка).
 
 Сообщение отредактировал 
 
 xvovanx - Вс, 16.12.2018, 21:42
 
  |  
 |  |  |  | 
| 
 
 
 
 | Aleksey_174 | Дата: Пт, 21.12.2018, 16:20  |                                                                                                                Сообщение # 6 |  
 |   
 
 
 
 
  Группа:
  Проверенные
 
  Ранг: 
 
 Новенький
 
  
 Сообщений: 
 
 
 16
 
 
 Замечания: ± На сайте с 22.01.2017
 
 
 Статус: 
 Offline
 
 | А какой передатчик и приемник, хочешь использовать? |  
 |  |  |  | 
| 
 
 
 
 | xvovanx | Дата: Пт, 21.12.2018, 22:50  |                                                                                                                Сообщение # 7 |  
 |   
 
 
 
 
  Группа:
  Модераторы
 
  Ранг: 
 
 Помогаю всем
 
  
 Сообщений: 
 
 
 363
 
 
 Замечания: ± На сайте с 02.05.2013
 
 
 Статус: 
 Offline
 
 | Цитата Aleksey_174 (  )  А какой передатчик и приемник, хочешь использовать?
 такого типа
 |  
 |  |  |  | 
| 
 
 
 
 | Aleksey_174 | Дата: Сб, 22.12.2018, 12:00  |                                                                                                                Сообщение # 8 |  
 |   
 
 
 
 
  Группа:
  Проверенные
 
  Ранг: 
 
 Новенький
 
  
 Сообщений: 
 
 
 16
 
 
 Замечания: ± На сайте с 22.01.2017
 
 
 Статус: 
 Offline
 
 | Именно эти не пробовал, но подобные китайские на 433 использовал. На деле передатчики слабоватые, а приемники ловят все помехи от устройств, особенно от семисегментных индикаторов, если они запитаны на одном питании,(пробовал и экранировать и стабилизировать напряжение), частота у них что-ли совпадает, когда осциллографом смотрел удивлялся, как вообще из кучи сигналов, контроллер что - то ловил. В итоге иногда все равно сигнал не ловит, даже если передатчик на одном и том же месте и это при условии, что контроллер только и занят поиском сигнала.
 |  
 |  |  |  | 
| 
 
 
 
 | xvovanx | Дата: Сб, 22.12.2018, 17:00  |                                                                                                                Сообщение # 9 |  
 |   
 
 
 
 
  Группа:
  Модераторы
 
  Ранг: 
 
 Помогаю всем
 
  
 Сообщений: 
 
 
 363
 
 
 Замечания: ± На сайте с 02.05.2013
 
 
 Статус: 
 Offline
 
 | мощности передатчика мне вполне хватает - приемник стоит рядом на расстоянии 1 метра. Насчет мусора в эфире я тоже в курсе, поэтому и решил кодированием ошибки исправлять. |  
 |  |  |  | 
| 
 
 
 
 | Меджикивис | Дата: Ср, 17.04.2019, 21:27  |                                                                                                                Сообщение # 10 |  
 | ![Меджикивис]()  
 
 
 
 
  Группа:
  Проверенные
 
  Ранг: 
 
 Начал соображать
 
  
 Сообщений: 
 
 
 25
 
 
 Замечания: ± На сайте с 11.04.2016
 
 
 Статус: 
 Offline
 
 | Самая большая помехозащищенность, которая мне встречалась - был древний DTMF. Есть спец. микросхемы шифраторы/дешифраторы. |  
 |  |  |  | 
| 
 
 
 
 | xvovanx | Дата: Чт, 18.04.2019, 13:32  |                                                                                                                Сообщение # 11 |  
 |   
 
 
 
 
  Группа:
  Модераторы
 
  Ранг: 
 
 Помогаю всем
 
  
 Сообщений: 
 
 
 363
 
 
 Замечания: ± На сайте с 02.05.2013
 
 
 Статус: 
 Offline
 
 | DTMF как и ИК передача не подходят из-за большой длительности посылок. 
 П.С. остановился на передаче двойного сигнала с избыточностью пять по Хеммингу, перешел на 2,4ГГц модули.
 
 Сообщение отредактировал 
 
 xvovanx - Чт, 18.04.2019, 13:37
 
  |  
 |  |  |  |