Курсовой проект_Комп_логика_пример_рус
.pdf3. Построение графа переходов автомата
На основании таблицы 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 это округление до ближайшего целого числа, М мощность множества Х (количество символов входного алфавита). Кодирование входных сигналов осуществляется произвольно.
Исходные входные сигналы нашего автомата Мура Х={х1,х2,х3}, следовательно, Квх=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 Кодирование алфавита состояний автомата
Состояния автомата А={а1,а2…,а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