閆洋洋 毛君龍 李慶奧 袁久達(dá) 陳文鋼
摘要:提出了一種基于傅里葉變換的采用FIFO數(shù)據(jù)格式進(jìn)行數(shù)據(jù)存儲與處理的算法模型,并基于此搭建了硬件系統(tǒng)。首先介紹了硬件系統(tǒng)框架及各外圍電路組成,其次介紹了經(jīng)FIFO數(shù)據(jù)格式優(yōu)化后的傅里葉算法[1]的內(nèi)容原理。最終試驗(yàn)表明,硬件系統(tǒng)穩(wěn)定可靠,可實(shí)時接收心電信號,優(yōu)化后的算法在保證心率結(jié)果精準(zhǔn)度的同時切實(shí)縮短了心率計算周期,提高了系統(tǒng)的響應(yīng)速率,即提高了心率監(jiān)測的實(shí)時性。因此證明本心率實(shí)時監(jiān)測系統(tǒng)是切實(shí)可行的。
關(guān)鍵詞:心率實(shí)時監(jiān)測;嵌入式儀器;傅里葉變換
0引言
心臟類疾病已經(jīng)成為人們?nèi)粘I钪型{健康的最重大疾病之一。而心率監(jiān)測可以對此類疾病起到良好的預(yù)防和監(jiān)控作用。因此心率監(jiān)測技術(shù)的發(fā)展對于中老年群體,孕婦,相應(yīng)患者以及亞健康群體的身體健康具有重要意義。由此市場上也出現(xiàn)了大量的包括可穿戴式的心率監(jiān)測設(shè)備,如運(yùn)動手環(huán)等等。不少低價心率監(jiān)測設(shè)備只能人為觸發(fā)監(jiān)測而不能實(shí)時監(jiān)測,大部分的可實(shí)時的心率監(jiān)測設(shè)備在實(shí)時性方面存在一定的滯后性以及存在實(shí)時監(jiān)測導(dǎo)致的明顯的精確性降低等問題。
根據(jù)以上技術(shù)方面的不足,本實(shí)驗(yàn)采用一種優(yōu)化后的基于FIFO數(shù)據(jù)處理的傅里葉變換算法。搭建硬件處理系統(tǒng),對原始心電信號進(jìn)行抽樣檢測,對由A/D轉(zhuǎn)換后的數(shù)據(jù)使用優(yōu)化后的算法進(jìn)行處理。通過實(shí)驗(yàn)論證,本系統(tǒng)在保證實(shí)時性提高的同時,保證了心率數(shù)據(jù)的準(zhǔn)確性,并在一定條件下使誤差穩(wěn)定在5%的范圍內(nèi)。
1硬件電路實(shí)現(xiàn)
1.1硬件系統(tǒng)框圖
系統(tǒng)框圖如圖1所示,電路主要分為兩部分。第一部分為模擬前端電路,由心電監(jiān)護(hù)三導(dǎo)聯(lián)線將心電的原始電壓信號經(jīng)模擬前端芯片ADS1292轉(zhuǎn)化為24位的數(shù)字信號,可通過SPI兼容串行接口輸出。第二部分為圍繞STM32F103C8T6設(shè)計的MCU控制及數(shù)據(jù)處理系統(tǒng)電路[2],該系統(tǒng)的主要功能為驅(qū)動模擬前端芯片ADS1292進(jìn)行數(shù)據(jù)采集,并在接收到模擬前端的心電信號之后對心電信號進(jìn)行數(shù)據(jù)處理。
1.2單元電路介紹
模擬前端電路是心電采集電路設(shè)計的關(guān)鍵,原理圖如圖2所示,本系統(tǒng)采用生物電傳感器,通過置于體表的多個測量電極收集心臟起搏所產(chǎn)生的微小電位變化,并在對該模擬信號進(jìn)行低通濾波器濾波[3]后傳導(dǎo)至模擬前端芯片ADS1292。由于此時模擬前端接收到的模擬信號十分微弱,信號幅值較小,可通過ADS1292內(nèi)置的可編程增益放大器(PGA)進(jìn)行12倍的信號幅值放大。經(jīng)放大后的模擬信號通過24位的ADC轉(zhuǎn)化為數(shù)字信號。同時經(jīng)過PGA放大后的信號可明顯降低輸入?yún)⒖荚肼暎@在測量低電平生物勢信號時十分有效。
本系統(tǒng)采用STM32F103C8T6作為系統(tǒng)的控制核心和數(shù)據(jù)處理核心,該單片機(jī)集成了高性能32位Cortex-M3的RISC內(nèi)核,工作頻率為72MHz,內(nèi)置高速存儲器,2個SPI兼容串行接口,足以滿足系統(tǒng)的外部通信和數(shù)據(jù)運(yùn)算需求,內(nèi)含DSP指令,可進(jìn)行基4的快速傅里葉變換。主控的HSE時鐘電路采用了8MHZ外部晶振作為系統(tǒng)正常運(yùn)作時的時鐘源,該時鐘源經(jīng)過STM32F103C8T6內(nèi)部的鎖相環(huán)電路(PLL)倍頻后可以剛好達(dá)到72MHZ[4]。主控的LSE時鐘電路采用了32.768KHz的外部晶振作為系統(tǒng)的RTC時鐘。
2算法設(shè)計
2.1對直流分量的處理
在實(shí)際設(shè)備上進(jìn)行FFT變換時,由于直流分量占較大比重,直接傅里葉變換后某些低頻分量會受其較大影響產(chǎn)生誤差。并且采樣得到的AD轉(zhuǎn)換值都含有較大直流恒定成分,在計算機(jī)以及嵌入式設(shè)備中直接傅里葉變換極易導(dǎo)致數(shù)據(jù)太大而溢出,產(chǎn)生重大錯誤。所以在實(shí)際FFT變換之間,應(yīng)提前濾除直流分量。
2.2一種基于FIFO數(shù)據(jù)處理格式的傅里葉優(yōu)化算法實(shí)現(xiàn)
在對連續(xù)信號進(jìn)行傅里葉變換與譜分析時,有三個重要參量:采樣點(diǎn)數(shù)(N)、采樣頻率(Fs)、最小頻率分度值(F)。在采樣點(diǎn)數(shù)保持一定的情況下(本實(shí)驗(yàn)N=1024):如果采樣頻率越高,則每次采集點(diǎn)采樣數(shù)據(jù)所用的時間就越短,實(shí)時性就越高,但頻率分辨率會降低,導(dǎo)致誤差變大。如果在符合采樣定律的情況下采樣頻率越低,則最小頻率分度值會提高,結(jié)果越精確。但會使采樣周期時間延長,降低實(shí)時性。
采樣頻域的大小與頻率精確度是一對矛盾。本實(shí)驗(yàn)采取一種基于FIFO的優(yōu)化算法[5]:在內(nèi)存中定義一個1024*8bit的FIFO數(shù)據(jù)。規(guī)定一個變量,并令A(yù)=α*N。稱α為采樣深度,A為數(shù)據(jù)采入量。在第一次采集后將1024點(diǎn)的AD值載入FIFO,當(dāng)做最初數(shù)據(jù),之后進(jìn)行1024點(diǎn)的FFT。從第二次采集開始,可以每次采集A數(shù)量的采樣點(diǎn)數(shù),并將此時將FIFO中的前A點(diǎn)的數(shù)據(jù)移出FIFO,將后(1024-A)點(diǎn)數(shù)據(jù)移至FIFO前端,再將新采集的A點(diǎn)數(shù)據(jù)加載到FIFO后端,再進(jìn)行FFT變換。由此可以通過更改采樣深度的大小,改變每次傅里葉變換的數(shù)據(jù)采入量,進(jìn)而改變實(shí)時性。
3實(shí)驗(yàn)數(shù)據(jù)與結(jié)果
由于真人的心電信號變化范圍小且不方便準(zhǔn)確測量實(shí)際對照值,所以實(shí)驗(yàn)以心電信號發(fā)生器為輸入源產(chǎn)生實(shí)驗(yàn)所需心電信號,通過硬件系統(tǒng)的數(shù)據(jù)如下:
4結(jié)語
本設(shè)計搭建的硬件處理系統(tǒng)切實(shí)可行,效果良好。同時硬件系統(tǒng)的可行性也說明了本設(shè)計提出的算法模型是合理可行的,這也為其他心率監(jiān)測產(chǎn)品的實(shí)時性問題的解決提出了一種思路,尤其是本算法有占用內(nèi)存小,計算量適中,反應(yīng)速度快,對硬件性能要求低等優(yōu)點(diǎn),非常適用于采用32位通用MCU為主控芯片的產(chǎn)品。
參考文獻(xiàn)
[1]劉華龍,阮宜菁.傅里葉算法暫態(tài)特性以及微機(jī)保護(hù)的動作時間[J].機(jī)電設(shè)備,2020,37(06):75-78.
[2]葉蓓,何強(qiáng).基于國產(chǎn)MCU的電流輸出裝置的設(shè)計與實(shí)現(xiàn)[J].上海船舶運(yùn)輸科學(xué)研究所學(xué)報,2020,43(02):15-20.
[3]高建民.一種基于STM32的智能準(zhǔn)同期裝置的研制[J].天津科技,2019, 46(08):48-51.
[4]紀(jì)峰,林郁兆.基于單片機(jī)PIC18F87J11的FIR數(shù)字低通濾波器設(shè)計與實(shí)現(xiàn)[J].電子世界,2017(10):175-176.
[5]陳堅,盛慶華,毛禮建,翟依依.基于STM32的音頻信號分析儀的設(shè)計與實(shí)現(xiàn)[J].工業(yè)儀表與自動化裝置,2016(03):19-21+34.
作者簡介
閆洋洋(2000—),男,山東省人,本科生。
通訊作者
陳文鋼(1977—),男,山東省人,副教授,研究方向:信號處理與嵌入式。