基于FPGA的生命探測(cè)儀算法研究與系統(tǒng)設(shè)計(jì)
引言
雷達(dá)式非接觸生命探測(cè)技術(shù)是近年來(lái)發(fā)展起來(lái)的一種新技術(shù),是融合雷達(dá)技術(shù)、生物醫(yī)學(xué)工程技術(shù)于一體,可穿透非金屬介質(zhì)(磚墻、廢墟等),不需要任何電極或傳感器接觸生命體,可在較遠(yuǎn)的距離內(nèi)探測(cè)到生命體的生命信號(hào)(呼吸、體動(dòng))的一種特殊電子裝置。該探測(cè)儀克服了基于激光、紅外生命探測(cè)儀受溫度影響嚴(yán)重、遇物體阻擋失效的問(wèn)題,也克服了超聲探測(cè)空間傳播衰減大、受環(huán)境雜物反射干擾、水、冰、泥土阻擋失效的問(wèn)題,因此近年來(lái)備受?chē)?guó)內(nèi)外學(xué)者的關(guān)注[1]。其基本原理是利用雷達(dá)天線發(fā)射的電磁波穿透一定障礙物照射到人體時(shí),反射的回波信號(hào)受到人體生理運(yùn)動(dòng)(如心跳、呼吸)引起表面微動(dòng)的多普勒調(diào)制,人體表面微動(dòng)信號(hào)就加載到了反射波中,這種人體的微動(dòng)與回波幅度相位之間具有相關(guān)性。對(duì)回波信號(hào)進(jìn)行A/D轉(zhuǎn)換、濾波等處理就可以提取到人體的生命特征信息。
現(xiàn)有設(shè)備多是基于單片機(jī)與PC機(jī)顯控系統(tǒng),具有系統(tǒng)體積較大,靈活性差,實(shí)時(shí)性差等缺點(diǎn)。本文主要研究生命探測(cè)儀算法和基于FPGA的信號(hào)處理系統(tǒng)設(shè)計(jì),上位機(jī)采用基于嵌入式系統(tǒng)的顯示控制單元。該系統(tǒng)體積小、成本低、攜帶方便,具有很高的實(shí)用價(jià)值,可廣泛應(yīng)用于災(zāi)害救援(地震、塌方傷員的探尋)、反恐斗爭(zhēng)(隔墻監(jiān)控罪犯、解救人質(zhì))等場(chǎng)合。
1生命探測(cè)儀算法研究
1.1生命探測(cè)雷達(dá)工作原理
生命探測(cè)雷達(dá)的基本原理是多普勒效應(yīng)。當(dāng)發(fā)射源與接收者之間有相對(duì)徑向運(yùn)動(dòng)時(shí),接收到的信號(hào)頻率將發(fā)生變化,其頻率差別與兩者的相對(duì)運(yùn)動(dòng)速度向量有關(guān),這種現(xiàn)象被稱(chēng)為多普勒頻移%多普勒雷達(dá)發(fā)送連續(xù)的電磁波信號(hào)到被探測(cè)對(duì)象,返回的信號(hào)被調(diào)制而具有被探測(cè)對(duì)象運(yùn)動(dòng)的信息,因此只要解調(diào)出返回信號(hào)就可以獲得所要結(jié)果虬
如果忽略幅度的變化,由單頻連續(xù)波雷達(dá)發(fā)射的信號(hào)可以表示為:
式(1)中,兀是雷達(dá)的發(fā)射波頻率,(P為初相,/為振幅。雷達(dá)接收機(jī)接收到的目標(biāo)回波信號(hào)sr(t)為:
式⑵中,tr=2R/c為回波信號(hào)滯后于發(fā)射信號(hào)的時(shí)間;R為目標(biāo)和雷達(dá)之間的距離;c為電磁波傳播速度,在自由空間傳播時(shí),c等于光速;K為回波的衰減系數(shù)。
當(dāng)目標(biāo)和雷達(dá)之間有相對(duì)運(yùn)動(dòng)時(shí),距離R隨時(shí)間變化。設(shè)目標(biāo)以勻速相對(duì)雷達(dá)運(yùn)動(dòng),則在t時(shí)刻目標(biāo)與雷達(dá)的距離R(t)為:
R(t)=Ro-Vrt(3)
式⑶中,Ro為t=0時(shí)的距離,v為目標(biāo)相對(duì)雷達(dá)的徑向運(yùn)動(dòng)速度。
由于通常雷達(dá)和目標(biāo)間的相對(duì)速度*遠(yuǎn)小于電磁波速度c,故時(shí)延t可近似寫(xiě)為:
回波信號(hào)與發(fā)射信號(hào)相比,高頻相位差可表示為:
由于式(5)中的P是時(shí)間t的函數(shù),故在速度v為常數(shù)時(shí)其產(chǎn)生的頻率差為:
多普勒頻率正比于相對(duì)運(yùn)動(dòng)的速度,而反比于工作波長(zhǎng)兀當(dāng)目標(biāo)以接近雷達(dá)的方向運(yùn)動(dòng)時(shí),多普勒頻率為正值,接收信號(hào)頻率高于發(fā)射信號(hào)頻率;當(dāng)目標(biāo)以背離雷達(dá)的方向運(yùn)動(dòng)時(shí),多普勒頻率為負(fù)值,接收信號(hào)的頻率低于發(fā)射信號(hào)的頻率。
生命的特征在于運(yùn)動(dòng),如人體呼吸和心跳時(shí)胸腔的運(yùn)動(dòng)以及人的體動(dòng)等。當(dāng)電磁波照射到人體時(shí),反射波會(huì)產(chǎn)生多普勒頻移。根據(jù)人的呼吸、心跳和體動(dòng)產(chǎn)生的多普勒頻率的特性,可以探測(cè)生命體是否存在。
1.2生命探測(cè)雷達(dá)回波信號(hào)分析
人體生命體征信號(hào)(呼吸、心跳和體動(dòng))是一種極微弱的低速目標(biāo)信號(hào)。理論上,人體連續(xù)的心臟跳動(dòng)和呼吸會(huì)引起胸腔的起伏運(yùn)動(dòng),進(jìn)而會(huì)產(chǎn)生系列多普勒頻移信號(hào),這些信號(hào)可以用連續(xù)波的形式來(lái)表示。實(shí)際中,由于雷達(dá)內(nèi)部運(yùn)動(dòng)、人體體動(dòng)等情況,目標(biāo)回波信號(hào)除了包括心跳和呼吸信號(hào)外還包括其它連續(xù)波分量。將人體簡(jiǎn)化為復(fù)合介電常數(shù)的球體和圓柱體模型。設(shè)人體生命體征運(yùn)動(dòng)(呼吸和心跳)是頻率為Q,幅度為A的簡(jiǎn)諧振動(dòng):
由式(12)可見(jiàn),雷達(dá)回波信號(hào)經(jīng)過(guò)處理后所得的人體生命體征信號(hào)a(t)的輸出幅度與雷達(dá)的發(fā)射信號(hào)&、人體振動(dòng)面雷達(dá)相位調(diào)制度k和雷達(dá)系統(tǒng)處理增益G成正比,與雷達(dá)發(fā)射信號(hào)波長(zhǎng)人成反比。
人體的呼吸、心跳信號(hào)是一種窄帶、低幅值、準(zhǔn)周期信號(hào),易受噪聲和環(huán)境干擾的影響。呼吸頻率的不均勻和胸腔的多點(diǎn)反射導(dǎo)致信號(hào)的頻譜有一定展寬。因?yàn)榛夭ㄐ盘?hào)體現(xiàn)了人體呼吸和心跳產(chǎn)生的多普勒頻移,在頻域上出現(xiàn)不同的諧波,可以將心跳和呼吸的回波信號(hào)表示成多個(gè)多普勒頻移信號(hào)的組合:
式(3)中,和pi分別為第i個(gè)諧波分量的幅度、歸一化頻率和初始相位,p是諧波個(gè)數(shù)。
回波信號(hào)除了生命信號(hào)外,還包含有雜波和噪聲等客觀存在的信號(hào),主要包括地表物體、云雨和人為施放的干擾等。墻壁等固定物體的回波和干擾信號(hào)可以建模成高斯色噪聲,人體的呼吸、心跳信號(hào)可以建模成諧波過(guò)程,因此可假設(shè)接收的回波信號(hào)模型為:
實(shí)際工作中,信號(hào)都是釆樣后的離散信號(hào),則回波的表達(dá)式為:
本文所述的生命探測(cè)雷達(dá)系統(tǒng)釆用1.5GHz的工作頻率。
根據(jù)正常人的生命體征參數(shù)可以進(jìn)行多普勒頻率的估計(jì)。平靜狀態(tài)下人的心跳頻率大約是60次/分鐘,即1次/秒,心臟跳動(dòng)一次有擴(kuò)和張各一次,每次擴(kuò)張的位移大約D=5mm,則多普勒頻率fd=2vd/A=2(2D/t)/A=0.11Hz;呼吸頻率是20次/分鐘即0.33次/秒,呼吸一次有呼和吸各一次,每次呼吸的位移D=5mm,則多普勒頻率fd=2vd/A=2(2D/t)/Z=0.04Hz:步行的速度約為fd=2vd/X=5Hz。根據(jù)以上推斷,人體心跳和呼吸微動(dòng)的多普勒頻移分別為0.11Hz和0.04Hz;體動(dòng)的多普勒頻率約為5~50Hz,生命信號(hào)歸屬于微弱的低速目標(biāo)多普勒信號(hào)。
本文即采用數(shù)字濾波器在FPGA中進(jìn)行生命信號(hào)的處理,針對(duì)人體呼吸、心跳和體動(dòng)等不同頻率多普勒頻移,設(shè)計(jì)了兩路FIR濾波器完成干擾及雜波的濾除。
2基于FPGA的系統(tǒng)硬件設(shè)計(jì)方案
本生命探測(cè)儀采用連續(xù)波雷達(dá)體制,由天線、發(fā)射機(jī)和接收機(jī)、信號(hào)處理機(jī)、顯示控制平臺(tái)等組成,其中信號(hào)處理機(jī)是生命探測(cè)儀算法實(shí)現(xiàn)的主要部分。信號(hào)處理機(jī)由一塊電路板組成,分別進(jìn)行模擬信號(hào)和數(shù)字信號(hào)處理。本設(shè)計(jì)中FPGA芯片主要完成超低速微弱信號(hào)的去噪以及低頻濾波的工作,選用Altera公司的Cyclonem系列的EP3C80F484C7芯片。FPGA器件能夠以高速、實(shí)時(shí)、低成本、高靈活性的優(yōu)點(diǎn)應(yīng)用于數(shù)字信號(hào)處理領(lǐng)域,利用它來(lái)進(jìn)行數(shù)字濾波器的設(shè)計(jì)技術(shù)已經(jīng)非常成熟。
圖1所示為本文的信號(hào)處理機(jī)系統(tǒng)功能框圖。圖中,輸入信號(hào)是低頻微弱信號(hào),為了降低信號(hào)處理板與微波前端的相互影響,在信號(hào)調(diào)理電路中采用一級(jí)電壓跟隨電路,起到緩沖隔離的作用,然后對(duì)信號(hào)進(jìn)行放大、數(shù)模轉(zhuǎn)換,再送入數(shù)字信號(hào)處理單元。
圖1 信號(hào)處理機(jī)系統(tǒng)功能框圖
3FPGA軟件設(shè)計(jì)
FPGA是本系統(tǒng)的核心模塊,承載了全部的數(shù)字元電路設(shè)計(jì)。FPGA完成的功能如下:
(1)為整個(gè)系統(tǒng)提供時(shí)序信號(hào),包括A/D采樣時(shí)鐘、運(yùn)放以及A/D等器件控制信號(hào);
(2)完成兩路FIR濾波器硬件實(shí)現(xiàn),F(xiàn)PGA內(nèi)部模塊主要包括兩個(gè)濾波器、FIFO、串口、控制模塊,圖2所示是FPGA內(nèi)部軟件設(shè)計(jì)原理圖。
3.1基于FPGA的FIR數(shù)字濾波器設(shè)計(jì)
FIR濾波器的基本結(jié)構(gòu)是一個(gè)分節(jié)的延時(shí)線,每一節(jié)的輸出加權(quán)累加,得到濾波器的輸出。數(shù)學(xué)上可以表示為[3]:
由此可以得出FIR濾波器的傳遞函數(shù)為:
從濾波器的傳遞函數(shù)可以知道,它是恒穩(wěn)定的,不需要回饋。而且只要加權(quán)系數(shù)h(i)=h(N-1-i)其中,(0<i<N-1),FIR濾波器就具有線性相位。一般而言,常用的FIR濾波器是線性相位的,即濾波器的系數(shù)滿足某種對(duì)稱(chēng)性。于是線性相位濾波器的輸出為:
從濾波器的傳遞函數(shù)可以知道,它是恒穩(wěn)定的,不需要 回饋。而且只要加權(quán)系數(shù)h(i)=h(N- 1 - i)其中,(0<i<N-1), FIR濾波器就具有線性相位。一般而言,常用的FIR濾波器 是線性相位的,即濾波器的系數(shù)滿足某種對(duì)稱(chēng)性。于是線性 相位濾波器的輸出為:
這樣,只需要做N/2(當(dāng)N為奇數(shù)時(shí)為(N+1)/2)次而不是N次乘法,就可以實(shí)現(xiàn)濾波器的功能,可以大大地節(jié)約硬件資源的消耗,還可以提高速度。
本文采用Matlab的窗函數(shù)方法設(shè)計(jì)并在FPGA上實(shí)現(xiàn)的方案。根據(jù)實(shí)際要求,可以分為有人靜止存在只有呼吸心跳和有人存在并且有體動(dòng)兩種情況。經(jīng)計(jì)算,分別為截止頻率0.5Hz的低通濾波器獲取呼吸心跳信息和通帶頻率1~50Hz的帶通濾波器獲取體動(dòng)信息。我們選擇海明窗作為系數(shù)計(jì)算窗函數(shù),低通濾波器階數(shù)N=412階,帶通濾波器階數(shù)N=168階。然后通過(guò)Matlab中的FIR函數(shù)確定各階系數(shù),再由FPGA硬件實(shí)現(xiàn)FIR濾波器。由于目前的FPGA器件只能支持定點(diǎn)計(jì)算,從Matlab計(jì)算所得的系數(shù)h是浮點(diǎn)值,需要轉(zhuǎn)換成定點(diǎn)值,即進(jìn)行系數(shù)量化。為了滿足精度要求,把所有系數(shù)乘以216后再四舍五入即可。
用MATLAB設(shè)計(jì)完成濾波器系數(shù)和結(jié)構(gòu)在具體硬件實(shí)現(xiàn)之前先對(duì)它進(jìn)行濾波的功能仿真。濾波器應(yīng)能使通頻帶內(nèi)的信號(hào)通過(guò),對(duì)通頻帶外的信號(hào)給予極大地衰減,阻止其通過(guò)。
這里輸入信號(hào)由MATLAB產(chǎn)生,頻率分量分別位于濾波器的通頻帶之內(nèi)和之外。首先驗(yàn)證截止頻率為0.5Hz的400階低通濾波器,它的采樣頻率是250Hz。MATLAB產(chǎn)生幅度為1,頻率分量分別為1Hz、3Hz和10Hz的正弦信號(hào),把它們相迭加并且加入5dB高斯白噪聲。濾波器的時(shí)域波形和頻域波形如圖3所示。
圖3通頻帶為0~1Hz的低通濾波器時(shí)域與頻域波形對(duì)于通頻帶為1~50Hz的200階帶通濾波器,輸入幅度為1,頻率分量分別為30Hz和60Hz的帶噪正弦信號(hào),其濾波器輸入輸出的時(shí)域與頻域波形如圖4所示。
圖4 通頻帶1~50Hz帶通濾波器時(shí)域與頻域波形
由圖3和圖4可以看出,兩路濾波器的通頻帶外的信號(hào)都已經(jīng)被濾除地很干凈,并且通頻帶外的噪聲也得到了極大地抑制。由于MATLAB濾波輸出是將輸入數(shù)據(jù)與濾波器系數(shù)直接卷積而得出的,濾波器的輸出相較于輸入有一定的延遲。兩路濾波器的設(shè)計(jì)都滿足系統(tǒng)性能要求規(guī)范。
3.2異步FIFO設(shè)計(jì)
FIFO是一種先入先出的內(nèi)存數(shù)組,其控制邏輯將執(zhí)行所有必要的讀寫(xiě)指針管理,并產(chǎn)生狀態(tài)標(biāo)志信號(hào)和可選擇的與用戶(hù)邏輯電路接口連接的握手信號(hào)。由于數(shù)據(jù)采樣數(shù)率遠(yuǎn)遠(yuǎn)小于串口數(shù)據(jù)傳輸速率,濾波器輸出與串行通信接口之間要進(jìn)行數(shù)據(jù)緩存,這里使用異步FIFO模塊實(shí)現(xiàn)不同時(shí)鐘模塊間的數(shù)據(jù)傳送。圖5所示是異步FIFO時(shí)序仿真波形。
圖5 異步FIFO時(shí)序仿真波形
若寫(xiě)入時(shí)鐘頻率為250Hz,讀出頻率為500Hz。則由圖5可以看出利用Quartus提供IP核即可以完成異步讀寫(xiě)功能,從而實(shí)現(xiàn)不同時(shí)鐘間的數(shù)據(jù)讀寫(xiě)。
3.3UART的設(shè)計(jì)
RS-232使用異步通訊協(xié)議。也就是說(shuō),數(shù)據(jù)的傳輸沒(méi)有時(shí)鐘信號(hào),接收端必須有某種方式,使之與接收數(shù)據(jù)同步。UART是廣泛使用的串行數(shù)據(jù)傳輸協(xié)議,UART允許在串行鏈路上進(jìn)行全雙工的通信。圖6所示是UART模塊的設(shè)計(jì)框圖UART主要包括接收模塊和發(fā)送模塊。接收模塊將FIFO從異步接收輸入信號(hào)SIN接收到的異步信號(hào)通過(guò)接收器完成串行/并行的轉(zhuǎn)換,形成異步數(shù)據(jù)幀;發(fā)送器將CPU發(fā)出的8位數(shù)據(jù)進(jìn)行并行/串行轉(zhuǎn)換,從SOUT發(fā)送出去。
圖6 UART模塊設(shè)計(jì)圖
本文采用有限狀態(tài)機(jī)來(lái)設(shè)計(jì)UART波特率發(fā)生器、接收器和發(fā)送器模塊,并設(shè)計(jì)了一種16位數(shù)據(jù)的通信協(xié)議。本系統(tǒng)的UART的波特率設(shè)定為19200,數(shù)據(jù)幀格式為1b起始位,8b數(shù)據(jù)位,1b停止位,沒(méi)有奇偶校驗(yàn)位,也即數(shù)據(jù)幀為10b。3.3.1波特率發(fā)生器
波特率發(fā)生器實(shí)際上是一個(gè)分頻器,根據(jù)給定的系統(tǒng)時(shí)鐘頻率和要求的波特率算出波特率分頻因子,利用波特率發(fā)生器可以產(chǎn)生任意頻率時(shí)鐘。由設(shè)置的波特率可以算出分頻系數(shù),具體算法為分頻因子X(jué)=2"#曾。其中m為所用寄存器位數(shù),Baud為波特率,clk為時(shí)鐘頻率。系統(tǒng)全局時(shí)鐘為40MHz,傳輸波特率為19.2Kb/s??捎纱耸剿愠龇诸l因子X(jué)=31.5,四舍五入后得X=32,實(shí)際產(chǎn)生的波特率為Baudclk=19193,跟理想的19200波特率誤差為0.04%。
3.3.2串口發(fā)送模塊
串口發(fā)送模塊主要實(shí)現(xiàn)將FIFO輸出的8位并行數(shù)據(jù)封8進(jìn)行串行發(fā)送的功能。發(fā)送時(shí)對(duì)于異步傳輸協(xié)議,不需要同接收端進(jìn)行時(shí)間同步。幀的傳送靠起始位來(lái)同步,起始位低電平,用下降沿沿通知對(duì)方接收方傳輸?shù)拈_(kāi)始,緊跟著是8位數(shù)據(jù)位,傳輸時(shí)低位元在前,高位在后。數(shù)據(jù)位后面是停止位,高電平有效。串口發(fā)送模塊仿真結(jié)果如圖7所示。
圖7 串口發(fā)送模塊仿真結(jié)果
3.3.3串口接收模塊
串口接收模塊主要實(shí)現(xiàn)將上位機(jī)發(fā)送的串行數(shù)據(jù)轉(zhuǎn)換成并行數(shù)據(jù)的功能。接收模塊實(shí)際上是發(fā)送模塊的逆過(guò)程,當(dāng)檢測(cè)到低電平時(shí),表示有資料到來(lái)。為了確定新數(shù)據(jù)的到來(lái),即檢測(cè)開(kāi)始位,我們使用8倍于波特率的采樣時(shí)鐘對(duì)接收到的信號(hào)進(jìn)行采樣,以防止因?yàn)槊痰仍斐慑e(cuò)誤判斷。當(dāng)8位數(shù)據(jù)接收完成后,ready輸出高電平,數(shù)據(jù)輸出有效。串口接收模塊仿真結(jié)果如圖8所示。
圖8 串口接收模塊仿真結(jié)果
4結(jié)語(yǔ)
本文從理論上研究了雷達(dá)式生命探測(cè)儀的算法,推導(dǎo)出了人體呼吸和運(yùn)動(dòng)所產(chǎn)生的多普勒頻移范圍,設(shè)計(jì)了生命探測(cè)儀信號(hào)處理板硬件系統(tǒng),并詳細(xì)介紹了利用FPGA實(shí)現(xiàn)濾波、異步存取以及數(shù)據(jù)收發(fā)和控制。利用FPGA與ARM9的結(jié)合,實(shí)現(xiàn)了生命探測(cè)儀的小型化與便攜化。實(shí)驗(yàn)證明,本項(xiàng)目開(kāi)發(fā)的生命探測(cè)儀達(dá)到了隔墻心跳探測(cè)大于4m,人體移動(dòng)大于10m,實(shí)現(xiàn)了較高的戰(zhàn)術(shù)指標(biāo)。