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

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

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 10.11.2013
Размер файла 2,8 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

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

Производственные здания, сооружения, оборудование, технологические процессы должны отвечать всем требованиям, обеспечивающим здоровые и безопасные условия труда. В первую очередь эти требования должны выполняться проектировщиками. Согласно санитарным нормам СН 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,00750,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 - высота помещения;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

h = H - hc - hp , (5.7)

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

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

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

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

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

(5.8)

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

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

(5.9)

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

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

(5.10)

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

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

(5.11)

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

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

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

Получаем:

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

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

- от стен - 50%;

- от пола - 10%.

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

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

, (5.12)

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

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

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

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

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

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

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

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

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

(5.13)

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

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

(5.14)

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

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

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

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

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

(5.15)

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

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

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

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

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

(5.16)

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

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

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

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

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

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

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

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

(5.17)

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

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

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

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

(5.18)

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

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

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

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

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

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

(5.19)

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

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

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

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

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

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

(5.20)

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

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

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

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

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

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

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

, (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- Штатное расписание подразделения

Профессия

Численность, чел.

Оклад, руб.

Инженер-системотехник

1

6000

Оператор ЭВМ

1

4000

Итого

2

10000

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

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

№ п/п

Перечень работ

Коды работ

Продолжительность работ, дни

1.

Карта технического уровня

1, 2

13

2.

Техническое предложение.

2, 3

1

3.

Анализ и коррекция имеющейся проектной документации

3, 4

4

4.

Поиск оптимальных настроек подсистемы САПР

4, 5

2

5.

Технический проект.

5, 6

2

6.

Рабочая документация.

6, 7

8

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

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;

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

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

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

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

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

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

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

, (6.4)

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

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

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

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

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

, (6.5)

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

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

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

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

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

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

№ п/п

Наименование технических средств

Количество

Цена

Стоимость

1

Компьютер на базе процессора Pentium 4 2.4 Гц

1

35469

35469

2

Компьютер на базе процессора Pentium 4 3 Гц

1

37668

37668

5

Принтер HP LaserJet 1200

1

10880

10880

6

Источник бесперебойного питания ИБП 1000 Powerman

1

3424

3424

7

Источник бесперебойного питания UPS BACK 500 AP PCM

1

1504

1504

8

Электронный замок

1

1000

1000

9

Итого

9

88945

Таким образом капитальные затраты на основные средства вычислительной техники К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,4

0,42

1700

Компьютер на базе процессора Pentium 4 3

0,42

1700

Принтер HP LaserJet 1200

0,12

950

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

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

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

, (6.9)

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

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

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

Ксс - коэффициент, учитывающий начисления на заработную плату (отчисления на социальные нужды), равный 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%), руб.;

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

25,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 - Примерная технологическая карта установки аналогичной системы

Этапы проектирования

Количество листов

Норма времени

Карта технического уровня

30

5

Техническое предложение

Пояснительная записка

50

4

Ведомость

40

0,5

Технический проект

Структурные схемы

20

4

Пояснительная записка

100

4

Ведомость

40

0,5

Рабочая конструкторская документация

Принципиальные схемы

15

10

Структурные схемы

40

7

Конструкторская документация

Монтажный чертеж

15

10

Электрическая схема

10

5

Ведомость покупных изделий

20

0,5

Ведомость спецификаций

10

0,4

Технические условия

50

3,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. Стоимость проекта

руб.

154517

173247

89

2. Предпроизводственные затраты

руб.

12883

3. Единовременные затраты

руб.

88945

110085

80

4. Стоимость разработки проекта

руб.

14231

20047

70

5. Годовая стоимостная оценка затрат

руб.

154517

173247

89

6. Экономический эффект

руб.

53514

6.10 Выводы

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

ЗАКЛЮЧЕНИЕ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ПРИЛОЖЕНИЕ А

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

Модуль uMain.

unit uMain;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

Buttons, ExtCtrls, jpeg, StdCtrls, Db, ADODB, Grids, DBGrids, DBCtrls,comobj;

type

TfoMain = class(TForm)

SpeedButton1: TSpeedButton;

SpeedButton2: TSpeedButton;

SpeedButton3: TSpeedButton;

SpeedButton4: TSpeedButton;

SpeedButton5: TSpeedButton;

Image1: TImage;

SpeedButton6: TSpeedButton;

Memo1: TMemo;

SpeedButton7: TSpeedButton;

ADOConnection1: TADOConnection;

procedure SpeedButton4Click(Sender: TObject);

procedure SpeedButton7Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure SpeedButton1Click(Sender: TObject);

procedure SpeedButton2Click(Sender: TObject);

procedure SpeedButton3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

procedure RunSQL(q:TADOquery;close:boolean);

var

foMain: TfoMain;

ts:tstrings;

implementation

uses uConfig, uNewUser, UCompare, USound;

{$R *.DFM}

procedure RunSQL(q:TADOquery;close:boolean);

begin

try

q.Open;

except

on EOleException do q.Active:=false;

on EDatabaseError do q.Active:=false;

end;

if close then q.Active:=false;

// q.SQL.SaveToFile('db\1.sql');

end;

procedure TfoMain.SpeedButton4Click(Sender: TObject);

begin

if not assigned(foconfig) then

begin

Application.CreateForm ( Tfoconfig, foconfig );

end;

foconfig.show;

end;

procedure TfoMain.SpeedButton7Click(Sender: TObject);

begin

halt;

end;

procedure stringtobyte(s:string;var b:array of integer);

var x:integer;

begin

for x:=0 to 127 do b[x]:=ord(s[x+1]);

end;

procedure TfoMain.FormCreate(Sender: TObject);

var f:file;

Energ1:array[1..128]of integer;

Energ2,Energ3 : array[1..128]of byte;

x:integer;

v:array [0..127]of integer;

s:string;

begin

fomain.DoubleBuffered:=true;

end;

procedure TfoMain.SpeedButton1Click(Sender: TObject);

begin

if not assigned(fonewuser) then

begin

Application.CreateForm ( Tfonewuser, fonewuser );

end;

fonewuser.show;

end;

procedure TfoMain.SpeedButton2Click(Sender: TObject);

begin

if not assigned(form2) then

begin

Application.CreateForm ( Tform2, form2 );

end;

form2.show;

end;

procedure TfoMain.SpeedButton3Click(Sender: TObject);

begin

if not assigned(analizeform) then

begin

Application.CreateForm ( Tanalizeform, analizeform );

end;

analizeform.show;

end;

end.

Модуль Spectr

unit uSpectr;

interface

uses Sysutils,graphics,extctrls,windows;

procedure GetSpectr(filename:string;var spectr:array of integer);

function calc_fxy(energ11,energ21:array of integer):real;

implementation

type arr=array[0..10000]of byte;

sampl=array[0..1024]of real;

samplr=array[0..1024]of real;

comp=record re,im:real;end;

procedure FFTR(buf:array of comp);stdcall; external 'fftc.dll';

const k=0.5;

type pikrec=record

pos:integer;

lpc:integer;

l:integer;

end;

var left:array[0..200000]of smallint;

buf:array[0..200000]of byte;

procedure savevsd(s:string;energ:array of integer);

var f:file;

x:integer;

begin

assignfile(f,s);

rewrite(f,1);

blockwrite(f,energ,sizeof(energ),x);

closefile(f);

end;

function calc_fxy(energ11,energ21:array of integer):real;

var mx,my,s1,s2,s3:real;

i:integer;

begin

mx:=0;my:=0;

for i:=0 to 127 do

begin

mx:=mx+energ11[i];

my:=my+energ21[i];

end;

mx:=mx/128;

my:=my/128;

s1:=0;s2:=0;s3:=0;

for i:=0 to 127 do s1:=s1+((energ11[i]-mx)*(energ21[i]-my));

for i:=0 to 127 do s2:=s2+(sqr(energ11[i]-mx));

for i:=0 to 127 do s3:=s3+(sqr(energ21[i]-my));

s2:=sqrt(s2);

s3:=sqrt(s3)*s2;

if s3<>0 then result:=abs(s1/s3) else result:=0;

end;

function I0(X:real):real;

var Y, T, E, DE, SDE:real;

i:integer;

begin

Y := X/2;

T := 0.0000000001;

de:= 1;

E :=DE;

for i:=1 to 50 do

begin

DE := de*Y / i;

SDE := DE * DE;

E := e+SDE;

if (E*T-SDE>0) then break;

end;

result:= E;

end;

procedure KaiserWindow(source:sampl; length,b:integer;var result:sampl);

var i, k:integer;

iI0b:real;

h:real;

begin

iI0b:=1.0 / I0(b);

k := -(Length shr 2);

for i:=1 to Length shr 2 do

begin

inc(k);

h := I0(b*sqrt(1-sqr(2.0*k/(Length-1)))) * iI0b;

source[i]:=source[i] *h;

source[Length-1-i] := source[Length-1-i]*h;

end;

for i:=1 to length do result[i]:=source[i];

end;

procedure Liftering(source:sampl; length,b:integer;var result:sampl);

var i:integer;

w,xout:real;

begin

for i:=1 to Length do

begin

xout:=source[i]-0.9*w;

w:=0.54-0.46*cos(2*pi*(i-6)/179);

source[i]:=xout*w;

end;

for i:=1 to length do result[i]:=source[i];

end;

procedure Fft(source:sampl; length,step:integer;var result:sampl);forward;

procedure Fft(source:sampl; length,step:integer;var result:sampl);

var f,t:integer;

begin

for f:=1 to Length do

begin

Result[f]:=0.0;

for t:=1 to Length do

Result[f]:=Result[f]+ Source[t]*(-cos(PI*f*t/Length/2));

end;

end;

procedure GetSpectr(filename:string;var spectr:array of integer);

var step :integer;

sImage :array[1..500,1..128]of smallint;

x,y,n :integer;

energ :array[0..128]of integer;

bufc :array [0..512]of comp;

f :file;

chastota :sampl;

l :integer;

begin_crop,end_crop :integer;

max,min :integer;

xout,dz :real;

I :Integer;

xx :integer;

begin

assignfile(f,filename);

reset(f,1);

for n:=1 to 200000 do buf[n]:=0;

for n:=1 to 200000 do left[n]:=0;

seek(f,58);

BlockRead(F, buf, filesize(f), x);

end_crop:=x-100;

closefile(f);

for x:=1 to 128 do energ[x]:=0;

x:=1;

begin_crop:=200;

max:=0;

min:=255;

for l:=begin_crop to end_crop do if buf[l]<>0 then break;

begin_crop:=l;

for l:=begin_crop to end_crop do if buf[l]<min then min:=buf[l];

for l:=begin_crop to end_crop do

left[l]:=round((buf[l]+buf[l-1]+buf[l+1])/3)-128;

for l:=begin_crop to end_crop do

begin

xout:=LEFT[l]-0.90*dz;

dz:=left[l];

LEFT[l]:=round(xout*(0.54-0.46*cos((l-6)*6.2832/179)));

end;

repeat

inc(begin_crop);

until abs(left[begin_crop]-left[begin_crop+1])>4;

repeat

dec(end_crop);

until abs(left[end_crop]-left[end_crop-1])>4;

begin_crop:=begin_crop+512;

end_crop:=end_crop-512;

for l:=begin_crop to end_crop do

begin

if left[l]>max then max:=left[l];

end;

step:=round((end_crop-begin_crop)/500);

for x:=1 to 500 do for y:=1 to 128 do

begin

sImage[x,y]:=0;

end;

step:=64;

for y:=1 to 128 do energ[y]:=0;

//-=-=-=-=-= Analize

for x:=1 to 500 do

begin

if x*step+begin_crop< end_crop then begin

for i:=0 to 511 do

begin

bufc[I].Re:= left[i+x*step+begin_crop];

bufc[I].Im:=0;

end;

FFTR(bufc);//----

for i:=128 to 256 do chastota[i-128]:=(sqrt(sqr(bufc[I].Im)+sqr(bufc[I].re)));

Liftering(chastota,128,5,chastota);

KaiserWindow(chastota,128,10,chastota);

//////////////////////

for y:=1 to 125 do

begin

l:=abs(round(chastota[y]));

energ[y]:=energ[y]+l;

if l>255 then l:=255;

if l<0 then l:=0;

end;

end;

end;

//-=-=-=-=-=-=- end analize

energ[126]:=0;

for x:=1 to 125 do

begin

if energ[x]>y then y:=energ[x];

end;

y:=round(y/128);

xx:=1;

if y>0 then

begin

for xx:=1 to 128 do ;//spectr[xx]:=round(energ[xx]/y);

for xx:=0 to 127 do spectr[xx]:=round(energ[xx+1]/y);

for xx:=1 to 128 do energ[xx]:=round(energ[xx]/y);

end;

SaveVSD(ChangeFileExt(filename,'.vsd'),energ);

end;

end.

Модуль LoginSecure

unit uInMain;

interface

uses

Windows, 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;

type

TfoInMain = class(TForm)

Panel2: TPanel;

SpeedButton7: TSpeedButton;

Panel3: TPanel;

Label1: TLabel;

Label2: TLabel;

Image2: TImage;

Image5: TImage;

Edit2: TEdit;

Label7: TLabel;

Label9: TLabel;

Panel1: TPanel;

Image1: TImage;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

ADOConnection1: TADOConnection;

ADOQuery1: TADOQuery;

Edit1: TEdit;

Image3: TImage;

Timer1: TTimer;

procedure SpeedButton7Click(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure FormCreate(Sender: TObject);

procedure Image5MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure Image5MouseUp(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure SpeedButton7MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure Timer1Timer(Sender: TObject);

private

FCapture: TSoundCaptureStream;

FWaveStream: TWaveStream;

procedure CaptureFilledBuffer(Sender: TObject);

public

{ Public declarations }

end;

type

comp=record re,im:real;end;

const

GridSize = 63;

type TGLCoord = Record

X, Y, Z : glFloat;

end;

var

h_Wnd : HWND; // Global window handle

h_DC : HDC; // Global device context

h_RC : HGLRC; // OpenGL rendering context

keys : Array[0..255] of Boolean; // Holds keystrokes

FPSCount : Integer = 0; // Counter for FPS

ElapsedTime : Integer; // Elapsed time between frames

// Textures

WaterTexture : glUint;

// User vaiables

RainInterval : Integer;

Viscosity : glFloat;

Position : Array[0..GridSize, 0..GridSize] of glFloat;

Velocity : Array[0..GridSize, 0..GridSize] of glFloat;

Vertex : Array[0..GridSize, 0..GridSize] of TglCoord;

Normals:array [0..GridSize, 0..GridSize] of TglCoord;

xAngle, yAngle : glFloat;

var

foInMain : TfoInMain;

Needformat,i,x,y : integer;

bufc : array [1..512]of comp;

energ,Energ1,Energ2,Energ3 : array[1..128]of integer;

CurSampl : integer=0;

k1,k2,l3,max:integer;

wndClass : TWndClass; // Window class

dwStyle : DWORD; // Window styles

dwExStyle : DWORD; // Extended window styles

dmScreenSettings : DEVMODE; // Screen settings (fullscreen, etc...)

PixelFormat : GLuint; // Settings for the OpenGL rendering

h_Instance : HINST; // Current instance

pfd : TPIXELFORMATDESCRIPTOR; // Settings for the OpenGL window

DC:hdc;

procedure FFTR(buf:array of comp);stdcall; external 'fftc.dll';

implementation

{$R *.DFM}

procedure glBindTexture(target: GLenum; texture: GLuint); stdcall; external opengl32;

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

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

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

function IntToStr(Num : Integer) : String; // using SysUtils increase file size by 100K

begin

Str(Num, result);

end;

procedure DrawWater;

var I, J : Integer;

VectLength : glFloat;

begin

// Calculate new velocity

For I :=2 to GridSize-2 do

For J :=2 to GridSize-2 do

Velocity[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

Position[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 positions

For I:=2 to GridSize-2 do

For J:=2 to GridSize-2 do

Begin

Position[I, J] :=

foInMain.image1.Picture.Bitmap.Canvas.Pixels[round(i*(500/GridSize)),

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

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

End;

// Calculate the new vertex coordinates

For I :=0 to GridSize do

For J :=0 to GridSize do

begin

Vertex[I, J].X :=(I - GridSize/2)/GridSize*5;

Vertex[I, J].Y :=(Position[I, J] / 1024)/GridSize*3;

Vertex[I, J].Z :=(J - GridSize/2)/GridSize*5;

end;

// Calculate the new vertex normals.

// Do this by using the points to each side to get the right angle

For I :=0 to GridSize do

begin

For J :=0 to GridSize do

begin

If (I > 0) and (J > 0) and (I < GridSize) and (J < GridSize) then

begin

with Normals[I, J] do

begin

X := Position[I+1, J] - Position[I-1,J];

Y := -2048;

Z := Position[I, J+1] - Position[I, J-1];

VectLength :=sqrt(x*x + y*y + z*z);

if VectLength <> 0 then

begin

X :=X/VectLength;

Y :=Y/VectLength;

Z :=Z/VectLength;

end;

end;

end

else

begin

Normals[I, J].X :=0;

Normals[I, J].Y :=1;

Normals[I, J].Z :=0;

end;

end;

end;

// Draw the water texture

glBindTexture(GL_TEXTURE_2D, WaterTexture);

For J :=0 to GridSize-1 do

begin

glBegin(GL_QUAD_STRIP);

for I :=0 to GridSize do

begin

glNormal3fv(@Normals[I, J+1]);

glTexCoord2f(I/GridSize, (J+1)/GridSize);

glVertex3fv(@Vertex[I, J+1]);

glNormal3fv(@Normals[I, J]);

glTexCoord2f(I/GridSize, J/GridSize);

glVertex3fv(@Vertex[I, J]);

end;

glEnd;

end;

end;

procedure glDraw();

VAR ps : TPaintStruct;

begin

// BeginPaint(h_wnd, ps);

glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT); // Clear The Screen And The Depth Buffer

glLoadIdentity(); // Reset The View

glTranslatef(0.0,0.2,-4.5);

glRotatef(xAngle, 1, 0, 0);

glRotatef(yAngle, 0, 1, 0);

glColor3f(0.85, 1, 0.85);

DrawWater;

// endPaint(h_wnd, ps);

SwapBuffers(DC);

end;

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

{ Initialise OpenGL }

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

procedure glInit();

var I, J : Integer;

begin

glClearColor(0.9, 0.9, 0.9, 0.0); //Background

glShadeModel(GL_SMOOTH);

glClearDepth(1.0);

glEnable(GL_DEPTH_TEST);

glDepthFunc(GL_LESS);

glBlendFunc(GL_SRC_COLOR, GL_ONE);

glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);

glEnable(GL_TEXTURE_2D);

LoadTexture('reflection.bmp', WaterTexture);

// enable spherical environment maping

// glEnable(GL_BLEND);

glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP);

glTexGeni(GL_T, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP);

glEnable(GL_TEXTURE_GEN_S);

glEnable(GL_TEXTURE_GEN_T);

Viscosity :=0.96;

For I :=0 to GridSize do

begin

For J :=0 to GridSize do

begin

Position[I, J] :=0;

Velocity[I, J] :=0;

end;

end;

xAngle :=15;

yAngle :=60;

end;

function calc_fxy(energ11,energ21:array of integer):real;

var mx,my,s1,s2,s3:real;

i:integer;

begin

mx:=0;my:=0;

for i:=0 to 127 do

begin

mx:=mx+energ11[i];

my:=my+energ21[i];

end;

mx:=mx/128;

my:=my/128;

s1:=0;s2:=0;s3:=0;

for i:=0 to 127 do s1:=s1+((energ11[i]-mx)*(energ21[i]-my));

for i:=0 to 127 do s2:=s2+(sqr(energ11[i]-mx));

for i:=0 to 127 do s3:=s3+(sqr(energ21[i]-my));

s2:=sqrt(s2);

s3:=sqrt(s3)*s2;

if s3<>0 then result:=abs(s1/s3) else result:=0;

end;

procedure TfoInMain.SpeedButton7Click(Sender: TObject);

begin

close;

end;

procedure TfoInMain.CaptureFilledBuffer(Sender: TObject);

var buf:array[0..512]of byte;

bufI:array[0..512]of integer;

i,x,max:integer;

Image:timage;

begin

FWaveStream.CopyFrom(FCapture, FCapture.FilledSize);

FWaveStream.Seek(FWaveStream.Size-512,0);

FWaveStream.read(buf,512);

for i:=1 to 512 do

begin

bufc[I].Re:= buf[i]-128;

bufc[I].Im:=0//left[i+x*step+begin_crop];

end;

fftr(bufc);

if cursampl=1 then image:=image2;

Image.Canvas.Brush.Color:=clwhite;

Image.Canvas.Rectangle(0,0,Image.width,Image.Height);

for i:=128 to 256 do bufi[i-128]:=round((sqrt(sqr(bufc[I].Im)+sqr(bufc[I].re)))/3);

for i:=1 to 128 do if bufi[i]>255 then bufi[i]:=255;

for x:=1 to 4 do for y:=2 to 127 do

bufi[y]:=round((bufi[y-1]+bufi[y]+bufi[y+1])/3);

Image.Canvas.Brush.Color:=clblack;

for i:=1 to 16 do

begin

max:=0;

if (i-1)*8+x<126 then

for x:=1 to 8 do if bufi[(i-1)*8+x]>max then max:=bufi[(i-1)*8+x];

Image.Canvas.Rectangle((i-1)*8,128,i*8-1,128-max);

end;//

end;

procedure TfoInMain.FormClose(Sender: TObject; var Action: TCloseAction);

begin

foInMain.Release;

foInMain := nil;

end;

procedure RunSQL(q:TADOquery;close:boolean);

begin

try

q.Open;

except

on EOleException do q.Active:=false;

on EDatabaseError do q.Active:=false;

end;

if close then q.Active:=false;

q.SQL.SaveToFile('db\1.sql');


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.