Проектирование подсистемы САПР защиты персонального компьютера от несанкционированного доступа

 

СОДЕРЖАНИЕ


Введение

1. Анализ предметной области

1.1 Задачи системы ограничения доступа

1.2 Технические средства формирования аудиоданных

1.3 Основы биометрической идентификации

1.4 Характеристика существующих аналогичных систем

1.5 Возможность использования нейросетей для построения системы распознавания речи

1.6 Система распознавания речи как самообучающаяся система

2. Постановка задачи

3. Общее описание системы

3.1 Описание структурной схемы разрабатываемой САПР

3.2 Описание схемы работы системы разрабатываемой подсистемы САПР

4. Описание видов обеспечений

4.1 Описание математического обеспечения

4.1.1 Фильтрация шумов

.1.2 Спектральное преобразование сигнала

.1.3 Фильтрация спектра

.1.4 Сравнение с эталонными образцами

.1.5 Нейросетевое сравнение на основе простых персептронов

4.2 Описание технического обеспечения

4.3 Описание информационного обеспечения

4.4 Описание лингвистического обеспечения

4.4.1 Программное обеспечение для входа пользователя в систему

.4.2 Системное программное обеспечение

4.5 Описание методического обеспечения

4.6 Тестирование программного обеспечения

5. Вопросы охраны труда

5.1 Введение в охрану труда

5.2 Неблагоприятные факторы и средства защиты от них

5.3 Классификация объекта по взрывной, взрывопожарной и пожарной опасности

5.4 Электробезопасность

5.5 Расчёт заземляющего контура

5.6 Производственное освещение

5.6.1 Расчёт естественного освещения

.6.2 Расчёт искусственного освещения

5.7 Гигиена труда

6. Технико-экономическое обоснование проекта

6.1 Персонал. орагнизационная структура

6.2 Сроки реализации проекта. календарный график проекта. планирование работ по проекту с использованием сетевого графика

6.3 Оценка экономической эффективности от внедрения проекта

6.4 Расчет единовременных затрат

6.5 Расчет стоимости одного машино-часа работы комплекса технических средств САПР

6.6 Расчет предустановочных затрат

6.7 Затраты на внедрение аналогичных систем

6.8 Расчет годовых текущих издержек на разработку проекта

6.9 Сводная таблица технико-экономических показателей разработки САПР

6.10 Выводы

Заключение

Список используемых источников

Приложение А - Исходный текст программы LoginSecure.exe


ВВЕДЕНИЕ


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

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

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

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

Есть ли выход из этой ситуации? Оказывается, есть, и уже давно. Просто для доступа к системе нужно применять такие методы идентификации, которые не работают в отрыве от их носителя. Этому требованию отвечают биометрические характеристики человеческого организма. Современные биометрические технологии позволяют идентифицировать личность по физиологическим и психологическим признакам.


1. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ


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

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

Идентификация основывается на том, что измеренные данные сравниваются с данными, веденными при регистрации пользователя, и компьютер пытается на основе сравнения "узнать" человека.

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

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

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

Биометрические технологии все заметнее выступают на лидирующие позиции в индустрии безопасности, в борьбе с преступностью и терроризмом. "Сентябрьский Армагеддон" в США еще раз подтвердил необходимость широкого применения биометрических систем безопасности, способных идентифицировать отдельных лиц в местах скопления людей.

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


1.1 Задачи системы ограничения доступа


Для чего предназначены системы контроля и управления доступом:

Системы контроля и управления доступом, в зависимости от своего класса, решают целый ряд задач.

Первая задача, которую решает система контроля доступа любого класса - недопущение допуска посторонних в определенные помещения и организация беспрепятственного прохода в эти помещения лиц, имеющих право доступа. В этом смысле система доступа осуществляет функции обыкновенного дверного замка, "расширяя" его функциональность. Например есть некоторое производственное помещение, в котором работает достаточно большое количество сотрудников. В данном помещении хранятся некие материальные ценности - следовательно, желательно держать дверь в это помещение закрытой даже в течение рабочего дня. Если на двери в данное помещение установлен обыкновенный механический замок, Вы вынуждены будете обеспечить всех сотрудников ключами к данному замку. А что делать, если замок сломался - при замене замка обеспечить сотрудников новыми ключами. А если один из сотрудников потерял ключ - менять замок и менять ключи всем сотрудникам. Что делать, если Вы хотите разрешить всем сотрудникам доступ в помещение в течение рабочего дня, но доступ во внерабочее время Вы хотите ограничить - ставить дополнительный замок.

Между тем, указанные проблемы достаточно легко решаются даже при помощи простой системы управления доступом. Системы доступа такого класса являют собой контроллер (микропроцессорное устройство управления), умеющий управлять электронным (электромеханическим или электромагнитным) замком, и хранящий в своей памяти любое количество пользовователей, и микрофон подсоединенный к серверу, способному распознавать голос человека и, приняв решение, передать в контроллер сигнал открытия двери. Микрофон и контроллер объединяется в одном корпусе; или другое решение - контроллер одном корпусе, располагаемом внутри помещения, снаружи располагается часть устройства с микрофоном.


Рисунок 1.1 - Схема «простой» системы безопасности


Характеристики каждого пользователя системы сохраняется в базе данных сервера; для прохода в помещение пользователь произносит свой код доступа; сказанное слово передается в сервер; если сервер распознает как голос пользователя, контроллер разблокирует электронный замок, разрешая проход. Если кто-либо из сотрудников теряет право доступа, запись его характеристик голоса просто изымается из памяти сервера - проход по нему будет запрещен. Если сломался замок, нет нужды менять все "ключи" - достаточно просто поменять замок. Немного сложнее с запретом доступа во внерабочее время, однако, и это - решаемая проблема. Можно добавить специальный режим функционирования, запрещающий доступ в определенное время. В это состояние система переводится администратора. Вывод системы из режима "Закрыто" в обычный режим также осуществляется при помощи администратора. Таким образом, Вам достаточно назначить ответственных за данное помещение лиц и дать им права администратора. По окончании рабочего дня ответственное лицо осматривает помещение и закрывает его на сервере, кроме ответственных лиц, в помещение войти никто не может. В начале следующего дня тот же или другой ответственный сотрудник отменяет режим "Закрыто", и система функционирует в обычном режиме.


Рисунок 1.2 - Дверь с голосовой защитой


Рисунок 1.3 - Схема «средней» системы безопасности


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


Рисунок 1.4 - Дверь со считывателем магнитных карт


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

Если же на Вашем объекте имеются различные по уровню необходимого контроля участки (от обычных помещений, вход в которые осуществляется по предъявлению карты пользователя (как рассмотрено выше), до особо важных помещений, для которых действует специальный режим доступа (например, доступ только в сопровождении специального сопровождающего)), Вы придаете большое значение безопасности Вашего предприятия, то стоит улучшить систему безопасности. В системах такого класса уделяется большое внимание маршрутизации передвижения пользователей по территории объекта. Это означает, во первых, что системы такого класса в состоянии охватить достаточно большие территории, во вторых, в системах такого класса присутствует интенсивный обмен информацией между отдельными составляющими системы (в частности, между серверами). В самом деле, при "тотальном контроле" над территорией объекта, логично требовать, чтобы обладатель доступа не смог войти во внутренние помещения объекта, не миновав проходной предприятия (в частном случае - невозможно дважды подряд войти на территорию предприятия, что создает некоторую защиту от попыток подделки голоса; заметим также, что в такой системе и учет рабочего времени функционирует более корректно, поскольку систему гораздо труднее "обмануть").


Рисунок 1.5 - Варианты турникетов


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


Рисунок 1.6 - Схема «сложной» системы безопасности


Кроме того, возможности системы по быстрой передаче информации могут быть использованы для построения на базе системы контроля и управления доступом интегрированных систем безопасности объекта - в самом деле, серверы системы по определению имеют информационные входы (контроллер должен определять, открыта или закрыта дверь); такой вход может быть использован не для контроля состояния двери, а, например, для подключения реле ЦН охранной панели - в этом случае, если система достаточно гибка и позволяет переопределять назначение входов контроллеров, оператору будет доставлено сообщение о тревоге на объекте. Возможна реализация и обратных воздействий - управление взятием и снятием шлейфов охранной сигнализации охранной панели можно осуществить от считывателя системы управления доступом. Кроме того, система может быть использована как средство централизованного управления автоматикой объекта - в самом деле, контроллеры системы имеют выходы для управления исполнительным механизмом (замком, турникетом); если в системе реализовано прямое управление выходами контроллера, Вы можете использовать систему для управления различным объектовым оборудованием: кондиционирование, вентиляция, управление производственными процессами.

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


1.2 Технические средства формирования аудиоданных


Для обработки голоса необходимо предварительно записать его в оперативную память компьютера или на машинный носитель. Как было сказано выше, большинство персональных компьютеров уже оснащены оборудованием, необходимым для ввода и вывода звука. Это микрофон и звуковая плата. В общем виде процесс ввода речевых сообщений приведен на рисунке 1.7.

Речевой сигнал формируется и передается в пространстве в виде звуковых волн. Источником речевого сигнала служит речеобразующий тракт, который возбуждает звуковые волны в упругой воздушной среде.

Рисунок 1.7 - Схема ввода речевых сообщений в ЭВМ


Приемником сигнала является датчик звуковых колебаний, микрофон - устройство для преобразования звуковых колебаний в электрические. Существует большое количество типов микрофонов (угольные, электродинамические, электростатические, пьезоэлектрические и др.) описанных в специальной литературе. Чувствительным элементом микрофона любого типа является упругая мембрана, которая вовлекается в колебательный процесс под воздействием звуковых волн. Мембрана связана с преобразующим элементом, который преобразует колебания мембраны в электрический сигнал.

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

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

Для выбора частоты дискретизации рассмотрим усредненную спектральную плотность мощности непрерывного речевого сигнала для мужского и женского голосов (Рисунок 1.8). Как следует из этой характеристики, усредненная спектральная плотность мощности имеет максимум в диапазоне 250-500Гц и затухает со скоростью, равной 8-10дБ на октаву (при удвоении частоты). Это приводит к тому, что на частотах выше 4000 Гц спектральная плотность падает до уровня -60 дБ, что соответствует ослаблению мощности по сравнению с максимумом (-25... -30 дБ) в 20 и более раз. Это позволяет считать, что полоса пропускания для каналов передачи звуковых сообщений может быть ограничена частотой 4-5 кГц, а, следовательно, частота дискретизации этого сигнала должна составлять 8-10 кГц.


Рисунок 1.8 - Амплитудный спектр


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

Рассчитано, что для обеспечения соотношения сигнал/шум квантования, равного 36 дБ, требуется не менее семи двоичных разрядов и что для получения высококачественного цифрового кодирования сигнала речи необходимо 11 разрядов. На практике число разрядов определяется разрядность ЭВМ и, как правило, равно или кратно восьми разрядам.


1.3 Основы биометрической идентификации


Главная цель биометрической идентификации заключается в создании такой системы регистрации, которая крайне редко отказывала бы в доступе легитимным пользователям и в то же время полностью исключала несанкционированный вход в компьютерные хранилища информации. По сравнению с паролями и карточками такая система обеспечивает гораздо более надежную защиту: ведь собственное тело нельзя ни забыть, ни потерять. Биометрическое распознавание объекта основано на сравнении физиологических или психологических особенностей этого объекта с его характеристиками, хранящимися в базе данных системы. Подобный процесс постоянно происходит в мозгу человека, позволяя узнавать, например, своих близких и отличать их от незнакомых людей.

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

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

Физиологические особенности, например, папиллярный узор пальца, геометрия ладони или рисунок (модель) радужной оболочки глаза - это постоянные физические характеристики человека. Данный тип измерений (проверки) практически неизменен, так же, как и сами физиологические характеристики. Поведенческие же характеристики, например, подпись, голос или клавиатурный почерк, находятся под влиянием как управляемых действий, так и менее управляемых психологических факторов. Поскольку поведенческие характеристики могут изменяться с течением времени, зарегистрированный биометрический образец должен при каждом использовании обновляться. Биометрия , основанная на поведенческих характеристиках, дешевле и представляет меньшую угрозу для пользователей; зато идентификация личности по физиологическим чертам более точна и дает большую безопасность. В любом случае оба метода обеспечивают значительно более высокий уровень идентификации, чем пароли или карты.

Важно отметить, что все биометрические средства аутентификации в той или иной форме используют статистические свойства некоторых качеств индивида. Это означает, что результаты их применения носят вероятностный характер и будут изменяться от раза к разу. Кроме того, все подобные средства не застрахованы от ошибок аутентификации. Существует два рода ошибок: ложный отказ (не признали своего) и ложный допуск (пропустили чужого). Надо сказать, что тема эта в теории вероятностей хорошо изучена еще со времен развития радиолокации. Влияние ошибок на процесс аутентификации оценивается с помощью сравнения средних вероятностей соответственно ложного отказа и ложного допуска. Как показывает практика, эти две вероятности связаны обратной зависимостью, т.е. при попытке ужесточить контроль повышается вероятность не пустить в систему своего, и наоборот. Таким образом, в каждом случае необходимо искать некий компромисс. Тем не менее, даже по самым пессимистичным оценкам экспертов, биометрия выигрывает при всех сравнениях, поскольку она значительно надежнее, чем другие существующие методы аутентификации.

Кроме эффективности и цены, компаниям следует учитывать также реакцию служащих на биометрические средства. Идеальная система должна быть простой в применении, быстрой, ненавязчивой, удобной и приемлемой с социальной точки зрения. Однако ничего идеального в природе нет, и каждая из разработанных технологий лишь частично соответствует всему набору требований. Но даже самые неудобные и непопулярные средства (например, идентификация по сетчатке, которой пользователи всячески стараются избежать, защищая свои глаза) приносят нанимателю несомненную пользу: они демонстрируют должное внимание компании к вопросам безопасности.

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


1.4 Характеристика существующих аналогичных систем


В России биометрические системы контроля появились в середине 90-х годов. В силу то ли неразвитости отечественных технологий, то ли их излишней засекреченности, все коммерческие биометрические системы были импортного производства. На том этапе себестоимость и, соответственно, цена этих систем была довольно высока: например, довольно простое устройство физического контроля доступа стоило около $12 000. Подобное дорогостоящее оборудование приобрело скорее характер новомодной экзотики и массового распространения не получило. Сегодня подобные системы подешевели примерно в 10 раз, так что первая причина появления активного спроса на них у нас в стране исключительно экономическая - устройства стали гораздо дешевле. Вторая причина сводится к объективной потребности заказчиков организовать современную, грамотно построенную систему безопасности у себя на предприятии, в офисе компании или в частном доме.

По мнению большинства специалистов, особенно широкое распространение в России получили дактилоскопические устройства. Есть основания полагать, что в банковских структурах у нас привьются системы распознавания подписи - традиционной биометрической характеристики, которая издавна используется в банковском деле. Большой редкостью в России считается инсталляция систем идентификации личности по радужной оболочке глаза, голосу или по другим биометрическим признакам. Тем не менее уже есть примеры использования данных устройств, в частности, в ряде крупных депозитарных банков Москвы; из других компаний можно назвать "Макдональдс", где установлены биометрические системы контроля рабочего времени персонала; в последнее время резко возрос спрос на дактилоскопические системы со стороны частных лиц, которые устанавливают их в своих загородных коттеджах.

Отечественные разработки на этом рынке отличаются крайней фрагментарностью, существуют на уровне опытных образцов и говорить о сколько-нибудь серьезных объемах их продаж, увы, пока не приходится. Наиболее известная система, разработанная российскими инженерами - "Кордон" - устройство физического доступа в помещение; имеются также разработки в области дактилоскопии (компания "Биолинк"): в области распознавания лица (компания "Спирит"). в основном же рынок биометрических систем безопасности в России представлен иностранными фирмами, которые через своих российских партнеров реализуют свои технологии на отечественном рынке. Систему Facelt, например, представляет группа компаний "Дан-ком"; инженерная компания "Солинг" активно внедряет систему распознавания лиц немецкого производства SmartEye, компания "Биометрические системы" в основном специализируется на поставке импортного дактилоскопического оборудования, но в этой компании ведутся разработки программного обеспечения для идентификации пользователя. Хотелось отметить разработки компании «Центр речевых технологий». Они разработали весь комплекс программ для идентификации пользователя, для управления компьютером с помощью голоса. Также они могут разработать любое обеспечения по нуждам заказчика. Одна из программ VoiceCom - библиотека распознавания голосовых команд, обладает следующими характеристиками:

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

-Достоинства: Высокое быстродействие алгоритмов, небольшие требования к памяти, адаптация к шумам, независимость от языка и акцента.

-Возможности: Одновременное распознавание 100-200 команд в дикторозависимом и 30-50 команд в дикторонезависимом варианте, возможность структурирования для практически неограниченного словаря, дикторонезависимое распознавание словаря в 10-20 слов по телефону; Начало работы после того, как вы произнесете ключевое слово (это является подтверждением того, что система среагирует только на вашу команду, а не на что-либо другое)

-Технические характеристики спецификации: Поддерживаемые языки любой Основа для разработки Borland Delphi 7.0

-Требования: Конфигурация ПК Pentium 4 1500 или выше, RAM 256 Mб, HDD > 20Гб, Windows 95/98, Стандартная звуковая карта типа SoundBlaster, микрофон

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

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

Так же существует несколько разработок в этой области с довольно скромной ценой. Например:

-«Web-TalkIt». Производитель «USA Grover Industries», официальный сайт #"justify">-«Труффальдино». Производитель «Центр речевых технологий», официальный сайт #"justify">-VoiceNet VRS 2000. Производитель «USA Grover Industries», официальный сайт #"justify">Но эти системы не предоставляют возможности идентификации голоса, только управление компьютером с помощью голоса. Разработанное программное обеспечение использует те же математические аглоритмы, поэтому его можно легко модифицировать под подобные задачи.

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

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

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

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

Разнообразие возникает по многим причинам, включая:

-различия человеческих голосов;

-уровень речи говорящего;

-вариации в произношении;

-нормальное варьирование движения артикуляторов (языка, губ, челюсти, нёба).

Для устранения негативного эффекта влияния варьирования голосового тракта на процесс распознавания речи было использовано множество методов. Наиболее удачные формы трансформации, использованной для сокращения различий, были впервые представлены Сакоя & Чибо и назывались динамичными искажениями (dynamic time warping). Техника динамичного искажения используется для временного вытягивания и сокращения расстояния между искаженным спектральным представлением и шаблоном для говорящего. Использование данной техники дало улучшении точного распознавания (~20-30%). Метод динамичного искажения используют практически все коммерчески доступные системы распознавания, показывающие высокую точность сообщения при использовании. Вначале сигнал преобразовывается в спектральное представление, где определяется немногочисленный, но высокоинформативный набор параметров. Затем определяются конечные выходные параметры для варьирования голоса(следует отметить, что данная задача не является тривиальной) и производится нормализация для составления шкалы параметров, а также для определения ситуационного уровня речи. Вышеописанные измененные параметры используются затем для создания шаблона. Шаблон включается в словарь, который характеризует произнесение звуков при передаче информации говорящим, использующим эту систему. Далее в процессе распознавания новых речевых образцов (уже подвергшихся нормализации и получивших свои параметры), эти образцы сравниваются с шаблонами, уже имеющимися в словаре, используя динамичное искажение и похожие метрические измерения.


1.5 Возможность использования нейросетей для построения системы распознавания речи


Классификация - это одна из основных для нейросетей задач. Причем нейросеть может выполнять классификацию даже при обучении без учителя (правда, при этом образующиеся классы не имеют смысла, но ничто не мешает в дальнейшем ассоциировать их с другими классами, представляющими другой тип информации - фактически наделить их смыслом). Любой речевой сигнал можно представить как вектор в каком-либо параметрическом пространстве, затем этот вектор может быть запомнен в нейросети. Одна из моделей нейросети, обучающаяся без учителя - это самоорганизующаяся карта признаков Кохонена. В ней для множества входных сигналов формируется нейронные ансамбли, представляющие эти сигналы. Этот алгоритм обладает способностью к статистическому усреднению, т.е. решается проблема с вариативностью речи. Как и многие другие нейросетевые алгоритмы, он осуществляет параллельную обработку информации, т.е. одновременно работают все нейроны. Тем самым решается проблема со скоростью распознавания - обычно время работы нейросети составляет несколько итераций.

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

Наконец, ещё одним важным свойством нейросетей является гибкость архитектуры. Под этим может быть не совсем точным термином я имею в виду то, что фактически алгоритм работы нейросети определяется её архитектурой. Автоматическое создание алгоритмов - это мечта уже нескольких десятилетий. Но создание алгоритмов на языках программирования пока под силу только человеку. Конечно, созданы специальные языки, позволяющие выполнять автоматическую генерацию алгоритмов, но и они не намного упрощают эту задачу. А в нейросетях генерация нового алгоритма достигается простым изменением её архитектуры. При этом возможно получить совершенно новое решение задачи. Введя корректное правило отбора, определяющее, лучше или хуже новая нейросеть решает задачу, и правила модификации нейросети, можно в конце концов получить нейросеть, которая решит задачу верно. Все нейросетевые модели, объединенные такой парадигмой, образуют множество генетических алгоритмов. При этом очень четко прослеживается связь генетических алгоритмов и эволюционной теории (отсюда и характерные термины: популяция, гены, родители-потомки, скрещивание, мутация). Таким образом, существует возможность создания таких нейросетей, которые не были изучены исследователями или не поддаются аналитическому изучению, но тем не менее успешно решают задачу.


1.6 Система распознавания речи как самообучающаяся система


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

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

Преимуществом полученной модели является возможность автоматического обучения синтезу. Механизм этого обучения описывается далее.

Ещё одной очень важной особенностью является возможность перевода запоминаемых образов в новое параметрическое пространство с гораздо меньшей размерностью. Эта особенность на данный момент в разрабатываемой системе реализована и на практике проверена. Я постараюсь кратко изложить её суть.

Входной сигнал задается вектором первичных признаков в N-мерном пространстве. Для хранения такого сигнала необходимо N элементов. При этом на этапе разработки мы не знаем специфики сигнала или она настолько сложна, что учесть её затруднительно. Это приводит к тому, что представление сигнала, которое мы используем, избыточно. Далее предположим, что у нас есть возможность синтезировать такие же сигналы (т.е. синтезировать речь), но при этом синтезируемый сигнал является функцией вектора параметров в M-мерном пространстве, и M<<N (действительно, число параметров модели синтеза речи намного меньше числа первичных признаков модели распознавания речи). Но тогда мы можем запоминать входной сигнал не по его первичным признакам в N-мерном пространстве, а по параметрам модели синтеза в M-мерном пространстве. Возникает вопрос: а как переводить сигнал из одного параметрического пространства в другое? Есть все основания предполагать, что это преобразование можно осуществить при помощи довольно простой нейросети. Более того, по моему мнению, такой механизм запоминания работает в реальных биологических системах, в частности, у человека.


2. ПОСТАНОВКА ЗАДАЧИ


В результате разработки подсистемы САПР защиты от несанкционированного доступа и учитывая требования, которые должны быть предъявлены к разрабатываемой подсистеме САПР, ставится задача:

) Разработать структурную схему подсистемы САПР, отражающую состав технических средств, программного, математического, информационного и методического обеспечений, применяемых при реализации зашиты от несанкционированного доступа на основе спектрального анализа голоса пользователя;

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

) Разработать математическое обеспечение проектируемого программного обеспечения, а также алгоритмы применения математического обеспечения и задач оптимизации;

) Разработать структуру информационного обеспечения подсистемы САПР, а также программу контроля и управления информационными потоками в виде базы данных;

) Разработать программное обеспечение САПР для реализации диалога ЭВМ и пользователя. К ПО САПР предъявляются следующие требования:

-удобство пользования входным языком САПР, этот язык необходимо оформить в виде "меню" и "заполнение бланков";

-диалог с пользователем вести в виде "меню" и "заполнение бланка";

-соответствие современным стандартам организации диалога.

) Разработать комплекс программных средств для реализации этапов процесса проектирования и получения проектной документации. В этом разделе необходимо:

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

-обеспечить правильное взаимодействие всех подсистем САПР.


3. ОБЩЕЕ ОПИСАНИЕ СИСТЕМЫ


Разрабатываемая подсистема САПР является обслуживающим инструментом для систем автоматизированного проектирования.

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

Любая САПР состоит из подсистем, которые являются её неотъемлемой частью. Подсистема САПР представляет собой законченный функциональный блок, имеющий свой неповторимый комплекс средств (программное, лингвистическое, методическое, техническое обеспечения или другие виды обеспечения) и выполняющий определённые функции, возложенные на него разработчиком системы. По назначению подсистемы САПР подразделяют на проектирующие и обслуживающие. Примером обслуживающих систем могут служить подсистемы защиты от несанкционированного доступа, автоматизированного ввода информации, подготовки проектной документации, графическую подсистему и т.д. В отличие от проектирующих подсистем, предназначенных в основном для расчёта, обслуживающие подсистемы предназначены для поддержания их работоспособности.

Реально, САПР представляет собой комплекс технических средств (КТС), размещённый на нескольких автоматизированных рабочих местах (АРМ), соединённых в локальную вычислительную сеть (ВС). На одном АРМ возможно совмещение нескольких подсистем, что уменьшает количество используемой вычислительной техники.

В результате анализа, для данной системной области было выбрано устройство КТС САПР, основанное на двух АРМ, как самый оптимальный вариант. Использование одной единицы вычислительной техники не рационально в силу того, что данная машина будет слишком загружена как расчётами, так и поддержанием работоспособности самой системы, т.е. её обслуживанием. Выделение трёх рабочих мест повлечёт за собой простой вычислительной техники и увеличение средств на создание САПР, что также недопустимо.

Разделение функциональных обязанностей по АРМ будет следующим. Одна из станций будет являться информационно-обслуживающей, т.е. будет заниматься вопросами хранения исходных данных, вывода документации и информационным обслуживанием.

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

Таким образом, АРМ1 будет состоять из рабочей подсистемы и информационной подсистемы. Более подробно вышеозначенные подсистемы будут рассмотрены в пунктах 3.1 и 3.2.


3.1 Описание структурной схемы разрабатываемой САПР


Как уже отмечалось выше, любая САПР состоит из нескольких подсистем, различающихся по своему функциональному назначению. Исходя из анализа области проектирования, в разрабатываемой САПР были выделены следующие подсистемы:

-подсистема регистрации пользователя в системе;

-подсистема подготовки и вывода документации;

-подсистема определения настройки параметров;

-подсистема обслуживания;

-информационная подсистема;

-подсистема визуализации;

-подсистема авторизации пользователя.

Структурная схема САПР приведена в приложении А. Рассмотрим подробнее задачи, решаемые каждой подсистемой, и средства их реализации.

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

Подсистема подготовки и вывода документации необходима для подготовки и создания необходимой документации и вывода её на бумажный носитель. Данная подсистема представляет собой диалоговую подсистему использующую COM объект основанный на стандартных программах подготовки документации, таких как Microsoft Word XP, Excel XP. Результатом работы этой системы является подготовленный, не без участия человека, документ, готовый к выводу на бумажный носитель, причём системный администратор имеет возможность контролирования и изменения документа перед выводом его на печать. Для упрощения создания документации, в дальнейшем будет необходима база данных шаблонов и графических примитивов, при помощи которой пользователь сможет быстро и качественно документацию.

Подсистема визуализации полученного спектра предназначена для визуального представления результатов расчёта. Результатами работы данной подсистемы является визуальное отображение на монитор.

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

-БД образцов голоса;

-БД зарегистрированных в системе пользователей;

-БД статистической информации;

-БД настроек программы.

Подсистема обслуживания занимается проблемами, связанными с настройкой программы, выбором оптимальных настроек микрофона, настройкой режимов работы программы. Основной её задачей является обслуживание подсистемы авторизации пользователя. Имея доступ к базам данных, данная подсистема осуществляет сохранение необходимых значений в базе данных.

Структурная схема подсистемы САПР защиты от несанкционированного доступа выполнена согласно ГОСТ 23501.106-85 "САПР. Технический проект".


3.2 Описание схемы работы системы разрабатываемой подсистемы САПР


На схеме работы системы САПР (приложение Б) представлен процесс работы подсистемы САПР защиты от несанкционированного доступа.

При запуске программа запрашивает какое действие хочет выполнить пользователь. При выборе необходимой подпрограммы она запускается и работает отдельно от остальных подсистем.

Возможные варианты действий:

) добавление нового пользователя - проверяется есть ли этот пользователь в системе, если есть то предыдущая запись удаляется при сохранении параметров пользователя. Далее программа ожидает ввода данных с микрона. Звуковые образцы можно записывать в любой последовательности. На основе полученных образцов выносится первичное заключение об их похожести, и вычисляется возможное значение порогового уровня схожести при входе. При нажатии на кнопку записи новые параметры сохраняются.

) Удаление пользователей - от пользователя требуется выбрать нужную запись и программа удалит его. После этого у удаленного пользователя голосовая защита при входе в систему отключается.

) Просмотр статистики - от пользователя требуется выбрать необходимый ему тип статистики, который можно будет просмотреть, экспортировать в Excel или распечатать.

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

Схемы работы подсистемы САПР защиты выполнена согласно ГОСТ 23501.106-85 "САПР. Технический проект. Размеры блоков функциональной схемы регламентированы ГОСТ 19.701-90 "Схемы алгоритмов и программ" и ГОСТ 19.002-80, который предписывает способы оформления алгоритмов.


4. ОПИСАНИЕ ВИДОВ ОБЕСПЕЧЕНИЙ


4.1 Описание математического обеспечения


Элементами математического обеспечения являются математические модели объекта проектирования, методы численного решения математических моделей, алгоритмы расчетов и методов оптимизации.

Оптимизация заключается в ускорении сравнивания двух образцов голоса, на основе чего должно быть вынесено решение о принадлежности голоса пользователю. Также требуется настроить систему сравнивания с учетом имеющегося оборудования, с помощью чего, при наличии звуковой подсистемы с низкой потерей качества при записи среднего и профессионального уровня, можно повысить качество сравнивания, чтобы вероятность принятия неправильного решения был минимальным. Так же при наличии современного процессора, например выбранный мной для проектируемой подсистемы САПР Pentium 4 3Гц, можно увеличить ширину спектрального преобразования в 2 раза, что соответственно повысит качество распознавания.

Процесс сравнивания образцов состоит из следующих стадий:

-фильтрация шумов;

-спектральное преобразование сигнала;

-постфильтрация спектра;

-лифтеринг;

-наложение окна Кайзера;

-сравнение.


.1.1 Фильтрация шумов

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

Звук, образованный колебаниями всего диапазона частот, подобный тому, спектр которого показан на рисунке 4.1, называется шумом. Толкование этого слова, принятое в технике, отличается от общепризнанного. Свист высокого тона (издаваемый, например, старым монитором) может считаться шумом в бытовом смысле. Но у этого звука есть четко определенный спектр частот, и, следовательно, он не может считаться шумом в техническом смысле этого слова.


Рисунок 4.1 - Спектр частот шума


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

Так как шум содержит все частоты, флейта может выделить в нем нужные и усилить их.

Если анализировать дискретные значения (отсчеты) уровня шума (а не спектр его частот), то получится, случайная выборка. Хорошим источником шума является высококачественный генератор случайных чисел.

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

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


где Xi - набор дискретных значений звукового сигнала.

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

Помимо высоты тона человек ощущает и другую характеристику звука - громкость. Физические величины, наиболее точно соответствующие громкости, - это шоковое давление (для звуков в воздухе) и амплитуда (для цифрового или электронного представления звука).

Если говорить об оцифрованном сигнале, то амплитуда - это значение выпорки. Анализируя миллионы дискретных значений уровня одного и того же звука, можно сказать о пиковой амплитуде, то есть об абсолютной величине максимального из полученных дискретных значений уровня звука. Чтобы избежать искажения, вызванного искажением ограничения сигнала при цифровой записи звука (данное искажение возникает в том случае, если величина пиковой амплитуды выходит за границы, определяемые форматом хранения данных), необходимо обратить внимание на величину пиковой амплитуды. При этом нужно сохранять отношение сигнал/шум на максимально достижимом уровне.

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

На языке математики это описывается интегралом


,


где - это напряжение в заданный момент времени.

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

Так как моментальная мощность зависит от квадрата моментальной амплитуды, имеет смысл аналогичным образом подобрать похожее соотношение, связывающее среднюю амплитуду и среднюю мощность. Способ, которым это можно сделать, заключается в определении средней амплитуды (СКЗ). Вместо того, чтобы вычислять среднее значение непосредственно амплитуды, мы сначала возводим в квадрат полученные значения, вычисляем среднее значение получившегося множества, а затем извлекаем из него корень. Метод СКЗ применяется в том случае, когда необходимо вычислить среднее для быстро меняющейся величины. Алгебраически это выражается следующим ооразом: пусть у нас N значений и х(i) - это амплитуда i-ого дискретного значения. Тогда


СКЗ амплитуды = .


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

Относительная мощность измеряется в белах, а чаще в децибелах (дБ, децибел, - это одна десятая бела). Чтобы сравнить два звука, берется отношение их мощности. Десятичный логарифм этого отношения и есть различие в белах; если множить получившееся число на десять, то получится значение в децибелах. Например, если мощность одного сигнала превосходит мощность другого в два раза, то первый сигнал будет громче на 10lоg10(2) = 3,01 дБ.

Децибелы можно применять только для сравнения двух сигналов. Однако измерение звуков в децибелах оказалось настолько удобным, что используют некоторый звук в качестве стандартного эталона. Этот эталон очень близок к самому тихому звуку, который только может расслышать человек. Самый громкий звук, который способен слышать человек, громче эталона приблизительно на 120 дБ (в миллион миллионов раз громче, чем эталон) - его громкость почти соответствует громкости работающего рядом реактивного двигателя. Слух человека приспособлен для восприятия звуков в широком диапазоне громкости.

Шкала децибелов также используется для измерения потерь звука. Если два различных звука с одной и той же энергией пропустить через некоторую электронную цепь или цифровой алгоритм обработки звука, на выходе один звук может оказаться на 6 дБ слабее другого.

Шкала децибелов используется и для измерения уровня шума или искажений, которые были добавлены (непреднамеренно) к любому сигналу.

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

Еще один аспект, для которого измерения в децибелах дают точную картину ощущений человека - это то, что ощущаемая громкость очень сильно зависит от относительной мощности. В частности, известна акустическая иллюзия, называемая маскированием. Если звук образуется двумя независимыми компонентами и одна из этих компонент гораздо громче другой, то более тихая компонента часто будет неслышна. Фактически, слух человека «настраивается» к уровню более громкого звука и более тихий звук слышится гораздо более тихим, чем он есть на самом деле. Это особенно относится к тем ситуациям, когда у этих звуков очень близки высоты тона.

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

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

Кроме того, сложные звуки человек слышит хуже звуков простых тонов. В частности, очень трудно расслышать высокочастотный шум. Метод цифрового преобразования, называемый размыванием (dithering) позволяет преобразовать ошибки некоторых типов в менее различимый высокочастотный шум.


.1.2 Спектральное преобразование сигнала

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

На рисунке 4.2 показаны некоторые основные характеристики синусоиды. Частота - это количество полных циклов которые укладываются в одну секунду; она связана с периодом времени, необходимым для одного цикла. Вертикальная шкала обозначает амплитуду, которая соответствует величине отсчета, электрического напряжения, тока или давление воздуха.


Рисунок 4.2 - Частота, период и амплитуда волны


Математически синусоида описывается функциями sin() или соs(). Простая функция sin(t) имеет амплитуду равную единице, период равный 2 секунд и соответствующую частоту, равную 1/2 циклов секунду. Можно преобразовать эту запись в более полезную форму: Asin(2ft) что соответствует синусоиде с амплитудой А и частотой f.

Здесь предполагается, что t представляет собой время (в секундах), f - значение частоты. При работе с дискретным сигналом в качестве t удобнее использовать номер отсчета. В этом случае запись Asin(2ft) представляет синусоиду с амплитудой А и частотой fS, где S - частота дискретизации. Далее будем будем работать в каждый момент времени с группами по N отсчетов и интересовать нас будут определеные частоты, поэтому я использую записи вида sin(2ft/N) и cos(2ft/N), которые представляют волны с единичной амплитудой и частотой равной fS/N.

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


Рисунок 4.3 - Три синусоиды с различной частотой


Поскольку синусоиды тесно связаны с окружностями, фаза измеряется в градусах. Один полный цикл - это 360°. На рисунке 4.4 показана еще одна синусоида. Ее временная, горизонтальная, ось размечена в градусах фазы. Как поворот на 360° возвращает в исходное положение, так изменение фазы на 360° оставляет сигнал неизменным.


Рисунок 4.4 - Синусоида, размеченная в градусах фазы

Фазовые изменения часто происходят по причине временных задержек. Например, каждый цикл сигнала в 1000 Гц занимает 1/1000 секунды. Если задержать сигнал на 1/2000 секунды (полупериод), то получится 180-градусный сдвиг но фазе. Заметим, что этот эффект опирается на зависимость между частотой и временной задержкой. Если сигнал в 250 Гц задержать на те же самые 1/2000 секунды, то будет реализован 45-градусный сдвиг по фазе.

Если сложить вместе две синусоидальные волны одинаковой частоты, то получится новая синусоидальная волна той же частоты. Это будет верно даже в том случае, если два исходных сигнала имеют разные амплитуды и фазы. Например, Asin(2ft) и Bcos(2ft)- две синусоиды с разными амплитудами и фазами, но I c одинаковой частотой.

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

Чтобы записать это в символьном виде, предположим, что отсчеты имеют значения s0, s1, … , st, …. Переменная t представляет собой номер отсчета (который заменяет значение времени). Измеряется амплитуду частоты f в первом приближении, при вычислении следующей суммы:


Af =


Значения t и f не соответствуют в точности времени и частоте. Более того, f - целое число, а реальная исследуемая частота - это частота дискретизации, умноженная на f/N. Подобным образом, t - это целочисленный номер отсчета. Кроме того, суммирование дает не непосредственное значение амплитуды, а всего лишь число, пропорциональное амплитуде.

Если повторить эти вычисления для различных значений f, то можно измерить амплитуду всех частот в сигнале. Для любого целого f меньшего N легко определяется значение Аf, представляющее амплитуду соответствующей частоты как долю от общего сигнала. Эти значения могут быть вычислены по той же формуле:



Если мы знаем значения Af мы можем восстановить отсчеты. Для восстановления сигнала необходимо сложить все занчения для разных частот.

Чтобы осуществлять точное обратное преобразование Фурье, помимо амплитуды и частоты необходимо измерять фазу каждой частоты.

Для этого нужны комплексные числа. Можно изменить описанный ранее метод вычислений так, что он будет давать двумерный результат. Простое коми1 лексное число - это двумерное значение, поэтому оно одновременно но представляет и амплитуду, и фазу.

При таком подходе фазовая часть вычисляется неявно. Вместо амплитуды и фазы измеряется две амплитуды, соответствующие разным фазам. Одна из этих фаз представляется косинусом (соs()), другая - синусом sin()).

Используя комплексные числа, можно проводить измерения одновременно, умножая синусную часть на -i.



Каждое значение Af теперь представляется комплексным числом; действительная и мнимая части задают амплитуду двух синусоидальных волн с разным фазами. Заменим на эквивалентное .



Основная идея быстрого преобразования Фурье заключается в том, что каждую вторую выборку можно использовать для получения половинного спектра. Формально это означает, что формула дискретного преобразования Фурье может быть представлена в виде двух сумм. Первая содержит все четные компоненты оригинала, вторая - все нечетные



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

Непрерывный речевой сигнал, как и любой другой можно представить в виде:



если множество функций Un являются ортогональными, то есть удовлетворяющим условию



где C - константа.

В этом случае значения коэффициентов an определяются выражением:



В зависимости от вида используемых ортогональных функций различают несколько видов преобразований. С помощью пары преобразований Фурье можно выразить связь между апериодической функцией времени f(t) и ее комплексным спектром F(w):



Спектральная форма включает в себя две основные операции: аналого-цифровое преобразование - преобразование сигнала из волны звукового давления в цифровой сигнал; цифровая фильтрация - выделение главной частоты сигнала. Процесс преобразования показан на рисунке 4.5. Я не останавливаюсь на выборе частоты оцифровки сигнала, хотя этот выбор играет важную роль в задаче моделирования сигнала.


Рисунок 4.5 - Процесс преобразования аналогового сигнала в цифровой


Микрофон, используемый в процессе АЦ - преобразования, обычно вносит нежелательные примеси в сигнал, например сетевой шум (звук с частотой 50 Гц от электрической проводки), теряет часть низких и высоких частот и нелинейные искажения. АЦ - преобразователь также вносит свои собственные искажения из-за нелинейной функции передачи и колебания постоянного смещения. Пример такого сигнала показан на рисунке 4.6.


Рисунок 4.6 - Пример входного сигнала АЦП


Ослабление низких и высоких частот часто вызывает проблемы с алгоритмами последовательного параметрического спектрального анализа.

Главная цель процесса оцифровки заключается в получении данных речевого сигнала с высоким отношением Сигнал/Шум. В настоящее время телекоммуникационные системы обеспечивают значение этого коэффициента порядка 30 dB для приложений распознавания голоса, что более чем достаточно для получения высокой производительности таких приложений. Изменения в преобразователях, каналах и фоновом шуме, тем не менее, вызывают определенные проблемы.


.1.3 Фильтрация спектра

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

Для этого применим функцию, которая получила название «окно Кайзера»



После фильтрации спектра нужно наложить окно Ханнинга



4.1.4 Сравнение с эталонными образцами

Основным параметром, используемым для идентификации, является мера сходства двух звуковых фрагментов. Для ее вычисления необходимо сравнить спектрограммы этих фрагментов. При этом сначала сравниваются спектры, полученные в отдельном окне, а затем вычисленные значения усредняются.

Для сравнения двух фрагментов использовался следующий подход:

Предположим что X[1..N] и Y[1..N] - массивы чисел, одинакового размера N, содержащие значения спектральной мощности первого и второго фрагментов соответственно.

Тогда мера сходства между ними вычисляется по следующей формуле:



где Mx и My - математические ожидания для массивов X[] и Y[] соответственно, вычисляющиеся по следующей формуле:



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


4.1.5 Нейросетевое сравнение на основе простых персептронов

Искусственный нейрон

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


Рисунок 4.7 - Схема нейрона


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



где n - число входов нейрона i - значение i-го входа нейрона i - вес i-го синапса

Затем определяется значение аксона нейрона по формуле

= f(S)


где f - некоторая функция, которая называется активационной. Наиболее часто в качестве активационной функции используется так называемый сигмоид, который имеет следующий вид:



Основное достоинство этой функции в том, что она дифференцируема на всей оси абсцисс и имеет очень простую производную:



При уменьшении параметра a сигмоид становится более пологим, вырождаясь в горизонтальную линию на уровне 0,5 при a=0. При увеличении a сигмоид все больше приближается к функции единичного скачка.

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

Обучение сети

Для автоматического функционирования системы был выбран метод обучения сети без учителя. Обучение без учителя является намного более правдоподобной моделью обучения в биологической системе. Развитая Кохоненом и многими другими, она не нуждается в целевом векторе для выходов и, следовательно, не требует сравнения с предопределенными идеальными ответами. Обучающее множество состоит лишь из входных векторов. Обучающий алгоритм подстраивает веса сети так, чтобы получались согласованные выходные векторы, т. е. чтобы предъявление достаточно близких входных векторов давало одинаковые выходы. Процесс обучения, следовательно, выделяет статистические свойства обучающего множества и группирует сходные векторы в классы. Предъявление на вход вектора из данного класса даст определенный выходной вектор, но до обучения невозможно предсказать, какой выход будет производиться данным классом входных векторов. Следовательно, выходы сети должны трансформироваться в некоторую понятную форму, обусловленную процессом обучения. Это не является серьезной проблемой. Обычно не сложно идентифицировать связь между входом и выходом, установленную сетью.

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

Персептрон обучают, подавая множество образов по одному на его вход и подстраивая веса до тех пор, пока для всех образов не будет достигнут требуемый выход. Допустим, что входные образы нанесены на демонстрационные карты. Каждая карта разбита на квадраты и от каждого квадрата на персептрон подается вход. Если в квадрате имеется линия, то от него подается единица, в противном случае - ноль. Множество квадратов на карте задает, таким образом, множество нулей и единиц, которое и подается на входы персептрона. Цель состоит в том, чтобы научить персептрон включать индикатор при подаче на него множества входов, задающих нечетное число, и не включать в случае четного.

Для обучения сети образ X подается на вход и вычисляется выход У. Если У правилен, то ничего не меняется. Однако если выход неправилен, то веса, присоединенные к входам, усиливающим ошибочный результат, модифицируются, чтобы уменьшить ошибку.

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

Наиболее распространенный метод ( его простоте ) - логарифмическое сжатие



где f - частота в спектре, Гц, - частота в новом сжатом частотном пространстве


Рисунок 4.8 - Нелинейное преобразование спектра в пространстве частот


Такое преобразование имеет смысл только если число элементов на входе нейросети NI меньше числа элементов спектра NS.

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

При большой разрешающей способности ( числе ) входов возможно выделение гармонической структуры речи и как следствие определение высоты голоса. При малой разрешающей способности ( числе ) входов возможно только определение формантной структуры.

Как показало дальнейшее исследование этой проблемы, для распознавания уже достаточно только информации о формантной структуре. Фактически, человек одинаково распознает нормальную голосовую речь и шепот , хотя в последнем отсутствует голосовой источник. Голосовой источник дает дополнительную информацию в виде интонации (высоты тона на протяжении высказывания ), и эта информация очень важна на высших уровнях обработки речи. Но в первом приближении можно ограничиться только получением формантной структуры , и для этого с учетом сжатия неинформативной части спектра достаточное число входов выбрано в пределах 50~100.

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

Моделирование нейросети

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

Точность вычислений

Одним из принципов нейросетевой обработки информации является высокая надежность системы, т.н. стойкость к отказам в работе отдельных элементов и флуктуациям в уровнях сигналов. Поэтому логично предположить, что удачно смоделированная нейросеть будет некритична к точности вычислений. Исходя из этого, я старался искусственно ограничить точность всех вычислений. Этим объясняется и выбор типа float для представления всех данных в программе.

Уровень ввода

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

Ещё одно требование к нейросети низкого уровня обработки сигнала - обучение без учителя, т. е. способность самостоятельно разделять входные сигналы на классы .

Большое количество нейросетевых алгоритмов выполняют функцию разделения входного сигнала на классы.

Схематически сеть встречного направления изображена на рисунке 4.9:


Рисунок 4.9 - Сеть встречного распространения


Распространение сигнала в такой сети происходит следующим образом: входной вектор нормируется на 1.0 и подается на вход , который распределяет его дальше через матрицу весов W. Каждый нейрон в слое Кохонена вычисляет сумму на своем входе и в зависимости от состояния окружающих нейронов этого слоя становится активным или неактивным ( 1.0 и 0.0). Нейроны этого слоя функционируют по принципу конкуренции, т. е. в результате определенного количества итераций активным остается один нейрон или небольшая группа. Этот механизм называется латеральным. Так как отработка этого механизма требует значительных вычислительных ресурсов, в моей модели он заменен нахождением нейрона с максимальной активностью и присвоением ему активности 1.0, а всем остальным нейронам 0.0. Таким образом , срабатывает нейрон , для которого вектор входа ближе всего к вектору весов связей.

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

= w + ? (x - w ),


где w - новое значение веса ,- старое значение ,

? - скорость обучения,

х - величина входа .

Геометрически это правило иллюстрирует рисунке 4.10:


Рисунок 4.10. Коррекция весов нейрона Кохонена


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

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

Проблема: если весовой вектор окажется далеко от области входных сигналов, он никогда не даст наилучшего соответствия, всегда будет иметь нулевой выход, следовательно, не будет корректироваться и окажется бесполезным. Оставшихся же нейронов может не хватить для разделения входного пространства сигналов на классы . Для решения этой проблемы предлагается много алгоритмов, в моей работе применяется правило « работать »: если какой либо нейрон долго не находится в активном состоянии , он повышает веса связей до тех пор, пока не станет активным и не начнет подвергаться обучению. Этот метод позволяет также решить проблему тонкой классификации: если образуется группа входных сигналов, расположенных близко друг к другу, с этой группой ассоциируется и большое число нейронов Кохонена, которые разбивают её на классы.

Правило «желания работать» записывается в следующей форме:


,


где w - новое значение веса , - старое значение,

b- скорость модификации, - активность нейрона.

Чем меньше активность нейрона , тем больше увеличиваются веса связей.


4.2 Описание технического обеспечения


Исходя из требований в комплекс технических средств разрабатываемой подсистемы САПР были включены два компьютера, объединенные в локальную сеть.

Для поддержания работоспособности подсистемы САПР и хранения необходимой информации необходим компьютер на базе процессора Pentium 4 тактовой частотой 2,4 ГГц и частотой шины 533 МГц. На производительность сервера базы данных влияют два основных фактора - объем оперативной памяти и объем и скорость жесткого диска. Исходя из этого, объем оперативной памяти составил 1 Гбайт и выбран жесткий диск Seagate ATA/133 объемом 120 Гбайт и скоростью вращения 7200 об./мин. Для вывода текстовой и графической документации формата А4 используется лазерный принтер HP LaserJet 1200. Данный принтер обеспечивает более высокое качество печати, чем матричный и более экономичен, чем струйный принтер. Производительность выбранного принтера достигает 14 страниц в минуту (эталонных страниц). Достоинством данного принтера является возможность его подключения к USB порту.

Для решения задачи оптимального проектирования, так как оно требует значительных вычислительных затрат необходим компьютер на базе процессора Pentium 4 с тактовой частотой 3 ГГц и частотой шины 533 МГц и технологией hiper-threading. Оперативная память была выбрана в размере 512 Мбайт, так в процессе преобразований может потребоваться большой объем памяти для хранения промежуточных данных. Жесткий диск был взят объемом 80 Гбайт, так как это оптимальный размер современных винчестеров.

Оба рабочего места оборудованы монитором Samsung Syncmaster 757MB с диагональю 17".

Персональные компьютеры объединены в локальную вычислительную сеть. Это необходимо для осуществления достаточно быстрого обмена данными между компьютерами и возможности использования единого устройства вывода на печать, что обеспечивает большую эффективность функционирования подсистемы САПР. В качестве среды передачи данных используется RJ-45 пятой категории, достоинством которого является низкая стоимость оборудования и высокая помехозащищенность сети. На каждом компьютере установлен сетевой адаптер, обеспечивающий скорость передачи данных 100 Мбит/с.

Для сохранения работоспособности компьютеров во время перебоев с электропитанием рабочее место системного администратора оснащено источником бесперебойного питания UPS BACK 2000 AP PCM, обеспечивающие сохранение электрического питания на время, достаточное для перехода резервное питания.


4.3 Описание информационного обеспечения


Функционирование любой подсистемы САПР невозможно без соответствующей информационной поддержки.

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

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

-независимость данных;

-совместимость - при развитии программного и модернизации технического обеспечения компоненты информационного обеспечения должны сохранять работоспособность;

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

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

-целостность данных - информационное обеспечение должно предотвращать нарушение структуры данных пользователем.

В данной САПР используются следующие компоненты информационного обеспечения:

-СУБД с моделью данных реляционного типа на базе интерфейса MS JetDirect 4.0;

-набора различных утилит, обеспечивающих создание, поддержку, организацию и восстановление баз данных;

-БД образцов голоса;

-БД зарегистрированных в системе пользователей;

-БД статистической информации;

-БД настроек программы;

База Данных образцов голоса содержит образцы голоса пользователя. Для каждого пользователя сохраняется по 3 его образца голоса.

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

База Данных статистической информации содержит всю информацию о действиях пользователей и администратора.

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

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

В реляционных базах данных схема содержит как структурную, так и семантическую информацию. Структурная информация связана с объявлением отношений, а семантическая выражается множеством известных функциональных зависимостей между атрибутами отношений, указанных в схеме. Однако некоторые функциональные зависимости могут быть нежелательными из-за побочных эффектов или аномалий, которые они вызывают при модификации данных. В этом случае необходимо прибегнуть к процедуре, называемой декомпозицией, при которой данное множество отношений заменяется другим множеством отношений (число их возрастает), являющихся проекцией первых. Цель этой процедуры - устранить нежелательные функциональные зависимости (а, следовательно, и аномалии), что составляет суть процесса нормализации. Таким образом, нормализация - это пошаговый обратимый процесс замены данной схемы (совокупности отношений) другой схемой, в которой отношения имеют более простую и регулярную структуру. При этом возникает проблема обратимости, т.е. возможность восстановления исходной схемы. Это значит, что декомпозиция должна сохранять эквивалентность схем при замене одной схемы на другую. Для обеспечения эквивалентности схем необходима декомпозиция, гарантирующая отсутствие потерь, и сохраняющая зависимости. Декомпозиция без потерь гарантирует обратимость, т.е. получение исходного множества отношений путем применения последовательности естественных соединений над их проекциями. При этом в результирующем отношении не должны появляться ранее отсутствующие записи, являющиеся результатом ошибочного соединения. Соединение зависимостей подразумевает выполнение исходного множества функциональных зависимостей на отношениях новой схемы.

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

На основе приведенной инфологической модели базы данных может быть разработана даталогическая модель базы данных разработанной подсистемы.

При описании полей были использованы следующие обозначения:

«*» - означает, что поле является ключом;


Таблица 4.1 - Образцы голоса

НаименованиеТипКлючИдентификатор записиСчетчик*Идентификатор пользователяЧисловой*Номер записиЧисловойСпектрBlobИнформация о удаленииЧисловой

Таблица 4.2 - Зарегистрированные в системе пользователи

НаименованиеТипКлючИмя пользователяТекстовыйИдентификатор пользователяЧисловой*ЛогинТекстовыйПолное имяТекстовыйСсылка на фотографиюТекстовыйУровень доступаЧисловойОбходной парольТекстовыйПорог входаЧисловойИнформация о удаленииЧисловойТаблица 4.3 - Статистическая информация

НаименованиеТипКлючИдентификатор пользователяЧисловой*Идентификатор записиСчетчик*Совершенное действиеТекстовыйВремяДата/времяДатаДата/времяИнформация о удаленииЧисловой

Таблица 4.4 - Настройки программы

НаименованиеТипКлючИдентификатор записиСчетчик*Ширина спектраЧисловойВремяДата/времяДатаДата/времяКачество записиЧисловойИспользуемый драйверЧисловойИспользование OpenGLЧисловойПолная блокировкаЧисловойКоличество попытокЧисловойОбходной парольЧисловойИнформация о удаленииЧисловой

Приведенная выше даталогическая модель данных имеет минимальный объем избыточных данных.


4.4 Описание лингвистического обеспечения


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

Положительное - пользователь зарегистрирован в системе и пытается войти под своим собственным именем.

Отрицательное - пользователь не зарегистрирован или же он пытается получить доступ по чужому идентификатору.

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

Задачи идентификации входят в одну из областей искусственного интеллекта - распознавания образов. При этом в качестве образа понимается совокупность некоторых параметров, характеризующих объект. В данной работе каждый фрагмент определяется только одним параметром - мерой его сходства с соответствующим эталоном. При этом мера сходства может меняться в интервале от 0 до 1. Чем ближе мера сходства к 1, тем больше общего между исследуемым фрагментом и соответствующим ему эталоном. Признак образует одномерное пространство, которое делиться на две части. При попадании параметра в них принимается соответствующее решение - положительное или отрицательное. Хотя возможно разделение и на три области - положительную, отрицательную и неопределенность - система затрудняется точно определить принадлежность пользователя. В обоих случаях значения границ рассчитываются для каждого пользователя отдельно на этапе регистрации.

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

На этапе регистрации новый пользователь вводит свой идентификатор, например имя и фамилию, а затем произносит несколько раз ключевое слово или фразу (создаются эталоны). Число повторов ключевой фразы может варьироваться для каждого пользователя, а может быть постоянным для всех. Например, в разрабатываемой системе число повторов было принято равным трем. После предварительной обработки фрагменты попарно сравниваются, и на основе их мер сходства вычисляется значение границы для разделения пространства признаков. Простейшей функцией для вычисления границы можно принять поиск минимума или среднего арифметического для результатов попарного сравнения эталонов.

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

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


.4.1 Программное обеспечение для входа пользователя в систему

Программа блокирующая доступ запрашивает с микрофона звуковой фрагмент и производит анализ и сравнение с сохраненными в базе данных тремя характеристиками голоса пользователя. Имя пользователя выбирается из заданного имени пользователя в системе. Рабочее окно программы на рисунке 4.11.


Рисунок 4.11 - Окно программы блокировки доступа


Полученный спектр звукового фрагмента визуализируется на трехмерном графике.

Программное обеспечение для регистрации пользователя.

Программа состоит из диалогов:

-добавление пользователя;

-изменения параметров зарегистрированного в системе пользователя;

-настройки программы;

-настройки параметров работы администратора;

-просмотра статистики работы программы;

-удаление пользователя зарегистрированного в системе.

Основное окно показано на рисунке 4.12.


Рисунок 4.12 - Основное окно регистрации пользователей


Рисунок 4.13 - Диалог добавления пользователя в систему


Рисунок 4.14 - Проверка настроек программы


.4.2 Системное программное обеспечение

Используемая в разрабатываемой САПР 32-х разрядная операционная система Windows XP фирмы MicroSoft, обладает множеством полезных возможностей: современный объектноориентиваный пользовательский интерфейс, с поддержкой стандарта открытого документооборота OpenDoc, поддержкой стандарта открытой графики OpenGL, встроенной возможностью написания и исполнения программ на языках Java, возможностью организации сети любого ранга, защитой передаваемой по сети информации, и позволяет разрабатывать и использовать программы, соответствующие стандарту OpenWindows 32 и TrueType. Система позволяет использовать весь спектр программного обеспечения, разработанного для этой операционной системы (такие программы, как текстовый процессор WinWord, системы автоматизированного проектирования AutoCAD, PCad и т.д.). В этой операционной системе фирма Microsoft расширила сетевые возможности настолько, что конечный пользователь теперь практически не испытывает необходимости в поиске специфического программного обеспечения для работы в Internet. Учитывая то, что специализированное программное обеспечение, используемое с данной САПР имеет широкие возможности по работе с Internet ресурсами, то поддержка сетевых возможностей просто необходима.

Следует также отметить, что данная операционная система самая распространённая, что практически исключает проблему несовместимости САПР с программным обеспечением заказчика.

Всеми этими достоинствами и обусловлен выбор данной операционной системы.


4.5 Описание методического обеспечения


Методическое обеспечение - это совокупность документов, устанавливающих состав и правила отбора и эксплуатации средств обеспечения САПР, необходимых для работы системы.

На основе анализа литературы и обобщения приведённых определений можно сделать ряд логических выводов о составе и содержании методического обеспечения САПР как объекта проектирования:

методическое обеспечение по форме представляет собой совокупность инструктивных, руководящих и методических материалов, утверждённых в виде документов, используемых разработчиками на всех (или отдельных) этапах жизненного цикла САПР;

по содержанию методическое обеспечение САПР - совокупность методов, необходимых и достаточных для реализации или совокупности этапов жизненного цикла САПР;

Другими словами, методическое обеспечение должно содержать методическое руководство, позволяющее получить ответ на вопрос: «как работать с САПР?».

К компонентам методического обеспечения относят:

-документацию инструктивно-методического характера;

-руководство программиста;

-руководство оператора;

-программу, методику и результаты испытаний САПР;

-нормативы, стандарты и другие руководящие документы.

Руководство программиста составляется для каждого программного модуля и включает в себя следующие пункты:

  1. назначение;
  2. требуемые технические средства;
  3. режим работы;
  4. обращение к программе;
  5. формат входных данных.

Руководство оператора также составляется для каждой программы и содержит разделы:

  1. назначение программы;
  2. условия выполнения программы;
  3. последовательность действий оператора для выполнения программы.

.6 Тестирование программного обеспечения


Для тестирования были выбраны три критерия, которые обязательно должны быть обеспечены для нормальной работы программного обеспечения.

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

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

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

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

При тестировании использовались 6 мужских голосов и 2 женских. Схожесть голосов определяется в процентах, поэтому требовалось выяснить максимально возможный порог совпадения. Эталонный голос использовался мужской, поэтому для тестирования использовалось большое количество именно мужских голосов. В таблице 4.5 приведены совпадения голоса тестируемого пользователя с эталонными образцами в процентном соотношении.


Таблица 4.5 - Соотношения схожести голосов с эталонными образцами

ГолосОбразец 1, %Образец 2, %Образец 3, %Мужской голос №1898890Мужской голос №2757780Мужской голос №3808582Мужской голос №4858883Мужской голос №5707875Женский голос №1505552Женский голос №2605855Эталонный939493

По этим данным нижний порог сходства был выбран 92%.

В таблице 4.6 приведены спектрограммы эталонных образцов и выделенные из них спектральные характеристики.

Таблица 4.6 - Соотношения схожести голосов с эталонными образцами

ГолосСпектрограммаСпектральная характеристикаЭталонный №1Эталонный №2Эталонный №3Мужской голос №1Мужской голос №2Мужской голос №2Женский голос №1

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

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

Ошибок в программе в ходе тестирование выявлено не было.


5. ВОПРОСЫ ОХРАНЫ ТРУДА


5.1 Введение в охрану труда


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

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

При размещении и проектировании ВЦ необходимо учитывать характерные его особенности. В залах ЭВМ к микроклиматическим параметрам ВЦ предъявляются повышенные требования.

Общие санитарно-гигиенические требования к устройству ВЦ

Производственные здания, сооружения, оборудование, технологические процессы должны отвечать всем требованиям, обеспечивающим здоровые и безопасные условия труда. В первую очередь эти требования должны выполняться проектировщиками. Согласно санитарным нормам СН 245-71 на каждого работающего предусматривается объём производственного помещения - не менее 15 м3 и площадь - не менее 4,5 м2.

К помещениям машинного зала предъявляются особые требования. Высота от пола до потолка производственного помещения должна быть не менее 3,2 м, а от пола до низа выступающих конструкций - не менее 2,6 м. Высоту подпольного пространства принимают равной 0,2 - 0,8 м (при прокладке в нём воздуховодов - не менее 0,3 м, а при наличии только кабелей - не менее 0,15 - 0,2 м).


5.2 Неблагоприятные факторы и средства защиты от них


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

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

Рассмотрим подробнее воздействие этих факторов на человека и средства борьбы с ними.

Работа пользователя на ПЭВМ сопровождается незначительным шумом. Основным источником является шумящее оборудование (принтер и т.п.). Шум оказывает на человека вредное физиологическое воздействие, которое заключается не только в повреждении слухового аппарата, но и в отрицательном влиянии на нервную систему, вызывая замедление психологических реакций.

В помещениях, где работают инженерно-технические работники с использованием ПЭВМ, уровень шума на рабочем месте не должен превышать значений, установленных для видов работ "Санитарными нормами допустимых уровней шума на рабочих местах", т.е. 60 дБ.

Снизить уровень шума в помещениях с ПЭВМ можно использованием звукопоглощающих материалов с максимальными коэффициентами звукопоглощения для отделки помещений (разрешённых органами Госсанэпиднадзора России), подтверждённых специальными акустическими расчётами.

Дополнительным звукопоглощением служат однотонные занавеси из плотной ткани, гармонирующие с окраской стен и подвешенные в складку на расстоянии 15 - 20 см от ограждения. Ширина занавеси должна быть в 2 раза больше ширины окна.

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

Одним из самых актуальных для ВЦ неблагоприятных факторов является электромагнитное излучение.

Электромагнитное поле обладает определённой энергией и распространяется в виде электромагнитных волн. Степень воздействия электромагнитных излучений на организм человека зависит от диапазона частот, интенсивности воздействия, продолжительности облучения, характера излучения (непрерывное или модулированное), режима облучения, размеров облучаемой поверхности тела и индивидуальных особенностей организма.

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

Биологическое действие электромагнитных полей более высоких частот связывают в основном с их тепловым и аритмическим эффектом.

Облучение электромагнитным полем большой интенсивности может привести к разрушительным изменениям в тканях и органах. Длительное хроническое воздействие электромагнитных полей небольшой интенсивности приводит к различным нервным и сердечно-сосудистым расстройствам (головной боли, утомляемости, нарушению сна, боли в области сердца и т.п.). Возможны нарушения со стороны эндокринной системы и изменение состава крови.

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

Почти все современные производители мониторов придерживаются очень жёсткого мирового стандарта в этой области ТСО 95.


5.3 Классификация объекта по взрывной, взрывопожарной и пожарной опасности


Проектирование и эксплуатация объектов регламентируется "Строительными нормами и правилами". В соответствии со СниП П-2-80 все производства делят по взрывной, взрывопожарной и пожарной опасности на шесть категорий: А и Б - взрывопожароопасные; В, Г и Д - пожароопасные. Помещение ВЦ относится к категории Д. Категория характеризуется применением негорючих веществ в холодном состоянии.

Кроме классификации помещений, в которых имеется электрооборудование, по взрывной и пожарной опасности по СниП, условия безопасного применения электрооборудования регламентируются ПУЭ (Правилами Устройства Электроустановок). По ПУЭ проектируемое помещение относится к классу П-III - пожароопасное, характеризующееся наличием твёрдых горючих веществ.

Действующими правилами электроустановок все помещения по опасности поражения электрическим током подразделяются на три класса. Проектируемый ВЦ относится к классу помещений повышенной опасности, характеризующихся наличием электроустановок, имеющих соединение с землёй.


5.4 Электробезопасность


Электрические установки, к которым относится практически все оборудование ЭВМ, представляют для человека большую потенциальную опасность, так как в процессе эксплуатации или проведении профилактических работ человек может коснуться частей, находящихся под напряжением /6/. В соответствии с классификацией помещений по степени опасности поражения работающих электрическим током помещения ВЦ относятся к помещениям с "повышенной опасностью", одним из признаков данного определения является наличие заземленного оборудования.

Проходя через тело человека, электрический ток оказывает на него сложное воздействие, включающее в себя следующие виды:

-тепловое;

-электролитическое;

-биологическое действие.

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

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

ВЦ отличаются большим разнообразием используемых видов сетей, уровнем их напряжения и рода тока. Так основное питание вычислительного центра осуществляется от двухфазной сети с частотой 50 Гц, напряжением 220 В. Для питания же отдельных устройств используются однофазные сети как переменного, так и постоянного тока с напряжением от 5 до 220 В.

Для предотвращения электротравматизма необходимо правильно организовать обслуживание действующих электроустановок вычислительного комплекса, проведение ремонтных, монтажных и профилактических работ. Чтобы обеспечить снижение напряжения между оборудованием, оказавшемся под напряжением, и землёй до безопасной величины, необходимо заземлить все металлические нетоковедущие части электрооборудования, которые могут оказаться под напряжением в случае пробоя изоляции электропроводки, а также по другим причинам (вынос потенциала, разряд молнии и др.). Защитное заземление является наиболее простой и эффективной мерой защиты от поражения электрическим током.


5.5 Расчёт заземляющего контура


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

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

вид и размер элементов - стальная полоса, длиной (L) - 50 м,

сечением (B*H) - 0,0075´0,035 м;

глубина заземления - t = 0,5 м;

измеренное удельное сопротивление (R0) - 200 Ом×м.

При расчете контурного заземления примем допущение об однородности почвы.

Рассмотрим сопротивление одной полосы, учитывая, что расчетное удельное сопротивление находится как:


R0p = R ×Fk (5.1)


где R0p - расчетное удельное сопротивление земли, Ом×м;

R - измеренное удельное сопротивление земли, Ом×м;

Fк - коэффициент климатической зоны (для второй климатической зоны и горизонтального электрода длиной 50 м он равен 3).

По формуле (5.1) находим R0p = 600 Ом×м.

Для нахождения расчетного сопротивления R1 одной полосы используется формула (8.2)


, (5.2)


где L - длина полосы, м;

b - ширина полосы, м;

t - глубина закладки заземления, м.

Подставляя исходные данные в (5.2), получим R1 = 33,34 Ом м.

Расчетное сопротивление n горизонтальных полос можно найти по следующей зависимости:


(5.3)


где Кип - коэффициент использования полос.

Согласно "Правилам устройства электроустановок" (ПУЭ), в электроустановках, использующих напряжение до 1000В, сопротивление заземления должно быть не более 4 Ом, следовательно, нормируемое сопротивление заземления Rn = 4 Ом.

Определяем минимальное количество полос при коэффициенте использования Кип равном 1:


(5.4)


Получаем n = 9.

Определим шаг укладки полос h:


, (5.5)


При числе полос n = 9 шаг составляет 5,56 м.

Полученный заземляющий контур состоит из 9 горизонтальных полос, уложенных параллельно друг другу на ребро, длиной 15 м, размещенных в однородной земле на глубине 0.5 м при общем сопротивлении заземления не более 4 Ом.


5.6 Производственное освещение


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

5.6.1 Расчёт естественного освещения

Для того чтобы рассчитать естественное освещение необходимо знать площадь помещения. Минимальная площадь помещения определяется так:


,


где Smin - норма площади, т.е. минимальная площадь на одного работника;

N - количество работающих в помещении.

Для рабочего конструкторского бюро Smin = 7 м2. Количество человек, эксплуатирующих разрабатываемую САПР равно 3. Для обеспечения большего комфорта выберем площадь на одного работника в размере 10 м2.

.

Высоту помещения с учётом оптимальных условий примем H = 4 м.

Рассчитаем объём помещения:


.


Проверим соответствие объёма помещения заданной норме:


. (5.6)


По формуле (5.6) Vmin= 120/3 = 40 м3 > 15 м3.

Таким образом, высота помещения выбрана правильно.

Из условия соотношения сторон помещения 1:1,5 определим длину и ширину помещения:



откуда ширина помещения равна:



длина соответственно равна:



Рассчитаем высоту остекления:



где H - высота помещения;

,3 м - расстояние от потолка;

,8 м - расстояние от пола.

Переплёт проёмов - алюминиевый двойной.

Расчитаем площадь световых проёмов:



где Sn - площадь пола помещения, 30 м2;

lmin - нормированная минимальная величина К.Е.О. для бокового освещения 2%;

h0 - световая характеристика окна и отношения длин сторон, 16;

kl - коэффициент, учитывающий затенение окон противостоящими зданиями, 1,3;

t0 - общий коэффициент светопропускания, зависящий от загрязнённости воздуха помещения, положения остекления, вида переплётов окон, 0,3;

rl - коэффициент, учитывающий отражение света от стен и потолка, 5,5.

Вычислим длину остекления:



Следовательно, применяем неполное остекление.


.6.2 Расчёт искусственного освещения

Согласно действующим Строительным нормам и правилам СНиП-4-79 для искусственного освещения регламентирована наименьшая допустимая освещенность рабочих мест. Так для работы с экраном дисплея в сочетании с работой над документами рекомендуемая освещенность составляет 300 Лк.

Используем потолочные светильники типа УСП 35 с двумя люминисцентными лампами типа ЛБ-40, световой поток - 3120 Лм, мощность лампы - 40 Вт, напряжение питания - 220 В. Затенения рабочих мест нет.

) Находим расчётную высоту подвеса светильников над рабочим местом:


h = H - hc - hp , (5.7)


где hc - расстояние от потолка до светильника, равное 0,2м;

hp - высота стола, равная 0,8 м.

Подставляя соответствующие значения в (5.7) получаем высоту подвеса равную:

2) Расстояние между светильниками:

Светильники располагаются параллельно короткой стороне помещения в несколько рядов.


(5.8)


Подставляя соответствующие значения в (5.8) получим:

) Расстояние между стенами и крайними рядами светильников:


(5.9)


При Lc = 3,3 м это расстояние по формуле (5.9) составит 1,32 м.

) Число рядов светильников np:


(5.10)


Получаем число рядов светильников np = 4.5/3,3 = 2.

) Индекс помещения:


(5.11)


где S - площадь помещения, м2;

h - расчетная высота подвеса, м;

А и B - стороны помещения, м.

Получаем:

Из справочных данных находим ? - коэффициент использования излучаемого светильниками светового потока при коэффициентах отражения:

от потолка - 70%;

от стен - 50%;

от пола - 10%.

Получаем h = 0,34.

) Число светильников в ряду nc :


, (5.12)


где k - коэффициент запылённости светильника, равный 1,5;

z - коэффициент неравномерности освещения, равный 1,2;

Фc - световой поток от одной лампы;

n - число ламп в светильнике.

Округляя в большую сторону до ближайшего целого числа, принимаем nc = 4.

) Общая длина светильников в ряду:

Длина одного светильника УСП 35 с двумя лампами ЛБ-40 равна 1,27 м. Отсюда общая длина светильников в ряду составит 5,08 м. Светильники в ряду будут располагаться на расстоянии 0,32 м от стен помещения и друг друга. Расположение светильников показано на рис. 8.1.

Согласно рассчитаным данным был получен рекомендуемый план размещения КТС САПР гальванических процессов получения композитных покрытий, представленный в приложении В.

) Фактический световой поток Фф:


(5.13)


Подставляя соответствующие значения, получаем Фф = 2978 Лм.

) Отклонение светового потока:


(5.14)


Рис. 5.1 - Расположение светильников в комнате


Отклонение 4,55 % не превышает допустимых 10 %, следовательно, выбранную схему искусственного освещения можно принять к исполнению.

) Вычислим мощность осветительной установки:



Расчёт кондиционирования

Определение суммарного количества избыточного тепла:


(5.15)


где QЭл - тепловыделение от электрооборудования;

Qл - тепловыделение от людей;

QОст - тепловыделение от солнечной энергии через остеклённые проёмы;

QОсв - тепловыделение от искусственного освещения.

) Определение тепловыделения от электрооборудования QЭл:


(5.16)


где SN - суммарная мощность электрооборудования, кВт.



где k1 = 0,7 - коэффициент использования АРМ;

k2 = 0,4 - коэффициент использования принтера;

NАРМ = 0,42 кВт - потребляемая мощность АРМ;

Nпр = 0,12 кВт - потребляемая мощность принтера;

n1 = 2 - количество АРМ;

n2 = 1 - количество принтеров;

) Определение тепловыделения от людей, занятых в процессе проектирования:


(5.17)


где n - число сотрудников, занятых проектированием;

Q1 - тепловыделение от одного человека, равное 70 ккал/час (при физически лёгкой работе и t = 20°C).

При численности персонала три человека находим по формуле (5.17), что Qл равно 210 ккал/час.

) Определение тепловыделения от солнечной энергии через остеклённые проёмы:


(5.18)


где Fо - площадь стеклового покрытия окна, м2, Fо = Sо;

qo - величина солнечной радиации, поступающей через 1м2 поверхности остекления, равная для окон с двойным алюминиевым переплётом 145 ккал/час;

ko - коэффициент, зависящий от поверхности остекления. Для обычно загрязнённого стекла kо = 0,8.

) На 50 м2 площади помещения приходится 1 кВт тепловыделения от освещения.

5) Определение суммарного количества избыточного тепла по формуле (8.15):

6) Определение величины необходимого воздухообмена


(5.19)


где с = 0.24 ккал / кг с - теплоемкость сухого воздуха;

r = 1.205 кг / м3 - плотность проточного воздуха;

tв = 23 оС - температура воздуха внутри помещения;

tн = 15 оС - температура воздуха, поступающего из кондиционера.

Подставляя в (8.19) соответствующие значения, получаем W = 931,4 м3/час.

) Определение кратности воздухообмена К:


(5.20)


где V - объем помещения.

При длине помещения 6,7 м, ширине - 4,5 м и высоте - 4 м объём составляет 126,16 м3 . По формуле (5.20) получаем К равное 7,38. Так как К>1 делаем вывод о необходимости кондиционирования воздуха.

) Выбор кондиционера.

Кондиционер SAMSUNG AZ09F7K9, оконный. Его технические характеристики:

производительность по воздуху - 582 м3/ч;

производительность по холоду - 2142 ккал/ч.

) Определение необходимого количества кондиционеров.


, (5.21)


где Qx - производительность выбранного кондиционера по холоду.

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


5.7 Гигиена труда


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

доступ речь идентификация программный


6. ТЕХНИКО-ЭКОНОМИЧЕСКОЕ ОБОСНОВАНИЕ ПРОЕКТА


Успешное применение данной подсистемы САПР в процессе проектирования подразумевает выполнение подсистемой следующих функций:

-поддержание работоспособности подсистемы САПР и хранение необходимой информации;

-ввод исходных данных и обработка результатов;

разработка проектной документации.

Исходя из этих требований в комплекс технических средств разрабатываемой подсистемы САПР были включены два компьютера, объединенные в локальную сеть

Для поддержания работоспособности подсистемы САПР и хранения необходимой информации необходим компьютер на базе процессора Pentium 4 тактовой частотой 2,4 ГГц и частотой шины 533 МГц. На производительность сервера базы данных влияют два основных фактора - объем оперативной памяти и объем и скорость жесткого диска. Исходя из этого, объем оперативной памяти составил 512 Мбайт и выбран жесткий диск Seagate ATA/133 объемом 80 Гбайт и скоростью вращения 7200 об./мин. Для вывода текстовой и графической документации формата А4 используется лазерный принтер HP LaserJet 1200. Данный принтер обеспечивает более высокое качество печати, чем матричный и более экономичен, чем струйный принтер. Производительность выбранного принтера достигает 14 страниц в минуту (эталонных страниц). Достоинством данного принтера является возможность его подключения к USB порту.

Для решения задачи оптимального проектирования, так как оно требует значительных вычислительных затрат необходим компьютер на базе процессора Pentium 4 с тактовой частотой 3 ГГц и частотой шины 533 МГц и технологией hiper-threading. Оперативная память была выбрана в размере 512 Мбайт, так в процессе преобразований может потребоваться большой объем памяти для хранения промежуточных данных. Жесткий диск был взят объемом 80 Гбайт, так как это оптимальный размер современных винчестеров.

Оба рабочего места оборудованы монитором Samsung Syncmaster 757MB с диагональю 17".

Для сохранения работоспособности компьютеров во время перебоев с электропитанием рабочее место системного администратора оснащено источником бесперебойного питания UPS BACK 1000 AP PCM, обеспечивающие сохранение электрического питания на время, достаточное для завершения критических участков работы, и завершение печати документов. Рабочее место оператора оснащено источником бесперебойного питания UPS BACK 600 AP PCM.


6.1 Персонал. орагнизационная структура.


Для успешного применения данной подсистемы САПР предполагается привлечь к процессу проектирования штат сотрудников в составе трех человек. Организационная структура персонала представлена в таблице 1.


Таблица 6.1- Штатное расписание подразделения

ПрофессияЧисленность, чел.Оклад, руб.Инженер-системотехник16000Оператор ЭВМ14000Итого210000

6.2 Сроки реализации проекта. календарный график проекта. планирование работ по проекту с использованием сетевого графика


Таблица 6.2 - календарный график проекта

№ п/пПеречень работКоды работПродолжительность работ, дни1.Карта технического уровня1, 2132.Техническое предложение.2, 313.Анализ и коррекция имеющейся проектной документации3, 444.Поиск оптимальных настроек подсистемы САПР4, 525.Технический проект.5, 626.Рабочая документация.6, 78

Сетевой график.


6.3 Оценка экономической эффективности от внедрения проекта


Экономический эффект от внедрения подсистемы САПР защиты от несанкционированного доступа с учетом того, что количество проектов, выполняемых проектной организацией вручную, не будет превышать количество проектов, выполняемых той же организацией с использованием разрабатываемой САПР, можно рассчитать по следующей формуле:


, (6.1)


где Зг1, Зг2 - годовые затраты до и после внедрения подсистемы САПР, соответственно, руб.;

Рг1, Рг2 - годовой результат до и после внедрения САПР, соответственно, руб.;

Кр - норма реновации основных фондов, определяемая с учетом фактора времени;

Ен - норматив приведения разновременных затрат и результатов, численно равный коэффициенту эффективности капитальных вложений (Ен = 0,15).

Норма реновации основных фондов определяется по формуле:


, (6.2)


где tсл - срок службы системы (3-4 года).

Принимаем tсл = 4 года.

Получаем по формуле (2) Кр = 0,2.

Годовые затраты определяются по формуле:


, (6.3)


где Иг - годовые текущие издержки при производстве продукции, руб.;

Кt - единовременные затраты, руб.;

Кпр - предпроизводственные затраты, руб.;

аt = 1;t1 = 1,15 - коэффициенты приведения к текущему году.

При автоматизированном проектировании в составе годовых затрат учитываются:

Иг - годовые затраты на стадии разработки проекта в условиях САПР без учета амортизационных отчислений, руб.;

Кt - затраты на приобретение комплекса технических средств САПР, руб.;

Кпр - затраты на создание комплекса технических и программных средств, руб.

При ручном проектировании в составе годовых затрат учитываются только затраты на стадии разработки проекта (Иг).

Стоимость реализованных проектов рассчитывается по формуле:


, (6.4)


где Цпр - цена проекта, руб.;

N - количество реализуемых проектов в год, шт.


6.4 Расчет единовременных затрат


При определении единовременных затрат известно, что предприятие не располагает необходимыми техническими средствами для создания подсистемы САПР и их требуется приобрести.

Величина единовременных затрат определяется по формуле:


, (6.5)


где К0 - капитальные затраты на основные средства вычислительной техники, руб.;

КВ - капитальные затраты на вспомогательное оборудование, лабораторные приборы, дорогостоящий инвентарь, руб.;

КС - капитальные затраты на строительные работы, связанные с внедрением САПР, руб., принимаем равным 0;

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

Капитальные затраты на основные средства определяются из сметы спецификаций:


Таблица 6.3 - Смета спецификаций

№ п/пНаименование технических средствКоличествоЦенаСтоимость1Компьютер на базе процессора Pentium 4 2.4 Гц135469354692Компьютер на базе процессора Pentium 4 3 Гц137668376685Принтер HP LaserJet 1200110880108806Источник бесперебойного питания ИБП 1000 Powerman1342434247Источник бесперебойного питания UPS BACK 500 AP PCM1150415048Электронный замок1100010009Итого988945

Таким образом капитальные затраты на основные средства вычислительной техники К0 = 88945 руб.

Капитальные затраты на вспомогательное оборудование можно принять в размере 10% от капитальных затрат на основные средства.

Таким образом Кс = К0 * 0,1 = 8894,5 руб.

Кt = (136103 + 13610,3) * 1,133 = 110852,15 руб.


6.5 Расчет стоимости одного машино-часа работы комплекса технических средств САПР


Стоимость часа машинного времени рассчитывается по формуле:

, (6.6)


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

Тэф - эффективный фонд времени работы оборудования (за год), руб.

Сумма затрат на эксплуатацию средств вычислительной техники определяется по формуле:


, (6.7)


где Зм - затраты на основные и вспомогательные материалы (в размере 1% от стоимости оборудования), руб.;

Зм = 0,01 * 136103 = 889,45 руб.

Зэ - затраты на электроэнергию, руб.;

Зз - затраты на зарплату работников (с учетом отчислений на социальные нужды в размере 35,6%), руб.;

За - сумма годовых амортизационных отчислений, руб.;

Зрто - затраты на ремонт и техническое обслуживание оборудования, руб.;

Зпр - прочие расходы, руб.

Затраты на электроэнергию рассчитываются по формуле:


,(6.8)


где Мi - установленная мощность i-го вида оборудования, квт.;

Тэф i - эффективный фонд времени работы i-го вида оборудования (за год), час.;

Цквт/ч - цена одного киловатт-часа электроэнергии, руб.; Цквт/ч = 0,7 руб.

Км - коэффициент использования мощности, равный 0,9.

Таблица 6.4 - Эффективный фонд работы оборудования

Наименование технических средствMi КвтТ эф.i часКомпьютер на базе процессора Pentium 4 2,40,421700Компьютер на базе процессора Pentium 4 30,421700Принтер HP LaserJet 12000,12950

Получаем затраты на электроэнергию:

Зэ = 0,9*0,63*(1700*0,42 + 1700*0,42 + 950*0,12) = 971.46 руб.

Затраты на зарплату персонала определяются по формуле:


, (6.9)


где Омес i - месячный оклад работника i-й квалификации, руб.;

Чi - численность работников i-й квалификации, чел.;

- число месяцев в году;

Ксс - коэффициент, учитывающий начисления на заработную плату (отчисления на социальные нужды), равный 1,356.

Данные для расчета берутся из штатного расписания подразделения - Таблица 1.

Получаем затраты на зарплату персонала:

Зз = 12*1,356*(6000 + 4000) = 162720 руб.

Сумма годовых амортизационных отчислений определяется по формуле:


, (6.10)


где НО, НВ - нормы амортизации на реновацию для основного и вспомогательного оборудования, соответственно.

В соответствии с существующим законодательством нормы амортизации установлены в следующих размерах - НО=10%, НВ=20%.

Получаем руб.

Затраты на ремонт определяются в соответствии с нормой отчислений на ремонт, которую можно принять в размере 16% от капитальных затрат на основные средства.

Зрто = 88945*0,16 = 14231.2 руб.

Прочие расходы принимаются в размере 1% от основных капитальных вложений.

Зпр = 88945*0,01 = 889.45 руб.

Получаем затраты на эксплуатацию средств вычислительной техники:

Зэкс = 889,45 + 971,46 + 110852,15 + 26683,5 + 14231,2 + 889,45 = 154517,21 руб.

По формуле (6) и таблице 2 определяем стоимость часа машинного времени:

Цмч = 154517,21 / 6650 = 23,23 руб.


6.6 Расчет предустановочных затрат


Предустановочные затраты на создание САПР определяются по формуле:


), (6.11)


где Тпс - трудоемкость разработки программных средств САПР, человеко-дни; Тпс = 30;

Цмч - цена одного машино-часа работы комплекса вычислительной техники, руб.;

Омес - средний месячный оклад разработчика САПР (с учетом отчислений на социальные нужды в размере 35,6%), руб.;

,3 и 0,7 - коэффициенты распределения общих затрат времени на работу машины и разработчика САПР;

,4 - среднее число рабочих дней в месяце, дни.

Кпр = 30*(0,3*23,23*8 + 0,7*1,356*10000/25.4) = 12883 руб.


6.7 Затраты на внедрение аналогичных систем


Стоимость ручного проектирования определяется по формуле:


, (6.12)


где Тр i - трудоемкость i-го этапа проектирования, час.

Омес - средний месячный оклад проектировщика (с учетом отчислений на социальные нужды в размере 35,6%), руб.

Омес = 1,356*5000 = 6780 руб.

Sоб= 159100 руб


Таблица 6.5 - Примерная технологическая карта установки аналогичной системы

Этапы проектированияКоличество листовНорма времениКарта технического уровня305Техническое предложениеПояснительная записка504Ведомость400,5Технический проектСтруктурные схемы204Пояснительная записка1004Ведомость400,5Рабочая конструкторская документацияПринципиальные схемы1510Структурные схемы407Конструкторская документацияМонтажный чертеж1510Электрическая схема105Ведомость покупных изделий200,5Ведомость спецификаций100,4Технические условия503,1Итого53

Получаем стоимость установки аналогичной системы:

Ср = 53* 6780 / 25,4 + 159100 = 173247 руб.

Стоимость обслуживания определяется по формуле:


, (6.13)


где Труч - трудоемкость ручных операций проектирования, человеко-часы;

Омес - средний месячный оклад инженера-системотехника (с учетом отчислений на социальные нужды в размере 35,6%), руб.;

Тмаш - трудоемкость обслуживания с использованием программно-технического комплекса подсистемы САПР, _ычисл-часы;

Цмч - цена одного _ычисл-часа работы комплекса вычислительной техники, руб.

Получаем стоимость автоматизированного проектирования:

ССАПР = 53 * 6780 / 25,4 + 254*23,23 = 20047,42 руб.


6.8 Расчет годовых текущих издержек на разработку проекта


Годовые текущие издержки при ручном проектировании _ычисляяются по формуле:


, (6.14)


где Ср - стоимость ручного проектирования, руб.;

N - число проектов, шт. N = 1.

Получаем Иг = 154517,21 руб.

Для аналогичной системы цена проекта 173247 руб.

По формуле (4) стоимость реализованных проектов равна

Рг = 1*54517,21 = 154517,21 руб.

Годовые текущие издержки при автоматизированном проектировании вычисляются по формуле:


,


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

За - сумма годовых амортизационных отчислений, руб.;

ССАПР - стоимость автоматизированного проектирования, руб.;

N - число проектов, шт. N = 1.

Получаем Иг = 20042*1 = 20042 руб.

Для разрабатываемой системы цена проекта:

Цпр = 154517 руб.

По формуле (1) рассчитываем экономический эффект от внедрения данной подсистемы САПР:

Эт = (173247 - 154517)/(0,2 + 0,15) = 53514 руб.

Экономический эффект от внедрения подсистемы САПР составил 53514 руб., что доказывает необходимость разработки данной подсистемы САПР.


6.9 Сводная таблица технико-экономических показателей разработки САПР


ПоказателиЕд. измЗначение показателяИзменение показат.,%разрабатываемая системааналогичная система1. Стоимость проектаруб.154517173247892. Предпроизводственные затратыруб.128833. Единовременные затратыруб.88945110085804. Стоимость разработки проектаруб.1423120047705. Годовая стоимостная оценка затратруб.154517173247896. Экономический эффектруб.53514

.10 Выводы


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


ЗАКЛЮЧЕНИЕ


При проектировании подсистемы САПР защиты от несанкционированного доступа были выполнены следующие задачи:

-разработано программное обеспечения для защиты от несанкционированного доступа на основе анализа голоса пользователя;

-разработан комплекс средств подсистемы САПР разработки систем ограничения доступа;

-была классифицирована, упорядочена и закодирована необходимая для проектирования информация;

-разработан комплекс технических и программных средств, необходимых для полноценной работы подсистемы САПР;

-предложены схемы функционирования и структурная схемы САПР.

Были произведены расчеты, показавшие адекватность разработанной методики защиты от несанкционированного доступа и целесообразность использования САПР в данной области.


СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ


1.Joseph Picone, Ruslan Popov. Методы моделирования сигнала в распознавании речи. Кемерово. 2000

2.Ф. Уоссермен. Нейрокомпьютерная техника: Теория и практика. 1992.

.Фланаган Дж. Анализ, синтез и восприятие речи. - М.:Связь, 1968.

.Плотников В.Н., Суханов В.А., Жигулевцев Ю.И. Речевой диалог в системах управления. - М.:Машиностроение, 1988.

.Восприятие информации в системах искусственного интеллекта: Учеб. Пособие. В.М. Игнатьев, Е.В. Ларкин. Тул. гос. техн. ун-т: Тула, 1993.

.Ахмед Н., Рао К.Р. Ортогональные преобразования при обработке цифровых сигналов. - М.:Связь, 1980.

.Статистические методы для ЭВМ. под ред. К. Энслейна, Э. Рэлстона, Г.С. Уилфа, - М.: Нау-ка. Гл. ред. физ.-мат. лит., 1986.

.Численные методы Н.С. Бахвалов. Главная редакция физико-математической литературы изд-ва «Наука», М., 1975.

.Фаин В.С. Распознавание образов и машинное понимание естественного языка. Издательство "Наука", Москва, 1987.

.Турбович И.Т., Фаин В.С. Распознавание образов. Издательство "Наука", Москва, 1977.

.Попов Э.В. Общение с ЭВМ на естественном языке. Издательство "Наука", Москва, 1982.

.Маркел Дж. Д., Грэй А. X. Линейное предсказание речи. М.: Радио и связь. 1980.

.В.В. Фаронов. Delphi 5 Рукововодство программиста. М.: Нолидж. 2001

.В.В. Фаронов. Delphi 5 Программирование баз данных. М.: Нолидж. 2001

.Тим Кинтцель. Руководство программиста по работе со звуком. М.: 2000


ПРИЛОЖЕНИЕ А


ИСХОДНЫЙ ТЕКСТ ПРОГРАММЫ LoginSecure.exe


Модуль uMain.

unit uMain;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,, ExtCtrls, jpeg, StdCtrls, Db, ADODB, Grids, DBGrids, DBCtrls,comobj;= class(TForm): TSpeedButton;: TSpeedButton;: TSpeedButton;: TSpeedButton;: TSpeedButton;: TImage;: TSpeedButton;: TMemo;: TSpeedButton;: TADOConnection;SpeedButton4Click(Sender: TObject);SpeedButton7Click(Sender: TObject);FormCreate(Sender: TObject);SpeedButton1Click(Sender: TObject);SpeedButton2Click(Sender: TObject);SpeedButton3Click(Sender: TObject);

{ Private declarations }

{ Public declarations };RunSQL(q:TADOquery;close:boolean);: TfoMain;:tstrings;uConfig, uNewUser, UCompare, USound;

{$R *.DFM}RunSQL(q:TADOquery;close:boolean);.Open;EOleException do q.Active:=false;EDatabaseError do q.Active:=false;;close then q.Active:=false;

// q.SQL.SaveToFile('db\1.sql');;TfoMain.SpeedButton4Click(Sender: TObject);not assigned(foconfig) then.CreateForm ( Tfoconfig, foconfig );;.show;;TfoMain.SpeedButton7Click(Sender: TObject);;;stringtobyte(s:string;var b:array of integer);x:integer;x:=0 to 127 do b[x]:=ord(s[x+1]);;TfoMain.FormCreate(Sender: TObject);f:file;:array[1..128]of integer;,Energ3 : array[1..128]of byte;:integer;:array [0..127]of integer;:string;.DoubleBuffered:=true;;TfoMain.SpeedButton1Click(Sender: TObject);not assigned(fonewuser) then.CreateForm ( Tfonewuser, fonewuser );;.show;;TfoMain.SpeedButton2Click(Sender: TObject);not assigned(form2) then.CreateForm ( Tform2, form2 );;.show;;TfoMain.SpeedButton3Click(Sender: TObject);not assigned(analizeform) then.CreateForm ( Tanalizeform, analizeform );;.show;;.

Модуль SpectruSpectr;Sysutils,graphics,extctrls,windows;GetSpectr(filename:string;var spectr:array of integer);calc_fxy(energ11,energ21:array of integer):real;arr=array[0..10000]of byte;=array[0..1024]of real;=array[0..1024]of real;=record re,im:real;end;FFTR(buf:array of comp);stdcall; external 'fftc.dll';k=0.5;pikrec=record:integer;:integer;:integer;;left:array[0..200000]of smallint;:array[0..200000]of byte;savevsd(s:string;energ:array of integer);f:file;:integer;(f,s);(f,1);(f,energ,sizeof(energ),x);(f);;calc_fxy(energ11,energ21:array of integer):real;mx,my,s1,s2,s3:real;:integer;:=0;my:=0;i:=0 to 127 do:=mx+energ11[i];:=my+energ21[i];;:=mx/128;:=my/128;:=0;s2:=0;s3:=0;i:=0 to 127 do s1:=s1+((energ11[i]-mx)*(energ21[i]-my));i:=0 to 127 do s2:=s2+(sqr(energ11[i]-mx));i:=0 to 127 do s3:=s3+(sqr(energ21[i]-my));:=sqrt(s2);:=sqrt(s3)*s2;s3<>0 then result:=abs(s1/s3) else result:=0;;I0(X:real):real;Y, T, E, DE, SDE:real;:integer;

Y := X/2;

T := 0.0000000001;:= 1;

E :=DE;

for i:=1 to 50 do

DE := de*Y / i;:= DE * DE;:= e+SDE;(E*T-SDE>0) then break;

end;

result:= E;;KaiserWindow(source:sampl; length,b:integer;var result:sampl);i, k:integer;b:real;:real;b:=1.0 / I0(b);:= -(Length shr 2);i:=1 to Length shr 2 do(k);:= I0(b*sqrt(1-sqr(2.0*k/(Length-1)))) * iI0b;[i]:=source[i] *h;[Length-1-i] := source[Length-1-i]*h;;i:=1 to length do result[i]:=source[i];;Liftering(source:sampl; length,b:integer;var result:sampl);i:integer;,xout:real;i:=1 to Length do:=source[i]-0.9*w;:=0.54-0.46*cos(2*pi*(i-6)/179);[i]:=xout*w;;i:=1 to length do result[i]:=source[i];;Fft(source:sampl; length,step:integer;var result:sampl);forward;Fft(source:sampl; length,step:integer;var result:sampl);f,t:integer;f:=1 to Length do[f]:=0.0;t:=1 to Length do[f]:=Result[f]+ Source[t]*(-cos(PI*f*t/Length/2));;;GetSpectr(filename:string;var spectr:array of integer);step :integer; :array[1..500,1..128]of smallint;,y,n :integer; :array[0..128]of integer; :array [0..512]of comp; :file; :sampl; :integer;_crop,end_crop :integer;,min :integer;,dz :real; :Integer; :integer;(f,filename);(f,1);n:=1 to 200000 do buf[n]:=0;n:=1 to 200000 do left[n]:=0;(f,58);(F, buf, filesize(f), x);_crop:=x-100;(f);x:=1 to 128 do energ[x]:=0;:=1;_crop:=200;:=0;:=255;l:=begin_crop to end_crop do if buf[l]<>0 then break;_crop:=l;l:=begin_crop to end_crop do if buf[l]<min then min:=buf[l];l:=begin_crop to end_crop do[l]:=round((buf[l]+buf[l-1]+buf[l+1])/3)-128;l:=begin_crop to end_crop do:=LEFT[l]-0.90*dz;:=left[l];[l]:=round(xout*(0.54-0.46*cos((l-6)*6.2832/179)));;(begin_crop);abs(left[begin_crop]-left[begin_crop+1])>4;(end_crop);abs(left[end_crop]-left[end_crop-1])>4;_crop:=begin_crop+512;_crop:=end_crop-512;l:=begin_crop to end_crop doleft[l]>max then max:=left[l];;:=round((end_crop-begin_crop)/500);x:=1 to 500 do for y:=1 to 128 do[x,y]:=0;;:=64;y:=1 to 128 do energ[y]:=0;

//-=-=-=-=-= Analizex:=1 to 500 dox*step+begin_crop< end_crop then begini:=0 to 511 do[I].Re:= left[i+x*step+begin_crop];[I].Im:=0;;(bufc);//----i:=128 to 256 do chastota[i-128]:=(sqrt(sqr(bufc[I].Im)+sqr(bufc[I].re)));(chastota,128,5,chastota);(chastota,128,10,chastota);

//////////////////////y:=1 to 125 do:=abs(round(chastota[y]));[y]:=energ[y]+l;l>255 then l:=255;l<0 then l:=0;;;;

//-=-=-=-=-=-=- end analize[126]:=0;x:=1 to 125 doenerg[x]>y then y:=energ[x];;:=round(y/128);:=1;y>0 thenxx:=1 to 128 do ;//spectr[xx]:=round(energ[xx]/y);xx:=0 to 127 do spectr[xx]:=round(energ[xx+1]/y);xx:=1 to 128 do energ[xx]:=round(energ[xx]/y);;(ChangeFileExt(filename,'.vsd'),energ);;.

Модуль LoginSecureuInMain;, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,StdCtrls, DXClass, DXSounds, extCtrls, Buttons, Wave, uSpectr, uSpectrImage,Registry, Geometry, jpeg, DB, ADODB, Menus, comobj, opengl, bmp, cPanel;= class(TForm): TPanel;: TSpeedButton;: TPanel;: TLabel;: TLabel;: TImage;: TImage;: TEdit;: TLabel;: TLabel;: TPanel;: TImage;: TLabel;: TLabel;: TLabel;: TLabel;: TADOConnection;: TADOQuery;: TEdit;: TImage;: TTimer;SpeedButton7Click(Sender: TObject);FormClose(Sender: TObject; var Action: TCloseAction);FormCreate(Sender: TObject);Image5MouseDown(Sender: TObject; Button: TMouseButton;: TShiftState; X, Y: Integer);Image5MouseUp(Sender: TObject; Button: TMouseButton;: TShiftState; X, Y: Integer);SpeedButton7MouseDown(Sender: TObject; Button: TMouseButton;: TShiftState; X, Y: Integer);Timer1Timer(Sender: TObject);: TSoundCaptureStream;: TWaveStream;CaptureFilledBuffer(Sender: TObject);

{ Public declarations };=record re,im:real;end;= 63;TGLCoord = Record, Y, Z : glFloat;;_Wnd : HWND; // Global window handle_DC : HDC; // Global device context_RC : HGLRC; // OpenGL rendering context: Array[0..255] of Boolean; // Holds keystrokes: Integer = 0; // Counter for FPS: Integer; // Elapsed time between frames

// Textures: glUint;

// User vaiables: Integer;: glFloat;: Array[0..GridSize, 0..GridSize] of glFloat;: Array[0..GridSize, 0..GridSize] of glFloat;: Array[0..GridSize, 0..GridSize] of TglCoord;:array [0..GridSize, 0..GridSize] of TglCoord;, yAngle : glFloat;: TfoInMain;,i,x,y : integer; : array [1..512]of comp;,Energ1,Energ2,Energ3 : array[1..128]of integer;: integer=0;,k2,l3,max:integer;: TWndClass; // Window class: DWORD; // Window styles: DWORD; // Extended window styles: DEVMODE; // Screen settings (fullscreen, etc...): GLuint; // Settings for the OpenGL rendering_Instance : HINST; // Current instance: TPIXELFORMATDESCRIPTOR; // Settings for the OpenGL window:hdc;FFTR(buf:array of comp);stdcall; external 'fftc.dll';

{$R *.DFM}glBindTexture(target: GLenum; texture: GLuint); stdcall; external opengl32;

{------------------------------------------------------------------}

{ Function to convert int to string. (No sysutils = smaller EXE) }

{------------------------------------------------------------------}IntToStr(Num : Integer) : String; // using SysUtils increase file size by 100K(Num, result);;DrawWater;I, J : Integer;: glFloat;

// Calculate new velocityI :=2 to GridSize-2 doJ :=2 to GridSize-2 do[I, J] := Velocity[I, J] + (Position[I, J] -

(4*(Position[I-1,J] + Position[I+1,J] + Position[I,J-1] + Position[I,J+1]) + // left, right, above, below[I-1,J-1] + Position[I+1,J-1] + Position[I-1,J+1] + Position[I+1,J+1])/25) / 7; // diagonally across

// Calculate the new ripple positionsI:=2 to GridSize-2 doJ:=2 to GridSize-2 do[I, J] :=.image1.Picture.Bitmap.Canvas.Pixels[round(i*(500/GridSize)),

round(j*(128/GridSize))]/800;

// Velocity[I, J] := Velocity[I, J] * Viscosity;;

// Calculate the new vertex coordinatesI :=0 to GridSize doJ :=0 to GridSize do[I, J].X :=(I - GridSize/2)/GridSize*5;[I, J].Y :=(Position[I, J] / 1024)/GridSize*3;[I, J].Z :=(J - GridSize/2)/GridSize*5;;

// Calculate the new vertex normals.

// Do this by using the points to each side to get the right angleI :=0 to GridSize doJ :=0 to GridSize do(I > 0) and (J > 0) and (I < GridSize) and (J < GridSize) thenNormals[I, J] do:= Position[I+1, J] - Position[I-1,J];:= -2048;:= Position[I, J+1] - Position[I, J-1];:=sqrt(x*x + y*y + z*z);VectLength <> 0 then:=X/VectLength;:=Y/VectLength;:=Z/VectLength;;;[I, J].X :=0;[I, J].Y :=1;[I, J].Z :=0;;;;

// Draw the water texture(GL_TEXTURE_2D, WaterTexture);J :=0 to GridSize-1 do(GL_QUAD_STRIP);I :=0 to GridSize dofv(@Normals[I, J+1]);f(I/GridSize, (J+1)/GridSize);fv(@Vertex[I, J+1]);fv(@Normals[I, J]);f(I/GridSize, J/GridSize);fv(@Vertex[I, J]);;;;;glDraw();ps : TPaintStruct;

// BeginPaint(h_wnd, ps);(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT); // Clear The Screen And The Depth Buffer(); // Reset The View(0.0,0.2,-4.5);(xAngle, 1, 0, 0);(yAngle, 0, 1, 0);f(0.85, 1, 0.85);;

// endPaint(h_wnd, ps);(DC);;

{------------------------------------------------------------------}

{ Initialise OpenGL }

{------------------------------------------------------------------}glInit();I, J : Integer;(0.9, 0.9, 0.9, 0.0); //Background(GL_SMOOTH); (1.0);(GL_DEPTH_TEST); (GL_LESS);(GL_SRC_COLOR, GL_ONE);(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); (GL_TEXTURE_2D); ('reflection.bmp', WaterTexture);

// enable spherical environment maping

// glEnable(GL_BLEND);(GL_S, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP);(GL_T, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP);(GL_TEXTURE_GEN_S);(GL_TEXTURE_GEN_T);:=0.96;I :=0 to GridSize doJ :=0 to GridSize do[I, J] :=0;[I, J] :=0;;;:=15;:=60;;calc_fxy(energ11,energ21:array of integer):real;mx,my,s1,s2,s3:real;:integer;:=0;my:=0;i:=0 to 127 do:=mx+energ11[i];:=my+energ21[i];;:=mx/128;:=my/128;:=0;s2:=0;s3:=0;i:=0 to 127 do s1:=s1+((energ11[i]-mx)*(energ21[i]-my));i:=0 to 127 do s2:=s2+(sqr(energ11[i]-mx));i:=0 to 127 do s3:=s3+(sqr(energ21[i]-my));:=sqrt(s2);:=sqrt(s3)*s2;s3<>0 then result:=abs(s1/s3) else result:=0;;TfoInMain.SpeedButton7Click(Sender: TObject);;;TfoInMain.CaptureFilledBuffer(Sender: TObject);buf:array[0..512]of byte;:array[0..512]of integer;,x,max:integer;:timage;.CopyFrom(FCapture, FCapture.FilledSize);.Seek(FWaveStream.Size-512,0);.read(buf,512);i:=1 to 512 do[I].Re:= buf[i]-128;[I].Im:=0//left[i+x*step+begin_crop];;(bufc);cursampl=1 then image:=image2;.Canvas.Brush.Color:=clwhite;.Canvas.Rectangle(0,0,Image.width,Image.Height);i:=128 to 256 do bufi[i-128]:=round((sqrt(sqr(bufc[I].Im)+sqr(bufc[I].re)))/3);i:=1 to 128 do if bufi[i]>255 then bufi[i]:=255;x:=1 to 4 do for y:=2 to 127 do[y]:=round((bufi[y-1]+bufi[y]+bufi[y+1])/3);.Canvas.Brush.Color:=clblack;i:=1 to 16 do:=0;(i-1)*8+x<126 thenx:=1 to 8 do if bufi[(i-1)*8+x]>max then max:=bufi[(i-1)*8+x];.Canvas.Rectangle((i-1)*8,128,i*8-1,128-max);;//;TfoInMain.FormClose(Sender: TObject; var Action: TCloseAction);.Release;:= nil;;RunSQL(q:TADOquery;close:boolean);.Open;EOleException do q.Active:=false;EDatabaseError do q.Active:=false;;close then q.Active:=false;.SQL.SaveToFile('db\1.sql');;bytetostring(b:array of integer;var s:string);:='';x:=0 to 127 do:=s+chr(b[x]+1);;stringtobyte(s:string;var b:array of integer);x:=0 to 127 do b[x]:=ord(s[x+1]);;glResizeWnd(Width, Height : Integer);(Height = 0) then // prevent divide by zero exception:= 1;(0, 0, Width, Height); // Set the viewport for the OpenGL window(GL_PROJECTION); // Change Matrix Mode to Projection(); // Reset View(45.0, Width/Height, 1.0, 100.0); // Do the perspective calculations. Last value = max clipping depth(GL_MODELVIEW); // Return to the modelview matrix(); // Reset View;SetDCPixelFormat;: Integer;: TPixelFormatDescriptor;(pfd, SizeOf(pfd),0);pfd do begin:= sizeof(pfd); // Size of this structure:= 1; // Version number:= PFD_DRAW_TO_WINDOW or

PFD_SUPPORT_OPENGL or

PFD_DOUBLEBUFFER; // Flags:= PFD_TYPE_RGBA; // RGBA pixel values:= 24; // 24-bit color:= 32; // 32-bit depth buffer:= PFD_MAIN_PLANE; // Layer type;:= ChoosePixelFormat(DC, @pfd);(DC, nPixelFormat, @pfd);(DC, nPixelFormat, sizeof(TPixelFormatDescriptor), pfd);;TfoInMain.FormCreate(Sender: TObject);Reg: TRegistry;:string;_id:string;:= TRegistry.Create;.RootKey := HKEY_CURRENT_USER;Reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Explorer', false)s:=Reg.REadString('Logon User Name');.CloseKey;.Free;;;.Text:=s;.Text:=s;:=0;:=0;:=screen.height;:=screen.width;.left:=width-speedbutton7.Width-5;.Canvas.Brush.Color:=clwhite;.Canvas.Rectangle(0,0,Image1.width,Image1.Height);('test1.wav',image1,3);.Active:=false;.SQL.Clear;.SQL.add('select * from userinfo where (deleted=0) and (login='+chr(39)+edit2.Text+chr(39)+')');(ADOquery1,false);_id:=ADOquery1.FieldByName('user_id').asstring;.Active:=false;.SQL.Clear;.SQL.add('select * from reg where (deleted=0) and (user_id='+us_id+')');(ADOquery1,false);.First;not ADOquery1.eof doADOquery1 doADOquery1.FieldByName('number').asinteger=1 then:=ADOquery1.FieldByName('spectr').AsString;(s,energ1);;ADOquery1.FieldByName('number').asinteger=2 then:=ADOquery1.FieldByName('spectr').AsString;(s,energ2);;ADOquery1.FieldByName('number').asinteger=3 then:=ADOquery1.FieldByName('spectr').AsString;(s,energ3);;.Next;;_wnd:=panel1.Handle;:= GetDC(h_wnd);;_RC := wglCreateContext(DC);(DC, H_RC);

// gluPerspective(45.0, panel1.Width/panel1.Height, 1.0, 100.0); // Do the perspective calculations. Last value = max clipping depth

// glViewport(0, 0, panel1.Width, panel1.Height); // Set the viewport for the OpenGL window(GL_PROJECTION); // Change Matrix Mode to Projection(); // Reset View(GL_MODELVIEW); // Return to the modelview matrix(); // Reset View(panel1.Width, panel1.Height);;;TfoInMain.Image5MouseDown(Sender: TObject; Button: TMouseButton;: TShiftState; X, Y: Integer);sender = image5 then cursampl:=1;cursampl<>0 then begin('test.wav');

//--------.Free;:= TSoundCaptureStream.Create(nil);:= TWaveFileStream.Create('test.wav', fmCreate);FCapture.SupportedFormats[8] do.SetPCMFormat(22050, 8, 1);.Open(True);.OnFilledBuffer := CaptureFilledBuffer;.CaptureFormat := 8;.Start;;;TfoInMain.Image5MouseUp(Sender: TObject; Button: TMouseButton;: TShiftState; X, Y: Integer);spectr:array[1..128]of integer;,i2,i3,max:real;:integer;:timage;:file;FCapture<>nil then.Stop;.Free; FWaveStream := nil;cursampl=1 then begin image:=image2;end;('test.wav',spectr);.Canvas.Brush.Color:=clwhite;.Canvas.Rectangle(0,0,Image.width,Image.Height);.Canvas.MoveTo(0,128);i:=1 to 128 do.Canvas.LineTo(i,128-spectr[i]);[i]:=spectr[i];;:=0;.Canvas.Brush.Color:=clwhite;.Canvas.Rectangle(0,0,Image1.width,Image1.Height);('test.wav',image1,6);:=0;:=calc_fxy(energ1,energ);i1>max then max:=i1;:=calc_fxy(energ2,energ);i2>max then max:=i2;:=calc_fxy(energ3,energ);i3>max then max:=i3;.caption:=inttostr(round(i1*100));.caption:=inttostr(round(i2*100));.caption:=inttostr(round(i3*100));;TfoInMain.SpeedButton7MouseDown(Sender: TObject;: TMouseButton; Shift: TShiftState; X, Y: Integer);;;TfoInMain.Timer1Timer(Sender: TObject);

// Velocity[random(GridSize-3)+2, random(GridSize-3)+2] :=1060;:=yangle+0.5;();;.

Модуль FFTC.CPP

//---------------------------------------------------------------------------

// VoiceSec module. FFT transform.

// 10.2002

//

// author email [email protected]

//

//---------------------------------------------------------------------------

#include <vcl.h>

#include "fft.h"

#pragma hdrstop

#define WINDOW_RECTANGLE0

#define WINDOW_HAMMING1

#define WINDOW_BLACKMAN2

#define WINDOW_BARTLETT3

#define WINDOW_TRIANGLE3

#define WINDOW_HANNING4

#define MATH_PI3.141592653589793intRound(double x) { return (int)(x+0.5); }long doublesqr(long double x) { return x*x; }FFTSize;

#ifdef __cplusplus"C" {

#endif

__declspec( dllexport )FFTC(Cmplx *X,int FFTSize)

{

intN, M, i, j, L, LE, LE2, ip, k, s;

Cmplx t,z;

RealDataUR, UI, SR, SI, TR, TI;

N = FFTSize;

M = Round(log(N)/log(2));

// Bit-reverse

i = 0;

for (s=0;s<N-1;s++) {

if (s<i) {

t = *(X+i); *(X+i) = *(X+s); *(X+s) = t;

}

k = N >> 1;

while (i&k) k >>= 1;

i += k;

k <<= 1;

while (k<N) {

i -= k;

k <<= 1;

}

}

// First pass

for (i=0;i<N;i+=2) {

t = *(X+i);

(X+i)->Re = t.Re + (X+i+1)->Re;

(X+i)->Im = t.Im + (X+i+1)->Im;

(X+i+1)->Re = t.Re - (X+i+1)->Re;

(X+i+1)->Im = t.Im - (X+i+1)->Im;

}

// Second pass

for (i=0;i<N;i+=4) {

t = *(X+i);

(X+i)->Re = t.Re + (X+i+2)->Re;

(X+i)->Im = t.Im + (X+i+2)->Im;

(X+i+2)->Re = t.Re - (X+i+2)->Re;

(X+i+2)->Im = t.Im - (X+i+2)->Im;

t = *(X+i+1);

z = *(X+i+3);

(X+i+1)->Re = t.Re + z.Im;

(X+i+1)->Im = t.Im - z.Re;

(X+i+3)->Re = t.Re - z.Im;

(X+i+3)->Im = t.Im + z.Re;

}

// Last passes

for (L=3;L<=M;L++) {

LE = 1 << L;

LE2 = LE >> 1;

UR = 1; UI = 0;

SR = cos(MATH_PI/LE2);

SI =-sin(MATH_PI/LE2);

for (j=0;j<LE2;j++) {

for (i=j;i<N;i+=LE) {

ip = i + LE2;

TR = (X+ip)->Re*UR - (X+ip)->Im*UI;

TI = (X+ip)->Re*UI + (X+ip)->Im*UR;

(X+ip)->Re = (X+i)->Re - TR;

(X+ip)->Im = (X+i)->Im - TI;

(X+i)->Re = (X+i)->Re + TR;

(X+i)->Im = (X+i)->Im + TI;

}

TR = UR;

UR = TR*SR - UI*SI;

UI = TR*SI + UI*SR;

}

}

}

}

#ifdef __cplusplus

#endif

#ifdef __cplusplus"C" {

#endif

__declspec( dllexport )void(Cmplx *X) {

intN, ND2, ND4;

inti, im, ip2, ipm, ip;

RealDataUR, UI, SR, SI, TR, TI;=256;

// Separate even and odd points

N = FFTSize;

ND2 = N>>1;

ND4 = ND2>>1;

for (i=0;i<ND2;i++) {

(X+i)->Re = (X+(i<<1))->Re;

(X+i)->Im = (X+(i<<1)+1)->Re;

}

// Calculate N/2 point FFT

FFTSize = ND2;

FFTC(X,FFTSize);

FFTSize = N;

// Even/odd frequency domain decomposition

for (i=1;i<ND4;i++) {

im = ND2 - i;

ip2 = i + ND2;

ipm = im + ND2;

(X+ipm)->Re = (X+ip2)->Re = ((X+i)->Im + (X+im)->Im)*0.5;

(X+ip2)->Im = ((X+i)->Re - (X+im)->Re)*(-0.5);

(X+ipm)->Im = - (X+ip2)->Im;

(X+im)->Re = (X+i)->Re = ((X+i)->Re + (X+im)->Re)*0.5;

(X+i)->Im = ((X+i)->Im - (X+im)->Im)*0.5;

(X+im)->Im = - (X+i)->Im;

}

(X+N*3/4)->Re = (X+ND4)->Im;

(X+ND2)->Re = X->Im;

(X+ND2+ND4)->Im = (X+ND2)->Im = (X+ND4)->Im = X->Im = 0;

// Complete the last FFT stage

// First step: calculate X[0] and X[N/2]

TR = (X+ND2)->Re;

TI = (X+ND2)->Im;

(X+ND2)->Re = X->Re - TR;

(X+ND2)->Im = X->Im - TI;

X->Re = X->Re + TR;

X->Im = X->Im + TI;

// Other steps

UR = SR = cos(MATH_PI/ND2);

UI = SI = -sin(MATH_PI/ND2);

ip = ND2+1;

for (i=1;i<ND2;i++,ip++) {

TR = (X+ip)->Re*UR - (X+ip)->Im*UI;

TI = (X+ip)->Re*UI + (X+ip)->Im*UR;

(X+ip)->Re = (X+i)->Re - TR;

(X+ip)->Im = (X+i)->Im - TI;

(X+i)->Re = (X+i)->Re + TR;

(X+i)->Im = (X+i)->Im + TI;

(X+i)->Re = (X+i)->Re + (X+ip)->Re*UR - (X+ip)->Im*UI;

(X+i)->Im = (X+i)->Im + (X+ip)->Re*UI + (X+ip)->Im*UR;

TR = UR;

UR = TR*SR - UI*SI;

UI = TR*SI + UI*SR;

}

}}

#ifdef __cplusplus

#endifWINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*)

{

return 1;

}


СОДЕРЖАНИЕ Введение 1. Анализ предметной области 1.1 Задачи системы ограничения доступа 1.2 Технические средства формирования аудиоданных 1.3

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ