近年來,軟件無線電已經(jīng)成為通信領(lǐng)域一個(gè)新的發(fā)展方向,數(shù)字下變頻技術(shù)(Digital Down Converter-DDC)是軟件無線電的核心技術(shù)之一,也是計(jì)算量最大的部分?;?a class="innerlink" href="http://ihrv.cn/tags/FPGA" title="FPGA" target="_blank">FPGA的DDC設(shè)計(jì)一般采用CIC、HB、FIR級聯(lián)的形式組成。同時(shí),由于CIC濾波器的通帶性能實(shí)在太差,所以中間還要加上一級PFIR濾波器以平滑濾波器的通帶性能。而眾所周知用FPGA從事算法的開發(fā)是一件難度比較大的工作,而Xilinx公司開發(fā)的System Generator工具為算法的快速開發(fā)及仿真帶來了巨大的方便。本文首先對CIC、HB、FIR濾波器的原理及設(shè)計(jì)作了簡單的說明,最后用Matlab結(jié)合System generator對本文所設(shè)計(jì)的DDC濾波器作了一個(gè)仿真。
1 總體結(jié)構(gòu)設(shè)計(jì)
數(shù)字下變頻技術(shù)作為數(shù)字信號處理中的一個(gè)關(guān)鍵技術(shù),它通常由以下兒部分組成。首先,CIC濾波器,它實(shí)現(xiàn)簡單而且能實(shí)現(xiàn)較大的下抽率。其次,由于CIC濾波器帶內(nèi)平坦性能太差,因此在CIC濾波器之后一般要加上PFIR來平滑帶內(nèi)平坦度。最后,由于CIC濾波器的抽取因子小宜取得過大,岡此還要用HB濾波器的級聯(lián)來進(jìn)一步增加抽取率。下面本文以如何設(shè)計(jì)一個(gè)原信號采樣率為72 MHz的、有效信號帶寬為2.05 MHz的、下抽率為14的、主旁瓣衰減80 dB以上的、通帶平坦度小于0.2 dB的下抽濾波器為例說明下抽濾波器的設(shè)計(jì)。
實(shí)際中常用的DDC的實(shí)現(xiàn)框圖如圖1所示。
2 CIC濾波器設(shè)計(jì)
CIC濾波器是近年來在下變頻中用得最多的一種技術(shù),CIC濾波器在多速率信號處理中具有特別重要的位置,它可以充當(dāng)內(nèi)插濾波器,也可以充當(dāng)抽取濾波器,主要取決于積分器和梳狀濾波器的連接順序。由于CIC(級聯(lián)積分梳狀)濾波器不需要乘法運(yùn)算和存儲系數(shù),因此實(shí)現(xiàn)非常簡單,在采樣率變換過程中經(jīng)常使用CIC濾波器進(jìn)行數(shù)字濾波。
考慮到CIC濾波器的除數(shù)及抽取因子不宜取得過大,所以實(shí)際巾的下抽濾波器一般都是采用CI協(xié)同HB來完成下抽的任務(wù)。比如這里我們要下抽14,一般的做法是先用CIC下抽7然后用HB下抽2 如果這時(shí)一級HB仍然不滿足要求的話,我們可以通過適當(dāng)增加HB的級聯(lián)數(shù)目來完成下抽。例如,如果要下抽28,那么可以先下抽7,然后通過兩級HB來完成下抽4,進(jìn)而達(dá)到下抽28的目的。
在MATLAB中通過設(shè)置下抽因子,需要的通帶截止頻率等參數(shù)可以方便的設(shè)計(jì)出想要的CIC濾波器。下圖為本次設(shè)計(jì)中設(shè)計(jì)出的CIC濾波器的幅頻響應(yīng)。
通過將其通帶細(xì)節(jié)圖放大,可以發(fā)現(xiàn)在2.05 MHz處通帶的衰減為4.508 dB。
3 PFIR濾波器設(shè)計(jì)
PFIR濾波器的設(shè)計(jì)目標(biāo)是在滿足通帶波紋和過渡帶寬盡可能窄的同時(shí)使得阻帶衰減盡可能大,PFIR的階數(shù)越高,PFIR濾波器的通帶波紋,過渡帶寬,阻帶衰減等特性就越好。
PFIR存在的意義是它能夠改善CIC濾波器帶內(nèi)平坦度較差的問題,因此,其帶內(nèi)的幅頻響應(yīng)的走勢和CIC正好相反,從而在一定程度上平滑CIC濾波器通帶內(nèi)衰減的趨勢。在設(shè)計(jì)好了上一級CIC濾波器的基礎(chǔ)上,通過輸入已經(jīng)完成的上級濾波器參數(shù)在MATLAB中可以自動(dòng)生成與其互補(bǔ)的PFIR濾波器,它的幅頻響應(yīng)如圖4所示。
通過將這里設(shè)計(jì)的PFIR濾波器與上節(jié)設(shè)計(jì)的CIC濾波器進(jìn)行級聯(lián),級聯(lián)后的濾波器的幅頻響應(yīng)較之于之前設(shè)計(jì)的CIC濾波器其通帶性能有了很大的提高,級聯(lián)前的CIC濾波器的通帶波紋為4.508 dB,而級聯(lián)后僅為0.11 dB將其通帶細(xì)節(jié)圖如圖5所示。
4 HB濾波器設(shè)計(jì)
半帶濾波器是一種特殊的FIR濾波器,在多速率信號處理中有著至關(guān)重要的作用。在常見的下抽濾波器設(shè)計(jì)中第二級一般采用HB濾波器要用到第二級的原因是綜合考慮到帶內(nèi)平坦度和阻帶衰減度等因素使得第一級CIC抽取濾波器的級數(shù)和抽取因子不宜過大,HB濾波器的帶內(nèi)平坦度好,計(jì)算效率高,在高速率信號處理中發(fā)揮著重要的作用,在抽取因子為2的冪次方的場合更是如魚得水。
HB濾波器的通帶和阻帶具有對稱的關(guān)系,因此其通帶波紋和阻帶波紋相等。但是使其成為數(shù)字信號處理中非常常用的一種濾波器的主要原因卻是因?yàn)槠湎禂?shù)有一半均為0。如此,在低速率數(shù)字信號處理中或許還不是很重要,但是在那些對實(shí)時(shí)性要求非常高的系統(tǒng)中,這種將計(jì)算量減半的性能就使得其得到了廣泛的應(yīng)用。
綜合考慮前方中提出的設(shè)計(jì)的要求,文中設(shè)計(jì)的HB濾波器的幅頻響應(yīng)如圖6所示。
將文中設(shè)計(jì)的CIC,PFIR,HB級聯(lián)之后得到的總的濾波器的幅頻響應(yīng)如圖7所示,可以發(fā)現(xiàn)較之于CIC濾波器的通帶性能,此時(shí)級聯(lián)濾波器的通帶性能已經(jīng)有了較大的提高。其通帶細(xì)節(jié)圖如圖8所示。
5 system generator仿真
system generator for dsp是業(yè)內(nèi)領(lǐng)先的高級系統(tǒng)級FPGA開發(fā)工具。本次設(shè)計(jì)是在基于Xilinx(賽林思)的system generator的基礎(chǔ)上完成的。賽林思是全球領(lǐng)先的可編程邏輯完整解決方案的供應(yīng)商,它研發(fā)、制造并銷售范圍廣泛的高級集成電路、軟件設(shè)計(jì)工具以及作為預(yù)定義系統(tǒng)級功能的IP(InteIlectual Property)核,客戶使用Xilinx及其合作伙伴的自動(dòng)化軟件工具和IP核對器件進(jìn)行編程。System generator是Xilinx公司進(jìn)行數(shù)字信號處理開發(fā)的一種設(shè)計(jì)工具,它通過將Xilinx開發(fā)的一些模塊嵌入到MATLAB的Simulink庫中,可以在Simulink中進(jìn)行定點(diǎn)的仿真,可以設(shè)置定點(diǎn)信號的類型,這樣就可以比較定點(diǎn)仿真與浮點(diǎn)仿真的區(qū)別。并且它還可以生成HDL文件,或者網(wǎng)表直接供ISE調(diào)用。較之于直接用MATLAB進(jìn)行算法的仿真其主要優(yōu)勢作于它是基于定點(diǎn)的,同時(shí),它是由各個(gè)供應(yīng)廠商直接提供的庫,因此它能夠充分認(rèn)識FPGA內(nèi)部的資源等,其仿真也更精確可靠。
雖然,system generator能直接生成供底層FPGA調(diào)用的代碼以及網(wǎng)表,但是,通常并不這樣做。相對于人工編寫的代碼,system genera tor生成的代碼相對冗余度高,資源利用也不及人工編寫的代碼合理。但是,在某些需要快速進(jìn)行算法開發(fā)的項(xiàng)目中,這種方式無疑為用FPGA從事快速的算法開發(fā)提供了一個(gè)捷徑。
將MATLAB與system generator集成后,由圖1所示的原理框圖,搭建了用于仿真的system generator模塊,如圖9所示。
在輸入端輸入幅頻響如下圖所示的信號,其有用信號范圍173~25.5 MHz。另外為了方便仿真結(jié)果的觀察,又加入了2個(gè)大的噪聲信號分別位于32.4MHz,12.4 MHz。
將上圖所示的信號送入DDC網(wǎng)絡(luò)后,信號變成I/Q兩路信號,將這兩路信號組合成復(fù)數(shù)信號后得到的復(fù)數(shù)信號的頻譜圖如圖11(a)所示。
圖11(a)為原輸入信號的有用信號附近的細(xì)節(jié)圖,而圖11(b)為經(jīng)過DDC網(wǎng)絡(luò)后得到的復(fù)數(shù)信號的幅頻響應(yīng)圖。由于simulink的頻譜繪制工具顯示刷新的問題它們看起來有了一點(diǎn)點(diǎn)的誤籌,但是,也可以發(fā)現(xiàn)經(jīng)下變頻后的信號有效的恢復(fù)了原信號的頻譜信息。它將原輸入信號的負(fù)邊頻線性搬移到了以0頻為中心的帶寬為4.1MHz的頻譜上來。
6 結(jié)束語
實(shí)際項(xiàng)目中接觸到的信號處理任務(wù)大多為帶通信號,如果直接采用傳統(tǒng)的奈奎斯特采樣定理對模擬信號進(jìn)行采樣,然后進(jìn)行數(shù)字信號處理任務(wù),這樣對后端的DSP器件的實(shí)時(shí)性要求太高。因此,通常我們都要先用一個(gè)FPGA來完成數(shù)字信號的下變頻操作,之后再由后端的DSP器件來完成信號處理任務(wù)。因此,如何合理的設(shè)計(jì)DDC下變頻就顯得特別重要。本文針對如何設(shè)計(jì)DDC濾波器以及基于FPGA的System Generator的仿真都作了簡單的介紹。