Кодирование речевой информации

S(x)=a(x)/f(x), где a(x) - исходные данные, f(x) - соответствующие коэффициенты многочлена.

Естественно, что желательно получить как можно более длинный период последовательности от многочлена заданной степени, а максимально возможная ее длина - 2N-1 в GF(2N). Последовательности максимальной длины формируются по правилу: Если многочлен f(x) степени n делит многочлен xK-1 лишь при K>2N-1, то период его любой ненулевой последовательности равен 2N-1. Существуют таблицы коэффициентов м-последовательностей.


Свойства м-последовательностей:

1.В каждом периоде последовательности число 1 и 0 отличается не более, чем на единицу.

2.Среди групп из последовательных 1 и 0 в каждом периоде половина имеет длительность в один символ, четвертая часть имеет длительность в два символа, восьмая часть имеет длительность в четыре символа и т.д.

3.Корреляционная функция последовательности имеет единственный значительный пик амплитуды 1 и при всех сдвигах равна 1/m (m- длина последовательности).

Корреляция между векторами вычисляется по формуле:


Где А - число позиций, в которых символы последовательностей x и y совпадают, а В - число позиций, в которых символы последовательностей x и y различны.

Генератор псевдослучайных чисел


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

Формирование кода


Для формирования кода используется 5-разрядный первичный ключ, получаемый из генератора псевдослучайных чисел. Таким образом, на начальном этапе формирования ключа мы имеем количество комбинаций  25-2=30 (-2 поскольку комбинация 00000 является недопустимой). Потом первичный ключ подается на два генератора (два для увеличения количества кодов - см. ниже), вырабатывающие по этому ключу 31-разрядные м-последовательности. Эти последовательности перемножаются по модулю 2, циклически сдвигаясь, и образуя два вложенных цикла, выдают 312 вариантов ключа. Итого, общее число допустимых комбинаций составляет 30*312 .

Эти 312 вариантов хранятся в ОЗУ базового аппарата. Выбор одного ключа осуществляется путем повторного обращения к генератору псевдослучайных чисел. Итого, получаем неплохую для данных условий криптографической защиты цифру 30*313=~900000 комбинаций, не говоря о том, что надо еще догадаться, какой метод применяется для кодирования. При этом  статистические свойства данной последовательности практически не отличаются от м-последовательности.












Схема формирования кода


Второй генератор М-последовательности

 

Первый генератор М-последовательности

 

Сдвиг ПСП1

 

Сдвиг ПСП2

 

Организация цикла до 31 по первому генератору

 

Организация цикла до 31 по второму генератору

 

Взять из датчика случайных чисел еще 5 разрядов

 

По этому адресу выбрать код из ОЗУ

 

Проверка регистра на “все нули”. Если это так, читать из регистра еще раз, если нет - передача содержимого регистра в генераторы (их два)

 

 Взять из датчика случайных чисел 5 разрядов (из регистра)

 

ПСП(i)=ПСП1Å ПСП2

 

Ожидание, когда трубку возьмут и после этого положат

 
                                                                                                                                                                                                                                                                                                                                                                                          


























Взяли    Не взяли


 

Программа формирования кода


 

Команда

Asm

Примечание

 

MOV

ECX, ADDR1

Загрузка регистров 31-

 

MOV

EBX, ADDR2

разрядными значениями ПСП

 

MOV

ADDR3, 1Fh

Организация счетчиков

 

MOV

ADDR4, 1Fh


 

MOV

AL, ADDR3

Загрузка значения счетчика № 1

M1:

JZ

M3

Если это “0”  - выход

 

PCL

ECX, 1

Сдвиг значения ПСП1

 

DEC

AL

Декремент счетчика № 1

 

MOV

ADDR3, AL

Значение счетчика - в память

M2:

MOV

AL, ADDR4

Загрузка значения счетчика № 2

 

JZ

M1

Если “0”- переход на внешний цикл

 

MOV

EDX, ECX

Умножение по модулю 2 одной ПСП на

 

XOR

EDX, EBX

другую

 

RCL

EBX

Декремент счетчика № 2

 

MOV

[AL], EDX

Заносим очередное значение в память

 

JMP

M2

Замыкание внутреннего цикла

М3

END




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

Страницы: 1, 2, 3



Реклама
В соцсетях
рефераты скачать рефераты скачать рефераты скачать рефераты скачать рефераты скачать рефераты скачать рефераты скачать