Pull to refresh

Comments 28

Прочитал сначала «Похмелеустойчивое кодирование...». Извините.
Это была бы таки бесценная информация
сие уже нигде не используется, продолжая тему напишите пожалуйста о БЧХ, сверточных кодах, турбо-кодах, ну или хотя бы о LDPC
На самом деле, об этом я сейчас и не вспомню в подробностях. Будет время — постараюсь написать, хотя в той же википедии довольно много информации.
Да, на самом деле сейчас все гораздо сложнее, исплозуются другие коды, но с этими проще разобраться не подготовленному человеку.
Разве коды Хемминга не используются в Ethernet?
А Ethernet он не то чтоб «не нигде», он везде.
в старых стандартах да, в новых — нет
Как пишут в википедии, код Хэмминга используют часто при работе с памятью. Вроде бы раньше исполльзовали еще в пейджинговой связи. Коды Рида-Соломона и коды-перемежения использовали в спутниковой связи (что используют сейчас не в курсе, к сожалению, но не думаю, что поменялось очень сильно).
В Ethernet вроде бы используют немного другой принцип кодирования, основанный на проверке четности — вычисляются паритетные биты, блок передается, если данные не верны, блок передается еще раз. И так пока все данные не передадутся
В Ethernet использовался код Хемминга, это, как говорится, «инфа 100%».

Здесь выше мне отписали по поводу новых стандартов, (и через Л.С. указали подробности — «в новых стандартах 10Г, 40Г, 100Г перешли к более сложному кодированию, где декодирвоание итеративное — eehpc.csee.umbc.edu/docs/Poster1.pdf ), но я таки буду настаивать что коды Хэмминга пока-еще много где, ибо за гигабитный Эзернет еще далеко не все шагнули.
Ок, тогда я что-то путаю, скорее всего. Просто на олимпиаде в 2008 году было задание реализовать такой алгоритм (передача данных блоками, с проверкой четности, вроде). Как потом сказал преподаватель, это используется в сети Ethernet. Но, опять же, скорее всего я перепутал, возможно, он и не Ethernet говорил :) Надо бы уточнить
Так одно другому не мешает — там может быть CRC а потом и parity flag добавлятся.
P.S. Плюс не известно о какой версии Ethernet речь — может в самых первых версиях CRC не было а была только проверка чётности.
Да, вполне возможно, что это было реализовано лишь в первых версиях стандарта, а потом было выпилено / заменено
Нашёл подтверждение первой версии — биты чётности и CRC используются вместе в Gigabit Ethernet:
www.knowledgetransfer.net/dictionary/Storage/en/8b10b_encoding.htm
«8b/10b encoding is used in transmitting data on Fibre Channel, ESCON, and Gigabit Ethernet»
«The Cyclic Redundancy Check (CRC) or checksum, further assists error detection. As a result, there are fewer retransmissions than would be the case if relying on CRC or parity alone.»
нету кодов-перемежения. В DVB-S использовали Рида-Соломона, после которого стоял перемежитель (interleaver), потом шел сверточный кодер с перфорацией. В DVB-S2 от этого отказались
И в DVB-S, и в DVB-S2 используется внутреннее и внешнее кодирование, только коды разные. В DVB-S код Хэмминга + сверточное кодирование, в DVB-S2 — код Боуза-Чоудхури-Хоквингема и LDPC.
это не противоречит тому, что я писал) В жигулях есть передние и задние сидения, в бентли есть передние и задние сидения, только это две большие разницы.
Да, это я просто уточнял, может быть кто-то мог не так понять, что в DVB-S2 вообще все по-другому )
Коды Баркера еще интереснее.
За счет своей структуры и избыточности позволяют передавать с боЛьшей скоростью при бОльшей надежности приема.

Применяются много где, у меня, в частности, в автосигнализации такое.
Очень было интересно, когда глушилка рядом работала — народ на стоянке ничего с машиной сделать не может, а у меня и снимаентся и ставится (правда, противоразбойная карточка все же заглючила — там обычное кодирование).
Вы путаете: коды Баркера никакого отношения к ПУ-кодированию не имеют. Коды Баркера (читай — модуляция Баркера) обеспечивают наилучшие корреляционные св-ва передаваемого сигнала (отношение ширины главного лепестка к ур-ню боковых лепестков) и, как следствие нилучшее ОСШ+П на приёме. Увы, код Баркера имеет максимальную длину всего 13 бит, поэтому в серъёзных системах почти не используется. Но вот для всяких радиосигнализаций, автомобильных локаторов и т.д. и т.п. — самое то.
Вообще, тема кодирования, на самом деле, очень интересная. На этих выходных в Питере были лекции по кодированию информации, на которые любой мог сходить абсолютно бесплатно (было в разделе «События»). К сожалению, не смог сходить, но очень интересно, о чем там рассказывали. Кто-нибудь был из пользователей Хабра на них?
Я, пользуясь случаем, спрошу у ТСа. Какие коды вы считаете наиболее оптимальными для кодирования информации, передаваемой по последовательному каналу с размером слова в 16 бит с частотой порядка 10МГц.
Честно говоря, даже не знаю… Кодированием информации, как уже говорил, занимался 3 года назад, поэтому знаний особых не осталось. Практически, все что хорошо помню — написал в статье. Но в ближайшее время хочу плотно заняться данной темой, так что в будущем постараюсь рассмотреть уже на практике различные коды — что, где и когда использовать.
Термин «оптимальный» вообще не применимо к теории кодирования и связи, лучше этим словом не пользоваться. Кодирование может быть «лучше» по какому-то критерию, относительно других способов, но однозначно так говорить нельзя. Если говорить о «лучших» кодах с точки зрения минимальной вероятности битовой ошибки при заданном отношении энергии бита к спектральной плотности мощности, то тут лучше проявляют себя турбо-коды и LDPC с мягким декодированием. Это коды из серии «легко закодировать, фиг декодируешь», т.е. с большими вычислительными затратами и, главное, итеративные. Если нужно что-нибудь простенькое и канал хороший, то тут циклические коды хороши. Сверточные коды тоже достаточно сложно декодировать, но благодаря им можно получить относительно малую избыточность кода, при этом они хорошо подходят под модуляцию nPSK модуляцию. Тут же можно вспомнить и о каскадных кодах. Да можно много чего вспомнить.
Но повторюсь: все зависит от вероятности ошибки и отношения Eb/N0. Отталкиваясь от него, не забывая про модуляцию, Вы можете сами прикинуть «взлетит» такое кодирование или все испортит. В Матлабе есть тулбокс bertool, поиграйте с ним
Вы не могли бы посоветовать почитать что-нибудь по поводу кодирования для новичков?) Просто я из вашего объяснения не понял почти ничего, поэтому хоть как-то адекватно ответить то не могу. Меня интересуют коды для последовательного канала, для проверки целостности данных(даже самокоррекция не нужна по-большому счету). Просто реализация этого кода будет осуществляться на уровне триггеров и комб. логики, что накладывает существенные ограничения на сложность кодирования.
Ну основы основ:
Морелос-Сарагоса «Искусство помехоустойчивого кодирования. Методы, алгоритмы, применение»
Прокис Дж. «Цифровая связь»
Вернер «Основы кодирования»

Начните с последнего. Там даже схемки на уровне триггеров есть
Sign up to leave a comment.

Articles