Реферат по предмету "Информатика, программирование"


Использование ЭВМ в кардиологии

Введение
В настоящее времяразвитие компьютерной индустрии затронуло разработки и исследования практическиво всех отраслях современной науки. Компьютеры из года в год становятсянеотъемлемой частью и обыденной жизни населения. Постепенное наращиваниекачества, надежности и производимости компьютерного оборудования заставляетразработчиков электронных приборов все чаще и чаще использовать в своихнововведениях микропроцессоры ведущих фирм производителей. Естественно такаяситуация не могла не затронуть медицинскую промышленность. Во всех областяхмедицины исследования на высоком научном уровне немыслимы без применениясовременных средств программного обеспечения. Сейчас ЭВМ применяют практическина всех этапах медицинского обследования: в профилактике, диагностике и терапиизаболеваний.
Основной задачей современной медицины являетсяпредупреждение заболеваний на ранних стадиях развития. Для этогоразрабатывается различная диагностическая аппаратура, которая по сути своейявляется информационно-измерительной системой.
Заболевания сердца – одна из наиболее важных проблеммедицины сегодняшнего дня. Современные исследования сердца не могут обойтисьбез компьютерной техники. Выделяют две основные области исследований, в которыхиспользуются компьютеры: моделирование сердца человека и обработка данныхкардиологических исследований.
Первая – моделирование сердца человека –осуществляется с целью более глубокого проникновения в сущностьфункционирования и строения этого органа. Очевидно, что в отсутствиекомпьютерного обеспечения проблема моделирования едва ли может быть решена.
Вторая область – анализ данных кардиологическихисследований. Цель таких работ – постановка диагноза, составление прогноза илечение. В некоторых случаях обработка кардиологических параметров возможна ивручную, тем не менее, автоматический расчет их с помощью компьютера даетбольшие преимущества и требует меньше усилий. Наиболее важные преимуществаавтоматической обработки данных состоят в следующем:
— обработка данных осуществляется по одной схеме,
— результаты представляются в стандартном виде,
— можно использовать стандартную терминологию.
Некоторые же показатели просто не могут быть полученыпутем ручной обработки, и в этих случаях преимущества компьютера совершенноочевидны.
Различные типы данных, получаемые наиболеераспространенными современными диагностическими методами в кардиологиипредставлены на рисунке 1. При обработке таких данных компьютеры выполняютследующие задачи: ввод данных, хранение, поиск, переработка и выдачаинформации. Переработка информации в свою очередь подразделяется на следующиеподзадачи: фильтрация, распознавание образов, измерение параметров иинтерпретация данных.
/>
Рис. 1. Категории объективных кардиологических данных.
Актуальная проблема сегодняшнего дня – надежность идоступность кардиографических аппаратов. Современем микроконтроллеры ведущих фирм производителей стали дешевле исоответственно более доступны для внедрения в портативные аппараты диагностикисердца. Здесь все большая и большая нагрузка ложится на программноеобеспечение, постепенно вытесняя из приборов ранее аппаратно реализуемыефункции.
Подбор методовфильтрации и тестирование программных фильтров, разработанные в рамках данногодипломного проекта, удобно проводить отдельно, используя вспомогательныепрограммы разработанные на персональной ЭВМ.
Наиболеераспространенным и в полной мере функциональным языком программирования насегодняшний момент является язык С++, объединяющий в себе возможностистандартизированного языка С и объектно-ориентированного подхода.
В последнее времяширокое распространение получила объектно-ориентированная модель разработкипрограммного обеспечения. Основная идея программирования при таком подходесостоит в разработке классов приложения для определения новых типов,манипулировать которыми так же просто, как и встроенными. Создавая новые типыдля описания предметной области, С++ помогает программисту писать более легкиедля понимания приложения. Классы позволяют отделить детали, касающиесяреализации нового типа, от определения интерфейса и операций, предоставляемыхпользователю. При этом уделяется меньшее внимание мелочам, делающимпрограммирование таким утомительным занятием. Значимые для прикладной программытипы можно реализовывать один раз, после чего использовать повторно [9].Средства, обеспечивающие инкапсуляцию данных и функций, необходимых дляреализации типа, помогают значительно упростить последующее сопровождение иразвитие прикладной программы. Существует механизм, именуемый наследованием,который вводит возможность включать во вновь разрабатываемый класс общиесвойства присущие ранее разработанному классу предку. Например, в трехмернойкомпьютерной графике классы OrthographicCamera (ортогональная камера) и PerspectiveCamera (перспективная камера) обычноявляются производными от базового Camera. Каждый производный от него класс лишь реализует отличия от общейкамеры, предоставляя альтернативный код для унаследования функций членов либовводя альтернативные члены.
Таким образом,используя программные модули, разработанные ранее и обладающие нужным наборомфункций разработчик может добиться максимальной эффективности работы своихмодулей в совокупности с ранее разработанными, как правило поставляемыми вместес интегрированной средой разработки.
Самой распространеннойи наиболее емкой средой разработки сегодня является Microsoft Visual C++. В наши дни Visual C++ лидирует средипродуктов для программирования в среде Windows. Visual C++ — этоинструмент для программирования в среде Widnows, обладающий поистине фантастическими возможностями.Более того, многие разработчики считают Visual C++ самой мощной из всех программ такого класса. На самом делеVisual C++ представляет собой целый набор из множества инструментов,собранных в одном динамическом пакете, готовом к немедленной работе. Сначалапрограммы для Windows приходилось писать на языке С, а нена С++, и получались они большими и сложными. Даже вывод на экран пустого окнатребовал примерно пяти страниц сложного невразумительного кода. Язык С++позволяет хранить большую часть программного кода внутри самостоятельныхобъектов, а это сокращает объем больших программ. Помимо этого, фирма Microsoft разработала библиотеку Microsoft Foundation Classes. MFC –замечательный пакет, состоящий из заранее написанного и готового к работе кода.Например, вместо того чтобы самостоятельно писать программу для работы с новымокном, можно просто воспользоваться классом cWnd из MFC,который выполнит всю работу за вас [2]. Возможности, предоставляемыебиблиотекой классов MFC позволяютконструировать элементы пользовательского интерфейса, легко работать состандартными типами данных языка С, разрабатывать классы, производные отбиблиотечных с добавлением новых функциональных возможностей, разрабатыватьсобственные классы с последующим развитием их функциональности.

Глава 1. Тенденцииразвития компьютерных систем сбора и математической обработки ЭКГ
Электрокардиологическийметод – метод регистрации и анализа биоэлектрических процессов человека иживотных нашел весьма широкое применение в клинической практике,физиологическом эксперименте, авиационной и космической медицине, исследованияхпо физиологии труда и спорта. Столь широкое применение электрокардиологическогометода объясняется тем, что он позволяет получить ценную информацию одеятельностей тканей, органов и систем. Электрическое возбуждениераспространяется в определенном направлении и последовательности, создавая наповерхности тела электрическое поле. Поскольку электропроводные свойства тканейнеоднородны, электрическое поле ассиметрично с разностью потенциалов междуотдельными участками тела. Это свойство положено в основу методаэлектрокардиографии, который регистрирует разность потенциалов путем различныхотведений от поверхности тела, что достигается с помощью приборов –электрокардиографов [1].Процесс получения из ЭКГдиагностической информации называется ЭКГ – анализом. Первые попыткиавтоматизировать этот процесс были предприняты еще в 70-х годах. Ожидалось, чтокроме тех преимуществ, которые дает автоматизация, удастся также повыситьдиагностическую точность анализа благодаря применению статических методов,которые не могут быть использованы при обработке вручную [3]. Результатомразвития различных компьютерных систем явился ЭКГ – анализ. Обычно онвыполняется в четыре этапа:
1. Ввод ЭКГ.
2. Фильтрация ЭКГ.
3. Распознаваниехарактерных элементов ЭКГ и измерение соответствующих параметров.
4. Интерпретация иклассификация ЭКГ.
Информационно-измерительнойсистемой (ИИС) будем называть совокупность функционально связанных устройств ипрограммного обеспечения, реализующую необходимое информационное обслуживаниеобъекта анализа, которое включает в себя сбор, обработку, передачу и хранениеполезной информации.
Запись и ввод ЭКГ.
ЭКГ записывают с помощью прибора, называемогоэлектрокардиографом. До начала 70-х годов ЭКГ отведения записывалисьпоследовательно одно за другим [1]. Лишь позже появились трехканальныеэлектрокардиографы, позволяющие вести запись сразу трех отведений. Современнаярегистрирующая аппаратура может одновременно фиксировать до 12 отведений. Отэлектрокардиографа сигнал передается в АЦП. Здесь аналоговый сигнал ЭКГпреобразуется в цифровую форму и передается в компьютер. Используются различныечастоты дискретизации, но чаще всего 250 и 500 Гц. Эти две величины, согласнотеореме Шеннона, достаточно высоки, поскольку в ЭКГ взрослого человекамаксимальная частота, имеющая диагностическое значение, составляет примерно 80ГЦ. Каждая ЭКГ – кривая после оцифровки передается в компьютер в видепоследовательности чисел {Yi},где Yi – амплитуда (в мкВ) i — ой точки. В современной клинической практике принята следующая системаотведений, считающаяся стандартной. В этой системе съем потенциаловосуществляется с правой руки (R),левой руки (L), левой ноги(F) и шести точек от правого краягрудины до левой среднеподмышечной линии (C1-C6). На основеснятых потенциалов вычисляются отведения:
Основные:
I = L – R
II = F – R
III = F – L

Усиленные:
aVR = R – (L + F)/2
aVL = L –(R + F)/2
aVF = L –(R + L)/2
Грудные с V1 по V6:
Vi =Ci – (R + L + F)/3
При реализации такойсхемы приходится задействовать дополнительный электрод на правую ногу (N), обеспечивающий нулевой потенциал,относительно которого и осуществляется съем потенциалов с основных электродов.При реализации такой схемы отведений достаточно часто используется тот факт,что из приведенных 12 отведений только 8 являются линейно – независимыми другот друга [3]. Это позволяет исключить из схемы аппарата 4 независимыханалоговых тракта, что несколько сокращает его стоимость. Исключаемые отведениявычисляются программным методом следующим образом:
III = II – I
aVR = -(II+I)/2
aVL = (2I –II)/2
aVF =(2II-I)/2
После снятияаналогового сигнала с отведений он соответственно оцифровывается дляпоследующей передачи обработчику, в качестве которого сейчас обычно выступаеткомпьютер [4]. Частота дискретизации Fs на основании теоремы Котельникова – Шеннона должна быть более чем в двараза верхней полосы пропускания. С теоретической точки зрения теорема Шеннонаопределяет минимальное значение частоты дискретизации Fs для сигнала с ограниченной полосой частот (т. е. для сигналасодержащего частоты вплоть до максимальной Fb). Из теоремы следует что при дискретизации, как минимумвдвое большей, чем частота сигнала, гарантируется частотное содержимоеаналогового сигнала и обеспечивается идеальное восстановление оригинальногосигнала по его дискретным значениям, с помощью надлежащей интерполяции [5].
Сейчас достаточночасто применяют частоту оцифровки в 500 Гц, рекомендованную АмериканскойАссоциацией Электрокардиологов [6,7]. Эта величина, согласно теореме Шеннона,достаточно высока, поскольку в ЭКГ взрослого человека максимальная частота,имеющая диагностическое значение, составляет примерно 80 Гц. Однако не следуетдумать, что частоты дискретизации в современных кардиографах ограничиваются 500Гц – на данный момент они достигают нескольких килогерц. В соответствии ссовременными требованиями разрешение по амплитуде у современных приборов должносоставлять не менее 5 мкВ. Высокое амплитудное разрешение необходимо длянекоторых видов обработки кардиокривых, например для анализа позднихпотенциалов, а так же для высококачественного представления электрокардиограммына экране или в твердой копии без применения специальной интерполяции.
Необходимый диапазончастот для электрокардиографа, применяемого для диагностики должен составлять,как минимум от 0.05 и до 120 Гц (по уровню – 3dB). Причем, если к верхнему диапазону частот нет четкообоснованных требований – в разных источниках называются значения от 100 до 250Гц, то со значением нижней частоты пропускания связываются диагностическизначимые ЭКГ критерии. Если значение нижней полосы пропускания невыдерживается, то возможны ошибки автоматизированной диагностики, вплоть допостановки ошибочного заключения [8].
К сожалениюкардиографы, созданные по стандартной схеме обладают рядом недостатков, ккоторым стоит отнести наличие прецизионных резисторов во входном каскаде схемыотведений, сложных инструментальных входных усилителей, крупногабаритныхконденсаторов. Совсем недавно стала доступна элементная база, реализующаяпринцип сигма – дельта цифрового преобразования в одном модуле. Это позволилореализовать электрокардиограф исключительно на сигма – дельта АЦП [10,11],лишенного упомянутых недостатков. К сожалению, такие аппараты до сих поробладают достаточно высокой стоимостью.
Фильтрация ЭКГ.
Под задачей обработкипонимается решение задачи обнаружения и задачи выделения полезной информации. Вобщем случае поступающий сигнал, помимо полезной составляющей, содержит инекоторую помеху, которая мешает правильно выделить информационную компонентусигнала. В этом случае решается задача обработки состоит в том, чтобы наиболееполно исключить помеху, при этом внеся предсказуемые и методологически корректируемыеизменения в полезный сигнал. Цифровая фильтрация и быстрое преобразование Фурье- наиболее широко применяемые способы обработки сигнала.
Первостепенноезначение на стадии диагностики в кардиологии имеет фильтрация сигналов ритмовсердца. Для постановки правильного диагноза врачу необходимо получать данные откардиографа, связанные только с активностью сердечных ритмов. После регистрациии дискретизации сигнала ЭКГ следующим этапом обработки ЭКГ обычно являетсяцифровая фильтрация. Это необходимо для повышения качества записи и подавленияразличных шумов, связанных в основном с мышечным тремором, смещением электродови электрическими помехами. Цифровые фильтры, применяемые в электрокардиографииможно разделить на 3 основные группы – это нерекурсивные фильтры с конечнойимпульсной характеристикой(КИХ), рекурсивные фильтры с бесконечной импульснойхарактеристикой (БИХ), адаптивные фильтры, а также частотные фильтры,производящие фильтрацию сигнала в определенной области частот с использованиемлокального преобразования Фурье [12]. Для борьбы с мышечной наводкой желателенатреморный фильтр низкой частоты (ФНЧ), ограничивающий диапазон входногосигнала где – то до 60-70 Гц, а для борьбы с сетевой наводкой режекторныйфильтр на 50 Гц в условиях отечественных стандартов и на 60 Гц в условияхиностранных сетей. В итоге ПО обработки ЭКГ имеет, как минимум, переключаемыйфильтр верхних частот (ФВЧ) с наибольшей постоянной по времени не менее 3.2секунды, фильтр сетевой наводки и совмещенный с ним или реализованный отдельнопереключаемый ФНЧ.
На рисунках 1.1 и 1.2приведены блок – схемы КИХ и БИХ фильтров соответственно. Элементы Z -1 – просто элемент задержки,который может рассматриваться как регистр, хранящий один отсчет входногосигнала, треугольники – элементы, выполняющие арифметическую операциюумножения, а окружности – сложение.
/>
Рисунок 1.1. СтруктураКИХ фильтра
/>
Рисунок 1.2. СтруктураБИХ фильтра.

Традиционнаяфильтрация обычно применяется тогда, когда полезный сигнал и шум находятся вразных диапазонах частот, причем спектральный характер шума заранее известен.Фильтры обычно проектируются исходя из желаемой АЧХ, которая достигается лишь стребуемой точностью, накладывая определенные ограничения на возможную амплитудуосцилляции в полосе пропускания, ширину переходной области между полосойпропускания и подавления. Для обработки биологических сигналов большую важностьимеет линейная, а если это возможно, то и нулевая ФЧХ. Если фильтр имеетнелинейную ФЧХ, то его работа будет вносить нелинейные искажения в сигнал,которые могут сказаться при последующем анализе сигнала. Требование линейностиФЧХ для КИХ фильтров выливается в требование симметрии коэффициентов фильтраотносительно середины. Существует достаточно большое количество методик расчетакак КИХ, так и БИХ фильтров [5]. Расчетная среда Matlab предоставляет широкий спектр возможностей для расчетафильтров. Расчеты фильтров для применения в детекторе подачи импульсадефибриляции будут приведены в приложении.
Когда не доступна информация о частотном составешума, или шум имеет известный, но переменный состав, применяется адаптивнаяфильтрация (рис 1.3).
/>
Рис 1.3. Блок-схема адаптивногофильтра

Записанный сигнал d(t) представляет из себя сумму«чистого» не зашумленного сигнала s(t) и шума n(t). u(t) — сигнал, так илииначе связанный с входным шумом. Адаптивный фильтр вычленяет из входногосигнала составляющие, кореллирующие с шумом и автоматически корректирует своипараметры, исходя из входного сигнала. Выход адаптивного фильтра y(t) — этооценка составляющей сигнала, кореллирующей с шумом. Таким образом, ошибка e(t)= s1= d(t) — y(t) — это оценка составляющей сигнала, несвязанной с шумом.Следовательно, главной задачей адаптивного фильтра является минимизацияE[(n(t)-y(t))2]. Адаптивные фильтры могут быть классифицированы по следующимпараметрам [15]:
— качеству фильтрации;
— алгоритму, корректирующему параметры фильтра;
— структуре фильтра.
Большим преимуществом адаптивных фильтров являетсябольшая гибкость по сравнению с КИХ и БИХ фильтрами, а также большая ихэффективность.
Еще одним важным этапом в предварительной обработкеЭКГ является коррекция изолинии для того, чтобы записанная кардиограмма былапригодна для анализа врачом. Простейший ФВЧ фильтр часто неприменим, так какизолиния может осциллировать с достаточно большими частотами. Для того, чтобыфильтр, реализованный с достаточно малым числом коэффициентов, был способенкачественно отфильтровать сигнал, он должен обладать нижней полосой пропусканияв 0.05 Гц, с подавлением -3 ДБ. Такие характеристики фильтра будут оказыватьвлияние на низкочастотные компоненты ЭКГ, такие как ST сегмент. Поэтомузачастую рекомендуется использовать более изощренные методы для коррекцииизолинии. Для этого пользуются известными характеристиками ЭКГ сигнала и, вчастности тем, что период до Р-волны и после Т волны имеют один и тот жеэлектрический потенциал во всех циклах ЭКГ. Следовательно, изолиния должнапроходить через эти точки. Таким образом, кривая изолинии получается путеминтерполяции этих изоэлектрических участков полиномами различного порядка илидаже неполиномиальными функциями, например сплайнами. Полученная таким образоминтерполированная кривая изолинии вычитается из исходного сигнала, устраняя темсамым блуждание изолинии.
Выделение иизмерение параметров элементов ЭКГ
Одной из самых важныхзадач, решаемых программными комплексами ЭКГ диагностики, является определение,измерения и классификация характерных элементов ЭКГ. Обычно характерный видрассматриваемого элемента ЭКГ хорошо известен. В настоящее время существуетмножество подходов к выделению и измерению параметров ЭКГ. Перед тем, какперейти к рассмотрению основных методик, рассмотрим подробнее структурукардиоцикла. На ЭКГ сердечный цикл обычно представляется в виде трехкомплексов. Р – комплекс соответствует деполяризации предсердий, QRS – деполяризации желудочков, T – их реполяризации. Реполяризацияпредсердий на ЭКГ не проявляется. Каждый комплекс состоит из несколькихразнонаправленных пиков (смотреть рис.1.4). Число пиков (зубцов) в каждомкомплексе неодинаково в разных отведениях и у разных пациентов. Р и Т комплексыобычно содержат один или два зубца, а QRS – комплекс — от одного до семи. На представленном рисунке введеныследующие обозначения:
1 – РР – интервал; 2 –PR – сегмент; 3 – ST – сегмент;
2 – Р – комплекс; 5 – QRS – комплекс; 6 – QT – интервал;
7 – PR – интервал; 8 – RR – интервал; 9 – Т – комплекс

/>
Рис. 1.4. Сердечный цикл и егохарактерные элементы
Характерные элементы ЭКГ, которые необходимораспознать — это комплексы, сегменты (расстояние между зубцами) и интервалы. Кпараметрам ЭКГ, подлежащим измерению, относятся высота зубцов и длительностькомплексов, а также величина сегментов и интервалов. Таким образом, необходимовыполнять два типа измерений: временные и амплитудные. В настоящее времясуществует несколько методик распознавания элементов ЭКГ. Одной из групп такихметодик является группа структурных методов, основывающихся на априорном знаниихарактеристик определяемого элемента ЭКГ. Обычно алгоритмы, принадлежащие кэтой группе, являются эвристическими. Естественно, что характеристики одних итех же элементов ЭКГ могут меняться от цикла к циклу. Структурные методыпытаются найти такие структурные особенности элемента ЭКГ, которые практическине изменяются от цикла к циклу, применяя для этого специальным образомподобранные фильтры, пороговые детекторы. Дополнительно также производитсяанализ длительностей комплексов, процедура фильтрации ложных пиков и т.д.Фактически основной работой, положившей начало этой группе алгоритмов, была[16], от которой в настоящее время получено множество производных методик, адаптированныхдля определения различных элементов ЭКГ. К другой группе методик принадлежаталгоритмы, основывающиеся на принципе сравнения искомого элемента ЭКГ с некимполученным специальным образом шаблоном. Такой шаблон обычно получается путемусреднения выровненных элементов, определенных ручным способом. Далее, исходяиз доверительной вероятности определения, определяется максимальноесреднеквадратичное отклонение, при котором классифицируемый элемент все ещепринадлежит к группе шаблона. Фактически осуществляется потоковый просмотрисходного сигнала при использовании определенного окна и, если выделенныйсегмент не выходит за границы максимального СКО, то он считается распознаннымкак элемент, принадлежащий группе шаблона. Самым важным моментом является выбормаксимально допустимого СКО от оригинала, так как слишком большое СКО приведетк неверному принятию некорректных комплексов, а слишком малое — к потеререальных.
И, наконец, третьей группой методик анализа являютсясинтаксические алгоритмы, также известные как лингвистические илиграмматические). Исходный анализируемый сигнал разлагается в определеннуюпоследовательность примитивов, определяются специальные правила (грамматики),порождающие то или иной элемент ЭКГ из множества примитивов. Для определения иклассификации комплексов применяются конечные автоматы, распознающие наличиетой или иной грамматики в ЭКГ.
В заключении следует отметь, что обычно всевышеописанные методики применяются в комплексе, что значительно болееэффективно, чем использовать только один конкретный метод в отдельности.
Интерпретация и классификация ЭКГ
Результаты выявления элементов ЭКГ и измерения ихпараметров используются для интерпретации с целью постановки правильногодиагноза. В настоящее время известны две основные категории алгоритмов,применяемых в различных системах автоматической диагностики. К первой категорииотносятся алгоритмы, моделирующие логику врача-диагноста — детерминистический.Естественно, в них используются признаки заболеваний, диагностическая значимостькоторых установлена всем предшествующим опытом медицины. Применительно кзадачам электрокардиографии это связано, в частности, с обязательнымиспользованием параметров медицинского описания электрокардиограммы. Данныетестируют по установленным критериям и получают набор непротиворечивыхзаключений по ЭКГ. Стоит заметить, что сегодня универсальный комплекс такихкритериев отсутствует. Алгоритмы второй категории, как правило, основаны наметодах многомерного статистического анализа и теории вероятностей. При этомотказываются не только от медицинской логики, но и от принятых в медицинеобозначений элементов электрокардиограммы и способов измерений.
Обе названные категории алгоритмов имеют своидостоинства и недостатки. Безусловное достоинство медицинских алгоритмов — ввозможности их быстрой реализации. Это определяется тем, что они концентрируютопыт диагностики, накопленный в медицине, и не требуют предварительныхобучающих выборок. Предел диагностических возможностей таких алгоритмовограничивается современным уровнем развития медицины, а качество конкретныхалгоритмов компетентностью лиц, их составляющих.
Достоинством немедицинских диагностических алгоритмовявляется то, что они могут использовать любые параметры описанияэлектрокардиограммы. Благодаря этому им оказываются доступны резервыинформации, которые в клинической практике остаются неиспользованными.Недостатком этих алгоритмов является неудобность их обучения. Это представляетсущественные трудности, так как связано с подбором хорошо исследованных больныхс заболеваниями, различать которые должен научиться автомат. Тем не менее,алгоритмы второй категории считаются более перспективными, так доступная имновая информация даст возможность сделать диагностику более эффективной. Внастоящее время ведутся активные работы в разных странах мира в областиразработки алгоритмов классификации ЭКГ. Основными направлениями работ являетсяприменение нейронных сетей, методов частотно-временного преобразования(вейвлет-анализ) и многое другое.
Сжатие ЭКГ данных
Большинство современных программных ЭКГ системыобладают возможностью сжатия данных. Такая возможность необходима дляорганизации эффективного хранения данных, передачи больших объемов данных черезInternet. Некоторые методы сжатия даже включены в стандартыобмена ЭКГ данными [18].
В целом, компрессия данных осуществляется за счетуменьшения избыточности ЭКГ. Все основные методы сжатия данных могут разделенына 2 группы: сжатие с потерями данных и без потерь. Под сжатием с потерямиподразумевается то, что исходный сигнал может быть восстановлен только сзаведомо известной степенью точности. Методы сжатия с потерями используютстандартные методы кодирования избыточности, применяемые для сжатияпроизвольных данных. Эти методики обычно используют особенности ЭКГ сигнала:периодичность, наличие участков практически постоянного потенциала. Чтобыизвлечь из этого пользу, сигнал зачастую дифференцируется, генерируетсяусредненный шаблон периодического участка(обычно QRS комплекс),который вычитается из сигнала на каждом периоде. Все это делается для того,чтобы впоследствии как можно эффективнее применить операцию кодирования безпотери информации. Сжатие с потерями обычно происходит по стандартной схеме.Вначале используется некоторое дискретное преобразование сигнала, полученныекоэффициенты дополнительно квантуются и далее применятся стандартная процедурасжатия квантованных коэффициентов без потерь. В настоящее время в качестведискретных преобразований широко применяются дискретное преобразование Фурье(ДПФ), дискретное косинусное преобразование, преобразование Карунена-Леве, атакже вейвлет-преобразование. [19]. Следует заметить, что единственный шагкодирования, на котором осуществляется потеря данных, — это процедураквантования.
Эффективность компрессии определяется коэффициентомсжатия, который обычно тем больше, чем выше величина потерь данных, и чембольше время, затраченное на кодирование информации. Величину, характеризующуюпотерю данных, обычно выражают в терминах среднеквадратичного отклонения,представленного в процентах:
/>
Итак, в этой главе был проведен обзор функциональныхвозможностей систем сбора и математической обработки ЭКГ информации и основныхметодик ЭКГ, применяемых в настоящее время в клинической практике. Все методикиЭКГ – анализа, за исключением этапа интерпретации и классификации ЭКГ,описанные в этом разделе так или иначе используются при построении программы,предлагаемой на рассмотрение.
Перейдем теперь к рассмотрению основных принциповпостроения и использования предлагаемой нами программы тестирования иоптимизации программных фильтров для определения моменты подачи импульса вдефибрилляторе ДФР-2.
/>/>/>/>/>/>/>/>/>/>/>/>/> 
Глава 2.Основные принципы и методы объектно-ориентированного программирования
Проблемы при решении сложных задач
Проблемы, которые мы пытаемся решить с помощьюразрабатываемого программного обеспечения, часто неизбежно содержат сложныеэлементы, к которым предъявляется множество различных, нередко противоположныхтребований.
Основная задача разработчиков состоит в созданиииллюзии простоты, защищающей пользователей от сложности описываемого предметаили процесса. Размер программы отнюдь не входит в число ее достоинств. Внутриприкладной программы могут существовать сотни, и даже тысячи переменных. Как жемы можем изменить эту ситуацию? Для этого необходимо изучить структуру сложныхсистем. Если объединить понятия структуры классов и структуры объектов со всемипризнаками сложных систем, то получим, что практически все сложные системыможно представить одной канонической формой, представленной ниже на рис. 2.1.
/>
Рис. 4.1. Каноническая форма сложной декомпозиции.
В самом деле, правильная декомпозиция непосредственноопределяет сложность, присущую программной системе, обеспечивая разделениепространства состояний системы. На рис. 2.2 мы разделили подсистему, выбрав вкачестве критерия декомпозиции принадлежность ее элементов к различнымабстракциям данной предметной области.

/>
Рис. 2.2. Объектно-ориентированная декомпозиция.
/>/>/>/>/>/>/>/>/>/>/>/>/>Объектный подход
В основе объектно-ориентированного проектирования(ООП) лежит объектный подход. Основными принципами являются: абстрагирование,ограничение доступа, модульность, иерархичность, типизация, параллелизм иустойчивость. Эти принципы не новы, однако, именно в объектном подходе ониобъединены для решения общей задачи.
Объектно-ориентированное проектирование принципиальноотличается от традиционных подходов структурного проектирования, так какподразумевает другой подход к процессу декомпозиции, а получаемый программныйпродукт по архитектуре в значительной степени выходит за рамки традиционныхпредставлений.
Начиная с FORTRAN IIи позднее, для решения задач программирования на более высоком уровне сталивозникать новые существенные механизмы структурирования. Это привело креализации механизма раздельной компиляции модулей, которые были чем-тобольшим, чем случайный набор данных и подпрограмм.

/>
Рис. 2.3. Архитектура языков программированиятретьего поколения.
Объектный подход может быть осуществлен на болеевысоких уровнях абстракций. Группы абстракций в больших системах могутпредставляться в виде многослойной структуры. Группы объектов существуют накаждом уровне и тесно взаимодействуют между собой. Внутри каждой группы мывидим то же взаимодействие.
/>
Рис. 2.4. Архитектура программных систем большойсложности на основе объектных и объектно-ориентированных языковпрограммирования.

Методы структурного проектирования имели своей цельюупростить процесс разработки сложных систем, на основе алгоритмическогоподхода. Методы объектно-ориентированного проектирования созданы в свою очередьдля помощи разработчикам, использующим мощные выразительные средства объектногои объектно-ориентированного программирования, основанного на описании классов иобъектов. Смысл такого подхода состоит в том, что он позволяет применитьобъектную ориентацию для решения всего круга проблем, связанных со сложнымисистемами.
Объектно-ориентированное программирование (ООП) — этометодология программирования, которая основана на представлении программы ввиде совокупности объектов, каждый из которых является реализациейопределенного класса, а классы образуют иерархию на принципах наследуемости.
В данном определении можно выделить три части:
-ООП использует в качестве элементов конструкцииобъекты, а не алгоритмы.
-Каждый объект является реализацией какого-либоопределенного класса.
-Классы организованы иерархически.
Программа будет объектно-ориентированной только присоблюдении этих трех требований.
/>/>/>/>/>/>/>/>/>/>/>/>/>Объектно-ориентированное проектирование
Методы программирования подразумевают правильное эффективноеиспользование механизмов языков программирования. Методы проектирования,напротив, основное внимание направляют на структурирование сложных систем.
Определим объектно-ориентированное структурированиеследующим образом:
Объектно-ориентированное структурирование (ООС)– этометодология проектирования, соединяющая в себе процесс объектной декомпозиции иприемы представления как логической и физической, так статической идинамической моделей проектируемой системы.
В данном определении содержатся две важные части:
-OOС ведет к объектно-ориентированной декомпозиции
-Используется многообразие представления моделей, отражающихлогическую и физическую системы.
/>/>/>/>/>/>/>/>/>/>/>/>/>/>/>Объектно-ориентированныйанализ
Объектно-ориентированный анализ (ООА) направлен насоздание моделей, более близких к реальности, с использованиемобъектно-ориентированного подхода; это методология, при которой требованияформируются на основе понятий классов и объектов, составляющих словарьпредметной области.
На результатах ООА формируются модели, на которыхосновывается ООС; ООС в свою очередь создает основу для окончательнойреализации системы с использованием методологии ООП.
/>/>/>/>/>/>/>/>/>/>/>/>/>Способы программирования и компоненты объектного подхода
Каждый стиль программирования имеет своюконцептуальную основу, требует различного подхода к решаемой задаче. Дляобъектно-ориентированного стиля концептуальная основа состоит в объектномподходе. Этому подходу соответствуют четыре главных элемента:
-абстрагирование
-ограничение доступа
-модульность
-иерархия
Эти элементы являются главными в том смысле, что безлюбого из них подход не будет объектно-ориентированным. Кроме главных имеютсяеще три дополнительных элементов:
-типизация
-параллелизм
-устойчивость
Эти элементы являются полезными, но не обязательнымив объектном подходе.
Рассмотрим эти элементы более подробно.
Абстрагирование
Абстрагирование является одним из главных способов,используемых для решения сложных задач. По одному из определений это упрощенноеописание или изложение системы, при котором одни свойства и детали выделяются,а другие опускаются. Хорошей является такая абстракция, при которойподчеркиваются существенные для рассмотрения и использования детали, иопускаются те, которые на данный момент несущественны или отвлекают внимание.
Определение абстракции: Абстракция – это такиесущественные характеристики некоторого объекта, которые отличают его от всехдругих видов объектов и, таким образом четко определяют особенности данногообъекта с точки зрения дальнейшего рассмотрения и анализа.
Абстрагирование концентрирует внимание на внешнихособенностях объекта и позволяет отделить самые существенные особенностиповедения от деталей их осуществления. Полезным является еще один принцип,называемым принципом наименьшей выразительности, по которому абстракция должнаохватывать лишь самую суть объекта, не больше, но и не меньше.
Существует целый спектр абстракций, начиная собъектов, которые приблизительно соответствуют сущности предметной области,кончая объектами, не имеющими реальных аналогий в жизни:
-Абстракция сущности объекта — объект представляетсобой модель существенных сторон предметной области.
-Абстракция поведения – объект состоит из обобщенногомножества операций, каждая из которых выполняет определенную функцию
-Абстрагирование в виде виртуальной машины – объектобъединяет группы операций виртуальной машины, которые используются либо дляуправления объектом, либо соответствуют функциям нижнего уровня
Произвольная абстракция – объект включает в себянабор независимых по отношению друг к другу операций
Наиболее интересны для нас абстракции сущностиобъектов, так как они соответствуют словарю предметной области.
Все абстракции обладают как статическими, так идинамическими свойствами. Например, объект-файл требует определенного объемапамяти, имеет имя и содержание. Эти атрибуты являются статическими. Конкретныезначения каждого из перечисленных свойств являются динамическими, изменяющимисяв процессе использования объекта: файл можно изменять свои размеры, имя исодержимое.
Ограничение доступа
Созданию абстракции какого-либо объекта должныпредшествовать определенные решения о способе ее реализации. Выбранный способреализации должен быть скрыт и защищен для большинства объектов-пользователей(обращающихся к данной абстракции). Ограничение доступа позволяет вносить впрограмму изменения, сохраняя ее надежность и минимизируя затраты на этотпроцесс.
Абстрагирование и ограничение доступа являютсявзаимодополняющими операциями: абстрагирование фокусирует внимание на внешнихособенностях объекта, а ограничение доступа – или иначе защита информации – непозволяет объектам пользователям различать внутреннее устройство объекта.Практически, в описании класса существуют две части: интерфейс и реализация. Интерфейсотражает внешнее проявление объекта, создавая абстракцию поведения всехобъектов данного класса. Внутренняя реализация описывает механизмы достиженияжелаемого поведения объекта. Принцип такого различения интерфейса и реализациисоответствует разделению по сути: в интерфейсной части собрано все, чтокасается взаимодействия данного объекта с любыми другими объектами; реализацияскрывает от других объектов все детали, не имеющие отношения к процессувзаимодействия объектов.
Ограничение доступа – это процесс защиты отдельныхэлементов объекта, не затрагивающий существенных характеристик объекта какцелого.
В языке С ++ элементы объекта могут бытьобщедоступны, обособлены или защищены. Общедоступная часть “видима” для всехобъектов, обособленная “скрыта” от других объектов, а защищенная “скрыта” отвсех объектов.
Модульность
Разделение программы на фрагменты позволяет частичноуменьшить ее сложность. Однако гораздо важнее тот факт, что разделениепрограммы улучшает проработку ее частей. Это свойство особенно полезно, когдапрограмма состоит из огромного количества классов. Итак,
Модульность – это разделение программы на отдельнокомпилируемые фрагменты, имеющие между собой средства сообщения.
В большинстве языков ведется разделение интерфейснойчасти и реализации. Таким образом, модульность и ограничение доступа идутнеразрывно друг от друга. В традиционном структурном проектировании модульностьсвязывается прежде всего с логической группировкой подпрограмм на основепринципов взаимной связи и общей логики. В объектно-ориентированномпрограммировании ситуация несколько иная: необходимо физически разделить классыи объекты, составляющие логическую структуру проекта и явно отличающиеся отподпрограмм. Программист должен находить баланс между двумя противоположнымитенденциями: стремлением ограничить доступ к данным и необходимости обеспечениявидимости тех или других абстракций в нескольких модулях. Доступ к данным издругого модуля должен осуществляться только через процедуры данного модуля.
Модульность – это свойство системы, связанное свозможностью декомпозиции ее на ряд тесно связанных модулей.
Иерархия.
Значительное упрощение в понимании сложных задачдостигается за счет образования иерархической структуры из абстракций.Определим иерархию следующим образом:
Иерархия – это ранжированная или упорядоченнаясистема абстракций.
Основными видами иерархических структур применительнок сложным системам являются структура классов (иерархия по номенклатуре) иструктура объектов (иерархия по составу).
Важным элементом объектно-ориентированных систем иосновным видом иерархии по номенклатуре является упоминавшаяся выше концепциянаследования. Наследование означает такое соотношение между классами, когдаодин класс использует структурную или функциональную часть одного илинескольких других классов (простое и множественное наследование). Инымисловами, наследование – такая иерархия абстракций, в которой подклассынаследуют строение от одного или нескольких суперклассов.
Принципы абстрагирования, ограничения доступа и иерархииконкурируют между собой. Данфорт и Томлисон утверждают: “Абстрагирование данныхсостоит в установлении жестких границ, защищающих состояние и функции объекта;принцип наследования требует открыть доступ и к состоянию, и к функциям объектадля производных объектов”. Для любого класса обычно существуют два видаобъектов пользователей: объекты, которые используют операции данного класса длядоступа к его элементам, и объекты-подклассы, полученные наследованием данногокласса.
Различные языки программирования по-разному реализуютмеханизмы наследования и ограничения доступа, наиболее гибким в этом отношенииявляется С++. В нем интерфейсная часть класса может быть разделена на тричасти: обособленную – видимую только для самого класса, защищенную – видимуютакже для подклассов; общедоступную – видимую для всех. В ряде случаевнаследование носит множественный характер.
Типизация.
Несмотря на схожесть понятий ”класс” и ”тип”, вкачестве отдельного элемента объектного подхода выделяется типизация, посколькуэта концепция подчеркивает различные особенности абстракций. Определимтипизацию следующим образом:
Типизация – это ограничение, накладываемое на классобъектов и препятствующее взаимозамене различных классов (или сильно сужающеевозможность такой взаимозамены). Типизация позволяет выполнять описаниеабстракций таким образом, что реализуется поддержка проектных решений на уровнеязыка программирования.
Параллелизм.
Любая программа включает по меньшей мере один каналуправления, но в параллельной системе таких каналов может быть несколько: однимогут быть временными, а другие могут сохраняться в течении всего временивыполнения программы. Реальная параллельность достигается только намногопроцессорных системах, а системы с одним процессором имитируют параллельностьза счет алгоритмов разделения времени.
Объект является основой, которая объединяет двеконцепции: каждый объект (как абстракция реальности) может представлять собойотдельный канал управления (абстракцию процесса). Такой объект называетсяактивным. Для систем, построенных на основе OOD,реальность может быть представлена как совокупность взаимодействующих объектов,часть которых является активной и выступает в роли узлов независимых действий.
Параллелизм – свойство объектов находиться вактивном, либо пассивном состоянии.
Устойчивость.
Устойчивость – понятие, связанное не только свременем существования данных. В OODB сохраняется не толькосостояние объекта, но и способ интерпретации класса любой другой программыдолжен быть определен однозначно. Из этого можно понять всю сложностьуправления базой данных в процессе ее наращивания, в частности при измененииклассов объектов. Рассмотрим только устойчивость объектов во времени.
Устойчивость – свойство объекта существовать вовремени (вне зависимости от процесса, породившего данный объект) и (или) впространстве (перемещение объекта из адресного пространства, в котором он былсоздан).
/>/>/>/>/>/>/>/>/>/>/>/>/>Применения объектного подхода
Объектный подход создает множество существенныхудобств, которые при других условиях не могут быть обеспечены. Наиболее важнымявляется то, что объектный подход позволяет создавать системы, которыевоплощают пять атрибутов хорошо структурированных сложных систем. Кроме того,можно назвать еще пять преимуществ, которые связаны с применением объектногоподхода.
/>/>/>/>/>/>/>/>/>/>/>/>/>/> 
Глава 3.Разработка программы реализации программных фильтров для определениямоментов подачи импульсов дефибриляции
 
Программа, управляемая событиями
Известно, что приложения для Windows можноразрабатывать как с использованием библиотеки классов MFC, так и без нее.Использование всей мощи MFC, конечно, облегчает процесс разработки приложений,однако каждому разработчику необходимо иметь представление о структуре ипринципах функционирования традиционного Windows – приложения, созданного спомощью функций API (Application Programming Interface). Это утверждениеобъясняется тем, что каркас приложения MFC содержит внутри себя структурутрадиционного Windows – приложения. Кроме того, многие методы классов MFCсодержат, инкапсулируют, вызовы API – функций. В состав API входят не толькофункции (более 2000), но и множество структур, более 700 сообщений, макросы иинтерфейсы. Цель этой главы – показать традиционную структуру Windows –приложения, созданного на основе классов MFC .
Основной чертой всех Windows – приложений являетсято, что они поддерживают оконный интерфейс, используя при этом множествостандартных элементов управления (кнопки, линейки, шкалы, списки и т. д.). Этиэлементы поддерживаются с помощью динамических библиотек (DLL), которыеявляются частью операционной системы. Именно поэтому элементы доступны любымприложениям, и даже самое первое приложение будет иметь почти такой же облик,как и любое другое.
Все Windows – приложения являются программами,управляемыми событиями (event-driven applications), что коренным образомотличает их от программ с фиксированной последовательностью выполнения.Программы, управляемые событиями, обладают большей гибкостью в смысле выборапользователем порядка выполнения операций. Однако разработчик не может заранеепредсказать последовательность вызовов функций и даже выполнения операторовсвоего приложения, так как эта последовательность определяется на этапевыполнения кода. Характерно то, что последовательность большей частьюопределяется не программой, а системой Windows и зависит от потока сообщений особытиях в системе. Большую часть времени приложение, управляемое событиями,находится в состоянии ожидания событий, точнее, сообщений о событиях. Сообщениямогут поступать от различных источников, но все они попадают в очередьсистемных сообщений. Только некоторые из них система передаст в очередьсообщений вашего приложения. Все это время приложение выполняет цикл ожиданиясообщений. Как только придет сообщение, адресованное вашему приложению, системапередаст управление вашей оконной процедуре. Можно отметить факт, что в случаемногопотокового приложения (multithreaded application) сообщение приходитактивному потоку (thread) приложения.
Наступление события обозначается поступлениемсообщения. Все сообщения Windows имеют стандартные имена, многие из которыхначинаются с префикса WM_ (Windows Message). Например, WM_PAINT именуетсообщение о том, что необходимо перерисовать содержимое окна того приложения,которое получило это сообщение. Идентификатор сообщения WM_PAINT – этосимвольная константа, обозначающая некое число.
Рассмотрим такой пример. Пользователь приложениянажимает клавишу на клавиатуре, а система вырабатывает сообщение об этомсобытии. Вы знаете, что Windows обеспечивает поддержку клавиатуры, не зависящуюот типа устройства (device – independent support). Для каждого типа клавиатурыона устанавливает соответствующий драйвер, то есть специальную программу,которая служит посредником между клавиатурой и операционной системой.Клавиатурная поддержка Windows не зависит также от языка общения с системой.Это достигается использованием специальной клавиатурной раскладки (layout),которую пользователь выбрал в данный момент. Каждой клавише присвоеноуникальное значение – идентификатор клавиши, зависящий от типа устройства иназываемый скан – кодом. Когда пользователь вводит символ, то клавиатурагенерирует два скан кода: один – когда он нажимает клавишу, и другой – когдаотпускает. Скан коды с клавиатуры поступают в клавиатурный драйвер, который,используя текущую раскладку, транслирует их и преобразует в сообщения.
Клавиатурный драйвер интерпретирует скан – код ипреобразует его в определяемый Windows код виртуальной клавиши (virtual — keycode), не зависящий от типа устройства и идентифицирующий функциональный смысл клавиши.После этого преобразования скан — кода драйвер создает сообщение, в котороевключается: скан – код, виртуальный код и другая информация о нажатии клавиши,и помещает его в очередь системных сообщений. Windows выбирает сообщение изэтой очереди и посылает его в очередь сообщений соответствующего потока(thread). В конце концов цикл выборки сообщений данного потока передает егосоответствующей оконной процедуре для обработки. Модель вызова с клавиатуры всистеме Windows представлена на рис. 3.1.
/>
Рис. 3.1 Схема генерации и движения сообщенийWindows.
Рассмотренная модель выработки и прохождениясообщений поможет вам понять структуру, принятую во всех Windows – приложениях.Последние два блока в рассмотренной схеме определяют особенности строениялюбого Windows – приложения. Простейшее приложение состоит как минимум из двухфункций:
— функция WinMain (имя зарезервировано), котораясодержит цикл выборки сообщений и выполняется первой в любом приложении;
— оконная процедура, которую вызывает система,направляя ей соответствующие сообщения.
Имя оконной процедуры выбирается произвольно. СистемаWindows регистрирует это имя, связывая его с вашим приложением. Такжебезусловно нужно отметить, что хотя в приложениях на основе MFC трудно увидетьфункцию WinMain или оконную процедуру, они там присутствуют, но скрыты отпрограммиста разработчиками среды Visual Studio.
Главное окно приложения.
На рис. 3.2 приведено главное окно приложения. Черезнабор управляющих элементов производится управление основной программой.
Элементы управления:
- Кнопка “Загрузить файл” –реализует загрузку оцифрованного и упакованного файла ЭКГ диаграммы (рис. 2),хранящегося на диске и отображает распакованные данные в окне просмотра (рис.3).
- Кнопка “Выход” – выйти изприложения.
- Комбинированное поле фильтров –Выбор фильтра для последующего отображения в окне просмотра.
- Флажок переключатель ”Фильтрпробка” – установка режима фильтрации сетевой наводки (игнорирует выбор фильтрав комбинированном поле).
- Флажок переключатель“Дифференциатор” – устанавливает режим определения подачи импульсовдефибриляции.
- Комбинированное поле отведений –Выбор номера отведения для отображения в окне просмотра.
- Кнопка “применить” –устанавливает режим отображения отфильтрованного сигнала в окне просмотра(работает после загрузки файла).
/>
Рис. 3.2 Главное окно приложения.

Загрузка файла.
Прежде чем на экране появится второе окно с даннымибаз ЭКГ, в программе необходимо загрузить один из файлов *.@8. В функции,реагирующей на нажатие кнопки “Загрузить файл” используется стандартный диалогвыбора файла для загрузки, далее выбранный файл передается в функцию,выделяющую массивы значений всех двенадцати отведений. После этого здесь жеконструируется окно просмотра с неинициализированной фильтрованной ЭКГ.
void CNewvisualDlg::OnLoadFile()
{
//конструктор файлового диалога
CFileDialogdlg(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,«Экг диаграммы(*.@8)|*.@8||»);
//сделать модальным и запомнить состояние
int response = dlg.DoModal();
if(response = IDOK)
{
CString fname=dlg.GetFileName();
if(fname=="") goto end;
HANDLE InputFile =CreateFile(fname,GENERIC_READ,FILE_SHARE_READ,
0,OPEN_EXISTING,FILE_FLAG_SEQUENTIAL_SCAN,0);
//распаковать и выделить 12 отведений
ReadK12(InputFile);
//создать окно просмотра
m_dlgPaint.Create(IDD_VIEW_GRAPH,this);
m_dlgPaint.SetWindowPos(&wndTop,200,0,m_dlgPaint.right*0.8,
m_dlgPaint.left-100,SWP_SHOWWINDOW);m_dlgPaint.ShowWindow(SW_SHOW);//показать окно
m_dlgPaint.Counter = 0;
SetTimer(ID_SHOW_TIMER,2,NULL);
memcpy(m_dlgPaint.StartOtv,StartOtv[0],16000);
Flag = true;
UpdateData();
m_dlgPaint.Invalidate();
}
end:
;;
}
Дальше более интересно было бы рассмотреть алгоритмвыделения отведений из файлов баз ЭКГ. У файлов *.@8первые 53 байта содержат заголовочную информацию для параметров ЭКГ(времяснятия ЭКГ, тип ЭКГ, частота сигнала и т.д.). Взятие дальнейшей информации идетв зависимости от типа ЭКГ, если ЭКГ сжата, то работает алгоритм сжатия, если несжата, то данные берутся элементарным способом.
Окно просмотра ЭКГ диаграмм.
Окно просмотрареализует отображение ЭКГ диаграмм врежиме
прокрутки, в соответствии с реальным временем снятияЭКГ сигнала (рис 2).
Режим прокрутки реализуется при помощи установкитаймера функцией SetTimer(ID_SHOW_TIMER,2,NULL), где 2 – время в миллисекундахпосыла сообщения от таймера к системе. Поскольку частота съема данных ЭКГ равна500 Гц., то здесь прокрутка реализована со скоростью отрисовки в один пикселна каждый посыл сообщения от таймера. Алгоритм работы таймера будет рассмотренниже.
компьютерный программный импульс дефибриляция

/>
Рис.3.3 Окно просмотра ЭКГ диаграмм(Неотфильтрованный и отфильтрованный сигнал)
В данном окне используется два режима работы; режимпоказа сигнала из файла загрузки, режим показа как сигнала из файла загрузки,так и отфильтрованного сигнала, в соответствии с установками управляющихэлементов. Для вывода данных ЭКГ на экран была написана динамическиподключаемая графическая библиотека Graph.dll, которая может использоваться вдругих приложениях. Созданный динамический модуль система интегрирует впространство другого(клиентского) процесса, загрузив его по определенномубазовому адресу. Мы воспользуемся преимуществом, которое предоставляетбиблиотека MFC, расширяющая WIN32 – поддержку DLL. DLL – расширение способноэкспортировать не только отдельные функции, но и целые классы C++. Приложение,использующее DLL(клиентское приложение), может создавать объекты импортируемогокласса, а так же создавать производные классы на основе класса, реализованногов DLL. Обычные DLL могут экспортировать функции. DLL-расширения могутэкспортировать как функции, так и классы.
DLL – расширение динамически связывается с кодом DLL– версии библиотеки MFC и требует, чтобы клиентская программа тожекомпоновалась с ним динамически. Обычная DLL может связываться с библиотекойMFC как динамически, так и статически. Но это не снижает привлекательности DLL– расширений, так как при необходимости можно поставить заказчику необходимыесистемные DLL, такие как Mfc42d.dll, Mfc042.dll и другие.
Исходный код определения экспортируемого классаприведен ниже.
class AFX_EXT_CLASS CGraph
{
double dXLeft;// Левый верхний угол
double dYTop;
double dFracX;// Ширина и высота
double dFracY;
double dMinX, dMaxX;// Min-Max значения погоризонтали
double dMinY, dMaxY;// Min-Max значения по вертикали
double dSpanX;// Размах графика по горизонтали
double dSpanY;// Размах графика по вертикали
double dStepX, dStartX;// Шаг и начальное значение
double dStepY, dStartY;
UINT nPoints;// Количество точек
// Целочисленные аналоги
UINT nStepsX, nStepX, MinX, MaxX;
UINT nStepsY, nStepY, MinY, MaxY;
UINT *X, *Y;// Координаты точек на экране
int iPowerX, iPowerY;// Экспоненты
CRect rect;// Прямоугольник вывода
// Три типа шрифтов: для осей, заголовка и экспонент
CFont TextFont, TitleFont, PowerFont;
public:
void GetRect(int&,int&,int&,int&);//получить размер прямоугольника отображения
Cgraph (CRect, UINT, double ,double,double ,double);//конструктор
// Функции нормировки исходных массивов
void ScaleX(TValues&);
void ScaleY(TValues&);
// Масштабирование массива
void Scale (double, int&,double&);
// Изображение координатной сетки
void DrawGrid (CDC*, CString&,CString&, CString&, TValues&, TValues&);
// Изображение графика зависимости
void DrawFunc (CDC*,BYTE *);
virtual ~CGraph ();
};
В конструкторе мы инициализируем область выводаграфика, количество отображаемых точек и коэффициенты вывода, относительнообщей области. Далее в основном приложении для вывода графики нам понадобятсяфункции DrawGrid и DrawFunc. Масштабирование входных координат точек графика,задаваемых числами с плавающей точкой двойной точности, производится в функцииScale, где значения по осям Х и Y масштабируются отдельно через вызовы функцийScaleX и ScaleY. Функция DrawGrid выводит на экран координатную сетку, афункция DrawFunc рисует график.
Класс Filters.
Класс Filters реализует хранение и расчет данных дляфильтрации ЭКГ.
class Filters
{
public:
char Name[10];// название фильтра
double * Coeficients;//коэффициенты фильтра сплавающей точкой
short * QuantizCoeficients;//целочисленныекоэффициенты
BYTE NumCoef;// число коэфициентов
//конструктор
Filters(char * FilterName,BYTENumCoeficientsdouble,double * Coef = NULL,double * Quant = NULL);
// функция расчета КИХ фильтров
void GetType_1(short * InBuffer,short *OutBuffer);
// функция рассчета БИХ фильтров
void GetType_2(short * Inbuffer,short *Outbuffer);
// функция рассчета фильтров с приведением
// к целочисленным коэфициентам
void GetQType(short * Inbuffer,short *Outbuffer,BOOL Type,BYTE PreCoef = 0);
~Filters();// деструктор
};
В конструкторе происходит инициализация названияфильтра, числа коэффициентов, самих коэффициентов в зависимости от типафильтра.
Предварительная обработка сигнала вэлектрокардиографии заключается, в основном, в цифровой фильтрации сигнала и егоусреднении. Цель фильтрации – подавление неблагоприятных факторов, таких какшумы, выделение определенных характеристик сигнала и его коррекция. Наиболеепростой в реализации и достаточно эффективной является линейная инвариантная ксдвигу фильтрация. С точки зрения реализации (впрочем, это являетсяобщепринятым в теории ЦОС ) разумно разделить линейные цифровые фильтры на 2типа: фильтры с конечной импульсной характеристикой (КИХ) и фильтры сбесконечной импульсной характеристикой (БИХ). По-другому они называютсянерекурсивный и рекурсивный соответственно.
Фильтры с конечным импульсным откликом описываютсяследующим уравнением:
/>

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

Передаточная функция не имеет полюсов, следовательно,фильтр всегда устойчив, более того, если ряд коэффициентов симметричен, тофильтр имеет линейную ФЧХ. КИХ — фильтры обычно реализуются в такой же форме,как и определяются, т.е. в виде суммы.
Фильтры с бесконечным импульсным откликом описываютсяследующим выражением:
/>

Передаточная функция имеет вид:

/>

Существует достаточно много типов БИХ фильтров, классифицируемыхпрежде всего по форме передаточной характеристики: Баттерворта, Чебышева,эллиптический.
Цифровые фильтры обычно проектируются в соответствиис определенными требованиями, предъявляемыми обычно к передаточной функции,которая, естественно, определяется конкретной задачей, для которойразрабатываемый фильтр и предназначен. Идеальные фильтры не реализуемы, поэтомуприходится говорить лишь о соответствии фильтра параметрам в рамках допустимойошибки. Для расчета цифровых фильтров существует несколько методик, требующихразличных вычислительных возможностей. В электрокардиографии обычно применяютфильтры какого – либо одного типа и для определенной частоты среза и частотыдискретизации. Поэтому расчет фильтра в реальном времени проводить обычно не требуется,а коэффициенты рассчитываются при помощи какого – либо пакета, позволяющегосделать это визуально и интерактивно (в данном дипломном проекте расчетыпроводились в среде Matlab v.6.0).
Функции КИХ и БИХ фильтрации:
//Функция КИХ фильтрации
void Filters::GetType_1(short *InBuffer,short * OutBuffer)
{
WORD i = 0;
double Temp = 0;
while(i
{
if(i
else
{
for(BYTE j = 0;j
Temp += InBuffer[i-j]*Coeficients[j];
OutBuffer[i] = (short)Temp;
}
Temp = 0.0;
i++;
}
}
//Функция БИХ фильтрации
void Filters::GetType_2(short *Inbuffer,short * Outbuffer)
{
WORD i = 0;
double Temp = 0;
while(i
{
if(i
else
{
for(BYTE j = 0;j
Temp += (Inbuffer[i-j]*Coeficients[j]
— Outbuffer[i-j]*Coeficients[j+NumCoef/2]);
Outbuffer[i] = (short)Temp;
}
Temp = 0;
i++;
}
}
Если тип фильтра – БИХ, тогда коэффициенты обратнойсвязи ак в конструкторе нужно передавать сразу за коэффициентами bm.
В связи с тем, что последующая реализация тестируемыхфильтров будет производиться на микроконтроллере Siemence без реализацииарифметики с плавающей точкой, необходимо реализовать фильтрацию сцелочисленными коэффициентами. Реализация целочисленных коэффициентовпроизводится в функции GetQType. В конструктор передаются коэффициенты сплавающей точкой, рассчитанные в среде Matlab при условиях квантизации, которыепри перемножении на число два в пятнадцатой степени дают целочисленныекоэффициенты. Соответственно после фильтрации все точки ЭКГ масштабируются кисходным значениям.
//Функция фильтрации с целочисленными коэффициентами
void Filters::GetQType(short * Inbuffer,short *Outbuffer,BOOL Type,BYTE PreCoef)
{
WORD i = 0;
int Temp = 0;
while(i
{
if(i
else
{
for(BYTE j = 0;j
if(Type == FALSE)
Temp +=(int)(Inbuffer[i-j]*(short)QuantizCoeficients[j]);
else
Temp +=(Inbuffer[i-j]*QuantizCoeficients[j]
-Outbuffer[i-j]*QuantizCoeficients[j+NumCoef/2]);
if(Temp>0)
Outbuffer[i] = (short)( Temp >>(15+PreCoef) );
else
Outbuffer[i] = -(short)( (-Temp) >>(15+PreCoef) );
}
Temp = 0;
i++;
}
}
Первый параметр функции – входной массив графика,второй параметр – массив в который будут передаваться отфильтрованные значения,третий параметр – тип фильтра (БИХ или КИХ), четвертый параметр – коэффициентмасштабирования отфильтрованных значений выходного массива.
Реализация таймера.
При успешной загрузке данных из файла устанавливаетсясистемный таймер с временем срабатывания (в миллисекундах), равным 2. Таймерыявляются лимитированным глобальным ресурсом системы, поэтому следует проверятькод, возвращаемый функцией SetTimer. После установки таймера каждые 2миллисекунды система будет посылать в очередь сообщений нашего приложениясообщение WM_TIMER. Значение третьего параметра NULL говорит о том, чтосообщение будет обрабатываться в оконном классе, а не в специально созданнойглобальной функции, адрес которой следовало бы передать третьим параметром. Привозникновении прерывания от таймера управление будет передано в функциюOnTimer.
void CNewvisualDlg::OnTimer(UINT nIDEvent)
{
if(Flag == true)
{
if(m_dlgPaint.NPoints == 500)
m_dlgPaint.NPoints = (m_dlgPaint.x2 — m_dlgPaint.x1);
else
{
m_dlgPaint.NPoints+=(m_dlgPaint.x2 — m_dlgPaint.x1);
m_dlgPaint.PointCounter+=(m_dlgPaint.x2 — m_dlgPaint.x1);
}
m_dlgPaint.rect.left = m_dlgPaint.x1-5;
m_dlgPaint.rect.right = m_dlgPaint.x1;
m_dlgPaint.rect.top = m_dlgPaint.y1;
m_dlgPaint.rect.bottom = m_dlgPaint.y2+10;
CRectrect2;rect2.CopyRect(&m_dlgPaint.rect);
rect2.SetRect(0,0,(m_dlgPaint.rect.right-1),
m_dlgPaint.rect.bottom);
m_dlgPaint.InvalidateRect(&rect2);
}
if(m_dlgPaint.rect.right >=m_dlgPaint.x2) Flag = true;
if(m_dlgPaint.Counter
{
m_dlgPaint.Counter+=5;
m_dlgPaint.rect.left+=5;
m_dlgPaint.rect.right+=5;
Flag=false;
}
else Flag = true;
if(m_dlgPaint.NPoints>=8000)
{
Flag = true;
m_dlgPaint.NPoints= 500;
m_dlgPaint.Counter = 0;
m_dlgPaint.PointCounter = 0;
}
m_dlgPaint.InvalidateRect(&m_dlgPaint.rect);
CDialog::OnTimer(nIDEvent);
}
РеализацияQRS детектора.
Интеграция в проект QRS детектора была осуществленапри помощи руководителя практики, заголовочный файл и файл реализации былиподключены к проекту. Графическая реализация была целиком самостоятельнойработой. Для отображения заметок определения QRS, в функцию, рисующую графикдобавляется параметр (массив из 8000 элементов)
//код заполнения массива для
//последующего отображения в окне просмотра
if(m_dlgPaint.StartOtv[0] == 0) return;
INT disp,amp;
memset(m_dlgPaint.DifFlag,0,8000);
for(i=0;i
if(CalcPoint(m_dlgPaint.StartOtvFilt[i],&disp,&))
{
m_dlgPaint.DifFlag[i-disp] = 1;
}
/>/>Глава 4. Расчет затрат на создание программного продукта
/> 
Цель составления любых программ состоит в полученииопределенных результатов в процессе эксплуатации и оценивается эффективностьюпрограммного средства. Поводом для создания рассматриваемого пакета программпослужила необходимость обеспечения входного и межоперационного контроля надфизическими параметрами полупроводниковых микросхем, а также повышения точностиэтого контроля на этапе исследования п/п пластины. Уточним применяемое далеепонятие эффективности процесса разработки программного средства. Выборадекватных показателей эффективности программных средств зависит от ихназначения, области применения, а также от ряда характеристик программ,проявляющихся при их применении. Поэтому, для выбора технических решений могутиспользоваться различные критерии. Целесообразно подразумевать подэффективностью процесса разработки минимум затрат на разработку программ призаданной экономической эффективности применения и качества программных средств.Минимизация затрат на обеспечение жизненного цикла комплекта программ (далееКП) в некоторой степени эквивалентны максимизации разности эффекта и затрат,если предположить, что экономический эффект от применения программ зафиксировани стабилен. Затраты в жизненном цикле ПО определяются не только этапомразработки, но и этапами эксплуатации и сопровождения, причем затраты на этихэтапах могут значительно превосходить затраты на этапе проектирования иразработки и характеризуются своими особыми закономерностями. Обычно, критериикачества изделий используются в совокупности, с разных сторон отражающейосновные характеристики функционирования объекта. Тем не менее, во многихслучаях доминирует экономический эффект, который наиболее прост, и обобщеннопринято описывать суммарным доходом Э от использования изделия в течение егожизненного цикла продолжительностью Тж. В первом приближении эторазность между полной идеальной экономической эффективностью программы Эо исуммарными потерями и затратами K,снижающими предельный доход за весь жизненный цикл:
Э = Эо — K
В качестве идеальной эффективности Эо рассматриваетсясовокупный доход, который можно получить от использования программ за весьжизненный цикл, если бы они не требовали затрат на создание, производство иэксплуатацию, а также функционировали бы на реализующих ЭВМ без потерь иискажений.
Предполагается, что при любых затратах на разработку всегдадостигается заданная идеальная эффективность последующего применения ПО впроцессе его эксплуатации и необходимые показатели качества функционирования.Это предположение позволяет в дальнейшем исключить из анализа эффективностьприменения программных средств Эо и сосредоточить внимание на эффективностипроцесса их разработки. Дополнительным основанием такого допущения можетслужить то, что многие виды программ невозможно или очень труднохарактеризовать доходом от их функционирования, что в нашем случае оченьактуально. Тогда исследования эффективности процесса создания ПО можнопроводить, минимизируя затраты K в предположении, что обеспечены заданныефункциональные характеристики программ.
Снижение эффективности Э на величину K происходит преждевсего вследствие затрат на разработку, производство, сопровождение иэксплуатацию программ, а так же вследствие различных сбоев программ иоборудования. В соответствии с этапами жизненного цикла ПО основные затраты K, снижающие идеальную эффективностьза цикл жизни Тж, можно представить следующими составляющими:
затраты на создание КП и обеспечение решения заданных задач(в том числе на технологическое обеспечение, аппаратную оснащенностьразработки) — Kр;
затраты на эксплуатацию программных и аппаратных средств ЭВМ,реализующих КП — Sэ;
затраты на сопровождение КП, включающие затраты на хранение иконтроль его состояния, проведение модификации, исправление ошибок и т.д. — Kс;
накладные расходы Kн.
В результате совокупную реальную эффективностьфункционирования ПО за весь жизненный цикл длительностью Тж можно представить ввиде:
Э = Эо — Kр — Sэ — Kс — Kн

/>/>Составляющие затрат на разработку программ Kр
Разработка программ является областью с малой материало- иэнергоемкостью, и основные затраты связаны с непосредственным илиовеществленным трудом специалистов различных категорий.
Наибольшее значение в составе Kр при разработке комплекса программ (КП) имеют следующиесоставляющие затрат:
на непосредственное проектирование, программирование, отладкуи испытания программ в соответствии с требованиями пользователя или заказчика — K1р;
на изготовление опытного образца КП как продукциипроизводственно-технического назначения — K2р;
на разработку, подготовку и применение технологии программныхсредств автоматизации разработки программ — K3р;
на технологические и реализующие ЭВМ, используемые дляавтоматизации разработки программ — K4р;
на подготовку и повышение квалификацииспециалистов-разработчиков — K5р.
Первые две составляющие K1р и K2р являются непосредственными затратамина создание программных средств. Составляющие K3р и K4рможно рассматривать как затраты, обеспечивающие оснащенность процесса созданияКП. Затраты на подготовку и повышение квалификации наиболее трудноформализовать и учитывать в конкретной разработке программных средств. В данномслучае эта составляющая не учитывается.
/>/>Затраты на непосредственную разработку КП
Затраты на непосредственную разработку комплекса программ K1рявляются важнейшей составляющей в жизненном цикле КП. Наибольшее влияние на нихоказывает объем КП. Затраты на разработку K1р и объем программ Пк связаны через показатель интегральнойсредней производительности труда разработчиков Р. Для учета влияния на K1р различных факторов удобнопользоваться коэффициентами изменения трудоемкости (КИТ) — Сij, учитывающими зависимость i-ой составляющей совокупных затрат отj-го фактора. Непосредственные затратына разработку можно представить как частное от деления объема КП ипроизводительность труда, корректируемое произведением коэффициентов изменениятрудоемкости:
/>
Выделим четыре основных группы факторов, влияющих на затраты K1р при непосредственной разработкепрограмм:
факторы, отражающие особенности создаваемого комплексапрограмм как объекта разработки, и требования к его общим характеристикам;
факторы, характеризующие технологическую и программнуюоснащенность средствами автоматизации процесса разработки программ;
факторы, отражающие оснащенность процесса создания КПаппаратурными средствами, на которых базируются системы автоматизации разработки;
факторы, определяющие оснащенность процесса разработкипрограмм и его обеспечение квалифицированными специалистами.Для каждого фактораможет быть выделен параметр, наиболее полно отражающий его содержаниечисленными значениями. Для большинства факторов произведены оценки диапазонавозможного изменения относительных затрат на разработку одной команды в КП приварьировании соответствующего параметра в указанном диапазоне. Эти изменениязатрат характеризуются коэффициентами Сij изменения усредненной трудоемкостиразработки строки текста программы за весь цикл создания КП при варьировании j-го фактора i-ой группы. Приводятся их средние значения.
Факторы КП как объекта проектирования, влияющие нанепосредственные затраты при разработке программ.
Эта группа факторов отличается наибольшим влиянием на затратыи производительность труда.
Наиболее активно в качестве показателя сложности программиспользуется ее объем, выраженный числом операторов на ассемблере или строк наязыке программирования высокого уровня. Объем программ является одной изнаиболее достоверно измеряемых характеристик КП. Логично предположить, что помере увеличения объема КП возрастает относительная трудоемкость разработкикаждой команды в программе. Такая зависимость
/> 
может быть описана логарифмической функцией: (источник формул см. используемую литературу [1] )
Надежность функционирования КП является наиболее важнымфактором, отражающим качество программных средств.
В качестве параметров, характеризующих надежность системы,наиболее широко используется наработка на отказ Тн и коэффициентготовности Кг. Оба показателя тесно связаны, что позволяетограничить внимание на первом из них. Изучение математических моделей процессавыявления ошибок в программах привело к тому, что одной из наиболее достоверныхи простых является экспоненциальная зависимость числа оставшихся ошибок отвремени ее тестирования. Эти соображения позволяют аппроксимировать средниезначения С13 при повышении требований к надежности КПлогарифмической зависимостью:
/>
Ограничение ресурсов производительности и оперативной памятиреализующей ЭВМ: при использовании создаваемым КП производительности и памятиреальной ЭВМ менее чем на 50% можно и не учитывать эти ограничения, однако внашем случае ресурсы ЭВМ используются практически полностью:
С14 = (1.14 * (1 — р)1/2)-1
где р — реальная загрузка ЭВМ ( в относительных величинах ).
Длительность предполагаемой эксплуатации КП изменяется отнескольких месяцев до нескольких лет. По экспертным оценкам, увеличениепредстоящей длительности эксплуатации КП на порядок от 1 до 10 лет приводит кувеличению КИТ С15 примерно в 1.5-2 раза. Такую зависимость можноописать логарифмической функцией:
/>
где а15 изменяется в диапазоне от 1 до 1.5.
Предполагаемый тираж программ: при переходе от уникального КПк программам, подлежащим тиражированию, затраты заметно возрастают:
/>
Применение современных методов разработки КП.
При создании данного КП использовалась пошаговая разработкакомпонентов программы. В этом случае интегральная оценка эффективности методаболее-менее стабильна и характеризуется повышением производительности трудаприблизительно на 30 — 40% (С31=0.6-0.7).
Уровень автоматизации разработки КП рассматривается, преждевсего, как фактор, влияющий на С1р и на производительность трудаспециалистов.
В нашем случае С32 = 1.
Уровень языков программирования КП. Разработка нашей программына языке С++, обладающем удовлетворяющими нас характеристиками, а такжедоступность процедур и функций языка высокого уровня в совокупности далиувеличение производительности на 50% (С33= 0.5).
Модернизация комплекса проводится не с целью продажи, а длясобственных нужд завода. То есть данный комплекс существует в единственномэкземпляре и не предполагается его тиражировать.
С34 = 1.
Факторы оснащенности процесса разработки КП аппаратурнымисредствами, влияющими на непосредственные затраты при разработке программ.
При анализе фактора аппаратурной оснащенности процессаразработки программ целесообразно учитывать интегральные характеристики всехвычислительных средств, использующихся при создании данного КП. При разработкеданной программы применяется реализующая ЭВМ.
Относительное быстродействие ЭВМ определяет доступный уровеньавтоматизации разработки программ. Влияние относительного быстродействия наполные затраты можно оценить на уровне 20-30%.(С41 = 0.7 — 0.8).
Относительный объем оперативной памяти может также проявитьсякак заметный фактор, изменяющий производительность труда разработчика. В нашемслучае недостаточный объем памяти вызвал снижение производительности труда на10-20% (С42 = 1.1-1.2)
Факторы организации процесса разработки КП, влияющие нанепосредственные затраты при создании программ.
Индивидуальные особенности специалистов могут приводить кизменению производительности труда во много раз. В среднем технологическуюквалификацию можно считать выше среднего (С52=0.7), тематическуюквалификацию — как средняя (С51=0.8). Программистская квалификация иопыт работы с языками проектирования составил 3 года (С53 = 0.9)
Уровень квалификации заказчика высок, но техническое заданиена разработку было сформировано с дальнейшими доработками (С54=1.2).
/>/>Затраты на изготовление опытного образца как продукциипроизводственно-технического назначения.
Затраты на изготовление опытного образца КП как продукциипроизводственно-технического назначения К2р определяетсянеобходимостью обеспечить отчуждение всего комплекса программ от егонепосредственных разработчиков. Для изготовления КП как продукциипроизводственно-технического назначения необходимо:
изготовить и оформить опытный образец КП на носителях данных;
Затраты K2p в нашем случае не имеют смысла,поскольку, как уже отмечалось ранее, данный комплекс существует в единственномэкземпляре и не предполагается его тиражировать.
/>/>Затраты на технологию и программные средства автоматизацииразработки КП.
Затраты на технологию и программные средства автоматизацииразработки КП K3p обычно являются весьма весовыми только прииспользовании автоматизированных технологий. В нашем случае мы имеем принципиальноновую систему, технология разработки которой пока не определена, поэтомузатратами на технологию можно пренебречь.
/>/>Затраты на ЭВМ, используемые для автоматизации разработкиданной программы.
Затраты на ЭВМ, используемые для автоматизации разработкиданного КП — К4р включают капитальные затраты на закупку и установкусоответствующих ЭВМ, а также текущие затраты на их эксплуатацию в течениеразработки КП.
Поэтому общие затраты на ЭВМ будут выглядеть как:

С4р = С4р1 = а41*Тр.
Где а41 — стоимость машинного времени реализующейЭВМ.
/>/>Расчет затрат на разработку комплекса
 
/>/>Исходные данныеНаименование характеристики Количество Количество программистов, S 1 чел.
Оклад программиста, Sм 1000 руб./ мес. Объем программы, П 3000 строк
Стоимость одного часа машинного времени, а41 5 руб./ч
Общее время разработки, Tр 4 мес.
Количество машинного времени, затраченного в день, Тдн 3 ч/день
/>/>Коэффициенты изменения трудоемкости
сложность программы — С11 = lg(3000 * 10-3)=0.47;
ограничение ресурсов производительности ЭВМ -
С14 = (1.14 * (1 — р)1/2)-1= 2.7;
современные методы разработки — С31 = 0.7;
уровень языка программирования — С33 = 0.5;
относительное быстродействие ЭВМ — С41 = 0.8;
относительный объем памяти — С42 = 1.1;
технологическая квалификация — С51 = 0.7;
тематическая квалификация — С52 = 0.8;
программистская квалификация — С53 = 0.9;
квалификация заказчика — С54 = 1.2;
остальные коэффициенты примем равными единице.
/>/>Расчет непосредственных затрат на разработку
Пк =3000 (команд);
Производительность P = Пк / Тр = 3000/88=34.1 (команд/день);
Считаем, что в месяце, в среднем, 22 рабочих дня, тогдасредняя дневная заработная плата разработчика Sд = 45,45 (руб.);
Произведение коэффициентов
Сij — Пij Cij = 0.245;
Также необходимо учитывать расходы, включающие в себя:
заработную плату административно — управленческого персоналас отчислением на социальные нужды;
аренду помещения;
хозяйственные нужды;
приобретение специальной литературы.
Считаем, что
накладные расходы составили kнр = 90% от непосредственных затрат;
коэффициент дополнительной зарплаты kдоп = 29%;
коэффициент сбора на социальные нужды kсн = 41%.
Теперь можем рассчитать непосредственные затраты наразработку — К1р :
K1р = Пк * ПijCij * Sд * S * 1.5 / P = 3000 * 0.245 * 45,45* 1 * 1.5 /34.1 = 1474 (рублей).
Затратами на создание опытного образца являются затраты наразработку, т.е. программа сама по себе и есть опытный образец. Затратами натехнологию и программные средства мы пренебрегаем.
/>Затратына ЭВМ
Тр = 88 (дней);
Рассчитаем затраты на ЭВМ:
К4р = а41*Тр * Tдн = 5 * 88 *3 = 1320 (руб)

Все результаты сведем в таблицу.
Затраты на разработку КПСоставляющие Затраты (руб.) % от затрат на разработку
K1р 1474 53%
K4р 1320 47%
Таким образом затраты на разработку системы моделированиямакроэкономики составляют Kр = 2794 руб.
Мы рассчитали суммарные затраты на разработку данного Кп иувидели, что они составили примерно 2794 тыс. рублей. Большие затраты были наэксплуатацию реализующей ЭВМ. Эти затраты были рассчитаны с учетомсуществующего нестабильного положения цен на рынке электронных товаров.
Снизить непосредственные затраты возможно по мере повышенияквалификации в данном вопросе, а также более эффективным использованием рабочеговремени, но для этого пока не созданы соответствующие условия, связанные соборудованием рабочего места.
 
Глава 5. Производственно-экологическаябезопасность при разработке программных фильтров
На современном этапе создание новой техники ставит задачу нетолько облегчить труд человека, но и привести к изменению его роли и места впроизводственном процессе. В условиях технического прогресса увеличиваетсяколичество объектов, которыми он должен управлять, возрастают скоростиуправляемых им процессов, широкое применение получает дистанционное управление.В связи с этим возрастает роль охраны труда, призванной не только облегчитьтруд человека, но и сделать условия труда комфортными.
При использовании человеком даже самой передовой технологии унего могут возникнуть соответствующие профессиональные заболевания, еслиработая, он будет пренебрегать даже элементарными правилами техникибезопасности.
Типичными ощущениями, которые испытывают к концу рабочего днячрезмерно увлеченные и беспечные пользователи персональных компьютеров,являются: головная боль, резь в глазах, тянущие боли в мышцах шеи, рук и спины,зуд кожи на лице и т.д. Испытываемые день за днем, они могут привести кмигреням, частичной потере зрения, сколиозу, кожным воспалениям и другимнежелательным явлениям. Все это не случайно.
Вероятнее всего, человеку уже никогда не удастся полностьюизбежать пагубного влияния передовых технологий, но, как и во многих другихслучаях, сами пользователи персональных компьютеров, по крайней мере, могутсвести их к минимуму. Большинство проблем решаются сами собой при правильнойорганизации рабочего места, соблюдении правил техники безопасности и разумномраспределении рабочего времени.
В рамках данного дипломного проекта при написании тестовойпрограммы нужно уделить большое внимание производственному освещению,оздоровлению воздушной среды, защите от шума, электробезопасности, пожарнойбезопасности и др.Все это немаловажные факторы, пренебрегая которыми можнозаработать ряд вышеописанных болезней.
Целесообразно будет рассмотреть в этом разделе вопросы,связанные с работоспособностью человека при работе за ПЭВМ, рассчитать уровеньутомляемости работы программиста и провести обзор основных мероприятий,направленных на уменьшение утомляемости при работе за компьютером.
Зависимость между показателями утомления и условиями труда
В настоящее время фактически общепризнанным являетсяположение о том, что условия труда влияют на показатели функциональногосостояния организма человека и его работоспособность.
В процессе работы на человека воздействует комплекс факторов(элементов) условий труда, включая группы санитарно-гигиенических ипсихофизиологических.
Можно установить количественную зависимость между показателемутомления и условиями труда. Для этой цели используются критерии отнесенияфакторов в группы условий труда, разработанные НИИ труда. Каждый фактор(элемент) условий труда оценивается в 1-6 баллов. Баллы, полученные по всемкритериям, суммируются, что позволяет получать показатель условий труда. Чемвыше показатель условий труда, тем они более неблагоприятны. Наиболее высокий(а значит и наиболее неблагоприятный) показатель равен 72 баллам.
Эта методика имеет ряд упрощений, при которых допускаетсяодинаковая значимость всех критериев. Кроме того, санитарно-гигиеническиеусловия считаются нормальными, если их значение не превышаетпредельно-допустимых концентраций и уровней (ПДК и ПДУ), что также являетсяопределенным упрощением, так как, несомненно, условия, приближающиеся к уровнюПДК и ПДУ, нельзя считать оптимальными. Несмотря на все эти упрощения, выявленавесьма высокая корреляция (r = 0,83) между показателями утомления и условийтруда. На основании экспериментальных материалов получено уравнение:
 
/> (6.1) где Y - показатель утомления,
  X - показатель условий труда.
 
Высокая корреляция между показателями утомления и условийтруда имеет большое практическое значение. Речь идет о том, что для ориентировочныхрасчетов, проводимых в условиях производства, показатель утомления можноустанавливать по показателю условий труда, определение которого не связано струдоемкими физиологическими исследованиями. Ниже приводится расчет уровняутомляемости для программистов, работающих за экраном дисплея ПЭВМ.
Таблица 5.1. Расчет уровня утомляемостиОценка психофизиологических и санитарно-гигиенических условий труда Значение элемента Количество баллов А. Психофизиологические факторы. 1. Физическая динамическая нагрузка Незначительная 1 2. Физическая статическая нагрузка Незначительная 1 3. Поза и передвижение в пространстве Поза несвободная (“сидя”). Корпус и конечности в удобном положении. 3
4. Напряжение зрения, категория
зрительных работ Высокой точности 5 5. Длительность сосредоточенного наблюдения, в % от времени смены Более 90% 5 6. Темп, число движений в час Мелкие движения пальцев, кистей рук (работа на клавиатуре) 1 7. Продолжительность повторяющихся операций (монотонность) Монотонность отсутствует 1 Б. Санитарно-гигиенические факторы
8. Температура на рабочем месте, 0С
20 0С 1 9. Токсические вещества Ниже ПДК 1 10. Промышленная пыль Ниже ПДК 1 1. Промышленный шум Ниже ПДК 1 12. Инфракрасное (тепловое) излучение Незначительное 1
Общая сумма баллов: X = 22
При отсутствии фактора оценка его должна соответствоватьодному баллу, поэтому показатель условий труда не может быть менее 12 баллов.
Прогнозируемое утомление: Y = 2,15 * 22 — 10,3 = 37 отн.ед.
Диапазон изменений работоспособности в результате выполненияразличных видов умственного труда с разной интенсивностью находится в пределахот 10 до 54 отн.ед.
Анализ экспериментальных данных, позволяет прийти кзаключению, что производственное утомление до 40 отн.ед. не вызывает признаковпереутомления. Показатель утомления в диапазоне от 0 до 25 отн.ед. можносчитать небольшим, от 26 до 40 отн.ед. — умеренным и более 40 отн.ед. — значительным.
На основании полученной оценки прогнозируемого утомленияможно сделать вывод о том, что труд программиста нельзя назвать легкой работой.Согласно приведенной шкале (рис. 5.1), прогнозируемая утомляемостьпрограммистов находится почти на границе умеренной зоны и зоны значительногоутомления
/> Рис. 5.1 Прогнозируемая утомляемость при работе за компьютером.
 
Комплекс мероприятий, направленных на уменьшение утомляемостипри работе за компьютером
Проблема безопасности рабочего места при работе с компьютеромкажется незначительной. Чем может навредить компьютер? Кажется, чтоединственная опасность, исходящая от компьютера — это возможность пораженияэлектрическим током. Однако такое мнение ошибочно, компьютер это устройствообладающее целым рядом воздействий на организм человека. При неправильномиспользовании и отсутствии элементарных знаний в вопросе безопасной работы накомпьютере могут возникнуть значительные проблемы со здоровьем.
Рассмотрим основные факторы, влияющие на работоспособность издоровье программистов и пользователей ЭВМ, а также мероприятия, направленныена уменьшение их вредного воздействия.
Электромагнитное излучение
Наиболее вредным производственным воздействием являетсяпобочное электромагнитное и радиационное излучения. Практически все вредноеизлучение возникает в результате работы монитора компьютера, поскольку доляэлектромагнитных полей, создаваемых компонентами системного блока ПК,незначительна.
Побочное электромагнитное излучение (ЭМИ) практически неослабляется никакими защитными экранами или фильтрами, однако конструкцияэлектронно-лучевой трубки современных мониторов уменьшает до минимума излучениев сторону оператора. Соответственно, максимум излучения сосредоточен по бокам исзади от монитора, что предъявляет определенные требования к планированию взаимногорасположения рабочих мест – операторы не должны находиться под влиянием ЭМИсоседних компьютеров.
Другим видом вредного излучения является радиационное,возникающее вместе со свечением люминофора в результате бомбардировкиповерхности экрана электронами. В соответствии с ГОСТ 27954-88 мощность дозырентгеновского излучения на расстоянии 5 см от поверхности экрана при41-часовой рабочей неделе не должна превышать 0,03 мкР/с. Однако уровень этогоизлучения достаточно низок, быстро убывает с увеличением расстояния отповерхности ЭЛТ и не превышает действующих норм.
Основными мероприятиями по защите от воздействия излученияявляются:
экранирование посредством защитных фильтров, что, впрочем,утратило свою актуальность в последнее время ввиду значительного улучшениякачества самих мониторов;
защита расстоянием:
рекомендуемое расстояние от глаз оператора до поверхностимонитора составляет 70 см (минимальное — 30 см);
расположение рабочего места — на расстоянии не ближе 1.2 м отзадней и боковых поверхностей соседних терминалов;
регулярные обследования пользователей у окулиста.
Электрическая опасность
Согласно действующим правилам устройства электроустановокпомещения для работы с ЭВМ и их внешними устройствами относятся к категориипомещений без повышенной опасности (сухие, с нормальной температурой воздуха, стоконепроводящими полами), однако опасность поражения электрическим токомсуществует. При этом стандартное напряжение в 220В, хотя и представляетопределенную опасность для жизни человека, является все-таки менее опасным, чемнапряжения внутри монитора, которые достигают значений в десятки и сотни кВ. Поражениеэлектрическим током возможно в случае нарушения заземления компьютера,повреждения соединительных проводов, защитных корпусов. Кроме того, в результатекороткого замыкания возможно возникновение пожара, который может привести ктяжелым последствиям, так как при горении электронной аппаратуры выделяютсятоксичные газы.
ГОСТ 12.2007-75 устанавливает требования безопасности,предотвращающие или уменьшающие до допустимого уровня воздействие на человекаэлектрического тока.
Одной из обязательных мер электробезопасности при работе скомпьютером является надежное заземление его (так как потребляемая ЭВМ мощностьсоставляет 150-200Вт, а напряжение сети – 220В(+/-15В), то ток заведомо большепорогового Iпор=0,5мА, следовательно, сопротивление защитногозаземления должно равняться Rз=4Ом). Для заземления компьютера, впервую очередь, могут применяться естественные заземлители, любые металлическиеконструкции, имеющие хорошую связь с землей. Если сопротивление естественныхзаземлителей больше нормируемого, то необходимо сооружать искусственныезаземлители. Ими могут быть стальные трубы, угловая сталь, металлическиестержни и др.
Нерациональное освещение
Недостаток или избыток освещения при работе за компьютеромведет к быстрому утомлению, головной боли, падению производительности труда,росту числа ошибок, а при систематическом нарушении режима освещенности – кнарушению зрения.
В дисплейном зале освещение должно быть совместное:естественное (боковое, через окна) и искусственное – и должно соответствоватьтребованиям СНиП 4-79. По конструктивному исполнению искусственное освещениеможет быть двух видов: общее и комбинированное, когда к общему освещениюдобавляется местное.
Как отмечено выше, работа за компьютером относится ккатегории работ высокой точности (размер объектов до 1,0 мм, контраст с фоном –малый, фон – темный), наименьшая необходимая освещенность при этом равна 300лк.
При работе с ЭВМ необходимо соблюдать следующие правила:
прежде, чем начать работу за ПК, пройти всестороннееобследование у окулиста;
терминал не должен быть обращен к окну, так как интенсивнаяосвещенность поля зрения ухудшает контрастность изображения на экране;
равномерное распределение яркости — может быть достигнуто засчет использования нескольких источников света либо применения ламп дневногоосвещения;
оптимальная направленность светового потока – рекомендуемыйугол падения света на рабочую поверхность составляет 60 градусов к ее нормали;
осветительные установки не должны являться источникамиповышенной опасности;
избавиться от бликов можно при помощи штор или жалюзи,ограничивающих световой поток, либо используя специальные экранные фильтры;
стена позади программиста должна быть освещена так же, как иэкран.
Посторонние шумы
При работе различные части компьютера создают постороннийшумовой фон, который отрицательно воздействует на психику человека.Требованиями СН 3223-85 «Допустимые уровни шума на рабочих местах» при работена ПК допускается уровень шума, не превышающий 50 дБ. Однако в современныхмоделях компьютеров наблюдается устойчивая тенденция к снижению уровняпосторонних шумов (значительно ниже установленной нормы), поэтому шумы насегодня являются весьма незначительным вредным фактором.
Микроклимат
Согласно СН 4088-86 «Микроклимат производственныхпомещений» в залах с работающей вычислительной техникой параметрымикроклимата должны быть следующими:
в холодные периоды года температура воздуха, скорость егодвижения и относительная влажность воздуха должны соответственно составлять:22-24 градуса; 0.1 м/с; 40-60%; температура воздуха может колебаться в пределахот 21 до 25 градусов при сохранении остальных параметров в вышеуказанныхпределах.
в теплые периоды года температура воздуха, его подвижность иотносительная влажность воздуха должны соответственно составлять: 23-25градуса; 0.1-0.2 м/с; 40-60%; температура воздуха может колебаться в пределахот 22 до 26 градусов при сохранении остальных параметров в вышеуказанных пределах.
Оптимальный температурный режим можно поддерживать правильноорганизованной вентиляцией рабочего помещения с помощью кондиционеров иувлажнителей. Одним из основных параметров по оптимизации микроклимата исостава воздуха в помещении является обеспечение надлежащего воздухообмена.Расчет воздухообмена в рамках данного дипломного проекта приведен ниже.
Психофизиологическиефакторы
Вредные психофизические воздействия – к ним относятсяфизические и нервно-психические факторы – вызываются сидячим образом работы, атакже вследствие высокого эмоционального и нервно-психического напряжения,поскольку задачи, решаемые программистами, зачастую требуют больших умственныхзатрат.
Для уменьшения вредного влияния этих факторов необходимособлюдать режим работы за компьютером. Продолжительность рабочего днянепосредственно за экраном ПК не должна превышать 4 часов; кроме того,рекомендуется каждый час делать перерыв на 5-10 минут и выполнять легкуюразминку, включающую несколько простых физических упражнений.
Планирование рабочего места
При планировании рабочего места за компьютером необходимоучитывать рассмотренные выше требования:
организационные,
электробезопасности,
по уменьшению влияния вредных психофизических воздействий,
по защите от воздействия побочных излучений,
к микроклимату рабочего помещения,
к освещенности.
Кроме того, компьютер должен быть установлен так, чтобы заним было легко и удобно работать. В процессе работы Ваша поза должна бытьтакой, чтобы Вы не уставали и, чтобы все необходимое для работы былолегкодоступным. Уровень глаз при вертикальном расположении экрана долженприходиться на центр экрана или на 2/3 его высоты. Клавиатуру лучше располагатьна расстоянии 10-20 см от края стола, что позволит запястьям рук опираться остол, либо на коленях. Стул, на котором Вы сидите, должен быть со спинкой ижелательно с подлокотниками.
Расчет воздухообмена
Санитарными нормами установлено, что объем производственныхпомещений на одного работающего должен составлять не менее 15 кубометров, аплощадь помещения — не менее 4.5 кв.м.
В производственных помещениях объемом до 20 кубометров наодного работающего при отсутствии загрязнения воздуха производственнымивредностями вентиляция должна обеспечивать подачу наружного воздуха вколичестве не менее 30 куб.м/час на одного работника, а в помещениях объемом 20- 40 кубометров на одного работающего — не менее 20 куб.м/час. Во всехуказанных случаях при этом должны быть выдержаны нормы по температуре ивлажности воздуха.
Помещение, где располагается рабочее место программиста,имеет площадь 47.5 кв.м и объем 156.5 кубометров. Учитывая вышеприведенныетребования найдем допустимое количество одновременно работающих человек:
 
а) N
б) N
Получаем, что для выполнения указанных требований в данномпомещении могут работать не более десяти человек.
Произведем расчет воздухообмена.
Исходные данные:
1. норма температуры в рабочей зоне для помещений,характеризуемых избытком [>23 Вт/м3] теплоты для легкой работы t = 20 — 22°C ;
2. Объем помещения: 156.5 кубометров.
3. Количество аппаратуры и выделяемая ей мощность:
Монитор SK-3142- K1=2 шт.- W1=150 Вт
ЭВМ IBM PC/AT- K2=2 шт.- W2=250 Вт
Генератор импульсов Г5-75- K3=2 шт.- W3=60 Вт
Осциллограф двухлучевой С1-103- K4=2 шт. — W4=130 Вт
Источник питания Б5-46- K5=1 шт.- W5=400 Вт
Источник питания Б5-47- K6=2 шт.- W6=150 Вт
Вольтметр универсальный В7-40- K7=3 шт.- W7=30 Вт
5. Количество работающих: n = 7.
При расчете будем исходить из требованийсанитарно-профилактических норм, предъявляемых к помещениям типа дисплейногокласса.
Для одного человека необходимо L'=20м3/ч воздуха. Дляудаления тепла выделенного аппаратурой тоже необходим воздухообмен.
Исходя из количества работающих, необходим следующийвоздухообмен
 
L1 = n * L' = 7 * 20 = 140 м3/ч.
 
Для расчета воздухообмена по теплоизбыткам используетсяследующая формула:
 
                     Qя
/>L2= ,
            р *c*( tух-tпр )
 
где Qя — явно выделяемое тепло впомещении в Дж/ч;
p — плотность воздуха — 1,2 кг/м3;
c — теплоемкость воздуха — 1 кДж/кгК;
tух — температура воздуха, уходящегоиз помещения;
tпр — температура воздуха,подаваемого в помещение.
tух обычно определяется по следующейформуле:
 
tух=tрз + t(H-L) ,
 
где tрз — температура в рабочей зоне;
H — высота от пола до центравытяжного отверстия;
t — температурный градиент (0,5 — 1,5°C/м);
L — высота от пола до рабочей зоны.
Избыточное тепло, выделяемоеаппаратурой:
 
Qа = 3600*(W1*K1 +… + W7*K7) = 3600*(2*150+2*250+2*60+2*130+1*400+2*150+3*30)= 3600*1970 Дж/ч = 7092 кДж/ч
 
Избыточное тепло выделяемое людьми:
Qл = 7 чел * 355 кДж/ч = 2485 кДж/ч.
Явно выделяющееся избыточное тепло:
 
Qя = Qа + Qл = 7092 + 2485 = 9577кДж/ч.
 
Температура удаляемого воздуха:
tух = 22 C+1,5 (2,2-1 ) = 24 °C.
Пусть температура поступающеговоздуха
tп=20 °C.
Тогда
/>                  9577
L2 = = 1995 м3/ч
1,2*1*(24 — 20)
Таким образом, получаем, что системавоздухообмена должна обеспечивать собственную производительность 1995 м3/ч дляподдержания нормального микроклимата. Таким требованиям удовлетворяеткондиционер автономный КТА1-2-04Б с компрессорно-конденсаторным агрегатомАК-ВФ-4Х и регулятором относительной влажности В4-51ОУ, который обеспечиваетпроизводительность по воздуху 2000 м3/ч.При обеспечении кондиционеромтемпература поступающего воздуха не более 20 °С.
Экологическаябезопасность
Так как современный компьютер является устройством,практически не оказывающим вредного воздействия на состояние окружающей среды,то можно считать, что процесс работы на ЭВМ экологически безопасен.
В данном разделе проведен анализ зависимости утомляемости отусловий труда применительно к труду программистов, рассмотрены основныефакторы, влияющие на работоспособность и здоровье программистов и пользователейЭВМ, а также мероприятия, направленные на уменьшение их вредного воздействия,произведен расчет воздухообмена.
Из всего выше сказанного можно сделать вывод, что правильноеиспользование компьютера, соблюдение эргономических правил и рабочей дисциплиныможет исключить практически весь спектр вредных воздействий длительной работыза компьютером по отношению к нашему организму.

Заключение
В данной работе была реализована тестовая программа подбораметодов фильтрации для кардиологических аппаратов и систем, основнымдостоинством которой является быстрота и надежность работы, а также доступностьбыстрого просмотра ЭКГ с использованием любых заранее доступных фильтров.Реализация детектора подачи импульса дефибрилляции была необходима дляавтоматического определения R –зубцов с параметрами ГОСТ для дефибрилляторов с программным распознаваниеммомента подачи импульса.
В первой главе был дан обзор методов математической обработкии ЭКГ – анализа.
В технологическомразделе описаны основные принципы объектно-ориентрованного программирования,так как программа строится именно на основе написания классов и объектов.
Также была описанаструктура разрабатываемого программного обеспечения и процессы программирования. В описание включены виды программных окон и тексты наиболее интересныхфункций, остальная часть написанного кода находиться в приложении.
Ворганизационно-экономическом разделе приведен расчет затрат на созданиепрограммного продукта.
В разделе,посвященному охране труда, рассказано, как правильно организовать свой труд приработе с программным продуктом.

Список литературы
 
1.Водолазский Л. А. Основы техники клинической электрографии. – Москва:Медицина.-1966.-270с
2. С.Холзнер Visual C++ 6. Учебный курс. – Петербург: Питер 2000.
3. Шакин В.В. Вычислительная электрокардиография.- М.: Наука.-1981.-166с.
4. ДроздовД. В. Персональный компьютер в качестве электрокардиографа – за и против. // М:>.-1996.-№1.-С. 18-23.
5.Alan Oppenheim and Roland Schafer, Discete-Time Signal Processing,Prentice-Hall, ISBN 0-13-216292-X, 1989.
6.ANSI-AAMI EC18-1982 American National Standart for Diagnosticelectrocardiographic Devices, American Association for the Advancement ofMedical Instrumentation. – Arlington, Virg.-1983.
7.Bailey J. J., Berson A. S., Garson A., et al. Recommendation forstandartization and specification in automated electrocardiography: bandwidthand digital signal processing: A report for health professionals by en ad hoswriting group of the commitee on electrocardiography and cardiacelectrofisiology of the Council on Clinical Cardiology.-American HeartAssociation.-Circulation.-1990.-V. 81. – 730p.
8.Вычислительные системы и автоматическая диагностика заболеваний сердца. Подредакцией Ц. Карераса и Л. Дрейфуса. – Москва: Мир.-1974.-504с.
9. Том СванОсвоение BORLAND C++ 5. – K.: Диалектика,1996. -576 с. ISBN 966-506-030-9.
10. Editor-in-Chief Joseph D. Bronzino,The Biomedical Engineering Handbook, IEEE PRESS, pp 801-917.


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

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.

Сейчас смотрят :

Реферат Особенности судопроизводства с участием присяжных заседателей
Реферат Особенности судебной практики по делам о недостойных наследниках
Реферат Особенности уголовного и гражданского процесса
Реферат Кем я хочу стать
Реферат Основные положения договора энергоснабжения
Реферат Основные вопросы, характеризующие право как науку
Реферат Философизация теологии
Реферат Артуро Тосканини
Реферат Бухгалтерский учёт в экономическом анализе в системе управления предприятием
Реферат Технология проведения гражданской экспертизы
Реферат О предмете и объекте археографии
Реферат Использование метода проектов в процессе ознакомления детей 7 лет с немецкой культурой
Реферат Анализ и планирование цен на продукцию предприятия
Реферат Инвестиционная политика Республики Беларусь на современном этапе 2
Реферат АИС Отдел кадров