數字化中頻(DIF)頻譜分析儀在高中頻實(shí)現數字化處理,具有分析帶寬大、RBW小、測量時(shí)長(cháng)短,可對復雜信號實(shí)施時(shí)—頻分析的功能,因而得到越來(lái)越廣泛的應用。但由于現有的數字信號處理器(DSP)處理速度有限,往往難以對高速率A/D采樣得到的數字信號直接進(jìn)行實(shí)時(shí)處理。為了解決這一矛盾,需要采用數字下變頻(DDC)技術(shù),將采樣得到的高速率信號變成低速率基帶信號,以便進(jìn)一步的分析處理。用現場(chǎng)可編程陣列(FPGA)來(lái)設計數字下變頻器有許多好處:FPGA在硬件上具有很強的穩定性和極高的運算速度,在軟件上具有可編程的特點(diǎn),可以根據不同的系統要求,采用不同的結構來(lái)完成相應的功能,具有很強的靈活性,便于進(jìn)行系統功能擴展和性能升級。 數字下變頻 數字下變頻的主要目的是經(jīng)過(guò)數字混頻將A/D轉換輸出的中頻信號搬移至基帶,然后通過(guò)抽取,濾波完成信道提取的任務(wù)。因此,數字下變頻器由本地振蕩器(NCO)、混頻器、抽取濾波器和低通濾波器組成,如圖1所示。 圖1 數字下變頻原理圖 A/D變換后的信號分成兩個(gè)信號,一個(gè)信號乘以正弦序列(同相分量),下變頻至零中心頻率上,通過(guò)抽取濾波器、整形低通FIR濾波形成與原信號相位相同的信號;另一路信號乘以經(jīng)過(guò)90度相移的正弦序列(正交分量),同樣是下變頻至零中心頻率上,再通過(guò)相同的抽取濾波器、整形低通FIR濾波器,形成與原信號正交的信號。這樣,DDC輸出的低速率、零中頻的正交的兩路信號送往DSP等數字信號處理器進(jìn)行后續的數字處理。 DDC的FPGA 以某中頻數字化接收機為例來(lái)說(shuō)明如何實(shí)現基于FPGA的數字下變頻器。輸入信號為中頻26MHz,帶寬500KHz的調頻信號,該信號經(jīng)過(guò)A/D變換之后送到DDC(A/D采樣精度為8位,采樣率20MHz),要求DDC將其變換為數字正交基帶信號,并實(shí)現10倍抽取,即輸出給基帶處理器的數據速率為2MSPS,最后再經(jīng)過(guò)16階FIR濾波器進(jìn)行信號整形。 NCO的實(shí)現 NCO采用直接數字合成(DDS)的方法實(shí)現,目前常見(jiàn)的技術(shù)有查表法和CORDIC計算法,本設計采用查表法來(lái)實(shí)現NCO,其原理圖如圖2所示。 圖2 NCO原理圖 32位累加器由一個(gè)32位的加法器和一個(gè)32位寄存器組成,在時(shí)鐘的作用下,加法器通過(guò)寄存器將輸出數據送入到加法器的一個(gè)輸入端,與32位的頻率控制字進(jìn)行相加運算,得到一個(gè)有規律的相位累加結果。由于正弦值在一個(gè)周期內取有限個(gè)采樣值,大于2pi部分的正弦值只是這有限數值的重復出現,因此,當累加結果大于FFFFFFFFH是,不需產(chǎn)生進(jìn)位,而是重新從00000000H開(kāi)始累加。為了減小ROM的容量,根據相位截斷技術(shù),取累加器輸出的高10位作為查表地址,但是這種實(shí)現方式,在降低成本的同時(shí),也引入了雜散分量,影響了NCO的純度。正弦值ROM中存儲的是預先計算好的正弦波幅值,利用正弦波的對稱(chēng)特性,只需存儲四分之一周期的幅值,再通過(guò)相應的轉換即可恢復出整個(gè)周期的幅值。同時(shí),由于余弦波和正弦波相位差為pi/2,可以很容易的實(shí)現余弦信號。其關(guān)鍵部分的VHDL代碼如下: process begin wait until clk=’1’; if add(8)=’0’ then address<=add(7 downto 0); else address<=”11111111”-add(7 downto 0); end if; if add(9)=’0’ then qou(7)<=’0’; qou(6 downto 0)<=q; else qou(7)<=’1’; qou(6 downto 0)<= ”1111111”-q; end if; end process; 抽取濾波器的實(shí)現 CIC積分梳狀濾波器是實(shí)現高速抽取非常有效的單元。CIC濾波器的系統函數為: 式中D即為CIC濾波器梳狀部分的延遲,濾波器系數都為1。從上式可以看出CIC濾波器的實(shí)現非常簡(jiǎn)單,只有加減運算,沒(méi)有乘法運算,FPGA實(shí)現時(shí)可達到很高的處理速率。但是,單級CIC濾波器的旁瓣電平只比主瓣低13.46dB,這就意味著(zhù)阻帶衰減很差,一般是難以滿(mǎn)足實(shí)用要求的。為了降低旁瓣電平,可以采取多級CIC濾波器級聯(lián)的辦法解決。在CIC濾波器的實(shí)現過(guò)程中,需要給內部寄存器提供足夠的位寬,其計算公式為: 其中N為級數,M為延遲,R為抽取倍數。 本設計中,CIC濾波器需要完成10倍的抽取,采用4級級聯(lián)來(lái)實(shí)現,由于輸入、輸出數據均為8bit,故內部寄存器所需的最大位寬為,旁瓣容限可達到4×13.46=43.44dB。 CIC濾波器實(shí)現的關(guān)鍵是抽取器的分頻設計,其VHDL代碼如下: signal count : integer range 0 to 9; signal clk2 : std_logic; if (count=9) then --抽取器分頻實(shí)現 clk2<=’1’; else clk2<=’0’; end if; comb : process --抽取器代碼 begin wait until clk2=’1’; i3d1<=c0; ………… c4<=c3/2-c3d1; end process comb; 低通濾波器的實(shí)現: 數字下變頻器的最后一個(gè)模塊是低通FIR濾波器,主要用來(lái)對信號進(jìn)行整形濾波,消除信號中存在的噪聲。本設計采用并行結構的FIR濾波器,由2個(gè)8階濾波器級聯(lián)實(shí)現16階的濾波器,由預相加模塊、查找表模塊和移位相加模塊組成,結構圖如圖3、4所示。 圖3 16階FIR濾波器的級聯(lián)結構圖 圖4 FIR濾波器子模塊結構圖 圖5 16階FIR濾波器響應曲線(xiàn)圖 圖6 DDC實(shí)現的結構圖 這種結構的濾波器結構簡(jiǎn)單、易于實(shí)現,很容易擴展成高階濾波器。首先通過(guò)MATLAB中的FirDesignTool工具得到濾波器的系數圖表(表1)。利用線(xiàn)性FIR濾波器抽頭系數的對稱(chēng)性,通過(guò)加法器將對稱(chēng)的系數進(jìn)行預相加,從而降低硬件規模。根據分布式算法原理,通過(guò)將抽頭系數的所有可能組合固化在ROM中,利用查找表來(lái)代替乘法器。利用預相加模塊產(chǎn)生的地址來(lái)查找ROM表,并將相應的數值進(jìn)行移位相加,從而得出正確的結果。 表1 16階FIR濾波器系數 DDC系統的實(shí)現 利用上述的各個(gè)模塊,可得到DDC系統的實(shí)現結構圖如圖6所示。 整個(gè)系統在Cyclone系列芯片EP1C6Q240C8上實(shí)現,其FPGA綜合結果圖7所示。 圖8 系統時(shí)序測試結果 時(shí)序測試圖(圖8)中,黃色為系統時(shí)鐘波形,綠色為NCO產(chǎn)生的正弦波時(shí)序波形,藍色為抽取濾波器輸出的時(shí)序波形,粉紅色為FIR濾波器輸出時(shí)序波形。從示波器顯示的時(shí)序圖可以看出抽取濾波器輸出波形的延時(shí)最大,大約為14ns左右,這和軟件仿真的結果比較吻合,仿真中抽取濾波器輸出的延時(shí)為16.47ns。故抽取濾波器是制約系統時(shí)鐘速率提高的關(guān)鍵因素。 結語(yǔ) 本文介紹了一種應用于數字化中頻頻譜分析儀的數字下變頻電路,整個(gè)電路基于FPGA實(shí)現,結構簡(jiǎn)單,易于編程實(shí)現。 |