FIR濾波器的FPGA實(shí)現方法
2.3 轉置型結構
根據轉置定理,如果將網(wǎng)絡(luò )中所有的支路方向倒轉,并將輸入x(n)和輸出y(n)相互交換,則其系統函數H(z)不變。通過(guò)轉置定理,將并行結構的FIR濾波器變換就可以得到轉置型FIR濾波器,其結構如圖4所示。本文引用地址:http://dyxdggzs.com/article/191366.htm
基于并行結構的轉置型FIR濾波器實(shí)現了數據的并行輸入,在1個(gè)周期內就能完成1次濾波,并且各級結構相同,在每個(gè)階段都可以讀出數據,可以對濾波階數進(jìn)行擴展或者縮減,實(shí)現任意階數的濾波器。但是由于基于的是并行結構,便有著(zhù)并行結構的一些缺點(diǎn),主要是對于高階的濾波器,其資源占用量是巨大的,設計成本高。雖然這樣,轉置型FIR濾波器仍是應用廣泛的一種濾波器。
2.4 基于FFT的結構
應用快速傅里葉變換(fast fourier transform,FFT)實(shí)現FIR濾波器是一種快速實(shí)現濾波算法的重要途徑。由式(1)可知,FIR濾波器的輸出y(n)是輸入x(n)與系統沖擊響應序列h(n)的卷積,應用FFT可以快速實(shí)現卷積變換。如圖5所示,先將輸入信號x(n)通過(guò)FFT變換為它的頻譜采樣值X(k),然后再與FIR濾波器的頻響采樣值H(k)相乘,H(k)可事先存放在存儲器中,最后再將乘積X(k)H(k)通過(guò)快速傅里葉反變換(IF-FT)還原為時(shí)域序列,即得到輸出y(n)。
為實(shí)現FFT,根據兩有限長(cháng)序列的線(xiàn)性卷積可用其循環(huán)卷積代替而不發(fā)生混疊,必須選擇循環(huán)卷積長(cháng)度N≥N1+N2-1,即將x(n)和h(n)補零至長(cháng)度為N的序列,即:
在基于FFT的FIR濾波器結構中,求X(k),H(k)以及反傅里葉變換y(n)需要的乘法次數均為N/2log2N,而計算X(k)H(k)需要N次乘法,所以基于FFT的總乘法次數為mf=3/2Nlog2N+N。由于h(n)滿(mǎn)足式(3)條件,所以直接卷積所需的乘法次數為md=1/2N1N2。假設N1=N2,則比較這兩種乘法計算量有:
從表1可知,當N142時(shí),FFT法的運算量小于直接卷積的運算量,當N1=42時(shí),FFT法的運算量與直接卷積的運算量相當,當N1>42時(shí),FFT法的運算量大于直接卷積的運算量,并且隨著(zhù)N1增加,FFT法的運算速度越來(lái)越快,特別是N1=8 192時(shí),FFT法的運算速度與直接卷積相比快上將近100倍。
2.5 分布式結構
2.5.1 分布式算法原理
分布式算法(distributed arithmetic,DA)于1973年就由Croisier提出,但是直到FPGA出現,才廣泛的被應用于FPGA中計算乘累積和。
評論