《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于FPGA的信號小波實時處理方法
基于FPGA的信號小波實時處理方法
來源:電子技術(shù)應(yīng)用2010年第12期
蔣行國,莫少寧,褚福剛
桂林電子科技大學(xué) 信息與通信學(xué)院,廣西 桂林541004
摘要: 根據(jù)小波去噪的原理及特點,提出了用 FPGA實現(xiàn)小波實時信號處理的方法。實驗結(jié)果證明采用FPGA實現(xiàn)小波信號處理能在低信噪比的情況下有效去除噪聲,同時能夠滿足信號處理系統(tǒng)的實時性要求。
中圖分類號: TN911.72
文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2010)12-0045-03
Method of signal wavelet real-time processing based on FPGA
JIANG Xing Guo,MO Shao Ning,CHU Fu Gang
Information & Communication College, Guilin University of Electronic Technology,Guilin 541004,China
Abstract: According to the theory and characteristics of wavelet de-niose, we put forward the project of wavelet signal processing by FPGA. The experimental results show that realized wavelet signal processing by FPGA have a good de-niose effective in a low SNR condition,and can meet the real-time requirements of signal processing system.
Key words : wavelet de-niose;FPGA;real-time

    小波變換能夠同時在時域和頻域進(jìn)行局部分析,在對時變信號進(jìn)行分析時具有明顯的優(yōu)勢。小波算法在進(jìn)行信號處理時,由于具有濾波效果好、信號細(xì)節(jié)損失少的優(yōu)點,從而引起了廣泛的關(guān)注和應(yīng)用。目前常用于高速實時信號處理的硬件芯片分為兩大類:基于大規(guī)??删幊碳呻娐?a class="innerlink" href="http://ihrv.cn/tags/FPGA" title="FPGA" target="_blank">FPGA的純硬件實現(xiàn)方案和基于高速通用DSP的軟件實現(xiàn)方案。采用FPGA的硬件實現(xiàn)方案硬件接口設(shè)計靈活,可以和任意數(shù)字外圍電路直接使用,且其具有高度的集成度和高速的處理速度;而基于高速通用DSP的軟件實現(xiàn)方案代碼設(shè)計靈活,可以快速修改和調(diào)試程序[6]。小波算法運算量較大,如果采用DSP方案由軟件來實現(xiàn)該算法就很難滿足系統(tǒng)實時性的要求。基于以上原因本文提出了采用FPGA方案實現(xiàn)小波算法。該方案對一維信號具有良好的去噪效果,同時也能滿足系統(tǒng)的實時性要求。
1 小波去噪的基本原理
    對于小波算法,應(yīng)用最廣泛的是信號處理和圖像處理,而在這兩個領(lǐng)域中應(yīng)用最多的就是信號及圖像的去噪和壓縮。由于在正交小波中,正交基的選取比傳統(tǒng)方法更接近實際信號本身,所以通過小波變換可以更容易地分離出噪聲,因此,相對于傳統(tǒng)方法,小波分析在去噪和壓縮方面有著無可比擬的優(yōu)勢[5]。
    小波分析用于去噪的過程如下:
    (1)分解過程:選定一種小波,對含噪信號進(jìn)行N層小波分解,得到各層分解的小波系數(shù)。
    (2)閾值處理過程:將通過分解得出的各層高頻小波系數(shù)進(jìn)行閾值處理,在進(jìn)行到最后一層時,要同時對該層的高、低頻系數(shù)進(jìn)行閾值處理。
    (3)重構(gòu)過程:將經(jīng)過閾值處理后的小波系數(shù)通過小波逆變換重構(gòu)出去噪后的信號。
    閾值降噪法是一種實現(xiàn)簡單、效果較好的小波降噪方法。小波變換具有很強的去數(shù)據(jù)相關(guān)性,它能將信號的能量集中在小波域一些大的小波系數(shù)中,而噪聲的能量卻分布于整個小波域內(nèi),因此經(jīng)小波分解后信號的小波系數(shù)比噪聲的大。于是,采用閾值的辦法可以把信號的小波系數(shù)保留,而使絕大部分噪聲小波系數(shù)置零[2]。目前,常用的閾值函數(shù)有硬閾值函數(shù)和軟閾值函數(shù)。硬閾值法處理的結(jié)果可以很好地保留信號邊緣等局部特征,軟閾值法處理的結(jié)果要相對平滑,但是比較容易造成模糊等失真現(xiàn)象。
2 硬件實現(xiàn)
    系統(tǒng)框圖如圖1所示。根據(jù)相關(guān)分析,設(shè)計采用了XILINX公司生產(chǎn)的超大規(guī)模 FPGA器件Virtex 5 XC5VSX50T。系統(tǒng)接口采用RS422串口,相對于RS232,通過RS422能夠以更快的波特率來收發(fā)數(shù)據(jù),同時其通信距離也比RS232更遠(yuǎn)。在進(jìn)行小波變換之前需要預(yù)存一定長度的數(shù)據(jù),因此在接口和小波變換模塊之間需要設(shè)置一個FIFO。FPGA通過接口模塊將收到的含噪信號數(shù)據(jù)存入FIFO模塊中,預(yù)存32個數(shù)據(jù)。

    為保證一定的濾波效果又不使算法的運算量過大,本文將小波變換模塊的分解、重構(gòu)層數(shù)設(shè)為5層。小波變換模塊主要包括前向小波變換模塊、閾值處理和逆向小波變換模塊。前向小波變換模塊完成對含噪信號的多層分解,將含噪信號分解為低頻分量和高頻分量。閾值處理模塊去除經(jīng)過多層小波分解出來的各層高頻噪聲,在前4層閾值處理過程中需將處理后的高頻分量存儲到相應(yīng)的RAM中。逆向小波變換模塊完成信號的多層重構(gòu),得出去噪后的信號。逆向小波變換模塊重構(gòu)信號的順序和前向模塊相反,是按最后一層到第一層的順序重構(gòu)信號,在進(jìn)行到相應(yīng)層次時將存放在相應(yīng)RAM中經(jīng)閾值處理后的高頻分量取出與該層低頻分量進(jìn)行重構(gòu),完成5層逆向小波變換之后即可得到去噪后的信號。小波變換模塊的FPGA結(jié)構(gòu)圖如圖2所示。

    本設(shè)計選用DB4小波對含噪信號進(jìn)行提升小波變換,DBN系列的小波擴張性比較好,可以靈活地權(quán)衡增加支集長度(為了提高能量的集中度)帶來的邊界問題,且DB4小波濾波器長度較短,能夠提高運算速度,也能夠滿足一定的濾波效果。
    在MATLAB平臺中通過執(zhí)行語句“lsdb4=liftwave('db4');displs(lsdb4);”就能得到db4提升小波的方案信息。其方案信息如下:
    lsdb4={ [-0.32227589] [-1.11712361 -0.30014226]
    [-0.01880835 0.11764809] [2.13181671 0.63642827]
    [-0.46908348 0.14003924 -0.02479124] [0.73412453]
    [1.36216672] };
    由提升小波算法可知,該算法主要由加、減、乘運算組成,對于FPGA實現(xiàn)來說,加減運算可以調(diào)用FPGA的加法器IP核,而浮點系數(shù)的乘運算可以通過移位相加來實現(xiàn)。以浮點系數(shù)-0.32227589為例,-0.32227589=-((1/4)+(1/16)+(1/128)),所以要實現(xiàn)數(shù)據(jù)與系數(shù)-0.32227589相乘,可以通過右移相加的方法來實現(xiàn),這樣做可以減少對乘法器的調(diào)用,從而減少了該部分設(shè)計時所需的面積,提高了芯片的處理速度。其具體實現(xiàn)框圖如圖3所示。

3 仿真結(jié)果及分析
    本設(shè)計使用ISE 10.1軟件完成了硬件電路的Verilog設(shè)計、綜合,使用Modelsim 6.0D完成時序仿真,F(xiàn)PGA系統(tǒng)時鐘為39 MHz,輸入的信號采樣率為5 kHz,輸入的采樣信號為某型號光纖陀螺的零漂信號,并添加幅值為1 V的偽隨機噪聲。
    如圖4所示,第二個信號indata是含噪聲的信號,第三個信號outdata是經(jīng)過提升小波變換后的去噪信號。由圖4可以看出,光纖陀螺零漂信號已經(jīng)完全淹沒在噪聲之中,在信噪比很低的情況下,經(jīng)過小波去噪之后能夠很好地濾除噪聲信號。由圖5和圖6可以看出,F(xiàn)PGA的小波變換模塊從接收到處理完一個數(shù)據(jù)點所需的時間約為6402632628 ps-6388706228 ps=13.93 μs,完全可以滿足一般系統(tǒng)對信號處理實時性的要求。

    算法用DSP(TI TMS320C6713)實現(xiàn)時,對C代碼進(jìn)行優(yōu)化,處理一個數(shù)據(jù)點所需要的時間約為66μs,采用C和匯編混合編程對關(guān)鍵循環(huán)進(jìn)行進(jìn)行匯編優(yōu)化,處理一個數(shù)據(jù)點所需要的時間約為40 μs。從實時性的角度來說,用FPGA實現(xiàn)該算法比用DSP更符合信號處理系統(tǒng)對實時性的要求。
    本文提出了一套利用FPGA實現(xiàn)小波變換的方案。同傳統(tǒng)濾波方法相比,小波變換法能更好地濾除噪聲,在選好相應(yīng)的小波后也能滿足實時性的要求,是非常理想的信號處理方案。與用DSP處理器的方法相比,采用FPGA實現(xiàn)小波變換具有速度快、數(shù)據(jù)寬度可任意設(shè)置的特點,能更好地滿足信號處理實時性的要求,并且Verilog語言具有可移植性的特點,具有更強的通用性。該方法可以應(yīng)用在光電跟蹤信號去噪及語音去噪等一維信號實時處理系統(tǒng)中,它在較為有效地消除噪聲的同時又能基本滿足系統(tǒng)的實時性。
參考文獻(xiàn)
[1] 夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計教程[M].北京:北京航空航天大學(xué)出版社,2005.
[2] 孫延奎.小波分析及其應(yīng)用[M].北京:機械工業(yè)出版社,2004.
[3] SWEDENS W.The lifting scheme: a new philosophy in biorthogonal wavelet constructions[J].Proceedings of SPIE,1995,2569:68-79.
[4] DAUBECHIES I,SWELDENS W.Factoring wavelet transforms into lifting steps[J].Fourier Analysis and Applications,1998,4(3):247-269.
[5] 高成.Matlab小波分析與應(yīng)用[M].北京:國防工業(yè)出版社,2007.
[6] 季云松,郭成志.基于FPGA的小波圖像實時處理方法[J].激光與紅外,2009,39(10):1112-1114.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。