余會娟
摘要:有限長沖激響應(yīng)(FIR)數(shù)字濾波器具有描述方便、系統(tǒng)穩(wěn)定、易于實(shí)現(xiàn)線性相位等特點(diǎn),獲得了廣泛的應(yīng)用。該文采用FIR數(shù)字濾波器的窗函數(shù)法設(shè)計(jì)濾波器,針對語音信號中出現(xiàn)的加性噪聲進(jìn)行消除,并在matlab軟件中進(jìn)行實(shí)現(xiàn)。
關(guān)鍵詞:FIR數(shù)字濾波器;窗函數(shù)法;matlab;語音信號處理
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2018)03-0183-03
數(shù)字濾波器是數(shù)字信號處理的一個重要技術(shù)分支,利用它可以在形形色色的信號中提取所需信號,抑制不需要的信號(干擾、噪聲等)。有限長脈沖響應(yīng)FIR濾波器在保證幅度特性滿足技術(shù)要求的同時(shí),很容易做到有嚴(yán)格的線性相位特性,因此在高保真的信號處理領(lǐng)域得到了廣泛應(yīng)用。濾波器的設(shè)計(jì)過程分三步完成:①技術(shù)要求,在設(shè)計(jì)之前,根據(jù)具體用途確定技術(shù)指標(biāo);②近似,用選用的設(shè)計(jì)方法表述濾波器,它可以是一個差分方程的形式,或者是一個系統(tǒng)函數(shù)H(Z)的形式,或者是一個脈沖響應(yīng)h(n)的形式,這種表述逼近于所給定的技術(shù)指標(biāo);③實(shí)現(xiàn),依據(jù)上一步的濾波器表述,在計(jì)算機(jī)上通過MATLAB軟件實(shí)現(xiàn)這個濾波器。本文旨在用FIR數(shù)字濾波器的窗函數(shù)法設(shè)計(jì)濾波器,針對語音信號中出現(xiàn)的加性噪聲進(jìn)行消除。并在matlab軟件中實(shí)現(xiàn)。
1 FIR數(shù)字濾波器設(shè)計(jì)原理
FIR數(shù)字濾波器的單位脈沖響應(yīng)是有限長的,使得它在以下方面具有明顯的優(yōu)勢:
(1) 有限長序列的Z變換在整個Z平面上收斂,因此,不存在穩(wěn)定性問題;
(2) 只要經(jīng)過一定的時(shí)延,任何非因果的有限長序列都可以變成因果的有限長序列,都可以用因果系統(tǒng)來實(shí)現(xiàn);
(3) 由于單位脈沖響應(yīng)是有限長的,可以用快速傅立葉變換算法實(shí)現(xiàn)信號的濾波,使運(yùn)算效率大大提高。
因此,F(xiàn)IR數(shù)字濾波器日益引起人們的注意,在各個領(lǐng)域廣泛應(yīng)用。
如果FIR數(shù)字濾波器的單位脈沖響應(yīng)h(n)為實(shí)數(shù),且滿足以下任何一個條件:
偶對稱:h(n)=h(N-1-n);
奇對稱:h(n)=-h(N-1-n)
其對稱中心在(N-1)/2處,則濾波器就具有準(zhǔn)確的線性相位。
將頻率響應(yīng)表示成,其中是幅度函數(shù),是相位函數(shù)。
2 基于窗函數(shù)法的 FIR數(shù)字濾波器設(shè)計(jì)
理想的數(shù)字濾波器的頻率響應(yīng)可以用傅立葉級數(shù)展開為:
其中傅立葉系數(shù)為 :
顯然,就是理想濾波器的單位脈沖響應(yīng)。 但是直接用(2)式設(shè)計(jì)FIR濾波器是不可能的,因?yàn)槭且粋€無限長非因果序列。根據(jù)線性相位FIR數(shù)字濾波器理論,單位脈沖響應(yīng)應(yīng)該是有限長的因果序列。因此,設(shè)計(jì)FIR濾波器就是解決向逼近的問題。可以直接用截?cái)嗟姆椒ū平?,使n取有限項(xiàng),那么,(1)式就變?yōu)椋?/p>
截取后,我們要保證截取的一段對(N-1)/2對稱,這樣就構(gòu)成一個長度為N的線性相位濾波器。
但是,用直接截?cái)嗟姆椒〞沟妙l率響應(yīng)的間斷會出現(xiàn)吉布斯(Gibbs)效應(yīng),該效應(yīng)會引起通帶內(nèi)和阻帶內(nèi)的波動性,尤其使阻帶內(nèi)的衰減減小,從而滿足不了技術(shù)上的要求。這種吉布斯(Gibbs)效應(yīng)是由于將直接截?cái)嘁鸬?,也常稱為截?cái)嘈?yīng)。
2.1 設(shè)計(jì)原理
獲得FIR數(shù)字濾波器的一個有效的方法就是利用有限的“加權(quán)”序列w(n),也就是所謂的“窗函數(shù)”來修正(1)和(2)式。這種方法稱為“窗函數(shù)法”。通常,是將h(n)看作理想單位脈沖響應(yīng)hd(n)與窗函數(shù)w(n)的乘積。即
利用復(fù)卷積定理可得:
上式表明,是理想頻率響應(yīng)與窗函數(shù)頻率響應(yīng)的循環(huán)卷積。因此,對的逼近程度完全決于窗函數(shù)的頻率特性。
加窗函數(shù)后,對濾波器的理想特性影響有以下幾點(diǎn):
(1) Hd(w)在截止頻率的間斷點(diǎn)變成了連續(xù)的曲線,使得Hd(w)出現(xiàn)了一個過渡帶,它的寬度等于窗函數(shù)的主瓣寬度,由此可知,如果窗函數(shù)的主瓣越寬,過渡帶就越寬。
(2) 由于窗函數(shù)旁瓣的影響,使得濾波器的幅度頻率特性出現(xiàn)了波動,波動的幅度取決于旁瓣的相對幅度。旁瓣范圍的面積越大,通帶波動和阻帶的波動就越大,也就是說阻帶的衰減減小。而波動的多少,取決于旁瓣的多少。
(3) 增加窗函數(shù)的長度,只能減少窗函數(shù)的幅度頻率特性W(w)的主瓣寬度,而不能減少主瓣和旁瓣的相對值,該值取決于窗函數(shù)的形狀,即增加截取函數(shù)的長度N只能相應(yīng)的減小過渡帶,而不能改變?yōu)V波器的波動。
因此,通過改變窗函數(shù)的形狀來改善濾波器的幅度頻率特性。窗函數(shù)的選擇原則是:
(1) 具有較低的旁瓣幅度,尤其是第一旁瓣的幅度。
(2) 旁瓣的幅度下降的速率要快,以利于增加阻帶的衰減。
(3) 主瓣的寬度要窄,這樣可以得到比較窄的過渡帶。
通常上述的幾點(diǎn)難以同時(shí)滿足,實(shí)際上選用的窗函數(shù)往往是它們的折中。
窗函數(shù)的種類繁多,而且還可以根據(jù)需要自己設(shè)計(jì)窗函數(shù),在設(shè)計(jì)FIR數(shù)字濾波器時(shí),選擇窗函數(shù)的原則是在保證阻帶衰減滿足要求的情況下,盡量選擇主瓣窄的窗函數(shù)。
2.2 設(shè)計(jì)步驟
FIR數(shù)字濾波器的窗函數(shù)法設(shè)計(jì)步驟:
(1) 依據(jù)給定的技術(shù)指標(biāo)得出理想的頻率響應(yīng);
(2) 選擇窗函數(shù),根據(jù)其過渡帶寬△W,估計(jì)h(n)的長度N;
(3) 根據(jù)理想頻率響應(yīng)計(jì)算理想單位脈沖響應(yīng);
(4) 用選擇的窗函數(shù)對進(jìn)行加窗得出,;
(5) 計(jì)算數(shù)字濾波器的頻率響應(yīng)。
2.3 設(shè)計(jì)與MATLAB實(shí)現(xiàn)
對采樣頻率為220v、50HZ的語音信號人工引入高頻5KHZ余弦噪聲后,對信號在頻域進(jìn)行濾波。濾波后顯示的語音信號的波形與原始語音信號波形基本相同。
2.3.1 信號采集程序
fs=22050;
x1=wavread('C:\Documents and Settings\laurence\桌面\新建文件夾\數(shù)字.wav'); sound(x1,22050);
y1=fft(x1,1024);
f=fs*(0:511)/1024;
figure(1)
plot(x1)
title('原始語音信號');
xlabel('time n');
ylabel('fuzhi n');
figure(2)
freqz(x1)
title('頻率響應(yīng)圖')
figure(3)
subplot(2,1,1);
plot(abs(y1(1:512)))
title('原始語音信號FFT頻譜')
subplot(2,1,2);
plot(f,abs(y1(1:512)));
title('原始語音信號頻譜')
xlabel('Hz');
ylabel('fuzhi');
2.3.2 加上5kHz高頻余弦噪聲后的信號采集程序
fs=22050;
x1=wavread('C:\Documents and Settings\laurence\桌面\新建文件夾\數(shù)字.wav');
f=fs*(0:511)/1024;
t=0:1/22050:(size(x1)-1)/22050;
Au=0.03;
d=[Au*cos(2*pi*5000*t)]';
x2=x1+d;
sound(x2,22050);
y2=fft(x2,1024);
figure(1)
plot(t,x2)
title('加噪后的信號');
xlabel('time n');
ylabel('fuzhi n');
figure(2)
subplot(2,1,1);
plot(f,abs(y1(1:512)));
title('原始語音信號頻譜');
xlabel('Hz');
ylabel('fuzhi');
subplot(2,1,2);
plot(f,abs(y2(1:512)));
title('加噪后的信號頻譜');
xlabel('Hz');
ylabel('fuzhi');
2.3.4 窗函數(shù)法設(shè)計(jì)濾波器程序
fs=22050;
x1=wavread('C:\Documents and Settings\laurence\桌面\新建文件夾\數(shù)字.wav');
t=0:1/22050:(size(x1)-1)/22050;
Au=0.03;
d=[Au*cos(2*pi*5000*t)]';
x2=x1+d;
wp=0.25*pi;
ws=0.3*pi;
wdelta=ws-wp;
N=ceil(6.6*pi/wdelta);
wn=(0.2+0.3)*pi/2;
b=fir1(N,wn/pi,hamming(N+1));
figure(1)
freqz(b,1,512)
f2=filter(bz,az,x2)
figure(2)
subplot(2,1,1)
plot(t,x2)
title('濾波前的時(shí)域波形');
subplot(2,1,2)
plot(t,f2);
title('濾波后的時(shí)域波形');
sound(f2,22050);
F0=fft(f2,1024);
f=fs*(0:511)/1024;
figure(3)
y2=fft(x2,1024);
subplot(2,1,1);
plot(f,abs(y2(1:512)));
title('濾波前的頻譜')
xlabel('Hz');
ylabel('fuzhi');
subplot(2,1,2)
F2=plot(f,abs(F0(1:512)));
title('濾波后的頻譜')
xlabel('Hz');
ylabel('fuzhi');
3 結(jié)束語
語音信號是最能體現(xiàn)信號非線性的一個領(lǐng)域。本文運(yùn)用MATLAB軟件,設(shè)計(jì)出符合技術(shù)要求的數(shù)字濾波器,對加入單一頻率語音信號進(jìn)行消噪處理,結(jié)果顯示還是非常有效的。FIR濾波器對語音信號濾波能夠取得較好的效果。對于高斯噪聲引入及消噪的方法需要用到現(xiàn)代濾波器的設(shè)計(jì)方法,傳統(tǒng)濾波器只能削弱而不能消除噪聲的影響。當(dāng)然,對語音信號進(jìn)行處理技術(shù)還有很多方面,如語音壓縮和語音編碼,語音識別等。結(jié)合語音語義理論的研究, 循環(huán)平穩(wěn)信號分析、多譜分析和時(shí)頻尺度理論,關(guān)鍵特征的捕捉等多層次的語音信號研究,有很重要的應(yīng)用前景。
參考文獻(xiàn):
[1] 陳明軍,毛樟梅.改進(jìn)窗函數(shù)在FIR數(shù)字濾波器設(shè)計(jì)中的應(yīng)用[J].繼電器,2007,35(13):64-68.
[2] 孫強(qiáng).運(yùn)用MATLAB實(shí)現(xiàn)數(shù)字濾波器的設(shè)計(jì)[J].電腦學(xué)習(xí),2005(2):32-34.
[3] 蘇玉萍,鄭瓊瓊,余冬菊.基于MATLAB的FIR濾波器設(shè)計(jì)[J].中國科技信息,2008(8):44-46.
[4] 周輝,董正宏.數(shù)字信號處理基礎(chǔ)及MATLAB實(shí)現(xiàn)[M].北京:北京希望出版社,2006:230-260.
[5] 丁玉美,高西全.數(shù)字信號處理[M].2版.西安:西安電子科技大學(xué)出版社,2000:195-222.