Галкин В.А., Григорьев Ю.А. - Телекоммуникации и сети (1053870), страница 19
Текст из файла (страница 19)
Основы телекоммуникацииjc" + 1 = g(x)h(x) ДЛЯ п = Т - I;х"-^ I 4t g(x)h(x) цляп<r- I.(2.72)(2.73)Примеры примитивных полиномов:г = 16jc^^ + л:^2 + Д.З + д ; 4 - 1.Процедуру кодирования циклическим кодом можно разбить на три шага:• умножить исходный кодовый полином т(х) = гп^_^х^~^ + ... + т^х + т^ на^п-к ^ xj^Q соответствует сдвигу кодового вектора в сторону старших разрядовна (п - к) разрядов:х'^''т(х) = гп^^х*^^ + ... + WjX'^*^^ + т^"~^\• получить остаток р(л:) от деления ;c'^*/72(jc) на порождающий полином g{x)\• вьшолнить операцию конкатенации полученного кодового вектора остаткар(х) и исходного кодового вектора полинома т{х): т^ ^...т^т^р^^ ^,„ p2piPoДекодирование циклического кода заключается в следующем. Пусть v(jc) передаваемый кодовый полином, г(х) - принятый кодовый полином. Разделивг(х) на порождающий полином g(x), получим:r{x) = g(x)q(x)-^s(x%(2.74)где ^(л:) - частное, s(x) - остаток.Если остаток равен нулю, т.
е. принятый кодовый вектор кратен порождающему полиному то, следовательно, ошибки нет или она не обнаружена. Еслиостаток не равен нулю, то принятый кодовый вектор не является кодовым полиномом, т. е. содержит ошибку. Таким образом, ненулевой остаток определяет наличие ошибки, т. е. представляет собой ее синдром:s(x) = s^k-i^'^'"^ +.,.+ s^x + s^,(2.75)Пусть полином вектора ошибки имеет вид:е(х) = е^^х"-' +... + е^х^ + е^,(2.76)тогда г(х) = v(jc) + е(х) или с учетом (2.74):e(x) = v(x) + q{x)g(x)-\-s(xy(2.77)Так как v(x) - кодовый полином, кратный g(x), т. е. v(x) = m(x)g(x), то :е(х) = [т(х) + q(x)]g(x) + s(x),(2.78)Отсюда видно, что синдром s(x) является остатком от деления полиномавектора ошибок е(х) на порождающий полином g(x). Функция декодирующегоустройства заключается в оценке полинома вектора ошибки е(х) по синдромуs(x).862.2.
Методы защиты от ошибок и сжатия данныхДля различных сочетаний одиночных ошибок в кодовой комбинащш двоичного циклического [7,4]-кода соответствующие им синдромы представлены втабл. 2.2.Рассмотрим пример двоичного циклического [7,4]-кода (« = 7, А: = 4). Порождающим полиномом такого кода является примитивный полином степени\n-k):g{x) = x^ +л: + 1.Таблица 2.2. Определение синдрома одиночной ошибки кода [7,4]Вектор синдромаСиндром s(x)Ошибка е{х)53 1 52 1 5,х"001х"х'010\х'х'100х'х+1011х'х'х^+.х1 10х'х^+ х+ 11 11х'х'+11011Пусть необходимо закодировать кодовый вектор с А: = 4 1101.
Представимего в виде полинома степени к- I: т(х) = д:^ + jc^ + 1.Кодирование. Операция кодирования состоит из трех шагов.1. Умножим т(х) на л:""*: т(х)х^ = (jc^ + jc^ + l)x^ = х^ + х^ + jc^, что соответствует сдвигу кодового вектора в сторону старших разрядов на (п - к) разрядаи добавлению в освободившиеся разряды нулей: 1101000.2. Разделим т(х)х^ на g(x):+ х'/ +х^дг^+д: + 1xU х'х^+X^1101000+х^ +х + \1011х'+х'х' +|101111111100х' + х'ИЛИх' + х' + х^х' +1110х^ +хх' +х' +1011Xх+ \1-ос таток101110101011001- - остатокТаким образом, остаток р(х) = р^.3. Припишим остаток к информационным разрядам:v(jc) = т{х)х^'' 4- p(x) = л:^ + л:^ + д:^ 4- 1.872. Основы телекоммуникацииИЛИ выполняем операцию конкатенации исходного кодового вектора и вектораостатка: 1101.001, в результате получаем циклический [7,4]-код.Декодирование.
Пусть вектор ошибки равен е{х) = х^, тогда принятый полином будет иметь вид:г(х) = у(х) +e(jc) =jc^ + jc5+;c^+jc3+l или 1101001+0010000=1111001.Для обнаружения ошибки необходимо разделить принятый полином на порождающий:X^+JC^+X^+X^+х^ +1 X^+X + lдс^+х^1111001х^+х^+11011х'[101111011000илих^+х^+110111101х'+110114-хх^ + X - синдром110 - вектор синдромаИз таблицы 2.2 по виду синдрома определяем место ошибки - разряд с весом 4.Эффективность циклического кода.
Так как порождающий полином g(x)имеет степень (п - к), то существует кодовый вектор, являющийся пакетомдлиной (« - А: +1), т. е. содержащий (п - к+\) единиц подряд. Если полиномвектора ошибки е(х) представляет собой пакет длиной (п - к) или меньшей, тосогласно вьфажению е(х) = [т(х) + g(x)]g(x) + s(x) синдром никогда не будетравен нулю. Это означает, что циклический [«, к]- код пригоден для обнаружения любого пакета ошибок длиной (п - к) или меньшей, а также отдельныхпакетов и большей кратности. Доля необнаруженных пакетов ошибок длиной{п-к+ 1) составляет 2 "^''"*" ^>, а длиной более {п-к+ I)- 2"^''"*>.
Приведенный анализ показьюает, что циклические коды весьма эффективны для обнаружения ошибок, поэтому их широко применяют в системах телекоммуникации.Логический код 4В/5В. Наряду с циклическими кодами, которые используют, как правило, на канальном и вьппе уровнях модели OSI, для улучшенияпотенциальных кодов типа AMI, NRZI или 2B1Q используют другие избьггочные логические коды. Логическое кодирование должно заменять длинные последовательности бит, приводящие к постоянному потенциалу в среде передачиданных, вкрапле1шями единиц. Как отмечалось вьппе, для логического кодирования характерны два метода - избыточные коды и скрэмблирование. Например, избьггочный логический код 4В/5В, используемый в технологиях FDDI иFast Ethernet, заменяет исходные символы длиной 4 бит на символы длиной в 5бит. Так как результирующие символы содержат избыточные биты, то общее882.2.
Методы защиты от ошибок и сжатия данныхколичество битовых комбинаций в них больше, чем в исходных. Так, в коде4В/5В результирующие символы могут содержать 32 битовых комбинации, вто время как исходные символы - только 16. Поэтому в результирующем кодеможно отобрать 16 таких комбинаций, которые не содержат боль-шого количества нулей, а остальные считать запрещенными кодовыми комбинациями.Кроме устранения постоянной составляющей и придания коду свойства самосинхронизации, избыточные коды позволяют приемнику распознавать искаженные биты. Соответствие двоичного кода коду 4В/5В представлено в табл. 2.3.Код 4В/5В передается по линии с помощью физического кодирования по одному из методов потенциального кодирования, чувствительному только к длинным последовательностям нулей. Символы кода 4В/5В длиной 5 бит гарантируют, что при любом их сочетании на линии не могут встретиться более трехнулей подряд.
Буква В в названии кода означает, что элементарный сигнал имеет2 состояния (от английского binary - двоичный). Существуют коды и с тремясостояниями сигнала, например, в коде 8В/6Т для кодирования 8 бит исходнойинформации используется код из 6 сигналов, каждый из которьпс имеет трисостояния. Избыточность кода 8В/6Т вьппе, чем у кода 4В/5В, так как на 256исходных кодов приходится 3^= 729 результирующих символов.Таблица 2.3. Соответствие двоичного кода коду 4В/5ВДвоичный код000000010010ООП01000101ОНО1111Код4В/5ВНПО0100110100101010101001011OHIOони1Двоичный код1000100110101011110011011110I 1 1 1 1Код4В/5В1001010011ЮНО10111НОЮ110111110011101Использование для перекодировки таблицы, аналогичной табл.
2.3, является простой операцией, поэтому это не усложняет сетевые адаптеры и интерфейсные блоки коммутаторов и маршрутизаторов.Для обеспечения заданной пропускной способности линии передатчик, использующий избыточный код, должен работать с повышенной тактовой частотой. Так, для передачи кодов 4В/5В со скоростью 100 Мбит/с необходима тактовая частота передатчика 125 МГц. При этом спектр сигнала на линиирасширяется по сравнению со случаем, когда по линии передается чистый, неизбыточный код. Тем не менее, спектр избыточного потенциального кода оказьшается уже спектра манчестерского кода, что оправдьшает дополнительныйэтап логического кодирования, а также работу приемника и передатчика наповьппенной тактовой частоте.892. Основы телекоммуникацииСкрэмблирование.
Перемешивание данных скрэмблером перед передачей их в линию с помощью потенциального кода также является одним из способов логического кодирования. Методы скрэмблирования заключаются в побитном вычислении результирующего кода на основании бит исходного кода иполученных в предьщущих тактах бит результирующего кода. Например, скрэмблер может реализовывать соотношение:Л, = ^ , е 5 . з е 5 _ з ,(2.79)где В. - двоичная цифра результирующего кода, полученная на /-м такте работы скрэмблера, А. - двоичная цифра исходного кода, поступающая на /-м тактена вход скрэмблера; В^^иВ^^- двоичные цифры результирующего кода, полученные на предьщущих тактах работы скрэмблера, соответственно на 3 и на 5тактов ранее текущего такта; © - операция исключающего ИЛИ (сложение поmod2).Например, для исходной последовательности 110110000001 скрэмблер дастследующий результирующий код:В^ = А^ = I (первые три цифры результирующего кода будут совпадать сисходным, так как на вход еще не поступили необходимые цифры)5з = ^з = 0В^ = А^®В^--= 1 е 1 = 0В,=А,ФВ,- = 1 0 1 = 05^ = ^^ е 5з Ф 5, = о Ф о е 1 = 1В^ = А^ФВ^®В^=ОФО® 1 = 1В^=А^@В^®В^ = ОФО®0 = 0л, = ^ , Ф Л^ Ф 5, = о Ф 1 Ф о = 15,„ = ^,„ Ф 5^ Ф 5, = о Ф 1 Ф о = 15 „ = / Г „ Ф 5 , Ф 5 , = 0Ф0Ф 1 = 15,2=^,2Ф5,Ф5,= 1Ф 1Ф 1 = 1Таким образом, на выходе скрэмблера появится последовательность110001101111, в которой нет шести нулей подряд, присутствовавших в исходномкоде.После получения результирующей последовательности приемник передаетее дескрэмблеру, где восстановится исходная последовательность на основании обратного соотношения:С = В®В,®В=(А®В , 0 5Лел, ФЛ=^ .(2.80)Различные алгоритмы скрэмблирования отличаются количеством слагаемых, которые определяют цифру результирующего кода, и сдвигом между слагаемыми.