سیگنالهای حیاتی دادههای کلیدی از سیستمهای فیزیولوژیک را نشان میدهند و هدف پردازش آنها، جمع آوری اطلاعات برای تشخیص، پایش و درمان بیماریها خواهد بود. نرمافزار متلب (MATLAB) یکی از ابزارهای کلیدی در پردازش سیگنالهای حیاتی و بیوسیگنالها است که بهویژه در مهندسی پزشکی و بیوانفورماتیک کاربرد گستردهای دارد. این نرمافزار امکانات متنوعی برای تحلیل سیگنالهای حیاتی مانند ECG (الکتروکاردیوگرام) و EEG (الکتروانسفالوگرام) فراهم میکند.
طبق گزارش مجله IEEE Transactions on Biomedical Engineering، بیش از ۷۰ درصد الگوریتمهای پژوهشی جدید در حوزه تحلیل ECG ابتدا در محیط MATLAB توسعه و ارزیابی میشوند، زیرا دقت و قابلیت انعطاف آن برای مدلسازی و شبیهسازی سیگنالهای پیچیده بیولوژیک بیرقیب است. اگر قصد آشنایی عمیقتر با کاربردهای متلب در این زمینه را دارید، این مقاله مخصوص شماست.
خلاصه محتوای این مقاله را میتوانید از طریق فایل صوتی زیر بشنوید.
فهرست مطلب
- پردازش سیگنال چیست و چه نقشی در در مهندسی پزشکی دارد؟
- قابلیتهای متلب در پردازش سیگنالهای پزشکی
- کاربردهای MATLAB در پردازش سیگنالهای پزشکی
- نرم افزارهای دیگر در پردازش سیگنالهای پزشکی (ECG، EEG)
- موقعیتهای شغلی پردازش سیگنالهای پزشکی
- نمونه پروژه پردازش سیگنالهای پزشکی با MATLAB
- چالشهای متلب در پردازش سیگنالهای پزشکی
- جمعبندی
کاربرد نرم افزار متلب MATLAB در پردازش سیگنالهای پزشکی ECG، EEG
پردازش سیگنال چیست و چه نقشی در در مهندسی پزشکی دارد؟
پردازش سیگنال پزشکی یا Biomedical Signal Processing شاخهای از مهندسی پزشکی است که به تحلیل و تفسیر سیگنالهایی میپردازد که از سیستمهای زیستی (انسان یا حیوان) استخراج میشوند. این سیگنالها، حامل اطلاعات فیزیولوژیک مهمی هستند و با بهرهگیری از روشهای مهندسی، قابل استخراج، پاکسازی و تحلیل میشوند. همانطور که در مقاله سیگنالهای حیاتی: رمزگشایی نشانههای زندگی در بدن نیز بیان شد، در مهندسی پزشکی سیگنالهایی مانند Electrocardiogram (ECG) و Electroencephalogram (EEG) از جمله رایجترینها هستند.
- سیگنالهای ECG ثبت فعالیت الکتریکی قلب را انجام میدهند که کاربرد آنها شامل تشخیص اختلالات ریتم قلبی، بیماریهای قلبی و پایش قلب میباشد.
- سیگنالهای EEG ثبت فعالیت الکتریکی مغز را انجام میدهند که کاربرد آنها شامل تشخیص اختلالات عصبی، نظارت بر حالت ذهنی، تحلیل خواب، دستگاههای سیستم عصبی و … میباشد.
سیگنالهای زیستی غالباً شامل نویز و اختلالات هستند. این موارد میتوانند تشخیص یا تحلیل دقیق را مختل کنند. بنابراین قبل از تحلیل باید پیشپردازش (pre-processing) انجام شود که شامل حذف نویز، تصحیح آرتیفکت و بهبود نسبت سیگنال به نویز میباشد. بدون پردازش مناسب، داده خام ممکن است گمراهکننده باشد یا منجر به تشخیص نادرست گردد. پردازش سیگنال امکان استخراج ویژگیهای معنادار و قابل اتکا را فراهم میکند.
کاربردهای عملی پردازش سیگنال در مهندسی پزشکی را میتوانیم به چند دسته عمده تقسیم کنیم که عبارتاند از:
- تشخیص بیماریها و اختلالات: با تحلیل دقیق سیگنالها، میتوان اختلالات قلبی (با ECG) یا اختلالات عصبی (با EEG) را شناسایی کرد.
- پایش مستمر و مراقبت از راه دور: با ترکیب حسگرها و تحلیل سیگنال میتوان بیماران را از راه دور پایش کرد که در سیستمهای سلامت مدرن بسیار مهم است.
- کمک به تصمیمگیری پزشکان و تشخیص خودکار با کامپیوتر: الگوریتمهای پردازش سیگنال میتوانند الگوهای پنهان در دادهها را آشکار کنند و با ترکیب یادگیری ماشین، به سیستمهای تشخیص کامپیوتری (computer-assisted diagnosis) کمک کنند.
قابلیتهای متلب در پردازش سیگنالهای پزشکی

MATLAB محیطی پیشرفته، جامع و استاندارد در مهندسی و پردازش سیگنال است که ابزارها و جعبهابزارهایی اختصاصی برای سیگنالهای زیستی (bio-signals) ارائه میدهد. این نرمافزار به دلیل ویژگیهای منحصر به فردی که دارد، به ابزاری پرکاربرد و محبوب در این زمینه تبدیل شده است. از جمله این مزایا و قابلیتها عبارتاند از:
- فیلتراسیون، تحلیل زمانی و فرکانسی، نرمالسازی و پیشپردازش
کتابخانه سیگنال MATLAB شامل توابع فیلترگذاری، تبدیل فوریه (FFT)، تحلیل طیف، فیلترهای زمانی-فرکانسی و ابزارهای پاکسازی نویز است. این امکانات برای آمادهسازی سیگنالهای پزشکی (ECG, EEG و غیره) ضروریاند.
- رابط برای ورود داده و جمعآوری
MATLAB توانایی خواندن و وارد کردن سیگنالهای ضبطشده در فرمتهای مختلف (مثلاً فایلهای استاندارد پزشکی) و نیز اتصال به سختافزارهای جمعآوری سیگنال را دارد.
- ابزارهای بصریسازی و آنالیز تعاملی
با استفاده از اپلیکیشنها و توابع داخلی میتوان سیگنالها را به صورت گرافیکی در حوزه زمان، فرکانس یا زمان-فرکانس نمایش داد، آنها را برچسبگذاری کرد و برای تحلیلهای بعدی آماده ساخت.
کاربردهای MATLAB در پردازش سیگنالهای پزشکی
همانطور که اشاره کردیم، متلب یکی از بهترین ابزارها برای پردازش سیگنالهای پزشکی است. اگر به یادگیری کاربردی و پروژهمحور آن علاقهمند هستید، دوره آموزش پردازش سیگنال های حیاتی در متلب MATLAB مناسب شماست. در این دوره، شناسایی الگو و طراحی فیلترهای دیجیتال در متلب آموزش داده میشود. همچنین عملیات پیشپردازش و بررسی مدلها بر اساس نوع بیماری و پایگاه داده انتخابی انجام خواهد شد. مباحث مربوط به بهبود سیگنال و حذف نویزها، بهویژه در تحلیل سیگنالهای حیاتی نیز بهطور جامع مورد تدریس قرار میگیرد. اما 2 مورد از کاربردهای MATLAB در پردازش سیگنالهای پزشکی به شرح زیر میباشند.
کاربرد MATLAB در تحلیل سیگنال قلبی ECG

همانطور که اشاره کردیم، یکی از مهمترین حوزههای کاربردی MATLAB، پردازش و تحلیل سیگنال Electrocardiogram (ECG) است. مهمترین این کاربردها به شرح زیر هستند:
- ابزارهایی مانند ecg‑kit برای MATLAB به منظور پردازش سیگنال قلبی طراحی شدهاند. این جعبهابزارها قابلیت خواندن دادههای ECG از فرمتهای رایج، تشخیص ضربان قلب، تعیین نقاط بحرانی مانند QRS complexes و طبقهبندی سیگنال را فراهم میکنند.
- برای افزایش کیفیت سیگنال مثلا حذف نویز و تداخل، روشهایی مانند فیلترینگ Notch برای حذف نویز توان برق و تبدیل موجک (Wavelet) استفاده میشوند. پژوهشها نشان دادهاند که ترکیب فیلترینگ Notch با ابزارهای آماری در MATLAB قادر است دقت تشخیص اختلالات قلبی را بهبود بخشد.
- علاوه بر تحلیل اولیه، MATLAB قابلیت استخراج ویژگی و آمادهسازی سیگنال برای روشهای یادگیری ماشین یا شبکههای عصبی را نیز دارد که میتواند در تشخیص خودکار بیماریها، تشخیص آریتمی و نظارت دائمی بیماران مورد استفاده قرار گیرد.
کاربرد MATLAB در تحلیل سیگنال عصبی EEG
در زمینه سیگنالهای مغزی نیز متلب دارای کاربردهای قابل توجهی میباشد که مهمترین آنها عبارتاند از:
- جعبهابزار معروف EEGLAB که روی بستر MATLAB اجرا میشود، یک استاندارد علمی در تحلیل سیگنال EEG است. این ابزار امکان پیشپردازش، حذف آرتیفکتها با تحلیل مولفههای مستقل (ICA)، جداسازی آزمایش، تحلیل زمان-فرکانس و تحلیل رویداد محور را فراهم میکند.
- جعبهابزار TMSEEG بر پایه MATLAB طراحی شده تا سیگنال EEG همراه با تحریک مغناطیسی (TMS-EEG) را با روال منظم و مدولار پردازش کند. این ابزار قابلیت تشخیص و حذف آرتیفکتها، ارائه نمای گرافیکی مراحل پردازش و امکان سفارشیسازی الگوریتمها را داراست.
- علاوه بر دو موردی که بیان کردیم، پروژههایی مانند EEGsig نشان دادهاند که با MATLAB میتوان از پیشپردازش تا استخراج ویژگی و حتی طبقهبندی خودکار EEG را با الگوریتمهای یادگیری ماشین (مانند SVM, K-NN, ANN) انجام داد.
نرم افزارهای دیگر در پردازش سیگنالهای پزشکی (ECG، EEG)
.webp.webp)
گرچه MATLAB (یا جعبهابزارهای مبتنی بر آن) معمولاً در بسیاری از پژوهشها به کار میرود، اما طی سالهای اخیر نرمافزارها و ابزارهای جایگزین متنباز (open source) یا کمهزینه با تمرکز بر سیگنالهای زیستی پدید آمدهاند. این ابزارها امکان تحلیل سیگنالهایی مانند EEG و ECG را با روشهای مدرن و با انعطاف بالا فراهم میکنند. از جمله مهمترین این ابزارها میتوانیم به موارد زیر اشاره کنیم:
- MNE‑Python
- NeuroKit2
- BioSig
- EEGLAB
در جدول زیر میتوانید مزایا و معایب متلب را با این ابزارها مقایسه کنید تا بتوانید انتخاب درستی در استفاده از آنها داشته باشید.
|
نرمافزار / ابزار |
مزایا |
معایب |
|
MATLAB |
امکان ترکیب تحلیل داده، فیلترینگ، پیشپردازش، محاسبات عددی و مصورسازی |
منبع بسته است و کاربران نمیتوانند نرمافزار را به دلخواه اصلاح کنند یا گسترده سازند. |
|
MNE‑Python |
متنباز، رایگان، مناسب برای پژوهش و تحلیل پیشرفته |
نیاز به دانش برنامهنویسی |
|
NeuroKit2 |
متن باز، چندمنظوره |
ممکن است برای تحلیل حرفهای EEG کافی نباشد |
|
BioSig |
پشتیبانی از طیف وسیعی از فرمتها، مناسب برای مطالعات بینرشتهای |
تمرکز کمتر بر رابط گرافیکی، نیاز به برنامهنویسی یا تنظیم دستی |
|
EEGLAB |
رابط کاربری گرافیکی، پردازش تکتراژه و گروهی |
کارایی کمتر برای دادههای بسیار بزرگ یا تحلیل اتوماتیک کامل |
موقعیتهای شغلی پردازش سیگنالهای پزشکی
امروزه توسعه سنسورها، دستگاههای پوشیدنی و ابزارهای پایش سلامت باعث شده حجم عظیمی از سیگنالهای زیستی (ECG, EEG, EMG و …) جمعآوری شوند. اما داده خام به خودی خود ارزشی ندارد مگر با استفاده از تکنیکهای پردازش سیگنال مانند فیلترگذاری، پاکسازی نویز، استخراج ویژگی و الگوریتمهای تشخیص و طبقهبندی. با کمک این تکنیکها میتوان اطلاعات معنیدار برای تشخیص، پایش یا پیشبینی وضعیت بیمار استخراج کرد.
متخصصانی با توانمندی در پردازش سیگنال قادر خواهند بود در شرکتهای تولید تجهیزات پزشکی، بیمارستانها و مراکز درمانی، استارتاپها، شرکتهای سلامت دیجیتال و شرکتهای نرمافزاری و دادهمحور در حوزه سلامت مشغول به فعالیت شوند. بنابراین پیشنهاد میکنیم دوره آموزش پردازش سیگنال دیجیتال در متلب MATLAB را نیز از دست ندهید. در جدول زیر، میتوانید برخی از عنوانهای شغلی رایج در زمینه پردازش سیگنالهای پزشکی، همراه با ماموریتها و وظایف کلیدیشان را مشاهده نمایید:
|
عنوان شغلی |
وظایف اصلی |
|
Biomedical Signal Processing Engineer |
طراحی و پیادهسازی الگوریتمهای فیلترگذاری و پاکسازی نویز، استخراج ویژگی از سیگنالهای زیستی |
|
Medical Data Scientist |
تحلیل و مدلسازی دادههای پزشکی، ترکیب سیگنال زیستی با داده بالینی، ساخت مدلهای پیشبینی یا تشخیصی با یادگیری ماشین |
|
Research Scientist |
پژوهش و توسعه الگوریتمهای نوین DSP یا یادگیری ماشین برای پایش سلامت، شرکت در مطالعات بالینی و انتشار علمی |
|
Firmware Engineer |
یکپارچهسازی الگوریتمهای پردازش سیگنال در سختافزار یا سیستمهای جاسازیشده |
|
Clinical Engineer |
مدیریت و پشتیبانی تجهیزات پزشکی، تحلیل سیگنالهای بیمار، اطمینان از کیفیت داده و ایمنی تجهیزات |
نمونه پروژه پردازش سیگنالهای پزشکی با MATLAB

فرض کنید با استفاده از MATLAB میخواهید یک زنجیره پردازش از بارگذاری داده ECG تا پیشپردازش، تشخیص قله QRS، استخراج ویژگیهای مبتنیبر فاصلههای RR و مشخصههای ساده زمانی-فرکانسی و یک مدل طبقهبندی ساده (مثلاً درخت تصمیم یا SVM) برای تشخیص ضربانهای طبیعی در برابر غیرطبیعی ایجاد کنید. خروجیهای این پروژه شامل سیگنالهای پردازششده، نمودارهای تشخیص QRS، ماتریس درهمریختگی و معیارهای ارزیابی (دقت، حساسیت، ویژگی) خواهند بود. برای اجرای این پروژه، میتوانید مراحل زیر را انجام دهید:
- آمادهسازی محیط و داده
MATLAB را باز کنید و project folder بسازید. سپس دیتاست را دانلود کنید (مثلاً از PhysioNet برای MIT-BIH) و فایلها را در فولدر پروژه قرار دهید. در صورت نیاز، توابع خواندن فرمتهای خاص (مثلاً WFDB reader برای MATLAB یا فایلهای CSV تبدیلشده) را آماده کنید.
- بارگذاری و بازرسی اولیه سیگنال
سیگنال را بارگذاری کرده و مدتزمان و نرخ نمونهبرداری (sampling rate) را بررسی کنید. سپس یک نمایش زمانی (plot) از سیگنال خام رسم کنید تا نویز، baseline wander یا artefact های واضح دیده شود.
- پیشپردازش
- حذف baseline wander: برای حذف baseline wander باید از فیلتر بالاگذر (High pass) با برش 0.5–0.7 Hz استفاده شود. یا روشهای دیگر مانند حذف با فیلتر موجک یا فیلتر کالمن.
- حذف نویز فرکانس بالا: یک low-pass با cutoff ~40 Hz یا فیلتر باند-پاس مناسب برای ECG.
- تشخیص QRS (قلههای R)
از روش ساده Pan-Tompkins یا الگوریتمهای peak detection استفاده کنید. نمودار سیگنال به همراه نشانگرهای قلهها را رسم و رویت کنید تا صحت تشخیص بررسی شود. سپس از نتایج تشخیص، فاصلههای RR را محاسبه کنید (تفاضل زمانهای قلهها).
- استخراج ویژگیها (ویژگیهای زمانی و ساده فرکانسی)
- ویژگیهای زمانی: میانگین RR، SDNN (انحراف معیار RR)، RMSSD، نرخ ضربان قلب میانگین (BPM)، مدتزمانهای PR/QRS/T در صورت استخراج.
- ویژگیهای فرکانسی (پایهای): PSD با Welch (pwelch) و نسبت توان باندهای مشخص (در صورت نیاز).
- برای هر ضربان یا برای پنجرههای زمانی مشخص، بردار ویژگی بسازید.
- تهیه دیتاست برای طبقهبندی
اگر دیتاست برچسب دارد (مثلاً MIT-BIH حاوی آنوتیشنهای بیت/آریتمی) از برچسبها استفاده کنید. در غیر این صورت میتوانید برچسبگذاری دستی یا حذف برچسب برای کار اکتشافی انجام دهید. سپس دادهها را به مجموعههای train/test (مثلا 70/30) تقسیم کنید.
- انتخاب و آموزش مدل
ابتدا دادهها را نرمالسازی کنید. مدلهای ساده و مناسب برای آغاز شامل درخت تصمیم (Decision Tree)، SVM با هسته خطی یا رگرسیون لجستیک هستند. از fitctree, fitcsvm یا Classification Learner استفاده کنید. مرحله بعد آموزش روی دادههای آموزشی و ارزیابی با معیارهایی مثل دقت، حساسیت (recall) و F1 روی مجموعه آزمون میباشد. در آخر گزارش ماتریس درهمریختگی (confusionmat) را تهیه کنید و معیارها را محاسبه نمایید.
- اعتبارسنجی و تحلیل نتایج
اگر ممکن است از cross-validation (مثلاً k-fold با k=5) برای برآورد دقیقتر عملکرد استفاده کنید. سپس نمونههای غلط طبقهبندیشده را برای یافتن دلایل، مشاهده و آنالیز کنید و در انتها نتایج را مستندسازی کنید و نمودارهای معیارها و نمونههای سیگنال را رسم نمایید.
چالشهای متلب در پردازش سیگنالهای پزشکی

همانطور که در دوره آموزش متلب MATLAB تدریس میشود، این نرمافزار داراری قابلیتها و کاربردهای بسیار گستردهای در انواع رشتههای مهندسی است. در این مقاله آموختیم که MATLAB یکی از مهمترین ابزارها در پردازش سیگنالهای پزشکی محسوب میشود. با این حال برای استفاده موثر، لازم است تا به چالشهای آن نیز توجه کنیم. مهمترین این چالشها عبارتاند از:
- ماهیت سیگنالهای پزشکی (نویز، غیر ایستا بودن، تنوع بالا)
سیگنالهای زیستی معمولاً غیرخطی، غیرایستا و تحت تأثیر نویز و آرتیفکت (مصنوعی یا فیزیولوژیکی) هستند. حذف نویز و آرتیفکت بدون آسیب به اجزای مهم سیگنال (مثل موج QRS در ECG یا پتانسیلهای زمانی در EEG) بسیار دشوار است.
- محدودیتهای نرمافزاری و وابستگی به MATLAB
ابزارها و توابعی که برای تحلیل بیومدیکال نیاز است معمولاً در Toolbox های خاص MATLAB گنجانده شدهاند. در نتیجه اگر کاربر به این جعبهابزارها یا مجوز مناسب دسترسی نداشته باشد، اجرای تحلیل بهصورت کامل ممکن نیست.
- چالش در تحلیل سیگنالهای چندکاناله و پیچیده و دادههای حجیم
سیگنالهای پزشکی مدرن (مثلاً EEG با تعداد کانال بالا، سیگنالهای fMRI، سیگنالهای ترکیبی) معمولاً دادههای حجیم و چندبعدی هستند، بنابراین تحلیل آنها با روشهای سنتی DSP و با منابع محاسباتی محدود (مثل حافظه، سرعت پردازش) دشوار است.
جمعبندی
در این مقاله به بررسی کاربرد نرمافزار MATLAB در پردازش سیگنالهای پزشکی از ابعاد گوناگون پرداختیم. از آنجایی که تقاضا در سطح ملی و بینالمللی برای این موضوع رو به گسترش است، توسعه مهارتهای مورد نیاز برای مهندسان پزشکی ضرورت دارد. از آنجایی که دورههای گروه آموزشی پارس پژوهان با رویکرد کاربردی و پروژهمحور طراحی شدهاند، گزینه بسیار خوبی برای دانشجویان و افراد شاغل در این زمینه محسوب میشوند.
نویسنده: رضا صفایی، کارشناس مدیریت صنعتی