趙子曦
摘要:對于信號(hào)的時(shí)域分析只能獲取部分信息,因此在頻域作出信號(hào)頻譜以輔助分析顯得十分重要。在進(jìn)行頻譜分析后,會(huì)發(fā)現(xiàn)信號(hào)包含復(fù)雜噪聲,因此使用軟件設(shè)計(jì)濾波器去噪。在Matlab的基礎(chǔ)上,本文首先采用經(jīng)典的傅里葉變換對各類信號(hào)進(jìn)行頻譜分析,然后用窗函數(shù)法設(shè)計(jì)FIR數(shù)字濾波器。在聲音信號(hào)上的實(shí)驗(yàn)證明,本文設(shè)計(jì)的FIR數(shù)字濾波器可以有效壓制噪聲,提取良好聲音信號(hào)。
關(guān)鍵詞:信號(hào)頻譜分析; Matlab;濾波器;信號(hào)去噪中圖分類號(hào):TP311? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2021)29-0114-02
進(jìn)入21世紀(jì)以來,計(jì)算機(jī)技術(shù)飛速發(fā)展,大數(shù)據(jù)、物聯(lián)網(wǎng)、人工智能(AI:Artificial Intelligence)成為學(xué)界、工業(yè)界的研究熱點(diǎn),隨之對信號(hào)分析技術(shù)提出了更高的要求,也帶來了新的機(jī)遇。
在摩爾定律的基礎(chǔ)上,計(jì)算機(jī)有限的算力在復(fù)雜數(shù)據(jù)的處理上顯得吃力,而現(xiàn)代數(shù)據(jù)處理又十分追求更高的效率、更快的速度和更準(zhǔn)確的結(jié)果。Matlab是工程領(lǐng)域應(yīng)用廣泛的一款成熟軟件,它擁有強(qiáng)大的矩陣運(yùn)算能力和科學(xué)數(shù)據(jù)處理能力,可以處理十分微小的電路信號(hào),因此使用Matlab進(jìn)行信號(hào)分析與處理、數(shù)字濾波器設(shè)計(jì)等對于電路分析、小信號(hào)分析、波形重整具有十分重要的意義。
1信號(hào)頻域分析
1.1離散傅里葉變換與窗函數(shù)
實(shí)際上,計(jì)算機(jī)存儲(chǔ)的所有數(shù)據(jù)都是離散的,它們需要運(yùn)用時(shí)域和頻域都是離散的離散傅里葉變換(Discrete Fourier Transform,DFT)進(jìn)行處理。TD(Time-Domain)連續(xù)信號(hào)經(jīng)采樣后,通過快速傅里葉變換成為FD(Frequency-Domain)采樣。通過數(shù)學(xué)表達(dá)式繪圖,不難看出輸入DFT進(jìn)行變換的時(shí)域信號(hào)和變換后輸出的頻域信號(hào)均為有限長序列,即主值序列。
在實(shí)際應(yīng)用中常采用快速傅里葉變換計(jì)算DFT:
連續(xù)周期、連續(xù)非周期、離散周期、離散非周期信號(hào)的頻譜與 DFT之間的關(guān)系:時(shí)域上的信號(hào)是非周期的,則頻域上的信號(hào)是連續(xù)的;時(shí)域上的信號(hào)是周期的,則頻域上的信號(hào)是離散的;反之亦然。
在對信號(hào)進(jìn)行處理的過程中,會(huì)出現(xiàn)各種各樣的錯(cuò)誤,最典型的有混疊現(xiàn)象、泄露現(xiàn)象、柵欄效應(yīng)。
混疊現(xiàn)象:連續(xù)信號(hào)的采樣參數(shù)設(shè)置與采樣定理相悖,信號(hào)頻譜受到此影響而改變出現(xiàn)的高低頻率成分混疊現(xiàn)象。因此,當(dāng)使用采樣信號(hào)求解原始信號(hào)的過程中,頻域信息無法正確反解,形成嚴(yán)重的失真。泄露現(xiàn)象:當(dāng)取樣長度不是全函數(shù)長度時(shí),會(huì)發(fā)生泄露效應(yīng),函數(shù)對應(yīng)頻率附近出現(xiàn)譜線。柵欄效應(yīng):對信號(hào)的采樣,實(shí)際上是先把連續(xù)信號(hào)利用泰勒公式在頻域上進(jìn)行表示,后由離散傅里葉變換計(jì)算頻譜再采樣。那么就存在基頻以及n倍基頻,這些頻率點(diǎn)就像是“柵欄”,把連續(xù)信號(hào)分隔成細(xì)微的部分,這種現(xiàn)象就是柵欄效應(yīng)。
在這三種干擾中,其中最為嚴(yán)重的失真就是頻譜混疊,而由于計(jì)算機(jī)無法截取全部長的信號(hào),所以應(yīng)用采樣定理。為了避免采樣定理過程中存在的常見干擾和信息損失,一般使用窗函數(shù)來截取信號(hào),即通過加窗可以更好地對信號(hào)進(jìn)行頻域分析。
1.2頻域信號(hào)分析
利用FFT,分析連續(xù)周期方波信號(hào)的頻譜:通過改變采樣率與時(shí)間截?cái)嚅L度,分別研究頻譜的混疊與泄漏。
2數(shù)字濾波器設(shè)計(jì)
2.1數(shù)字頻率、模擬頻率與FIR濾波器
傳統(tǒng)的硬件濾波一般對應(yīng)模擬頻率f:每秒經(jīng)歷多少個(gè)周期,單位Hz,即1/s;模擬角頻率Ω:每秒經(jīng)歷多少弧度,單位rad/ s,而軟件濾波對應(yīng)數(shù)字頻率ω,即每個(gè)采樣點(diǎn)間隔之間的弧度,單位rad。二者的關(guān)系為Ω=2pi*f;ω=Ω*T,如果需要?dú)w一化,那么 ω除以2*pi 即可。
在模擬頻率、數(shù)字頻率之間映射完成之后,使用窗函數(shù)法(傅里葉級數(shù)法)設(shè)計(jì)理想的數(shù)字錄波器。給定一組頻率響應(yīng) H(jΩ),則由 IDTFT 可得出濾波器的單位脈沖響應(yīng):
由于是理想濾波器,故hd[k]是無限長序列。但是我們所要設(shè)計(jì)的 FIR 濾波器,其 h[k]是有限長的。為了能用 FIR 濾波器近似理想濾波器,需將理想濾波器的無限長單位脈沖響應(yīng)hd [k]分別從左右進(jìn)行截?cái)?。?dāng)截?cái)嗪蟮膯挝幻}沖響應(yīng)hd[k]不是因果系統(tǒng)的時(shí)候,可將其右移從而獲得因果的 FIR 濾波器。
設(shè)計(jì)的核心過程為:理想濾波器頻率設(shè)計(jì)->反變換時(shí)域無限長信號(hào)->信號(hào)截?cái)?>右移變因果系統(tǒng)。
2.2數(shù)字濾波器設(shè)計(jì)內(nèi)容
設(shè)計(jì)FIR數(shù)字低通濾波器,截止頻率ωc=π/4,在不同窗口長度(N=15,33分別求出h(n)的幅頻、相頻特性,觀察3dB帶寬和20dB帶寬以及阻帶最小衰減,總結(jié)窗口長度N、窗函數(shù)特性對濾波特性的影響。
窗函數(shù)法設(shè)計(jì)FIR濾波器的技術(shù)路線:首先根據(jù)阻帶最小衰減對照相關(guān)表格、窗函數(shù),估算ωs與ωp,計(jì)算窗口長度N,N≈ A/Bt,A取決于窗函數(shù)類型。利用接著fir1()函數(shù)計(jì)算出濾波器系數(shù),最后使用濾波函數(shù)filter()得到濾波后的函數(shù)。
3聲音信號(hào)的濾波
聲音信號(hào)濾波包含如下操作過程,首先利用電腦聲卡進(jìn)行人聲采集,而后在Matlab中導(dǎo)入該信號(hào),并作頻譜分析,接著由其頻譜特性隨機(jī)加入正弦噪聲,最后選用有限脈沖響應(yīng)FIR濾波器進(jìn)行濾波,并將輸出信號(hào)與原信號(hào)對比評價(jià)。
聲音信號(hào)使用蘋果筆記本電腦 MacBook Air_Cirrus Logic CS4206A (AB 126)聲卡采集,環(huán)境聲音需大小在30db左右,麥克風(fēng)格式設(shè)置為2通道、32位、44100Hz(錄音師音質(zhì))??紤]到信號(hào)處理量,信號(hào)時(shí)長一般為8s左右為宜,在這種采集情況下,默認(rèn)原始信號(hào)無噪。
利用 MATLAB 中的audioread函數(shù)把語音信號(hào)轉(zhuǎn)換成序列,得到信號(hào)信息,然后在各個(gè)時(shí)間點(diǎn)加入正弦信號(hào)分量。
對于語音去噪現(xiàn)在已經(jīng)有一些比較成熟的方法,如小波變換法、小波包變換法以及濾波器法。利用小波的方法去噪設(shè)計(jì)過程相對煩瑣,因此,考慮到FIR濾波器具有線性相位且易于設(shè)計(jì)實(shí)現(xiàn),本文選用FIR濾波器方法,加上hanning窗來實(shí)現(xiàn)去噪功能。
4 總結(jié)
本文對信號(hào)進(jìn)行頻譜分析,通過利用FFT分析連續(xù)周期方波信號(hào)的頻譜得出:采樣率設(shè)置為3~4倍方波基頻,否則實(shí)信號(hào)以fs為采樣速率的信號(hào)在 fs/2處混疊,fft結(jié)果中前半部分對應(yīng)[0, fs/2],后半部分對應(yīng)[ -fs/2, 0]。漢明(Hanning)窗使頻譜旁瓣互相抵消,消去高頻干擾和漏能,有效抑制了頻譜泄露現(xiàn)象。窗口長度N越大,濾波器階數(shù)越高,過渡帶越窄,且窗函數(shù)可以明顯改善截?cái)嘈?yīng)。
實(shí)驗(yàn)證明,Matlab在信號(hào)處理領(lǐng)域已經(jīng)十分成熟易用,但是其本身仍舊存在幾點(diǎn)局限性。第一,文件命名不可以使用函數(shù)名和中文字符,否則程序會(huì)崩潰或無法正常運(yùn)行;第二,Mat?lab在處理聲音信號(hào)的時(shí)候?qū)τ布筝^高,需要花費(fèi)的時(shí)間也很長,這也是控制聲音信號(hào)在十秒以內(nèi)的原因。此外,從原理上來說,計(jì)算機(jī)無法對連續(xù)信號(hào)進(jìn)行分析,每一個(gè)實(shí)際的連續(xù)信號(hào)實(shí)際上都是采樣信號(hào),即各種信號(hào)截?cái)?、轉(zhuǎn)換都是在DFT的基礎(chǔ)上,與實(shí)際總是存在誤差。
參考文獻(xiàn):
[1] 韓長軍.基于MATLAB的語音信號(hào)去噪方法應(yīng)用[J].遼東學(xué)院學(xué)報(bào)(自然科學(xué)版),2017,24(1):72-77.
[2] 吳培希.有關(guān)零相數(shù)字濾波器的實(shí)現(xiàn)[J].信息系統(tǒng)工程,2012(4):95-96.
[3] 姜衍猛 . 基于 MATLAB 的數(shù)據(jù)采集與分析系統(tǒng)的研究及設(shè)計(jì)[D].濟(jì)南:山東大學(xué),2012.
[4] 張朝暉,袁建美,蔣洪明.用于動(dòng)態(tài)測試的信號(hào)分析方法[J].石油大學(xué)學(xué)報(bào)(自然科學(xué)版),2002,26(2):120-124,0.
[5] 楊麗娟,張白樺,葉旭楨.快速傅里葉變換FFT及其應(yīng)用[J].光電工程,2004,31(S1):1-3,7.
[6] 尹學(xué)愛,馬國利,馮偉偉.基于MATLAB的聲音信號(hào)頻譜分析儀[J].教育教學(xué)論壇,2018(4):276-278.
【通聯(lián)編輯:李雅琪】