?
在傳統(tǒng)的設(shè)計(jì)中,希爾伯特變換器可由一個(gè)FIR濾波器和一個(gè)時(shí)延模塊實(shí)現(xiàn),也可由一組濾波器對(duì)實(shí)現(xiàn),而實(shí)現(xiàn)FIR型希爾伯特變換器的一個(gè)簡(jiǎn)單方法就是對(duì)原型低通濾波器作正弦/余弦變換。但是,無(wú)論哪種方法都需要通過(guò)計(jì)算對(duì)低通濾波器的系數(shù)進(jìn)行轉(zhuǎn)換,其計(jì)算繁瑣且存在一定的誤差。Matlab作為濾波器設(shè)計(jì)的基礎(chǔ)軟件,不僅可以快速有效地實(shí)現(xiàn)希爾伯特變換器的設(shè)計(jì)、分析仿真和最優(yōu)化,而且可以直接計(jì)算出希爾伯特變換器的系數(shù),加之Matlab具有強(qiáng)大的接口功能,為后續(xù)的設(shè)計(jì)提供了方便。
1 希爾伯特變換器的基本原理
連續(xù)時(shí)間信號(hào)x(t)的希爾伯特變換

?
定義為:

?
由式(1)可得單位沖擊響應(yīng)h(t)=1/(πt),由于jh(t)=j/(πt)的傅里葉變換是符號(hào)函數(shù)sgn(w),所以希爾伯特變換器的頻率特性為:

?
信號(hào)x(t)的希爾伯特變換可以看成是信號(hào)x(t)通過(guò)一個(gè)幅度為1的全通濾波器輸出,信號(hào)通過(guò)希爾伯特變換器后,其負(fù)頻率成分作+90°的相移,而正頻率成分作-90°的相移。
這類(lèi)濾波器要求濾波器的零頻響應(yīng)為0,若濾波器階數(shù)為偶數(shù),則還要求Nyquist頻率(歸一化頻率為1)處的響應(yīng)為0。即如果濾波器的階數(shù)為偶數(shù),那么增益在頻率為0 Hz和fs/2處必須降為零,希爾伯特濾波器必須是一個(gè)帶通濾波器。如果濾波器的階數(shù)為奇數(shù),那么增益在頻率為0 Hz處必須降為零,希爾伯特濾波器必須是一個(gè)高通濾波器。
2 希爾伯特變換器的Matlab設(shè)計(jì)
2.1 直接程序法
Matlab信號(hào)處理工具箱提供了firls函數(shù)和remez函數(shù),它們的調(diào)用格式語(yǔ)法規(guī)則相同,只是優(yōu)化算法不同,函數(shù)firls利用最小二乘法使期望的頻率響應(yīng)和實(shí)際的頻率響應(yīng)間的誤差最小;函數(shù)remez實(shí)現(xiàn)Park-McClellan算法,這種算法利用remez交換算法和Che-byshev近似理論設(shè)計(jì)濾波器,使實(shí)際頻率響應(yīng)擬合期望頻率響應(yīng)達(dá)到最優(yōu)。
函數(shù)調(diào)用格式為b=remez(n,f,m,‘h’)或b=firIs(n,f,m,‘h’),其中,n為濾波器的階數(shù);f為濾波器期望頻率特性的頻率向量標(biāo)準(zhǔn)化頻率,取值0~1,是遞增向量,允許定義重復(fù)頻點(diǎn);m為濾波器期望頻率特性的幅值向量,向量m和f必須同長(zhǎng)度且為偶數(shù);b為函數(shù)返回的濾波器系數(shù),長(zhǎng)度為n+1,本文將采用remez函數(shù)法。
下面設(shè)計(jì)一個(gè)希爾伯特變換器,要求采樣頻率為2 000 Hz,通頻帶為50~950 Hz,濾波器階數(shù)為60階。實(shí)現(xiàn)程序如下:

?
設(shè)計(jì)的希爾伯特變換器的特性如圖1,圖2所示。

?
從仿真結(jié)果可以觀(guān)察到增益在0 Hz和1 000 Hz處降為零,即為帶通濾波器;同時(shí)具有嚴(yán)格的線(xiàn)性相位特性,符合設(shè)計(jì)要求。在設(shè)計(jì)中如果特性不滿(mǎn)足要求,原有的參數(shù)必須作相應(yīng)的調(diào)整,在程序中只需對(duì)參數(shù)進(jìn)行重新設(shè)定,就可以得到所需要的希爾伯特變換器。
2.2 利用FDATool工具設(shè)計(jì)法
FDATool是Matlab信號(hào)處理工具箱專(zhuān)用的濾波器設(shè)計(jì)分析工具,操作簡(jiǎn)單、靈活,可以采用多種方法設(shè)計(jì)不同的濾波器,同時(shí)可以實(shí)現(xiàn)濾波器的最小階數(shù)設(shè)計(jì)。在Matlab命令窗口輸入FDATool后回車(chē)就會(huì)彈出FDATool界面。
根據(jù)2.1中的設(shè)計(jì)實(shí)例,首先在Filter Type欄中選擇Hilbert Transformer,在Design Method欄中選擇Equiripple法,在filter order中選擇60,在Frequencyand Magnitude Specifications中設(shè)置F=[50 950];M=[1 1];Fs=2 000,最后點(diǎn)擊Design Filter,通過(guò)菜單選項(xiàng)Analysis可以在特性顯示區(qū)看到濾波器的各種特性,如圖3~圖5所示。

?
在幅頻特性和相頻特性滿(mǎn)足要求的同時(shí),由圖3可知單位脈沖響應(yīng)為奇對(duì)稱(chēng),即h(n)=-h(N-n-1),也符合希爾伯特變換器的特性。若設(shè)計(jì)不滿(mǎn)足要求,則可以直接在FDATool界面中改變參數(shù),在設(shè)計(jì)滿(mǎn)足要求后,還可以把希爾伯特變換器的系數(shù)導(dǎo)出為Matlab變量,文本文件或C語(yǔ)言頭文件等,這為后續(xù)的設(shè)計(jì)提供方便。
3 希爾伯特變換器的效果驗(yàn)證
3.1 直接程序驗(yàn)證法
對(duì)于所設(shè)計(jì)的希爾伯特變換器,頻率為10 Hz的振動(dòng)作為輸入信號(hào),采樣頻率為100 Hz,驗(yàn)證對(duì)應(yīng)的數(shù)據(jù)點(diǎn)是否滿(mǎn)足相位相差90°的特點(diǎn),主要實(shí)現(xiàn)程序如下:

?
由圖6可知,該希爾伯特變換器對(duì)阻帶和通帶波紋進(jìn)行了控制,輸出信號(hào)的相位比輸入信號(hào)的相位前移了90°,符合希爾伯特變換的性質(zhì)。如若把輸入信號(hào)的頻率變?yōu)?10Hz,則輸出信號(hào)較之輸入信號(hào)會(huì)后移90°,如圖7所示。通過(guò)驗(yàn)證可知,該希爾伯特變換器實(shí)現(xiàn)了π/2移相。

?
3.2 Simulink仿真法
利用Matlab提供的Simulink工具對(duì)該希爾伯特變換器進(jìn)行仿真,輸入信號(hào)以3.1節(jié)中的要求為例,仿真系統(tǒng)如圖8所示,在建立仿真系統(tǒng)時(shí),注意對(duì)所選擇的模塊進(jìn)行相應(yīng)的參數(shù)設(shè)計(jì)。仿真結(jié)果如圖9,圖10所示。

?

?
4 結(jié)語(yǔ)
在Matlab平臺(tái)上,采用直接程序法和FDATool工具法均可以快捷有效地完成希爾伯特變換器的設(shè)計(jì),可以隨時(shí)對(duì)比設(shè)計(jì)要求和希爾伯特變換器的特性,以使設(shè)計(jì)達(dá)到最優(yōu)化。由于Matlab具有強(qiáng)大的接口功能,設(shè)計(jì)的結(jié)果可以很方便地移植到DSP,FPGA等器件中。在實(shí)際使用中,只需按要求修改參數(shù),即可實(shí)現(xiàn)不同的希爾伯特變換器,實(shí)用性較強(qiáng)。
評(píng)論