邢靜 張云 孫永健
摘 要:本文針對IIR(Infinite impulse response,無限長沖擊響應)數字濾波器的理論教學,以含有加性噪聲的音頻信號為實例,采用MATLAB開發平臺,通過設計IIR數字濾波器實現去噪功能。對比語音信號去噪前后的音效和時頻域波形變化,使學生在理解抽象理論的基礎上,通過實例應用掌握設計數字濾波器的具體方法,實踐表明該方法提高了學生學習的積極性和有效性,為課程教學設計提供一種新思路。
關鍵詞:IIR數字濾波器 語音信號 教學探索
中圖分類號:TN912 文獻標識碼:A 文章編號:1672-3791(2018)09(c)-0138-03
在高等教育中,數字信號處理課程是電氣、電子通信類等專業的一門專業基礎課,包括時域離散信號和系統分析,離散信號的傅里葉變換,頻域離散系統分析,有限長離散信號的傅里葉變換及其快速算法和數字濾波器的設計,其中數字濾波器的設計是對理論知識的綜合理解和應用,在整個課程中占有及其重要的地位,但該課程理論強,公式多,學生普遍感到枯燥難學,學習興趣不高。如何在該課程中實現“教”與“學”的統一,抽象理論具體化,培養學生分析能力和應用能力是教師進行教學設計的主要部分[1]。本文以加噪語音信號為實例,以MATLAB為開發平臺,設計IIR數字濾波器實現去噪功能,通過實踐應用使學生掌握設計數字濾波器的具體方法,這種教學方法對該課程教學改革提供有一定的參考依據[2,3]。
1 語音信號采集和頻譜分析
MATLAB中使用wavread讀取硬盤上的需要處理的WAV語音文件,以E盤根目錄下《兩只老虎》為例,采用[x,Fs,NBITS]=wavread('E:\tigers.WAV')獲得原始聲音數據,其中函數返回值x為聲音數據,Fs為數據采樣頻率,用sound(x,FS)播放聲音,聽音頻信號的播放效果[4]。用plot(x)畫出音頻信號的時域波形,并觀察信號時域波形如圖1所示。信號的頻譜分析是研究信號在頻域中頻率成分分布并加以分析的方法,是課程的一個重點,利用DFT(離散時間傅里葉變換)計算離散的音頻信號在各個頻率點處的分布,在MATLAB中用FFT函數獲得音頻信號的頻率分量,畫出的頻譜圖如圖2所示,頻譜圖中譜線分別在261.6、293.6、329.6、349、392和440Hz處,代表樂譜中音符的頻率,學生通過對比信號在時頻域波形,建立信號時頻域之間的關聯。
2 加入噪音的語音信號的去噪
本科階段所研究的信號噪聲是加性噪聲,信號和噪聲的頻率是在不同范圍內,針對原始信號,加入1000Hz和1500Hz的噪聲,時域波形圖如圖3所示,對應的頻譜圖如圖4所示,通過觀察發現時域中無法辨別的噪音,而在頻域中1000Hz和1500Hz的位置有譜線。在Matlab中播放該音頻,聽覺上音頻中夾雜有刺耳的聲音,效果變差,為了除去噪聲,需要進行濾波器的設計。
2.1 IIR數字濾波器
數字濾波器按照單位脈沖響應分為IIR(Infinite Impulse Response,無限長沖擊響應)濾波器和FIR(Finite Impulse Response,有限長沖擊響應)濾波器,這兩種濾波器有各自的優點,這里選擇IIR數字濾波器的巴特沃斯數字濾波器為例,IIR數字濾波器的設計有兩種方法,一種是在頻域里直接設計,另一種是設計對應的模擬濾波器然后將模擬濾波器轉化為數字濾波器,這里采用第二種方法,設計思路為首先以巴特沃斯模擬濾波器為原型確定濾波器的技術指標、類型,計算濾波器的階次,然后確定濾波器的系統函數Ha(s),最后采用雙線性變化法將模擬濾波器轉化為數字濾波器H(z)[4-5]。
2.2 IIR數字濾波器的設計和去噪處理
根據信號的頻譜,噪音在高頻段,所以設計的濾波器是數字低通濾波器,這里設定低通濾波器的過渡帶為600~800Hz,通帶歸一化截止頻率wp=2*600/Fs,阻帶歸一化截止頻率ws=2π*800/Fs,通帶最大衰減αp=1dB,阻帶最小衰減αs=30dB,為了糾正雙線性變換法中的模擬頻率和數字頻率的非線性映射,將模擬濾波器的角頻率進行預畸變,omgp=2*fs*tan(wp*pi/2);omgs=2*fs*tan(ws*pi/2);在MATLAB中輸入[N,wc]=buttord(omgp,omgs,rp,as,'s');返回值N為模擬濾波器的階次,wc為濾波器3dB截止頻率;輸入[b,a]=butter(N,wc,'low','s');返回值b,a為模擬濾波器系統函數Ha(s)的系數,輸入[bz,az]=bilinear(b,a,fs);返回值bz,az為雙線性變換將模擬濾波器轉化為數字濾波器H(z)的系數,利用[h,w]=freqz(bz,az)獲得數字濾波器的系統頻率函數,如圖5所示,最后進行音頻信號的處理,將含高頻噪音的音頻數據x經過系數為bz,az的數字濾波器系統處理,在MATLAB中用y=filter(bz,az,x)實現,返回值y為輸出音頻數據,處理后的音頻信號的頻譜圖如圖6所示,在頻譜圖上頻率在1000Hz和1500Hz的噪音已被消除,用sound(y,FS)試聽去噪效果,和原始音頻信號效果一致。
3 結語
濾波器的設計是課程的重要內容之一,進行合理的教學設計和實踐,達到培養目標是教師的主要任務,該課程在理論教學的同時,以加噪的音頻信號為對象,通過設計不同類型的數字濾波器,結合信號頻譜圖和聽覺上對比去噪前后音頻效果,讓學生更加感性地認識濾波器的用途,理解濾波器的設計原理和方法。同樣,可以在原始信號上加其他頻率和類型的加性噪聲,設計和應用不同類型濾波器來加深對濾波器設計的原理的理解。教學實踐證明, 這種以音頻信號為實例的數字濾波器設計教學方式,不僅提高了教學效果,也培養了學生應用實踐能力。
參考文獻
[1] 李洪均,李蘊華,陳俊杰,等.數字信號處理實踐型教學改革研究[J].中國教育技術裝備,2017(24):156-158.
[2] 陳章寶,王艷春,楊艷.基于語音信號的“數字信號處理”課程案例教學研究[J].蚌埠學院學報,2017,6(5):134-138.
[3] 歐陽華,楊忠林,周衛平.基于音頻信號的數字濾波器設計實驗[J].大學教育,2017(4):6-8.
[4] 陳懷琛.數字信號處理教程[M].北京:電子工業出版社,2010.
[5] 高西全,丁玉美.數字信號處理[M].西安:西安電子科技大學出版社,2016.