馮 浩
(宿州學院機械與電子工程學院,安徽 宿州 234000)
?
基于MATLAB GUI的FIR數(shù)字濾波器語音信號去噪處理*
馮 浩
(宿州學院機械與電子工程學院,安徽 宿州 234000)
結合數(shù)字濾波器的理論基礎和設計方法,在MATLAB程序語言環(huán)境下,設計出有限長單位脈沖響應(FIR)數(shù)字濾波器,同時利用GUI界面設計FIR數(shù)字濾波器人機交互平臺,該系統(tǒng)平臺界面直觀、操作簡單且功能齊全,可實現(xiàn)對加噪語音信號的去噪濾波功能.平臺主要包括語音信號、加噪信號、FIR數(shù)字濾波器設計和去噪信號四個模塊,用戶可根據(jù)讀入的語音信號及噪聲信號特點調(diào)整濾波器技術指標,實現(xiàn)濾波器的優(yōu)化設計,最終達到FIR數(shù)字濾波器對語音信號的去噪處理效果.
MATALB GUI;FIR數(shù)字濾波器;語音信號;去噪
作為數(shù)字信號處理的重要組成部分,數(shù)字濾波器在語音、圖像、軍事、地震等眾多領域中得到了極為廣泛的應用,其主要特點是通過一定的數(shù)值運算處理改變輸入信號所含頻率成分的相對比例,或者濾除輸入信號中的某些頻率成分[1].
在對數(shù)字信號處理技術探究領域,核心發(fā)展技術就是語音信號的采集、分析,在科學技術不斷發(fā)展過程中形成的技術處理方式不僅顯著提升了語音信號的處理效率,同時在不同領域還有著廣泛的應用域.當前眾多學者的研究熱點課題就是語音信號的處理、分析,由于通信技術的日益更新,語音采集器及分析設施逐漸向著智能化、數(shù)字化及功能多樣化的方向發(fā)展,體積越來越小,顯著提升了語音信號的分析效率.
就目前市場發(fā)展狀況來看,語音分析系統(tǒng)普遍存在操作相對繁瑣、購買費用高的現(xiàn)象,無法在特定項目的測量及分析領域發(fā)揮良好的效用.鑒于此,根據(jù)數(shù)字濾波器的單位脈沖響應函數(shù)特點,可將數(shù)字濾波器分為無限長單位脈沖響應(IIR)濾波器和有限長單位脈沖響應(FIR)濾波器.IIR數(shù)字濾波器主要是利用模擬濾波器的成熟理論進行系統(tǒng)設計,但相位非線性的特點也限制了其濾波功能;而FIR數(shù)字濾波器很容易實現(xiàn)嚴格意義上的線性相位,其幅度特性類型多樣且系統(tǒng)穩(wěn)定,由于其單位脈沖響應為有限長序列,可利用FFT算法實現(xiàn)信號濾波處理,從而減少運算量,提高運算效率[2].
目前,較為常用的FIR數(shù)字濾波器設計方法有三種:窗函數(shù)設計法(時域設計法)、頻率采樣設計法(頻域設計法)以及等波紋(Chebyshev)最佳逼近法(頻域設計法).本文基于MATLAB GUI平臺,利用窗函數(shù)設計法設計FIR數(shù)字濾波器人機交互系統(tǒng),該系統(tǒng)平臺可實現(xiàn)對加噪語音信號的濾波處理.
1.1 FIR數(shù)字濾波器設計基礎[3]
FIR數(shù)字濾波器的單位脈沖響應h(n)為有限長序列,長度為N(0≤n≤N-1),其系統(tǒng)函數(shù)可表示為:
由上式可知,該濾波器系統(tǒng)在z=0處有N-1階極點(系統(tǒng)穩(wěn)定),在z平面有N-1個零點.若單位脈沖響應h(n)滿足偶對稱或奇對稱,即h(n)=±h(N-1-n);或者其相位函數(shù)滿足θ(ω)=-τω或θ(ω)=θ0-τω(τ,θ0均為常數(shù)),由此可確定FIR數(shù)字濾波器的嚴格線性相位.
1.2 窗函數(shù)設計法的設計方案
凱塞窗(Kaiser Window)、三角窗(Triangular Window )、漢寧窗(Hanging Window)及矩形窗(Rectangle Window )等窗函數(shù)能夠借助Matlab 直接生成,利用對系統(tǒng)函數(shù)進行調(diào)取的方式,能夠有效的加載窗.窗函數(shù)的調(diào)取、利用方式為:
調(diào)用窗函數(shù)的過程中,在應用格式中,利用函數(shù)名長度(n)可以對矩形窗w進行生成,即函數(shù)名(n)=w.通常心電信號頻率為0.05 Hz到100 Hz[6],電信號強度極弱,在存在機體器官信號干擾的情況下,心電信號會出現(xiàn)失真的狀況.再加上工頻信號(50 Hz)及電子器件噪聲的影響,應做好干擾噪聲的消除工作.在對低通濾波器進行設計的過程中,包括最小阻帶衰減(As)、阻帶截止頻率(ωs)及通帶截止頻率(ωp)三項指標,取值分別為50 dB以上(包括50 dB)、 0.3π和0.2π.由此能夠計算出過渡帶寬(tr_width )的值,即為阻帶截止頻率與通帶截止頻率之差,而列長(N)為10 π/ tr_width.對窗函數(shù)進行選擇時,通常選用較寬的主瓣,以此來提高阻帶的衰減,提升通帶平穩(wěn)程度.基于阻帶最小衰減指標,需要對列長數(shù)值進行合理的增大,并對過渡帶進行窄化處理[7].鑒于窗函數(shù)的顯著特征為最小阻帶衰減,因此僅凱塞窗、海明窗的衰減在50 dB以上.但在使用過程中,一般折中利用窗函數(shù),針對凱塞窗而言,需要對其參數(shù)值進行改變,并合理設定主、旁瓣衰減,從而增強濾波器的靈活性及適應性.其窗函數(shù)形狀(窗口長度)可隨參數(shù)進行任意調(diào)節(jié),故其適應性較強,本文主要利用Kaiser窗函數(shù)進行FIR數(shù)字濾波器設計.
窗函數(shù)設計法設計FIR數(shù)字濾波器的主要思路是[4]:
1)根據(jù)實際任務要求確定濾波器的性能指標,包括通帶(上下)截止頻率、阻帶(上下)截止頻率、通帶最大衰減以及阻帶最小衰減;
2)由阻帶最小衰減確定窗函數(shù)ω(n)的形狀,結合過渡帶寬度確定窗口長度N;
3)結合窗函數(shù)ω(n)以及窗口長度N計算單位脈沖響應h(n);
4)驗證所求h(n)是否滿足實際任務要求.
基于MATLAB GUI的FIR數(shù)字濾波器去噪處理系統(tǒng)平臺主要是利用Kaiser窗函數(shù)設計法實現(xiàn)對FIR數(shù)字濾波器的設計,從而完成對加噪語音信號的噪聲濾除處理.
對Kaiser窗進行使用時的代碼為:
Fs =100 ;
fc1=10 ;
fc2=20 ;
[n,Wn,beta,f type] = kaiserord([7 13 17 23],[0 1 0],[0.010.010.01],100);
%n=38,beta=3.4
w1=2×fc1/ fs;w2=2×fc2/ fs;
window =kaiser(n+1,beta); %運用凱塞窗函數(shù)
b =fir1(n,[w1w2],window); %選取加窗設計函數(shù)fir 1,該函數(shù)為標準頻率響應
freqz(b,1,512);
t =(0∶100)/ Fs;
s = sin(2×pi×t×5)+sin(2×pi×t×30)+sin(2×pi×t×15); %混和正弦波信號
sf = filter(b,1,s); %濾波處理信號s
程序運行結果詳見圖1和圖2 .
圖1 濾波器幅頻特性相頻特性
圖2 濾波前后的波形
該系統(tǒng)平臺主要分為語音信號模塊、加噪信號模塊、FIR數(shù)字濾波器設計模塊和去噪信號模塊共四部分.該平臺可對讀入及處理的信號進行播放,同時顯示各信號的時域波形及其頻率曲線圖,以便于對語音信號濾波前后時頻特性進行分析;在此基礎上可對FIR數(shù)字濾波器的各個參數(shù)進行設置選擇,以達到實際去噪處理效果[5].
2.1 語音信號模塊和加噪信號模塊設計
語音信號模塊包括語音信號的讀取和播放,同時顯示其時域波形和頻譜圖.主要通過PushButton按鈕控件實現(xiàn)對語音信號的讀取和時域波形顯示,其Callback回調(diào)函數(shù)主要包括[y,fs,nbits]=wavread()以及axes(handles.Tag)坐標軸顯示函數(shù).
加噪信號模塊包括加噪語音信號波形讀入、加噪信號播放以及信號頻譜曲線顯示.各個按鈕的Callback回調(diào)函數(shù)與語音信號模塊類似,實現(xiàn)函數(shù)相同.加噪信號主要由采集到的語音信號和噪聲信號疊加產(chǎn)生.噪聲信號是由randn()函數(shù)產(chǎn)生的與語音信號長度相等的高斯白噪聲.
2.2 FIR數(shù)字濾波器設計模塊
FIR數(shù)字濾波器設計模塊包括參數(shù)設置、濾波器選擇、Kaiser窗函數(shù)和損耗函數(shù)曲線四個部分.
“參數(shù)設置”主要包括通帶上下邊界、阻帶上下邊界、通帶最大衰減和阻帶最小衰減.通過Edit Text可編輯文本控件進行參數(shù)的設置.注意此處“參數(shù)設置”為模擬濾波器的技術指標.“濾波器選擇”主要包括低通、高通、帶通和帶阻四種濾波器,主要通過RadioButton單選按鈕控件實現(xiàn).用戶可結合實際語音信號以及加噪后信號的頻率特性來選擇相應的濾波器類型.“Kaiser窗函數(shù)”和“損耗函數(shù)曲線”通過PushButton控件實現(xiàn),并利用Axes控件進行輸出曲線顯示.
2.3 去噪信號模塊
去噪信號模塊包括去噪處理、去噪信號播放以及時域波形和頻譜曲線顯示.通過Pushbutton按鈕控件實現(xiàn)各自功能.“去噪處理”主要實現(xiàn)利用所設計的FIR數(shù)字濾波器對加噪后的語音信號進行去噪處理,同時將去噪后的語音信號時域波形進行顯示.在程序設計中,主要利用fftfilt()函數(shù)實現(xiàn)對加噪語音信號的濾波處理.通過“播放”按鈕實現(xiàn)去噪信號的播放功能.通過“去噪信號頻譜”按鈕實現(xiàn)去噪后語音信號的頻譜曲線繪制.
在MATLAB GUI平臺仿真過程中,利用Windows自帶的錄音機程序錄制一段時間在1s內(nèi)的人聲信號(*.wav),通過語音信號模塊,對該語音信號進行讀取、播放并繪制其時域波形和頻譜圖.在加噪信號模塊中,將隨機產(chǎn)生的高斯白噪聲信號和原始語音信號進行疊加處理,從而構成加噪信號,播放加噪后的語音信號,可在聲音輸出終端聽到人聲摻雜著一定的噪聲.同時,繪制加噪信號的時域波形及其頻譜圖如圖3所示.
圖3 原始語音信號、加噪信號時域和頻域圖
從圖3所示曲線圖可以看出,原始語音信號的頻率在0~2 300 Hz,而加噪信號中的噪聲信號頻率主要集中在0~20 000 Hz.結合這一特點,在FIR數(shù)字濾波器設計模塊中,參數(shù)選擇設置通帶截止頻率為1 200 Hz,阻帶截止頻率為2 300 Hz,阻帶最小衰減為40 db,同時選擇低通濾波器進行濾波處理.如圖4所示為FIR數(shù)字濾波器的系統(tǒng)仿真平臺,本設計的關鍵在于通過對比分析原始語音信號和去噪信號的時域及頻域曲線,設定合適的參數(shù)和濾波器類型,以達到最佳去噪處理效果.
圖4 FIR數(shù)字濾波器系統(tǒng)仿真平臺
如圖4所示仿真結果,通過對FIR數(shù)字濾波器的各個參數(shù)進行設置和選擇,對加噪信號進行濾波處理,去噪信號的高頻部分明顯被濾除,原始語音信號的主要頻率成分保留.通過播放去噪信號,可以清晰聽到原始信號所錄制的人聲,雖有略微的沉悶,但是已經(jīng)非常接近原始語音信號.證明去噪處理基本到達了設計要求.
利用MATLAB GUI平臺設計開發(fā)FIR數(shù)字濾波器系統(tǒng),系統(tǒng)界面設計簡潔、直觀,通過對比分析濾波前后語音信號的時頻特性,更改FIR數(shù)字濾波器設計參數(shù),達到最佳去噪處理效果,進而達到濾波器的最優(yōu)化設計[6];利用Kaiser窗函數(shù)進行FIR數(shù)字濾波器設計通過改變參數(shù)值來折中選擇主瓣寬度和旁瓣衰減,故其適應性較強;通過對參數(shù)的設置及選擇,對信號進行加噪處理,語音信號的高頻部分明顯濾除,所錄制的語音信號與原始語音信號非常接近,可以實現(xiàn)對語音信號的去噪處理;基于MATLAB GUI平臺所設計FIR數(shù)字濾波器系統(tǒng),修改系數(shù)方便,具有很強的適應性和可移植性;然而由于受到窗函數(shù)類型以及窗口長度大小的限制,對濾波器的性能產(chǎn)生一定影響,在后續(xù)研究中會加以改進完善,增強濾波器實際去噪處理效果.
[1]陳然,張霞萍. 基于MATLAB GUI的FIR數(shù)字濾波器設計與仿真[J]. 南京曉莊學院學報,2015(6):15-20.
[2]朱穎嵐. FIR數(shù)字濾波器的MATLAB設計與研究[J]. 信息通信,2014(10):63-64.
[3]王艷芬.數(shù)字信號處理原理及實現(xiàn)[M].北京:清華大學出版社,2008.
[4]賈君霞. 基于MATLAB的FIR濾波器設計的探討[J]. 自動化與儀器儀表,2014(12):110-112.
[5]竇海鵬. 數(shù)字濾波語音信號除噪設計[J]. 長春工業(yè)大學學報(自然科學版),2013(6):663-667.
[6]李在林,陳坤. 基于MATLAB的數(shù)字濾波器設計方法的分析[J]. 信息通信,2015(5):17-18.
Denoising Processing of Speech Signal of FIR Digital Filter Based on MATLAB GUI
FENG Hao
(School of Mechanical and Electrical Engineering, Suzhou University, Suzhou Anhui 234000, China)
Based on the basic theory and design method of digital filter, in MATLAB programming environment, to design finite impulse response (FIR) digital filter and FIR digital filter design using GUI interface of human-computer interaction platform, the platform, intuitive interface, simple operation and complete functions, can be realized on the noisy speech signal filtering function. The platform mainly includes the speech signal and noise signal, FIR digital filter design and signal denoising of four modules, the user can according to the speech signal and noise signal characteristics of technical index of filter adjusting read, realizing the optimization design of the filter, and ultimately achieve the FIR digital filter of speech signal denoising effect.
MATALB GUI;FIR digital filter;speech signal;denoising
1673-2103(2016)05-0068-05
2016-09-20
宿州學院一般科研項目(2014yyb03)
馮浩(1983-),男,河南安陽人,助教,碩士,研究方向:信號處理、圖像處理.
TN713+.7.
A