استخراج سیگنال های قلبی جنین توسط نرم افزار LabVIEW ، صدای قلب جنین را از آن سر دنیا بشنوید

نویسندگان:

مسلم بگل (دانشجوی کارشناسی ارشد مهندسی پزشکی دانشگاه علوم و تحقیقات تهران)
بشری عمید (فارغ التحصیل کارشناسی مهندسی پزشکی دانشگاه آزاد اسلامی واحد دزفول)
ندا صادق جولا (فارغ التحصیل کارشناسی مهندسی پزشکی دانشگاه آزاد اسلامی واحد دزفول)

دانلود کامل مقاله :

http://www.iranbmemag.com/fa/issue/download.asp?t=tblarticle&f=file&i=1091&n

یکی از کاربردهای گسترده پزشکی از راه دور که امروزه بسیار مورد توجه قرار گرفته، انتقال سیگنال های ECG از طریق اینترنت است . نرم افزار لب ویو این امکان را به کاربر می دهد تا به راحتی و در فضایی کاملا مهندسی این اطلاعات را ارسال کند. Labview در واقع ابزار یک میزکار(Workbench) مهندسی بوده که حالت پیشرفته یک زبان برنامه نویسی گرافیکی است و زمان زیادی از تولد  آن نمی‌گذرد. اساس برنامه نویسی مطابق با اصطلاحات مهندسی نامگذاری شده اند و به همین دلیل کار کردن با آن برای یک متخصص بسیار راحت است و این قدرت را به فرد می دهد که ایده ذهنی خود را بدون درگیر شدن با اصول و کلمات برنامه نویسی مبتنی بر متن پیاده سازی کند و نتیجه آن را تحلیل کند.نرم افزار LabVIEW  وToolkit های مرتبط با آن، مانند  (Advanced signal processing Toolkit (ASPT و (Digital Filter Design Toolkit (DFDT محیطی کارامد و ابزاری مناسب جهت رفع مشکلات پردازش  سیگنال ECG برای کاربر ایجاد می کند. دراین پروژه از این نرم افزار قدرتمند برای حذف نویز،آنالیز و استخراج سیگنال ECG جنین و در نهایت انتقال این سیگنال از طریق اینترنت استفاده شد  .  این راه کار نه تنها در تشخیص بیماری های قلبی موثر است بلکه راهی است برای پردازش  دیگر سیگنال‌های حیاتی نظیرEEG  و EGG و ....

 دستگاه الکتروکاردیوگراف ، سیگنال های الکتریکی قلب را به صورت نموداری بر حسب ولتاژ نمایش می دهد. آشکارسازی پیک های  R و کمپلکس QRS در یک سیگنال ECG اطلاعاتی در مورد ریتم قلبی، سرعت هدایت ،شرایط بافت های داخل قلبی ، عوارض قلبی و پاسخ قلب بیمار در برابر داروهای مختلف را آشکار می سازد. نوار قلب جنین نیز شامل فاکتورهای مهمی در مورد شرایط سلامتی جنین است و می تواند یک ابزار تشخیصی قابل توجه باشد. همانند ECG افراد بالغ ،کمپلکس ECG وتغییرات ریتم قلبی جنین دو پارامتر مهم اندازه گیری هستندکه می توانند از  ECG استخراج شوند.
هدف  این پروژه جداسازی سیگنال ECG  جنین از ECG  مادر با استفاده از فیلتر تطبیقی و نرم افزار LabVIEW و در نهایت ارسال این سیگنال از طریق اینترنت و شبکه است.
سیگنالی که از شکم مادر به دست می آید ترکیبی از ECG جنین €ECG مادر و نویز است که نویز ها در مرحله پیش پردازش حذف می شود. به طور کلی سیگنال ECG  ثبت شده اغلب توسط نویز و آرتیفکت  آلوده می شود :
این نویز ها عبارتند از :
1- تداخل خطوط نیرو
2- آرتیفکت های حرکتی
3- نویز ناشی از دیگر بیو پتانسیل های حیاتی   ( EMG ، EGG و...)
4- انحراف از خط مبنا
در بخش سخت افزاری با استفاده از فیلتر های پایین گذر ،بالا گذر، فیلتر حذف برق شهر ( NOTCH FILTER) و نهایتا استفاده از فیلتر میان گذر و استخراج طیف فرکانسی HZ2  تا  HZ158 نویز های موجود را حذف کردیم. برای این منظور  از 8 کانال برای استخراج  ECG جنین استفاده شد ، سیگنال ECG سینه ای مادر نیز توسط سه  لید سینه ای و سیگنال شکمی را  توسط 5 لید شکمی ثبت شدند .
 ثبت سیگنال قلبی و پردازش
از سال 1960 روش های مختلفی برای آشکارسازی نوار قلب جنین شکل گرفت.بیشتر این روش ها روی ترکیب سیگنال های چند کاناله متمرکز هستند.یک روش مستقیم تفریق ECG سینه ای مادر از ECG مخلوط شکمی است.روش دیگر به کارگیری آنالیز مولفه های مستقل (ICA) است که روشی برای بازیابی سیگنال های مخفی مستقل از یک مشاهده چند کاناله است.رهیافت دیگر استفاده از فیلتر تطبیقی (ADF) است که  در این طرح از این روش استفاده شده است .
روش آنالیز مولفه های مستقل (ICA)
ICA با فرض اینکه مولفه ها از نظرآماری مستقل هستند مولفه های مورد نظر را از ترکیبشان استخراج می کند. فرض کنید که مشاهد X یک Superposition از سیگنال منبع S  است به طوری که می توان گفت:

 

که  A نشان دهنده یک ماتریس مختلط است.فرض استقلال آماری سیگنال های S به شما اجازه می دهد که هردو مشاهده نا شناخته S و A را از مشاهده X تخمین بزنید. در اینجا ECG مادر و  ECG جنین می توانند  به عنوان مولفه های مستقل که بخش هایی از  S هستند پردازش شوند.در حالی که X از ثبت ECG اصلی تشکیل شده است.با اجرای  ICA شما می توانید تخمینی از S به دست آورید. در واقع هر دو سیگنال ECG مادر و ECG جنین به دست می آید . با استفاده از جعبه ابزار LabView   ASPT می توان به آسانی یک FHR) Fetal   Heart   Rate)‌ مناسب استخراج کردکه در شکل 1 نشان  داده  شده است.
در شکل  1 ، ورودی های تابع ICA ، سیگنال های  ECG به دست آمده از 8 کانال(5 کانال شکمی و3 کانال سینه ای)  هستند. سیگنال ECG جنین به عنوان یکی از مولفه های مستقل از خروجی به دست می آید.

 

 

 

 

 

شکل 2 سیگنال ECG شکمی و  ECG جنین استخراج شده توسط ICA را به ترتیب نشان می‌دهد.همان طور که در شکل مشاهده می کنید ECG مادر به طور موثری تضعیف شده و ریتم قلب جنین به طور دقیق مشخص شده است.

 

 

 

 

روش استفاده از فیلتر تطبیقی
فیلتر تطبیقی این امکان را به ما می دهد تا با داشتن یک مقدار مرجع، شاخص اجرایی مورد نظرمان را بر اساس تنظیمات داخلی بهینه سازی کنیم. فیلتر های تطبیقی  در محدوده وسیعی از جمله حذف نویز مورد استفاده قرار می گیرند. در آشکار سازی ECG جنین ، در واقع ECG مادر نویز محسوب می شود که در شکل 3 نحوه حذف آن به کمک  ADF نشان داده شده است.
پارامترهای نشان داده در شکل 3 به شرح زیر هستند:
 (d(k‌:سیگنال شکمی که شامل سیگنال مطلوب‌(FECG)s(k)‌ و سیگنال نویز (MECG)n(k) است.
 (r(k:‌ ‌سیگنال مرجع ECG  سینه ای است که وابسته به(n(k و مستقل از(s(k بوده که در نتیجه عبور آن از فیلتر تطبیقی w(z) تخمینی از (n(k‌‌به دست می‌آید که در نهایت به دنبال تفریق از (dk)  تخمینی از    FECG به دست    می آید. 
LMS : الگوریتم Least  Mean-Square جهت پیدا کردن مناسب ترین ضرایب برای بهینه سازی فیلتر استفاده می شود.
در واقع اساس کار ADF  ،مینیمم کردن خطا بین سیگنال منبع و سیگنال نویز است. پیاده سازی  این روش را در نرم افزار LABVIEW در شکل 4 مشاهده می کنید.

همان طور که در شکل4  نشان داده شده است یک نویز سفید توسط EMB   Uniform   White   Noise   Waveform  تولید می شود که به وسیله  یک جمع کننده با سیگنال ورودی جمع می شود و سیگنال آماده  پردازش را تولید می کند.
سیگنال ورودی که یک سیگنال نوسانی است توسط Frequncy Sweep Generator Express VI تولید می شود. ورودی فیلتر ( LMSسیگنال نویز) به عنوان سیگنال Refrence در نظر گرفته می شود. فیلتر LMS توسط دو عدد ثابت بهینه می شود که این اعداد عبارتند از: مرتبه فیلتر و  ضریب همگرایی.
توجه کنید که خروجی فیلتر LMSدر واقع تخمینی از نویز است، بنابراین لازم است خروجی آن از سیگنال نویزی کم شود تا سیگنال بدون نویز به دست آید. سیگنال آلوده به نویز و سیگنال بدون نویز را به یک بلوک مقایسه گر داده و در نهایت خروجی را که تقریب مناسبی از سیگنال بدون نویز ورودی است به بلوک Wave Form Graph داده تا سیگنال خروجی  را مشاهده کنیم. شکل 5 سیگنال آلوده به نویز و سیگنال خروجی بدون نویز را نشان می دهد.
بر اساس همین روش و با استفاده از فیلتر تطبیقی در نرم افزار  Labview می توان به سیگنال ECG جنین دست یافت.

 

 

 

 

 طریقه نوشتن برنامه در شکل 6 نشان داده شده است.

 

 

 

در شکل 7 مشاهده می کنید که فیلتر تطبیقی با تنظیمات و Step  Size  مناسب می تواند ECG مادر را تخمین زده و  ECG جنین را استخراج کند.
 ارتباط سریال
نحوه ارتباط مدارات خارج از رایانه با برنامه LabVIEW را به دلیل سادگی ارتباط و کم کردن هزینه ها ،به صورت سریال انتخاب کرده ایم. انتقال سریال اطلاعات به رایانه دارای محدودیت هایی است که مهم ترین این محدودیت ها، فرکانس کاری سیستمی است که از طریق پورت سریال به تبادل اطلاعات با رایانه می‌پردازد. در مورد ECG به دلیل پایین بودن فرکانس ضربان قلب، استفاده از این ارتباط مشکلی را به وجود نمی آورد.
مدار واسط بین رایانه و مدار دریافت کننده سیگنال قلبی
ارتباط سریال USART یکی از پروتکل هایی است که توسط انواع کامپیوترها نیز حمایت می شود لذا برای برقراری ارتباط بین میکروکنترولر و کامپیوتر غالبا از این روش استفاده می شود .
بعضی از انواع AVR تنها از ارتباط سریال UART پشتیبانی می کنند، به این معنی که ارتباط سریال تنها به صورت آسنکرون قابل انجام است و انواع پیشرفته تر میکروکنترلر های AVR می توانند به صورت سنکرون و آسنکرون ارتباط برقرار کنند.این دو نوع ارتباط سریال از نظر محل بیت ها در داخل رجیستر ها ، نحوه تولید نرخ ارسال و دریافت اطلاعات و عملکرد بافر مربوط به ارسال اطلاعات کاملا مطابقت دارند و تنها عملکرد بافر مربوط به دریافت اطلاعات در ارتباط سریال USART بهبود یافته است.
پس از به دست آوردن سیگنال تقویت شده ECG ، اولا باید این سیگنال آنالوگ تبدیل به دیجیتال شود تا برای رایانه قابل فهم باشد و ثانیا به دلیل اینکه می خواهیم به صورت سریال این اطلاعات را ارسال کنیم ، بایستی این اطلاعات به صورت سریال کدگذاری شوند بعد عمل ارسال صورت بگیرد.برای انجام این دو کار به راحتی می‌توان از میکروکنترل های AVR استفاده کرد. از آنجا که برای برقراری ارتباط سریال با رایانه ناچاریم از 232(RSپورت سریال) استفاده کنیم، لازم است به نحوی بتوانیم سطوحTTL ایجاد شده توسط میکرو و 232RS را به یکدیگر تبدیل کنیم. عموما برای تبدیل این سطوح ولتاژ به یکدیگر از تراشه 232Max یا 233Max استفاده می شود. استفاده از این قطعه بسیار ساده و در عین حال ضروری است. نکته بسیار جالب این تراشه این است که با  تغذیه 5 ولتی در خروجی های 232MAX ولتاژهای 10-  و10+ ولتی را تولید می کند. انجام این کار به چهار خازن 1تا22 میکروفاراد نیاز دارد که عموما از خازن 22 میکرو فارادی که به پایه های آن متصل می شوند صورت می گیرد. این خازن ها ولتاژها را از داده های قبلی در خود ذخیره کرده و با جمع آن ها داده ها را به 232RS تبدیل می کند. آنچه که باید در اینجا مورد توجه قرار بگیرد، این است که چون ورودی سریال Labview  فقط می‌تواند از نوع رشته ای باشد، به همین دلیل خروجی میکرو را نیز باید به صورت رشته در نظر گرفت.
ازجمله قابلیت های بسیار خوب LabVIEW داشتن برنامه های کاربردی و مفید در کتابخانه خود است که از جمله این برنامه ها،برقراری ارتباط سریال بین LabVIEW و پورت سریال است که  می توان با ایجاد تغییرات اندکی در خروجی این برنامه، به هدف خود رسید. برای این کار لازم است که ورودی رایانه را به وسیله یک مبدل که در خود نرم افزار وجود دارد، از آرایه به استرینگ تبدیل کرد و پس از عبور دادن از فیلترهای مورد نظر و انجام عمل پردازش توسط یک نمودار آن را نمایش داد.
 ارسال سیگنال از طریق اینترنت و شبکه
بخش بعدی پروژه ارسال سیگنال های جنین از طریق اینترنت و شبکه است‌.  در این قسمت از پروتکل TCP/IP استفاده شده است.
پروتکل ها
پروتکل به زبان عمومی است که در ارتباطات رایانه ای مورد استفاده قرار می‌گیرد . یک پروتکل ارتباطی، روشی تعریف شده است که به شما اجازه می‌دهد تا مشخص کنید که چه داده ای را به کجا ارسال کنید .
مزایای استفاده از این پروتکل نسبت به دیگر پروتکل ها عبارت است از :
به کمک این پروتکل (TCP/IP) برقرار کردن ارتباط بین چندین رایانه که از سیستم عامل های متفاوت استفاده می کنند امکان پذیر است. رایانه هایی که به صورت شبکه با یکدیگر ارتباط دارند می توانند در فواصل بسیار دور نسبت به یکدیگر قرار داشته باشند. به عبارت دیگر به کمک این پروتکل می توانید فرایند دریافت اطلاعات را روی یک رایانه شخصی در ایران انجام دهید، سپس نتایج حاصله را از طریق اینترنت برای رایانه ای دیگر در کشور دیگر ارسال کرده و به صورت آنلاین نتیجه را مشاهده کرده و از صحت انتقال اطلاعات اطمینان حاصل کنید. البته هیچ لزومی ندارد که رایانه های شبکه شده در فواصل دور نسبت به یکدیگر قرار گیرند. آنچه که در این پروتکل ارتباطی نیاز دارید سخت افزار و نرم افزار مناسب جهت اتصال به یک شبکه  رایانه ای است.شایان ذکر است که این شبکه بایستی پروتکل TCP/IP را پشتیبانی کند.
 TCP و IP مخفف عبارت Transmition  Control Protocol و Internet   Protocol هستند. IP داده های مورد نظر را که در اصطلاح به آن ها datagram می گویند تقسیم کرده ، سپس آن ها را ارسال می کند. IP به صورت هوشمند عمل نمی کند، بدین معنی که هیچ گونه سیگنال hand shaking را برای رایانه  مقصد ارسال نمی‌کند.
این محدودیت می تواند باعث بروز مشکلات عدیده ای شود. عملکرد پروتکل IP را می توان نظیر ارسال یک نامه از طریق پست معمولی در نظر گرفت. در ارسال نامه به روش معمولی تضمینی مبنی بر رسیدن بسته به مقصد وجود ندارد. در مورد پروتکل IP نیز هیچ گونه ضمانتی مبنی بر دریافت datagram توسط گره مقصد وجود ندارد. ولی پس از آن TCP ظهور کرده و به پروتکل IP افزوده شد. TCP/IP عملیات hand    shaking را انجام می دهد و ارسال datagram ها را نیز به مقصد تضمین می کند.
مراحل فرایند برقراری ارتباط در یک رایانه میزبان به صورت زیر است :
1 - درخواست برقراری ارتباط TCP، در صورت عدم پاسخ توسط برنامه  سرویس دهنده، برای جلوگیری از توقف برنامه خطای time out در برنامه گنجانده شده است.
2 - نوشتن داده ها،  لازم است که داده ها همواره به صورت رشته ای منتقل شوند.
3- قطع ارتباط .TCP
مراحل برقراری ارتباط در رایانه هدف به صورت زیر است:
1- انتظار برای دریافت یک درخواست ارتباطی .TCP
2- خواندن داده ها، داده ها همواره به صورت رشته ای دریافت می شوند.
3- قطع ارتباط .TCP
جهت ارسال سیگنال ها ابتدا آدرسIP  کامپیوتر هدف و پورت باز آن تعیین می شود.
پورت اختصاصی نرم افزار لب ویو جهت ارسال و دریافت سیگنال ها از طریق اتصال TCP/IP پورت 3363 است که باید در نرم افزار فرستنده و گیرنده سیگنال فعال شده باشد. البته این پورت در تنظیمات نرم افزار به صورت پیش فرض بوده و امکان تغییر آن به شماره پورت دلخواه نیز وجود دارد.
در VI نوشته شده زیر ابتدا در بلوک TCP  Open   Connection آدرس IP و پورت کامپیوتر هدف مشخص شده و سپس سیگنال استخراج شده جنین پس از تبدیل شدن به یک آرایه در یک حلقه While کلیه اعداد آن به صورت رشته ای تبدیل می‌شود و از طریق بلوک TCP  Write اطلاعات ارسال می شوند.
در سوی دیگر کامپیوتر هدف در حالت انتظار قرار گرفته و توسط VI زیر تک تک سیگنال ها دریافت شده و به صورت شکل موج نمایش داده می شوند.
 نتیجه‌گیری
 همانطور که عنوان شد LabVIEW  نرم افزاری قوی در ایجاد ارتباط سریال است که برنامه نویسی آن آسان بوده و به صورت بلوکی است. در فضای خارج از کامپیوتر نیز می توانیم از میکرو کنترلر های مختلفی مانند 8051 ، AVR ، PLC و... استفاده کنیم. طرحی که در این بخش جهت استفاده از نتیجه حاصله از ایجاد ارتباط سریال بین میکروکنترلر AVR و برنامه نرم افزاری LabVIEW و در نهایت ارسال آن از طریق اینترنت گرفته شده، ثبت FECG است. این امر  در نتیجه پیش پردازش هایی در نرم افزار لب ویو این امر محقق شده و در نهایت سیگنال حاصله به رایانه دیگر از طریق اینترنت یا شبکه ارسال می شود.
به عنوان طرح های آتی این امکان وجود دارد تا در نرم افزار لب ویو آریتمی های سیگنال قلبی جنین نیز استخراج شده و اطلاعات مختلف این سیگنال پس از استخراج جهت اهداف درمانی و تشخیصی به رایانه های دیگر در هر نقطه از جهان ارسال شود.
منابع
[1] Ping Gao, Ee-Chien Chang, Lonce Wyse, "Blind Separation of Fetal ECG From Single Mixture Using SVD and ICA".
[2]S.M.M. Martens, J.W.M. Bergmans, S.G. Oei , " Signal processing in non-invasive fetal electrocardiography"
[3] Kamran Jamshaid, Omar Akram, Farooq Sabir, Dr. Syed Ismail Shah, Dr. Jamil Ahmed, "Application of Adaptive and Non Adaptive Filters in ECG Signal Processing".
[4]Designing Filters Using the NI LabVIEW Digital Filter Design Toolkit- Developer Zone - National Instruments.htm
[5]  SDSU Biomedical Engineering Student Projects.htm    
[6‌]‌‌‌   میکرو کنترولرهای AVR  و کاربرد های آن/مولف امیر ‌ره‌افروز ، تهران،"نص" ، 1385
[7‌]‌‌  راهنمای جامع ( LabVIEWلب ویو) زبان برنامه نویسی گرافیکی / نویسنده فربد قابوسی ، ویراستاران کوروش عظیمی ، مهدی صرافی - تهران : آفرنگ ، 1381 .

منبع : ماهنامه مهندسی پزشکی