西北民族大學(xué)電氣工程學(xué)院 林競(jìng)連
語音信號(hào)是作為一種搭載著特定信息的模擬信號(hào),已成為人們社會(huì)生活中獲取和傳播信息的重要手段。在信息處理技術(shù)中,濾波是最基本的信號(hào)處理方法,如何實(shí)現(xiàn)高性能的濾波技術(shù)成為最富有挑戰(zhàn)性的任務(wù)。濾波器分?jǐn)?shù)字濾波器和模擬濾波器。與模擬濾波器相比,數(shù)字濾波器在應(yīng)用中具有精度高、穩(wěn)定性好、設(shè)備體積小、使用靈活等優(yōu)點(diǎn),而且不需要匹配抗阻即可實(shí)現(xiàn)模擬濾波的特殊濾波功能。數(shù)字濾波器根據(jù)單位沖擊響應(yīng)的時(shí)間特性又分為IIR濾波器和FIR濾波器。與FIR濾波器相比,IIR濾波器是遞歸型結(jié)構(gòu),有體積小、重量輕、靈活等優(yōu)點(diǎn),并且設(shè)計(jì)出來的濾波器過渡帶很窄,在很大程度上可以取代傳統(tǒng)的模擬濾波器。因此,本文以IIR濾波器的音頻提取為目標(biāo),利用MATLAB的相關(guān)函數(shù)實(shí)現(xiàn)濾波器的設(shè)計(jì)和對(duì)語音信號(hào)處理。
數(shù)字濾波器是一種對(duì)數(shù)字信號(hào)進(jìn)行處理的重要工具,其對(duì)信號(hào)進(jìn)行過濾、檢測(cè)和參數(shù)估計(jì)等處理,目的就是消除數(shù)字信號(hào)中的噪聲,讓有價(jià)值的信號(hào)得以保留,其實(shí)際上就是一個(gè)離散系統(tǒng)。本文討論了數(shù)字濾波器中的IIR濾波器,其設(shè)計(jì)的基本原理如下。
IIR濾波器是一種遞歸線性時(shí)不變因果系統(tǒng),其差分方程為:
通過z變換之后,可得:
于是得到IIR數(shù)字濾波器的系統(tǒng)函數(shù):
IIR濾波器的單位沖擊響應(yīng)h(n)是一個(gè)無限長(zhǎng)序列,其基本的網(wǎng)絡(luò)結(jié)構(gòu)分為直接型、級(jí)聯(lián)型和并聯(lián)型三種,其中直接型又分為直接Ι型和直接Π型兩種結(jié)構(gòu)。
語音信號(hào)是一種模擬信號(hào),首先須經(jīng)過采集將其轉(zhuǎn)換為數(shù)字信號(hào),實(shí)質(zhì)就是把連續(xù)信號(hào)變?yōu)槊}沖或數(shù)字序列。首先將需要濾波的混音音頻傳到電腦上,由于MATLAB只能處理后綴為“.wav”的語音文件,所以須將音頻的后綴改為“.wav”,并保存;然后打開MATLAB軟件,判斷文件是否在MATLAB的索引區(qū),如果不在,使用讀取命令時(shí)就必須附加音頻文件的地址。在命令行窗口中使用audioread命令采集保存的聲音文件。該命令使用方法為:[x,Fs]=audioread(‘文件名’);%讀取音頻文件。
語音信號(hào)的分析主要是對(duì)語音信號(hào)的時(shí)域和頻域進(jìn)行分析,并利用IIR濾波器對(duì)混音音頻中不同頻率的聲音進(jìn)行提取。對(duì)比信號(hào)的時(shí)域,頻域往往包含了更多的信息。信號(hào)的各種頻域波形,我們都可以用一種方法來分析,那就是傅里葉變換:將時(shí)域的波形轉(zhuǎn)化到頻域來分析。
(1)時(shí)域分析
語音信號(hào)的時(shí)域分析就是對(duì)語音信號(hào)的時(shí)域參數(shù)進(jìn)行分析和提取。語音信號(hào)本身就是時(shí)域信號(hào),因此,時(shí)域分析是最早的分析方法,也是應(yīng)用范圍最廣泛的分析方法之一。該方法直接利用語音信號(hào)的時(shí)域波形,通過分析可以有效的提高信噪比來求取信號(hào)波形在不同時(shí)刻的關(guān)聯(lián)性。此方法表示的語音信號(hào)具有比較直觀、物理意義明確、實(shí)現(xiàn)簡(jiǎn)單、計(jì)算量小等特點(diǎn),能夠獲得信號(hào)的一些重要參數(shù)和指標(biāo)。
在MATLAB中進(jìn)行語音信號(hào)的時(shí)域分析的命令如下:
x = x(:,1);%雙通道變單通道;
x = x’;
N = length(x);%求取抽樣點(diǎn)數(shù);
t = (0:N-1)/Fs;%顯示實(shí)際時(shí)間
y = fft(x);%對(duì)信號(hào)進(jìn)行傅里葉變換;
f = Fs/N*(0:round(N/2)-1);%顯示實(shí)際頻點(diǎn)的一半,頻域映射,轉(zhuǎn)化為Hz;
subplot(211);
plot(t,x,’g’);%繪制時(shí)域波形;
(2)頻域分析
語音信號(hào)的頻域分析是在頻率域分析系統(tǒng)的結(jié)構(gòu)參數(shù)與性能的關(guān)系,揭示了信號(hào)內(nèi)在的頻率特性以及信號(hào)時(shí)間特性與其頻率特性之間的密切關(guān)系,從而導(dǎo)出信號(hào)的頻譜、帶寬以及濾波、調(diào)頻和頻分復(fù)用等重要概念。常用的頻域分析方法有帶通濾波器組法、線件預(yù)測(cè)法、傅里葉變換法等。本文中所用的是傅里葉變換法。
圖1 模擬低通濾波器的技術(shù)指標(biāo)
圖2 巴特沃斯濾波器的幅頻特性
在MATLAB中,想要得到信號(hào)的頻譜特性,可以利用函數(shù)fft對(duì)信號(hào)進(jìn)行快速傅里葉變換。該函數(shù)的調(diào)用格式是y=fft(x),其中,x是序列,y是序列的傅里葉變換。
由于模擬濾波器的理論和設(shè)計(jì)方法已經(jīng)非常成熟,有很多典型的模擬濾波器可供我們選擇,如常見的經(jīng)典模擬濾波器有巴特沃斯濾波器、切比雪夫Ι濾波器、切比雪夫Π濾波器、橢圓濾波器等。這些濾波器不僅有嚴(yán)格的設(shè)計(jì)公式、現(xiàn)成的曲線以及圖表供設(shè)計(jì)人員使用,而且所設(shè)計(jì)的系統(tǒng)函數(shù)都滿足電路實(shí)現(xiàn)條件。另外,低通濾波器是設(shè)計(jì)其他濾波器的基礎(chǔ),其設(shè)計(jì)過程是:首先設(shè)計(jì)模擬低通原型濾波器,將希望設(shè)計(jì)的各種濾波器的技術(shù)指標(biāo)轉(zhuǎn)換成低通濾波器技術(shù)指標(biāo),然后設(shè)計(jì)出這些技術(shù)指標(biāo)所對(duì)應(yīng)的低通濾波器,最后采用頻率轉(zhuǎn)換法將低通濾波器轉(zhuǎn)換成我們?cè)鞠胍O(shè)計(jì)的各種濾波器。模擬低通濾波器的技術(shù)指標(biāo)如圖1所示。
本文利用模擬濾波器成熟的理論及其設(shè)計(jì)方法來設(shè)計(jì)巴特沃斯低通濾波器和巴特沃斯高通濾波器,其設(shè)計(jì)過程是:首先根據(jù)數(shù)字濾波器的技術(shù)指標(biāo)要求設(shè)計(jì)一個(gè)過渡的模擬低通濾波器Ha(s),然后根據(jù)一定的轉(zhuǎn)換關(guān)系將Ha(s)轉(zhuǎn)換成數(shù)字低通濾波器或數(shù)字高通濾波器的系統(tǒng)函數(shù)H(z)。巴特沃斯濾波的幅頻特性如圖2所示。
其設(shè)計(jì)方法如下:
(1)若要得到濾波器最小濾波器階數(shù)和截止頻率,可調(diào)用buttord函數(shù),其調(diào)用格式如下:
‘wp’表示歸一化通帶邊界頻率,‘ws’表示歸一化阻帶邊界頻率,‘Rp’為通帶最大衰減,‘Rs’為阻帶最小衰減。返回的參數(shù)‘n’是濾波器的階數(shù),‘Wn’是3dB截止頻率。對(duì)于帶通和帶阻濾波器,‘wp’和‘ws’都是二維向量,向量的第一個(gè)元素對(duì)應(yīng)低端的邊界頻率,第二個(gè)元素對(duì)應(yīng)高端的邊界頻率。
(2)須計(jì)算濾波器的系數(shù),可調(diào)用butter函數(shù),調(diào)用格式如下:
其中‘b’和‘a(chǎn)’就表示濾波器的系數(shù),最后利用bilinear函數(shù),用雙線性變換法實(shí)現(xiàn)頻率響應(yīng)s域到z域的變換。
然后在MATLAB中用filter函數(shù)進(jìn)行濾波,濾波后用plot函數(shù)分別畫出原音頻信號(hào)的頻譜圖和濾波之后的信號(hào)頻譜圖。最后,再將濾波后的音頻通過函數(shù)audiowrite重新生成音頻文件。
結(jié)論與展望:本文結(jié)合數(shù)字信號(hào)處理的知識(shí)討論了數(shù)字濾波器中IIR濾波器的原理及其設(shè)計(jì)方法,并應(yīng)用雙線性變換法設(shè)計(jì),用MATLAB設(shè)計(jì)巴特沃斯IIR濾波器,最后對(duì)混音音頻進(jìn)行濾波處理,將混音音頻中不同音頻的聲音提取出來。
日常中的信號(hào)往往都混有噪音,從接收到的信號(hào)中消除或減少噪聲是信號(hào)傳輸和處理中不可避免的問題。MATLAB是一個(gè)高級(jí)矩陣語言,其擁有強(qiáng)大的科學(xué)計(jì)算機(jī)數(shù)據(jù)處理能力。因此,將數(shù)字信號(hào)處理技術(shù)與MATLAB程序設(shè)計(jì)語言結(jié)合,能夠促進(jìn)數(shù)字信號(hào)處理技術(shù)的發(fā)展。