Аппаратно-программные средства обработки и интерпретации кардиограмм
Разработка алгоритмов фильтрации и интерпретации электрокардиограмм с использованием сплайн-аппроксимации и интерпретации сигналов на основе вейвлет-анализа. Анализ аппаратно-программного обеспечения регистрации и обработки электрокардиограмм.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | диссертация |
Язык | русский |
Дата добавления | 23.05.2018 |
Размер файла | 788,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Общая характеристика входной и выходной информации
Основной входной информацией для нашей программы является зашумлённая ЭКГ. Наряду с полезным сигналом в ЭКГ присутствуют помехи разного уровня.
Выходной информацией для данной программы являются фильтрованные ЭКГ, в которых помехи исключены.
Структура программного пакета
Основной программный пакет состоит из двух частей:
nfilter.fig - оболочка;
nfilter.m - исходной код, который создан на языке Matlab 7.
Для получения nfilter.exe файла на Matlab существует компилятор MATLAB Compiler. MATLAB Compiler компилируют *.m файлы на *.с (файлы программированные на языке С) и автоматически создает *.exe. Чтобы выполнить такую операцию в командной строке Matlab даётся команда:
mcc -m -B sgl nfilter.m
После выполнения этой команды структура программного пакета будет представлена в следующем виде:
nfilter.exe - оболочка, запускаемая пользователем при загрузке ПО, выполняет следующие функции:
сохранение информации о сеансе работы (конфигурации);
поддержка работы с внутренними базами данных;
определение значений измеренных ЭКГ-параметров;
печать данных и результатов;
работа со справочной информацией;
информация об авторах.
nfilter.c - исходные коды программы на языке программирования С;
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
4.2. Программная реализация алгоритма интерпретации ЭКГ в среде Matlab
Рассмотрим кардиосигнал (второе грудное отведение V2), записанный на кардиографе высокого разрешения с частотой дискретизации 1024 отсчета в секунду. Для вейвлет - разложения применим вейвлет Дебеши db4, имеющий носитель на промежутке [0,7].
1) Загружаем кардиосигнал s0020_rem.mat. Его длина составляет более 70000 отсчетов. Выбираем фрагмент этого сигнала длиной 4096. Проведем разложение сигнала до уровня N=3 и построим графики сигнала и вейвлет коэффициентов (рис. 4.2.1 и 4.2.3).
clc; clear all; close all;
subplot(3,1,1)
w='db4';
Fr=centfrq(w);
[c,l]=wavedec(k1,3,w);
[cd1,cd2,cd3]=detcoef(c,l,[1,2,3]);
[c1,l1]=wavedec(k2,3,w);
[cd21,cd22,cd23]=detcoef(c1,l1,[1,2,3]);
figure(1);
subplot 211; plot(k1);title('1- Bemor ECG V2');
subplot 212; plot(k2);title('2- Bemor ECG V2');
Имеется визуальная разница графиков спектральных коэффициентов двух пациентов. Теперь просмотрим эту разницу в числах. Для этого можно использовать, по крайней мере, два подхода.
Статистические характеристики. Рассмотрим статистические характеристики как вейвлет - коэффициентов, так и элементов сигнала, соответствующих этим коэффициентам. Очевидно (и это подтверждается вычислениями), что среднее значение равно нулю. Для сравнения найдем среднее квадратичное отклонение (команда std) полученных выше вейвлет - коэффициентов cD1, cD2, cD3 и дисперсия сигнала D1, D2, D3 пациентов «1- бемор» и «2- бемор».
scd1=std(cd1); scd2=std(cd2); scd3=std(cd3);
scd21=std(cd21); scd22=std(cd22); scd23=std(cd23);
scd1s=std(Scd1); scd2s=std(Scd2); scd3s=std(Scd3);
scd21s=std(Scd21); scd22s=std(Scd22); scd23s=std(Scd23);
Результаты вычислений приведены в таблице 4.2.1.
Таблица 4.2.1.
Пациенты |
Вейвлет - коэффициенты |
Дисперсия сигнала |
|||||
cD1 |
cD2 |
cD3 |
D1 |
D2 |
D3 |
||
1-бемор |
4.4528 |
11.3565 |
56.7059 |
3.1459 |
5.6638 |
19.9309 |
|
2-бемор |
7.5700 |
16.5377 |
49.4496 |
5.3482 |
8.2589 |
17.3833 |
|
Разница |
0.5882 |
0.6867 |
1.1467 |
0.5882 |
0.6858 |
1.1466 |
На основе таблице 4.2.1 можно сделать следующий вывод, что стандартные отклонения вейвлет-коэффициентов и дисперсии сигнала двух различных пациентов различаются почти в 1.1 раза. Это означает, вычисленные параметры имеют диагностическую значимость.
Существует ещё несколько параметров, такие как энергия, мощность и др. Использование этих параметров улучшает точность постановки диагноза.
4.3 Порядок функционирования программы
Термины и определения
Для работы с программой необходимо ознакомиться с терминами, используемыми в программе.
Экран
Экран - совокупность данных, полностью занимающих экран компьютера. Данные относятся к одной теме или к одному виду действий.
Окно
Окно - прямоугольная область экрана, содержащая функционально связанные данные, относящиеся к одной теме или одному виду действий.
Поле ввода
Поле ввода - место на экране или в окне, предназначенное для ввода или корректировки данных. Каждое поле ввода имеет имя, показывающее, к какому параметру относится значение в поле ввода. Само поле ввода обычно ограничено квадратными скобками [ ]. Поля ввода бывают следующих видов:
поля, обязательные для ввода;
поля, необязательные для ввода;
связанные поля ввода;
поля ввода с прокруткой;
поля ввода со связанным списком.
Если поле является обязательным для ввода, то для того чтобы перейти на следующее поле надо произвести ввод корректной информации в текущее поле. При попытке перехода на следующее поле без ввода данных или при вводе некорректных данных программа сигнализирует звуком об ошибке ввода и не выполняет переход.
Поле, необязательное для ввода, позволяет перейти на следующее поле, не вводя никакой информации, однако при вводе некорректных данных программа выдаст звуковой сигнал и очистит поле ввода.
Для присвоения параметру значения, введенному в поле ввода, ввод должен закончиться одной из клавиш завершения ввода - это или клавиша Enter, или клавиша v, или комбинация клавиш Ctrl-Enter. Если ввод данных в поле ввода не заканчивался клавишей завершения, то присвоение введенных данных соответствующему параметру не произойдет, и после перехода на другое поле ввода клавишами отказа - Esc, ^ либо Ctrl-Esc значение параметра примет прежнее, до его изменения, значение.
Список
Список - способ представления данных. Список имеет обязательную часть - Окно просмотра, и может иметь несколько необязательных полей ввода и полей информации. Перемещение по списку осуществляется с помощью следующих клавиш:
Действие |
Клавиша |
|
На следующую запись |
v |
|
На предыдущую запись |
^ |
|
На первую запись окна |
Ноmе |
|
На последнюю запись окна |
End |
|
Следующая страница списка |
PgDn |
|
Предыдущая страница списка |
PgUp |
|
На первую строку списка |
Ctrl-PgUp |
|
На последнюю строку списка |
Ctrl-PgDn |
Страницей списка называется совокупность записей, помещающихся в окне просмотра. Текущей строкой или записью называется строка, выделенная в списке маркером.
Меню
Меню представляет собой фиксированный список каких-либо значений или действий. Служит для выбора пользователем дальнейших действий или для внесения данных, имеющих ограниченное число вариантов (например, меню используется масштабирование ЭКГ сигналы, где появляются на мониторы). Перемещение по пунктам меню осуществляется клавишами:
Действие |
Клавиша |
|
на следующий пункт |
v или > |
|
на предыдущий пункт |
^ или < |
|
на первый пункт меню |
Ноmе |
|
на последний пункт меню |
End |
Выбрать пункт меню (выбрать действие, определяемое этим пунктом) - выделить этот пункт меню маркером и нажать клавишу Enter. Выход из меню без выбора - Esc.
Функциональные клавиши
Функциональные клавиши - клавиши F1...F12, а также комбинации их или алфавитно-цифровых клавиш с модифицирующими клавишами Shift, Ctrl и Alt. Нажатие функциональных клавиш приводит к выполнению специфичных, связанных с данной клавишей (комбинацией клавиш), функций.
База данных
База данных (БД) - совокупность данных одного вида. Например, создается внутренняя база данных с помощью математических алгоритмов. База данных содержит цифры, означающие амплитуды и частоты.
Назначение клавиш
Действие |
Клавиша |
|
курсор влево |
< |
|
курсор вправо |
> |
|
в конец поля ввода |
End |
|
в начало поля ввода |
Home |
|
отказ от действия; переход к предыдущему полю ввода; прекращение выполнения текущего действия |
Esc |
|
Завершение ввода в поле ввода; переход к следующему полю ввода; активизация действия (в меню) |
Enter |
|
переключение блока цифровой клавиатуры |
Num Lock |
|
переключение блока цифровой клавиатуры |
Caps Lock |
|
активизация режима добавления; переключение между режимами ВСТАВКА-ЗАМЕНА |
Ins |
|
Активизация режима удаления; удаление символа в позиции курсора |
Del |
|
удаление символа перед курсором |
Backspace |
|
удаление символов от позиции курсора |
Ctrl-End |
|
удаление символов во всей строке |
Ctrl-Home |
Режим ВСТАВКА - вводимые символы вставляются в позиции курсора. Текст справа от курсора сдвигается.
Режим ЗАМЕНА - вводимые символы вставляются в позиции курсора. Имеющиеся символы затираются.
Если названия клавиш написаны через тире, то их необходимо нажимать одновременно. Например, сочетание Ctrl-Enter означает, что необходимо нажать клавишу Ctrl, и, не отпуская ее, однократно нажать клавишу Enter (но не наоборот).
При выполнении любых действии по изменению данных следует помнить, что для сохранения результата действие необходимо закончить одной клавиш завершения Enter, v, Ctrl-Enter. Для отказа от сделанных изменений необходимо завершить действие клавишами отказа - Esc, ^ или Ctrl-Esc. Еще одно существенное отличие клавиш Esc и Enter от Ctrl-Esc и Ctrl-Enter заключается в том, что при выполнении некоторых действий, которые могут привести к необратимым последствиям (например, потере введенных данных), при нажатии комбинации клавиш Ctrl-Esc или Ctrl-Enter программа выполняет заданные действия без запросов. При выполнении действий через клавиши Esc или Enter программа запрашивает подтверждение на выполнение действия.
4.4 Инструкция для пользователей программы
Сначала загружается основной файл nfilter.exe, где расположена оболочка в памяти компьютера. Оболочка состоит из несколько частей:
При работе с программой можно пользоваться следующими кнопками клавиатуры:
<, v - копки понижения параметров;
>, ^ - копки повышения параметров;
F10 - переход на строку меню;
Enter - подтверждения выбранных параметров;
Tab - переход с одной управляющей кнопки на другую.
4.4 Выводы
1. В главе дано описание и функциональное назначение программного пакета для анализа и обработки ЭКГ - данных, его структура и область применения, краткое описание основных терминов, понятий и элементов программы, что облегчает задачу пользователя в процессе ознакомления с программой и ее практического применения.
2. Даны основные характеристики сигналов ЭКГ, области применения разработанного программного пакета, характеристика входной и выходной информации, описание структуры программного пакета.
3. Для пользователей - медиков, не имеющих специальной компьютерной подготовки, дан порядок функционирования программ и обозначены клавиши взаимодействия для меню, списка, функций, расчетов.
4. Разработана специальная инструкция для пользователей программы с описанием загружаемых файлов, получением сигналов, даны параметры фильтра и отфильтрованных сигналов, даны параметры фильтра и уровень шума. Программа предоставляет возможность качественной оценки работы фильтра.
5. Предложен новый подход анализа и постановки диагноза, сердечных болезней основанных на вейвлет преобразований. Такой подход даёт возможность улучшить качество диагноза путем сбора статистического материала и сравнения показателей здоровых и больных пациентов.
ЗАКЛЮЧЕНИЕ
В ходе выполнения диссертационной работы были достигнуты следующие результаты.
1. Исследованы существующие в настоящее время аппаратно-программные средства регистрации и обработки ЭКГ. На основании обширного фактического материала делается вывод об основных преимуществах компьютерной регистрации сигналов ЭКГ по сравнению с аналоговой с точки зрения фильтрации шумов различного происхождения.
2. Анализ видов помех, возникающих при регистрации сигналов ЭКГ, применение цифровых фильтров устранения шумов и совершенствования аппаратуры и методик регистрации дает возможность увеличить точность диагноза.
3. Разработанный алгоритм решения вопроса фильтрации сигналов ЭКГ, осуществляемый на основе сплайн аппроксимации данных ЭКГ внутри каждого RR-интервала, имеет очевидные алгоритмические преимущества: высокую скорость реализации, простые численные алгоритмы, требуемую точность обработки.
4. Предлагаемый собственный подход интерпретации ЭКГ основанный на вейвлет-анализа увеличивает точность диагноза сердечных заболеваний (аритмии).
5. Разработанный программный пакет и инструкции пользователя имеют большую практическую значимость при расшифровке сигналов ЭКГ с целью постановки диагноза, так как обеспечивает работу в реальном масштабе времени, устраняет наиболее характерные виды шумов, может быть реализован на обычном персональном компьютере и может быть применен для обучения магистров специальности 5А521909 - «Аппаратно-программное обеспечение биотехнических систем».
ЛИТЕРАТУРА
Distributed Component Object Model Protocol. - Microsoft, version 1.0, January 1998.
E.B. Аксенов и др., Системы сбора и обработки электрофизиологической информации на основе сигма-дельта аналого-цифрового преобразования
//Биомедицинские технологии и радиоэлектроника. - №12-2001. - стр. 56-65.
Водолазский Л. А. Основы техники клинической электрографии.- Москва: Медицина.-1966.-270 с.
Шакин В. В. Вычислительная электрокардиография.- М.: Наука.-1981.-166 с.
Дроздов Д. В. Персональный компьютер в качестве электрокардиографа // М: Компьютерные технологии в медицине.-1996.-№1.-С. 18-23.
Селищев В.А Автоматизированное проектирование биомедицинских электронных систем // Биомедицинские технологии и радиоэлектроника..- М.: №12,2001. - с. 5-17.
Роджерсон Д. Основы СОМ. - М: Русская редакция ТОО " Channel Trading Ltd.". -1997
Чаппел Д. Технологии ActiveX и COM. - Microsoft Press- 1997.
Хабибуллин И.Ш. Создание распределенных приложений на Java 2 // М.- 2002 г. 704 стр.
Блейхут Р. Быстрые алгоритмы цифровой обработки сигналов. - M.: Мир 1989.
Голд Б., Рэйдер Ч. Цифровая обработка сигналов: Пер. с англ./ Под ред. А. M. Трахтмана. -M.: Советское радио, 1973.
Латфуллин И. А., Тептин Г. М. Возможности электрокардиографии высокого разрешения. - Казанский медицинский журнал, 1998, 79, 2.
Рабинер Л., Гоулд Б. Теория и применение цифровой обработки сигналов: Пер с англ./ Под ред. Ю. И. Александрова. - M.: Мир, 1978.
Степура О. Б., Остроумова О. Д., Курильченко И. Т., Мартынов А. И. Клиническая значимость сигналусреднённой электрокардиографии. - Российские Медицинские Вести N1, 1997.
М. С. Куприянов, Б. Д. Матюшкин. Цифровая Обработка Сигналов - СПБ: Политехника, 2000, С. 304-325.
В. В. Мурашко, А. В. Струтынский. Электрокардиография - Москва: Медицина, 1991
А. З. Чернов, М. И. Кечкер. Электрокардиографический атлас - Москва: Медицина, 1979
В. Н. Орлов. Руководство по электрокардиографии - Москва: Медицина, 1984.
Р. М. Баевский, Г. Г. Иванов, Вариабельность сердечного ритма: теоретические аспекты и возможности клинического применения - Москва, 2000, Гл. 3.2.
Г. Г. Иванов. Электрокардиография высокого разрешения - Москва, 1999.
К. Грегори. Использование Visual C++ 6.0. Вильямс, Москва, 2000.
Аввад Насер, С.В. Солошенко, С.А.Филист. Спектральное разложение электрокардиосигналов на нестационарных отрезках собственных частот // Конференция Биомедприбор, 2000.
А.П.Иванов, И.А.Эльгардт, Н.С.Сдобнякова, В.А.Леонтьев. Некоторые особенности спектрального анализа сердечного ритма в оценке вегетативного баланса у больных инфарктом миокарда. // Конференция Биомедприбор, 2000.
Т.В.Истомина, Л.Ю.Кривоногов. Перспективы применения ранговых методов для обнаружения границ информативных участков электрокардиосигнала. // Конференция Биомедприбор, 2000.
С.А. Гаспарян, Т.В. Зарубина, С.Л. Швырев. Развитие интегральной автоматизированной системы постоянного интенсивного наблюдения за состоянием пациентов реанимационных отделений. // Конференция Биомедприбор, 2000.
Шитов А. Б., Разработка численных методов и программ, связанных с применением вейвлет-анализа для моделирования и обработки экспериментальных данных, Иваново -- 2001.
И.М. Соболь. Многомерные квадратурные формулы и функции Хаар. - М.: «Наука», 1969.
Мусаев М.М. Развитие спектральных методов в обработке сигналов и изображений. Вестник ТУИТ, №1, 2007 г. - 14-18 с.
Завьялов Ю. С. и др. Методы сплайн- функций. М.: Наука, 1980. 352с
Хемминг Р. Цифровые фильтры. М.: Сов. радио, 1980. 220с.
Curtin M. Sigma-Delta techniques reduce hardware count and power consumption in biomedical analog front end // Analog Dialogue Journal.1994.V. 28.№2.P. 6-8.
Medical Instrumentation. Application and Design. // editor Webster J.G.- Boston, Houghton Mifflin-1992.-790p.
Neuman M. R. Biopotential Electrodes, in The Biomedical Engineering Handbook, Editor-in-Chief J. D.Bronzino. // CRC and IEEE Press.- Boca Raton, Florida.-1995.-P. 745-757.
Вычислительные системы и автоматическая диагностика заболеваний сердца. Под. ред. Ц. Карераса и Л. Дрейфуса.- М.: Мир.-1974.-504с.
Куриков С. Ф., Прилуцкий Д. А., Селищев С. В. Технология ? - ? преобразования в многоканальных электрокардиографах. // Тезисы докладов Международной конференции по биомедицинскому приборостроению “Биомедприбор-96”.- Москва, ВНИИМП РАМН.-8-10 октября 1996.-С. 26-27.
Шакин В. В. Вычислительная электрокардиография.- М.: Наука.-1981.-166с.
Hideki I. et al. An efficient encoding method for electrocardiography using spline functions/ // System and Computers in Japan. -1985. -V.16. -N 3. -P. 85-94.
Pitas I., Venetsanooulos A.N. Nonlinear order statistic filters for img filtering and edge detection. // North Holland. Signal Processing. -1986. -N 10. -P. 395-413.
Харатьян Е.И. Математическая обработка сигналов в системе мониторирования электрокардиограмм. // Автореферат диссертации на соискание уч. ст. к.т.н. - Москва, 1997. - 24с.
Wartak J., Milliken J. A., Karchmar J. Computer program for pattern recognition of electrocardiograms // Comput. Biomed. Res. -1970. -V. 3. -N 4. - P. 344-374.
Гуревич М.Б., Злочевский М.С. Выбор представительного кардиоцикла при контурном анализе ЭКГ на микроЭВМ. // Применение мат. методов обработки медико-биологических данных и ЭВМ в мед. технике. - М.: ВНИИМП, 1984. - С.75-77
Wortzman D. et al. A hybryel system for measurement and interpretation of electrocardiograms. // Ann. N.Y. Acad. Sci., 1968. - V. 128. - P. 875.
Фу К. Структурные методы в распознавании образов. - М.: Мир, -1977, С.25-115.
Валужис А.К., Рашимас А.П. Статистический алгоритм структурного анализа ЭКС. // Кибернетика, 1979, N 3, С.91-95.
Лебедев В.В., Калантар В.А., Аракчеев А.Г., Корадо И.В. Испытательный сигнал для проверки измерительных алгоритмов электрокардиографических автоматизированных систем. // Мед. Техника. - 1997. - N 3. - C. 40 - 41.
http://shitov.ru/sci/pdf/thesis/text/thesis.pdf
http://www.ekg.ru
http://www.biosignal.ru
http://www.google.ru
http://ya.ru
ПРИЛОЖЕНИЕ
1. Список и обозначение аббревиатур
ЭК - Электрокардиограф
ЭКС - Электрокардиосигнал
ЭКГ - Электрокардиограмма
МЭК - Международная Электротехническая Комиссия
АЦП - Аналого-цифровой преобразователь
ЦАП - Цифро-аналоговый преобразователь
ПО - Программное обеспечение
АЧХ - Амплитудно-частотная характеристика
ФНЧ - Фильтр нижних частот
ФВЧ - Фильтр верхних частот
ЦОС - Цифровая обработка сигналов
ПСС - Псевдослучайный сигнал
ППЗУ - Программируемое постоянно-запоминающее устройство
ЦИК - Циклический избыточный код
МЗР - Младший значащий разряд
2. Исходный код программы
function sgolaydemo(action);
if nargin==0,
action = 'initialize';
end
x1 = ecg(500).';
x = [x1;x1;x1;x1;x1;x1];
y = sgolayfilt(x,0,15); %Бесшумный сигнал
K = fft(y);
m = abs(K); p = unwrap(angle(K));
C = (0:length(K)-1)*99/length(K);
switch action,
case 'initialize',
hfig = figure('NumberTitle','off',...
'Name','EKG - Laziz Nosirov');
bgc = get(0,'DefaultUIControlBackgroundColor');
% Структура(рамка) для всего средства управления
framepos = [.07.02.65.35];
uicontrol(...
'Style','frame',...
'Units','normalized',...
'BackgroundColor',bgc,...
'Position',framepos);
% Структура(рамка) для секции параметров
framepos2 = [.10.04.30.29];
uicontrol(...
'Style','frame',...
'Units','normalized',...
'ForegroundColor','black',...
'Position',framepos2);
% Параметры
titlepos = [.11.32.19.03];
titlelabel = 'Параметры фильтра';
uicontrol(...
'String',titlelabel,...
'HorizontalAlignment','left',...
'Style','text',...
'Units','normalized',...
'BackgroundColor',bgc,...
'ForegroundColor','black',...
'Position',titlepos);
%купхад полином
menuname1 = 'Степень полинома';
tposition1 = [.11.11.2.05];
uicontrol(...
'String',menuname1,...
'HorizontalAlignment','left',...
'Style','text',...
'Units','normalized',...
'ForegroundColor','black',...
'Position',tposition1);
mposition1 = [.29.11.1.05];
popstr1 = {'1','2','3','4'};
degreehndl = uicontrol('String',popstr1,...
'Style','Popup',...
'Tag','degreepopup',...
'Units','normalized',...
'Backgroundcolor','white',...
'Position',mposition1,...
'UserData',str2double(popstr1),...
'CallBack','sgolaydemo(''recal'')');
% SG создают меню размера
menuname2 = 'Размер структуры';
tposition2 = [.11.06.2.05];
uicontrol(...
'String',menuname2,...
'Style','text',...
'HorizontalAlignment','left',...
'Units','normalized',...
'ForegroundColor','black',...
'Position',tposition2);
mposition2 = [.29.07.1.05];
popstr2 = {'5','15','25','55'};
framehndl = uicontrol('String',popstr2,...
'Style','Popup',...
'Tag','framepopup',...
'Backgroundcolor','white',...
'Units','normalized',...
'Position',mposition2,...
'UserData',str2double(popstr2),...
'CallBack','sgolaydemo(''recal'')');
% Шумовая разница slider
sliname1 = 'Шумовой уровень';
tposition4 = [.14.25.21.05];
uicontrol(...
'String',sliname1,...
'Style','text',...
'Units','normalized',...
'BackgroundColor',bgc,...
'ForegroundColor','black',...
'Position',tposition4);
mposition4 = [.14.20.21.05];
sliderhndl = uicontrol('Style','slider',...
'Tag','noiseslider',...
'Units','normalized',...
'Value',0.7,...
'Min',0,'Max',1.4,...
'Position',mposition4,...
'CallBack','sgolaydemo(''recal'')');
% Информация и закрывающий кнопки
tposition7 = [.50.24.19.1];
uicontrol(...
'String','Инфо',...
'Units','normalized',...
'Position',tposition7,...
'Callback','nfilter(''info'')');
tposition8 = [.50.04.19.1];
uicontrol(...
'String','Выход',...
'Units','normalized',...
'ForegroundColor','black',...
'Position',tposition8,...
'Callback','sgolaydemo(''done'')');
% кнопки АВТОРЫ
tposition7 = [.50.14.19.1];
uicontrol(...
'String','Авторы',...
'Units','normalized',...
'Position',tposition7,...
'Callback','nfilter(''avtor'')');
% Set up the MiniCommand Window
top=0.90;
left=0.80;
right=0.96;
bottom=0.05;
labelHt=0.05;
spacing=0.005;
promptStr=num2str(y);
% First, the MiniCommand Window frame
frmBorder=0.02;
frmPos=[left-frmBorder bottom-frmBorder...
(right-left)+2*frmBorder (top-bottom)+2*frmBorder];
uicontrol(...
'Style','frame',...
'Units','normalized',...
'Position',frmPos,...
'BackgroundColor',[0.50 0.50 0.50]);
% Then the text label
labelPos=[left top-labelHt (right-left) labelHt];
uicontrol(...
'Style','text',...
'Units','normalized',...
'Position',labelPos,...
'BackgroundColor',[0.50 0.50 0.50],...
'ForegroundColor',[1 1 1],...
'String','Циф. сигнал после фильт.');
% Then the editable text field
mcwPos=[left bottom (right-left) top-bottom-labelHt-spacing];
mcwHndl=uicontrol(...
'Style','edit',...
'HorizontalAlignment','left',...
'Units','normalized',...
'Max',10,...
'BackgroundColor',[1 1 1],...
'Position',mcwPos,...
'Callback','graf2d(''eval'')',...
'String',promptStr);
% Save this handle for future use
set(gcf,'UserData',mcwHndl);
% Начальные ---------------------------------
noise = 0.7;
degree = 0;
frame = 5;
title('Бесшумный ЭКГ')
ha1 = subplot('Position',[.07.79.65.15]); plot(y)
set(gca,'XTick',[])
axis([0 3000 -.6.8])
title('Зашумлённая ЭКГ - Shovqinli EKG')
ha3 = subplot('Position',[.07.59.65.15]); plot(C,m)
set(gca,'XTick',[]);
% axis([0 3000 -.6.8])
title('АЧХ')
ha2 = subplot('Position',[.07.38.65.15]); plot(y)
set(gca,'XTick',[])
axis([0 3000 -.6.8])
title('Фильтрованным EKG - Filtrlangan EKG')
ud.handles.ax = [ha1 ha2 ha3];
ud.handles.uis = [degreehndl framehndl sliderhndl];
set(hfig,'UserData',ud);
update_gui(y,noise,degree,frame)
case 'recal',
hfig = gcf;
ud = get(hfig,'UserData');
hn = ud.handles.uis(3);
hd = ud.handles.uis(1);
hf = ud.handles.uis(2);
noise = get(hn,'Value');
degindx = get(hd,'Value');
deg = get(hd,'UserData');
degree = deg(degindx);
frmindx = get(hf,'Value');
frm = get(hf,'UserData');
frame = frm(frmindx);
update_gui(y,noise,degree,frame)
case 'info',
ttlStr = ' ';
hlpStr1=...
['Этот пример показывает интерпритации и обработка электрокардиограмм,' sprintf('\n')...
'который алгоритм построен на основе БПФ.' sprintf('\n')...
''];
helpwin(hlpStr1, ttlStr);
case 'avtor',
ttlStr = 'Автор данного работ:';
hlpStr1=...
['Магистрант Носиров Л., ТУИТ, ФИТ, кафедра "Компьютерные системы", группа 909-08' sprintf('\n')...
'' sprintf('\n')...
'' sprintf('\n')...
''];
helpwin(hlpStr1, ttlStr);
case 'done',
close(gcf);
end
function [s,f] = update_signal(y,noise,degree,frame)
%UPDATE_SIGNAL Повторно вычисляет шумный ECG и фильтрованные ECG сигналы.
v = 0.05*noise*randn(3000,1); % Шум
s = y + v; % Шумный ЭКГ
f = sgolayfilt(s,degree,frame);
function update_gui(y,noise,degree,frame)
%UPDATE_GUI Эта функция называется, чтобы модернизировать GUI с новыми ценностями.
hfig = gcf;
[s,f] = update_signal(y,noise,degree,frame);
ud = get(hfig,'UserData');
axhdlnp = ud.handles.ax(1);
axhdlfp = ud.handles.ax(2);
hdn = get(axhdlnp,'Children');
hdf = get(axhdlfp,'Children');
set(hdn,'YData',s);
set(hdf,'YData',f);
function x = ecg(L)
a0 = [0,1,40,1,0,-34,118,-99,0,2,21,2,0,0,0]; % Шаблон
d0 = [0,27,59,91,131,141,163,185,195,275,307,339,357,390,440];
a = a0 / max(a0);
d = round(d0 * L / d0(15)); % Масштаб их, чтобы соответствовать в длине L
d(15)=L;
for i=1:14,
m = d(i): d(i+1) - 1;
slope = (a(i+1) - a(i)) / (d(i+1) - d(i));
x(m+1) = a(i) + slope * (m - d(i));
end
Размещено на Allbest.ru
...Подобные документы
Применение вейвлет-преобразования для сжатия и обработки медицинских сигналов и изображений. Разработка алгоритма автоматизированного выделения PQRST-признаков в сигнале электрокардиограмм с помощью вейвлет-инструментария математического пакета Matlab.
дипломная работа [4,6 M], добавлен 16.07.2013Аналитический обзор видеосистем с элементами интеллектуальной обработки видеоконтента: FaceInspector, VideoInspector Xpress. Разработка алгоритма организации вычислительных средств комплекса, в структуру поэтапного решения задачи анализа видеообъекта.
дипломная работа [3,4 M], добавлен 14.06.2012Разработка аппаратно-программного комплекса для осуществления идентификации объектов управления на основе вещественного интерполяционного метода. Анализ работоспособности аппаратно-программного комплекса, пример идентификации объекта управления.
магистерская работа [2,2 M], добавлен 11.11.2013Разработка программного обеспечения для реализации криптографической защиты информации. Обоснование выбора аппаратно-программных средств. Проектирование модели информационных потоков данных, алгоритмического обеспечения, структурной схемы программы.
дипломная работа [2,0 M], добавлен 10.11.2014Разработка программного обеспечения, предназначенного для изменения характеристик исходного звукового сигнала с целью изменения характеристик его звучания. Алгоритмы обработки и фильтрации звукового сигнала, редактирование его, изменение темпа и уровня.
дипломная работа [1,8 M], добавлен 08.07.2008Обзор существующего программного обеспечения для автоматизации выделения границ на изображении. Разработка математической модели обработки изображений и выделения контуров в оттенках серого и программного обеспечения для алгоритмов обработки изображений.
дипломная работа [1,7 M], добавлен 27.03.2013Разработка и реализация многомасштабного анализа дискретных сигналов путем вейвлет-преобразований и структурной индексации, объединение методов в единую систему. Поисково-исследовательский характер и направление на упрощение многомасштабного анализа.
дипломная работа [3,0 M], добавлен 01.07.2008Разработка математической модели и создание программного средства для составления маршрута движения детали по участкам механической обработки механосборочного цеха. Структура и алгоритм работы программного продукта. Программные средства разработки.
курсовая работа [65,4 K], добавлен 21.11.2013Анализ существующих алгоритмов обработки информации человеком и современных моделей памяти. Разработка алгоритмов и математической модели ассоциативного мышления. Имитационная модель обработки информации. Компьютерный эксперимент по тестированию модели.
курсовая работа [2,3 M], добавлен 19.11.2014Изучение и программная реализация в среде Matlab методов обработки, анализа, фильтрации, сегментации и улучшения качества рентгеновских медицинских изображений. Цифровые рентгенографические системы. Разработка статически обоснованных алгоритмов.
курсовая работа [4,7 M], добавлен 20.01.2016Аппаратно-механические, машинно-логические, информационно-командные, интерфейсные и прикладные функции программного обеспечения. Системное ПО, операционные и интерфейсные системы, средства отладки. Программа расчета внутренней стоимости ценных бумаг.
курсовая работа [846,4 K], добавлен 09.03.2011Анализ существующих алгоритмов фильтрации и сегментации изображений. Разработка алгоритмов обработки видеопотока на основе выделенных быстрых методов. Реализация принимающей части цепочки сервер-клиент, получающую видеопоток с мобильного устройства.
дипломная работа [337,5 K], добавлен 24.01.2016Структурные подразделения и отделы организации, ее технические программные средства. Разработка приложений обработки данных на ассемблере, языке программирования высокого уровня. Тестирование и оптимизация программных модулей. Разработка документации.
отчет по практике [175,0 K], добавлен 30.09.2022Методика исследования и анализа средств аудита системы Windows с целью обнаружения несанкционированного доступа программного обеспечения к ресурсам вычислительных машин. Анализ угрозы информационной безопасности. Алгоритм работы программного средства.
дипломная работа [2,9 M], добавлен 28.06.2011Методы создания сайта; выбор и сравнение программных платформ. Разработка структуры и дизайна сайта. Установка Joomla!, настройка расширений и выбор хостинга. Аппаратно-программные способы и средства обеспечения информационной безопасности веб-сайта.
дипломная работа [3,6 M], добавлен 08.04.2014Расчет издержек предприятия на разработку программного продукта и экономической эффективности от его внедрения. Топология физических связей и структуризация сети. Характеристика программного обеспечения. Средства автоматизации, описание алгоритма задачи.
дипломная работа [867,6 K], добавлен 05.11.2015Возможности среды программирования delphi при разработке приложения с визуальным интерфейсом. Отладка программных модулей с использованием специализированных программных средств. Тестирование программного обеспечения. Оптимизация программного кода.
курсовая работа [974,0 K], добавлен 21.12.2016Системно–алгоритмическая модель аппаратно–программного комплекса автоматического контроля параметров микроклимата теплицы. Программная реализация работы клавиатурной матрицы, измерения влажности и 1-Wire интерфейса для связи с цифровым термометром.
дипломная работа [920,1 K], добавлен 02.02.2016Состав, параметры технических средств. Выработка общего ключа для шифрования/расшифровки сообщения. Структура подключения ПЛИС с персональным компьютером по Ethernet. Модули формирования электронно-цифровой подписи. Архитектура стандарта Gigabit Ethernet.
дипломная работа [3,6 M], добавлен 13.09.2017Анализ видов обеспечения автоматизированных систем предприятия. Средства программирования распределенных систем обработки информации. Изучение особенностей использования технологии распределенных объектов. Эксплуатация программного обеспечения системы.
отчет по практике [486,0 K], добавлен 23.11.2014