реклама на сайте
подробности

 
 
> Кодирование радиоканала
Pasha_a13
сообщение Mar 25 2015, 21:39
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 166
Регистрация: 8-09-09
Из: Украина
Пользователь №: 52 244



Добрый день!

Прошу прощения если подобная тема уже поднималась.
Возникла проблема - необходимо обеспечить помехоустойчивость радиоканала.
Есть уже готовое железо, собранное на TXC101 и TRC101, частота 433,92МГц. Железо менять нельзя, могу только программно улучшать что-то.
Канал односторонний, т.е. полноценную передачу данных с ACK сделать не получается. Соответственно стоит задача обеспечить максимальную помехоустойчивость
отправляемой информации.
Мне необходимо передавать пакеты длиной порядка 500 байт. Скорость 9600.
Однако не хотелось бы сильно наращивать размер пакета, т.к. это удлинит время передачи.
Передавать по несколько раз одни и те же пакеты тоже не сильно хорошо, т.к. передаваемые данные меняются постоянно(где-то раз в секунду) и потому очень желательно чтобы каждый пакет доходил максимально полным(максимально восстановленным).
Посоветуйте пожалуйста как сделать правильно:
- сначала попытаться ужать исходные данные а потом закодировать чем-то типа кодов Хемминга?
- или при помехоустойчивом кодировании нежелательна предварительное сжатие (архивация) данных?
- стоит ли использовать перемежение(перемешивание) для лучшего восстановления битых блоков данных?
- какое кодирование лучше применить? (у меня контроллер atmega8 , не сильно много места свободного и вычислительной мощности)
- насколько сильно разрастается размер пакета при кодировании позволяющем восстановить порядка 25-50% битого пакета?

Я читал про коды Рида Соломона но я думаю наврядле я смогу реализовать нечто подобное.
Коды Хемминга я так понимаю проще будет реализовать, но достаточно ли мне будет этого.
Какие есть оптимальные варианты?

Спасибо!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
_4afc_
сообщение Mar 26 2015, 06:50
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 262
Регистрация: 13-10-05
Из: Санкт-Петербург
Пользователь №: 9 565



Цитата(Pasha_a13 @ Mar 26 2015, 00:39) *
- стоит ли использовать перемежение(перемешивание) для лучшего восстановления битых блоков данных?


Перемежение вам поможет только если вы будете разбивать свои 500 байт на несколько кусков и эти куски отдельно обрабатывать.

Т.е. если, например взять 4608 бит, разбить на 128 кусков по 36 бит и закодировать БЧХ(36,48) который исправляет 2 ошибки, а затем перемешать куски, чтобы сначала шли первые биты из каждого, затем вторые и т.д. - то из переданных 6144 бит могут быть востановленны после повреждения - 256.
Другими словами помеха длительностью 26мС вам будет не страшна при 9600бод, если не собьёт синхронизацию.

PS: Всё вышеизложенное я привёл в качестве примера для чего нужно перемежение, реализовывать 128 БЧХ на атмеге не стоит...
Go to the top of the page
 
+Quote Post
Maverick
сообщение Mar 26 2015, 07:08
Сообщение #3


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



В принципе, если Хеминг применить к каждому байту, то помехозащищенность будет не плохая
Можно для этих целей поставить внешнюю маленькую ПЛИС, которая будет выполнять декодирование и кодирование по Хемингу
ссылка на zip архив

И в этом случае количество передаваемой информации будет избыточной (плата за помехозащищенность) примерно на 1/3.
Лучше по помехозащищенности будет LDPC, которые я ранее предложил (мое мнение)


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 03:39
Рейтинг@Mail.ru


Страница сгенерированна за 0.01311 секунд с 7
ELECTRONIX ©2004-2016