Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум Picbasic.ru » Электроника » Идеи » Помехоустойчивое кодирование
Помехоустойчивое кодирование
xvovanx Дата: Чт, 13.12.2018, 00:30  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 374
Репутация: 26   ±
Замечания:   ±
На сайте с 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
ЯНДЕКС Дата: 13.12.2018
brown Дата: Чт, 13.12.2018, 14:39  |                                                                                                                Сообщение # 2
Группа: Модераторы
Ранг:  Помогаю всем
Сообщений: 356
Репутация: 12   ±
Замечания:   ±
На сайте с 18.09.2007

Статус: Offline

Первое что пришло на ум: еще во время учебы сказали - код Хемминга. Как оно там работает - хз. Возможно для данной задачи будет избыточным. Вот описание , может что-то разъяснит.

Век живи - век учись! К концу жизни поймешь, что ничего не знаешь...
xvovanx Дата: Чт, 13.12.2018, 17:21  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 374
Репутация: 26   ±
Замечания:   ±
На сайте с 02.05.2013

Статус: Offline

Хемминг, как и Соломон, как и матричный метод при учебе еще 30лет назад были перелопачены (были даже отдельные предметы, связанные с этим). Но всюду голая теория, без програмной поддержки и железа. Всюду фигурируют лишь термины "берем", "добавляем", "убираем", "получаем". А вот чтобы програмно эти комбинации проверочных битов добавить, убрать и отфильтровать, нужно голову поломать и мозгами пораскинуть cool

П.С.мой код будет еще избыточнее, чем у Хемминга  wink , чтоб ни одна посылка сигнала не пропала, в данном проекте это очень важно.

Сообщение отредактировал xvovanx - Чт, 13.12.2018, 17:39
Aleksey_174 Дата: Сб, 15.12.2018, 07:49  |                                                                                                                Сообщение # 4
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 82
Репутация: 14   ±
Замечания:   ±
На сайте с 22.01.2017

Статус: Offline

Тщательная проверка всей информации, как правило приводит к увеличению времени, а это приводить конце концов от ее отказа, суммирование CRC помоему лучший вариант для проверки т.к при передачи к примеру 8 байт и 9 его проверка, займет меньше времени даже, если код не верный и будет повторная отправка, чем проверять каждый и отвечать да нет, устройству т.к на переключение контроллера с выхода на вход занимает не мало времени. Я лично использую при проверки  простой код ,посылаю байт и инвертированный байт и то где это необходимо.
П.С. как правило при передачи по воздуху, если помехи идут, то и дальнейшая передача будет неверной в этот момент времени, поэтому лучше перекурить.
xvovanx Дата: Вс, 16.12.2018, 21:27  |                                                                                                                Сообщение # 5
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 374
Репутация: 26   ±
Замечания:   ±
На сайте с 02.05.2013

Статус: Offline

В моем случае система будет без обратной связи, т.е. нужно обязательно поймать  и обработать одну отосланную посылку информации. К тому же будут сильные помехи (работа станков).
Отсылать скажем две/три посылки с CRC, тоже не выход - в одном случае обработается первая посылка, в другом случае вторая, а временные задержки (отослал-принял) должны быть одинаковыми (планируется использование в беспроводном измерительном датчике станка).

Сообщение отредактировал xvovanx - Вс, 16.12.2018, 21:42
Aleksey_174 Дата: Пт, 21.12.2018, 16:20  |                                                                                                                Сообщение # 6
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 82
Репутация: 14   ±
Замечания:   ±
На сайте с 22.01.2017

Статус: Offline

А какой передатчик и приемник, хочешь использовать?
xvovanx Дата: Пт, 21.12.2018, 22:50  |                                                                                                                Сообщение # 7
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 374
Репутация: 26   ±
Замечания:   ±
На сайте с 02.05.2013

Статус: Offline

Цитата Aleksey_174 ()
А какой передатчик и приемник, хочешь использовать?


такого типа
Aleksey_174 Дата: Сб, 22.12.2018, 12:00  |                                                                                                                Сообщение # 8
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 82
Репутация: 14   ±
Замечания:   ±
На сайте с 22.01.2017

Статус: Offline

Именно эти не пробовал, но подобные китайские на 433 использовал. На деле передатчики слабоватые, а приемники ловят все помехи от устройств, особенно от семисегментных индикаторов, если они запитаны на одном питании,(пробовал и экранировать и стабилизировать напряжение), частота у них что-ли совпадает, когда осциллографом смотрел удивлялся, как вообще из кучи сигналов, контроллер что - то ловил.
В итоге иногда все равно сигнал не ловит, даже если передатчик на одном и том же месте и это при условии, что контроллер только и занят поиском сигнала.
xvovanx Дата: Сб, 22.12.2018, 17:00  |                                                                                                                Сообщение # 9
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 374
Репутация: 26   ±
Замечания:   ±
На сайте с 02.05.2013

Статус: Offline

мощности передатчика мне вполне хватает - приемник стоит рядом на расстоянии 1 метра. Насчет мусора в эфире я тоже в курсе, поэтому и решил кодированием ошибки исправлять.
Меджикивис Дата: Ср, 17.04.2019, 21:27  |                                                                                                                Сообщение # 10
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 32
Репутация: 6   ±
Замечания:   ±
На сайте с 11.04.2016

Статус: Offline

Самая большая помехозащищенность, которая мне встречалась - был древний DTMF. Есть спец. микросхемы шифраторы/дешифраторы.
xvovanx Дата: Чт, 18.04.2019, 13:32  |                                                                                                                Сообщение # 11
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 374
Репутация: 26   ±
Замечания:   ±
На сайте с 02.05.2013

Статус: Offline

DTMF как и ИК передача не подходят из-за большой длительности посылок.

П.С. остановился на передаче двойного сигнала с избыточностью пять по Хеммингу, перешел на 2,4ГГц модули.

Сообщение отредактировал xvovanx - Чт, 18.04.2019, 13:37
ЯНДЕКС Дата: 18.04.2019
Форум Picbasic.ru » Электроника » Идеи » Помехоустойчивое кодирование
  • Страница 1 из 1
  • 1
Поиск: