Вычисление частоты.

Сообщение №8675 от Konstantin_Semenov 16 сентября 2003 г. 18:09
Тема: Вычисление частоты.

Здравствуйте.

Вот у меня такой не совсем обычный вопрос. Я снимаю с помощью прибора электрокардиограмму человека. И мне нужно в реальном времени вычислять ЧСС (частота сердечных сокращений). Проще говоря пульс. Стандартная кардиограмма имеет такой вид:

http://www.aixoft.de

(красными кружочками отмечены так называемые R-зубцы).
Измеряя время между R-зубцами можно вычислить ЧСС. Так вот вопрос заключается в том, как вычислить положение R-зубца, если мы на входе имеем просто массив амплитуд от времени ?

Заранее спасибо за ответ.


Отклики на это сообщение:

> Измеряя время между R-зубцами можно вычислить ЧСС. Так вот вопрос заключается в том, как вычислить положение R-зубца, если мы на входе имеем просто массив амплитуд от времени ?


Возникает несколько вопросов.

(1) На картинке, вероятнее всего, кардиограмма очень здорового человека.
В реальности R- зубцы должны иметь разное максимальное значение. С точки зрения математики это локальные максимумы функции одной переменной. Правильно я понимаю? То есть, о чем я:
При аритмии интервал межу пиками и максимальные значения пиков будут разные?

(3) Прибор ВЫдает массив значений функции (можно ли называть её кардиограммой?) с каким дискретом по времени?

(4) Правильно ли я понимаю, что прибор уже преобразует в цифровые значения массива, которые поступают на РС (персональный компьютер) в виде последовательности значений кардиограммы, который Вы назвали «просто массив амплитуд от времени»?


Спектральный анализ тут, по-мойму, помочь может...
Попробуйте задать этот вопрос на fido7.ru.math, там точно что-нибудь подскажут.


> Спектральный анализ тут, по-мойму, помочь может...

А при чём здесь спектральный анализ.
Разве необходимо разложение на составляющие гармоники? Какие?
Каков в этом смысл?
Эта задачка, вероятно, уже «распахана».
Но заново решать не возбраняется.
Так я думаю.


> > Измеряя время между R-зубцами можно вычислить ЧСС. Так вот вопрос заключается в том, как вычислить положение R-зубца, если мы на входе имеем просто массив амплитуд от времени ?
>
> Возникает несколько вопросов.
> (1) На картинке, вероятнее всего, кардиограмма очень здорового человека.
> В реальности R- зубцы должны иметь разное максимальное значение. С точки зрения математики это локальные максимумы функции одной переменной. Правильно я понимаю? То есть, о чем я:
> При аритмии интервал межу пиками и максимальные значения пиков будут разные?
> (3) Прибор ВЫдает массив значений функции (можно ли называть её кардиограммой?) с каким дискретом по времени?
> (4) Правильно ли я понимаю, что прибор уже преобразует в цифровые значения массива, которые поступают на РС (персональный компьютер) в виде последовательности значений кардиограммы, который Вы назвали «просто массив амплитуд от времени»?

1. На картинке ЭКГ, снятая с эмулятора. Поэтому тут все очень четко. =)
2. Да, при аритмии значения между максимумами будут разными, причем возможны
так называемые экстрасистолы (то есть внеочередные сердечные сокращения)
Но учитывать это совершенно не нужно. То есть пускай ЧСС "плавает".
3. Прибор выдает значения с частотой 450 гц.
4. Да, так и есть. Я читаю из COM порта оцифрованную ЭКГ.

То есть задача состоит в том, чтобы найти например 3 последних R-зубца и посчитать время между ними. Но как их найти, вот в чем вопрос...


> 1. На картинке ЭКГ, снятая с эмулятора. Поэтому тут все очень четко. =)
> 2. Да, при аритмии значения между максимумами будут разными, причем возможны
> так называемые экстрасистолы (то есть внеочередные сердечные сокращения)
> Но учитывать это совершенно не нужно. То есть пускай ЧСС "плавает".
> 3. Прибор выдает значения с частотой 450 гц.
> 4. Да, так и есть. Я читаю из COM порта оцифрованную ЭКГ.

> То есть задача состоит в том, чтобы найти например 3 последних R-зубца и посчитать время между ними. Но как их найти, вот в чем вопрос...

В чем проблема? Считаем, что зубец - это отсчет, величина которого больше заданной. Пусть Зубец-1 произошел на такте №n, Зубец-2 - на такте №(n+450). Тогда пульс - 60 ударов в минуту.


> Здравствуйте.

> Вот у меня такой не совсем обычный вопрос. Я снимаю с помощью прибора электрокардиограмму человека. И мне нужно в реальном времени вычислять ЧСС (частота сердечных сокращений). Проще говоря пульс. Стандартная кардиограмма имеет такой вид:

> http://www.aixoft.de

> (красными кружочками отмечены так называемые R-зубцы).
> Измеряя время между R-зубцами можно вычислить ЧСС. Так вот вопрос заключается в том, как вычислить положение R-зубца, если мы на входе имеем просто массив амплитуд от времени ?

Давайте выйдем за пределы математики, и дойдем до электрофизиологии...
1. Зубец R имеет вполне определенный знак (в I, II, III отведениях положительный).
2. Он весьма острый.
3. Амплитуда его велика и превосходит прочие зубцы.
4. Ширина его известна (0.04-0.07 сек.)
5. Встречается он с частотой не выше определенной (всякого рода фибрилляцией пренебрежем).

В качестве обнаружителя можно взять разность между значением в данной точке и средним значений в точках, отстоящих влево и вправо на 0.05-0.06 сек. Если она превосходит порог - это зубец. Далее находим локальный максимум - это его вершина. Более сложная задача - отбраковка экстрасистол.


> 1. На картинке ЭКГ, снятая с эмулятора. Поэтому тут все очень четко. =)

«Эмулятор»,- это что - то типа эмитатора?
Правильно ли я Вас понимаю, что Вы просто можете ввести в РС массив чисел, имитирующую последовательность, которую необходимо обработать?
Т.е. ВЫ можете в этой последовательности «подыграть» (или, как ещё говорят «симулировать») ситуацию, соответствующую той, для которой Вам необходимо понять, как сработает Ваша программа.
Кстати Вы сами программируете, или Вас интересует только алгоритм решения этой «задачи»?

> 2. Да, при аритмии значения между максимумами будут разными, причем возможны
> так называемые экстрасистолы (то есть внеочередные сердечные сокращения)
> Но учитывать это совершенно не нужно. То есть пускай ЧСС "плавает".

Когда я прочитала эту Вашу позицию, то у меня сразу возникло мнение (или суждение, что ли), что Ваша задача упирается в то, что считать за ЧСС.
Т.е. необходимо иметь четкое определение этого понятия.
Тогда алгоритм, как говорится, выложится сам на блюдечко.

> 3. Прибор выдает значения с частотой 450 гц.

Странно! Очень низкая частота.
Почему ещё я заинтересовалась Вашей темой.
У моей мамы очень сильная аритмия, сопровождающаяся тахикардией.
Совсем недавно был пульс 140!
Получается, что между R - зубцами в этом случае всего ДВА элемента массива.
Когда я слушаю её пульс по японскому прибору UA-702 AD, то как раз у меня возникает вопрос, что в этом случае считать за ЧСС.
Паузы невероятно большие.

> То есть задача состоит в том, чтобы найти например 3 последних R-зубца и посчитать время между ними. Но как их найти, вот в чем вопрос...

Или я все-таки что - то не понимаю, или это очень простая задачка для программистов.
В принципе её можно расписать здесь, на форуме.
Но в какой форме Вы хотите получить результат?


> > 2. Да, при аритмии значения между максимумами будут разными, причем возможны
> > так называемые экстрасистолы (то есть внеочередные сердечные сокращения)
> > Но учитывать это совершенно не нужно. То есть пускай ЧСС "плавает".
>
> Когда я прочитала эту Вашу позицию, то у меня сразу возникло мнение (или суждение, что ли), что Ваша задача упирается в то, что считать за ЧСС.
> Т.е. необходимо иметь четкое определение этого понятия.
> Тогда алгоритм, как говорится, выложится сам на блюдечко.

Число R-зубцов в течение минуты. Ну и что?

> > 3. Прибор выдает значения с частотой 450 гц.
>
> Странно! Очень низкая частота.
> Почему ещё я заинтересовалась Вашей темой.
> У моей мамы очень сильная аритмия, сопровождающаяся тахикардией.
> Совсем недавно был пульс 140!
> Получается, что между R - зубцами в этом случае всего ДВА элемента массива.
> Когда я слушаю её пульс по японскому прибору UA-702 AD, то как раз у меня возникает вопрос, что в этом случае считать за ЧСС.
> Паузы невероятно большие.

Герц - это отсчет в секунду. А ЧСС считается за минуту. Т.е. не 2, а 192 с лишним отсчета...
(На самом деле с достаточной во многих случаях точностью можно квантовать 200 Гц)

> > То есть задача состоит в том, чтобы найти например 3 последних R-зубца и посчитать время между ними. Но как их найти, вот в чем вопрос...
>
> Или я все-таки что - то не понимаю, или это очень простая задачка для программистов.
> В принципе её можно расписать здесь, на форуме.
> Но в какой форме Вы хотите получить результат?

Это не столь простая задача для обсуждения между электрофизиологом и специалистом по цифровой обработке сигналов. Само программирование уже, разумеется, несложно...


> > 3. Прибор выдает значения с частотой 450 гц.
>
> Странно! Очень низкая частота.
> Почему ещё я заинтересовалась Вашей темой.
> У моей мамы очень сильная аритмия, сопровождающаяся тахикардией.
> Совсем недавно был пульс 140!
> Получается, что между R - зубцами в этом случае всего ДВА элемента массива.
> Когда я слушаю её пульс по японскому прибору UA-702 AD, то как раз у меня возникает вопрос, что в этом случае считать за ЧСС.
> Паузы невероятно большие.

Для пульса 140 должно быть не ДВА элемента массива, а около 1000, ведь прибор выдает значения с частотой 450 гц. Если, конечно, мы говорим об одних и тех же вещах.

> > То есть задача состоит в том, чтобы найти например 3 последних R-зубца и посчитать время между ними. Но как их найти, вот в чем вопрос...
>
> Или я все-таки что - то не понимаю, или это очень простая задачка для программистов.

Я тоже не вполне понимаю, ЧТО непонятно Константину.



> Для пульса 140 должно быть не ДВА элемента массива, а около 200, ведь прибор выдает значения с частотой 450 гц. Если, конечно, мы говорим об одних и тех же вещах.



> >Т.е. необходимо иметь четкое определение этого понятия.
> >Тогда алгоритм, как говорится, выложится сам на блюдечко.
> Число R-зубцов в течение минуты. Ну и что?
Дайте определение ЧСС!
Если число зубцов/минуту, то обсуждать, действительно, нечего.

> Герц - это отсчет в секунду. А ЧСС считается за минуту. Т.е. не 2, а 192 с лишним отсчета...
> (На самом деле с достаточной во многих случаях точностью можно квантовать 200 Гц)
Здесь я согласна с Вами!
Дала маху!.



Если всё сводится е R-зубцам, то этому понятию необходимо дать точное определение.
И после этого надо понимать, что

(1) Равномерность расположения R-зубцов игнорируется.
(2) Для каждого временного интервала, будет свое Число СС.
Т.е. необходимо добавлять на каком временном интервале (по протяженности) был подсчет.


Как многие уже отметили, математика здесь элементарная, все сводится к корректному с точки зрения физиологии определению понятий.

Например, что такое R-зубец и как он привязывается ко времени?

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

1. Фиксируем момент первого превышения порога.
2. Если в течение заданного времени (минимальной ширины зубца) после этого сигнал опустился ниже порога, сбрасываем зафиксированный момент и начинаем поиск первого зубца заново.
3. Если сигнал опустился ниже порога позже, то аналогичным образом ищем следующий зубец.
4. Как только нашли следующий зубец, определяем разницу между моментами начала второго и первого зубца, фиксируем ее как очередной отсчет периода сердечных сокращений, принимаем второй зубец за первый и переходим к поиску следующего зубца (пункт 3).

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

Что дальше делать с этим массивом - опять же Ваше решение. Можно, например, определить среднее и средне-квадратичное отклонение и выдать на экран первое - как измеренное значение, а второе - как ошибку измерения. А можно провести более сложную обработку (оценить аритмию и проч.)


> > >Т.е. необходимо иметь четкое определение этого понятия.
> > >Тогда алгоритм, как говорится, выложится сам на блюдечко.
> > Число R-зубцов в течение минуты. Ну и что?
> Дайте определение ЧСС!
> Если число зубцов/минуту, то обсуждать, действительно, нечего.

Предмет интереса здесь - метод точного определения, что сие:
1. Зубец R (момент деполяризации желудочка)
2. Зубцы Q, S ("окружают" зубец R)
3. Зубец T (реполяризация, ниже амплитудой и растянут)
4. Зубец P (сокращение предсердий, невысокой амплитуды и растянут)
5. Механический артефакт (движение больного, обрыв электрода...)
6. Мышечные сокращения.
7. Наводка.
Кроме того, часто некоторые из названных зубцов могут отсутствовать, или идти в ином порядке.
В этом и трудность. Решение ее между электроникой, физиологией и обработкой сигналов. Математики здесь мало...
http://www.practica.ru/BK1/5.htm
http://www.nedug.ru/lib/lit/therap/01oct/therap344/therap.htm


> >Дайте определение ЧСС!
> >Если число зубцов/минуту, то обсуждать, действительно, нечего.
> Предмет интереса здесь - метод точного определения, что сие:
> 1. Зубец R
> 2. Зубцы Q, S
> 3. Зубец T
> 4. Зубец P

Вы затрагиваете совсем другую тему.
В заданном вопросе НИЧЕГО ПРО ЭТО нет.
Всё это интересно.
Но если рассматривается обработка на РС (кардиограммы, энцефолограммы (вероятно неправильно написала?)) или еще чего, то «медикам» придется формализовать определения до уровня математики. Иначе никак.
Дальше модель.

Есть медики, которые «работают на интуиции».
Ради бога. Но это другой уровень. Другая «техника».

Про задавшего вопрос.
Может это студент первого курса делает лабораторную работу.

Определение ЧСС по R-зубцам имеет право на жизнь.
Оно даёт очень ограниченную информацию.
И при этом обязательно должно быть четкое определение R-зубца.

ЗЫЫ. Электроника, физиология и т.д. - это отдельные составляющие общей задачи в комплексе.


> > >Дайте определение ЧСС!
> > >Если число зубцов/минуту, то обсуждать, действительно, нечего.
> > Предмет интереса здесь - метод точного определения, что сие:
> > 1. Зубец R
> > 2. Зубцы Q, S
> > 3. Зубец T
> > 4. Зубец P

> Вы затрагиваете совсем другую тему.
> В заданном вопросе НИЧЕГО ПРО ЭТО нет.

В заданном вопросе есть описание потребности. И только. Вопрос на данном этапе не пригоден к выкладыванию сюда ИМХО. Но если уж выложен...

> Всё это интересно.
> Но если рассматривается обработка на РС (кардиограммы, энцефолограммы
(вероятно неправильно написала?)) или еще чего, то «медикам» придется формализовать определения до уровня математики. Иначе никак.

1. Энцефалограмма (вернее, электроэнцефалограмма, но методики, которые назывались сходно, сейчас употребляются редко...)
2. Боюсь, что тогда ни одна математическая концепция пользы медицине не принесет. Кто желает приложит свои знания точных наук к медицине - должен научиться продираться через неточные определения и противоречия...

> Есть медики, которые «работают на интуиции».
> Ради бога. Но это другой уровень. Другая «техника».

Просто никаких иных медиков нет...

> Про задавшего вопрос.
> Может это студент первого курса делает лабораторную работу.

И это возможно...

> Определение ЧСС по R-зубцам имеет право на жизнь.
> Оно даёт очень ограниченную информацию.
> И при этом обязательно должно быть четкое определение R-зубца.

Сокращение сердца вызвано определенными электрическими процессами в нем. Они выражаются на кардиограмме. R-зубец просто наиболее четко выделяется изо всех.
Именно поэтому при построении ритмокардиограммы пользуются именно им. Хотя определения, пусть и не вполне четкого, у него нет...
Возможно, более адекватно регистрировать механическое движение - но либо вскрывать грудную клетку и ставить датчик на открытое сердце, либо жертвовать точностью, снимая вместо сокращений сердца движения грудной клетки.

> ЗЫЫ. Электроника, физиология и т.д. - это отдельные составляющие общей задачи в комплексе.

Ну, я бы сказал, что это более важные составляющие, нежели чисто математические аспекты...


> > Спектральный анализ тут, по-мойму, помочь может...

> А при чём здесь спектральный анализ.
> Разве необходимо разложение на составляющие гармоники? Какие?
> Каков в этом смысл?
> Эта задачка, вероятно, уже «распахана».
> Но заново решать не возбраняется.
> Так я думаю.

Спектральный анализ здесь появляется на следующем этапе. Когда массив значений R-R интервалов, рассматриваемый как набор отсчетов данных, можно использовать для построения спектра, отражающего процессы регуляции (дыхательные волны, волны Геринга - который физиолог...)...



Физика в анимациях - Купить диск - Тесты по физике - Графики on-line

Реклама:
Rambler's Top100