胥珂銘,高 博,龔 敏
(四川大學物理學院,成都 610065)
高分辨率的數(shù)據(jù)成為了現(xiàn)代生物醫(yī)學信號處理系統(tǒng)中的重要參數(shù)之一[1-4],SAR ADC在這種使用環(huán)境下精度不足以滿足要求[5]。Sigma-Delta ADC是最合適的高分辨率結構,而且容易集成到信號處理系統(tǒng)中[6]。Sigma-Delta ADC結構分為調制器和抽取濾波器兩個主要部分,目前調制器的設計可以達到120 dB以上[7-9],這對抽取濾波器的設計提出了高性能要求。在Sigma-Delta ADC中,抽取濾波器是功耗最大、占面積最大的模塊。單極濾波器難以在高阻帶抑制、平坦的通帶、降采樣上達到設計目標[10-11]。一些文章采用多級濾波器結構,其中第一級常為CIC濾波器加補償濾波器進行降采樣[12-14]。CIC濾波器無乘法器,用于降采樣可以有效降低濾波器面積,但是其有明顯的帶內衰減,需要加入有乘法器的補償濾波器設計,又增加了部分面積[15];有文章把CIC濾波器的補償濾波器當作第二級,即CIC濾波器、FIR補償濾波器、半帶或FIR濾波器的三級結構,這種結構相比第一級為CIC濾波器加補償FIR濾波器的結構來說,面積更小,但是阻帶抑制不如之前的結構[16];也有文章在設計中把FIR濾波器替換成無限脈沖響應數(shù)字濾波器(Infinite Impulse Response Filter,IIR Filter),相比FIR濾波器,IIR濾波器計算更簡單,面積相對較小,但IIR濾波器有非線性相位的問題,需要額外增加相位補償器,或用于對相位不敏感的系統(tǒng)中[17]。銳化CIC濾波器對通帶寬度和阻帶抑制都有改善[18],但是對面積和功耗都有一定的妥協(xié)。
本文提出一種低面積、高精度的抽取濾波器結構,濾波器的降采樣率為32。該濾波器級聯(lián)了4階4抽SCIC濾波器,29階4抽FIR濾波器和148階2抽的半帶濾波器。其中SCIC濾波器有良好的通帶帶寬和混疊帶抑制且不需要補償濾波器,后兩級濾波器使用乘法器復用級數(shù),極大壓縮乘法器數(shù)量,在不影響性能的情況下減少邏輯單元數(shù)量,降低FPGA資源消耗。
該濾波器的降采樣率為32,預設濾波器采樣頻率為20 MHz,第一級SCIC濾波器設計為最大平坦通帶,后兩級FIR濾波器工作在更低的頻率,且使用了很少的乘法器,以降低資源消耗。整體系統(tǒng)結構如圖1所示,圖中L為濾波器階數(shù),x(n)為SCIC濾波器輸入,y(n)為SCIC輸出。第一級SCIC濾波器采用了遞歸結構,第二級為一個盡可能少系數(shù)的FIR濾波器。第一級與第二級的主要作用是降采樣,同時防止信號混疊,其中第一級SCIC濾波器是主要的混疊可能產(chǎn)生的結構。第三級則是一個半帶濾波器,因為半帶濾波器有一半的濾波器系數(shù)為0,且其通帶總是在奈奎斯特頻率的一半處。半帶濾波器沒有通帶波紋,在第一級與第二級的降采樣下,乘法器復用數(shù)量可以更大,更加節(jié)省FPGA資源,這一級在降采樣的同時對阻帶進行有效的抑制。
圖1 多級級聯(lián)濾波器整體結構
第一級為一個SCIC濾波器,該濾波器結構由KWENTUS等人提出[19],傳遞函數(shù)的z域表達式如下:
其中傳遞函數(shù)HCIC(z)為
M為抽取率。
多階SCIC與4階CIC濾波器對比的頻率響應如圖2所示,圖2中縱坐標為阻帶衰減,橫軸為歸一化頻率。4階SCIC濾波器與4階CIC濾波器相比,其通帶更寬,阻帶抑制也更高。SCIC濾波器級數(shù)的旁瓣衰減比CIC濾波器更大,每多一級旁瓣衰減增加約22 dB。級數(shù)同樣影響混疊帶抑制,在固定4抽取的情況下,3階4抽SCIC旁瓣衰減有58 dB,混疊帶抑制有135 dB,而4階4抽SCIC旁瓣衰減有80 dB,混疊帶抑制有180 dB,雖然5階4抽的SCIC濾波器旁瓣衰減有100 dB,且阻帶抑制超過200 dB,但對于本濾波器設計,第一級濾波器的降采樣和防混疊目標只需要4階4抽SCIC就可以滿足,沒有繼續(xù)提高階數(shù)的需求。所以應用在本次設計中,設計為4階4抽SCIC,其通帶可以滿足濾波器系統(tǒng)通帶290 kHz,在通帶處的衰減僅為0.011 dB,因此完全可以省去補償濾波器,同樣條件下CIC濾波器通帶有0.18 dB的衰減,需要添加補償濾波器。雖然SCIC濾波器需要復數(shù)個CIC濾波器,但是省略了補償濾波器的結構,F(xiàn)IR補償濾波器存在大量加法器與乘法器,因此減少補償濾波器后整體的資源消耗是降低的。4階4抽的SCIC濾波器混疊抑制超過150 dB,通帶衰減小,可以達到設計目標。
圖2 SCIC頻率響應
該SCIC濾波器是非遞歸結構[19],相比遞歸結構,非遞歸結構的所有模塊都需要全字長,且因為SCIC結構是3個CIC濾波器級聯(lián),因此每增加一位輸入位寬,相對于CIC濾波器需要增加3倍的寄存器,這對于節(jié)省資源是不利的。為了節(jié)省資源,本設計中把SCIC修改為遞歸結構。對于式(2)中(1-z-M)可以拆分為
其中(1-z-1)可與式(2)分母約分,得到:
根據(jù)第一稀有恒等式,對于(1+z-M/2n),如果經(jīng)過M/2n抽取率會變?yōu)?1+z-1),因此把CIC濾波器結構改變?yōu)槎鄠€(1+z-1)級聯(lián),每個級聯(lián)之間加入2抽取,CIC結構只有(1+z-1)的模塊。這就是遞歸結構的CIC濾波器。遞歸CIC濾波器每個(1+z-1)模塊固定增加一位字長,不需要所有模塊增加全字長,因此節(jié)省了寄存器,相比非遞歸結構達到了節(jié)省資源的作用。
對于SCIC,其為3個CIC濾波器級聯(lián),把CIC濾波器改為遞歸結構后,其遞歸結構如圖1所示,其傳輸函數(shù)如式(1)所示。
第二級為一個29階4抽的FIR濾波器,F(xiàn)IR濾波器傳遞函數(shù)如下:
其中h(n)為濾波器系數(shù)。
該級FIR濾波器主要作用是降采樣,因此對于過渡帶不做過多要求,設計主要目標在階數(shù)、通帶波紋和阻帶抑制平衡。其中最重要的是通帶波紋,高精度的濾波器需要通帶足夠平坦,因此不能有太大的通帶波紋,這一級的通帶波紋設計為0.01 dB。FIR濾波器的阻帶抑制不需要太大,設計為60 dB防止混疊,在滿足這兩個要求的情況下,設計階數(shù)為29階,使用乘法器復用結構后正好只需要一個乘法器即可以完成29階系數(shù)的計算,對于乘法器的節(jié)省有很好的作用。乘法器復用結構將在下面介紹。最終FIR濾波器參數(shù)如表1所示。
表1 第二級參數(shù)
為了節(jié)省資源,F(xiàn)IR濾波器與下一級半帶濾波器均采用了乘法器復用結構,其結構示意圖見圖3,圖中datain為輸入信號,coefficient為FIR濾波器參數(shù)。乘法器復用包含乘法器部分和累加器部分。對一個復用的乘法器,在每個主時鐘同步更換系數(shù)和輸入進行乘法計算,最后再把整組的輸出數(shù)據(jù)累加得到結果,如果一個濾波器結構中使用到了多個乘法器,只需要在輸出時把多個累加器輸出相加即可得到輸出信號。這種結構下,一個乘法器能計算的系數(shù)由分頻時鐘與主時鐘的倍差決定,本設計中,濾波器處的分頻時鐘是主時鐘的1/4,因此一個乘法器可以計算4個系數(shù),又因FIR濾波器的系數(shù)是對稱的,所以一個乘法器可以支持9階FIR濾波器的計算。更進一步,因為FIR濾波器的抽取是對完成計算的輸出進行抽取,而未被抽取的輸出則被浪費了。因此對于FIR濾波器,使用一組寄存器保存輸入,且在只抽取后更新數(shù)據(jù),乘法器的輸入信號變?yōu)樵摻M寄存器,則乘法器復用可以用一個乘法器計算(主頻時鐘/分頻時鐘×本級抽取率)個系數(shù)。如第二級設計中,一個乘法器可以計算16個系數(shù),而29階FIR濾波器存在15個不同的系數(shù),則該FIR濾波器只需要一個乘法器即可完成計算。乘法器復用結構可以有效減少乘法器數(shù)量,但是會增加寄存器數(shù)量,因此需要考慮為了減少乘法器而增加寄存器是否劃算。
圖3 乘法器復用結構
第三級為一個148階2抽的半帶濾波器,半帶濾波器是一種特殊的FIR濾波器,其傳遞函數(shù)與式(3)相同,半帶濾波器的特點是偶數(shù)次系數(shù)全為0,奇數(shù)次系數(shù)不為0,其中不為0的系數(shù)與FIR濾波器一樣是對稱的。因此半帶濾波器的系數(shù)實際上只有階數(shù)的1/4,且半帶濾波器的通帶一定在歸一化頻率的1/2左右。
半帶濾波器通帶波紋很小,因此主要考慮過渡帶帶寬和阻帶抑制。第三級是最后一級,為了防止混入噪聲,所以阻帶抑制應該足夠高,而且過渡帶不應過大,根據(jù)乘法器復用結構,第三級的主頻時鐘和分頻時鐘差距更大,因此一個乘法器可以計算更多的系數(shù),在這樣的條件下,可以適當放寬階數(shù),主要達到過渡帶和阻帶的要求。在這樣的設計目標下,該半帶濾波器有120 dB的阻帶抑制,過渡帶為62.5 kHz,其設計參數(shù)如表2所示。對于該濾波器,同樣使用乘法器復用結構,根據(jù)之前的計算,148階半帶濾波器有74個系數(shù),38個不重復系數(shù)??紤]到最后一級如果使用寄存器在抽取后更新輸入以節(jié)省乘法器的設計方法,會增加(148×24)位寄存器,而只能節(jié)省一個乘法器,寄存器面積增加太大而不劃算。因此使用3個乘法器是更節(jié)省面積的辦法,相比正常的38個乘法器有效節(jié)省了邏輯單元。
表2 第三級半帶濾波器參數(shù)
三級濾波器級聯(lián)頻譜響應如圖4所示,圖中縱軸為阻帶衰減,橫軸為頻率。從圖4可以看到,級聯(lián)濾波器通帶內很平整,其中第一級與第二級濾波器主要用于降采樣,同時防止奈奎斯特頻率內出現(xiàn)信號混疊。前兩級的過渡帶寬度都大于第三級的奈奎斯特頻率,因此,阻帶抑制主要依靠第三級濾波器的設計。第三級半帶濾波器有120 dB的阻帶抑制,且其過渡帶很小,可以有效防止混入噪聲。
圖4 三級濾波器級聯(lián)頻譜響應
濾波器使用Verilog HDL代碼進行實現(xiàn),使用Quartus軟件進行綜合,綜合結果如表3所示。對濾波器代碼進行前仿,使用MATLAB的Simulink設計的五階反饋調制器輸出作為濾波器信號輸入,該調制器輸出250 kHz理想信號的SNR為149 dB,調制器輸出頻譜信號如圖5所示。把Verilog HDL代碼下載到Altera DE10 FPGA開發(fā)板,使用DE10開發(fā)板HPS端的網(wǎng)線把經(jīng)過濾波器結構處理后的數(shù)據(jù)傳輸?shù)诫娔X,使用輸出的數(shù)據(jù)進行SNR計算,得到SNR結果為134.6 dB,有效字長(Enable of Bits Number,ENOB)為22位,仿真SNR計算結果如圖6所示。圖6存在一個直流分量,而圖5不存在,這是因為圖5使用Simsides進行頻譜繪制,而圖6使用MATLAB的SNR函數(shù)進行繪制。
圖6 仿真SNR計算結果
表3 Quartus軟件綜合結果
圖5 調制器輸出信號頻譜
對比圖5和圖6可以發(fā)現(xiàn),圖5調制器輸出的信號在通帶內隨著頻率增大而增大,而圖6中濾波器輸出信號的通帶內頻譜是基本平坦的。造成這樣的原因在于實際設計濾波器時,為了平衡硬件消耗和性能,對通過濾波器的信號進行了截取。本文中,輸入的調制器信號為15位位寬,每級濾波器輸出都截取高24位信號,這樣做會導致低頻的噪聲被拉高,表現(xiàn)出如圖6一般的平坦通帶。截取位寬選擇24位是因為根據(jù)調制器SNR推算,最終輸出有效位寬在24.5位以內,因此選擇最終輸出24位信號,最后計算ENOB達到了22位,效果較好。截取信號可以節(jié)省大量的寄存器,比如在本文中,后兩級濾波器的參數(shù)量化為24位,和24位信號卷積后,輸出信號超過50位寬,這時進行截取,則可以節(jié)省一半寄存器。位寬截取對SNR的影響較小,在實際設計中對輸出信號進行截取是有必要的。
為對比本文設計節(jié)省的FPGA資源,在表3中加入了一個未使用SCIC濾波器與乘法器復用結構的對照組。該對照組由CIC濾波器、補償FIR濾波器、FIR濾波器和半帶濾波器組成,其中CIC濾波器結構為4階4抽;補償FIR濾波器為新設計的20階、通帶波紋0.01 dB、阻帶抑制20 dB的FIR濾波器;后兩級FIR濾波器與半帶濾波器參數(shù)未作改變,但并沒有使用乘法器復用。最終該設計綜合后占用FPGA如表3中對照設計所示,可以看到不管是邏輯單元數(shù)量還是寄存器數(shù)量相比本文設計都有了較大的增加,其中本文設計的邏輯單元比對照組節(jié)省了26.3%,而寄存器節(jié)省了15.6%。
本文提出了一種適用于Sigma Delta ADC抽取濾波器的高分辨率、低面積的三級濾波器結構,該濾波器在高精度的前提下,節(jié)省了大量FPGA資源。設計主要在第一級節(jié)省了補償濾波器和FIR濾波器的乘法器復用結構,這兩者都減少了乘法器的數(shù)量,大大減少了濾波器邏輯單元的消耗;乘法器復用結構同樣節(jié)省了大量的寄存器,因此本文的設計節(jié)省了邏輯單元和寄存器。
在使用5階調制器的理想輸出對濾波器進行仿真的情況下,濾波器輸出的有效位寬達到22位,使用Quartus進行板級綜合,相比普通設計節(jié)省了26.3%的邏輯單元和15.6%的寄存器,其結果符合高精度、低資源消耗的設計目標。
本設計已通過FPGA板級驗證,對于乘法器復用和SCIC濾波器可節(jié)省補償濾波器結構,在門級綜合里也可大量節(jié)省面積,設計出低面積、高精度的抽取濾波器結構。