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