1 / 96

生醫訊號處理概論 光體積變化描記圖 (PPG)

生醫訊號處理概論 光體積變化描記圖 (PPG). 組長 : 王宥程 組員 : 石正邦 曾志翔 李育賢. 大綱. PPG 訊號之簡介 PPG 訊號測量的方法 PPG 訊號處理的目的 PPG 訊號處理的流程 PPG 訊號處理的方法 PPG 訊號處理的結果 結論 心得. PPG 訊號之簡介.

tatum
Télécharger la présentation

生醫訊號處理概論 光體積變化描記圖 (PPG)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 生醫訊號處理概論光體積變化描記圖(PPG) 組長:王宥程 組員:石正邦 曾志翔 李育賢

  2. 大綱 • PPG訊號之簡介 • PPG訊號測量的方法 • PPG訊號處理的目的 • PPG訊號處理的流程 • PPG訊號處理的方法 • PPG訊號處理的結果 • 結論 • 心得

  3. PPG訊號之簡介 光體積變化描記圖(Photoplethysmography,PPG)信號能夠幫助瞭解人體末稍血液循環情況,以及提供一個更簡單的非侵入式生理信號量測方式,PPG信號除了有著容易取得與較不受人體型態限制之優點外,本身也蘊藏著 豐富的生理資訊,但是與PPG波形相似的脈波(pulse)信號兩信號間之相互關係,一直以來卻都未有深入之研究。

  4. PPG訊號測量的方法

  5. 圖為PPG量測sensor與規格,還有末梢測位置

  6. PPG訊號處理的目的 • PPG產生雜訊原因:人為雜訊(手亂動) • 頻率範圍:0~30HZ • fs(取樣頻率):1024Hz

  7. 頻譜分析 • 始射點U (UP Stroke) :血液流入動脈的開始點,反映出心臟舒張末期血管內的壓力與容積,代表心室快速射血。 • 主波峰P (percussion wave) :主要由心臟收縮時期,心室釋放大量血液所造成最大振幅波。此波上升速度受心輸出量、心室射血速度、動脈阻力和管壁彈性影響。 • 潮波T (tidal wave) : 此波為左心室停止射血,動脈擴張造成壓降,動脈內血液流動逆向反射波。 而此波受外週血管阻力、血管彈性及降支下降等變化程度的影響有關。 • 降中波V (valley):表示主動脈靜壓排空時間,為心臟收縮與舒張的分界點,波形影響受血管阻力和降主動脈下降速度有關。 • 重搏波D (dicrotic wave):主要是由主動脈瓣在心室舒張早期突然閉合,血液逆流撞擊到主動脈上,並回彈導致主動脈壓再度上升所形成的波,受血管彈性與主動脈瓣關閉狀態影響較大。

  8. PPG訊號處理的流程

  9. 實際量測照片

  10. PPG訊號處理的方法 • MATLAB程式碼 clc clear all close all signalPPG = csvread('ch3.csv'); fs=1024; N2=length(signalPPG); t = (1:N2)/fs; figure(1) plot(t,signalPPG) xlabel('Time (sec)'); ylabel('Amplitude') title('Original Signal') xlim([-inf inf]);

  11. PPG訊號處理的結果 基線飄移 fs=1024; signalPPG_detrend = detrend(signalPPG) N2=length(signalPPG_detrend); tc = (1:N2)/fs; T=1/fs; fd=1/(N2*T); m=0:N2-1; fy=m.*fd; fy_1=fy(1:(length(fy)/2));

  12. 基線飄移結果

  13. 快速傅立葉轉換 -FFT y_fft=fft(signalPPG_detrend); % figure (2) subplot(211) plot(fy,abs(y_fft)) title ('Magnitude spectrum of signals') xlabel('Frepuency(hz)') ylabel('Magnitude') % subplot(212) plot(fy,angle(y_fft)) title('Phase spectrum of signals') xlabel('Frepuency(hz)') ylabel('phase')

  14. 結果

  15. 窗函數(window) hamming window PPG_detrend2 = length(signalPPG_detrend) PPG_hamming1 = hamming(PPG_detrend2) PPG_hamming2 = signalPPG_detrend.*(PPG_hamming1) figure (5) subplot(211) plot(PPG_hamming1) subplot(212) plot(PPG_hamming2) figure (6) freqz(PPG_hamming2,1,1024)

  16. hamming window

  17. hanning window PPG_detrend3 = length(signalPPG_detrend) PPG_hanning1 = hann(PPG_detrend3) PPG_hanning2 = signalPPG_detrend.*(PPG_hanning1) figure (7) subplot(211) plot(abs(PPG_hanning1)) subplot(212) plot(PPG_hanning2) figure (8) freqz(PPG_hanning2,1,1024)

  18. hanning window

  19. blackman window PPG_detrend4 = length(signalPPG_detrend) PPG_blackmanharris1 = blackmanharris(PPG_detrend4) PPG_blackmanharris2 = signalPPG_detrend.*(PPG_blackmanharris1) figure (9) subplot(211) plot(abs(PPG_blackmanharris1)) subplot(212) plot(PPG_blackmanharris2) figure (10) freqz(PPG_blackmanharris2,1,1024)

  20. blackman window

  21. triangular window PPG_detrend5 = length(signalPPG_detrend) PPG_triangular1 = triang(PPG_detrend5) PPG_triangular2 = signalPPG_detrend.*(PPG_triangular1) figure (11) subplot(211) plot(abs(PPG_triangular1)) subplot(212) plot(PPG_triangular2) figure (12) freqz(PPG_triangular2,1,1024)

  22. triangular window

  23. 濾波 開檔 加入市電60Hz 基線飄移 FFT 加窗 慮波 波德圖

  24. 加入市電60Hz fs=1024; N2=length(signalPPG); tc = (1:N2)/fs; signalPPGe=signalPPG+sin(2*pi*60+tc)';

  25. 基線飄移 fs=1024; signalPPG_detrend = detrend(signalPPGe) N2=length(signalPPG_detrend); tc = (1:N2)/fs; T=1/fs; fd=1/(N2*T); m=0:N2-1; fy=m.*fd; fy_1=fy(1:(length(fy)/2));

  26. 巴德沃斯濾波 [n,Wn]=buttord(30/(fs/2),60/(fs/2),1,60) [n1,Wn1]=buttord([1 30]./(fs/2),[0.5 55]./(fs/2),1,10) [n2,Wn2]=buttord(1/(fs/2),0.1/(fs/2),1,60) [b1,a1]=butter(n,Wn); [b2,a2]=butter(n1,Wn1); [b3,a3]=butter(n2,Wn2,'high'); yt1=filtfilt(b1,a1,signalPPG_detrend); yt2=filtfilt(b2,a2,signalPPG_detrend); yt3=filtfilt(b3,a3,yt1);

  27. rectangular window +FFT

  28. hamming window + FFT

  29. hanning window + FFT

  30. blackman window +FFT

  31. triangular window + FFT

  32. Cheby1sev 型 I 濾波 [n,Wn]=cheb1ord(30/(fs/2),60/(fs/2),1,60) [n1,Wn1]=cheb1ord([1 30]./(fs/2),[0.5 55]./(fs/2),1,10) [n2,Wn2]=cheb1ord(1/(fs/2),0.1/(fs/2),1,60) [b1,a1]=cheby1(n,1,Wn); [b2,a2]=cheby1(n1,1,Wn1); [b3,a3]=cheby1(n2,1,Wn2,'high'); yci1=filtfilt(b1,a1,signalPPG_detrend); yci2=filtfilt(b2,a2,signalPPG_detrend); yci3=filtfilt(b3,a3,yci1);

  33. rectangular window +FFT

  34. hamming window + FFT

  35. hanning window + FFT

  36. blackman window +FFT

  37. triangular window + FFT

  38. Cheby1sev 型 II 濾波 [n,Wn]=cheb2ord(30/(fs/2),60/(fs/2),1,60) [n1,Wn1]=cheb2ord([1 30]./(fs/2),[0.5 55]./(fs/2),1,10) [n2,Wn2]=cheb2ord(1/(fs/2),0.1/(fs/2),1,60) [b1,a1]=cheby2(n,60,Wn); [b2,a2]=cheby2(n1,60,Wn1); [b3,a3]=cheby2(n2,60,Wn2,'high'); ycii1=filtfilt(b1,a1,signalPPG_detrend); ycii2=filtfilt(b2,a2,signalPPG_detrend); ycii3=filtfilt(b3,a3,ycii1);

  39. rectangular window +FFT

  40. hamming window + FFT

  41. hanning window + FFT

  42. blackman window +FFT

  43. triangular window + FFT

More Related