Writing

الکترومایوگرافی|مقدمه ای بر مهندسی پزشکی

خلاصه: سیگنال EMG از عضله ثبت می‌شود. اینجا مداری برای گرفتن این سیگنال معرفی شده، به‌همراه کد متلب برای فیلتر کردن آن و مقایسه سه حالت سالم، میوپاتی و نوروپاتی. این ترم درس مقدمه ای بر مهندسی پزشکی…

published
read time
1 min
words
194
lang
fa

خلاصه: سیگنال EMG از عضله ثبت می‌شود. اینجا مداری برای گرفتن این سیگنال معرفی شده، به‌همراه کد متلب برای فیلتر کردن آن و مقایسه سه حالت سالم، میوپاتی و نوروپاتی.

این ترم درس مقدمه ای بر مهندسی پزشکی رو داشتیم که شامل مباحث زیادیه. یکی از مباحث اون مربوط به سیگنال های بیولوژیکیه.

یکی از این سیگنال ها emg هستش که از عضلات ضبط میشه.

من توی پروژه ای، مداری برای گرفتن این سیگنال ها رو پیدا کردم. همچنین توی داده هایی که از قبل داشتم پروسس هایی رو روی سیگنال در محیط متلب انجام دادم که همشونو در ادامه میزارم.

دیتابیس

دیتابیس‌های مورد استفاده‌ام را می‌توانید از PhysioNet دانلود کنید. فایل ارائه این پست دیگر در دسترس نیست.

کد متلب پردازش سیگنال EMG

emg1=load ('c:\Users\reza\Desktop\Moghaddame\emg_healthy.txt')
emg2=load ('c:\Users\reza\Desktop\Moghaddame\emg_myopathy.txt')
emg3=load ('c:\Users\reza\Desktop\Moghaddame\emg_neuropathy.txt')

subplot(3,1,1)
plot(emg1(:,1),emg1(:,2))
title('emg healthy')

subplot(3,1,2)
plot(emg2(:,1),emg2(:,2))
title('emg myopathy')

subplot(3,1,3)
plot(emg3(:,1),emg3(:,2))
title('emg neuropathy')

%{
figure(2)
plot(detrend(emg1))
figure(3)
plot(detrend(emg2))
figure(4)
plot(detrend(emg3))
%}

cutF=10 %cutoff 10 hz
SF=1000 %sampling frequency
filt1 = fdesign.highpass('n,f3db',4,2*cutF*(1/SF));
H1 = design(filt1,'butter');
highpass_EMG = filter(H1, emg1); 

% Low-pass filter
filt2 = fdesign.lowpass('n,f3db',4,2*500*(1/1000)); 
H2 = design(filt2,'butter');
lowpass_EMG = filter(H2,highpass_EMG);

% Notch Filter (50Hz)
filt3 = fdesign.notch(4,0.05,10); 
H3 = design(filt3);
cleaned_EMG = filter(H3,lowpass_EMG);
figure(5)
plot(cleaned_EMG)




related

Keep reading