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

 
 
> Кодирование радиоканала
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
Ответов (1 - 8)
Maverick
сообщение Mar 25 2015, 21:57
Сообщение #2


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

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



Цитата(Pasha_a13 @ Mar 25 2015, 23:39) *
Добрый день! Возникла проблема - необходимо обеспечить помехоустойчивость радиоканала. ... Какие есть оптимальные варианты?

Как вариант (ресурсоемкое):
LDPC (irreglar or regular) на 2/3, т.е. 1/3 избыточная информация будет
Хотя все зависит от кол-во памяти и требованием к времени обработки...


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

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


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

Группа: Свой
Сообщений: 1 386
Регистрация: 5-04-05
Из: моська, RF
Пользователь №: 3 863



Цитата(Pasha_a13 @ Mar 26 2015, 00:39) *
- сначала попытаться ужать исходные данные

Какой смысл? Если один раз сожмётся в 100 байт а другой раз в 499 то что будете делать?

Цитата(Pasha_a13 @ Mar 26 2015, 00:39) *
а потом закодировать чем-то типа кодов Хемминга?

Исправляет одну-единственную битовую ошибку.

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

Не имеет никакого значения.

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

Это самый последний аспект вашей проблемы и будет зависеть от всего остального.

Цитата(Pasha_a13 @ Mar 26 2015, 00:39) *
- какое кодирование лучше применить? (у меня контроллер atmega8 , не сильно много места свободного и вычислительной мощности)
Я читал про коды Рида Соломона но я думаю наврядле я смогу реализовать нечто подобное.

Рид-Соломон это чуть ли не самое простое, что вы можете применить. Ну БЧХ ещё.

Цитата(Pasha_a13 @ Mar 26 2015, 00:39) *
- насколько сильно разрастается размер пакета при кодировании позволяющем восстановить порядка 25-50% битого пакета?

:-)))))))))))) 50% невозможно. Сгенерите случайный блок данных и угадаете 50% битов реального пакета :-)))))))
Около 25% битовых ошибок теоретически можно исправить при скорости кода 1/4 (это значит полезной информации 1/4), если он работает на пределе Шеннона. Но вы к нему приблизитесь не ближе чем на несколько дБ.
Go to the top of the page
 
+Quote Post
Ivan55
сообщение Mar 26 2015, 02:55
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 212
Регистрация: 17-01-12
Пользователь №: 69 640



а поподробнее, как передаете сигнал? какая модуляция? ОСШ на входе демодулятора?
Go to the top of the page
 
+Quote Post
Lmx2315
сообщение Mar 26 2015, 03:47
Сообщение #5


отэц
*****

Группа: Свой
Сообщений: 1 729
Регистрация: 18-09-05
Из: Москва
Пользователь №: 8 684



..если данные - телеметрия, наверное достаточно быть уверенным в том что пакет пришёл верный.
Может вам не нужно ничего восстанавливать а достаточно надёжной контрольной суммы в конце пакета, плюс их дублирование.
А можно передавать пакеты вдвое медленней - у вас при той же выходной мощности будет на 3 Дб С\ш лучше.


--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0
SHA-256
Go to the top of the page
 
+Quote Post
des00
сообщение Mar 26 2015, 05:20
Сообщение #6


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(Pasha_a13 @ Mar 26 2015, 05:39) *
у меня контроллер atmega8 , не сильно много места свободного и вычислительной мощности

вот на этом тему можно и закрыть. из доступного защитить кодом хэминга (7,4) тетрады. правда избыточность будет..... либо CRC для фильтрации на приемной стороне.


--------------------
Go to the top of the page
 
+Quote Post
V_G
сообщение Mar 26 2015, 06:01
Сообщение #7


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

Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



Я на атмеге на посылке 6 байт и контрольной сумме 2 байта исправляю табличным способом все одиночные и двойные ошибки, а также пакетные (идущие подряд) тройные и четверные. Теоретически на моем коде делением полиномов можно исправлять и все тройные, но алгоритм деления сложный, обошелся таблицей.
Код из стандарта MPT-1327, описан в документации на модемы CML FX809,429,829
Go to the top of the page
 
+Quote Post
_4afc_
сообщение Mar 26 2015, 06:50
Сообщение #8


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

Группа: Свой
Сообщений: 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
Сообщение #9


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

Группа: Модераторы
Сообщений: 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 Текстовая версия Сейчас: 24th July 2025 - 01:56
Рейтинг@Mail.ru


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