Код с инверсией токовых посылок (CMI). Помехоустойчивое кодирование с иcпользованием различных кодов Секреты по прохождению

Понятие избыточности означает, что фактическая энтропия кода или сообщения (Н) меньше, чем максимально возможная энтропия (H max ), т. е. число символов в сообщении или элементов в символе кода больше, чем это требовалось бы при полном их использовании.

Понятие избыточности легко пояснить следующим примером.

Выделение полезного сигнала на уровне помех - одна из основных проблем передачи информации. Одним из путей повышения надёжности передачи сообщений может быть передача дополнительных символов, т.е. повышение избыточности сообщений.

Действительно, по теореме Котельникова (§ 1.7), непрерывное сообщение (сигнал) можно передать последовательностью мгновенных отсчетов его значений с промежутками между ними :

где f max верхняя граничная частота в спектре сигнала.

При наличии помех промежутки между отсчетами (Δt n ) необходимо уменьшать, т.е.

В этом случае мы увеличиваем число отсчетов и, следовательно, увеличиваем избыточность сообщения и тем самым повышаем его помехозащищенность.

Пусть сообщение из n символов содержит количество информации I . Если сообщение обладает избыточностью, то его (при отсутствии шума) можно передать меньшим числом символов n 0 (n 0 < n ). При этом, количества информации (I 1 и I 1max), приходящиеся на один символ сообщения, будут связаны соотношением:

I 1 = I/n < I 1max = I/n 0

и, следовательно,

n ∙ I 1 = n 0 ∙ I 1max .

За меру избыточности принимается величина R :

(2.3)

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

При кодировании избыточных сообщений возникает определенная исходная избыточность кодов. Наличие исходной избыточности уменьшает пропускную способность каналов и увеличивает формат сообщений. Вместе с тем в процессе передачи информации избыточность сообщений и кодов является средством, полезным для борьбы с внешними возмущающими воздействиями и помехами.

По наличию избыточности коды также делятся на избыточные и неизбыточные. Для неизбыточных кодов характерно то, что они позволяют просто определить различные символы сообщения. Переход от неизбыточного кода к избыточному осуществляется путем добавления позиций в кодовых символах, которые можно получить либо путем различных логических операций, выполняемых над основными информационными позициями, либо путем использования алгоритмов, связывающих неизбыточный и избыточный коды. Например, если есть символы сообщения А 1 ; А 2 ; А 3 ; А 4 , то их можно закодировать в двоичном неизбыточном коде:

А 1 = 00 ; А 2 = 01 ; А 3 = 10 ; А 4 = 11 .

Для получения избыточного кода можно ввести еще одну позицию, значение которой будет определяться как сумма значений предшествующих символов по модулю два:

А 1 = 000 ; А 2 = 011 ; А 3 = 101 ; А 4 = 110 .

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

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

My Singing Monsters — инновационная игра для операционной системы Android, а также можно играть My Singing Monsters на компьютере , главными героями которой являются поющие монстры. Цель игры — это создание собственного оркестра из монстров. В игре существует больше 20 видов монстров. Ими постепенно заселяют острова, которых в игре семь. На каждом острове свой оркестр, создающий отличную от других мелодию.

Как вывести монстра My Singing Monsters

Так как монстры бывают разные, их выращивание также отличается, начнём открывать секреты. Поэтому для начала нужно разграничить монстров по количеству занимаемых мест: «одноместные», «двухместные», «трехместные», «четырехместные». Конечно же, здесь учитываются только те, которых легко получить.

Итак, чтобы получить «одноместного» (изаблолиста, ти рокс, вужас), следует нажать в Питомнике на «добавить яйцо». Вот и все. По завершению, когда монстр будет получен, можно отправить его на определенный остров, дабы он начал петь и зарабатывать деньги. А вот для получения «двух-, трех-, четырехместных» (сахабуша, смычорога, йола) необходимо сначала купить здание для размножения, обзавестись 2 монстрами (4 уровня) и терпением. Когда его нет, помогут кристаллы.

Чтобы получить «двух и трехместного» монстра, нужно запомнить стихии желаемого монстра и учесть несложную арифметику. У каждого монстра под картинкой имеются значки с элементами стихий. Остается только смотреть стихии разных монстров и скрещивать их. Стихии должны не совпадать, иначе «родится» копия мамочки с папочкой, а не новый вид. Создание «четырехместного» монстра требует созданных ранее «одноместного» и «трехместного».

Как повысить уровень

Монстры My Singing Monsters тоже нуждаются в еде, производится которая в Пекарнях. Размеры монстров увеличиваются на 4, 10 и 15 уровнях, но, кстати, место во дворце они не увеличивают. Однако, чем больше уровень, тем больше еды нужно для монстра и для повышения уровня. За каждый уровень монстра нужно покормить 4 раза. Также поднять уровень можно за счет дорогих декораций и выпекания дорогой еды.

Секреты по прохождению

Если нужно ускорить или замедлить время воспроизведения мелодии острова — есть часы «Time Machine», которые можно приобрести в Маркете.

Заработать кристаллы можно с помощью выполнения специальных заданий, публикации вылупленного монстра (на Facebook) или в Шахте («Mine»).

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

Если у Вас не получается что то сделать самостоятельно, то советуем обратится в скорую компьютерную помощь — pchelp24.com, приемлемые цены, опытные специалисты, бесплатный вызов и диагностика.

Это продолженеие статьи о помехоустойчивом кодировании, которая очень долго лежала в черновиках. В прошлой части нет ничего интересного с практической точки зрения - лишь общие сведения о том, зачем это нужно, где применяется и т.п. В данной части будут рассматриваться некоторые (самые простые) коды для обнаружения и/или исправления ошибок. Итак, поехали.

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

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

По сути, кодирование - это добавление к исходной информации дополнительной, проверочной, информации. Для кодирования на передающей стороне используются кодер , а на принимающей стороне - используют декодер для получения исходного сообщения.
Избыточность кода - это количество проверочной информации в сообщении. Рассчитывается она по формуле:

k/(i+k) , где
k - количество проверочных бит,
i - количество информационных бит.
Например, мы передаем 3 бита и к ним добавляем 1 проверочный бит - избыточность составит 1/(3+1) = 1/4 (25%).

Код с проверкой на четность

Проверка четности – очень простой метод для обнаружения ошибок в передаваемом пакете данных. С помощью данного кода мы не можем восстановить данные, но можем обнаружить только лишь одиночную ошибку.

В каждом пакет данных есть один бит четности , или, так называемый, паритетный бит . Этот бит устанавливается во время записи (или отправки) данных, и затем рассчитывается и сравнивается во время чтения (получения) данных. Он равен сумме по модулю 2 всех бит данных в пакете. То есть число единиц в пакете всегда будет четно . Изменение этого бита (например с 0 на 1) сообщает о возникшей ошибке.
Ниже показана структурная схемы кодера для данного кода

и и декодера

Пример:

Начальные данные: 1111
0 (1 + 1 + 1 + 1 = 0 (mod 2))
Принятые данные: 10 110 (изменился второй бит)
Как мы видим, количество единиц в принятом пакете нечетно, следовательно, при передаче произошла ошибка.

Как говорилось ранее, этот метод служит только для определения одиночной ошибки. В случае изменения состояния двух битов, возможна ситуация, когда вычисление контрольного бита совпадет с записанным. В этом случае система не определит ошибку, а это не есть хорошо. К примеру:
Начальные данные: 1111
Данные после кодирования: 11110 (1 + 1 + 1 + 1 = 0 (mod 2))
Принятые данные: 100 10 (изменились 2 и 3 биты)
В принятых данных число единиц четно, и, следовательно, декодер не обнаружит ошибку.

Так как около 90% всех нерегулярных ошибок происходит именно с одиночным разрядом, проверки четности бывает достаточно для большинства ситуаций.

Код Хэмминга

Как говорилось в предыдущей части, очень много для помехоустойчивого кодирования сделал Ричард Хэмминг . В частности, он разработал код, который обеспечивает обнаружение и исправление одиночных ошибок при минимально возможном числе дополнительных проверочных бит. Для каждого числа проверочных символов используется специальная маркировка вида (k, i), где k - количество символов в сообщении, i - количество информационных символов в сообщении. Например, существуют коды (7, 4), (15, 11), (31, 26). Каждый проверочный символ в коде Хэмминга представляет сумму по модулю 2 некоторой подпоследовательности данных. Рассмотрим сразу на примере, когда количество информационных бит i в блоке равно 4 - это код (7,4), количество проверочных символов равно 3. Классически, эти символы располагаются на позициях, равных степеням двойки в порядке возрастания:
первый проверочный бит на 2 0 = 1;
второй проверочный бит на 2 1 = 2;
третий проверочный бит на 2 2 = 4;

но можно и разместить их в конце передаваемого блока данных (но тогда формула для их расчета будет другая).
Теперь рассчитаем эти проверочные символы:
r1 = i1 + i2 + i4
r2 = i1 + i3 + i4
r3 = i2 + i3 + i4

Итак, в закодированном сообщении у нас получится следующее:
r1 r2 i1 r3 i2 i3 i4

В принципе, работа этого алгоритма разобрана очень детально в статье Код Хэмминга. Пример работы алгоритма , так что особо подробно описывать в этой статье не вижу смысла. Вместо этого приведу структурную схему кодера:

и декодера


(может быть, довольно запутано, но лучше начертить не получилось)

E0,e1,e2 опрделяются как функции, зависящие от принятых декодером бит k1 - k7:

e0 = k1 + k3 + k5 + k7 mod 2
e1 = k2 + k3 + k6 + k7 mod 2
e2 = k4 + k5 + k6 + k7 mod 2

Набор этих значений e2e1e0 есть двоичная запись позиции, где произошла ошибка при передаче данных. Декодер эти значения вычисляет, и если они все не равны 0 (то есть не получится 000), то исправляет ошибку.

Коды-произведения

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


Передаваемая информация кодируется дважды: во внешнем и внутреннем кодерах. Между ними устанавливается буфер, работа которого показана на рисунке:

Информационные слова проходят через первый помехоустойчивый кодер, называемый внешним, т.к. он и соответствующий ему декодер находятся по краям системы помехоустойчивого кодирования. Здесь к ним добавляются проверочные символы, а они, в свою очередь, заносятся в буфер по столбцам, а выводятся построчно. Этот процесс называется перемешиванием или перемежением .

При выводе строк из буфера к ним добавляются проверочные символы внутреннего кода. В таком порядке информация передается по каналу связи или записывается куда-нибудь. Условимся, что и внутренний, и внешний коды – коды Хэмминга, с тремя проверочными символами, то есть и тот, и другой могут исправить по одной ошибке в кодовом слове (количество «кубиков» на рисунке не критично - это просто схема). На приемном конце расположен точно такой же массив памяти (буфер), в который информация заносится построчно, а выводится по столбцам. При возникновении пакетной ошибки (крестики на рисунке в третьей и четвертой строках), она малыми порциями распределяется в кодовых словах внешнего кода и может быть исправлена.

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

Использование кодов-произведений многократно увеличивает мощность помехоустойчивого кода при добавлении незначительной избыточности.

P.S.: Плотно занимался этой темой 3 года назад, когда писал дипломный проект, возможно что-то упустил. Все исправления, замечания, пожелания - пожалуйста через личные сообщения

Внести немного разнообразия в игры на андроид устройстве позволяет игра My Singing Monsters или Мои поющие монстры . Это очень симпатичный гибрид стратегии и тамагочи, позволяющий совместить логику и умиление очаровательными монстриками и отвлечься от поиска "запчастей" к своему ноутбуку на http://100detaley.ru/catalog/category/247/ . Очень разные и такие интересные монстры обитают на островах этй игры. Они ещё и поют, не забывайте!

My Singing Monsters - игра, донат присутствует. В ваше распоряжение попадает этакий очень развитый тамагочи, в котором питомцев может быть ну очень много, и в ваших силах создать для них идеальные условия. Мудро правьте на каждом из островов игры и сможете узнать его мелодию. В том и интерес игры Мои поющие монстры, чтобы полностью развить все острова и узнать, как поёт живое на них в единой гармонии.

Красивый мультяшный мир, милые персонажи, простор для развития и изучения нового мира делают My Singing Monsters для андроид отличным способом отдохнуть. Играть в Моих поющих монстров достаточно просто и нескучно, и каждый раз есть, с чем познакомиться: новый монстрёныш, его песенка (у каждого своя), новые предметы "быта", устройства и здания. Обновления стоят игровых денег, заработать их предлагают разными способами, в том числе и неигровыми - например, загрузить и установить какое-нибудь приложение (у каждого приложения своя "цена"). С прохождением My Singing Monsters вы можете ознакомиться в нашем видеообзоре.

И вот ещё несколько советов по прохождению Моих поющих монстров :

  • Как только вы подселили на остров нового монстра, вся информация о нём становится доступна, так что можно сразу же узнать, что новосёлу нужно для счастья, что именно лучше всего строить и размещать вокруг.
  • Выполняйте задания, особенно вначале - это помогает быстро развиться и подарит бесплатную еду.
  • Чтобы разводить монстров, будущие "молодожёны" должны быть достаточно взрослыми - их нужно усовершенствовать до конца (да и вообще, большие и счастливые монстры зарабатывают больше денег). Обращайте внимание на элементы каждого монстра: новый вид получится только если они не совпадают, иначе "родится" копия мамочки с папочкой. Эту информацию можно посмотреть в меню покупки или под информационной областью. С монстром связано от одного до четырёх элементов - ветер, снег, дождь, земля, растения.
  • Совершенствуйте пекарни и вообще всё, связанное с едой - монтрам нужно кушать. Можно, конечно, накупить кучу еды за настоящие деньги - но тут уж дело вкуса, жадности и здравого смысла.
  • Как можно скорее установите шахту. Каждые 24 часа она будет приносить вам два бесплатных изумруда.
  • Купив несколько островов, вы получите новые возможности для выведения неведомых доселе пород. Но перемещать монстров с одного острова на другой пока нельзя.

Алгоритм относительного кодирования (преобразования двоичной последовательности абсолютного кода (L-кода) в соответствующую последовательность относительного кода (М-кода) определяется выражением

где а i - i-й элемент последовательности L-кода,

b i и b i-1 - i-й и предшествующий (i-1)-й элементы последовательности М-кода.

Алгоритм обратного преобразования от М-кода к L-коду определяется выражением

Кодер и декодер относительного кода изображены на рисунке 15. Элемент задержки ЭЗ имеет время задержки t З =t Э. Эту роль в реальных кодерах выполняет тактируемый D-триггер.

Рисунок 15

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

Рисунок 16

Замечательным свойством относительного кода является независимость результата декодирования от прямого или инверсного представления М-кодированной последовательности на входе декодера. Это подтверждается следующими преобразованиями:

1. на входе декодера прямая последовательность М-кода

при этом на выходе декодера

2. на входе декодера инвертированная последовательность М-кода

при этом на выходе декодера

Это свойство относительного кода используется при формировании относительно - фазоманипулированного радиосигнала (ОФМ) и его соответствующей демодуляции.

Если двоичную последовательность, представленную L-кодом подать на фазовый модулятор некоторого гармонического колебания, имеющего частоту f 0 , то на его выходе получим двухпозиционный фазоманипулированный радиосигнал ФМ-2. Для его демодуляции на приемной стороне радиоканала необходимо располагать опорным колебанием, синхронным и синфазным с несущим гармоническим колебанием для когерентной демодуляции в фазовом демодуляторе. Получить такое опорное колебание от автономного генератора на приемной стороне невозможно. Передавать опорное несущее колебание по отдельному радиоканалу экономически невыгодно. Поэтому в реальных системах радиосвязи его получают из принимаемого сигнала. Однако, выделить его непосредственно линейными частотно-избирательными цепями не представляется возможным, так как при равновероятном появлении "0" и "1" в передаваемой последовательности гармоника несущего колебания в принимаемом радиосигнале отсутствует. Несмотря на это, информация о частоте несущего колебания в амплитудном спектре принимаемого сигнала все же есть в неявном виде. Она содержится в его гармонических составляющих, расположенных симметрично относительно частоты f 0 . Благодаря этому при нелинейном преобразовании принимаемого радиосигнала, например при возведении его в квадрат, в спектре преобразованного таким образом радиосигнала появляются комбинационные частоты гармоник принимаемого радиосигнала, в том числе суммарная симметричных гармоник относительно f 0

где дf - интервал между симметричными гармониками и частотой f 0 .

Эту гармонику удвоенной несущей частоты можно просто выделить линейным узкополосным фильтром, настроенным на частоту 2f 0 , либо системой фазовой автоматической подстройки частоты (ФАПЧ) местного генератора, настроенного приблизительно на 2f 0 . Разработано много различных схем выделения удвоенной несущей частоты с последующим делением ее на два для получения опорного колебания с частотой f 0 . Наиболее известные - это схемы Сифорова, Пистолькорса и Костаса. Не останавливаясь на принципах их работы, достоинствах и недостатках, следует отметить общую особенность описанного способа получения колебания с частотой f 0 - это деление частоты 2f 0 на два.

При любом делении частоты некоторого колебания на целое число m выходное колебание может иметь начальные фазы

где i=0,1,2…(m-1).

При этом нет никакого устойчивого признака получения одного из возможных значений начальной фазы. Поэтому деление 2f 0 на два приводит к получению опорного колебания с начальной фазой, равной 0 относительно несущего колебания или с фазой р. В первом случае на выходе фазового демодулятора будет формироваться передаваемая двоичная последовательность, а во втором - ее инверсная копия. Этот режим работы демодулятора является нежелательным и называется "обратной работой демодулятора".

Реальные системы радиосвязи работают чаще всего при уровнях входного радиосигнала близких к предельно малым, либо в условиях многолучевого распространения радиоволн с изменяющимися случайно характеристиками по всем лучам. Это приводит к большому диапазону изменения уровня входного радиосигнала на приемной стороне радиоканала. В этих условиях даже, если первоначально верно сфазировать несущее и опорное колебания, то после кратковременного снижения входного уровня радиосигнала до порогового значения и ниже нет никакой гарантии, что после этого не возникнет режим "обратной" работы демодулятора.

В цифровых системах связи, использующих маркерный метод групповой синхронизации, в непрерывную двоичную последовательность информационных символов периодически включают некоторую кодовую комбинацию, называемую маркером. Если этот маркер имеет автокорреляционную функцию типа "кнопки", то при его опознании на приемной стороне можно по полярности пика опознанного маркера судить о режиме работы демодулятора на данный момент:

Если пик АКФ положителен, то демодулятор работает нормально;

Если же пик АКФ отрицателен, то имеет место "обратная" работа демодулятора, и тогда принятый после этого маркера фрагмент двоичной последовательности необходимо проинвертировать.

В таком варианте построения режим работы демодулятора контролируется точечно. На интервале между маркерами такой контроль отсутствует.

Для устранения возможной обратной работы демодулятора в системах радиосвязи с фазовой манипуляцией применяют относительную фазовую модуляцию (называемую иногда фазоразностной модуляцией) при которой фаза каждого последующего символа фазоманипулированного сигнала меняется в зависимости от фазы предыдущего, например, по такому правилу:

Если на вход модулятора поступает нулевой символ, то его фаза на выходе модулятора совпадает с фазой предыдущего элемента радиосигнала;

Если же на вход модулятора поступает единичный символ, то его фаза на выходе модулятора изменяется на противоположное значение по сравнению с фазой предыдущего элемента радиосигнала.

При демодуляции такого сигнала необходимо сравнивать фазы предыдущего и последующего элементов радиосигнала.

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

Сочетание относительного кодера и абсолютного фазового модулятора образует относительный фазовый модулятор. Аналогично, абсолютный фазовый демодулятор с включенным последовательно с ним относительным декодером образуют относительный фазовый демодулятор.

Функциональные схемы относительных фазового модулятора и демодулятора в системе связи приведены на рисунке 17.


Рисунок 17

На этом рисунке ОК и ОДК - относительный кодер и относительный декодер соответственно, ФМ и ФДМ - фазовый модулятор и фазовый демодулятор соответственно, ГВЧ - генератор высокой частоты, ФОН - формирователь опорного напряжения, ОМ - относительный модулятор, ОДМ - относительный демодулятор.

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

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

Другой платой за устранение эффекта обратной работы можно считать увеличение мощности передатчика, снижающее вероятность появления одиночных ошибок до значения вероятности появления двойных ошибок при прежней мощности. Этот путь представляется менее затратным.

Понравилось? Лайкни нас на Facebook