基于腦電的駕駛疲勞檢測(cè)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn),包括原理圖、電路圖等
前 言
交通事故是當(dāng)前世界各國(guó)所面臨的嚴(yán)重社會(huì)問(wèn)題之一,已被公認(rèn)為當(dāng)今世界危害人類生命安全的第一大公害,每年因交通事故的原因至少使50萬(wàn)人死亡.歐美各國(guó)的交通事故統(tǒng)計(jì)分析表明,交通事故中80%~90%是人的因素造成的。根據(jù)美國(guó)國(guó)家公路交通安全署的統(tǒng)計(jì),在美國(guó)的公路上,每年由于司機(jī)在駕駛過(guò)程中跌入睡眠狀態(tài)而導(dǎo)致大約10萬(wàn)起交通事故,約有1500起直接導(dǎo)致人員死亡,7.1萬(wàn)起導(dǎo)致人員傷害。在歐洲的情況也大致相同,如在德國(guó)境內(nèi)的高速公路上25%導(dǎo)致人員傷亡的交通事故,都是由疲勞駕駛引起的。根據(jù)中國(guó)交通部的統(tǒng)計(jì),我國(guó)48%的車禍由駕駛員疲勞駕駛引起,直接經(jīng)濟(jì)損失達(dá)數(shù)十萬(wàn)美元。有關(guān)汽車駕駛員的疲勞檢測(cè)問(wèn)題,隨著高速公路的發(fā)展和車速的提高,目前已成為汽車安全研究的重要一環(huán)。
國(guó)外的許多國(guó)家都比較重視疲勞駕駛檢測(cè)的研究工作。尤以美國(guó)的研究發(fā)展較快,目前具有代表性的有:美國(guó)研制的打瞌睡駕駛員偵探系統(tǒng),方向盤監(jiān)視裝置,日本研制的DAS2000型路面警告系統(tǒng),日本研制的電子“清醒帶”。對(duì)于國(guó)內(nèi),我國(guó)的疲勞駕駛檢測(cè)系統(tǒng)研究起步較晚,目前比較成型的系統(tǒng)很少。對(duì)于目前來(lái)說(shuō),不論國(guó)內(nèi)國(guó)外,雖然研究的成果較多,但是還未見(jiàn)到一種方法是被大家所公認(rèn)的。就現(xiàn)在而言,基于腦電波的疲勞駕駛檢測(cè)系統(tǒng)被國(guó)際上視作為未來(lái)該領(lǐng)域的發(fā)展趨勢(shì)。
腦電信號(hào)是一種微弱的生物信號(hào),并且極易受到干擾。基于腦電的疲勞駕駛檢測(cè)系統(tǒng)的設(shè)計(jì)思想為:首先要通過(guò)腦電采集電路采集腦電信號(hào),再對(duì)其進(jìn)行小波去噪處理,去掉腦電偽跡和高頻噪聲,最后通過(guò)處理分析腦電信號(hào),從而給出駕駛?cè)藛T的疲勞程度。系統(tǒng)的基本設(shè)計(jì)思想如下圖所示:
整個(gè)系統(tǒng)由模擬部分和數(shù)字部分組成。
模擬部分主要由信號(hào)放大電路,濾波電路,光電耦合電路以及AD6783模數(shù)轉(zhuǎn)換器構(gòu)成。
數(shù)字部分主要由SPI接口控制器(ADC接口),時(shí)鐘管理器,小波去噪模塊和分析處理模塊共同組成。
第一章:模擬部分
前端信號(hào)采集電路完整實(shí)現(xiàn)了基于腦電的疲勞檢測(cè)系統(tǒng),總體放大倍數(shù)為A=100×70×1.1×2=15400,腦電信號(hào)電壓為5μV—100μV,經(jīng)全部采集電路放大濾波后,信號(hào)電壓范圍為-1.54V~+1.54V ,經(jīng)電壓抬升后輸入AD信號(hào)范圍為0.71V~3.79V,外部采用12V直流供電,內(nèi)部選用7805產(chǎn)生5V電壓。詳細(xì)情況如下:
一、腦電信號(hào)采集放大部分:
(1)前置放大電路:前置放大電路是整個(gè)腦電采集儀器設(shè)計(jì)的關(guān)鍵,它決定了整個(gè)放大電路的共模抑制比、輸入阻抗和噪聲水平。
腦電測(cè)量過(guò)程中的共模干擾特別大,腦電信號(hào)的放大一般采用差動(dòng)放大電路結(jié)構(gòu)。前置放大電路對(duì)集成運(yùn)算放大器的要求有:高輸入阻抗;高共模抑制比;低噪聲、低漂移;低輸入失調(diào)電壓;足夠大的放大倍數(shù)及低功耗。本課題中采用AD公司的高性能儀用放大器AD620來(lái)實(shí)現(xiàn)前置放大。此運(yùn)放有較高的技術(shù)參數(shù),非常適合用于生理信號(hào)放大及在電池供電條件下工作的醫(yī)療儀器的應(yīng)用系統(tǒng)。本次電路設(shè)計(jì)中,放大倍數(shù)為100倍,增益反饋電阻選為499歐姆。AD620的放大倍數(shù)G由增益電阻決定,增益:
其中為增益反饋電阻。
二級(jí)放大電路:因前置放大后的信號(hào)仍然處于比較低的電壓水平上,現(xiàn)采用AD620設(shè)計(jì)二級(jí)放大電路,以進(jìn)一步保證高共模抑制比、低噪聲、低漂移等電路性能,放大倍數(shù)選擇為70倍,增益反饋電阻取為715歐姆。
低通濾波電路:低通濾波采用二階巴特沃斯濾波器,采用OP07運(yùn)放,截止頻率為100赫茲。
由電路,得到傳遞函數(shù):
只有小于3時(shí),即分母中S的一次項(xiàng)系數(shù)大于零,電路才能穩(wěn)定工作,而不產(chǎn)生自激振蕩。
截止頻率為:
(4)50赫茲陷波電路:如下圖,采用典型的二階有源帶阻濾波器。
這是一種典型的二階有源帶阻濾波器,其傳遞函數(shù)為:
,式中A是運(yùn)放增益。
這個(gè)電路的特點(diǎn)是所用器件少,調(diào)試方便。如果陷波深度不夠,可采取級(jí)聯(lián)方式提高干擾抑制能力??偟膩?lái)說(shuō),50Hz工頻陷波電路在系統(tǒng)中起到一個(gè)很重要的作用。即使在工頻信號(hào)淹沒(méi)腦電信號(hào)的條件下,通過(guò)濾除5OHz的干擾信號(hào),也可以得到比較理想的腦電信號(hào)。所以工頻陷波電路是生物電信號(hào)采集中不可缺少的環(huán)節(jié)。本電路通過(guò)50Hz陷波器的引入,成功的去除了50Hz工頻干擾。
高通濾波電路:人體中存在極化電位,這些電信號(hào)是直流信號(hào),因此需要設(shè)計(jì)高通濾波器將這些直流濾除。采用一個(gè)簡(jiǎn)單的一階有源RC高通濾波電路,截止頻率為0.1Hz,增益為2。電路如下:
電壓抬升電路:腦電信號(hào)是雙極性型號(hào),由于AD轉(zhuǎn)換器對(duì)輸入信號(hào)的電壓要求為正,故在AD轉(zhuǎn)換之前,通過(guò)電壓抬升電路,把信號(hào)的幅度調(diào)整為正,同時(shí)通過(guò)適當(dāng)調(diào)整電壓值浮動(dòng)范圍,確保與之后的模數(shù)轉(zhuǎn)換電路匹配。電路中采用了可穩(wěn)定地提供4.5V的基準(zhǔn)電壓的電壓基準(zhǔn)源MAX6107。電路如下:
在反向比例運(yùn)算電路中,同向輸入端通過(guò)電阻接地,此為補(bǔ)償電阻,以保證集成運(yùn)放輸入級(jí)差分放大電路的對(duì)稱性,須滿足
。
由電路得:
。
差分比例電路中,在參數(shù)對(duì)稱前提下,電路實(shí)現(xiàn)了對(duì)輸入差模信號(hào)的比例運(yùn)算,最后得:
二、模數(shù)轉(zhuǎn)換部分:
AD轉(zhuǎn)換電路——光耦隔離電路
(1)AD轉(zhuǎn)換電路:采用16位采樣速率可調(diào)的A/D轉(zhuǎn)換芯片,不但保證了A/D轉(zhuǎn)換的精度,而且可以滿足并更改需要的A/D的轉(zhuǎn)換速率。
AD7683是AD公司生產(chǎn)的一種低功耗高精度16位高速串行A/D轉(zhuǎn)換器,它適用于儀器儀表、便攜式探測(cè)器及各種電池供電的應(yīng)用場(chǎng)合。采用AD7683和MAX6107設(shè)計(jì)的A/D轉(zhuǎn)換電路圖如下:
(2)光耦隔離電路:在腦電采集電路與FPGA開(kāi)發(fā)板之間,采用光耦隔離電路做接口,把兩者隔離開(kāi),防止FPGA開(kāi)發(fā)板上的高頻數(shù)字信號(hào)對(duì)腦電采集電路的干擾。同時(shí),光耦隔離電路還有電壓轉(zhuǎn)換的作用,由于AD轉(zhuǎn)換芯片的工作電壓為5V,其輸出的數(shù)字信號(hào)電壓也可達(dá)5V,而FPGA芯片的管腳電壓為3.3V。光耦隔離兩端采用不同的上拉電壓以實(shí)現(xiàn)兩者的匹配。
6N136是一個(gè)高速光耦芯片,其工作速度可達(dá)1Mbit/s,帶寬為2MHz。圖中,U14、U15和U16分別對(duì)DCLK、DOUT和CS進(jìn)行隔離,U17對(duì)電源控制信號(hào)POWER進(jìn)行隔離。
第二章:數(shù)字部分
- SPI控制模塊的實(shí)現(xiàn)
我們采用16位串行A/D轉(zhuǎn)換器AD7683,其工作時(shí)序如下圖所示:
DCLOCK為AD7683時(shí)鐘控制信號(hào),由FPGA產(chǎn)生。CS為AD7683選通信號(hào),低電平有效,由FPGA產(chǎn)生。一次A/D轉(zhuǎn)換至少需要22個(gè)時(shí)鐘周期,至多為24個(gè)時(shí)鐘周期。Dout為AD7683轉(zhuǎn)換輸出信號(hào)為串行總線,與FPGA相接,為FPGA提供數(shù)據(jù)。
依據(jù)該時(shí)序要求,我們?cè)O(shè)計(jì)了SPI控制器。SPI控制器主要由有限狀態(tài)機(jī)實(shí)現(xiàn)。狀態(tài)機(jī)轉(zhuǎn)換邏輯,如下圖所示:
依據(jù)狀態(tài)機(jī)邏輯轉(zhuǎn)換圖,我們?cè)O(shè)計(jì)程序,經(jīng)過(guò)modelsim仿真得到如下圖:
此設(shè)計(jì)符合AD7683的時(shí)序邏輯。
- 時(shí)鐘管理器
依據(jù)腦電信號(hào)的特點(diǎn),我們的采樣平率為256Hz,我們采用33MHz的系統(tǒng)時(shí)鐘,對(duì)其進(jìn)行11分頻,得到3MHz在對(duì)其進(jìn)行相應(yīng)的分頻后,分別得到6.144KHz(SPI控制器工作頻率), 4.608KHz(第一級(jí)小波工作頻率,F(xiàn)FT工作頻率), 2.304KHz(第二級(jí)小波工作頻率), 1.152KHz(第三級(jí)小波工作頻率), 576Hz(第四級(jí)小波工作頻率)。
時(shí)鐘管理器示意圖如下所示:
- 小波去噪模塊的實(shí)現(xiàn)
離散小波的基本原理
小波變換是一種信號(hào)的時(shí)間—尺度(時(shí)間—頻率)分析方法,它具有多分辨率分析(Multi-resolutionAnalysis)的特點(diǎn),而且在時(shí)頻兩域都具有表征信號(hào)局部特征的能力,是一種窗口大小固定不變,但其形狀可改變,時(shí)間窗和頻率窗都可以改變的時(shí)頻局部化分析方法。即在低頻部分具有較高的頻率分辨率和較低的時(shí)間分辨率,在高頻部分具有較高的時(shí)間分辨率和較低的頻率分辨率,很適合于探測(cè)正常信號(hào)中夾帶的瞬態(tài)反?,F(xiàn)象并展示其成分,所以被譽(yù)為分析信號(hào)的顯微鏡。
依據(jù)腦電信號(hào)自身特性,我們選擇DB4小波,圖為小波變換的示意圖:
離散小波變換的整體設(shè)計(jì)思想
采用四級(jí)小波分解,每一級(jí)的小波系數(shù)由FIFO進(jìn)行暫存,協(xié)同去噪模塊進(jìn)行讀取,去噪,以及去噪后的合成工作,整個(gè)離散小波變換采用流水結(jié)構(gòu),其中小波分解和小波合成兩個(gè)模塊可達(dá)到262MHz,小波去噪模塊可達(dá)到167MHz,整個(gè)離散小波模塊可以達(dá)到167MHz。
MALLAT算法
MALLAT算法是由法國(guó)科學(xué)家于1988年提出的一種離散小波變換(DWT)的快速算法。該算法的地位相當(dāng)于快速福利葉變換在經(jīng)典傅里葉分析中的地位,已成為各種硬件實(shí)現(xiàn)的直接理論依據(jù)。MALLAT算法中的核心是濾波模塊,由濾波模塊實(shí)現(xiàn)小波的分解與合成,下圖給出MALLT算法的小波分解示意圖:
小波去噪模塊核心設(shè)計(jì)
補(bǔ)碼運(yùn)算器
AD采樣輸出的為數(shù)據(jù)的原碼,我們需要將其變換為補(bǔ)碼。
對(duì)于正數(shù)而言,它的原碼等于它的補(bǔ)碼;對(duì)于負(fù)數(shù)而言,它的補(bǔ)碼是對(duì)其原碼除符號(hào)位之外進(jìn)行取反后加一處理。因此,補(bǔ)碼器的設(shè)計(jì)示意圖如下:
DA算法及其濾波器的實(shí)現(xiàn)
DA算法是distributed arithmetic算法的簡(jiǎn)稱。中文譯為分布式算法。小波濾波器的實(shí)現(xiàn)采用分布式算法實(shí)現(xiàn)。分布式算法作為一項(xiàng)數(shù)字信號(hào)處理算法,廣泛應(yīng)用于計(jì)算乘積和運(yùn)算,與傳統(tǒng)的乘積和結(jié)構(gòu)相比,DA算法具有并行處理的高效性特點(diǎn)。若采用分布式算法實(shí)現(xiàn)小波濾波器,則它在FPGA中的工作速度只與輸入數(shù)據(jù)的寬度B有關(guān),與濾波器的階數(shù)N無(wú)關(guān),階數(shù)只影響FPGA資源的使用量。
在高速環(huán)境下,往往使用DA算法封裝成一個(gè)乘法器代替DSP進(jìn)行使用,從而實(shí)現(xiàn)濾波器的設(shè)計(jì)工作,但是這樣過(guò)于耗費(fèi)資源。我們通過(guò)分析卷積原理,優(yōu)化了濾波器實(shí)現(xiàn)結(jié)構(gòu),這樣不僅節(jié)省了大量的資源,而且在速度上也完全可以滿足實(shí)時(shí)高速要求。具體優(yōu)化為:
(1)使用串并轉(zhuǎn)換結(jié)構(gòu),從而達(dá)到復(fù)用乘法器的目的,可以指數(shù)倍的節(jié)省硬件資源。
基于這種結(jié)構(gòu)的濾波器無(wú)論是多少階的濾波器都只使用一個(gè)DA乘法器。
(2)多位并行查找表結(jié)構(gòu),速度大大提高。
濾波器實(shí)現(xiàn)結(jié)構(gòu)示意圖如下:
依據(jù)該濾波器結(jié)構(gòu),編寫程序,經(jīng)過(guò)modelsim仿真得到如下圖:
下面給出MATLAB仿真
注意:此時(shí)的濾波器已經(jīng)實(shí)現(xiàn)了下兩點(diǎn)抽取,因此x_out顯示的為MATLAB中y輸出的偶數(shù)點(diǎn)。
經(jīng)MATLAB驗(yàn)證,濾波器設(shè)計(jì)無(wú)誤。
下兩點(diǎn)采樣器
依據(jù)MALLAT算法,我們要對(duì)每一級(jí)輸出的數(shù)據(jù)進(jìn)行下兩點(diǎn)采樣處理,因此我們?cè)O(shè)計(jì)的下兩點(diǎn)采樣器示意圖如下:
異步FIFO(1024點(diǎn))
異步FIFO在整個(gè)系統(tǒng)中,擔(dān)當(dāng)系統(tǒng)暫存的作用,因此要保證數(shù)據(jù)的丟失概率足夠的低,因而需要設(shè)計(jì)一個(gè)高可靠的,高速率的異步FIFO需要解決以下問(wèn)題:
(1)同步異步信號(hào),使觸發(fā)器避免亞穩(wěn)態(tài)的產(chǎn)生。我們采用了兩措施解決這一問(wèn)題:
a).對(duì)寫地址/讀地址采用格雷碼。
b).采用觸發(fā)器來(lái)同步輸入信號(hào)。
(2)產(chǎn)生正確的滿/空標(biāo)志信號(hào)。我們通過(guò)設(shè)置額外狀態(tài)位的辦法來(lái)準(zhǔn)確判斷滿/空狀態(tài)。
判斷滿/空標(biāo)志的公式:
Empty=(讀指針=寫指針);
Full=(讀指針最高位/=寫指針最高位)and (讀指針其它位=寫指針其它位);
243點(diǎn)中值選取器
243點(diǎn)中值選取器的基本作用就是選取hi_d1小波系數(shù)中的中間值,之后對(duì)中間值進(jìn)行簡(jiǎn)單運(yùn)算處理,從而得到小波去噪的門限值,以便進(jìn)行之后的小波去噪運(yùn)算。
在計(jì)算機(jī)應(yīng)用當(dāng)中,中值算法已經(jīng)相當(dāng)成熟,高效。但對(duì)于FPGA來(lái)講,還沒(méi)有發(fā)現(xiàn)一種既節(jié)省資源又可以執(zhí)行效率高的中值算法。因此我們采取了諸多嘗試,首先我們嘗試著修改計(jì)算機(jī)中的冒泡法以便可以移植到FPGA中應(yīng)用,但是我們發(fā)現(xiàn)假如將冒泡法利用在FPGA上會(huì)出現(xiàn)以下情況:
(1)無(wú)法綜合或者很難綜合,極易產(chǎn)生錯(cuò)誤
(2)嚴(yán)重耗費(fèi)資源,延時(shí)不佳,若243點(diǎn)中值采用冒泡算法占用資源量是一般FPGA所吃不消的。
后來(lái)我們又嘗試過(guò)幾種算法,例如基于三點(diǎn)中值選取器的全流水結(jié)構(gòu)的243點(diǎn)中值選取器,資源占用雖然有所改善,但是耗費(fèi)資源依然嚴(yán)重,需要耗費(fèi)10000多個(gè)以上LUT,一般的FPGA仍然很難吃消。
而后,我們通過(guò)分析基于三點(diǎn)中值選取器的結(jié)構(gòu)的全流水結(jié)構(gòu),發(fā)現(xiàn)了3點(diǎn)中值選取器利用率過(guò)低,所以經(jīng)過(guò)重新設(shè)計(jì)我們采用了一種新的設(shè)計(jì)結(jié)構(gòu):一種基于復(fù)用9點(diǎn)中值選取器的全流水的243點(diǎn)中值選取器,該種結(jié)構(gòu)較基于三點(diǎn)中值選取器的全流水結(jié)構(gòu)可以節(jié)約94%的LUT資源,并且時(shí)鐘頻率仍然保持在175MHz以上。
其核心思想為:將大量數(shù)據(jù)進(jìn)行分段處理,做到少量多次,并且使用流水結(jié)構(gòu)達(dá)到實(shí)時(shí)處理關(guān)鍵要求。
分析以上結(jié)構(gòu),如果我們將第三級(jí)的3點(diǎn)中值選取器更換為9點(diǎn)中值選取器,那么它將可以實(shí)現(xiàn)729點(diǎn)的中值選取功能,而若使用基于三點(diǎn)中值選取器的全流水結(jié)構(gòu)來(lái)實(shí)現(xiàn)729點(diǎn)中值選取的功能那么其資源耗費(fèi)可想而知。如下圖所示為兩者資源耗費(fèi)的關(guān)系圖例:
3點(diǎn)中值選取器
3點(diǎn)中值選取器的基本功能是完成對(duì)于三個(gè)輸入數(shù)據(jù)完成尋找其中值的功能,設(shè)計(jì)流程圖如下圖所示:
9點(diǎn)中值選取器
9點(diǎn)中值選取器的構(gòu)造是基于3點(diǎn)中值選取器的全流水結(jié)構(gòu),其結(jié)構(gòu)示意圖如下圖所示:
根據(jù)結(jié)構(gòu)示意圖,編寫程序,經(jīng)modelsim仿真,得到如下圖:
我輸入的數(shù)據(jù)1-486,則算出的中值為122和365,這與邏輯分析相同,設(shè)計(jì)正確無(wú)誤。
去噪分析器
去噪分析器的基本功能是完成hi_d4與去噪門限的比較,如果hi_d4大于去噪門限就認(rèn)為是噪聲,則此點(diǎn)被置零,如果hi_d4小于去噪門限則保持不變輸出。設(shè)計(jì)流程圖如下圖所示:
小波分解模塊的實(shí)現(xiàn)
依據(jù)MALLAT算法,小波分解模塊主要是實(shí)現(xiàn)對(duì)于腦電信號(hào)的各個(gè)頻譜分量的分解工作,而MALLAT算法實(shí)現(xiàn)的關(guān)鍵在于小波濾波器。下圖為小波分解模塊的結(jié)構(gòu)示意圖:
數(shù)據(jù)經(jīng)補(bǔ)碼器流入小波分解高通濾波器(HI_D)和小波分解低通濾波器(LO_D)濾波后經(jīng)下兩點(diǎn)采樣后完成一級(jí)小波分解運(yùn)算,小波的高通系數(shù)被寄存在FIFO當(dāng)中等待合成運(yùn)算。小波的低通系數(shù)繼續(xù)流入下一級(jí)小波分解模塊,對(duì)信號(hào)進(jìn)一步分解。
以上是通用的小波分解算法,其優(yōu)點(diǎn)是適用于各種信號(hào)的分解,但是我們通過(guò)分析本次課題設(shè)計(jì)的目的可知:腦電信號(hào)的頻率范圍是從1Hz~250Hz,而我們所關(guān)心的只有10~13Hz和18~22Hz的頻帶信息,即我們只關(guān)心腦電信號(hào)50Hz以下的頻帶信息,其余的頻帶信息在本次課題設(shè)計(jì)中是無(wú)用的,因此我們依據(jù)小波分解的概念,提出了更為節(jié)省資源的小波分解模塊的實(shí)現(xiàn)方法;下圖為應(yīng)用于腦電疲勞檢測(cè)的小波分解模塊的結(jié)構(gòu)示意圖:
該種結(jié)構(gòu)節(jié)約了兩個(gè)小波高通濾波器(HI_D)和兩個(gè)1024點(diǎn)的FIFO,節(jié)約資源不可忽視。
小波合成模塊的實(shí)現(xiàn)
小波合成模塊主要是為了實(shí)現(xiàn)在小波去噪之后的各級(jí)小波系數(shù)的合成工作。根據(jù)MALLAT算法,小波合成的實(shí)現(xiàn)依然要依靠小波合成高通濾波器(HI_R)和小波合成低通濾波器(LO_R)。下圖為小波合成模塊的結(jié)構(gòu)示意圖:
以上是通用的小波合成算法,其優(yōu)點(diǎn)是適用于各種信號(hào)的合成,但是我們通過(guò)分析本次課題設(shè)計(jì)的目的可知:腦電信號(hào)的頻率范圍是從1Hz~250Hz,而我們所關(guān)心的只有10~13Hz和18~22Hz的頻帶信息,即我們只關(guān)心腦電信號(hào)50Hz以下的頻帶信息,其余的頻帶信息在本次課題設(shè)計(jì)中是無(wú)用的,因此我們依據(jù)小波合成的概念,提出了更為節(jié)省資源的小波合成模塊的實(shí)現(xiàn)方法;下圖為應(yīng)用于腦電疲勞檢測(cè)的小波合成模塊的結(jié)構(gòu)示意圖:
以上節(jié)約了兩個(gè)FIFO,節(jié)約資源不可忽視。
- 分析處理模塊的實(shí)現(xiàn)
腦電信號(hào)與疲勞檢測(cè)的基本理論
腦電信號(hào)與人體疲勞的關(guān)系
近年來(lái)學(xué)者對(duì)腦電的研究表明,18~22 Hz及更高頻率的腦電主要是大腦思維活動(dòng)活躍的體現(xiàn),所以當(dāng)駕駛員處于疲勞狀態(tài)時(shí),大腦的思維活動(dòng)會(huì)降低,從而β波及高頻腦電會(huì)減少,而腦電的α波會(huì)增多;當(dāng)從疲勞轉(zhuǎn)為瞌睡或睡眠狀態(tài)時(shí),占主導(dǎo)的腦電頻率會(huì)逐步降低為2~4Hz的δ波。
經(jīng)過(guò)學(xué)者的分析,如果使用10~13 Hz和18~22 Hz兩個(gè)頻帶的平均功率譜比值作為疲勞駕駛腦電的一個(gè)指標(biāo)是可行的。
設(shè)信號(hào)在頻帶h的平均功率譜密度為
式中:
疲勞狀態(tài)下,無(wú)論駕駛員處于何種動(dòng)作狀態(tài)下,R值都比精力充沛時(shí)R值要高。
處理分析模塊的整體結(jié)構(gòu)及其功能
分析處理模塊主要完成對(duì)信號(hào)的分析處理工作,從而最終給出腦電的駕駛疲勞系數(shù)。其結(jié)構(gòu)示意圖如下圖所示:
經(jīng)小波去噪模塊后的數(shù)據(jù),逐個(gè)進(jìn)入FIFO進(jìn)行寄存,同時(shí)讀時(shí)能計(jì)數(shù)器自動(dòng)加1,當(dāng)FIFO中寄存了256個(gè)數(shù)據(jù)時(shí),此時(shí)讀時(shí)能寄存器計(jì)數(shù)值也為256,此時(shí)發(fā)出讀時(shí)能信號(hào)給FIFO同時(shí)發(fā)出開(kāi)始信號(hào)給FFT,數(shù)據(jù)將以CLK_fft的時(shí)鐘節(jié)拍下從FIFO中讀出進(jìn)入FFT模塊,F(xiàn)FT開(kāi)始進(jìn)行快速傅里葉計(jì)算,之后將結(jié)果進(jìn)行數(shù)據(jù)輸出,同時(shí)帶有地址信息,選擇乘法器選擇地址信息為10-13,18-22點(diǎn)的數(shù)據(jù)進(jìn)行乘法運(yùn)算之后進(jìn)行加法運(yùn)算并分別輸出為10-13Hz的實(shí)數(shù)加和結(jié)果(RE_13),10-13Hz的虛數(shù)加和結(jié)果(IM_13),18-22Hz的實(shí)數(shù)加和結(jié)果(RE_18)和18-22Hz的虛數(shù)加和結(jié)果。將RE_13和IM_13做加和運(yùn)算作為除法器的被除數(shù),將RE_18和IM_18做加和運(yùn)算作為除法器的除數(shù),最后完成兩者的除法運(yùn)算,給出疲勞系數(shù)(即除法器的商和余數(shù))。
FFT core的調(diào)用
我們調(diào)用的為256點(diǎn)的FFT的CORE,采用流水結(jié)構(gòu),輸入輸出位寬為17位,使用縮放因子,設(shè)置截位處理為項(xiàng)下截取,順序輸出,選擇使用BLOCK RAM,未進(jìn)行任何特殊優(yōu)化。
FFT主要完成的功能就是對(duì)信號(hào)進(jìn)行時(shí)頻域變換,從而可以對(duì)其進(jìn)行頻譜能量的相關(guān)計(jì)算。在本次課題設(shè)計(jì)當(dāng)中我們主要關(guān)心的為10-13Hz 和18-22Hz的腦電頻譜成分,對(duì)應(yīng)到FFT上約為10-13點(diǎn)和18-22點(diǎn)的X(K)。
選擇乘法器
選擇乘法器的基本工作就是根據(jù)地址信息,選擇性的選取數(shù)據(jù)進(jìn)行乘法運(yùn)算,該乘法運(yùn)算調(diào)用了DSP48E模塊,并將乘法結(jié)果輸出到加法器當(dāng)中進(jìn)行累加運(yùn)算。從而得到實(shí)部乘積和虛部乘積。其結(jié)構(gòu)示意圖如下所示:
加法器
加法器的基本功能就是完成加法運(yùn)算。
除法器
對(duì)于所有的FPGA綜合軟件都可以綜合“+,-,*”三種算術(shù)運(yùn)算,但是不能綜合除法運(yùn)算,即使在計(jì)算機(jī)中所有的除法運(yùn)算也是通過(guò)乘法運(yùn)算間接完成的,因此在FPGA當(dāng)中設(shè)計(jì)除法器是一個(gè)難點(diǎn)。
常用的除法算法主要有兩種,一種為線性收斂,另一種為二次收斂方案。
我們采用線性熟練的除法算法,即restoring(還原)除法,首先調(diào)整分母并加載分子到余數(shù)寄存器中,然后從余數(shù)中減去調(diào)整的分母并將結(jié)果存在余數(shù)寄存器中,如果新的余數(shù)為正,我們就將商加1,否則商不變并且還需要通過(guò)加上分母來(lái)還原從前的余數(shù)值。我們采用狀態(tài)機(jī)對(duì)其進(jìn)行實(shí)現(xiàn)。
疲勞判決的預(yù)警裝置
依據(jù)文獻(xiàn)所給出的如下數(shù)據(jù):
數(shù)據(jù)表明:疲勞狀態(tài)下,無(wú)論是處于靜坐、平穩(wěn)駕駛還是換擋操作下,腦電α和β波的R值(3·00~4·00)都比精力充沛時(shí)的R值(1·00~1·50)要高,說(shuō)明腦電α和β波的R值能較好地反映出疲勞時(shí)的腦電特性.而腦電α波和δ波在疲勞狀態(tài)下的R值(0·40~1·30)與精力充沛狀態(tài)下的R值(0·10~0·70)相比,就相差較小,有交叉區(qū)間,不能明確區(qū)分兩種狀態(tài).這是因?yàn)?delta;波頻率為2~4Hz,容易受到身體移動(dòng)等干擾的影響.因此,用腦電α和β波頻帶的平均功率譜密度比值R作為疲勞的腦電特征量是比較合適的.
依據(jù)以上數(shù)據(jù)與結(jié)論,我們?cè)O(shè)計(jì)了一種簡(jiǎn)單的預(yù)警裝置。
第三章:開(kāi)發(fā)總結(jié)及其擴(kuò)展方向
一.開(kāi)發(fā)總結(jié)
(1)系統(tǒng)分為模擬采集和數(shù)字處理兩個(gè)部分:
模擬采集部分主要完成了對(duì)于腦電信號(hào)的提取放大和去噪的基本任務(wù)并通過(guò)串行轉(zhuǎn)換器AD7683將AD轉(zhuǎn)換后的腦電信號(hào)傳送給FPGA當(dāng)中。
數(shù)字處理部分主要完成了對(duì)于腦電信號(hào)的小波分解,去噪,合成的基本步驟從而實(shí)現(xiàn)了小波去噪功能,得到較為純凈的腦電信號(hào),之后對(duì)腦電信號(hào)進(jìn)行分析處理,主要完成了FFT運(yùn)算,得到10-13Hz,18-22Hz的頻帶信息,并對(duì)其進(jìn)行功率運(yùn)算,最后利用除法器取其比值從而得到基于腦電的疲勞駕駛系數(shù),做出了預(yù)警處理,提高了駕駛?cè)藛T的駕駛安全系數(shù)。
(2) 系統(tǒng)的最高頻率為167MHz左右,總資源使用率為10256個(gè)slice(占總資源數(shù)的14%),4個(gè)block ram(占總資源數(shù)的2%),16個(gè)DSP48ES(占總資源數(shù)的21%),小波分解與合成的速率在262MHz左右。系統(tǒng)工作速率的主要瓶頸在于243點(diǎn)中值選取器,代碼及算法優(yōu)化后,可望進(jìn)一步提高小波去噪的整體工作頻率。
(3)對(duì)于基于腦電信號(hào)的疲勞檢測(cè)我們現(xiàn)在仍然處于探索階段,因此還不能完確把握24個(gè)電極疲勞系數(shù)的融合方法,從而給出一個(gè)更為精確,科學(xué)的駕駛疲勞系數(shù),但以初步完成了對(duì)于駕駛疲勞的測(cè)定,對(duì)今后的設(shè)計(jì)有很大的參考價(jià)值。
(4)如果繼續(xù)優(yōu)化代碼和系統(tǒng)結(jié)構(gòu)將系統(tǒng)使用資源降到最低,那么我們可以使用FPGA的低端產(chǎn)品進(jìn)行開(kāi)發(fā),從而大大降低了開(kāi)發(fā)成本。
(5)本系統(tǒng)通過(guò)有線形式對(duì)腦電進(jìn)行采集,這對(duì)于一個(gè)駕駛中的人來(lái)講是極其不方便的,因此對(duì)于腦電采集我們可以采取無(wú)線方式。
二.創(chuàng)新點(diǎn)總結(jié)
(1)DA濾波器的結(jié)構(gòu)改進(jìn),硬件資源成指數(shù)倍的節(jié)約。主要對(duì)一下兩方面做出了改進(jìn)優(yōu)化:
a).使用串并轉(zhuǎn)換結(jié)構(gòu),從而達(dá)到復(fù)用乘法器的目的,可以指數(shù)倍的節(jié)省硬件資源。
基于這種結(jié)構(gòu)的濾波器無(wú)論是多少階的濾波器都只使用一個(gè)DA乘法器。
b). 多位并行查找表結(jié)構(gòu),速度大大提高。
(2)243點(diǎn)的中值選取器的創(chuàng)新結(jié)構(gòu)(基于復(fù)用9點(diǎn)中值選取器的全流水結(jié)構(gòu)),硬件資源節(jié)省都在90%以上,而且效率保持在很高的一個(gè)水平,約為167MHz。該結(jié)構(gòu)的優(yōu)勢(shì)相對(duì)于3點(diǎn)中值選取器的全流水結(jié)構(gòu)的優(yōu)勢(shì)在于其點(diǎn)數(shù)越多所能節(jié)約的硬件資源會(huì)越多,經(jīng)理論計(jì)算甚至可以節(jié)約資源達(dá)到98%左右。
(3)依據(jù)腦電信號(hào)的自身特點(diǎn),我們提出了小波分解與合成的更為節(jié)省資源的結(jié)構(gòu),使得將腦電信號(hào)的小波去噪模塊移植到低端FPGA上成為可能。在本次課程設(shè)計(jì)當(dāng)中,我們只需要10-13Hz和18-22Hz的頻帶信息,因此在小波分解時(shí)可以舍去其高頻信號(hào)的濾波,而直接判定其為零,這樣可以大大節(jié)約硬件資源。
(4)首次在FPGA實(shí)現(xiàn)了基于腦電的駕駛疲勞檢測(cè)的整個(gè)系統(tǒng)。對(duì)于今后FPGA在腦電信號(hào)的應(yīng)用與開(kāi)發(fā)領(lǐng)域起到了一定的參考作用。
三.?dāng)U展方向
(1)本次開(kāi)發(fā)所設(shè)計(jì)的小波去噪模塊是具有通用性的,不僅可以用于腦電信號(hào)的去噪,還可以應(yīng)用在心電信號(hào),肌電信號(hào),地震信號(hào),雷達(dá)信號(hào),通信信號(hào)及其他各種相關(guān)類似信號(hào)的去噪工作上。
(2)單對(duì)腦電信號(hào)而言經(jīng)過(guò)小波去噪后,可以應(yīng)用于腦機(jī)接口技術(shù)的開(kāi)發(fā),大腦病變信號(hào)的醫(yī)療檢測(cè),以及腦電信號(hào)在假肢上的應(yīng)用等。
評(píng)論