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

  • Матыцина Ирина Александровна
  • кандидат науккандидат наук
  • 2019, ФГБОУ ВО «Рязанский государственный радиотехнический университет имени В.Ф. Уткина»
  • Специальность ВАК РФ05.11.17
  • Количество страниц 223
Матыцина Ирина Александровна. Алгоритм мониторирования состояния больных легочными заболеваниями для поддержки диагностических решений: дис. кандидат наук: 05.11.17 - Приборы, системы и изделия медицинского назначения. ФГБОУ ВО «Рязанский государственный радиотехнический университет имени В.Ф. Уткина». 2019. 223 с.

Оглавление диссертации кандидат наук Матыцина Ирина Александровна

ВВЕДЕНИЕ

1 ОБЗОР И АНАЛИЗ СОВРЕМЕННОГО СОСТОЯНИЯ ВОПРОСОВ РАЗРАБОТКИ МЕДИЦИНСКИХ СИСТЕМ ДИАГНОСТИКИ ЛЕГОЧНЫХ ЗАБОЛЕВАНИЙ

1.1 Анализ кашлевых толчков

1.1.1 Структура кашлевых фрагментов

1.1.2 Классификация кашлевых фрагментов

1.2 Информационные технологии для диагностики легочных заболеваний

1.2.1 Развитие информационных технологий и баз данных при диагностике легочных заболеваний

1.2.2 Проблемы диагностики легочных заболеваний

1.2.3 Степень разработанности темы исследования

1.3 Существующие методы анализа и распознавания звуковых элементов

1.4 Методы распознания речи

1.5 Логико-лингвистическое моделирование

1.5.1 Особенности нечетких систем

1.6 Выводы по первой главе

2 РАЗРАБОТКА АЛГОРИТМА ОБРАБОТКИ ИНФОРМАЦИИ

2.1 Описание информационных потоков системы

2.1.1 «Маршрут» пациента

2.2 Предварительная обработкамониторинговой записи

2.3 Исследование параметров звукового сигнала, характеризующих кашель

2.3.1 Анализ временной области сигнала

2.3.1.1 Коэффициент корреляции позитивной части огибающей с эталоном

2.3.1.2 Интегральная ошибка между позитивной и негативной огибающими

2.3.2 Анализ спектрограммы сигнала

2.3.2.1 Коэффициент корреляции с эталоном на характерной частоте

2.3.2.2 Среднее значение по окну спектрограммы

2.4 Выводы по второй главе

3 РАЗРАБОТКА АЛГОРИТМА КЛАССИФИКАЦИИ ВЫДЕЛЕННЫХ ФРАГМЕНТОВМОНИТОРИНГОВОЙ ЗАПИСИ

3.1 Разработка алгоритма обработки

3.2 Использование нечеткой логики для классификации

3.3 Построение функций принадлежности

3.4 Выводы по третьей главе

4 МЕТОДИКА И ТЕХНИКА ЭКСПЕРИМЕНТА

4.1 Техника эксперимента

4.2 Методы экспериментов и обработки экспериментальных данных

4.3 Выводы по четвертой главе

5 РАЗРАБОТКА ЭЛЕМЕНТОВ ИНФОРМАЦИОННОЙ СИСТЕМЫ МЕДИЦИНСКОГО НАЗНАЧЕНИЯ ДИАГНОСТИКИ ЛЕГОЧНЫХ ЗАБОЛЕВАНИЙ

5.1 Проектирование ИС

5.2 Выбор средства реализации программного продукта

5.3 Критерии распознавания звуковых сигналов кашля и их параметры

5.3.1 Программное представление критерия корреляции положительной части совмещенных огибающих

5.3.2 Программное представление критерия корреляции по амплитуде

5.3.3 Программное представление критерия суммы окна спектрограммы

5.3.4 Программное представление критерия суммы окна спектрограммы в сравнении с эталоном

5.3.5 Программное представление критерия интегральной ошибки между позитивной и негативной огибающими

5.4 Разработка ИС распознавания звуковых сигналов кашля поддержки принятия решения лечащему врачу

5.5 Анализ результатов обработки

5.6 Выводы по пятой главе

ЗАКЛЮЧЕНИЕ

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

ПРИЛОЖЕНИЕ

Приложение А. Список сокращений, аббревиатур, условных обозначений

Приложение Б. Листинг программы

Приложение В. Таблица Методики и приборы диагностики при легочных

заболеваниях

Приложение Г. Результат обработки 40 минутной звуковой записи

Приложение Д. Результат обработки 52 минутной звуковой записи

Приложение Е. Результат обработки 160 минутной звуковой записи

Приложение Ж. Свидетельстов о государственной регистрации программы

для ЭВМ

Приложение И. Акт внедрения лечебную работу БУЗ ВО «ВГКБСМП №1»

Приложение К. Акт внедрения в образовательный процесс кафедры

«Факультетской терапии» ФГБОУ ВО «ВГМУ им. Н.Н. Бурденко»

Приложение Л. Акт внедрения в образовательный процесс кафедры «Высшей

математики и информаФГБОУ ВО «ВГУИТ»

Приложение М. Результаты апробации работы

Рекомендованный список диссертаций по специальности «Приборы, системы и изделия медицинского назначения», 05.11.17 шифр ВАК

Введение диссертации (часть автореферата) на тему «Алгоритм мониторирования состояния больных легочными заболеваниями для поддержки диагностических решений»

ВВЕДЕНИЕ

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

Степень разработанности темы исследования. В мониторировании легочных заболеваний существуют 4 подобные разработки. Туссограф ИКТ-1, разработанный Провоторовым В.М. в г. Воронеже в 1989 году. Главный недостаток - громоздкость оборудования, т.е. его стационарность и время диагностики - не более 8 часов. The Liecester Cough Monitor, UK, разработанный группой авторов Birring S.S., Fleming T., Matos S., Raj A.A., Evans D.H., Pavord

I.D. Данная система основана на скрытых марковских моделях, статистическом методе, который может быть использован для характеристики спектральных свойств изменяющегося во времени образца. Главный недостаток - высокая стоимость. Pulmatrack, Karmel Sonix, Israel - диагностика проводится не только по звуковой записи кашлей пациента, но и по показателям датчиков, прикрепленных к грудной клетке пациента. Разработчики Vizel E1, Yigla M, Goryachev Y, Dekel E, Felis V, Levi H, Kroin I, Godfrey S, Gavriely N. VitaloJak cough monitor, UK - подобен холтеру. Чувствительные элементы прибора прикрепляют к грудной клетке пациента, и параллельно производится звуковая запись. Наличие датчиков накладывают ограничения на деятельность пациента. Разработчиками системы являются: K McGuinness, K Holt, R Dockry, J Smith.

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

Поставленная цель достигается в результате решения следующих задач:

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

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

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

Научная новизна.

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

2 Предложена методика обработки информации мониторинговой записи для выделения возможных кашлевых фрагментов и их классификации по типу ка-

шель-шум, использующая предварительную обработку сигнала, выделение фрагментов записи, которые могут быть кашлем и использование правил нечеткой логики на основе разработанных критериев и позволяющий классифицировать более 92,5% (п. 1, спец. 05.11.17).

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

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

- разработана и внедрена методика анализа мониторинговой записи для численной оценки кашлевых толчков пациента в лечебную работу БУЗ ВО «ВГКБСМП №1», образовательный процесс кафедры факультетской терапии ФГБОУ ВО «ВГМУ им. Н.Н. Бурденко» и образовательный процесс кафедры высшей математики и информационных технологий ФГБОУ ВО «ВГУИТ»;

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

- создан модуль неинвазивного мониторинга легочных заболеваний, основой которого является зарегистрированная программа №2016661088 «Информационная система распознавания звуковых сигналов кашля».

Метод исследования.

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

На защиту выносятся следующие основные результаты работы:

1 Система критериев для выделения фрагментов кашля при обработке информации мониторинговой записи, каждый из которых позволяет правильно классифицировать до 88% кашлевых фрагментов.

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

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

Апробация работы. Основные положения и результат диссертационной работы докладывались и обсуждались на международных научно-технических конференциях: «Кибернетика и высокие технологии XXI века» (Воронеж, 2012 г., 2013 г.), международной научной Интернет-конференции «Математическое и компьютерное моделирование в биологии и химии. Перспективы развития» (2013 г.), международных научно-технических конференциях «Актуальные проблем прикладной математики, информатики и механики» (Воронеж, 2016 г., 2017 г.), международной научно-технической конференции «Современные технологии в науке и образовании» СТН0-2016 (Рязань, 2016 г.); международных научных конференциях «Математические метод в технике и технологиях» (Санкт-Петербург, 2016 г., 2017 г., Минск 2017 г.); на отчетных научно -практических конференциях профессорско-преподавательского состава и научных работников ФГБОУ ВО «ВГУИТ» 2012-2018 гг.

Публикации. По теме диссертационного исследования опубликовано 27 печатных работ (из них 1 научная статья опубликована в Scopus, 3 в рецензируемых журналах, рекомендованных ВАК при Минобрнауки России), в том числе 1 Свидетельство Роспатента РФ о государственной регистрации программы для ЭВМ.

В работах, опубликованных в соавторстве, и приведенных в автореферате, личный вклад соискателя состоит: в [5, 11, 13, 18] -алгоритмы распознавания звуковых сигналов кашля; [7, 10, 12, 19] - система критериев, с определенными характеристиками, основанный на спектральных, основанных на операциях с признаками, статистических, стохастических методах; [2, 14, 17] - правила вывода, на основе которых производится распознавание; [1, 3, 4, 6, 8, 9, 15, 16, 20] - программный модуль системы медицинского назначения.

Диссертационная работа состоит из введения, пяти глав, заключения, списка литератур из 126 наименований и приложения. Работа изложена на 140 страницах машинописного текста, содержит 83 рисунков и 30 таблицу.

1 ОБЗОР И АНАЛИЗ СОВРЕМЕННОГО СОСТОЯНИЯ ВОПРОСОВ РАЗРАБОТКИ МЕДИЦИНСКИХ СИСТЕМ ДИАГНОСТИКИ ЛЕГОЧНЫХ

ЗАБОЛЕВАНИЙ

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

По данным Всемирной организации здравоохранения [109] на рисунках 1-4 представлены результаты исследования по 10 ведущим причинам смерти в мире на 100000 жителей с указанием причин смерти. Данные приведены по критериям: страны с низким уровнем дохода, со средне-низким, средне-высоким и высоким уровнем дохода. Проанализировав диаграммы, следует отметить, что в странах с низким уровнем дохода легочные заболевания (туберкулез) стоит на шестом месте и из 100000 человек умирает 34 (рис. 1). В странах со средне-низким уровнем дохода - респираторные заболевания стоят на третьем месте, и смертность составляет - порядка 51 человека, а хроническая обструктивная болезнь легких) (ХОБЛ) - на четвертом месте, смертность около 46 человек (рис. 2). В странах со средне-высоким доходом ХОБЛ стоит на третьем месте (49 человек), рак легких, трахеи и бронхов - на четвертом (32 человека) (рис. 3). В странах с высоким доходом рак легких, трахеи и бронхов стоит на 4 месте и смертность от него составляет 52 человека, а ХОБЛ стоит на пятом месте - смертность 45 человек (рис. 4).

Одним из симптомов легочных заболеваний является кашель, он присущ практически всем легочным заболеваниям. Он же является одной из главных причин обращения к лечащему врачу. Отсюда следует, что характеристики кашля играют огромную роль для оценки состояния пациента, страдающего легочным заболеванием, его мониторирования, диагностики и лечения. Европейское респираторное общество [109] описывает, кашель - пятая по частоте причина, по которой люди обращаются к врачу. А среди симптомов предопределенных патологией дыхательной системы - занимает первое место. Кашель вы-

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

Респираторн... Диарея Инсульт Ишемическа. ВИЧ/СПИД

Туберкулез

Недоношенность

Асфиксия и... ДТП

1

С 18 ЗБ 54 72

Количество смертельных случаев на 100 ООО

Рисунок 1.1 - 10 ведущих причин смерти в странах с низким уровнем дохода (2015 г.)

Рисунок 1.2 - 10 ведущих причин смерти в странах со средне-низким уровнем дохода (2015 г.)

Рисунок 1.3 - 10 ведущих причин Рисунок 1.4 - 10 ведущих причин смерти в странах сосредне- смерти в странах с высоким уров-высоким уровнем дохода (2015 г.) нем дохода (2015 г.)

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

Для распознавания звукового сигнала кашля необходимо знать этимологию кашля, т.е. его фазы. Различают три основные фазы: первая - соответствует быстрому открыванию голосовой щели; вторая - соответствует выходу воздуха из легких (более продолжительная); третья - соответствует закрытию голосовой щели в конце воспроизведения кашля (эта фаза может отсутствовать). По данным таблицы «Сравнительная характеристика частотно-временных параметров звуков кашля у здоровых людей и больных БА» в [9] особый интерес вызывает вторая фаза кашля. Она самая продолжительная и информативная для распознавания звуков кашля.

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

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

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

1.1 Анализ кашлевых толчков

1.1.1 Структура кашлевых фрагментов

Кашель - это произвольный или рефлекторный (непроизвольный) толчкообразный форсированный звучный выход воздуха из легких.

Существует 3 типа кашля:

- рефлекторный (непроизвольный) - происходит из-за попадания пищи или жидкости в дыхательные пути; такой тип кашля не входит в подсознательный контроль;

- произвольный, данный тип кашля контролирует сознание;

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

Группой медиков в которую входил консультант данной работы в области медицины доцент Овсянников Е.С. проведен анализ кашля пациента с БА и здоровых людей. Все пациенты проходили одинаковый комплекс исследования. Результаты исследования дали возможностьосуществить сравнительный анализ кашля пациентов и разделить его на 3 фазы.

1-я - соответствует быстрому открыванию голосовой щели;

2-я - соответствует выходу воздуха из легких (более продолжительная);

3-я - соответствует закрытию голосовой щели в конце воспроизведения кашля (непостоянная) [110].

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

Тобщ - общая продолжительность кашля (мс);

Т1, Т2, Т3 - продолжительность каждой фазы кашля (мс);

Ртах - частота максимальной мощности кашля (Гц).

Результаты приведены в таблице 1.1.

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

Таблица 1.1. Сравнительная характеристика частотно-временных параметров

звуков кашля у здоровых людей и больных БА

Группа Группа I Больные БА тяжелые Груп Больные БА с па II зеднетяжелые Группа контроля

Параметры Муж (п = 5) Жен (п = 10) Муж (п = 5) Жен (п = 8) Муж (п = 12) Жен (п = 13)

Тобщ, мс 638,6 ± 182 р< 0,05 723,5 ± 125 р< 0,05 490,2 ± 120 р< 0,05 510,3 ± 150 р< 0,05 293 ±123 р< 0,05 315 +130 р< 0,05

Т1, мс 35 ± 11 р < 0,05 38 ± 9 р < 0,05 38 ± 6 р < 0,05 42 ± 7 р < 0,05 41+8 р<0,05 44+10 р<0,05

Т2, мс 527 ±113 р < 0,05 613,5 ± 148 р < 0,05 370,2 ± 92 р < 0,05 380 ± 95 р < 0,05 155+58 р<0,05 170+63 р<0,05

Тз, мс 70 ± 23 р < 0,05 65 ± 15 р < 0,05 82 ± 29 р < 0,05 78 ± 23 р < 0,05 103+51 р<0,05 99+48 р<0,05

Ршахз Гц 1663 ±254 р < 0,05 1897±203 р < 0,05 573 ±112 р < 0,05 612±109 р < 0,05 282 +110 р < 0,05 316 + 98 р < 0,05

1.1.2 Классификация кашлевых фрагментов

Кашель классифицируют:

1) по ритму;

2) по тембру;

3) по характеру;

4) по времени появления.

Представим описание каждой классификации.

Выделяют три вида кашля по ритму:

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

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

- приступообразный кашель проявляется при попадании в дыхательные пути инородного тела (при коклюше, БА и т.д.).

Выделяют несколько форм кашля по тембру:

- болезненный, короткий и осторожный кашель (при сухих плевритах и на начальных стадиях крупозной пневмонии);

- лающий кашель (набухание ложных голосовых связок);

- сиплый кашель (воспаление голосовых связок);

- беззвучный кашель (изъявление голосовых связок, их отек). По характеру кашель разделяют на 2 вида:

- сухой (бронхиты, плевриты и т.д.);

- влажный (бронхит, пневмония и т.д.).

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

- кашель в утреннее время (проявляется при хроническом воспалении верхних дыхательных путей). Так же данный тип кашля можно назвать «кашлем при умывании». Большая вероятность проявляться и раньше - в 5-7 часов утра;

- кашель в вечернее время (при заболеваниях, таких как бронхиты, пневмония);

- кашель в ночное время - туберкулез легких и т.д. [112, 113, 114, 115].

1.2 Информационные технологии для диагностики легочных заболеваний

1.2.1 Развитие информационных технологий и баз данных при диагностике легочных заболеваний

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

Таблица 1.2 Существующие МИС и СУБД, лежащие в их основе

№ п/п Названиесистемы Разработчик Город

1 e-Hospital "Курс" НижнийНовгород

2 MedTrak СПАРМ (официальныйпредставительком-пании-разработчика) Санкт-Петербург

3 Medwork Мав1егЬаЬв Москва

4 "Авиценна" "Фирма КОСТА" Санкт-Петербург

5 "Амулет" "ЦентрИнвестСофт" Москва

6 "Артемида" "Конус-Медик" Курск

7 "Гиппократ" "Ультрамед-1" Москва

8 ДОКА+ Фонд развития и оказания специализированной медицинской помощи "Медсан-часть-168" Новосибирск

9 "Интерин" Институт программных систем (ИПС) РАН Переславль-Залесский

10 "Интрамед" "Медкор-2000" Москва

11 "Кондопога" " Кондопога" Кондопога

12 "МедИС-Т" НИИ "Дейманд" Таганрог

13 "Медиалог" "Пост Модерн Текнолоджи" Москва

14 "МедОфис" Б1АМ8 Екатеринбург

15 "Пациент" "Медотрейд" Москва

16 "Тонлайн" "Тонлайн" Москва

17 "Торинс" "Торинс" Красноярск

18 "Фобос" "Фирма ФОБОС" Москва

19 ФИРС АРМ Новоусманская центральная районная больница Воронежской области Новая Усмань

20 "Эверест" Научно-промышленная компания "АИТ-холдинг" Москва

Проведен анализ процесса разработки МИС с точки зрения выбора системы управления базами данных (СУБД). Важно то, что с использованием СУБД на архитектуре «Клиент-сервер» построено 71% всех известных МИС и этот процент продолжает увеличиваться.

На данный момент можно выделить три основных подхода в разработке МИС и выборе СУБД:

- на базе реляционной СУБД (применяется в «Амулет», «Медкор-2000», «Medwork», «Дока+» и т.д.);

- на базе пост-реляционной или объектно-ориентированной СУБД (в основе МИС - «Гиппократ», «MedTrak», «^аЬТгак»);

- на базе объектно-реляционного подхода - это наиболее перспективное решение, учитывающее в себе преимущества первых двух решений (применяется в «Интерин», «ИС Кондопога»).

При разработке отечественных МИС чаще всего используют следующие СУБД: Oracle; IBMDB 2 Informix; BorlandInterbaseServer; MSSQLServer; Cache; LotusNotes / Domino; SybaseSQLAnywhere; MySQL и др.

В основном применяют - MicrosoftSQLServer, чья доля составляет 62% (рис. 1.5).

3,04%

■ Microsoft SQL Server

■ Oracle

■ Borland Interbase Server

■ Cache

■ LotusNotes/Domino

■ Прочие

Рисунок 1.5 - Соотношение СУБД на архитектуре «Клиент-сервер» в отечественных МИС

Рассмотрены основные СУБД и их свойства. Проведен их сравнительный анализ.

При рассмотрении МИС в первой главе, выявлены СУБД, положенные в их основу. Результат исследования представлен в таблице 1.3.

Таблица 1.3. СУБД, используемые в МИС

№п/п Наименование МИС Применяемая СУБД

1 МЕДИАЛОГ MSSQL-сервер

2 Ариадна СУБД Oracle

3 Интерин PROMIS СУБД Oracle

4 Инфоклиника СУБД Firebird

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

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

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

1.2.2 Проблемы диагностики легочных заболеваний

Основные симптомы свойственные бронхиальной астме (БА) различаются от малого затруднения при дыхании до свистящего дыхания,от кашля до одышки, стеснения в грудной клетке и приступов удушья [107].

Данному заболеванию свойственен кашель, который сопровождает пациента постоянно, как перед приступами, так и между ними. От тяжести течения БА зависят частота появления и характеристики кашля. Отличительной характеристикой БА являются периодические приступы кашля с удушьем [112].

Так же кашель может быть частым, постоянным и мучительным. Более частым кашель может быть ночью [106].

Хронической обструктивной болезни легких (ХОБЛ) свойственен кашель с мокротой и отдышкой. С самых ранних стадий заболевания начинает беспокоить эпизодических кашель с выделением слизистой мокроты и отдышка при интенсивном движении, при прогрессировании заболевания кашель становится постоянным. На рисунке 1.6 представлена схема «Порочный» круг ХОБЛ [125].

Недостаток физической нагрузки

Ограничения подвижности

ХОБЛ

Одышка

!

I

Депрессия Ч

Социальная изоляция

Рис. 1.6 - Порочный круг ХОБЛ

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

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

Легочная карцинома (рак лёгких) и бронхиальная карцинома дают о себе знать очень поздно. Их симптомы часто похожи на проявление обычных легочных заболевания - кашель, затруднение дыхания из-за нехватки воздуха, потеря веса. Для установления точного диагноза пациенту необходим комплекс обследования: перкуссия (простукивании грудной клетки), рентген, УЗИ грудной клетки [114].

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

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

но увеличивается. Если бронхит хронический, то в период обострения кашель становится влажным, продуктивным с обильной мокротой [113].

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

Рассмотрим различные виды кашлей, возникающие при воспалении легких:

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

- влажный, возникает при активном размножении вирусов с проявлением на них воспалительной реакции;

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

- спастический, появляется из-за аллергических реакций в легких;

- сиплый, формируется при воспалительных изменениях голосовых связок;

- битональный, проявляется у пациентов при осложненном течении пневмонии;

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

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

- с синкопами, сопровождается кратковременной потерей сознания.

Систематизируем вышеперечисленные характеристики заболеваний и

симптомов, для них характерные. Результаты представлены в таблице 1.4. Взаимосвязь между характером кашля и причинами его развития представлена в таблице 1.5 [110].

Таблица 1.4. Перечень наиболее частых причин острого и хронического кашля

Описание Острый кашель (длительность до 3 недель) Хронический кашель (длительность 3-8 недель и более)

Непродуктивный (сухой) кашель Виды болезней

ОРВИ, риниты и синуситы (аллергические и неаллергические), тромбоэмболия легочной артерии, сердечная астма, сухой плеврит, наружный отит, перикардит, пневмоторакс, аспирация инородного тела, коклюш Бронхиальная астма (кашлевой вариант), хронические воспалительные заболевания носоглотки, интерстициальные болезни легких, прием ИАПФ, объемные процессы в средостении, невротический (психогенный) кашель

Похожие диссертационные работы по специальности «Приборы, системы и изделия медицинского назначения», 05.11.17 шифр ВАК

Список литературы диссертационного исследования кандидат наук Матыцина Ирина Александровна, 2019 год

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

1. Abeyratne, U. R. Cough sound analysis can rapidly diagnose childhood pneumonia / U. R. Abeyratne, V. Swarnkar, A. Setyati, and R. Triasih // Annals of Biomedical Engineering, vol. 41, no. 11, pp. 2448-2462, 2013. Journal of Sensors 9

2. Abramov, G. V. Information system for diagnosis of respiratory system diseases / G. V. Abramov, Korobova L.A., Ivashin A.L., Matytsina I.A. // Journal of Physics: Conference Series. 2018. T. 1015.

3. Amoh, J. Technologies for developing ambulatory cough monitoring devices / J. Amoh and K. Odame // Critical Reviews in Biomedical Engineering, vol. 41, no. 6, pp. 457-468, 2013.

4. Amrulloh, Y. A. Automatic cough segmentation from non-contact sound recordings in pediatric wards / Y. A. Amrulloh, U. R. Abeyratne, V. Swarnkar, R. Triasih, and A. Setyati // Biomedical Signal Processing and Control, vol. 21, pp. 126136, 2015.

5. Barry, S. J. The automatic recognition and counting of cough / S. J. Barry, A. D. Dane, A. H. Morice, and A. D. Walmsley // Cough, vol. 2, no. 1, pp. 8-9, 2006.

6. Barry, Samantha J. The Hull Automatic Cough Counter / Samantha J. Barry, Adric D Dane, Alyn H Moricc, Anthony D Walmslcy // LicenseeBioMedCentral, 2006, 2 - 8.

7. Barton, A. Data reduction for cough studies using distribution of audio frequency content / A. Barton, P. Gaydecki, K. Holt, and J. A. Smith // Cough, vol. 8, no. 1, p. 12, 2012.

8. Birring, S. S. How best to measure cough clinically / S. S. Birring and A. Spinou // Current Opinion in Pharmacology, vol. 22, pp. 37-40, 2015.

9. Birring, S. S. The Leicester Cough Monitor: preliminary validation of an automated cough detection system in chronic cough / S. S. Birring, T. Fleming, S. Matos, A. A. Raj, D. H. Evans, and I. D. Pavord // European Respiratory Journal, vol. 31, no. 5, pp. 1013-1018, 2008.

10. Birring, S. S. The Leicester Cough Monitor: preliminary validation of an automated cough detection system in chronic cough / S. S. Birring, T. Fleming, S. Matos, A. A. Raj, D. H. Evans, I. D. Pavord // European respiratory journal, 2008, 1013 - 1018

11. Drugman, T. Objective study of sensor relevance for automatic cough detection / T. Drugman, J. Urbain, N. Bauwens et al. // IEEE Journal of Biomedical and Health Informatics, vol. 17, no. 3, pp. 699-707, 2013.

12. Elghamoudi, D. D. P241 the feasibility and validity of objective cough monitoring in children using an adult cough detection system / D. D. Elghamoudi, H. Sumner, K. Mcguiness, J. Smith, and C. S. Murray // Thorax, vol. 70, Supplement 3, pp. A198.1-A1A19 8, 2015.

13. Ferdousi, B. Cough detection using speech analysis / B. Ferdousi, S. M. F. Ahsanullah, K. Abdullah-Al-Mamun, and M. N. Huda // in 2015 18th International Conference on Computer and Information Technology (ICCIT), Dhaka, Bangladesh, December 2015.

14. Goldsmith, W. T. A system for recording high fidelity cough sound and airflow characteristics / W. T.Goldsmith, A. M. Mahmoud, J. S. Reynolds et al. // Annals of Biomedical Engineering, vol. 38, no. 2, pp. 469-477, 2010.

15. Huang, X. Spoken Language Processing. Guide to Algorithms and System Developmen / X. Huang, A. Acero, H.-W. Hon. - Prentice Hall, 2001. - 980 p

16. Korpas, J. Analysis of the cough sound: an overview / J. Korpas, J. Sad-lonova, and M. Vrabec // Pulmonary Pharmacology, vol. 9, no. 5-6, pp. 261-268, 1996.

17. Krajnik, M. A portable automatic cough analyser / M. Krajnik, I. Damps-Konstanska, L. Gorska, E. Jassem // LicenseeBioMedCentral, 2010, 9 - 17

18. Kulnik, S. T. Cough frequency monitors: can they discriminate patient from environmental coughs? / S. T. Kulnik, N. M. Williams, L. Kalra, J. Moxham, and S. S. Birring // Journal of Thoracic Disease, vol. 8, no. 11, pp. 3152-3159, 2016.

19. Laciuga, H. Analysis of clinicians' perceptual cough evaluation / H. Laciu-ga, A. E. Brandimore, M. S. Troche, and K. W. Hegland // Dysphagia, vol. 31, no. 4, pp. 521-530, 2016.

20. Larson, E. C. Accurate and privacy preserving cough sensing using a low-cost microphone / E. C. Larson, T. J. Lee, S. Liu, M. Rosenfeld, and S. N. Patel // in Proceedings of the 13th International Conference on Ubiquitous Computing -UbiComp 11, Beijing, China, September, 2011.

21. Lee, K. K. Four-hour cough frequency monitoring in chronic cough / K. K. Lee, A. Savani, S. Matos, D. H. Evans, I. D. Pavord, and S. S. Birring // Chest, vol. 142, no. 5, pp. 1237-1243, 2012.

22. Liu, Y. A cough sound recognition algorithm based on time-frequency energy distribution / Y. Liu, Z. Li, and M. Du // Journal of Biomedical Engineering, vol. 26, no. 5, pp. 953-958, 2009.

23. Mahmoudi, S. A. Sensor-based system for automatic cough detection and classification / S. A.Mahmoudi // in ICT Innovations Conference 2016 Element 2015 - Enhanced Living Environments, Macedonia, October, 2015.

24. Marsden, P. A. A comparison of objective and subjective measures of cough in asthma / P. A. Marsden, J. A. Smith, A. A. Kelsall et al. // Journal of Sensors 7 Journal of Allergy and Clinical Immunology, vol. 122, no. 5, pp. 903-907, 2008.

25. Mcguinness, K. P159 validation of the VitaloJAK™ 24 hour ambulatory cough monitor / K. Mcguinness, K. Holt, R. Dockry, and J. Smith // Thorax, vol. 67, Supplement 2, pp. A131.1-A1A131, 2012.

26. Mei, J. Quality assessment of clinical practice guidelines for diagnosis and management of cough in China / J. Mei, L. Y. Liao, L. Wei, Y. Q. Xie, and K. F. Lai // Chinese Journal of Evidence-Based Medicine, vol. 15, no. 4, pp. 409-413, 2015.

27. Morice, A. H. ERS guidelines on the assessment of cough / A. H. Morice, G. A. Fontana, M. G. Belvisi et al. // European Respiratory Journal, vol. 29, no. 6, pp. 1256-1276, 2007.

28. Muda, L. Voice recognition algorithms using Mel frequency cepstral coefficient (MFCC) and dynamic time warping (DTW) techniques / L. Muda, M. Begam, and I. Elamvazuthi // Journal of Computing, vol. 2, no. 3, 2010.

29. Pavesi, L. Application and validation of a computerized cough acquisition system for objective monitoring of acute cough: a meta-analysis / L. Pavesi, S. Sub-buraj, and K. Portershaw // Chest, vol. 120, no. 4, pp. 1121-1128, 2001.

30. Pham, C. MobiCough: real-time cough detection and monitoring using low-cost mobile devices / C. Pham // in Asian Conference on Intelligent Information and Database Systems, Da Nang, Vietnam, March, 2016.

31. Piirilâ, P. Objective assessment of cough / P. Piirilâ and A. R. A. Sovijârvi // European Respiratory Journal, vol. 8, no. 11, pp. 1949-1956, 1995.

32. Schmit, K. M. Evaluating cough assessment tools: a systematic review / K. M. Schmit, R. R. Coeytaux, A. P. Goode et al. // Chest, vol. 144, no. 6, pp. 18191826, 2013.

33. Smith, J. Ambulatory methods for recording cough / J. Smith // Pulmonary Pharmacology & Therapeutics, vol. 20, no. 4, pp. 313-318, 2007.

34. Smith, J. Monitoring chronic cough: current and future techniques / J. Smith, Expert Review of Respiratory Medicine, vol. 4, no. 5, pp. 673-683, 2010.

35. Smith, J. New developments in the objective assessment of cough / J. Smith and A. Woodcock // Lung, vol. 186, no. S1, pp. 48-54, 2008.

36. Spinou, A. An update on measurement and monitoring of cough: what are the important study endpoints? / A. Spinou and S. S. Birring // Journal of Thoracic Disease, vol. 6, Supplement 7, pp. S728-S734, 2014.

37. Spinou, A. P8 objective cough frequency monitoring in bronchiectasis / A. Spinou, R. Garrod, K. Lee et al. // Thorax, vol. 69, Supplement 2, pp. A80-A81, 2014.

38. Turner, R. D. Automated measurement of cough frequency: agreement between auditory analysis and the PulmoTrack cough monitor in respiratory diseases / R. D. Turner and G. H. Bothamley // in A37 Cough: Sensitivity, Measurement and Treatment, p. A1354-A, American Thoracic Society, Philadelphia, PA, USA, 2013.

39. Turner, R. D. How to count coughs? Counting by ear, the effect of visual data and the evaluation of an automated cough monitor / R. D. Turner and G. H. Bo-thamley // Respiratory Medicine, vol. 108, no. 12, pp. 1808-1815, 2014.

40. Vizel, E. Validation of an ambulatory cough detection and counting application using voluntary cough under different conditions / E. Vizel, M. Yigla, Y. Goryachev et al. // Cough, vol. 6, no. 1, p. 3, 2010.

41. Walke, S. A. Differentiating nature of cough sounds in time domain analysis / S. A. Walke and V. R. Thool // in 2015 International Conference on Industrial Instrumentation and Control (ICIC), Pune, India, May, 2015.

42. You, M. Novel feature extraction method for cough detection using NMF / M. You, H. Wang, Z. Liu et al. // IET Signal Processing, vol. 11, no. 5, pp. 515-520, 2017.

43. Абрамов Г.В. Информационная система для диагностики заболеваний дыхательных путей / Г. В. Абрамов, Л. А. Коробова, И. А. Матыцина// Математические методы в технике и технологиях - ММТТ. 2017. - Т. 5. - С. - 111-116.

44. Абрамов, Г. В. Анализ и использование математических методов для распознавания звуковых сигналов / Г. В. Абрамов, Л. А. Коробова, А. Л. Ивашин, И. А. Матыцина // Вестник ВГУИТ, N 2 (64) - 2015. - 296 с. - С. 61-65 [217]

45. Абрамов, Г. В. Анализ методов распознавания звуковых сигналов и применение их в диагностике легочных заболеваний / Г. В. Абрамов, Л. А. Коробова, А. Л. Ивашин, И. А. Матыцина // XXIV международная научно-практическая конференция «Современные тенденции развития науки и технологий»: сб. статей. - Белгород, 2017. - Т. № 3 -3. - С. 6-9.

46. Абрамов, Г. В. Информационная система для распознавания звуковых сигналов кашля / Г. В. Абрамов, Л. А. Коробова, И. А. Матыцина // Сб. трудов XXVIII междунар. науч. конф. "Математические методы в технике и технологиях" - ММТТ-28, - Саратов: Сарат. Гос. техн. Ун-т им. Гагарина Ю.А., 2015, №7. С. 271 - 274.

47. Абрамов, Г. В. Информационная система распознавания и обработки звуковых сигналов / Г. В. Абрамов, Л. А. Коробова, И. А. Матыцина // Сборник трудов Международной конференции «Актуальные проблемы прикладной математики, информатики и механики» - Воронеж, 12 - 14 декабря 2014 г., - Из-во полиграфический центр «Научная книга», с. 158. - С. 3 - 6.

48. Абрамов, Г. В. Информационная система распознавания и обработки звуковых сигналов / Г. В. Абрамов, Л. А. Коробова, И. А. Матыцина // «Актуальные проблемы прикладной математики, информатики и механики» сб. трудов международной конференции. - Воронеж. - 2013. - С. 3-6.

49. Абрамов, Г. В. Использование математических методов в распознавании звуковых сигналов / Г. В. Абрамов, Л. А. Коробова, Е. С. Овсянников, И. А. Матыцина // VI международная научно-практическая конференция «Наука в современном информационном обществе». - КогШСЬаг1ев1:оп, ША. - 2015. - Т. 1. - С. 111-113.

50. Абрамов, Г. В. Использование спектрального анализа для распознавания звуковых записей / Г. В. Абрамов, Л. А. Коробова, И. А. Матыцина, Л. В. Лупенко // Международная научно-техническая конференция «Актуальные проблемы прикладной математики, информатики и механики»: сб. статей. -Воронеж, 2016. - с. 51 - 52.

51. Абрамов, Г. В. Математические методы в распознавании звуковых сигналов / Г. В. Абрамов, Л. А. Коробова, И. А. Матыцина // Международная научно-техническая конференция «Современные технологии в науке и образовании» СТНО-2016: сб. статей. - Рязань. - 2016. - Т. 1. - с. 97-100.

52. Абрамов, Г. В. Математические методы в распознавании кашлевых толчков / Г. В. Абрамов, Л. А. Коробова, И. А. Матыцина, Ю. А. Гончарова // VI международная научно-практическая интернет-конференция «Моделирование энергоинформационных процессов». - 2016. - С. 16-18.

53. Абрамов, Г. В. Моделирование информационной системы распознавания кашля / Г. В. Абрамов, Л. А. Коробова, А. Л. Ивашин, И. А. Матыцина // XXIX Международная научная конференция «Математические методы в тех-

нике и технологиях» ММТТ - 29: сб. статей. - Санкт-Петербург, 2016. - Т. 8. -с. 116-121.

54. Абрамов, Г. В. Моделирование процессов обработки звуковых сигналов / Г. В. Абрамов, Л. А. Коробова, И. А. Матыцина // Сборник статей III международной научно-практической интернет-конференции. Воронеж, 2015. - С. 81-84.

55. Абрамов, Г. В. Обзор и применение математических методов в распознавании кашлевых толчков/ Г. В. Абрамов, Л. А. Коробова, И. А. Матыцина // Энергия - XXI. - 2015. - №4. - С. 61-66.

56. Абрамов, Г. В. Разработка информационной системы диагностики больных легочными заболеваниями / Г. В. Абрамов, Л. А. Коробова, И. А. Матыцина //Кибернетика и высокие технологии XXI века: матер. XIII международной научно-технической конференции / Издательско-полиграфический центр Воронежского государственного университета. - Воронеж, 2013. - Т. 2. -С. 464-468.

57. Абрамов, Г. В. Разработка информационной системы диагностики легочных заболеваний / Г. В. Абрамов, Л. А. Коробова, И. А. Матыцина // III Всероссийская заочная научная конференция для молодых ученых, студентов и школьников «Актуальные вопросы биомедицинской инженерии», 21 октября -15 декабря 2013 г. - Саратов: ООО «Издательский центр «Наука», 2013 г. - 527 с. - С. 47 - 54.

58. Абрамов, Г. В. Разработка информационной системы для диагностики состояния больных легочными заболеваниями / Г. В. Абрамов, Е. С. Овсянников, Л. А. Коробова, И. А. Матыцина // II Международная научная Интернет-конференция «Математическое и компьютерное моделирование в биологии и химии». - Казань, 2013. - Т. 1. - С. 4-10.

59. Абрамов, Г. В. Разработка информационной системы мониторинга больных легочными заболеваниями / Г. В. Абрамов, Л. А. Коробова, И. А. Ма-тыцина //Кибернетика и высокие технологии XXI века: матер. XIIIмеждуна-

родной научно-технической конференции / НПФ «Саквоее» ООО. - Воронеж, 2012. - Т. 2. - С. 529-535.

60. Абрамов, Г. В. Разработка информационной системы распознавания звукового сигнала / Г. В. Абрамов, Л. А. Коробова, И. А. Матыцина // II международная научно-практическая интернет-конференция «Моделирование энергоинформационных процессов». - Воронеж. - 2014. - С. 34-38.

61. Абрамов, Г. В. Разработка математической модели для распознавания звуковых сигналов / Г. В. Абрамов, Л. А. Коробова, И. А. Матыцина, Д. С. Карпович, Р. А. Шуленков // Труды БГТУ научный журнал №6 (170) 2014 год «Физико-математические науки и информатика» - Минск: УО «Белорусский госуд. технологический ун-т», 2014. - 174 с. - С. 100-104.

62. Абрамов, Г. В. Разработка правил вывода при распознавании звуковых сигналов / Г. В. Абрамов, Л. А. Коробова, И. А. Матыцина // VI международная научно-практическая конференция «Фундаментальная наука и технологии - перспективные разработки». - КоШСЬаг1ев1:оп, ША. - 2014. - Т. 3. - С. 145-148.

63. Абрамов, Г.В. Разработка модуля диагностики информационной системы мониторинга здоровья больных легочными заболеваниями / Г. В. Абрамов, Л. А. Коробова, А. Л. Ивашин, И. А. Матыцина // Вестник Рязанского государственного радиотехнического университета №3 (Выпуск 65) - 2018. - 200 с. - С. 136-142.

64. Айзерман, М. А. Метод потенциальных функций в теории обучения машин / М. А.Айзерман, Э. М. Браверман, Л. И.Розоноэр - М.: Наука, 1970. -384 с.

65. Афифи, А. Статистический анализ: Подход с использованием ЭВМ / А. Афифи, С. Эйзен - М.: Мир, 1982. - 488 с.

66. Бонгард, М. М.Проблема узнавания - М.: Наука, 1967. - 320 с.

67. Борисов, А. Н. Модели принятия решений на основе лингвистической переменной / А. Н.Борисов, А. В. Алексеев, О. А. Крумберг и др. - Рига: Зи-натне, 1982. - 256 с.

68. Вайнцвайг, М. Н.Алгоритм обучения распознаванию образов "Кора": Алгоритмы обучения распознаванию образов / Под ред. В.Н. Вапника. - М.: Сов. радио, 1973. С. 110-116

69. Вапник, В.Н. , Теория распознавания образов / В. Н. Вапник, А. Я. Червоненкис - М.: Наука, 1974. - 487 с.

70. Винцюк, Т. К. Анализ, распознавание и интерпретация речевых сигналов - Киев : Наукова думка, 1987. - 264 с.

71. Глушков, В.М. Основы математической логики: Цикл лекций на научно-техническом семинаре «Математический аппарат кибернетики». Киевский ДНТП, 1961

72. Горелик, А. Л. Методы распознавания / А. Л. Горелик, Скрипкин В.А. - М.: Высш. шк., 1984. - 219 с.

73. Горелик, А. Л. Современное состояние проблемы распознавания / А. Л. Горелик, И. Б. Гуревич, В. А. Скрипкин - М.: Радио и связь, 1985. - 160 с.

74. Горелик, А. Л. Современное состояние проблемы распознавания / А. Л. Горелик,И. Б. Гуревич, В. А. Скрипкин - М.: Радио и связь, 1985. - 160 с.

75. Горячкина, Л.А. Ошибки в диагностике бронхиальной астмы. Результаты клинических наблюдений / Л. А. Горячкина, О. С. Дробик, М. Ю. Пере-дельская // журнал для врачей «ТРУДНЫЙ ПАТ ЦЕНТ» Декабрь 2010 г.

76. Гренандер, У.Лекции по теории образов - М.: Мир. Т. 1. Синтез образов. 1979. - 384 с.; Т. 2. Анализ образов. 1981. - 448 с.; Т. 3. Регулярные структуры. 1983. - 432 с.

77. Депман, И.Я. Первое знакомство с математической логикой - Л., изд-во общества «Знание», 1965.

78. Дуда, Р. Распознавание образов и анализ сцен / Р. Дуда, П. Харт - М.: Мир, 1978. - 510 с/

79. Журавлев, Ю. И. Алгоритмы распознавания, основанные на вычислении оценок / Ю. И. Журавлев, В. В. Никифоров // Кибернетика. 1971. № 3. С. 111.

80. Журавлев, Ю. И. Об алгебраическом подходе к решению задач распознавания или классификации: Проблемы кибернетики. Вып. 33. - М.: Наука, 1978. С. 5-68.

81. Журавлев, Ю.И. О математических принципах классификации предметов и явлений. Дискретный анализ / Ю. И. Журавлев, А. Н. Дмитриев, Ф. П. Кренделев // Сб. трудов института математики СО АН СССР, вып. 7. Новосибирск, «Наука», 1966

82. Журавлев, Ю.И. Экстремальные задачи, возникающие при обосновании эвристических процедур - Сб. статй «Проблемы прикладной математики и механики». «Наука», 1971.

83. Кендалл, М. Статистические выводы и связи / М. Кендалл, А.Стьюарт - М .: Наука, 1973. - 899 с.

84. Клетт, Д. Х. Методы автоматического распознавания речи : в 2 кн. : пер. с англ. / Д. Х. Клетт, Дж. А. Барнет, М. И. Бернстейн [и др.] ; под ред. У. Ли. - М. : Мир, 1983. - Кн. 2. - 392 с.

85. Кольцов, П.П.Математические модели теории распознавания образов: Компьютер и задачи выбора. - М.: Наука, 1989. С. 89-119.

86. Коробова Л. А. Разработка медицинской экспертной системы диагностики заболеваний с использованием элементов теории множеств / Л. А. Коробова, Е. С. Малиенко, Ю. А. Сафонова // Экономика и менеджмент систем управления. 2017. Т. 26. №4-1. С. 172-178.

87. Коробова, Л. А. Математическая модель, алгоритм и программная реализация экспертной системы первичной медицинской диагностики часто встречающихся заболеваний / Л. А. Коробова, Е. С. Малиенко, Ю. А. Сафонова // Информационные технологии моделирования и управления. 2018. Т. 112. №4. С. 301-307.

88. Коробова, Л. А. Математическое моделирование взаимодействия перерабатывающих предприятий молочной промышленности с внешней средой: дис. ... канд. техн. наук: 05.13.18 / Коробова Людмила Анатольевна. - Воронеж., 2002. - 155 с.

89. Коробова, Л. А. Программная реализация нечеткой модели распознавания звуковых сигналов / Л. А. Коробова, И. А. Матыцина, Т. В. Курченкова // «Научные ведомости» Белгородского государственного университета Математика. Физика №13(234). - вып. 43: сб. статей. - Белгород. - 2016. - с. 174 - 178.

90. Коробова, Л. А. Распознавание звуковых сигналов на основе коэффициентов корреляции / Л. А. Коробова, И. А. Матыцина // Материалы I между-нар. науч.-практ. Интернет - конф. «Моделирование энергоинформационных процессов»: Сб. статей I междунар. науч.-практ. Интернет - конф. (1015.12.2012) - Воронеж. Гос. ун-т инж. технол. - Воронеж: ВГУИТ, 2013. - 245 с. - стр. 218-221.

91. Коробова, Л. А. Распознавание кашлевых моментов с использованием различных методов / Л. А. Коробова, И. А. Матыцина, М. С. Соломатин // XXVI Международная научная конференция «Математические методы в технике и технологиях» ММТТ - 26: сб. статей. - Санкт-Петербург, 2013. - Т. 8. -С. 171-173.

92. Коробова, Л.А. Разработка модуля медицинской информационной системы для диагностики легочных заболеваний / Л.А. Коробова, И.А. Матыцина // Вестник НГИЭИ №10 (89) - 2018. - 168 с. - С.13-28.

93. Ли, У. А. Методы автоматического распознавания речи : в 2 кн. : пер. с англ. / У. А. Ли, Э. П. Нейбург, Т. Б. Мартин [и др.] ; под ред. У. Ли. - М. : Мир, 1983. - Кн. 1. - 328 с.

94. Лобанов, Б. М. Анализ и синтез речи : сб. науч. тр. - Минск : АН БССР, 1991. - 47 с.

95. Матыцина, И. А. Применение информационной системы диагностики легочных заболеваний в процессе обследования пациентов / И. А. Матыцина // Математические методы в технике и технологиях - ММТТ. 2017. - Т. 12. - №2. - С. 65-69.

96. Михайлов, В. Г. Измерение параметров речи / В. Г. Михайлов, Л. В. Златоусова ; под ред. М. А. Сапожникова. - М. : Радио и связь, 1987. - 168 с.

97. Обучение машины классификации объектов / А. Г. Аркадьев, Э. М. Браверман - М.; Наука, 1971. - 192 с.

98. Рабинер, Л. Р. Цифровая обработка речевых сигналов : пер. с англ. / Л. Р. Рабинер, Р. В. Шафер. - М. : Радио и связь, 1981. - 496 с.

99. Свидетельство о государственной регистрации № 2016661088. Программы на ЭВМ «Информационная система распознавания звуковых сигналов кашля». Заявка № 2016648376, дата поступления 01.08.2016 г., дата государственной регистрации в Реестре программ для ЭВМ 29.09.2016 г. / Коробова Л.А., Ивашин А.Л., Матыцина И.А., Абрамов Г.В., Овсянников Е.С.

100. Ту, Дж. Принципы распознавания образов / Дж. Ту, Р.Гонсалес -М.: Мир, 1978. - 410 с.

101. Фролов, А. В. Синтез и распознавание речи. Современные решения - М. : Связь, 2003. - 216 с.

102. Фу, К.Структурные методы в распознавании образов - М.: Мир, 1977. - 320с.

103. Informationandcontrol [Электронный ресурс] - Режим доступа https: //www. sciencedirect.com/i ournal/information-and-control/vol/1/issue/1

104. Theory and Application of Audio-Based Assessment of Cough [Элек-тронныйресурс] - Режимдоступа

file:///C:/Users/%D0%90%D0%B4%D0%BC%D0%B8%D0%BD/Desktop/%D0%9 C%D0%B0%D0%BC%D0%B8%D0%BD%D0%B0%20%D 1 %81 %D 1 %82%D0% B0%D 1 %82%D 1 %8C/9845321 .pdf

105. Аппарат нечеткой логики. Экспертные системы. Материал из Национальной библиотеки им. Н. Э. Баумана [Электронный ресурс] - Режим доступа http://ru.bmstu.wiki/Аппарат_нечеткой_логики._Экспертные_системы

106. Астма [Электронный ресурс] - Режим доступа http: //medportal .ru/enc/pulmonology/astma/

107. Бронхиальная астма [Электронный ресурс] - Режим досту-^https: //health.mail .ru/disease/bronhialnaya astma/

108. Виды кашля при пневмонии и средства его лечения [Электронный ресурс] - Режим доступа http ://pneumonij a. ru/inflammation/lechenie-profflaktika/kashel-u-detei-vzroslyx-vidy-lechenie.html

109. Всемирная организация здравоохранения «10 ведущих причин смертности в мире» [Электронный ресурс]- Режим досту-^http: //www.who. int/mediacentre/factsheets/fs310/ru/

110. Гришило, А. П. Проблема кашля в общетерапевтической практике: «ПОГЛЯД ФАХ1ВЦЯ» Астма та аллергия, №3, 2014, с. 52-58 - Режим доступа http: //www.ifp.kiev.ua/doc/j ournal s/aa/ 14Zpdf14-3Z52.pdf

111. Диагностика заболеваний органов дыхания [Электронный ресурс] -Режим доступа http://www.komkon.org/~napoleon/PULMO/bdiagnostics.htm

112. Кашель при астме диагностика и лечение [Электронный ресурс] -Режим доступа http://vekzhivu.com/article/1481 -kashel-pri-astme-%E2%80%93-diagnostika-i-lechenie

113. Кашель при бронхите [Электронный ресурс] - Режим доступа http: //obronhah.ru/kashel-pri-bronxite.html#h2_0

114. Кашель при раке легких [Электронный ресурс] - Режим доступа http://www.no-onco.ru/lechenie-raka/rak-legkogo/kashel-pri-rake-legkix.html

115. Классификация кашля [Электронный ресурс] - Режим доступа http://correctdiagnosis.ru/kashel/387-klassifikaciya-kashlya.html

116. Классификация методов распознавания[Электронный ресурс] - Режим доступа

http://www.ievbras.ru/ecostat/Kiril/Library/Book1/Content127/Content127.htm

117. Классификация систем распознавания [Электронный ресурс] - Режим доступа http://sci.sernam.ru/book_mr.php?id=4

tion.com/Exchange_Terminology/Koefficient to.html

119. Насколько часто взрослый человек может делать рентген легких [Электронный ресурс] - Режим доступа https://tomografa.net/rentgen/grudnaya-kletka/kak-chasto-mozhno-obsledovat-legkie.html#i-5

120. Обзор и классификация методов обработки речевых сигналов в системах распознавания речи [Электронный ресурс] - Режим доступа http://cyberleninka.ru/article/n7obzor-i-klassifikatsiya-metodov-obrabotki-rechevyh-signalov-v-sistemah-raspoznavaniya-rechi

121. Ошибки в диагностике БА [Электронный ресурс] - Режим доступа http://t-pacient.ru/articles/6612/

122. Приказ Минздрава России от 29.12.2012 Ш658н "Об утверждении стандарта специализированной медицинской помощи при пневмонии средней степени тяжести" (Зарегистрировано в Минюсте России 13.02.2013 N 27046) [Электронный ресурс] - Режим доступа http://minzdrav. gov-murman.ru/documents/standarty-meditsinskoy-pomoshchi/2-standarty-spetsializirovannoy-meditsinskoy-pomoshchi-/bolezni-organov-dykhaniya-j00-j99/1658.pdf

123. Распознавание на основе нечеткой логики [Электронный ресурс] -Режим доступа

https://ru.bmstu.wiki/Распознавание_не_основе_методов_нечеткой_логики

124. Федеральные клинические рекомендации по диагностике и лечению бронхиальной астмы [Коллектив авторов Российского респираторного общества] 2016г. - 62 с. [Электронный ресурс] - Режим доступа file:///H:/%D0%92%D1%81%D0%B5%20%D0%BF%D0%BE%20%D0%B4%D0 %B8%D 1 %81 %D 1 %81 %D 1 %83/%D0%90%D 1 %81 %D 1 %82%D0%BC%D0%B0 %20%D0%A0%D0%A0%D0%9E%20%D1%84%D0%B8%D0%BD%D0%B0%D0 %BB1.pdf

125. Хроническая обструктивная болезнь легких [Электронный ресурс] -Режим доступа

http://www.krasotaimedicina.ru/diseases/zabolevanija pulmonology/obstructive-pulmonary-disease

126. Эмфизема легких [Электронный ресурс] - Режим доступа http: //www.medical-enc.ru/m/26/emfizema-legkih- simptomy.shtml

ПРИЛОЖЕНИЕ

Приложение А.

Список сокращений, аббревиатур, условных обозначений

Groovy - объектно-ориентированный язык программирования, разработанный для платформы Java как дополнение к языку Java с возможностями Python, Ruby и Smalltalk.

JFreeChart - библиотека для 2D и 3D графики

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

MUSIC - Multiple Signal Classification - алгоритмамногосигнальнойк-лассификации

Wav - WaveformAudioFileFormat— формат файла-контейнера для хранения записи оцифрованного аудиопотока, подвид RIFF.

Альвеола -(лат. alveolus «ячейка, углубление, пузырёк») — структура в форме пузырька, открывающегося в просвет респираторных бронхиол, составляющих респираторные отделы в лёгком.

БА - бронхиальная астма

Дефаззификации - это преобразование нечёткого множества в чёткое число.

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

ИО - интегральная ошибка

ИС - информационная система

Кепстральный анализ, т.е. обратное преобразование Фурье от логарифма прямого преобразования.

МИС - медицинская информационная система

СИИ - система искусственного интеллекта

СУБД - система управления базами данных

Традукция (лат. Traductio — перемещение) — вид опосредованного умозаключения, в котором посылки и вывод являются суждениями одинаковой степени общности.

Фаззификация - введение нечеткости ХОБЛ - хроническая обструктивная болезнь легких Экстенсиональный - (от лат. Extentio — протяжение, пространство, распространение) — термин семантики, обозначающий объём понятия, то есть множество объектов, способных именоваться данной языковой единицей (категорией).

ЭС - экспертная система

Приложение Б. Листинг программы

package ru.fedul0x.crr.criteria; import groovy.lang.GroovyShell; import j ava.util .HashMap;

import org.codehaus.groovy.control.CompilationFailedException; import ru.fedulOx.common.Noise;

import ru.fedulOx.gui.model.NoiseListModelSingletone; /**

* Модельправила

*

*/

public class Rule {

private String ruleCode; private boolean hasError; private final HashMap<Noise, Boolean> history; public Rule(String code, boolean islncludeRule) { this.ruleCode = code; this.hasError = false; this.history = new HashMap<>();} public boolean decide(Noise noise) { if (history.containsKey(noise)) { return history.get(noise);} GroovyShell shell = new GroovyShell(); shell.setVariable("n", noise); shell.setVariable("noise", noise);

shell.setVariable("p", NoiseListModelSingletone.getInstanse().getPattern()); shell.setVariable("pattern", NoiseListModelSingletone.getInstanse().getPattern()); String beforeRuleCode = "import ru.fedul0x.crr.criterias.MaxByFrequencyCriteria\n" + "import ru.fedul0x.crr.criterias.CriteriasArgument\n"; System.out.println(beforeRuleCode + ruleCode); boolean result = false; try {

result = (Boolean) shell.parse(ruleCode).run();} catch (CompilationFailedException ex) { hasError = true;} history.put(noise, result); return result;}

public String getRuleCode() { return ruleCode;}

public void setRuleCode(String ruleCode) {

this.ruleCode = ruleCode;

this.history.clear();

hasError = false;}

public boolean check() {

if (hasError)

return false;

GroovyShell shell = new GroovyShell(); try {

shell.parse(ruleCode);} catch (CompilationFailedException e) { return false;} return true;}

public int getComplitions() {

return (NoiseListModelSingletone.getInstanse().getSize() == 0) ? 0 : (int) (100 * ((float)history.size() / NoiseListMod-

elSingletone.getInstanse().getSize()));}}

package ru.fedul0x.crr.criteria.argument;

import java.util.Objects;

import ru.fedul0x.common.Noise;

public class CorrelationByMagnitudeArgument extends CriteriasArgument implements CorrelationByMagnitudeInterface {

private Noise pattern; private int windowWidthOfSpectrogram; private float lowerBoundsByTime; private float upperBoundsByTime; private float lowerBoundsByFrequency; private float upperBoundsByFrequency; private float lowerBoundsByTimeOfCorrelatioinCalc; private float upperBoundsByTimeOfCorrelatioinCalc;

public CorrelationByMagnitudeArgument(Noise pattern, int windowWidthOfSpectrogram, float lowerBoundsByTime, float upperBoundsByTime, float

lowerBoundsByFrequency, float upperBoundsByFrequency, float lowerBoundsByTimeOfCorrelatioinCalc, float upperBoundsByTimeOfCorrelatioinCalc) {

super();

setPattern(pattern);

setWindowWidthOfSpectrogram(windowWidthOfSpectrogram); setLowerBoundsByTime(lowerBoundsByTime);

setUpperBoundsByTime(upperBoundsByTime);

setLowerBoundsByFrequency(lowerBoundsByFrequency);

setUpperBoundsByFrequency(upperBoundsByFrequency);

setLowerBoundsByTimeOfCorrelatioinCalc(lowerBoundsByTimeOfCorrelatioinCalc);

setUpperBoundsByTimeOfCorrelatioinCalc(upperBoundsByTimeOfCorrelatioinCalc);}

@Override

public Noise getPattern() throws IllegalArgumentException {

return pattern;}

@Override

public final void setPattern(Noise pattern) throws IllegalArgumentException {

this.pattern = pattern;}

@Override

public int getWindowWidthOfSpectrogram() { return windowWidthOfSpectrogram;} @Override

public final void setWindowWidthOfSpectrogram(int windowWidthOfSpectrogram) {

this.windowWidthOfSpectrogram = windowWidthOfSpectrogram;}

@Override

public float getLowerBoundsByTime() { return lowerBoundsByTime;} @Override

public final void setLowerBoundsByTime(float lowerBoundsByTime) { if ((lowerBoundsByTime >= 0) && (lowerBoundsByTime < 1.0)) { this.lowerBoundsByTime = lowerBoundsByTime;} else { this.lowerBoundsByTime = (float) 0.0;}} @Override

public float getUpperBoundsByTime() { return upperBoundsByTime;} @Override

public final void setUpperBoundsByTime(float upperBoundsByTime) { if ((upperBoundsByTime > 0) && (upperBoundsByTime <= 1.0)) { this.upperBoundsByTime = upperBoundsByTime;} else { this.upperBoundsByTime = (float) 1.0;}} @Override

public float getLowerBoundsByFrequency() { return lowerBoundsByFrequency;} @Override

public final void setLowerBoundsByFrequency(float lowerBoundsByFrequency) { if ((lowerBoundsByFrequency >= 0) && (lowerBoundsByFrequency < 1.0)) { this.lowerBoundsByFrequency = lowerBoundsByFrequency;} else { this.lowerBoundsByFrequency = (float) 0.0;}} @Override

public float getUpperBoundsByFrequency() { return upperBoundsByFrequency;} @Override

public final void setUpperBoundsByFrequency(float upperBoundsByFrequency) { if ((upperBoundsByFrequency > 0) && (upperBoundsByFrequency <= 1.0)) { this.upperBoundsByFrequency = upperBoundsByFrequency;} else { this.upperBoundsByFrequency = (float) 1.0;}} @Override

public float getLowerBoundsByTimeOfCorrelatioinCalc() { return lowerBoundsByTimeOfCorrelatioinCalc;} @Override

public final void setLowerBoundsByTimeOfCorrelatioinCalc(float lowerBoundsByTimeOfCorrelatioinCalc) { if ((lowerBoundsByTimeOfCorrelatioinCalc >= 0) && (lowerBoundsByTimeOfCorrelatioinCalc < 1.0)) { this.lowerBoundsByTimeOfCorrelatioinCalc = lowerBoundsByTimeOfCorrelatioinCalc;} else { this.lowerBoundsByTimeOfCorrelatioinCalc = (float) 0.0;}} @Override

public float getUpperBoundsByTimeOfCorrelatioinCalc() { return upperBoundsByTimeOfCorrelatioinCalc;} @Override

public final void setUpperBoundsByTimeOfCorrelatioinCalc(float upperBoundsByTimeOfCorrelatioinCalc) { if ((upperBoundsByTimeOfCorrelatioinCalc > 0) && (upperBoundsByTimeOfCorrelatioinCalc <= 1.0)) { this.upperBoundsByTimeOfCorrelatioinCalc = upperBoundsByTimeOfCorrelatioinCalc;} else { this.upperBoundsByTimeOfCorrelatioinCalc = (float) 1.0;}} @Override

public int hashCode() { int hash = 7;

hash = 73 * hash + Objects.hashCode(this.pattern);

hash = 73 * hash + this.windowWidthOfSpectrogram;

hash = 73 * hash + Float.floatTolntBits(this.lowerBoundsByTime);

hash = 73 * hash + Float.floatTolntBits(this.upperBoundsByTime);

hash = 73 * hash + Float.floatTolntBits(this.lowerBoundsByFrequency);

hash = 73 * hash + Float.floatToIntBits(this.upperBoundsByFrequency);

hash = 73 * hash + Float.floatTolntBits(this.lowerBoundsByTimeOfCorrelatioinCalc);

hash = 73 * hash + Float.floatTolntBits(this.upperBoundsByTimeOfCorrelatioinCalc);

return hash;}

@Override

public boolean equals(Object obj) { if (obj == null) { return false;}

if (getClass() != obj.getClass()) { return false;}

final CorrelationByMagnitudeArgument other = (CorrelationByMagnitudeArgument) obj ; if (!Objects.equals(this.pattern, other.pattern)) { return false;}

if (this.windowWidthOfSpectrogram != other.windowWidthOfSpectrogram) { return false;}

if (Float.floatTolntBits(this.lowerBoundsByTime) != Float.floatTolntBits(other.lowerBoundsByTime)) { return false;}

if (Float.floatTolntBits(this.upperBoundsByTime) != Float.floatTolntBits(other.upperBoundsByTime)) { return false;}

if (Float.floatTolntBits(this.lowerBoundsByFrequency) != Float.floatTolntBits(other.lowerBoundsByFrequency)) { return false;}

if (Float.floatTolntBits(this.upperBoundsByFrequency) != Float.floatTolntBits(other.upperBoundsByFrequency)) { return false;}

if (Float.floatTolntBits(this.lowerBoundsByTimeOfCorrelatioinCalc) != Float.floatTolntBits(other.lowerBoundsByTimeOfCorrelatioinCalc)) { return false;}

if (Float.floatTolntBits(this.upperBoundsByTimeOfCorrelatioinCalc) != Float.floatTolntBits(other.upperBoundsByTimeOfCorrelatioinCalc)) { return false;} return true;}}

package ru.fedul0x.crr.criteria.argument;

import ru.fedulOx.common.Noise;

public interface CorrelationByMagnitudeInterface {

public Noise getPattern() throws IllegalArgumentException; public void setPattern(Noise pattern) throws IllegalArgumentException; public int getWindowWidthOfSpectrogram() throws IllegalArgumentException;

public void setWindowWidthOfSpectrogram(int windowWidthOfSpectrogram) throws IllegalArgumentException; public float getLowerBoundsByTime() throws IllegalArgumentException;

public void setLowerBoundsByTime(float lowerBoundsByTime) throws IllegalArgumentException; public float getUpperBoundsByTime() throws IllegalArgumentException;

public void setUpperBoundsByTime(float upperBoundsByTime) throws IllegalArgumentException; public float getLowerBoundsByFrequency() throws IllegalArgumentException;

public void setLowerBoundsByFrequency(float lowerBoundsByFrequency) throws IllegalArgumentException; public float getUpperBoundsByFrequency() throws IllegalArgumentException;

public void setUpperBoundsByFrequency(float upperBoundsByFrequency) throws IllegalArgumentException; public float getLowerBoundsByTimeOfCorrelatioinCalc() throws IllegalArgumentException;

public void setLowerBoundsByTimeOfCorrelatioinCalc(float lowerBoundsByTimeOfCorrelatioinCalc) throws IllegalArgumentException; public float getUpperBoundsByTimeOfCorrelatioinCalc() throws IllegalArgumentException;

public void setUpperBoundsByTimeOfCorrelatioinCalc(float upperBoundsByTimeOfCorrelatioinCalc) throws IllegalArgumentException;} package ru.fedul0x.crr.criteria.argument; import j ava.util .HashMap;

import java.util.Map; /**

* Обертка над HashMap для критерия аргумента

*

* */

public class CriteriasArgument extends HashMap<String, Float>{ public CriteriasArgument() {

super();}}

package ru.fedul0x.crr.criteria.argument;

public class MaxByFrequencyArgument extends CriteriasArgument implements MaxByFrequencyInterface {

private int windowWidthOfSpectrogram; private float lowerBoundsByTime; private float upperBoundsByTime; private float lowerBoundsByFrequency; private float upperBoundsByFrequency; private float lowerBoundsByMagnitude; private float upperBoundsByMagnitude;

public MaxByFrequencyArgument(int windowWidthOfSpectrogram, float lowerBoundsByTime, float upperBoundsByTime, float lowerBoundsByFre-quency, float upperBoundsByFrequency,

float lowerBoundsByMagnitude, float upperBoundsByMagnitude) { super();

setWindowWidthOfSpectrogram(windowWidthOfSpectrogram); setLowerBoundsByTime(lowerBoundsByTime);

setUpperBoundsByTime(upperBoundsByTime);

setLowerBoundsByFrequency(lowerBoundsByFrequency);

setUpperBoundsByFrequency(upperBoundsByFrequency);

setLowerBoundsByMagnitude(lowerBoundsByMagnitude);

setUpperBoundsByMagnitude(upperBoundsByMagnitude);}

@Override

public int getWindowWidthOfSpectrogram() { return windowWidthOfSpectrogram;} @Override

public final void setWindowWidthOfSpectrogram(int windowWidthOfSpectrogram) {

this.windowWidthOfSpectrogram = windowWidthOfSpectrogram;}

@Override

public float getLowerBoundsByTime() { return lowerBoundsByTime;} @Override

public final void setLowerBoundsByTime(float lowerBoundsByTime) { if ((lowerBoundsByTime >= 0) && (lowerBoundsByTime < 1.0)) { this.lowerBoundsByTime = lowerBoundsByTime;} else { this.lowerBoundsByTime = (float) 0.0;}} @Override

public float getUpperBoundsByTime() { return upperBoundsByTime;} @Override

public final void setUpperBoundsByTime(float upperBoundsByTime) { if ((upperBoundsByTime > 0) && (upperBoundsByTime <= 1.0)) { this.upperBoundsByTime = upperBoundsByTime;} else { this.upperBoundsByTime = (float) 1.0;}} @Override

public float getLowerBoundsByFrequency() { return lowerBoundsByFrequency;} @Override

public final void setLowerBoundsByFrequency(float lowerBoundsByFrequency) { if ((lowerBoundsByFrequency >= 0) && (lowerBoundsByFrequency < 1.0)) { this.lowerBoundsByFrequency = lowerBoundsByFrequency;} else { this.lowerBoundsByFrequency = (float) 0.0;}} @Override

public float getUpperBoundsByFrequency() { return upperBoundsByFrequency;} @Override

public final void setUpperBoundsByFrequency(float upperBoundsByFrequency) { if ((upperBoundsByFrequency > 0) && (upperBoundsByFrequency <= 1.0)) { this.upperBoundsByFrequency = upperBoundsByFrequency;} else { this.upperBoundsByFrequency = (float) 1.0;}} @Override

public float getLowerBoundsByMagnitude() { return lowerBoundsByMagnitude;} @Override

public final void setLowerBoundsByMagnitude(float lowerBoundsByMagnitude) { if ((lowerBoundsByMagnitude >= 0) && (lowerBoundsByMagnitude < 1.0)) { this.lowerBoundsByMagnitude = lowerBoundsByMagnitude;} else { this.lowerBoundsByMagnitude = (float) 1.0;}} @Override

public float getUpperBoundsByMagnitude() { return upperBoundsByMagnitude;} @Override

public final void setUpperBoundsByMagnitude(float upperBoundsByMagnitude) { if ((upperBoundsByMagnitude > 0) && (upperBoundsByMagnitude <= 1.0)) { this.upperBoundsByMagnitude = upperBoundsByMagnitude;} else { this.upperBoundsByMagnitude = (float) 1.0;}} @Override

public int hashCode() { int hash = 5;

hash = 83 * hash + this.windowWidthOfSpectrogram; hash = 83 * hash + Float.floatTolntBits(this.lowerBoundsByTime); hash = 83 * hash + Float.floatTolntBits(this.upperBoundsByTime); hash = 83 * hash + Float.floatTolntBits(this.lowerBoundsByFrequency); hash = 83 * hash + Float.floatTolntBits(this.upperBoundsByFrequency); hash = 83 * hash + Float.floatTolntBits(this.lowerBoundsByMagnitude); hash = 83 * hash + Float.floatTolntBits(this.upperBoundsByMagnitude); return hash;} @Override

public boolean equals(Object obj) { if (obj == null) {

return false;}

if (getClass() != obj.getClass()) { return false;}

final MaxByFrequencyArgument other = (MaxByFrequencyArgument) obj; if (this.windowWidthOfSpectrogram != other.windowWidthOfSpectrogram) { return false;}

if (Float.floatTolntBits(this.lowerBoundsByTime) != Float.floatTolntBits(other.lowerBoundsByTime)) { return false;}

if (Float.floatTolntBits(this.upperBoundsByTime) != Float.floatTolntBits(other.upperBoundsByTime)) { return false;}

if (Float.floatTolntBits(this.lowerBoundsByFrequency) != Float.floatTolntBits(other.lowerBoundsByFrequency)) { return false;}

if (Float.floatTolntBits(this.upperBoundsByFrequency) != Float.floatTolntBits(other.upperBoundsByFrequency)) { return false;}

if (Float.floatTolntBits(this.lowerBoundsByMagnitude) != Float.floatTolntBits(other.lowerBoundsByMagnitude)) { return false;}

if (Float.floatTolntBits(this.upperBoundsByMagnitude) != Float.floatTolntBits(other.upperBoundsByMagnitude)) { return false;} return true;}}

package ru.fedul0x.crr.criteria.argument; /**

* Критерий суммы окна спектрограммы

*

* Сумма значений в окне на спектрограмме. Значение критерия равно 1, если

* указанная сумма превышает заданный порог.

*

* Аргумены

*

* значение ширины статического окна при построение спектрограммы (32)

* координаты левой и правой границы окна (по времени), координаты нижней и

* верхней границы окна (по частоте) для для суммирования (2446, 7589, 30, 31)

* порогсуммы ()

*

*/

public class SpectrogramWindowSumArgument extends CriteriasArgument implements SpectrogramWindowSumlnterface {

protected int windowWidthOfSpectrogram; protected float lowerBoundsByTime; protected float upperBoundsByTime; protected float lowerBoundsByFrequency; protected float upperBoundsByFrequency; protected float errorThreshold;

public SpectrogramWindowSumArgument(int windowWidthOfSpectrogram, float lowerBoundsByTime, float upperBoundsByTime, float lowerBounds-

ByFrequency, float upperBoundsByFrequency, float errorThreshold) {

setWindowWidthOfSpectrogram(windowWidthOfSpectrogram);

setLowerBoundsByTime(lowerBoundsByTime);

setUpperBoundsByTime(upperBoundsByTime);

setLowerBoundsByFrequency(lowerBoundsByFrequency);

setUpperBoundsByFrequency(upperBoundsByFrequency);

setErrorThreshold(errorThreshold);}

@Override

public int getWindowWidthOfSpectrogram() throws IllegalArgumentException {

return windowWidthOfSpectrogram;}

@Override

public final void setWindowWidthOfSpectrogram(int windowWidthOfSpectrogram) throws IllegalArgumentException {

this.windowWidthOfSpectrogram = windowWidthOfSpectrogram;}

@Override

public float getLowerBoundsByTime() { return lowerBoundsByTime;} @Override

public final void setLowerBoundsByTime(float lowerBoundsByTime) { if ((lowerBoundsByTime >= 0) && (lowerBoundsByTime < 1.0)) { this.lowerBoundsByTime = lowerBoundsByTime;} else { this.lowerBoundsByTime = (float) 0.0;}} @Override

public float getUpperBoundsByTime() { return upperBoundsByTime;} @Override

public final void setUpperBoundsByTime(float upperBoundsByTime) { if ((upperBoundsByTime > 0) && (upperBoundsByTime <= 1.0)) { this.upperBoundsByTime = upperBoundsByTime;} else { this.upperBoundsByTime = (float) 1.0;}} @Override

public float getLowerBoundsByFrequency() {

return lowerBoundsByFrequency;} @Override

public final void setLowerBoundsByFrequency(float lowerBoundsByFrequency) { if ((lowerBoundsByFrequency >= 0) && (lowerBoundsByFrequency < 1.0)) { this.lowerBoundsByFrequency = lowerBoundsByFrequency;} else { this.lowerBoundsByFrequency = (float) 0.0;}} @Override

public float getUpperBoundsByFrequency() { return upperBoundsByFrequency;} @Override

public final void setUpperBoundsByFrequency(float upperBoundsByFrequency) { if ((upperBoundsByFrequency > 0) && (upperBoundsByFrequency <= 1.0)) { this.upperBoundsByFrequency = upperBoundsByFrequency;} else { this.upperBoundsByFrequency = (float) 1.0;}} @Override

public float getErrorThreshold() throws IllegalArgumentException {

return errorThreshold;}

@Override

public final void setErrorThreshold(float errorThreshold) throws IllegalArgumentException {

if ((errorThreshold > 0) && (errorThreshold <= 1.0)) {

this.errorThreshold = errorThreshold;} else {

this.errorThreshold = (float) 1.0;}}

@Override

public int hashCode() { int hash = 3;

hash = 61 * hash + this.windowWidthOfSpectrogram;

hash = 61 * hash + Float.floatTolntBits(this.lowerBoundsByTime);

hash = 61 * hash + Float.floatTolntBits(this.upperBoundsByTime);

hash = 61 * hash + Float.floatTolntBits(this.lowerBoundsByFrequency);

hash = 61 * hash + Float.floatTolntBits(this.upperBoundsByFrequency);

hash = 61 * hash + Float.floatTolntBits(this.errorThreshold);

return hash;}

@Override

public boolean equals(Object obj) { if (obj == null) { return false;}

if (getClass() != obj.getClass()) { return false;}

final SpectrogramWindowSumArgument other = (SpectrogramWindowSumArgument) obj; if (this.windowWidthOfSpectrogram != other.windowWidthOfSpectrogram) { return false;}

if (Float.floatTolntBits(this.lowerBoundsByTime) != Float.floatTolntBits(other.lowerBoundsByTime)) { return false;}

if (Float.floatTolntBits(this.upperBoundsByTime) != Float.floatTolntBits(other.upperBoundsByTime)) { return false;}

if (Float.floatTolntBits(this.lowerBoundsByFrequency) != Float.floatTolntBits(other.lowerBoundsByFrequency)) { return false;}

if (Float.floatTolntBits(this.upperBoundsByFrequency) != Float.floatTolntBits(other.upperBoundsByFrequency)) { return false;}

if (Float.floatTolntBits(this.errorThreshold) != Float.floatTolntBits(other.errorThreshold)) { return false;} return true;}}

package ru.fedul0x.crr.criteria.argument;

import j ava.util. Obj ects;

import ru.fedul0x.common.Noise;

public class PEnvelopeCorrelationArgument extends CriteriasArgument implements PEnvelopeCorrelationInterface {

private Noise pattern; private float smootingWindowTime;

public PEnvelopeCorrelationArgument(Noise pattern, float smootingWindowTime) { setPattern(pattern);

setSmoothinWindowTime(smootingWindowTime);} @Override

public Noise getPattern() throws IllegalArgumentException {

return pattern;}

@Override

public final void setPattern(Noise pattern) throws IllegalArgumentException {

this.pattern = pattern;}

@Override

public float getSmoothinWindowTime() throws IllegalArgumentException {

return smootingWindowTime;}

@Override

public final void setSmoothinWindowTime(float smoothingWindowTime) throws IllegalArgumentException { this.smootingWindowTime = smoothingWindowTime;}

@Override

public int hashCode() { int hash = 3;

hash = 11 * hash + Objects.hashCode(this.pattern);

hash = 11 * hash + Float.floatToIntBits(this.smootingWindowTime);

return hash;}

@Override

public boolean equals(Object obj) { if (obj == null) { return false;}

if (getClass() != obj.getClass()) { return false;}

final PEnvelopeCorrelationArgument other = (PEnvelopeCorrelationArgument) obj; if (!Objects.equals(this.pattern, other.pattern)) { return false;}

if (Float.floatTolntBits(this.smootingWindowTime) != Float.floatTolntBits(other.smootingWindowTime)) { return false;} return true;}}

package ru.fedul0x.crr.criteria.argument;

public interface SpectrogramWindowSumInterface {

public int getWindowWidthOfSpectrogram() throws IllegalArgumentException; public void setWindowWidthOfSpectrogram(int windowWidthOfSpectrogram) throws IllegalArgumentException; public float getLowerBoundsByTime() throws IllegalArgumentException;

public void setLowerBoundsByTime(float lowerBoundsByTime) throws IllegalArgumentException; public float getUpperBoundsByTime() throws IllegalArgumentException;

public void setUpperBoundsByTime(float upperBoundsByTime) throws IllegalArgumentException; public float getLowerBoundsByFrequency() throws IllegalArgumentException;

public void setLowerBoundsByFrequency(float lowerBoundsByFrequency) throws IllegalArgumentException; public float getUpperBoundsByFrequency() throws IllegalArgumentException;

public void setUpperBoundsByFrequency(float upperBoundsByFrequency) throws IllegalArgumentException;

public float getErrorThreshold() throws IllegalArgumentException;

public void setErrorThreshold(float errorThreshold) throws IllegalArgumentException;}

package ru.fedul0x.crr.criteria.argument;

public interface MaxByFrequencyInterface {

public int getWindowWidthOfSpectrogram() throws IllegalArgumentException; public void setWindowWidthOfSpectrogram(int windowWidthOfSpectrogram) throws IllegalArgumentException; public float getLowerBoundsByTime() throws IllegalArgumentException;

public void setLowerBoundsByTime(float lowerBoundsByTime) throws IllegalArgumentException; public float getUpperBoundsByTime() throws IllegalArgumentException;

public void setUpperBoundsByTime(float upperBoundsByTime) throws IllegalArgumentException; public float getLowerBoundsByFrequency() throws IllegalArgumentException;

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