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

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> Помехоустойчивое кодирование, Недостатки турбокодов
Goose
сообщение Sep 9 2013, 11:41
Сообщение #1


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

Группа: Свой
Сообщений: 165
Регистрация: 26-02-10
Из: Москва
Пользователь №: 55 683



Всем доброго времени суток,
Проектирую радиоканал, выявилась такая проблема:
В качестве помехоустойчивого кода собирался использовать сверточный турбо код (готовое ip-ядро), но так как вероятность ошибки в нем заметно зависит от размера блока, то получается что для разных пакетов (разной длины) помехозащищенность будет существенно различаться. К примеру, пакет пришел, а подтверждение не придет, так как оно менее защищено в связи с самим алгоритмом (но это крайний случай, его можно и отдельно разрешить, кодируя подтверждения каким нибудь другим более крутым кодом). привожу график из документации, на который я опираюсь.
Прикрепленное изображение

Можно конечно делать пакет из N блоков (N-любое), но так сразу падает помехоустойчивость.

Хотелось бы одинаковой помехоустойчивости для пакетов разной длины. Какие бы вы посоветовали варианты? Может быть другие помехоустойчивые коды?
Go to the top of the page
 
+Quote Post
petrov
сообщение Sep 9 2013, 14:33
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(Goose @ Sep 9 2013, 15:41) *
Хотелось бы одинаковой помехоустойчивости для пакетов разной длины. Какие бы вы посоветовали варианты? Может быть другие помехоустойчивые коды?


Для приближения к пределу Шеннона принципиально требуется большая длина блока от нескольких тысяч, на коротких такой же помехоустойчивости достичь невозможно.
Go to the top of the page
 
+Quote Post
DASM
сообщение Sep 9 2013, 15:23
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



Добавлю из своего опыта, в канале с замиранием нужно делать перемежение, это не я открыл, но это действительно важно, по опыту

«на пальцах» очень хорошо расжевано у Б. Скляра

На AWGN не нужно, а именно на радио. Если объекты нестационарны в пространстве
Go to the top of the page
 
+Quote Post
Grumbler_2002
сообщение Sep 9 2013, 16:43
Сообщение #4


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

Группа: Свой
Сообщений: 154
Регистрация: 5-01-05
Из: г. Зеленоград
Пользователь №: 1 817



В принципе, в прилагаемом файле популярно объясняется суть ограничений, связанных с длиной и скоростью помехоустойчивого кода.
Прикрепленные файлы
Прикрепленный файл  133K.pdf ( 590.23 килобайт ) Кол-во скачиваний: 129
 
Go to the top of the page
 
+Quote Post
Grumbler_2002
сообщение Sep 9 2013, 19:34
Сообщение #5


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

Группа: Свой
Сообщений: 154
Регистрация: 5-01-05
Из: г. Зеленоград
Пользователь №: 1 817



Туда же в тему.
Прикрепленные файлы
Прикрепленный файл  44it07_macmullan.pdf ( 608.25 килобайт ) Кол-во скачиваний: 110
 
Go to the top of the page
 
+Quote Post
Goose
сообщение Sep 17 2013, 10:22
Сообщение #6


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

Группа: Свой
Сообщений: 165
Регистрация: 26-02-10
Из: Москва
Пользователь №: 55 683



Спасибо, решил делать постоянную длину пакета.
Go to the top of the page
 
+Quote Post
Goose
сообщение Sep 20 2013, 11:20
Сообщение #7


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

Группа: Свой
Сообщений: 165
Регистрация: 26-02-10
Из: Москва
Пользователь №: 55 683



Передумал делать постоянную длину пакета ,слишком уж большие затраты при частых маленьких пакетах.
Посоветовали посмотреть в стандарт 802.15.4, так там используется такая схема кодирования с переменной длиной пакета:
сначала Рид-соломон (K+8,K), потом сверточный код (кодовая скорость 1/2). Так у них получается итоговая кодовая скорость 0.44.
Хотелось бы понять, действительно ли здесь не существенно на помехоустойчивость влияет размер пакета (вопрос в том, не так ли как в турбокодах вероятность ошибки от длины пакета гуляет в тысячи и десятки тысяч раз)?
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
krux
сообщение Sep 20 2013, 17:28
Сообщение #8


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

Группа: Свой
Сообщений: 1 700
Регистрация: 2-07-12
Из: дефолт-сити
Пользователь №: 72 596



как правило в свежих стандартах помехоустойчивое кодирование жестко связано с выбором вида модуляции, и отображением конкретных бит после демодулятора в FEC-декодер, это позволяет оценить помехозащищенность в реальных типовых ситуациях, а не в сферическом вакууме.


--------------------
провоцируем неудовлетворенных провокаторов с удовольствием.
Go to the top of the page
 
+Quote Post
Dr.Alex
сообщение Sep 21 2013, 15:51
Сообщение #9


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

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



Цитата(Goose @ Sep 20 2013, 14:20) *
Передумал делать постоянную длину пакета


Мда.. Столько нелепостей высказано, что не знаешь с чего начать.. :-о

1) Длина пакета определяется допустимой задержкой. Если задержка может быть бОльшей (условно), то вы просто ждёте, пока накопится информация на целый пакет, и никаких """больших затрат при частых маленьких пакетах""" не будет.

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

3) Вы как-то странно трактуете график. Разницу между кодами характеризуют вовсе не """вероятностью ошибки в 10000 раз""", а децибеллами, при которых достигается НЕОБХОДИМАЯ вероятность. В данном случае разница между кодами составляет не более 2 дб, если не брать уж совсем позорно короткие экземпляры. А это не так уж много, учитывая разницу в длине в 20 раз!!

4) Не понял, почему вы решили, что для convolutional+RS длина не имеет значения? :-))))) Это могло бы означать только одно:: код крайне плох или просто не подходит для гауссова канала.
В действительности convolutional+RS применялся в старом DVB и теперь заменён на LDPC, на чём было выиграно ~3 дБ.
Так что ваш turbo-conv точно лучше чем conv+RS, и поэтому задаваться вопросом, как на него влияет длина, вообще бессмысленно.
Go to the top of the page
 
+Quote Post
Goose
сообщение Sep 23 2013, 06:44
Сообщение #10


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

Группа: Свой
Сообщений: 165
Регистрация: 26-02-10
Из: Москва
Пользователь №: 55 683



насчет вакуума понял, у меня GMSK. но графики вроде бы достаточно информативны и без модуляции.

Цитата(Dr.Alex @ Sep 21 2013, 19:51) *
Мда.. Столько нелепостей высказано, что не знаешь с чего начать.. :-о

1) Длина пакета определяется допустимой задержкой. Если задержка может быть бОльшей (условно), то вы просто ждёте, пока накопится информация на целый пакет, и никаких """больших затрат при частых маленьких пакетах""" не будет.

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

3) Вы как-то странно трактуете график. Разницу между кодами характеризуют вовсе не """вероятностью ошибки в 10000 раз""", а децибеллами, при которых достигается НЕОБХОДИМАЯ вероятность. В данном случае разница между кодами составляет не более 2 дб, если не брать уж совсем позорно короткие экземпляры. А это не так уж много, учитывая разницу в длине в 20 раз!!

4) Не понял, почему вы решили, что для convolutional+RS длина не имеет значения? :-))))) Это могло бы означать только одно:: код крайне плох или просто не подходит для гауссова канала.
В действительности convolutional+RS применялся в старом DVB и теперь заменён на LDPC, на чём было выиграно ~3 дБ.
Так что ваш turbo-conv точно лучше чем conv+RS, и поэтому задаваться вопросом, как на него влияет длина, вообще бессмысленно.


1) В нашем случае длина пакета влияет на занятость эфира, система с множеством пользователей и CSMA/CA. и скорости существенно отличаются (в 64 раза максимальная и минимальная), то есть крайне нежелательно например на минимальной скорости передавать 2 байтное сообщение в пакете из 256 байт, так как станции которые хотят передать 1ms сообщение наполненное информацией на большой скорости будет ждать избыточного траффика 300ms, который вообще ничего не несет, задержка важна, но не только она.
2) и приоритет тоже предполагается разный, голос и данные, голос -приоритетный.
3)давайте посчитаем. как вы говорите в 20 раз различающиеся длины пакетов: пусть 5144 и 256 бит. Учитываем, что пакет с одной ошибкой отбрасывается (необходимы только полностью корректные пакеты). К примеру по уровню Eb/N0 = 1.
а) 5144, Вероятность ошибки(график)=10^(-4)=0.0001. Вероятность успешной передачи одного бита = 0.9999. Вероятность успешно (без единой ошибки) передать все сообщение (а это 5144бит) = (0.9999)^5144 = 59.8%
б) 256, Вероятность ошибки(график)=10^(-2)=0.01. Вероятность успешной передачи одного бита = 0.99. Вероятность успешно (без единой ошибки) передать все сообщение (а это 256 бит) = (0.99)^256 = 7.6%
Это существенное различие. Или нельзя ориентироваться на такое Eb/N0. При Eb/N0=2, уже получается 93% и 99,99% - уже конечно не существенно. Но по расстоянию получается разница почти в 1,5 раза. Значит буду при получении битого пакета переходить на более низкую скорость.
4) я не решил, в этом и заключается вопрос. хотелось бы посмотреть на его характеристики. к сожалению не обладаю этими графиками. Спасибо, за помощь)




Кстати еще такой вопрос, при раскодировании такого пакета надо заранее знать его длину. как обычно это делается? она посылается в начале пакета, сильно закодированная от помех?
Go to the top of the page
 
+Quote Post
Dr.Alex
сообщение Sep 23 2013, 08:56
Сообщение #11


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

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



1) Отличный пример. В смысле, длина сообщения 2 байта это великолепно :-)))
Передать их близко к Шеннону НЕВОЗМОЖНО, примите это как данность, а значит не изобретайте вечный двигатель, а измените что-то другое в своей системе.
К тому же, 2 байта не несут какой-то значимой инфрмации в системе, которая в среднем гонит в сотни раз больше. Поэтому просто подождите, пока накопится гораздо больше, и тогда передавайте.

3) Зачем вы всё это считали? Поскольку кривая очень быстро спадает, в любом случае между 256 и 5114 всего ~2 дБ, и не надо никакие разы и проценты считать. А 2 дБ по расстоянию в вакууме это 25%, а в наших условиях и того гораздо меньше..

5) "обычно" это вообще не делается, а так конечно можно и другим кодом..
Go to the top of the page
 
+Quote Post
Goose
сообщение Sep 23 2013, 12:14
Сообщение #12


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

Группа: Свой
Сообщений: 165
Регистрация: 26-02-10
Из: Москва
Пользователь №: 55 683



Цитата(Dr.Alex @ Sep 23 2013, 12:56) *
1) Отличный пример. В смысле, длина сообщения 2 байта это великолепно :-)))
Передать их близко к Шеннону НЕВОЗМОЖНО, примите это как данность, а значит не изобретайте вечный двигатель, а измените что-то другое в своей системе.
К тому же, 2 байта не несут какой-то значимой инфрмации в системе, которая в среднем гонит в сотни раз больше. Поэтому просто подождите, пока накопится гораздо больше, и тогда передавайте.

3) Зачем вы всё это считали? Поскольку кривая очень быстро спадает, в любом случае между 256 и 5114 всего ~2 дБ, и не надо никакие разы и проценты считать. А 2 дБ по расстоянию в вакууме это 25%, а в наших условиях и того гораздо меньше..

5) "обычно" это вообще не делается, а так конечно можно и другим кодом..


1) когда это служебные 2 байта при прокладывании пути в mesh-сети то их нельзя накапливать, а я могу предположить что это не единственный пример.
3) объясните про какие 2 дБ Вы все время говорите.
5) обычно что не делается? как Вы узнаете какой block-size заранее?
Go to the top of the page
 
+Quote Post
Dr.Alex
сообщение Sep 23 2013, 19:59
Сообщение #13


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

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



Цитата(Goose @ Sep 23 2013, 15:14) *
когда это служебные 2 байта при прокладывании пути в mesh-сети то их нельзя накапливать


Это никого не волнует. Как я уже сказал, пакет в 2 байта надёжно передать невозможно. На этом вопрос исчерпан. Ищите другие варианты.


Цитата(Goose @ Sep 23 2013, 15:14) *
объясните про какие 2 дБ Вы все время говорите.


Посмотрите расстояние в Eb/No между графиками 256 и 5114 на уровне, скажем, BER=10-6. Там примерно 2 дБ.
Вы конечно справедливо заметили, что нужно считать PER, а не BER, но поскольку кривые спадают почти отвесно, то если для 256 брать Eb/No при BER=10-6, а для 5114 при BER=10-7, то расстояние почти не изменится. На самом деле оно даже уменьшится.
Поэтому я и говорю, что расстояние между кодами 2 дБ. Это совсем неплохо, от добра добра не ищут.


Цитата(Goose @ Sep 23 2013, 15:14) *
обычно что не делается? как Вы узнаете какой block-size заранее?

Не делают пакеты FEC разной длины. Но если очень хочется....
Go to the top of the page
 
+Quote Post
krux
сообщение Sep 23 2013, 22:01
Сообщение #14


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

Группа: Свой
Сообщений: 1 700
Регистрация: 2-07-12
Из: дефолт-сити
Пользователь №: 72 596



всё понятно. для GMSK будет тоже что и для сферического вакуума.
короче для модуляций с большими созвездиями возможно подставлять вероятность верного детектирования бит в функцию FEC-декодирования, в зависимости от расположения этих бит в созвездии, что дает дополнительно ~1,5 дБ для какого-нибудь qam64.
вообще, насколько оправдан ваш выбор?
"64 раза" к сожалению ничего не сказало, поскольку это может быть разница между 64 ОЦК и 2 E1 или 64 E1 и STM-1, ну вы понимаете.

И, таки-да, пакеты разной длины обычно не делают.
Если ваши два байта ждать не могут - так и передавайте их в ближайшем следующем блоке вместе с остальными данными. Никто не запрещает поднять ещё один протокольный уровень поверх блоков, удобно укладывающихся на RF.

Вообще, вспомните где раньше исторически стал применяться FEC. ЕМНИП, в "дальнем космосе", т.е. это медленная передача длинными блоками, которые могут быть декодированы гарантированно (сеансы связи ограничены геометрией, и переповторы просто невозможны из-за накопления новых данных). Вот в смежных областях, где FEC можно было стянуть почти как кальку он и поселился. Сейчас FEC стали применять в широкополосных каналах, в которых блок данных набирается достаточно быстро.
Если у вас модемный канал, быстрого накопления блоков вы не получите, соответственно целесообразность применения FEC в вашем случае с CSMA/CA может быть вообще под вопросом и тогда стоит думать что применить вместо простейшего CSMA/CA.

Сообщение отредактировал krux - Sep 23 2013, 22:02


--------------------
провоцируем неудовлетворенных провокаторов с удовольствием.
Go to the top of the page
 
+Quote Post
Goose
сообщение Sep 24 2013, 07:02
Сообщение #15


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

Группа: Свой
Сообщений: 165
Регистрация: 26-02-10
Из: Москва
Пользователь №: 55 683



Цитата(Dr.Alex @ Sep 23 2013, 23:59) *
Не делают пакеты FEC разной длины. Но если очень хочется....

Получается ситуация такова, что разной длины пакеты я могу делать (потому что разница в помехоустойчивости невелика), но так никогда никто не делает. правильно я понимаю, или где-то все-таки делают и можно посмотреть как? то есть обычно забивают на возможность уменьшить издержки за счет разной длины пакетов?

2krux

В моем случае "в 64 раза" - это GMSK c технической скоростью 2048кбит/с и GMSK со скоростью 32кбит/с (я забыл написать).
А что бы Вы предполагаете целесообразнее? я не совсем понимаю, поясните пожалуйста.
Go to the top of the page
 
+Quote Post

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

 


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


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