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

  宋炳勇,,宋茂忠,,屈豫威

  (南京航空航天大學(xué),,江蘇 南京 210016)

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

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

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

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

0引言

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

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

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

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

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

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

  AS_%S]H}3F81528IH69IG_3.png

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

  %`PZQ5W8UB2M[MF_F92$]RD.png

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

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

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

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

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

 

004.jpg

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

005.jpg

 

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

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

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

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

006.jpg

  3.1測(cè)試信號(hào)的產(chǎn)生

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

007.jpg

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

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

009.jpg

008.jpg

  4結(jié)語(yǔ)

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

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

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

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

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


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