《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于FPGA的信號小波實(shí)時處理方法
基于FPGA的信號小波實(shí)時處理方法
來源:電子技術(shù)應(yīng)用2010年第12期
蔣行國,莫少寧,褚福剛
桂林電子科技大學(xué) 信息與通信學(xué)院,,廣西 桂林541004
摘要: 根據(jù)小波去噪的原理及特點(diǎn),,提出了用 FPGA實(shí)現(xiàn)小波實(shí)時信號處理的方法,。實(shí)驗結(jié)果證明采用FPGA實(shí)現(xiàn)小波信號處理能在低信噪比的情況下有效去除噪聲,同時能夠滿足信號處理系統(tǒng)的實(shí)時性要求。
中圖分類號: 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)點(diǎn),,從而引起了廣泛的關(guān)注和應(yīng)用。目前常用于高速實(shí)時信號處理的硬件芯片分為兩大類:基于大規(guī)??删幊碳呻娐?a class="innerlink" href="http://forexkbc.com/tags/FPGA" title="FPGA" target="_blank">FPGA的純硬件實(shí)現(xiàn)方案和基于高速通用DSP的軟件實(shí)現(xiàn)方案,。采用FPGA的硬件實(shí)現(xiàn)方案硬件接口設(shè)計靈活,可以和任意數(shù)字外圍電路直接使用,,且其具有高度的集成度和高速的處理速度,;而基于高速通用DSP的軟件實(shí)現(xiàn)方案代碼設(shè)計靈活,可以快速修改和調(diào)試程序[6],。小波算法運(yùn)算量較大,,如果采用DSP方案由軟件來實(shí)現(xiàn)該算法就很難滿足系統(tǒng)實(shí)時性的要求?;谝陨显虮疚奶岢隽瞬捎肍PGA方案實(shí)現(xiàn)小波算法。該方案對一維信號具有良好的去噪效果,,同時也能滿足系統(tǒng)的實(shí)時性要求,。
1 小波去噪的基本原理
    對于小波算法,應(yīng)用最廣泛的是信號處理和圖像處理,,而在這兩個領(lǐng)域中應(yīng)用最多的就是信號及圖像的去噪和壓縮,。由于在正交小波中,正交基的選取比傳統(tǒng)方法更接近實(shí)際信號本身,,所以通過小波變換可以更容易地分離出噪聲,,因此,相對于傳統(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)出去噪后的信號,。
    閾值降噪法是一種實(shí)現(xiàn)簡單,、效果較好的小波降噪方法。小波變換具有很強(qiáng)的去數(shù)據(jù)相關(guān)性,,它能將信號的能量集中在小波域一些大的小波系數(shù)中,,而噪聲的能量卻分布于整個小波域內(nèi),因此經(jīng)小波分解后信號的小波系數(shù)比噪聲的大,。于是,,采用閾值的辦法可以把信號的小波系數(shù)保留,,而使絕大部分噪聲小波系數(shù)置零[2]。目前,,常用的閾值函數(shù)有硬閾值函數(shù)和軟閾值函數(shù),。硬閾值法處理的結(jié)果可以很好地保留信號邊緣等局部特征,軟閾值法處理的結(jié)果要相對平滑,,但是比較容易造成模糊等失真現(xiàn)象,。
2 硬件實(shí)現(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ù),。

    為保證一定的濾波效果又不使算法的運(yùn)算量過大,,本文將小波變換模塊的分解、重構(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系列的小波擴(kuò)張性比較好,,可以靈活地權(quán)衡增加支集長度(為了提高能量的集中度)帶來的邊界問題,,且DB4小波濾波器長度較短,能夠提高運(yùn)算速度,,也能夠滿足一定的濾波效果,。
    在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] },;
    由提升小波算法可知,,該算法主要由加、減,、乘運(yùn)算組成,,對于FPGA實(shí)現(xiàn)來說,加減運(yùn)算可以調(diào)用FPGA的加法器IP核,,而浮點(diǎn)系數(shù)的乘運(yùn)算可以通過移位相加來實(shí)現(xiàn),。以浮點(diǎn)系數(shù)-0.32227589為例,-0.32227589=-((1/4)+(1/16)+(1/128)),,所以要實(shí)現(xiàn)數(shù)據(jù)與系數(shù)-0.32227589相乘,,可以通過右移相加的方法來實(shí)現(xiàn),這樣做可以減少對乘法器的調(diào)用,,從而減少了該部分設(shè)計時所需的面積,,提高了芯片的處理速度。其具體實(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的偽隨機(jī)噪聲。
    如圖4所示,,第二個信號indata是含噪聲的信號,,第三個信號outdata是經(jīng)過提升小波變換后的去噪信號。由圖4可以看出,,光纖陀螺零漂信號已經(jīng)完全淹沒在噪聲之中,,在信噪比很低的情況下,經(jīng)過小波去噪之后能夠很好地濾除噪聲信號,。由圖5和圖6可以看出,,F(xiàn)PGA的小波變換模塊從接收到處理完一個數(shù)據(jù)點(diǎn)所需的時間約為6402632628 ps-6388706228 ps=13.93 μs,完全可以滿足一般系統(tǒng)對信號處理實(shí)時性的要求,。

    算法用DSP(TI TMS320C6713)實(shí)現(xiàn)時,,對C代碼進(jìn)行優(yōu)化,處理一個數(shù)據(jù)點(diǎn)所需要的時間約為66μs,,采用C和匯編混合編程對關(guān)鍵循環(huán)進(jìn)行進(jìn)行匯編優(yōu)化,,處理一個數(shù)據(jù)點(diǎn)所需要的時間約為40 μs,。從實(shí)時性的角度來說,用FPGA實(shí)現(xiàn)該算法比用DSP更符合信號處理系統(tǒng)對實(shí)時性的要求,。
    本文提出了一套利用FPGA實(shí)現(xiàn)小波變換的方案,。同傳統(tǒng)濾波方法相比,小波變換法能更好地濾除噪聲,,在選好相應(yīng)的小波后也能滿足實(shí)時性的要求,,是非常理想的信號處理方案。與用DSP處理器的方法相比,,采用FPGA實(shí)現(xiàn)小波變換具有速度快,、數(shù)據(jù)寬度可任意設(shè)置的特點(diǎn),能更好地滿足信號處理實(shí)時性的要求,,并且Verilog語言具有可移植性的特點(diǎn),,具有更強(qiáng)的通用性。該方法可以應(yīng)用在光電跟蹤信號去噪及語音去噪等一維信號實(shí)時處理系統(tǒng)中,,它在較為有效地消除噪聲的同時又能基本滿足系統(tǒng)的實(shí)時性,。
參考文獻(xiàn)
[1] 夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計教程[M].北京:北京航空航天大學(xué)出版社,2005.
[2] 孫延奎.小波分析及其應(yīng)用[M].北京:機(jī)械工業(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的小波圖像實(shí)時處理方法[J].激光與紅外,2009,,39(10):1112-1114.

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