曾惠霞
(廣州城市理工學(xué)院, 電子信息工程學(xué)院, 廣東, 廣州 510800)
“數(shù)字信號(hào)處理”是一門(mén)理論性強(qiáng)、概念抽象、公式繁瑣、內(nèi)容復(fù)雜的課程。在教學(xué)過(guò)程中,學(xué)生很難通過(guò)教師的語(yǔ)言描述或者課本的圖文學(xué)習(xí)直觀理解復(fù)雜的理論,理解不了就很難掌握和應(yīng)用理論。針對(duì)這些問(wèn)題,人們利用MATLAB GUI設(shè)計(jì)的數(shù)字信號(hào)處理輔助教學(xué)平臺(tái)[1-4],或者提出將多生理信號(hào)采集與分析、語(yǔ)音信號(hào)處理等工程案例引入教學(xué)[5-7],從而幫助學(xué)生更直觀的理解基本理論和概念,提高學(xué)生學(xué)習(xí)興趣,提高教學(xué)質(zhì)量方面都取得不錯(cuò)的成效。
本文提出利用MATLAB App Designer設(shè)計(jì)的一款數(shù)字信號(hào)處理輔助教學(xué)系統(tǒng),針對(duì)信號(hào)采集、信號(hào)分析、信號(hào)處理的過(guò)程,結(jié)合數(shù)字信號(hào)處理課程的特點(diǎn),將常見(jiàn)信號(hào)及其運(yùn)算、傅里葉變換及分析、濾波器設(shè)計(jì)、綜合應(yīng)用等功能進(jìn)行可視化處理。教師用本系統(tǒng)作課堂教學(xué)的演示以及用在實(shí)驗(yàn)輔助上,現(xiàn)象直觀生動(dòng),教學(xué)更深入淺出、淺顯易懂。系統(tǒng)的界面簡(jiǎn)潔友好、操作簡(jiǎn)單,實(shí)驗(yàn)現(xiàn)象圖文并茂,增強(qiáng)了學(xué)生的學(xué)習(xí)興趣,降低了理解難度,提高了教學(xué)效率,達(dá)到了激發(fā)學(xué)生學(xué)習(xí)興趣、節(jié)省學(xué)習(xí)時(shí)間、增強(qiáng)理解記憶的目的。
本文基于MATLAB App Designer開(kāi)發(fā)的系統(tǒng),將“數(shù)字信號(hào)處理”過(guò)程的理論設(shè)計(jì)成代碼的形式,用戶(hù)在App界面設(shè)置輸入?yún)?shù),實(shí)現(xiàn)功能的圖像化輸出。MATLAB App Designer提供了設(shè)計(jì)視圖和代碼視圖,設(shè)計(jì)視圖用來(lái)放置控件,代碼視圖進(jìn)行回調(diào)函數(shù)的編寫(xiě),設(shè)計(jì)視圖/代碼視圖區(qū)可以切換。系統(tǒng)設(shè)計(jì)好以后,可以用MATLAB軟件提供的“共享”對(duì)系統(tǒng)進(jìn)行打包發(fā)布成Web App形式或者獨(dú)立的桌面App應(yīng)用。
本設(shè)計(jì)采用自頂向下的設(shè)計(jì)方法,整體框架如圖1所示。數(shù)字信號(hào)處理教學(xué)輔助系統(tǒng)分為四部分,其中濾波器設(shè)計(jì)又分IIR濾波器設(shè)計(jì)、FIR濾波器設(shè)計(jì),綜合應(yīng)用分為語(yǔ)音處理和圖像處理。

圖1 系統(tǒng)的整體框架
App的設(shè)計(jì)創(chuàng)建步驟如下。
(1) 根據(jù)需要,確定好需要設(shè)計(jì)的總體框架,并設(shè)計(jì)好App的文件和幫助菜單。放置相應(yīng)的標(biāo)簽設(shè)計(jì)App的標(biāo)題,選擇選項(xiàng)卡組,可以讓每個(gè)功能獨(dú)立一個(gè)界面,允許用戶(hù)在不同的選項(xiàng)卡組之間自由選擇。
(2) 布置每個(gè)選項(xiàng)卡組界面,放置相應(yīng)的基本控件并排列美觀整潔。放置好控件后通過(guò)屬性查看器修改控件的大小、形狀、背景顏色、字體等屬性。
(3) 編寫(xiě)控件的回調(diào)函數(shù)并調(diào)試功能?;卣{(diào)函數(shù)是實(shí)現(xiàn)交互的關(guān)鍵。
如果設(shè)計(jì)視圖進(jìn)行App框架和外形的設(shè)計(jì),那么代碼視圖特別是回調(diào) (callback)函數(shù)則是App設(shè)計(jì)的靈魂,是實(shí)現(xiàn)整個(gè)設(shè)計(jì)按鍵交互功能的關(guān)鍵。
具體實(shí)現(xiàn)的方法:在設(shè)計(jì)視圖中,選中組件比如按鍵(Button);然后右鍵選擇添加這個(gè)組件的回調(diào)函數(shù),進(jìn)入代碼視圖,灰色區(qū)域代碼是在拖入組件后自動(dòng)生成,不可修改。白色區(qū)域是可以編輯的部分,在此處添加代碼。App Designer 中,通過(guò)添加回調(diào)函數(shù)、函數(shù)和屬性對(duì) App 進(jìn)行代碼編寫(xiě)?;卣{(diào)函數(shù)響應(yīng)用戶(hù)交互,例如當(dāng)點(diǎn)擊按鈕即執(zhí)行某些操作。函數(shù)可以是實(shí)現(xiàn)某些功能的輔助函數(shù),屬性是創(chuàng)建了用來(lái)存儲(chǔ)在回調(diào)和函數(shù)之間共享數(shù)據(jù)的變量。函數(shù)和屬性都分公有和私有。私有函數(shù)和屬性都是只在App內(nèi)部使用。
結(jié)合數(shù)字信號(hào)處理的教學(xué)內(nèi)容和信號(hào)處理的基本過(guò)程所涉及的概念和原理,分信號(hào)及其基本運(yùn)算、傅里葉變換和分析、濾波器設(shè)計(jì)、綜合應(yīng)用4個(gè)部分介紹本設(shè)計(jì)的實(shí)現(xiàn)過(guò)程。
由于數(shù)字信號(hào)是自變量和幅度都是離散的信號(hào),為了能夠利用數(shù)字系統(tǒng)處理連續(xù)時(shí)間信號(hào),要對(duì)連續(xù)時(shí)間信號(hào)進(jìn)行抽樣,轉(zhuǎn)換成離散時(shí)間信號(hào),離散時(shí)間信號(hào)再進(jìn)行量化編碼得到數(shù)字信號(hào)[8]。
在這一部分,設(shè)計(jì)了利用MATLAB生成所需要的正弦波、方波、鋸齒波、離散序列等信號(hào)的波形,以及序列的基本運(yùn)算如相加、相乘、移位、延拓、卷積。界面如圖2所示,演示的是指數(shù)序列x[k]和矩形序列h[k]的卷積的結(jié)果。通過(guò)設(shè)計(jì)動(dòng)態(tài)的計(jì)算過(guò)程,可以直觀看到其結(jié)果,也可以看到序列的起點(diǎn)和終點(diǎn)、序列長(zhǎng)度等,任何復(fù)雜的信號(hào)都可以轉(zhuǎn)換成為對(duì)基本信號(hào)的基本運(yùn)算的分析。

圖2 常見(jiàn)信號(hào)的認(rèn)識(shí)和序列的基本運(yùn)算
信號(hào)的傅里葉變換建立了信號(hào)的時(shí)域和頻率的對(duì)應(yīng)關(guān)系,信號(hào)的頻域分析在濾波、檢測(cè)方面有更加清晰的物理概念。對(duì)信號(hào)進(jìn)行頻譜分析時(shí),要對(duì)信號(hào)做傅里葉變換得到信號(hào)對(duì)應(yīng)的頻譜函數(shù)。
在實(shí)際的研究工作中,計(jì)算機(jī)采集有限長(zhǎng)的序列,根據(jù)信號(hào)抽樣定理可以將四種信號(hào)的頻譜分析轉(zhuǎn)換成有限長(zhǎng)序列的離散傅里葉變換(DFT),用DFT對(duì)連續(xù)非周期信號(hào)進(jìn)行近似分析時(shí),會(huì)出現(xiàn)混疊、泄露和柵欄現(xiàn)象,這些現(xiàn)象都可以通過(guò)本系統(tǒng)進(jìn)行直觀的演示。
本設(shè)計(jì)以信號(hào)xa(t)為例,以抽樣頻率fsam分別為1 000 Hz、400 Hz、100 Hz對(duì)x(t)進(jìn)行等間隔抽樣,得到x[k],觀察不同抽樣頻率下的抽樣信號(hào)x[k]及其幅頻特性函數(shù),以及抽樣頻率和混疊程度的關(guān)系。設(shè)連續(xù)信號(hào)為
Xa(t)=Ae-atsin(ωt)
(1)
若利用有限長(zhǎng)序列的DFT分析xa(t)的傅里葉變換X(jw),要先對(duì)xa(t)離散化,得到的信號(hào)用x[k]表示。T為抽樣間隔,T=1/fsam,
x[k]=x(t)|t=kT
(2)
離散信號(hào)x[k]的頻譜X(ejΩ)與連續(xù)信號(hào)xa(t)的頻譜Xa(jw)之間的關(guān)系:
(3)
其中,Ω=wT。
由以上公式可知,抽樣信號(hào)的頻譜函數(shù)是原來(lái)模擬信號(hào)的頻譜函數(shù)的周期延拓。采樣頻率fsam必須大于2倍的模擬信號(hào)的最大頻率f。抽樣后得到的X(ejΩ)才不會(huì)發(fā)生混疊失真。如圖3所示,其中采樣頻率可以通過(guò)對(duì)話框輸入,當(dāng)輸入1 000時(shí),得到的抽樣序列及幅度譜。若輸入400以下,開(kāi)始清楚地看到頻譜的混疊較大,隨著采樣頻率的減小,混疊現(xiàn)象加大。

圖3 信號(hào)的采樣及其頻率
濾波器設(shè)計(jì)包含IIR 濾波器和FIR濾波器,分為低通、高通、帶通和帶阻。根據(jù)給定的濾波器技術(shù)指標(biāo),設(shè)計(jì)符合要求的濾波器。
濾波器設(shè)計(jì)窗口按功能可分為兩個(gè)區(qū)域:濾波器設(shè)計(jì)選擇區(qū)域,包含濾波器類(lèi)型、模擬濾波器模型選擇及參數(shù)設(shè)置區(qū)域;濾波器波形顯示區(qū)域顯示按輸入?yún)?shù)要求設(shè)計(jì)的濾波器幅度響應(yīng)特性曲線。
IIR數(shù)字濾波器,以模擬低通濾波器為基礎(chǔ),模擬濾波器再轉(zhuǎn)換成為數(shù)字濾波器。比較常用的模擬低通濾波器Butterworth、Chebyshev和Cauer型。使用不同的模型,設(shè)計(jì)出來(lái)的濾波器有不同的幅度頻率響應(yīng),可以從圖4直觀觀察到。圖4(a)是IIR低通濾波器,采用ChebyshevI模型,設(shè)置好相應(yīng)的參數(shù)之后得到的濾波器的幅頻響應(yīng)圖。
FIR濾波器的設(shè)計(jì)通常根據(jù)理想濾波器的頻率響應(yīng)Hd(ejΩ),采樣用窗函數(shù)法、頻率采樣法等設(shè)計(jì)的濾波器的頻率響應(yīng)H(ejΩ)去逼近理想頻率響應(yīng)Hd(ejΩ)。選擇不同的窗函數(shù)實(shí)現(xiàn)出來(lái)的濾波器有性能上的差別。在FIR濾波器設(shè)計(jì)界面中,設(shè)置好相應(yīng)的濾波器參數(shù),并選擇濾波器窗函數(shù)(矩形窗、Hann窗、Hamming窗、Blackman窗、Kaiser窗)類(lèi)型。圖4(b)是基于Hamming窗的FIR帶通濾波器幅度響應(yīng)曲線。

圖4 濾波器的幅頻特性圖
通過(guò)對(duì)比,可以了解相同指標(biāo)下,不同模板設(shè)計(jì)的IIR濾波器的性能差別,不同窗函數(shù)設(shè)計(jì)的FIR濾波器性能不同。IIR濾波器和FIR濾波器的性能差別。在實(shí)際應(yīng)用中要根據(jù)工程的實(shí)際需求選擇合適類(lèi)型的濾波器。
設(shè)計(jì)好的濾波器在實(shí)際的工程應(yīng)用中,能不能實(shí)現(xiàn)預(yù)想的功能?本文提出綜合性實(shí)踐應(yīng)用,分為語(yǔ)音信號(hào)處理系統(tǒng)和圖像處理系統(tǒng),既是前面幾個(gè)部分的理論應(yīng)用,也可以增加學(xué)習(xí)的趣味性,作為一個(gè)拋磚引玉的作用,使數(shù)字信號(hào)處理的學(xué)習(xí)不只是公式的推導(dǎo)和理論的疊加,而是日常實(shí)在的工程應(yīng)用,也幫助學(xué)生建立起數(shù)字信號(hào)處理的大概流程與基本概念。
2.4.1 語(yǔ)音處理
含有加性噪聲的信號(hào)s(t)的數(shù)學(xué)模型一般為
s(t)=x(t)+noise
(4)
其中,x(t)是有用信號(hào),noise是噪聲,對(duì)信號(hào)s(t)進(jìn)行去噪處理的目的就是抑制噪聲信號(hào)分量而恢復(fù)信號(hào)x(t)。
語(yǔ)音信號(hào)是日常生活中最常見(jiàn)的信號(hào),以比較容易獲取的語(yǔ)音信號(hào)作為處理對(duì)象,可以從電腦中導(dǎo)入已有的文件,也可以借助麥克風(fēng)錄入語(yǔ)音。涉及了數(shù)字信號(hào)處理的信號(hào)采集、處理、重建輸出的全過(guò)程,如圖5所示。

圖5 數(shù)字信號(hào)處理基本過(guò)程
語(yǔ)音處理模塊的設(shè)計(jì)如圖6所示,分別是信號(hào)采集、加噪濾波、播放音頻。為深入理解奈奎斯特抽樣定理,以及如何設(shè)置抽樣頻率,采樣頻率也可以自主輸入,進(jìn)行實(shí)時(shí)語(yǔ)音信號(hào)采集,對(duì)比采集的音頻信號(hào)的效果驗(yàn)證采樣定理的內(nèi)容。語(yǔ)音信號(hào)導(dǎo)入后即在坐標(biāo)區(qū)顯示其時(shí)域信號(hào)和頻譜圖。
讀入語(yǔ)音文件并播放:用audioread命令讀取設(shè)備存儲(chǔ)的wav或mp3文件。
[y,Fs]=audioread(filename)語(yǔ)句中,y返回讀取的音頻信號(hào),F(xiàn)s返回采樣頻率。
用sound指令播放語(yǔ)音,sound(y,Fs)以正常速度播放音頻,F(xiàn)s乘于系數(shù),可以調(diào)整語(yǔ)音播放速度。
加入噪聲
為了驗(yàn)證所設(shè)計(jì)濾波器的有效性,需要引入加噪語(yǔ)音信號(hào),設(shè)置了添加噪聲選項(xiàng)卡,可以設(shè)置噪聲強(qiáng)度或信噪比,選擇噪聲類(lèi)型。本例噪聲由MATLAB的隨機(jī)函數(shù)randn得到,randn函數(shù)的調(diào)用格式為randn(m,n),返回的是一個(gè)m*n的隨機(jī)項(xiàng)矩陣。設(shè)置好噪聲強(qiáng)度后,噪聲信號(hào)也可以確定下來(lái),加入噪聲以后的加噪語(yǔ)音信號(hào)y的大小是:
y=x+noise
(5)
將噪聲混入信號(hào)源中,利用MATLAB強(qiáng)大的圖形功能可以分別觀察原始語(yǔ)音信號(hào)和加噪語(yǔ)音信號(hào)時(shí)域波形和頻域波形。根據(jù)語(yǔ)音信號(hào)的特點(diǎn),設(shè)置合適的濾波器參數(shù),可以從圖上觀察不同類(lèi)型的濾波器的時(shí)域和頻域圖,對(duì)比不同類(lèi)型濾波器對(duì)信號(hào)的處理效果,也可以實(shí)時(shí)播放處理前后的語(yǔ)音文件,從聽(tīng)覺(jué)上直觀感受濾波的效果。界面如圖6所示。同樣指標(biāo)下分別采用IIR橢圓濾波器、FIR布萊克曼窗濾波器、自適應(yīng)濾波器對(duì)語(yǔ)音處理后的結(jié)果。
從圖6原始信號(hào)的波形圖上可以看出,語(yǔ)音的主要頻率分布在2 000 Hz以?xún)?nèi), 播放音頻也可以聽(tīng)出是一個(gè)女聲說(shuō)話。
加了信噪比0.1的隨機(jī)噪聲以后,語(yǔ)音的主要頻率還是分布同一個(gè)范圍,其他頻率上的幅度分布比較均勻,這是加了噪聲的原因。
利用不同的濾波器對(duì)語(yǔ)音信號(hào)進(jìn)行處理,對(duì)比了IIR的濾波器、FIR濾波器和其他方法濾波器,從圖6(c)上可以看出,相對(duì)來(lái)說(shuō)最好的濾波效果是自適應(yīng)濾波器。但是還不是最好的去噪效果,教學(xué)過(guò)程中可以師生討論分析可能的原因。引導(dǎo)學(xué)生了解語(yǔ)音信號(hào)其實(shí)并不是嚴(yán)格平穩(wěn)信號(hào),要提高去噪質(zhì)量,還需要考慮對(duì)音頻進(jìn)行分幀,對(duì)信號(hào)預(yù)處理及后續(xù)的平滑處理等。

(a)
2.4.2 圖像處理
數(shù)字圖像處理有很好的再現(xiàn)性,不會(huì)因?yàn)閳D像的存儲(chǔ)、傳輸或復(fù)制等變換而導(dǎo)致圖像質(zhì)量的退化,利用圖像處理技術(shù)可以對(duì)圖像進(jìn)行圖像分析、重建和圖像質(zhì)量改善等。圖像處理在近幾十年迅速發(fā)展,應(yīng)用在人類(lèi)生活和工作的方方面面,例如生物醫(yī)學(xué)、通信工程、智能制造等方面都有廣泛應(yīng)用,也可以作為啟發(fā)數(shù)字信號(hào)處理的學(xué)習(xí)、拓展學(xué)習(xí)方向引入,并以一些簡(jiǎn)單的數(shù)字圖像處理作為例子,增加學(xué)習(xí)的趣味性。圖7是圖像處理,對(duì)處理對(duì)象加椒鹽噪聲,再中值濾波的應(yīng)用。

圖7 圖像處理
本系統(tǒng)利用MATLAB App的特點(diǎn),結(jié)合數(shù)字信號(hào)處理課程對(duì)課堂上的抽象知識(shí)點(diǎn)進(jìn)行動(dòng)態(tài)仿真,把繁瑣抽象的原理以直觀簡(jiǎn)潔圖形的方式表現(xiàn)出來(lái),輔助課堂教學(xué),不僅使課堂教學(xué)生動(dòng)有趣,也緩解了使用者的編程壓力,把涉及高等數(shù)學(xué)、線性代數(shù)、復(fù)變函數(shù)的數(shù)字信號(hào)課程理論具體化、形象化;還可用于后續(xù)的語(yǔ)音處理圖像處等,提高了學(xué)習(xí)的效率,擴(kuò)展了學(xué)生的視野。經(jīng)教學(xué)實(shí)踐檢驗(yàn),收到良好效果。