Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

3 курс / 03 CRC / TEC_2_3

.pdf
Скачиваний:
32
Добавлен:
10.12.2013
Размер:
395.18 Кб
Скачать

ПЕРМСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Кафедра «Автоматика и телемеханика»

МЕТОДИЧЕСКИЕ УКАЗАНИЯ К ЛАБОРАТОРНЫМ РАБОТАМ

ПО КУРСУ «Теория электрической связи», часть 2.

Пермь, 2007

Данное руководство является учебно-методическим пособием для выполнения лабораторных работ по курсу «Теория электрической связи», часть 2, для студентов специальности 210406 «Сети связи и системы коммутации».

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

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

Лабораторная работа №3. ИССЛЕДОВАНИЕ КОДИРОВАНИЯ И ПРОЕКТИРОВАНИЕ

ДЕКОДЕРОВ ЬЧХ-КОДОВ

Цель работы. Исследование избыточных циклических систематических кодов, в частности, БЧХ-кодов. Анализ кодирующих устройств различного вида в передающих полукомплектах трактов передачи дискретных сообщений.

I.ОБЩИЕ ПОЛОЖЕНИЯ

1.Кодирование БЧХ-кодов при помощи порождающего полинома g(x)

1.1.Общие принципы кодирования

Полином циклического кода можно представить в виде

k 1

k +m1

 

V (x) = c j x j +

ui xi ,

(1.1)

j=0

i=k

 

 

k 1

где cj – коэффициенты полинома избыточной части r(x) = c j x j ; ui – ко-

j=0

эффициенты исходного полинома информационной части u(x) = m1ui xi .

i=0

Полином информационной части u(x) сдвинут в сторону старших разрядов на k символов, что эквивалентно умножению информационного полинома на xk. Представим полином циклического кода в виде

V (x) = r(x) u(x) x k .

(1.2)

Поскольку полиномы циклических кодов делятся на порождающий полином g(x) без остатка, то выражение можно записать в виде

u(x) xk = q(x) g(x) r(x),

(1.3)

где g(x) – порождающий полином; q(x) – частное от деления полинома u(x) xk на порождающий полином g(x); r(x) – остаток от деления полинома u(x) xk на порождающий полином g(x).

Таким образом, для определения избыточной части r(x) полинома циклического систематического кода V(x) необходимо определить остаток от деления полинома u(x) xk на порождающий полином g(x). Указанный

способ достаточно прост и эффективно алгоритмизируется, поэтому нашел наибольшее применение на практике.

Пример 1. Для циклического кода (7,4,3), заданного порождающим полиномом g(x) = 1 x2 x3, и информационного полинома u(x) = 1 рассчитать избыточные символы.

Определим остаток от деления полинома u(x) xk = 1 x3 = x3 на порождающий полином g(x) = 1 x2 x3.

x3

 

 

x3 x2 1

 

x3 x2 1

 

 

 

 

1

x2 1

 

 

 

Рассчитанную избыточную часть представим в виде полинома r(x) = 1 x2. Полином V(x) может быть представлен в виде V(x) = 1 x2 x3. Вектор V может быть представлен в виде V = (1011000).

Кодирование при помощи порождающего полинома g(x) для кодов с четным минимальным кодовым расстоянием проводится по указанному алгоритму, за исключением одного нюанса. Он связан с видом порождающего полинома, который, как известно, получается путем умножения порождающего полинома g(x) кода с нечетным минимальным кодовым расстоянием на полином (1 x). Все остальные вычисления с применением полученного порождающего полинома проводятся аналогично.

Пример 2. Для циклического кода (7,3,4), заданного порождающим полиномом g(x) = 1 x2 x3, и информационного полинома u(x) = 1 рассчитать избыточные символы.

Построим порождающий полином для заданного кода

g(x) = (1 x2 x3)·(1 x) = 1 x2 x3 x x3 x4 = 1 x x2 x4.

Определим остаток от деления полинома u(x) xk = 1 x4 = x4 на порождающий полином g(x) = 1 x x2 x4:

x4

 

 

x4 x2 x 1

 

x4 x2 x 1

 

 

 

 

1

x2 x 1

 

 

 

Рассчитанную избыточную часть представим в виде полинома r(x) = = 1 x x2. Полином V(x) может быть представлен как V(x) = 1 x x2x4. Вектор V может быть представлен в виде V = (1110100).

Кодирование при помощи порождающего полинома g(x) для укороченных циклических кодов не имеет принципиальных отличий. Это объясняется тем, что количество избыточных символов для неукороченного и полученного от него укороченного циклического кода, как известно, совпадает. Укорочению подвергается информационная часть, что не влияет на алгоритм кодирования.

1.2. Кодирующие устройства БЧХ-кодов, построенные при помощи порождающего полинома g(x)

Кодирующее устройство (кодер) предназначено для выполнения следующих функций.

1.Прием и промежуточное хранение информационной части u(x).

2.Вычисление избыточных символов.

3.Формирование полинома V(x) и передача его в канал связи. Основным элементом кодирующего устройства является регистр

сдвига с линейной логической обратной связью (РСЛЛОС). Способ по-

строения РСЛЛОС зависит от вида полинома, при помощи которого строится кодер.

Рассмотрим структурную схему кодирующего устройства с предварительным умножением на xk. Предварительное умножение позволяет избежать временной задержки и аппаратной избыточности за счет подачи в схему информационного полинома u(x), предварительно умноженного на величину xk. Это можно сделать, подавая полином u(x) не на вход первого элемента памяти, соответствующего младшей (нулевой) степени, а на выход последнего, соответствующего k-й степени. Схема такого устройства приведена на рис. 1.

 

 

 

 

 

 

 

 

 

 

 

 

У

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

к1

 

 

 

 

к2

 

 

 

 

g0

 

g1

gk–1

 

 

 

gk

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

V(x)

 

D0

 

 

 

 

 

Dk–1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

u(x) xk

Рис. 1. Структурная схема кодера БЧХ-кода с предварительным умножением на xk

Функции возбуждения для элементов памяти могут быть представлены в следующем виде:

Dt

= Dt 1

g

(Dt 1

ut ),i =

 

 

1..k 1,

i

i 1

 

 

i

 

k

 

 

 

Dt

=ut g

0

Dt 1

=ut Dt 1.

0

 

 

 

k 1

 

k 1

Ключ к1 открыт в течение первых m тактов для активизации обратной связи, закрыт в течение последующих k тактов для разрыва обратной связи. Ключ к2 закрыт в течение первых m тактов для отключения регистра от выхода, открыт в течение последующих k тактов для выдачи избыточной части в канал связи. Ключи переключаются по сигналу управления У: 1 – к1 открыт, к2 закрыт, 0 – к1 закрыт, к2 открыт. Расчет избыточной части по предварительно умноженному на xk информационному полиному u(x) осуществляется за первые m тактов работы схемы.

Пример 3. Построить схему кодирующего устройства с предварительным умножением на xk для циклического кода (7,4,3) и порождающего полинома g(x) = 1 x2 x3. Промоделировать работу схемы для

информационного полинома u(x) = 1.

 

 

порождающего полинома g(x)

С учетом

параметров кода, вида

и способа кодирования

схема будет

выглядеть

следующим образом

(рис. 2).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

У

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

к1

 

 

 

 

 

к2

 

 

 

 

 

g0

 

 

 

g2

 

 

 

 

g3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

V(x)

 

 

D0

 

D1

 

 

 

 

D2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

u(x) xk

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 2. Структурная схема кодирующего устройства БЧХ-кода (7,4,3) с предварительным умножением на x3

Функции возбуждения для элементов памяти:

D0t = ut D2t 1 , D1t = D0t1 , D2t = D1t1 D2t1 ut .

Промоделируем работу кодера и занесем результаты в таблицу переходов и выходов (табл. 1).

 

 

 

 

 

 

 

Таблица 1

№ такта

u

D0

D1

D2

V

 

 

 

 

0

0

0

 

У = 1:

1

0

0

0

0

0

2

0

0

0

0

0

к1 открыт,

3

0

0

0

0

0

к2

закрыт

4

1

1

0

1

1

 

 

5

0

0

1

0

1

У = 0:

6

0

0

0

1

0

к1

закрыт,

7

0

0

0

0

1

к2

открыт

Моделирование показало, что к такту с номером m = 4 в элементах памяти регистра сформировалась избыточная часть r(x) = 1 x2, а к такту с номером n = 7 в канал связи передан полином V(x) = 1 x2 x3.

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

Способы построения кодирующих устройств для кодов с четным минимальным кодовым расстоянием не имеют принципиальных отличий от рассмотренных, за тем исключением, что для построения РСЛЛОС применяется порождающий полином g(x) (1 x).

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

2. Кодирование БЧХ-кодов при помощи проверочного полинома h(x)

2.1. Общие принципы кодирования

Проверочный полином h(x) рассчитывается путем деления полинома (xn–1) на порождающий полином g(x) и может быть представлен в следующем виде:

m

 

h(x) = hi xi .

(1.4)

i=0

Для кодирования при помощи проверочного полинома h(x) необходимо построить проверочную матрицу H, которая образуется за счет цик-

лического сдвига коэффициентов проверочного полинома h(x):

 

 

 

hn1

hn2 ...

h1

h0

 

 

H

k×n

= hn2

hn3 ...

h0

hn1

,

(1.5)

 

 

... ... ...

...

 

 

 

 

...

 

 

 

 

hnk hn(k +1) ...hn(k 2) hn(k 1)

 

где hi – коэффициенты проверочного полинома h(x).

По известному соотношению V HT=0 можно построить k уравнений, которые образуются путем умножения вектора V на столбцы транспонированной матрицы HT (строки матрицы H). Но нумерация элементов вектора начинается с младших разрядов, а строк матрицы H – со старших. Поэтому для удобства произведем перенумерацию элементов вектора V, выразив при этом все элементы полинома через коэффициенты ai:

V (x) = an1 an2 x an3 x2 ... a0 xn1

n1

 

= an1i xi .

(1.6)

i=0

Таким образом, после перенумерации коэффициент an–1 соответствует младшему разряду вектора, а коэффициент a0 – старшему. С учетом выполненных действий выпишем уравнения:

 

 

an1 hn1 an2 hn2 ... a1 h1 a0 h0

= 0,

 

 

 

an1 hn2 an2 hn3 ... a1 h0

a0 hn1

= 0,

 

 

 

(1.7)

 

 

 

 

 

 

...

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a

n1

h

a

n2

h

... a

h

2)

a

0

h

 

= 0.

 

nk

 

n(k +1)

1

n(k

 

 

n(k 1)

 

Проверочный полином h(x) имеет максимальную степень m, поэтому коэффициенты hi для i>m равны 0. С учетом этого уравнения можно представить в следующем виде:

 

am hm am1 hm1

... a1 h1 a0 h0

= 0,

 

am+1 hm am hm1

... a2 h1 a1 h0

= 0,

 

 

 

 

 

 

 

...

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a

m+k 1

h a

m+k 2

h

 

... a

k

h a

k 1

h = 0.

 

m

m1

 

1

0

Уравнения можно представить в следующем виде:

m

ai + j hi =0, i =0

где j = 0, k 1.

(1.8)

(1.9)

Согласно проведенной перенумерации символы с a0 по am–1 – информационные, а с am по am+k–1 = an–1 – избыточные. Поэтому в первом уравнении имеется только одно неизвестное (am), во втором – два (am и am+1) и т. д. При этом, определив в первом уравнении неизвестное am и подставив его во второе, получим во втором уравнении тоже одно неизвестное. Последовательно вычисляя избыточные символы в каждом уравнении, определим все элементы избыточной части. Можно записать рекуррентную формулу вычисления избыточных символов:

m1

 

am+ j = ai+ j hi .

(1.10)

i=0

Для обычного представления вектора циклического систематического кода после вычисления избыточных символов можно провести обратную перенумерацию.

Пример 4. Для циклического кода (7,4,3), информационного полинома u(x) = 1 и проверочного полинома h(x) = 1 x2 x3 x4 рассчитать избыточные символы.

Выполним перенумерацию символов кода, в результате младший разряд будет иметь индекс 6, а старший разряд – 0. Вычисления произведем по рекуррентной формуле:

41

a4+ j = ai+ j hi , i=0

a4=a3 h3 a2 h2 a1 h1 a0 h0=a3 a2 a0=1 0 0=1, a5=a4 h3 a3 h2 a2 h1 a1 h0=a4 a3 a1=1 1 0=0, a6=a5 h3 a4 h2 a3 h1 a2 h0=a5 a4 a2=0 1 0=1.

Уравнения можно упростить, потому что коэффициенты провероч-

ного полинома h(x) h3 = h2 = h0 = 1, а h1 = 0.

Рассчитанную избыточную часть можно представить в виде полинома r(x) = 1 x2. Очевидно, что результаты расчетов избыточной части для одного кода, выполненных при помощи разных способов, совпадают.

Кодирование при помощи проверочного полинома h(x) для кодов с четным минимальным кодовым расстоянием проводится по указанному алгоритму, за исключением одного нюанса. Он связан с видом проверочного полинома, который, как известно, вычисляется по порождающему полиному g(x)·(1 x). Все остальные вычисления с применением полученного проверочного полинома проводятся аналогично.

Кодирование при помощи порождающего полинома h(x) для укороченных циклических кодов имеет определенные отличия. Это объясняется тем, что количество информационных символов для неукороченного и полученного от него укороченного циклического кодов, как известно, не совпадает. Укорочению подвергается информационная часть, что влияет на перенумерацию, поскольку при укорочении считается, что старшие i разряды равны 0 (i – степень укорочения), что влияет на смещение нумерации. С учетом сказанного рекуррентная формула может быть записана в следующем виде:

m1+t

 

am+ j = ai+ jt hi ,

(1.11)

i=0

где t – степень укорочения.

Пример 5. Для укороченного БЧХ-кода (5,2,3), информационного полинома u(x) = 1 и проверочного полинома h(x) = 1 x2 x3 x4 рассчитать избыточные символы.

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

 

21+2

a2+ j =

ai+ j2 hi ,

 

i=0

где m = 2; t = 2. Коэффициенты ai с отрицательными значениями индексов считаются равными 0.

Уравнения будут выглядеть следующим образом:

a2=a1 h3 a0 h2=a1 a0=1 0=1, a3=a2 h3 a1 h2 a0 h1=a2 a1=1 1=0, a4=a3 h3 a2 h2 a1 h1 a0 h0=a3 a2 a0=0 1 0=1.

Уравнения можно упростить, потому что коэффициенты провероч-

ного полинома h(x) h3 = h2 = h0 = 1, а h1 = 0.

Рассчитанную избыточную часть представим в виде полинома r(x) = 1 x2. Очевидно, что результаты расчетов избыточной части для неукороченного и укороченного кодов для одинаковых значений информационного вектора совпадают.

2.2. Кодирующие устройства БЧХ-кодов, построенные при помощи проверочного полинома h(x)

Структурная схема регистра сдвига в рассматриваемом случае определяется проверочным полином h(x), а также способом вычисления проверочных символов по рекуррентной формуле (рис. 3).

 

 

 

am+j

hm–1

hm–2

h0

 

Dm–1 Dm–2 D0 V(x)

am–1

am–2

a0

Рис. 3. Структурная схема кодирующего устройства БЧХ-кода при помощи проверочного полинома h(x)

Соседние файлы в папке 03 CRC
  • #
    10.12.201354.5 Кб28coder_g.mdl
  • #
    10.12.201334.83 Кб28coder_h.mdl
  • #
    10.12.2013195.92 Кб26crc_codes.mdl
  • #
    10.12.2013202.19 Кб30decoder.mdl
  • #
    10.12.2013395.18 Кб32TEC_2_3.pdf
  • #
    10.12.2013270.85 Кб62TEC_2_4.DOC
  • #
    10.12.2013404.93 Кб37TEC_2_4.pdf
  • #
    10.12.201384.74 Кб27template_coder.mdl
  • #
    10.12.2013631.31 Кб29template_decoder.mdl