脈搏波中包含著人體心血管系統的生理和病理信息,已有的脈搏波檢測設備對心血管疾病的臨床診斷與治療有很大幫助。為實現對脈搏波檢測設備性能指標的測試,需要獲得準確的波形;然而,現有的信號發生器不能提供精確對應多種生理、病理狀態的脈搏波輸入信號。本文基于彈性腔理論設計了一種脈搏波發生器,對心血管系統進行建模,得到四種不同阻力條件下波形輸出,同時添加噪聲選擇、設置信噪比(SNR)等功能。由于需要系統具有便攜、動態響應好、可擴展性強、低功耗等特點,所以本文采用了現場可編程門陣列(FPGA)作為硬件開發平臺,在可編程片上系統(SOPC)開發流程下,完成了脈搏波生成算法設計、外圍存儲器及用戶接口控制。通過液晶屏和觸摸屏,用戶可通過輸入關鍵參數設定想要的脈搏波,在液晶屏上顯示波形,同時輸出低電壓電壓模擬信號。本文設計的脈搏波發生器結構簡單,為脈搏波的教學與科研以及采集與診斷設備的檢測提供了解決方案。
引用本文: 王昊, 伏全海, 徐禮勝, 劉佳, 何殿寧, 李青春. 基于血管彈性腔模型的脈搏波發生器的現場可編程門陣列設計與實現. 生物醫學工程學雜志, 2014, 31(5): 989-993. doi: 10.7507/1001-5515.20140186 復制
引言
心血管循環系統是人體最復雜的生命系統之一,具有高度的動態特征,當心臟周期性地收縮和舒張時,心室射入主動脈的血流將以波的形式自主動脈根部出發沿動脈管系傳播,這種波就是脈搏波[1]。大量臨床實測結果證實,脈搏波的波形特征與心血管疾病有著密切的關系。脈搏波所表現出的形態(波的形狀)、強度(波的幅值)、速率(波的速度)與節律(波的周期)等方面的綜合信息在相當程度上反映出人體心血管系統的許多生理和病理特征[2]。由于脈搏波檢測不需要復雜而昂貴的設備,且操作簡單,性能穩定,因此在心血管臨床醫學檢查、治療康復上都有廣泛的應用。
獲得準確的脈搏波信號源,能夠對脈搏波檢測儀器的準確性和精確性進行驗證,從而對心血管疾病的臨床診斷有很大地幫助。然而,一些信號發生器只能單純地產生一些形如正弦、方波等簡單的信號,而不能反映人體生理信息。我們需要一個能夠產生不同類型的脈搏波作為實驗輸入信號,解決輸入源的問題。
本文通過對心血管系統建模仿真,設計了一種用數學方法描述心血管的生理特性及其內在聯系的方法,建立動脈系統集中參數模型,即彈性腔理論模型[3];改進四階龍格庫塔算法,使等效電路的微分方程的數值解精度更高;通過修改等效電路中參數R、L、C1、C2,得到低阻力、中阻力、高阻力、超高阻力四種條件下的脈搏波波形。
本文使用Altera公司CyclonⅠ系列型號為EP1C12Q240C8N的現場可編程門陣列(field programmable gate array,FPGA)芯片作為開發平臺,搭載了NIOSⅡ可編程片上系統(system on a programmable chip,SOPC),在SOPC開發流程下實現各個進程。液晶屏和觸摸屏構成了用戶的交互界面。最后,該脈搏波發生器產生的脈搏波信號既可以通過液晶屏顯示,也能夠通過模擬輸出通道,連接到示波器中顯示或者作為信號源提供給其他設備。
1 血管建模與仿真
1.1 彈性腔基本理論
1967 年美國的戈特溫和瓦特共同提出了雙彈性腔模型理論[3-4],將人體主動脈及其主要分支看做兩個彈性腔。第一個彈性腔表征主動脈弓及其主要分支的集總順應性C1;第二個彈性腔表征腹主動脈及其主要分支的集總順應性C2;連接兩腔體的血柱L表征血液的慣性。心臟收縮時,血液qin由心室進入第一個彈性腔C1與血柱L,而后進入第二個彈性腔C2,最后流經集中的外周阻力R而進入靜脈腔[5],彈性腔模型如圖 1所示。

根據彈性腔等效電路圖,得到其相應的微分方程:
$\begin{align} & \frac{{{d}^{3}}p2}{d{{t}^{3}}}+\frac{1}{R{{C}_{2}}}~\frac{{{d}^{2}}p2}{d{{t}^{2}}}+(\frac{1}{L{{C}_{1}}}+\frac{1}{L{{C}_{2}}})\frac{dp2}{dt} \\ & +\frac{1}{LR{{C}_{1}}{{C}_{2}}}p2=\frac{1}{L{{C}_{1}}{{C}_{2}}}qin \\ \end{align}$ |
其特征方程為
${{S}^{3}}+\frac{1}{RC}{{S}^{2}}+(\frac{1}{L{{C}_{1}}}+\frac{1}{L{{C}_{2}}})S+\frac{1}{LR{{C}_{1}}{{C}_{2}}}=0$ |
它的解由三個分量組成,即直流分量、非振蕩衰減分量和振蕩衰減分量。
1.2 qin≠0時雙彈性腔數值解
實際的生理條件下,整個心動周期T應該包括收縮期Ts和舒張期Td兩部分。這時血流量函數qin≠0,我們以左心室每次搏動輸出的血流量函數qin(t)作為模型的輸入信號,其函數如式(3)所示[3],其中,收縮期Ts 為300 ms,舒張期Td為500 ms,整個心動周期T為800 ms。
${{q}_{in}}\left( t \right)=\left\{ \begin{align} & {{q}_{0}}sin(\frac{\pi t}{{{T}_{s}}})(0\le t\le \frac{{{T}_{s}}}{4}或\frac{3}{4}{{T}_{s}}\le t\le {{T}_{s}}) \\ & {{q}_{0}}sin\frac{\pi }{4}+\frac{{{q}_{0}}}{12}sin[{{\frac{2\pi (t-\frac{{{T}_{s}}}{4})}{T}}_{s}}(\frac{{{T}_{s}}}{4}\le t\le \frac{3}{4}{{T}_{s}}) \\ & 0\left( {{T}_{s}}\le t\le T \right) \\ \end{align} \right.$ |
式中q0為根據心輸出量計算得到的輸入最大幅值,計算公式如式(4)所示,Vout為70 mL/s,代表心輸出量。
${{q}_{0}}=\frac{\frac{{{V}_{out}}\times \pi }{0.3}}{\frac{25}{12}-\sqrt{2}+\frac{\pi }{8}}$ |
建立雙彈性腔模型的狀態方程,對所得三階微分方程使用四階龍格庫塔方法,得到微分方程的數值解。其迭代過程[3]如公式(5)、(6)所示,即
$\left\{ \begin{align} & {{K}_{11}}=\frac{h}{L}(p{{1}_{n}}-p{{2}_{n}}) \\ & {{K}_{21}}=\frac{h}{{{C}_{1}}}[qin\left( n \right)-{{q}_{n}}] \\ & {{K}_{31}}=\frac{h}{{{C}_{2}}}({{q}_{n}}-\frac{p{{2}_{n}}}{R}) \\ & {{K}_{12}}=\frac{h}{L}(p{{1}_{n}}+\frac{1}{2}{{K}_{21}}-p{{2}_{n}}-\frac{1}{2}{{K}_{31}}) \\ & {{K}_{22}}=\frac{h}{{{C}_{1}}}[qin\left( n+h \right)-{{q}_{n}}-\frac{1}{2}{{K}_{11}}] \\ & {{K}_{32}}=\frac{h}{{{C}_{2}}}({{q}_{n}}-\frac{1}{2}{{K}_{11}}-\frac{p{{2}_{n}}+\frac{1}{2}{{K}_{31}}}{R}) \\ & {{K}_{13}}=\frac{h}{L}(p{{1}_{n}}+\frac{1}{2}{{K}_{22}}-p{{2}_{n}}-\frac{1}{2}{{K}_{32}}) \\ & {{K}_{23}}=\frac{h}{{{C}_{1}}}[qin\left( n+h \right)-{{q}_{n}}-\frac{1}{2}{{K}_{12}}] \\ & {{K}_{33}}=\frac{h}{{{C}_{2}}}({{q}_{n}}+\frac{1}{2}{{K}_{12}}-\frac{p{{2}_{n}}+{{K}_{32}}}{R}) \\ & {{K}_{14}}=\frac{h}{L}(p{{1}_{n}}+{{K}_{23}}-p{{2}_{n}}-{{K}_{33}}) \\ & {{K}_{24}}=\frac{h}{{{C}_{1}}}[qin\left( n+h \right)-{{q}_{n}}-{{K}_{13}}] \\ & {{K}_{34}}=\frac{h}{{{C}_{2}}}({{q}_{n}}+{{K}_{13}}-\frac{p{{2}_{n}}+{{K}_{33}}}{R}) \\ \end{align} \right.,$ |
$\left\{ \begin{align} & {{q}_{n+1}}={{q}_{n}}+\frac{1}{6}\left( {{K}_{11}}+2{{K}_{12}}+2{{K}_{13}}+{{K}_{14}} \right) \\ & p{{1}_{n+1}}=p{{1}_{n}}+\frac{1}{6}({{K}_{21}}+2{{K}_{22}}+2{{K}_{23}}+{{K}_{24}}) \\ & p{{2}_{n+1}}=p{{2}_{n}}+\frac{1}{6}({{K}_{31}}+2{{K}_{32}}+2{{K}_{33}}+{{K}_{34}}) \\ \end{align} \right.,$ |
其中h為計算步長,p1和p2為兩個彈性腔內的壓力,模型初始值為q(1)=30,p1(1)=50,p2(1)=50[3]。
依據表 1給出的范圍,輸入四種不同阻力條件下,彈性腔模型參數L、R、C1、C2的數值。
2 系統設計
本文使用FPGA作為硬件開發平臺。它作為專用集成電路領域中的一種定制電路而出現,具有更高的運行速度,能夠連接更多外圍設備,擁有大容量的SDRAM等優勢。
SOPC是一種特殊的嵌入式系統,具有靈活的設計方式,可裁減、可擴充、可升級,并具備軟硬件在系統可編程的功能[6-7]。它結合了FPGA的優點,具有小容量片內高速RAM資源,提供豐富的IP核資源,包含一個嵌入式處理器內核,涵蓋嵌入式系統設計技術的全部內容。
SOPC技術開發主要包括兩個方面,即硬件設計和軟件設計。硬件設計主要在Quartus Ⅱ和SOPC Builder兩個開發環境中完成。軟件設計主要基于Nios Ⅱ IDE開發環境。
2.1 硬件設計
2.1.1 FPGA的SOPC設計
硬件開發主要是創建Nios Ⅱ軟核系統,作為應用程序運行的平臺。利用SOPC builder工具從開發套件的設備列表中選擇合適的CPU,存儲器以及各種外圍器件,并定制和配置相應的功能,最后生成整個系統。
2.1.2 液晶屏設計 選用夏普公司型號為LQ080V3DG01的液晶屏。分辨率為640·RGB·480,能夠顯示262 144種顏色。通過32 pin接口與FPGA連接,完成數據傳輸。
2.1.3 觸摸屏設計
使用四線電阻式觸摸屏,采用ADS7843的模數轉換芯片作為觸摸屏的控制器,若獲取Y方向的坐標具體數值,可以將信號從X+引腳輸入,同時打開Y+和Y-引腳,得到X+的數字電壓值,內部模數轉換后,得到Y方向的坐標。X方向上的坐標可以用同樣的方法獲得。

2.1.4 DA轉換設計
將脈搏波進行數模轉換,以連續變化的電壓形式輸出。本文采用DAC7513數模轉換芯片作為DA轉換裝置。
2.1.5 降壓電路設計
發生器所需電源幅值分別為12、5和3.3 V,其中,12 V和5 V分別提供給顯示器,提供背光電壓。3.3 V提供給ADS7843模數轉換芯片、DAC7513數模轉換芯片和觸摸屏。12 V電壓通過穩壓電源直接獲取;通過LM2940CT-5.0將12 V降到5 V,通過LM1085IT-3.3將5 V降到3.3 V。
2.2 軟件設計
脈搏波發生器的軟件設計部分在Nios Ⅱ IDE中完成。
軟件部分主要實現以下功能:① 彈性腔模型的實現;② 兩種噪聲信號的產生;③ 系統信噪比(signal noise ratio,SNR)的設定;④ 觸摸屏坐標獲取。
2.2.1 噪聲添加功能
臨床中提取的脈搏波信號,必定含有噪聲成分,為了最大程度接近臨床獲得的脈搏波波形,本文設計產生三種噪聲,分別是50 Hz工頻噪聲、均勻分布白噪聲和高斯分布白噪聲。50 Hz工頻噪聲是信號提取中最常見的噪聲類型,往往受電源電壓的影響,提取信號被50 Hz噪聲污染。文本使用正弦函數得到噪聲,周期與脈搏波周期相同;均勻分布白噪聲是指功率譜密度在整個頻域內均勻分布的噪聲,在等帶寬的頻帶所含的噪聲能量相等。本文使用定義在C語言中的rand函數得到,均值為0.5,幅值為0~1。
2.2.2 SNR設定功能模塊
SNR是指正常信號與無信號時噪聲信號(功率)的比值,單位是dB。SNR計算如公式(7)所示,其中Asignal為信號幅度,Anoise為噪聲幅度。本文采用查表法確定噪聲的幅值。首先根據SNR定義求出不同噪聲幅值對應的SNR,得到不同噪聲幅值SNR的查找表,存放在數組中;然后將數組中的數值分別與人工選定的SNR做差,取絕對值最小值,目的是使其盡可能地接近選定的SNR;最后,求出該最小值處的坐標,其坐標便對應噪聲幅值待乘的系數,進而求出滿足SNR要求的噪聲。
$SNR=20lg(\frac{{{A}_{signal}}}{{{A}_{noise}}})$ |
3 結論與討論
低阻抗波形與實測Ⅰ型滑波對比如圖 2所示,圖 3顯示在MATLAB中仿真得到的四種不同阻力的脈搏波波形。液晶屏輸出如圖 4所示。從結果圖分析可得,發生器能夠完成波形產生、噪聲添加、基線漂移等功能,最后將脈搏波在示波器和液晶屏中準確顯示。



本文設計的脈搏波發生器與其他發生器相比,有顯著的優勢和特點。首先使用FPGA作為開發平臺,FPGA具有更快的運行速度,能夠連接更多的外圍設備。同時,應用SOPC開發流程,建立Nios Ⅱ嵌入式系統,將所需IP核添加到系統中,避免了繁瑣的編寫硬件驅動的過程,縮短了開發周期,IP核可裁剪,可重復開發,實現其他功能的后續添加,從根本上解決了由于開發平臺資源的不足導致的系統功能的缺陷;采用液晶屏和觸摸板結合的方法,使交互界面易操作,降低用戶使用難度。實現模擬波形輸出,不僅可在示波器中顯示,也可用于其他操作。
其次,本文對心血管系統建立雙彈性腔模型,與單彈性腔相比,雖結構復雜,但是能夠解釋由心臟舒張期而出現的一些諸如潮波、重博波之類的脈搏波波紋,這些波紋在臨床上有重要的意義。對由模型等效電路圖建立的微分方程,用四階龍格庫塔方法,能快速得到微分方程數值解,且準確程度高,與脈搏波形狀相同。
本文的信號處理部分包括添加噪聲、設置SNR和基線漂移功能。在臨床測量脈搏波的過程中,必然會受到噪聲干擾和其他影響因素,添加這些功能,能最大程度上模仿實際測量得到的脈搏波。同時,產生的波形也可作為脈搏波檢測設備或信號處理的輸入源,如衡量去基線漂移算法的有效性等,提高了輸出脈搏波的利用率。
本文所設計的脈搏波發生器,可以克服原有發生器需要大容量RAM存儲波形數據、輸出波形類型單一、仿真程度低等缺點,能夠為脈搏波的臨床檢測提供有效的解決方案,有很大的實際應用價值。
引言
心血管循環系統是人體最復雜的生命系統之一,具有高度的動態特征,當心臟周期性地收縮和舒張時,心室射入主動脈的血流將以波的形式自主動脈根部出發沿動脈管系傳播,這種波就是脈搏波[1]。大量臨床實測結果證實,脈搏波的波形特征與心血管疾病有著密切的關系。脈搏波所表現出的形態(波的形狀)、強度(波的幅值)、速率(波的速度)與節律(波的周期)等方面的綜合信息在相當程度上反映出人體心血管系統的許多生理和病理特征[2]。由于脈搏波檢測不需要復雜而昂貴的設備,且操作簡單,性能穩定,因此在心血管臨床醫學檢查、治療康復上都有廣泛的應用。
獲得準確的脈搏波信號源,能夠對脈搏波檢測儀器的準確性和精確性進行驗證,從而對心血管疾病的臨床診斷有很大地幫助。然而,一些信號發生器只能單純地產生一些形如正弦、方波等簡單的信號,而不能反映人體生理信息。我們需要一個能夠產生不同類型的脈搏波作為實驗輸入信號,解決輸入源的問題。
本文通過對心血管系統建模仿真,設計了一種用數學方法描述心血管的生理特性及其內在聯系的方法,建立動脈系統集中參數模型,即彈性腔理論模型[3];改進四階龍格庫塔算法,使等效電路的微分方程的數值解精度更高;通過修改等效電路中參數R、L、C1、C2,得到低阻力、中阻力、高阻力、超高阻力四種條件下的脈搏波波形。
本文使用Altera公司CyclonⅠ系列型號為EP1C12Q240C8N的現場可編程門陣列(field programmable gate array,FPGA)芯片作為開發平臺,搭載了NIOSⅡ可編程片上系統(system on a programmable chip,SOPC),在SOPC開發流程下實現各個進程。液晶屏和觸摸屏構成了用戶的交互界面。最后,該脈搏波發生器產生的脈搏波信號既可以通過液晶屏顯示,也能夠通過模擬輸出通道,連接到示波器中顯示或者作為信號源提供給其他設備。
1 血管建模與仿真
1.1 彈性腔基本理論
1967 年美國的戈特溫和瓦特共同提出了雙彈性腔模型理論[3-4],將人體主動脈及其主要分支看做兩個彈性腔。第一個彈性腔表征主動脈弓及其主要分支的集總順應性C1;第二個彈性腔表征腹主動脈及其主要分支的集總順應性C2;連接兩腔體的血柱L表征血液的慣性。心臟收縮時,血液qin由心室進入第一個彈性腔C1與血柱L,而后進入第二個彈性腔C2,最后流經集中的外周阻力R而進入靜脈腔[5],彈性腔模型如圖 1所示。

根據彈性腔等效電路圖,得到其相應的微分方程:
$\begin{align} & \frac{{{d}^{3}}p2}{d{{t}^{3}}}+\frac{1}{R{{C}_{2}}}~\frac{{{d}^{2}}p2}{d{{t}^{2}}}+(\frac{1}{L{{C}_{1}}}+\frac{1}{L{{C}_{2}}})\frac{dp2}{dt} \\ & +\frac{1}{LR{{C}_{1}}{{C}_{2}}}p2=\frac{1}{L{{C}_{1}}{{C}_{2}}}qin \\ \end{align}$ |
其特征方程為
${{S}^{3}}+\frac{1}{RC}{{S}^{2}}+(\frac{1}{L{{C}_{1}}}+\frac{1}{L{{C}_{2}}})S+\frac{1}{LR{{C}_{1}}{{C}_{2}}}=0$ |
它的解由三個分量組成,即直流分量、非振蕩衰減分量和振蕩衰減分量。
1.2 qin≠0時雙彈性腔數值解
實際的生理條件下,整個心動周期T應該包括收縮期Ts和舒張期Td兩部分。這時血流量函數qin≠0,我們以左心室每次搏動輸出的血流量函數qin(t)作為模型的輸入信號,其函數如式(3)所示[3],其中,收縮期Ts 為300 ms,舒張期Td為500 ms,整個心動周期T為800 ms。
${{q}_{in}}\left( t \right)=\left\{ \begin{align} & {{q}_{0}}sin(\frac{\pi t}{{{T}_{s}}})(0\le t\le \frac{{{T}_{s}}}{4}或\frac{3}{4}{{T}_{s}}\le t\le {{T}_{s}}) \\ & {{q}_{0}}sin\frac{\pi }{4}+\frac{{{q}_{0}}}{12}sin[{{\frac{2\pi (t-\frac{{{T}_{s}}}{4})}{T}}_{s}}(\frac{{{T}_{s}}}{4}\le t\le \frac{3}{4}{{T}_{s}}) \\ & 0\left( {{T}_{s}}\le t\le T \right) \\ \end{align} \right.$ |
式中q0為根據心輸出量計算得到的輸入最大幅值,計算公式如式(4)所示,Vout為70 mL/s,代表心輸出量。
${{q}_{0}}=\frac{\frac{{{V}_{out}}\times \pi }{0.3}}{\frac{25}{12}-\sqrt{2}+\frac{\pi }{8}}$ |
建立雙彈性腔模型的狀態方程,對所得三階微分方程使用四階龍格庫塔方法,得到微分方程的數值解。其迭代過程[3]如公式(5)、(6)所示,即
$\left\{ \begin{align} & {{K}_{11}}=\frac{h}{L}(p{{1}_{n}}-p{{2}_{n}}) \\ & {{K}_{21}}=\frac{h}{{{C}_{1}}}[qin\left( n \right)-{{q}_{n}}] \\ & {{K}_{31}}=\frac{h}{{{C}_{2}}}({{q}_{n}}-\frac{p{{2}_{n}}}{R}) \\ & {{K}_{12}}=\frac{h}{L}(p{{1}_{n}}+\frac{1}{2}{{K}_{21}}-p{{2}_{n}}-\frac{1}{2}{{K}_{31}}) \\ & {{K}_{22}}=\frac{h}{{{C}_{1}}}[qin\left( n+h \right)-{{q}_{n}}-\frac{1}{2}{{K}_{11}}] \\ & {{K}_{32}}=\frac{h}{{{C}_{2}}}({{q}_{n}}-\frac{1}{2}{{K}_{11}}-\frac{p{{2}_{n}}+\frac{1}{2}{{K}_{31}}}{R}) \\ & {{K}_{13}}=\frac{h}{L}(p{{1}_{n}}+\frac{1}{2}{{K}_{22}}-p{{2}_{n}}-\frac{1}{2}{{K}_{32}}) \\ & {{K}_{23}}=\frac{h}{{{C}_{1}}}[qin\left( n+h \right)-{{q}_{n}}-\frac{1}{2}{{K}_{12}}] \\ & {{K}_{33}}=\frac{h}{{{C}_{2}}}({{q}_{n}}+\frac{1}{2}{{K}_{12}}-\frac{p{{2}_{n}}+{{K}_{32}}}{R}) \\ & {{K}_{14}}=\frac{h}{L}(p{{1}_{n}}+{{K}_{23}}-p{{2}_{n}}-{{K}_{33}}) \\ & {{K}_{24}}=\frac{h}{{{C}_{1}}}[qin\left( n+h \right)-{{q}_{n}}-{{K}_{13}}] \\ & {{K}_{34}}=\frac{h}{{{C}_{2}}}({{q}_{n}}+{{K}_{13}}-\frac{p{{2}_{n}}+{{K}_{33}}}{R}) \\ \end{align} \right.,$ |
$\left\{ \begin{align} & {{q}_{n+1}}={{q}_{n}}+\frac{1}{6}\left( {{K}_{11}}+2{{K}_{12}}+2{{K}_{13}}+{{K}_{14}} \right) \\ & p{{1}_{n+1}}=p{{1}_{n}}+\frac{1}{6}({{K}_{21}}+2{{K}_{22}}+2{{K}_{23}}+{{K}_{24}}) \\ & p{{2}_{n+1}}=p{{2}_{n}}+\frac{1}{6}({{K}_{31}}+2{{K}_{32}}+2{{K}_{33}}+{{K}_{34}}) \\ \end{align} \right.,$ |
其中h為計算步長,p1和p2為兩個彈性腔內的壓力,模型初始值為q(1)=30,p1(1)=50,p2(1)=50[3]。
依據表 1給出的范圍,輸入四種不同阻力條件下,彈性腔模型參數L、R、C1、C2的數值。
2 系統設計
本文使用FPGA作為硬件開發平臺。它作為專用集成電路領域中的一種定制電路而出現,具有更高的運行速度,能夠連接更多外圍設備,擁有大容量的SDRAM等優勢。
SOPC是一種特殊的嵌入式系統,具有靈活的設計方式,可裁減、可擴充、可升級,并具備軟硬件在系統可編程的功能[6-7]。它結合了FPGA的優點,具有小容量片內高速RAM資源,提供豐富的IP核資源,包含一個嵌入式處理器內核,涵蓋嵌入式系統設計技術的全部內容。
SOPC技術開發主要包括兩個方面,即硬件設計和軟件設計。硬件設計主要在Quartus Ⅱ和SOPC Builder兩個開發環境中完成。軟件設計主要基于Nios Ⅱ IDE開發環境。
2.1 硬件設計
2.1.1 FPGA的SOPC設計
硬件開發主要是創建Nios Ⅱ軟核系統,作為應用程序運行的平臺。利用SOPC builder工具從開發套件的設備列表中選擇合適的CPU,存儲器以及各種外圍器件,并定制和配置相應的功能,最后生成整個系統。
2.1.2 液晶屏設計 選用夏普公司型號為LQ080V3DG01的液晶屏。分辨率為640·RGB·480,能夠顯示262 144種顏色。通過32 pin接口與FPGA連接,完成數據傳輸。
2.1.3 觸摸屏設計
使用四線電阻式觸摸屏,采用ADS7843的模數轉換芯片作為觸摸屏的控制器,若獲取Y方向的坐標具體數值,可以將信號從X+引腳輸入,同時打開Y+和Y-引腳,得到X+的數字電壓值,內部模數轉換后,得到Y方向的坐標。X方向上的坐標可以用同樣的方法獲得。

2.1.4 DA轉換設計
將脈搏波進行數模轉換,以連續變化的電壓形式輸出。本文采用DAC7513數模轉換芯片作為DA轉換裝置。
2.1.5 降壓電路設計
發生器所需電源幅值分別為12、5和3.3 V,其中,12 V和5 V分別提供給顯示器,提供背光電壓。3.3 V提供給ADS7843模數轉換芯片、DAC7513數模轉換芯片和觸摸屏。12 V電壓通過穩壓電源直接獲取;通過LM2940CT-5.0將12 V降到5 V,通過LM1085IT-3.3將5 V降到3.3 V。
2.2 軟件設計
脈搏波發生器的軟件設計部分在Nios Ⅱ IDE中完成。
軟件部分主要實現以下功能:① 彈性腔模型的實現;② 兩種噪聲信號的產生;③ 系統信噪比(signal noise ratio,SNR)的設定;④ 觸摸屏坐標獲取。
2.2.1 噪聲添加功能
臨床中提取的脈搏波信號,必定含有噪聲成分,為了最大程度接近臨床獲得的脈搏波波形,本文設計產生三種噪聲,分別是50 Hz工頻噪聲、均勻分布白噪聲和高斯分布白噪聲。50 Hz工頻噪聲是信號提取中最常見的噪聲類型,往往受電源電壓的影響,提取信號被50 Hz噪聲污染。文本使用正弦函數得到噪聲,周期與脈搏波周期相同;均勻分布白噪聲是指功率譜密度在整個頻域內均勻分布的噪聲,在等帶寬的頻帶所含的噪聲能量相等。本文使用定義在C語言中的rand函數得到,均值為0.5,幅值為0~1。
2.2.2 SNR設定功能模塊
SNR是指正常信號與無信號時噪聲信號(功率)的比值,單位是dB。SNR計算如公式(7)所示,其中Asignal為信號幅度,Anoise為噪聲幅度。本文采用查表法確定噪聲的幅值。首先根據SNR定義求出不同噪聲幅值對應的SNR,得到不同噪聲幅值SNR的查找表,存放在數組中;然后將數組中的數值分別與人工選定的SNR做差,取絕對值最小值,目的是使其盡可能地接近選定的SNR;最后,求出該最小值處的坐標,其坐標便對應噪聲幅值待乘的系數,進而求出滿足SNR要求的噪聲。
$SNR=20lg(\frac{{{A}_{signal}}}{{{A}_{noise}}})$ |
3 結論與討論
低阻抗波形與實測Ⅰ型滑波對比如圖 2所示,圖 3顯示在MATLAB中仿真得到的四種不同阻力的脈搏波波形。液晶屏輸出如圖 4所示。從結果圖分析可得,發生器能夠完成波形產生、噪聲添加、基線漂移等功能,最后將脈搏波在示波器和液晶屏中準確顯示。



本文設計的脈搏波發生器與其他發生器相比,有顯著的優勢和特點。首先使用FPGA作為開發平臺,FPGA具有更快的運行速度,能夠連接更多的外圍設備。同時,應用SOPC開發流程,建立Nios Ⅱ嵌入式系統,將所需IP核添加到系統中,避免了繁瑣的編寫硬件驅動的過程,縮短了開發周期,IP核可裁剪,可重復開發,實現其他功能的后續添加,從根本上解決了由于開發平臺資源的不足導致的系統功能的缺陷;采用液晶屏和觸摸板結合的方法,使交互界面易操作,降低用戶使用難度。實現模擬波形輸出,不僅可在示波器中顯示,也可用于其他操作。
其次,本文對心血管系統建立雙彈性腔模型,與單彈性腔相比,雖結構復雜,但是能夠解釋由心臟舒張期而出現的一些諸如潮波、重博波之類的脈搏波波紋,這些波紋在臨床上有重要的意義。對由模型等效電路圖建立的微分方程,用四階龍格庫塔方法,能快速得到微分方程數值解,且準確程度高,與脈搏波形狀相同。
本文的信號處理部分包括添加噪聲、設置SNR和基線漂移功能。在臨床測量脈搏波的過程中,必然會受到噪聲干擾和其他影響因素,添加這些功能,能最大程度上模仿實際測量得到的脈搏波。同時,產生的波形也可作為脈搏波檢測設備或信號處理的輸入源,如衡量去基線漂移算法的有效性等,提高了輸出脈搏波的利用率。
本文所設計的脈搏波發生器,可以克服原有發生器需要大容量RAM存儲波形數據、輸出波形類型單一、仿真程度低等缺點,能夠為脈搏波的臨床檢測提供有效的解決方案,有很大的實際應用價值。