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

Курсовой проект_Комп_логика_пример_рус

.pdf
Скачиваний:
17
Добавлен:
26.03.2015
Размер:
746.49 Кб
Скачать

3. Построение графа переходов автомата

На основании таблицы 2.4, построим граф переходов автомата Мура (Рис. 3.1.).

Рис. 3.1. Граф переходов автомата Мура.

4.Построение матрицы переходов триггера

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

(табл. 4.1).

Таблица 4.1 – сокращенная таблица переходов асинхронного триггера

t

 

t+1

x

y

Q

0

0

Q(t)

0

1

1

1

0

0

1

1

1

11

Построим полную таблицу переходов асинхронного триггера (табл. 4.2), сокращенную таблицу переходов синхронного триггера (табл. 4.3) и полную таблицу переходов синхронного триггера (табл. 4.4).

Таблица 4.2 – полная таблица переходов асинхронного триггера

 

t

 

t+1

x

y

Q

Q

0

0

0

0

0

0

1

1

0

1

0

1

0

1

1

1

1

0

0

0

1

0

1

0

1

1

0

1

1

1

1

1

Таблица 4.3 – сокращенная таблица переходов синхронного триггера

 

t

 

T+1

C

x

y

Q

0

0

0

Q(t)

0

0

1

Q(t)

0

1

0

Q(t)

0

1

1

Q(t)

1

0

0

Q(t)

1

0

1

1

1

1

0

0

1

1

1

1

Таблица 4.4 – полная таблица переходов синхронного триггера

 

 

t

 

t+1

C

X

y

Q

Q

0

0

0

0

0

0

0

0

1

1

0

0

1

0

0

0

0

1

1

1

0

1

0

0

0

0

1

0

1

1

12

0

1

1

0

0

0

1

1

1

1

1

0

0

0

0

1

0

0

1

1

1

0

1

1

1

1

1

0

0

1

1

1

0

1

0

1

1

0

1

0

1

1

1

0

1

1

1

1

1

1

Триггер имеет четыре возможные варианта переходов: “0-0”, “0- 1”, “1-0”, “1-1”. В соответствии с ними построим матрицу переходов и соответствующих им сигналов X и Y (табл. 4.5).

Таблица 4.5 – матрица переходов и соответствующих сигналов X и Y

Q(t)

Q(t+1

x

Y

 

)

 

 

0

0

0

0

 

 

1

0

0

1

0

1

 

 

1

1

1

0

1

0

1

1

0

0

01

11

Втаблице 4.6 представлена матрица переходов триггера. В данной матрице имеются неопределенные переходы. Используя таблицу доопределения входных сигналов триггера [1], установим взаимозависимость между входными переменными триггера. В результате получим следующую матрицу. (табл. 4.6.).

Таблица 4.6 – матрица переходов триггера

0-0

b1

0

0-1

b2

1

1-0

1

0

1-1

b3

b3vb4

Выберем обозначения b3vb4=b5

13

5. Кодирование входных и выходных алфавитов состояний

Для кодирования входных сигналов выписывается множество сигналов Х={х1,…хm}, которые кодируются векторами длины Квх=int(log(m)), где int это округление до ближайшего целого числа, М мощность множества Х (количество символов входного алфавита). Кодирование входных сигналов осуществляется произвольно.

Исходные входные сигналы нашего автомата Мура Х={х123}, следовательно, Квх=int(log(3))=2. Таким образом, нам понадобится два разряда, чтобы закодировать входные сигналы (табл. 5.1).

Таблица 5.1 – кодирование входных сигналов

X

z1

z2

x1

0

0

x2

0

1

x3

1

0

Выходные сигналы автомата Y={y1,..ys} кодируются векторами длины Квых=int(log(S)), где S мощность множества Y (количество символов выходного алфавита).

Исходные выходные сигналы нашего автомата Мура Y={y1,y2,y3,y4}, следовательно, Квых=int(log(4))=2. Два разряда будет достаточно, чтобы закодировать выходные сигналы.

Для кодирования выходного алфавита применяем весовой метод.

Алгоритм весового метода кодирования:

1.Каждому выходному сигналу уі ставится в соответствие целое число Рі, равное числу появлений сигнала уі в таблице выходов автомата.

2.Числа Рі сортируются по убыванию.

3.Выходной сигнал уі с наибольшим весом (Рі max) кодируются кодом, содержащим все 0 (00...00).

14

4.Следующие L выходных сигналов (где L- число разрядов в двоичном векторе выходного сигнала) по списку убывания веса (см п.

2)кодируются кодами, содержащими одну 1 (00...01, 00...10, ...

,10...00)

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

Каждому выходному сигналу поставим в соответствие весовой

коэффициент Р. (таблица 5.2.)

Таблица 5.2 – весовые коэффициенты выходных сигналов

У

P

y1

3

y2

3

y3

1

y4

2

Весовые коэффициенты сортируются по убыванию (таблица

5.3.).

Таблица 5.3

 

 

 

 

 

 

У

 

P

 

y1

 

3

 

y2

 

3

 

y4

 

2

 

y3

 

1

Таблица 5.4 – кодирование выходных сигналов

У

w1

w2

y1

0

0

y2

0

1

y4

1

0

y3

1

1

15

6 Кодирование алфавита состояний автомата

Состояния автомата А={а12…,аr} кодируются векторами длины Ксост=int(log(r)), где r мощность множества A (количество состояний). Отметим, что длина вектора состояний определяет и количество элементов памяти (триггеров) данного автомата.

Состояния автомата А={а1, а2, а3, а4, а5, а6, а7, а8, а9} кодируются векторами длины Ксост=int(log(10))=4. Для кодирования будем использовать эвристический метод, который позволяет наиболее эффективно подобрать коды состояний для получения наилучшего коэффициента эффективности кодирования Кэф=W/P, где P- общее количество переходов автомата, а W - весовая функция.

W= tij ,

где tij - расстояние Хэмминга между кодами состояний ai и aj,

Алгоритм состоит из следующих шагов:

1.Построить матрицу М, составленную из всех пар номеров (аr, br) переходов автомата.

2.Переставим строки в матрице таким образом, чтобы в каждой

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

3.Закодируем состояния из первой строки матрицы М следующим образом: Ка1=00...00, Кb1=00...01.

4.Вычеркнем из матрицы М первую строку с закодированными

состояниями. Получим матрицу М`.

5.В силу п. 3 в начальной строке матрицы М’ закодирован один элемент. Выберем из первой строки матрицы М` незакодированный элемент и обозначим

его γ.

6.Построим матрицу Мγ, выбрав из матрицы М` строки, содержащие γ.

Пусть Вγ={γ1, γ2,…, γf,…, γF} – множество элементов из матрицы Мγ, которые

уже закодированы. Их коды обозначим через Кγ1, Кγ2,…,Кγf,…,КγF

соответственно.

7.Для каждого Кγf (f=1, 2, …,F) найдем C1f - множество кодов, отстоящих

от Кγf на расстояние Хэмминга, равное 1 и еще не занятых для кодирования

16

 

 

 

F

 

состояний автомата.

Построим множествоD1 = C1f . Если

D1 =0, то

 

 

 

f 1

 

 

F

 

 

 

строим новое множество D2 = C 2f , где

C2f -

множество кодов,

у которых

 

f 1

 

 

 

кодовое расстояние с кодом Кγf равно 2. Если и D2

=0, строим D3 и т.д., пока не

найдем Dn ≠0. Пусть Dn

={Кγ1,…, Кγg,…, КγG}.

 

 

 

8.Для каждого КγG находим wgf=| Кγg- Кγf|2 – расстояние Хэмминга между Кγ g

ивсеми используемыми кодами Кγf (f=1, 2, …,F).

F

9. Находим wg = wgf, (g=1,…,G).

f1

10.Из Dn выбираем Кγ, у которого wg = wg min. Элемент γ кодируем кодом

Кγ.

11.Из матрицы М` вычеркиваем строки, в которых оба элемента

закодированы, в результате чего получаем новую матрицу, которую также

обозначаем М`. Если в матрице М` не осталось ни одной строки, переходим к п. 12, иначе к п. 5.

12.Вычисляем функцию w=∑tms, где tms|Km-Ks|2.

13.Конец.

Оценкой качества кодирования по рассмотренному алгоритму может

служить число К=W/P, где Р – число переходов в автомате. Очевидно, что К≥1, причем, чем меньше значение К, тем лучше результат кодирования.

Для начала кодирования построим матрицу переходов автомата М. Первые две строки в матрице М кодируем: K1=0000 и K5=0001. Далее следуем эвристическому методу кодирования.

17

 

 

1-5

 

В матрице М вычеркнем первую строку(1-5) и те

 

 

 

 

1-1

 

строки, которые оказались полностью закодированными

 

 

1-7

 

(1-1, 5-1).

 

 

 

 

 

 

 

 

 

2-1

 

 

 

 

 

 

 

 

 

 

2-3

 

 

1-7

 

Получим матрицу М`.

 

 

 

2-4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3-6

 

 

2-3

 

В матрице М`

в первой строке не

 

 

3-3

 

 

2-1

 

 

 

3-5

 

 

2-4

 

закодирован элемент 7. γ=7. Строим

 

 

4-4

 

 

3-6

 

 

 

4-6

 

 

3-3

 

матрицу Мγ (М7), выбрав из матрицы М`

 

 

4-2

 

 

3-5

 

все строки, содержащие γ (7).

 

 

 

5-7

 

 

4-4

 

 

М=

 

5-1

 

 

4-6

 

 

 

 

 

 

 

 

5-8

 

 

4-2

 

 

1-7

 

 

 

 

 

6-5

 

 

5-7

 

 

5-7

 

 

 

 

 

6-9

 

М`=

5-8

 

М7=

7-4

 

 

 

 

 

6-8

 

6-5

 

7-8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7-4

 

 

6-9

 

 

7-1

 

 

 

 

 

7-8

 

 

6-8

 

 

9-7

 

 

 

 

 

7-1

 

 

7-4

 

В7={1, 5}={0000, 0001} –

множество

 

 

8-9

 

 

7-8

 

 

 

8-1

 

 

7-1

 

элементов из матрицы М7, которые уже

 

 

8-3

 

 

8-9

 

 

 

9-7

 

 

8-1

 

закодированы. Для

каждого

элемента

 

 

9-9

 

 

8-3

 

этого множества найдем множества

 

 

9-1

 

 

9-7

 

 

 

 

 

 

9-9

 

 

 

 

 

 

 

 

 

 

 

9-1

 

 

 

 

 

 

C1f C711 ={0010, 0100, 1000};

C1f C751 ={0011, 0101, 1001};

D71 {0010, 0100, 1000, 0011, 0101, 1001};

Для каждого кода из множества D71 найдем wgf= кδg- кγf 2 - межкодовое

 

 

 

 

 

 

 

 

 

 

F

 

 

 

расстояние Хэмминга и wg wgf

 

 

 

 

 

 

 

 

 

 

 

f 1

 

 

 

 

1-7

 

 

5-7

 

 

7-1

 

 

 

W0010=

 

0000

 

+

 

0001

 

+

 

0010

 

=

4

 

0010

 

 

0010

 

 

0000

 

W0100=

 

0000

 

+

 

0001

 

+

 

0100

 

=

4

 

 

 

 

 

 

 

0100

 

 

0100

 

 

0000

 

18

W1000=

 

0000

 

+

 

0001

 

+

 

1000

 

=

4

 

1000

 

 

1000

 

 

0000

 

W0011=

 

0000

 

+

 

0001

 

+

 

0011

 

=

5

 

 

 

 

 

 

 

0011

 

 

0011

 

 

0000

 

W0101=

 

0000

 

+

 

0001

 

+

 

0101

 

=

5

 

 

 

 

 

 

 

0101

 

 

0101

 

 

0000

 

W1001=

 

0000

 

+

 

0001

 

+

 

1001

 

=

5

 

 

 

 

 

 

 

1001

 

 

1001

 

 

0000

 

Выбираем код, для которого wg имеет минимальное значение.

К7=0010.

Из матрицы М` вычеркнем первую строку (1-7) и те строки, которые оказались полностью закодированными (5-7, 7-1). В результате получаем новую матрицу М`, в первой строке которой не закодирован элемент 2. . γ=2. Строим матрицу Мγ (М2), выбрав из матрицы М` все строки, содержащие γ (2).

 

2-1

 

 

2-1

 

 

 

 

 

 

 

 

 

 

 

 

 

2-3

М2=

 

2-3

 

 

 

 

 

 

2-4

 

2-4

 

 

 

 

 

 

3-6

 

 

4-2

 

 

 

 

 

 

3-3

 

В2={1}={0000} – множество элементов из матрицы

 

3-5

 

 

М2, которые уже закодированы. Найдем множества

 

4-4

 

4-6

C1f C211 ={0100, 1000};

 

4-2

 

 

 

 

 

 

 

 

 

 

М`=

5-8

D21 {0100, 1000};

 

6-5

 

Для каждого кода из множества D21 найдем

 

6-9

 

 

6-8

 

wgf= кδg- кγf 2 - межкодовое расстояние по Хэммингу.

 

7-4

 

 

 

 

 

 

 

 

 

 

 

7-8

W0100=

 

 

0100

 

=

1

 

8-9

 

 

0000

 

 

8-1

 

 

 

 

 

 

 

 

 

 

 

8-3

W1000=

 

 

1000

 

=

1

 

 

 

9-7

 

 

0000

 

 

9-9

 

 

 

 

 

 

 

 

 

 

 

9-1

Выбираем К2=0100.

 

 

 

 

 

 

 

 

 

 

 

19

Из матрицы М` вычеркнем первую строку (2-1). В результате получаем новую матрицу М`, в первой строке которой не закодирован элемент 3. . γ=3. Строим матрицу Мγ (М3), выбрав из матрицы М` все строки, содержащие γ (3).

2-3

2-4

3-6

3-3

3-5

4-4

4-6

4-2

5-8

М`= 6-5 6-9

6-8

7-4

7-8

8-9

8-1

8-3

9-7

9-9

9-1

 

 

2-3

 

В3={2, 5}={0100, 0001} – множество

 

 

 

 

3-6

 

элементов из матрицы М3, которые уже

М3=

 

3-3

 

 

 

3-5

 

закодированы. Найдем множества

 

 

8-3

 

C1f C321 ={0101, 0110, 1100};

 

 

 

 

C1f C351 ={1001, 1010, 1100};

D31 {0101, 0110, 1100, 1001};

Для каждого кода из множества D31 найдем wgf= кδg- кγf 2 - межкодовое расстояние по Хэммингу.

 

2-3

 

 

3-3

 

 

3-5

 

 

 

W0101=

 

0100

 

+

 

0101

 

+

 

0101

 

=

2

 

0101

 

 

0101

 

 

0001

 

W0110=

 

0100

 

+

 

0110

 

+

 

0110

 

=

4

 

 

 

 

 

 

 

0110

 

 

0110

 

 

0001

 

W1100=

 

0100

 

+

 

1100

 

+

 

1100

 

=

4

 

 

 

 

 

 

 

1100

 

 

1100

 

 

0001

 

W1010=

 

0100

 

+

 

1010

 

+

 

1010

 

=

6

 

 

 

 

 

 

 

1010

 

 

1010

 

 

0001

 

Выбираем код с минимальным значеним W.

К3=0101.

Из матрицы М` вычеркнем первую строку (2-3) и те строки, которые оказались полностью закодированными (3-3, 3-5). В результате получаем новую матрицу М`, в первой строке которой не

20