《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 希爾伯特變換濾波器的FPGA設(shè)計
希爾伯特變換濾波器的FPGA設(shè)計
2017年微型機(jī)與應(yīng)用第2期
宋炳勇,宋茂忠,屈豫威
南京航空航天大學(xué),江蘇 南京 210016
摘要: 在通信系統(tǒng)中,希爾伯特變換是被廣泛應(yīng)用的重要的變換。為了節(jié)約頻譜資源,實(shí)現(xiàn)射頻單邊譜,通常需要借助希爾伯特變換器對信號進(jìn)行分解。利用MATLAB設(shè)計希爾伯特變換濾波器的系數(shù)參數(shù),將計算好的系數(shù)導(dǎo)入FPGA中,由FPGA調(diào)用IP Core實(shí)現(xiàn)。通過Modelsim對程序進(jìn)行仿真,得到了理想的90°移相波形。仿真結(jié)果表明,100階的FIR濾波器可以理想地逼近希爾伯特變換。
Abstract:
Key words :

  宋炳勇,宋茂忠,屈豫威

 ?。暇┖娇蘸教齑髮W(xué),江蘇 南京 210016)

       摘要:在通信系統(tǒng)中,希爾伯特變換是被廣泛應(yīng)用的重要的變換。為了節(jié)約頻譜資源,實(shí)現(xiàn)射頻單邊譜,通常需要借助希爾伯特變換器對信號進(jìn)行分解。利用MATLAB設(shè)計希爾伯特變換濾波器的系數(shù)參數(shù),將計算好的系數(shù)導(dǎo)入FPGA中,由FPGA調(diào)用IP Core實(shí)現(xiàn)。通過Modelsim對程序進(jìn)行仿真,得到了理想的90°移相波形。仿真結(jié)果表明,100階的FIR濾波器可以理想地逼近希爾伯特變換。

  關(guān)鍵詞:FPGA;FIR濾波器;希爾伯特變換器

  中圖分類號:TN713文獻(xiàn)標(biāo)識碼:ADOI: 10.19358/j.issn.1674-7720.2017.02.008

  引用格式:宋炳勇,宋茂忠,屈豫威.希爾伯特變換濾波器的FPGA設(shè)計[J].微型機(jī)與應(yīng)用,2017,36(2):22-24,27.

0引言

  隨著通信系統(tǒng)的發(fā)展,有限的頻譜資源日益緊張,為此大多數(shù)通信系統(tǒng)采用單邊帶信號,同時還可以降低發(fā)射功率和占用帶寬。在單邊帶調(diào)制系統(tǒng)中需要對信號進(jìn)行正交分解,在信號解析中通常采用希爾伯特變換法,因此希爾伯特變換得到了廣泛的應(yīng)用。

  在傳統(tǒng)的設(shè)計中,希爾伯特變換濾波器采用一個全通型的FIR濾波器來逼近,F(xiàn)IR濾波器具有嚴(yán)格的線性相位和穩(wěn)定性等優(yōu)點(diǎn),可以使信號實(shí)現(xiàn)90°相移。文獻(xiàn)[1]中對希爾伯特變換算法在信號處理中做了分析,文獻(xiàn)[2]中對希爾伯特變換做了詳盡的理論分析,文獻(xiàn)[3]中采用加法器實(shí)現(xiàn)乘法器的功能,設(shè)計了希爾伯特變換器。文獻(xiàn)[3]中的方案實(shí)現(xiàn)起來較為復(fù)雜且耗用資源較多。本文通過FPGA中的IP Core設(shè)計實(shí)現(xiàn)希爾伯特變換濾波器,可以節(jié)省寶貴資源。FPGA調(diào)用MATLAB計算出的希爾伯特變換濾波器系數(shù)參數(shù),進(jìn)而調(diào)用IP核設(shè)計出希爾伯特變換濾波器。而且FPGA采用并行處理技術(shù),這樣就大大提高了系統(tǒng)的運(yùn)行速度和處理速度,F(xiàn)PGA芯片內(nèi)部的邏輯模塊和I/O端口可以自主配置,設(shè)計更加靈活,因此,F(xiàn)PGA在高速的實(shí)時信號處理中得到了廣泛的應(yīng)用[1]。

1希爾伯特變換濾波器原理

  希爾伯特變換器是基于FIR型濾波器設(shè)計實(shí)現(xiàn)希爾伯特變換算法,希爾伯波特變換是分析和處理信號的一個重要的理論工具,在通信系統(tǒng)中希爾伯特變換通常用來構(gòu)造解析信號[2]。希爾伯特變換器可以提供90°的相位變換而不影響頻譜分量的幅度,即對信號進(jìn)行希爾伯特變換就相當(dāng)于對信號進(jìn)行正交移相,使之成為自身的正交對[3]。設(shè)連續(xù)時間信號f(t)的希爾伯特變換為f︿(t)[4]

  17YIDJ)J}O0[)4UY~1H9C[C.png

  式(1)稱為希爾伯特變換式,式中,*為卷積。f︿(t)可以看成是f(t)通過一濾波器的輸出,濾波器的沖擊響應(yīng)為h(t)=1πt。由j1πt的傅里葉變換為符號函數(shù)sgn(ω),所以,希爾伯特變換濾波器的頻率響應(yīng)為

  AS_%S]H}3F81528IH69IG_3.png

  式(1)的頻譜密度函數(shù)為:

  %`PZQ5W8UB2M[MF_F92$]RD.png

  式中F(jω)為原信號f(t)的頻譜密度函數(shù)。式(4)說明一個信號的希爾伯特變換可以讓該信號通過一個全通相移濾波器來實(shí)現(xiàn),該濾波器對信號的所有正頻率分量產(chǎn)生90°的滯后相移,而對所有的負(fù)頻率分量產(chǎn)生超前90°的相移。

2希爾伯特變換濾波器的設(shè)計

  2.1MATLAB設(shè)計濾波器系數(shù)

  MATLAB是信號處理與分析的重要工具,其中,F(xiàn)DATool是濾波器設(shè)計與分析的專用工具箱。FDATool工具箱具有操作簡單、靈活等優(yōu)點(diǎn),可以采用多種不同的算法設(shè)計實(shí)現(xiàn)不同的濾波器,只需要輸入設(shè)計濾波器的各項(xiàng)參數(shù)即可[5]。在MATLAB開始菜單中找到Filter Design打開即可彈出FDATool界面。

  根據(jù)工程要求,本文設(shè)計的濾波器階數(shù)為100階,通頻帶是0.5 MHz~9.5 MHz,采樣頻率選取20 MHz,設(shè)計方法采用Equiripple FIR。濾波器的各種特性如圖1、圖2所示。

 

004.jpg

  由圖1可看出,在幅頻響應(yīng)和相頻響應(yīng)滿足要求的同時,濾波器的單位脈沖響應(yīng)為極對稱,即h(n)=-h(N-n-1),各項(xiàng)特性均滿足希爾伯特變換濾波器的要求。濾波器設(shè)計完成并滿足技術(shù)要求后可以保存,還可以導(dǎo)出濾波器的系數(shù)并存為文本文件或MATLAB變量[6],為后續(xù)的FPGA設(shè)計提供方便。

005.jpg

 

  2.2希爾伯特變換濾波器的FPGA實(shí)現(xiàn)

  傳統(tǒng)的硬件描述語言(VHDL)對于很多算法(如DSP模塊)很難設(shè)計,甚至是無法實(shí)現(xiàn)。為解決此問題,ALTERA公司在2002年推出了MATLAB和Quartus聯(lián)合設(shè)計的DSP Builder數(shù)字信號處理工具,該工具很好地解決了算法問題[7]。本文的設(shè)計便是在ALTERA公司的Stratix III平臺上完成的,使用的FPGA芯片為EP3SE260F1152I4。

  DSP Builder中集成了許多函數(shù)(Megacore Function)文件,包括IIR、FIR濾波器,NCO函數(shù),F(xiàn)FT函數(shù)等,這些函數(shù)可以快速、便捷、靈活地設(shè)計系統(tǒng)所需模塊功能[8]。

  本文的希爾伯特變換濾波器設(shè)計是采用Megacore中的FIR Compiler v11.1模塊實(shí)現(xiàn)的[9]。將MATLAB設(shè)計的100階希爾伯特變換濾波器系數(shù)導(dǎo)出并保存為.fcf文件,MATLAB計算出的系數(shù)為double型,且有空格,把所有空格刪除掉后保存為.fcf文件。把編輯好的文件導(dǎo)入到FIR Compiler模塊的參數(shù)設(shè)計中,F(xiàn)IR Compiler模塊自動將MATLAB的double型系數(shù)量化成FPGA中對應(yīng)的Fix Point型參數(shù)[10],系數(shù)位寬選擇16 bit,同時設(shè)置輸入通道數(shù)為1,輸入端口位寬為16 bit,參數(shù)設(shè)置如圖3所示。參數(shù)設(shè)置完成后DSP builder模塊根據(jù)參數(shù)生成可編譯的希爾伯特變換濾波器。3希爾伯特變換濾波器仿真結(jié)果

006.jpg

  3.1測試信號的產(chǎn)生

  本文的輸入正弦波信號是調(diào)用Altera公司的IP,利用Megacore中Signal Generation模塊的Cordic算法產(chǎn)生的正弦波信號,在Cordic算法函數(shù)中設(shè)置各種參數(shù),如圖4所示,其中在精度設(shè)置中Phase Accumulator Precision、Angular Resolution、Magnitude Precision分別設(shè)置為32、16、16,時鐘速率采用100 MHz,輸出數(shù)據(jù)速率為1 MHz,頻率控制字為42 949 673,設(shè)置完成后可自動生成可編譯的Verilog程序。

007.jpg

  3.2仿真與驗(yàn)證結(jié)果

  希爾伯特變換濾波器的MATLAB仿真結(jié)果如圖5所示,輸入信號頻率為1 MHz。圖6為Modelsim仿真結(jié)果,圖6中由上到下分別為時鐘信號、兩個時鐘使能信號、復(fù)位信號、輸入信號和輸出信號,圖中時鐘信號為100 MHz,輸入信號為1 MHz,由圖可看到,輸出信號比輸入信號滯后90°。圖5和圖6中輸出信號和輸入信號相比較均可看出輸出信號有一個90°的相位移動,硬件仿真結(jié)果與軟件仿真相比較表明仿真結(jié)果與理論結(jié)果基本一致?!?/p>

009.jpg

008.jpg

  4結(jié)語

  本文對希爾伯特變換濾波器的設(shè)計進(jìn)行了研究,通過MATLAB軟件進(jìn)行了濾波器的設(shè)計并仿真驗(yàn)證,得到100階的FIR濾波器可以無限地逼近希爾伯特變換濾波器的結(jié)論。利用MATLAB設(shè)計的濾波器相關(guān)參數(shù),通過DSP Builder模塊導(dǎo)入系數(shù)文件,在FPGA中設(shè)計出了希爾伯特變換濾波器,并且通過Modelsim仿真得到了正確的移相90°的輸出信號。該設(shè)計已經(jīng)在衛(wèi)星導(dǎo)航信號模擬源項(xiàng)目中得到了實(shí)際應(yīng)用。

  參考文獻(xiàn)

 ?。?] SARKAR S, MUKHERJEE  K, RAY  A. Generalization of Hilbertt tansform for symbolic analysis of noisy signals[J]. Signal Processing, 2009, 89(12):12451251.

 ?。?] 王薇,王曉茹,黃曉青,等. 無功功率測量的Hilbert數(shù)字濾波器研究[J]. 電測與儀表,2007,44(3):912.

 ?。?] 姚琮,張興敢,肖文書.中頻采樣中希爾伯特變換器的FPGA實(shí)現(xiàn)[J]. 集成技術(shù)應(yīng)用, 2004(9):7477.

  [4] UWE M B. Digital signal processing with field programmable gate arrays[M]. Heidelberg: Springer,2003.

 ?。?] 劉波,文忠,曾涯.Matlab信號處理[M]. 北京:電子工業(yè)出版社,2006.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。