一種高階數(shù)字濾波系統(tǒng)及方法
【專利摘要】本發(fā)明提供了一種高階數(shù)字濾波系統(tǒng)及方法。通過數(shù)字信號的時頻變換,將并行數(shù)據(jù)基于幀的形式,在頻域上,通過與濾波器系數(shù)頻域響應進行乘累加運算,完成高階FIR濾波的數(shù)字并行實現(xiàn)。大大簡化了傳統(tǒng)并行數(shù)字濾波通過序列重組的繁瑣實現(xiàn)方式。
【專利說明】一種高階數(shù)字濾波系統(tǒng)及方法
【技術領域】
[0001]本發(fā)明涉及一種濾波系統(tǒng)及方法,特別是涉及一種適用于高階數(shù)字濾波的濾波系統(tǒng)及方法。
【背景技術】
[0002]數(shù)字濾波是很多數(shù)字信號處理系統(tǒng)的基本組成,它們廣泛的應用于通信、信號處理、圖像處理、模式識別等很多領域。目前有多種實現(xiàn)FIR濾波的方法,諸如使用DSP芯片、專用集成電路ASIC以及FPGA等,利用DSP來實現(xiàn)將會受限于運行速度以及較漫長的開發(fā)時間,ASIC將會受限于開發(fā)周期、成本以及通用性等問題,而FPGA的實現(xiàn)將會平衡這些因素,由于其開發(fā)周期短、實現(xiàn)方式容易、通用性強等特點,在很多領域都有著廣泛的應用,并且發(fā)展?jié)摿薮蟆?br>
[0003]FIR濾波主要的設計方法就是利用乘累加來實現(xiàn)。在一些高端應用場景中需要在FPGA內(nèi)部實現(xiàn)采樣速率達到2G — 3G的FIR濾波。若采用串行處理的方式,在FPGA內(nèi)部仍然無法實現(xiàn)超寬帶高速數(shù)字濾波,因此必須改進數(shù)字濾波的實現(xiàn)結(jié)構,采用并行方式,降低對運算單元的速率要求,從而可以在FPGA等硬件中得以實現(xiàn)。
[0004]傳統(tǒng)并行FIR數(shù)字濾波在FPGA中的實現(xiàn)方式十分復雜,數(shù)字信號并行N路進入FPGA,在FPGA內(nèi)部通過數(shù)據(jù)的重排列組合形成N路新的并行序列,再與濾波器系數(shù)通過乘加運算,輸出并行的N路數(shù)據(jù),即濾波器的并行輸出數(shù)據(jù)。這種算法在FPGA內(nèi)部的信號重組邏輯十分復雜,且并行N路與濾波器系數(shù)的乘加運算需要使用大量FPGA內(nèi)部的乘法單元,資源開銷大,工程上不易實現(xiàn)。
【發(fā)明內(nèi)容】
[0005]本發(fā)明要解決的技術問題是提供一種實現(xiàn)方式更簡單的高階數(shù)字濾波系統(tǒng)及方法。
[0006]本發(fā)明采用的技術方案如下:一種高階數(shù)字濾波系統(tǒng),包括數(shù)字信號并行輸入模塊和濾波器系數(shù)輸入模塊,其特征在于,還包括:
濾波系數(shù)時頻變換模塊,以向量為濾波器元素的K-1階滑動濾波器;其中,K=l,2,3,…; 短時滑幀處理模塊,形成含2Ν個離散數(shù)據(jù)的時域幀信號;其中N為N路并行數(shù)據(jù);
FFT定點運算模塊,將短時滑幀處理所得的每幀數(shù)據(jù)做2Ν點數(shù)的FFT ;
幀結(jié)構滑動濾波模塊,將FFT定點運算輸出的每一幀數(shù)據(jù)滑動進入滑動濾波器并輸出;
IFFT定點運算模塊,將滑動濾波器輸出的每一幀數(shù)據(jù)通過IFFT變換轉(zhuǎn)換為時域數(shù)據(jù); 數(shù)據(jù)截取及輸出模塊,將IFFT定點運算輸出的每幀數(shù)據(jù)只保留后半幀數(shù)據(jù)輸出。
[0007]—種高階數(shù)字濾波方法,具體方法為,數(shù)字信號并行N路進入FPGA,濾波器系數(shù)通過時頻變換,形成以向量為各元素的滑動濾波器;同時,并行數(shù)據(jù)在FPGA中通過短時滑幀處理,形成含2Ν個離散數(shù)據(jù)的時域幀信號,實時、并行的做FFT定點運算,形成含2Ν個離散數(shù)據(jù)的頻域幀信號;頻域幀信號再經(jīng)過幀結(jié)構滑動濾波,完成含2N個頻域數(shù)據(jù)的濾波器幀輸出,每幀數(shù)據(jù)再實時流水地通過IFFT定點運算,完成頻域幀信號的時域變換,最后經(jīng)數(shù)據(jù)截取及輸出后半幀時域信號;其中,
濾波器系數(shù)時頻變換的具體方法為:將KN-1階濾波器系數(shù)按每N個系數(shù)后面補N個O,再通過2N點DFT,形成濾波器的K個元素,且每個元素均為2N點的向量;其中,K=I, 2,3,…;短時滑幀處理的具體方法為:并行N路數(shù)據(jù),在FPGA內(nèi)部緩存一幀,將當前時鐘周期緩存的數(shù)據(jù)與當前時鐘周期到來的數(shù)據(jù)按采樣先后順序組成含2N個數(shù)據(jù)的一幀數(shù);
FFT定點運算的具體方法為:將短時滑幀處理所得的每幀數(shù)據(jù)做2N點數(shù)的FFT ;
幀結(jié)構滑動濾波的具體方法為:將FFT定點運算實時流水輸出的每一幀數(shù)據(jù),滑動進入通過由濾波器系數(shù)時頻變換所得的以向量為元素的滑動濾波器;
IFFT定點運算的具體方法為:將幀結(jié)構滑動濾波輸出的每幀數(shù)據(jù),通過IFFT變換,轉(zhuǎn)換為時域數(shù)據(jù);
數(shù)據(jù)截取及輸出的具體方法為:將IFFT定點運算輸出的每幀數(shù)據(jù)只保留后半幀數(shù)據(jù),這就使得并行N路輸入,并行N路輸出。
[0008]所述2N點數(shù)的FFT通過η次蝶形計算得到,其中,N為2的η次方。
[0009]所述IFFT變換通過蝶形計算得到。
[0010]與現(xiàn)有技術相比,本發(fā)明的有益效果是:對于并行N路輸入高階數(shù)字濾波的FPGA實現(xiàn)方法,本發(fā)明的方法較傳統(tǒng)通過序列重組,并行經(jīng)過N路高階濾波器的實現(xiàn)架構,其算法架構更加簡單、合理,資源開銷更少,工程可實現(xiàn)性更高。
【專利附圖】
【附圖說明】
[0011]圖1為本發(fā)明其中一實施例的數(shù)字處理架構框圖。
[0012]圖2為本發(fā)明其中一實施例的FFT及IFFT蝶形算法示意圖。
[0013]圖3為本發(fā)明其中一實施例的幀結(jié)構滑動濾波處理結(jié)構流程框圖。
[0014]圖4為本發(fā)明其中一實施例的濾波器系數(shù)時頻變換處理流程框圖。
[0015]圖5為本發(fā)明采用基于幀結(jié)構的并行高階低通濾波方法所得的高斯白噪聲頻域響應效果圖。
[0016]圖6為采用傳統(tǒng)并行高階低通濾波方法所得的高斯白噪聲頻域響應效果圖。
[0017]圖7為本發(fā)明采用基于幀結(jié)構的并行高階帶通濾波方法所得的高斯白噪聲頻域響應效果圖。
[0018]圖8為采用傳統(tǒng)并行高階帶通濾波方法所得的高斯白噪聲頻域響應效果圖。
【具體實施方式】
[0019]為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0020]本說明書(包括任何附加權利要求、摘要和附圖)中公開的任一特征,除非特別敘述,均可被其他等效或者具有類似目的的替代特征加以替換。即,除非特別敘述,每個特征只是一系列等效或類似特征中的一個例子而已。
[0021]本具體實施例以4路量化的高斯白噪聲數(shù)據(jù)并行通過63階的FIR濾波處理為例進行具體說明。
[0022]如圖1所示的,高階數(shù)字濾波系統(tǒng),采用的具體濾波處理方法為,數(shù)字信號并行N路進入FPGA,濾波器系數(shù)通過時頻變換,形成以向量為各元素的滑動濾波器;同時,并行數(shù)據(jù)在FPGA中通過短時滑幀處理,形成含2N個離散數(shù)據(jù)的時域幀信號,實時、并行的做FFT定點運算,形成含2N個離散數(shù)據(jù)的頻域幀信號;頻域幀信號再經(jīng)過幀結(jié)構滑動濾波,完成含2N個頻域數(shù)據(jù)的濾波器幀輸出,每幀數(shù)據(jù)再實時流水地通過IFFT定點運算,完成頻域幀信號的時域變換,最后經(jīng)數(shù)據(jù)截取及輸出后半幀時域信號,即為最終的濾波器輸出結(jié)果。較傳統(tǒng)算法,本發(fā)明算法架構更加簡單、合理,資源開銷更少,工程可實現(xiàn)性更高。
[0023]濾波器系數(shù)時頻變換的具體方法為:將KN-1階濾波器系數(shù)按每N個系數(shù)后面補N個0,再通過2N點DFT,形成濾波器的K個元素,且每個元素均為2N點的向量;這樣就形成了以向量為濾波器元素的K-1階滑動濾波器。其中,K=l,2,3,…。在本具體實施例中,如圖4所示,63階濾波系數(shù)重組為16組,每組4個點。將每組4個點后補4個O,做8點的DFT,所得16組數(shù)據(jù),即構成幀結(jié)構滑動濾波器的16個元素,且每個元素為8點的向量。
[0024]短時滑幀處理的具體方法為:并行N路數(shù)據(jù),在FPGA內(nèi)部緩存一巾貞,將當前時鐘周期緩存的數(shù)據(jù)與當前時鐘周期到來的數(shù)據(jù)按采樣先后順序組成含2Ν個數(shù)據(jù)的一幀數(shù),這樣流水形成的每一幀的前半幀數(shù)據(jù)與前一幀的后半幀數(shù)據(jù)相同。在本具體實施例中,4路并行數(shù)據(jù)在FPGA內(nèi)部緩存一個時鐘周期的數(shù)據(jù),每一個時鐘周期的輸出為上一時鐘周期緩存的4個量化數(shù)據(jù)及當前時鐘周期到來的4個量化數(shù)據(jù),按采樣先后順序組成的一幀8個數(shù),這種變換使得前一幀數(shù)據(jù)的后半幀與后一幀數(shù)據(jù)的前半幀數(shù)據(jù)相同。這種滑半幀處理即得到該步驟的輸出。
[0025]FFT定點運算的具體方法為:將短時滑幀處理所得的每幀數(shù)據(jù)做2Ν點數(shù)的FFT。在本具體實施例中,所述2Ν點數(shù)的FFT通過η次蝶形計算得到,其中,N為2的η次方。通常由ADC量化的N路數(shù)據(jù),N為2的η次方,因此2Ν點的FFT可以通過η次蝶形計算得到,且FPGA的資源消耗量小,算法可實現(xiàn)性高。在本具體實施例中,將每幀8個量化數(shù)據(jù)經(jīng)8點的FFT,得到時域信號的頻域變換。圖2所示為8點FFT的蝶形算法。
[0026]幀結(jié)構滑動濾波的具體方法為:將FFT定點運算實時流水輸出的每一幀數(shù)據(jù),滑動進入通過由濾波器系數(shù)時頻變換所得的以向量為元素的滑動濾波器。每一幀數(shù)據(jù)各元素和濾波器各向量組元素對應相乘,再對應相加,流水輸出含2Ν個數(shù)據(jù)的每一幀數(shù)。在本具體實施例中,經(jīng)FFT處理得到的每幀8點的頻域數(shù)據(jù)再經(jīng)幀結(jié)構滑動濾波處理,通過如圖3的向量乘累加計算,輸出的每幀8點數(shù)據(jù)即為幀結(jié)構滑動濾波的輸出。幀結(jié)構滑動濾波器元素均為向量,且每個向量含8個系數(shù),濾波器階數(shù)與原始高階濾波器階數(shù)相關。
[0027]IFFT定點運算的具體方法為:將幀結(jié)構滑動濾波輸出的每幀數(shù)據(jù),通過IFFT變換,轉(zhuǎn)換為時域數(shù)據(jù)。在本具體實施例中,所述IFFT變換通過蝶形計算得到。同F(xiàn)FT定點運算類似,只是IFFT變化蝶形運算是加權系數(shù)成共軛關系。在本具體實施例中,由幀結(jié)構滑動濾波輸出的數(shù)據(jù)經(jīng)8點IFFT定點運算,得到時域信號。圖2所示為8點的IFFT蝶形算法,與FFT的區(qū)別在于加權因子的計算略有不同。
[0028]數(shù)據(jù)截取及輸出的具體方法為:將IFFT定點運算輸出的每幀數(shù)據(jù)只保留后半幀數(shù)據(jù),這就使得并行N路輸入,并行N路輸出。將IFFT定點運算得到的每幀8點數(shù)據(jù),只保留后半幀的4個點,即為最終的濾波器并行輸出,且并行4路輸入,并行4路輸出,滿足數(shù)據(jù)吞吐率的一致性。
[0029]由圖5—圖8的實驗結(jié)果可得到這樣的結(jié)論:不論是實現(xiàn)并行低通數(shù)字濾波還是并行帶通數(shù)字濾波,本發(fā)明采用基于幀結(jié)構的并行數(shù)字濾波處理架構,所得濾波器頻域響應特性和傳統(tǒng)濾波架構所得頻域響應特性幾乎相同。而本發(fā)明采用幀形式的滑動濾波處理方法,相比于傳統(tǒng)通過序列重組的方法,在實現(xiàn)方式上更為簡單,消耗的系統(tǒng)資源更少,工程上更易實現(xiàn)。
【權利要求】
1.一種高階數(shù)字濾波系統(tǒng),包括數(shù)字信號并行輸入模塊和濾波器系數(shù)輸入模塊,其特征在于,還包括: 濾波系數(shù)時頻變換模塊,以向量為濾波器元素的K-1階滑動濾波器;其中,K=l,2,3,…; 短時滑幀處理模塊,形成含2Ν個離散數(shù)據(jù)的時域幀信號;其中N為N路并行數(shù)據(jù); FFT定點運算模塊,將短時滑幀處理所得的每幀數(shù)據(jù)做2Ν點數(shù)的FFT ; 幀結(jié)構滑動濾波模塊,將FFT定點運算輸出的每一幀數(shù)據(jù)滑動進入滑動濾波器并輸出; IFFT定點運算模塊,將滑動濾波器輸出的每一幀數(shù)據(jù)通過IFFT變換轉(zhuǎn)換為時域數(shù)據(jù); 數(shù)據(jù)截取及輸出模塊,將IFFT定點運算輸出的每幀數(shù)據(jù)只保留后半幀數(shù)據(jù)輸出。
2.一種高階數(shù)字濾波方法,具體方法為,數(shù)字信號并行N路進入FPGA,濾波器系數(shù)通過時頻變換,形成以向量為各元素的滑動濾波器;同時,并行數(shù)據(jù)在FPGA中通過短時滑幀處理,形成含2Ν個離散數(shù)據(jù)的時域幀信號,實時、并行的做FFT定點運算,形成含2Ν個離散數(shù)據(jù)的頻域幀信號;頻域幀信號再經(jīng)過幀結(jié)構滑動濾波,完成含2Ν個頻域數(shù)據(jù)的濾波器幀輸出,每幀數(shù)據(jù)再實時流水地通過IFFT定點運算,完成頻域幀信號的時域變換,最后經(jīng)數(shù)據(jù)截取及輸出后半幀時域信號;其中, 濾波器系數(shù)時頻變換的具體方法為:將KN-1階濾波器系數(shù)按每N個系數(shù)后面補N個O,再通過2Ν點DFT,形成濾波器的K個元素,且每個元素均為2Ν點的向量;其中,K=I, 2,3,…;短時滑幀處理的具體方法為:并行N路數(shù)據(jù),在FPGA內(nèi)部緩存一幀,將當前時鐘周期緩存的數(shù)據(jù)與當前時鐘周期到來的數(shù)據(jù)按采樣先后順序組成含2Ν個數(shù)據(jù)的一幀數(shù); FFT定點運算的具體方法為:將短時滑幀處理所得的每幀數(shù)據(jù)做2Ν點數(shù)的FFT ; 幀結(jié)構滑動濾波的具體方法為:將FFT定點運算實時流水輸出的每一幀數(shù)據(jù),滑動進入通過由濾波器系數(shù)時頻變換所得的以向量為元素的滑動濾波器; IFFT定點運算的具體方法為:將幀結(jié)構滑動濾波輸出的每幀數(shù)據(jù),通過IFFT變換,轉(zhuǎn)換為時域數(shù)據(jù); 數(shù)據(jù)截取及輸出的具體方法為:將IFFT定點運算輸出的每幀數(shù)據(jù)只保留后半幀數(shù)據(jù),這就使得并行N路輸入,并行N路輸出。
3.根據(jù)權利要求2所述的濾波方法,所述2Ν點數(shù)的FFT通過η次蝶形計算得到,其中,N為2的η次方。
4.根據(jù)權利要求3所述的濾波方法,所述IFFT變換通過蝶形計算得到。
【文檔編號】H03H17/02GK104333348SQ201410694085
【公開日】2015年2月4日 申請日期:2014年11月27日 優(yōu)先權日:2014年11月27日
【發(fā)明者】劉憲軍, 陳俊霖, 喻令, 向川云 申請人:中國電子科技集團公司第二十九研究所