Обробка фотоплетизмограм:
Даний режим призначений для виконання наступних функцій: програмної фільтрації перешкод, обчислення параметрів ПХ.
Для фільтрації низьких частот використовується метод параболічного наближення по n точкам (число точок для інтерполяції вказується у вікні настроювань "Опції - Загальні - Кількість точок при фільтрації").
Діалогове вікно "Опції":
Всі опції розбиті на 5 класів (рисунок 8.7):
"Загальні" - опції, використовувані при обчисленнях і при збереженні даних:
Рисунок 8.7 – Діалогове вікно "Опції" (загальні)
"Нечутливість до перепадів" – параметр, що впливає на якість розміщення маркерів, "Архівувати дані при збереженні" - якщо параметр включений, те дані записуються у файл даних у стиснутому LZH-компресією вигляді, що приводить до збереження вільного місця на носії інформації, "Кількість точок при фільтрації" - фільтрація полягає в параболічній апроксимації (нерекурсивний фільтр низьких частот), тому це число (5,7 чи 9 точок) указує скільки точок буде впливати на значення в даній точці. 9 точок дає максимальне згладжування, "Схема розрахунку" - визначає вигляд звіту - як при діагностиці остеохондроза (дані до і після сеансу) чи щодо однієї еталонної хвилі, "Моніторинг" - визначає параметри інтерфейсу з апаратною частиною комплексу (рисунок 8.8).
Рисунок 8.8 – Діалогове вікно "Опції" (моніторинг)
Перший список, що випадає, відповідає за вибір джерела даних: плата АЦП – дані надходять із плати АЦП, використаної в комплексі для діагностики остеохондрозу, зовнішній пакет – для знімання даних запускається зовнішній пакет, результати роботи якого зчитуються потім з його зовнішнього тимчасового файлу в програму, COM-порт – взаємодія з останнім розробленим модулем, що підключається до COM2, калібрувальний сигнал – дані не надходять ні з якого пристрою. Синусоїда генерується програмно. Використовується для оцінки вірогідності даних знімаються при даних установках на конкретної ЕОМ, "Коеф. масштабування" і "Зміщення" – відповідають за перетворення даних, що надходять у випадку зняття даних зовнішнім пакетом. Зовнішній пакет видає дані в діапазоні від –2048 до 2048. У даній же програмі дані представляються 9-ю бітами, тобто діапазоном чисел від 0 до 511, "Точне число даних", "Моніторинг" та "Зняття" – у випадку малопродуктивного комп'ютера всій програмі необхідно дати найвищий пріоритет tpTimeCritical і скасувати команду Sleep, однак тоді програма не буде реагувати на дії користувача, а значить він не зможе зупинити процес зняття даних [20]. Для цього включається режим "Точне число даних", у ході якого зчитується визначене число дискретів в обох режимах, "Застосовувати відразу" – зміни внесені користувачем в опції будуть відразу ж враховані програмою, "Використовувати Sleep" – програма після кожної мс віддає комп'ютерний час операційному середовищу, що навіть при найвищому пріоритеті роботи програми (tpTimeCritical ) дозволяє користувачу взаємодіяти з програмою, "Затримка після зняття зі шкіри " – визначає частоту дискретизації даних. Частота обернено пропорційна даному параметру, "Усереднювати при знятті" – виконувати фільтрацію на етапі зняття даних. На якість впливає параметр "Кількість точок при фільтрації", описаний вище, "Дозволити доповнювати каналами" – у виключеному режимі, дані сусідніх неактивних каналів будуть знищені, "Процесор Pentium" – у включеному режимі на машині тільки з процесором intel Penium виконує більш точну прив'язку вчасно при зчитуванні даних, "Пріоритет потоку зняття даних" – установлює пріоритет потоку зняття даних (Вправо – найвищий пріоритет), "Кольори" – визначають набір кольорів використовуваних у програмі, "Графік" – визначає параметри відображення графіка: "Горизонтальні шкали", "Вертикальні шкали" – число шкал на графіку, "Чутливість "миші"" – визначає число точок, на які покажчик може відхилитися від маркера, не "загубивши" цей маркер, "Помічати дані при великому збільшені" – при великому масштабі дані позначаються хрестиком, "Маркери лише до значення" – при виключеному режимі маркери малюються не тільки до значення, а у всю висоту даного каналу, "Навігатор" – опції щодо навігатора: "Помічати в навігаторі кольором елементи з даними" – об'єкти (стрілочки), що містять дані будуть виділені червоним якщо вони містять дані.
ВИСНОВКИ
В даній роботі розглянуті принципи взаємодії оптичного випромінювання з біотканиною, що дозволяє стверджувати про доцільність використання фотоплетизмограми (ФПМ) для оцінки мікроциркуляцій крові. Зняття двох ФПГ з двох розташованих рядом ділянок шкіри дозволяє відкинути такі фактори як колір, температуру і деколи геометрію поверхні шкіри. Абсолютний та порівняльний аналіз двох ФПГ дозволяє стверджувати про порушення кровоносної системи, присутніх в одному з каналів.
Перегляд існуючих методів дозволяє стверджувати складність діагностування вертеброзахворювань особливо в вітчизняних умовах стану медицини. Проведена критеріальна шкала показує доцільність застосування нового неінвазивного методу в медичній практиці. Розробка та вдосконалення неінвазивних дешевих методів діагностики та моніторингу може покращити стан діагностики в регіональних лікарняних установах. У роботі фільтрація вихідного сигналу відбувалась при допомозі Фур′є-аналізу, але було запропоновано більш гнучкий метод обробки сигналу вейвлетний аналіз. Це один із перспективних методів математичного аналізу . При допомозі порівняння були обґрунтовано доведені його переваги в порівнянні з Фур’є-аналізом. Різновидність вейвлет-аналіза у випадку багато масштабного представлення свідчить про широке застосування даного аналізу в усіх сферах обробки сигналів.
Описана в останньому розділі апаратно-програмна реалізація комплексу реалізує запропонований метод та відповідає висунутим вимогам. Даний комплекс є зручним та недорогим інструментальним засобом оцінки порушення мікроциркуляції в судинних системах.
ЛІТЕРАТУРА
1. Малая Л.Т., Микляев И.Ю., Кравчук П.Г. Микроциркуляция в кардиологии. - Харьков: Вища школа, 1977. – 142c.
2. Добеши И. Десять лекций по вейвлетам перевод – Ижевск НИЦ Регулярная и хаотическая динамика М: 2001 , 464 с.
3. Засецкий А В, Иванов А Б, Постников С Д, Соколов И В. Контроль качества в телекоммуникациях и связи М: 2001, 335 с.
4. Павлов С.В. Разработка оптоэлектронного комплекса для преобразования биомедицинской информации. Автореферат диссертации кандидата наук, 1995. - 16c.
5. Чандпасекар С. Перенос лучистой энергии – М., 1953.
6. Кузьміч В.В. Основные принципы и особенности транскутанной "отражательной" оксиметрии // Мед. Техника. – 1993. - №3. – С. 36-42.
7. Van Gemert M.I.C. Star W.M. // IEEE Trans. Biol. Med. Eng., 1989 – Vol. 36. №2– P.1146-1154.
8. Samsung electronic. S3C44B0X RISC MICROPROCESSOR datasheet.
9. Samsung electronic. K6R4016V1C dataseet.
10. ГОСТ 23751-79. Платы печатные. Общие технические условия.
11. Новиков Л.В. Основы вейвлет-анализа сигналов. Учебное пособие. Санкт-Петербург: 1999, 152 с.
12. Л. Л. Маслюк, А.М. Переберен Введение в вейвлет-анализ. Учебный курс М: 1998, 370с.
13. #"1.files/image138.jpg">
Додаток Б (Трьохвимірна спектограма)
Додаток В (Лістинг програми)
procedure TData. AutoSetMarkers;
const
SC=513;
var
X,
x1,x2, // кінцеві координати для циклів
x11,x22, // поправочні для попередніх
xmp1,xmp2 // координати для максимуму производной
: Longint;
XI : Array[1..5] of integer; // буде містити координати // перепадів 3-х к ряду
sign : shortint; // важливий лише знак
max,maxp, // знайдене максимальне значення
HMW // скільки вже було
: integer;
was : Boolean;
A : Array of integer;
begin
x1:=0;
x2:=fcount-1;
Was:=false;
SetLength(A,fcount);
FillChar(XI,SizeOf(XI),0);
for x:=0 to fcount-1 do begin
if Markers[x] then
if not was then begin x1:=x; was:=true end
else begin x2:=x; end;
A[x]:=0;
end;
ClearAllMarkers; // очищаємо всі маркери
while Der[1,x1]=0 do inc(x1);
sign:=Der[1,x1];
x11:=0;
for x:=x1+1 to x2-1 do
if (Sign*Der[1,x]<0) then begin
// знайшли перепад між - и +
if x11=0 then x11:=x;
x22:=x;
A[x]:=SC; // помічаємо перепад
sign:=-sign
x1:=x11;// скорочуємо діапазон
x2:=x22;
XI[1]:=x1;
for x:=x1+1 to x2 do
if A[x]=SC then
if XI[2]=0 then XI[2]:=x
else begin
XI[3]:=x;
if x11=0 then x11:=xi[2];
if (items[XI[2]]-items[XI[1]]=0) or
(abs((items[XI[3]]-items[XI[2]])/(items[XI[2]]-items[XI[1]]))<=GO.MarkSens/100)
then continue;
A[XI[2]]:=items[XI[2]]-items[XI[1]];
A[XI[2]+1]:=items[XI[3]]-items[XI[2]];
XI[1]:=XI[2];
XI[2]:=XI[3];
max:=0;HMW:=0; // знаходимо максимум по которому відловлювати
for x:=x1 to x2 do
if A[x]=SC then A[x]:=0;
if (A[x]>0)and(A[x]<>SC) then begin
inc(HMW);
if A[x]>max then max:=A[x];
if HMW>=30 then break;
x:=x1;
while x<=x2 do
if (abs(max-A[x])<=max*0.3) then begin
XI[1]:=x;
for x11:=x+1 to x2 do // знаходимо місце для 3-го маркеру
if A[x11]*A[x]>0 then begin
XI[3]:=x11;
break
if XI[3]=0 then begin inc(x);continue;end;
maxp:=0;xmp1:=0;xmp2:=0;
for x11:=XI[1]+1 to XI[3] do // знаходимо місце для 2-го маркеру
if Der[1,x11]>maxp then begin
maxp:=Der[1,x11];
xmp1:=x11;
xmp2:=x11;
end else
if Der[1,x11]=maxp then xmp2:=x11;
XI[2]:=(xmp1+xmp2) div 2;
for x11:=XI[3]+2 to x2 do // знаходимо місце для 4-го маркеру
if A[x11]*A[XI[3]+1]>0 then begin
XI[4]:=x11;
if XI[4]=0 then begin inc(x);continue;end;
for x11:=XI[4]+2 to x2-2 do // знаходимо місце для 5-го маркеру
if (Der[1,x11]<0)and(Der[1,x11+1]<0) then begin
XI[5]:=x11-1;
if XI[5]=0 then begin inc(x);continue;end;
// корекція
XI[1]:=XI[1]-2;
For x11:=xi[2]-2 downto xi[1]+1 do
if (Der[1,x11]=0)or(Der[1,x11-1]*Der[1,x11]<0){or
(Der[2,x11]=0)or(Der[2,x11-1]*Der[2,x11]<0)} then begin
XI[1]:=x11-1;
break;
XI[3]:=XI[3]-1;
XI[4]:=XI[4]-1;
for x11:=1 to 5 do
Markers[XI[x11]]:=True;
max:=(max+A[x])div 2;
x:=XI[5]+1;
end
else inc(x);
Страницы: 1, 2, 3, 4, 5, 6, 7