Скачиваний:
0
Добавлен:
12.02.2026
Размер:
630.99 Кб
Скачать

Глава 2: Разработка системы или модели

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

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

Где –параметры, отражающие ширину гауссовой волны, – параметры, отражающие точку середины (пик) волны, – амплитуда волны, t – время в секундах, при ограничениях: 0 ≤ 𝑡𝑃 (1) < 𝑡𝑃 (2) ≤ 𝑡𝑄 (1) < 𝑡𝑄 (2) = 𝑡𝑅 (1) < 𝑡𝑅 (2) = 𝑡𝑆 (1) < 𝑡𝑆 (1) = 𝑡𝑆𝑇 (1) ≤ 𝑡𝑆𝑇 (2) ≤ 𝑡𝑇 (1) < 𝑡𝑇 (2) ≤ 𝑡0 где 𝑡0— общая продолжительность (мс) 𝑧(𝑡), связанная с частотой FЧСС сердечных сокращений (уд/мин) соотношением:

,

а моменты начала 𝑡𝑖 (1) и окончания 𝑡𝑖 (2) каждого i -го фрагмента эталона, 𝑖 ∈ {𝑃,𝑄, 𝑅, 𝑆, 𝑆𝑇, 𝑇}, связаны с параметрами 𝑏𝑖 (1), 𝑏𝑖 (2) и 𝜇𝑖 следующим образом:

Параметры 𝐴𝑖 и 𝜇𝑖 определяют значения амплитуд и моментов времени, когда i-й информативный фрагмент эталона, 𝑖 ∈ {𝑃, 𝑄, 𝑅, 𝑆, 𝑆𝑇, 𝑇}, принимает максимальное значение при 𝐴𝑖 > 0 или минимальное значение при 𝐴𝑖 < 0, а параметры

при 𝑏𝑖 (1) ≠ 𝑏𝑖 (2) позволяют генерировать несимметричные фрагменты.

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

𝑡0𝑚 = 𝑡0 (1 + 𝛾𝑚), 𝑚 = 1, … , 𝑁

формируется последовательность циклов Z1(t)...ZN(t) по формуле:

Изменение продолжительностей RR-интервалов моделируется искажением частоты сердечных сокращений (временного интервала 𝑡0) на основе использования реализаций независимой случайной величины 𝛾𝑚, которая с нулевым математическим ожиданием распределена на ограниченном интервале 𝛾𝑚 ∈ [−𝛾0, 𝛾𝑚], 𝛾0 – фиксированное число, определяющее требуемые границы искажения частоты.

Для реализации модели ЭКГ был написан код на языке C++ и подобраны параметры гауссовых функций для моделирования нормального QRS комплекса, комплекса с депрессией ST-сегмента, а также комплекса при желудочковой экстрасистолии.

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

Каждый из подклассов Complex состоит из набора зубцов ЭКГ, представляющих собой структуры имеющие параметры, необходимые для расчёта гауссовой функции: name – имя зубца (P, Q, R и т.д.), А, b1, b2 и u соответственно.

Добавление и удаление объектов Complex в объект ECG осуществляется посредством функций push и del соответственно. Эти функции не представляют интереса с точки зрения расчёта, поэтому не будем заострять на них внимание.

Основной расчёт производится за счёт функции calculate, в которую передаются параметры: Fs – частота дискретизации, HR – частота сердечных сокращений, n – количество комплексов, которые необходимо сгенерировать, name – тип комплексов.

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

Внутри функции do_ECG на основе данных о частоте сердцебиения рассчитывается количество точек, которое будет занимать один кардиоцикл. Длина каждого кардиоцикла также рандомизирована, однако отклонение составляет не более 5% от идеальной длины. Сама же функция рассчитывает несимметричную гауссову функцию по переданным в неё параметрам, руководствуясь следующей логикой: для каждой точки в отдельности рассчитываются значения гауссовых функций, соответствующий данной точке во времени, относительно точка начала кардиоцикла. При этом, если tтекущ < u, то для рассчёта используется параметр b1, иначе параметр b2.

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

Далее, для упрощения работы с сигналом, он выводится в текстовый файл формата .txt. Этот формат удобен, так как читается большинством редакторов, мало весит и прост в обработке.

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

Таблица 1 – Коэффициенты комплексов

Тип комплекса

Зубец

A

b1

b2

u

Нормальный

P

0.11

0.014

0.014

0.399

Q

-0.004

0.008

0.008

0.45

R

1.453

0.008

0.008

0.474

S

-1.053

0.007

0.007

0.495

ST

0.063

0.04

0.04

0.574

T

0.52

0.056

0.024

0.7

Продолжение таблицы 1

Тип комплекса

Зубец

A

b1

b2

u

Депрессия ST сегмента

P

0.04

0.03

0.03

0.203

Q

0

0.066

0.066

0.266

R

0.64

0.016

0.026

0.296

S

-0.1

0.03

0.03

0.4

ST

-0.23

0.15

0.2

0.45

T

0.06

0.1

0.08

0.7

Желудочковая экстрасистолия

P

0

0.03

0.03

0.08

Q

0.3

0.01

0.03

0.1

R

1.3

0.04

0.04

0.2

S

-0.1

0.01

0.015

0.28

ST

-0.18

0.1

0.1

0.34

T

-0.19

0.04

0.04

0.39

Соседние файлы в папке Модель ЭКГ