曾惠霞
(廣州城市理工學院, 電子信息工程學院, 廣東, 廣州 510800)
“數(shù)字信號處理”是一門理論性強、概念抽象、公式繁瑣、內(nèi)容復雜的課程。在教學過程中,學生很難通過教師的語言描述或者課本的圖文學習直觀理解復雜的理論,理解不了就很難掌握和應用理論。針對這些問題,人們利用MATLAB GUI設計的數(shù)字信號處理輔助教學平臺[1-4],或者提出將多生理信號采集與分析、語音信號處理等工程案例引入教學[5-7],從而幫助學生更直觀的理解基本理論和概念,提高學生學習興趣,提高教學質(zhì)量方面都取得不錯的成效。
本文提出利用MATLAB App Designer設計的一款數(shù)字信號處理輔助教學系統(tǒng),針對信號采集、信號分析、信號處理的過程,結(jié)合數(shù)字信號處理課程的特點,將常見信號及其運算、傅里葉變換及分析、濾波器設計、綜合應用等功能進行可視化處理。教師用本系統(tǒng)作課堂教學的演示以及用在實驗輔助上,現(xiàn)象直觀生動,教學更深入淺出、淺顯易懂。系統(tǒng)的界面簡潔友好、操作簡單,實驗現(xiàn)象圖文并茂,增強了學生的學習興趣,降低了理解難度,提高了教學效率,達到了激發(fā)學生學習興趣、節(jié)省學習時間、增強理解記憶的目的。
本文基于MATLAB App Designer開發(fā)的系統(tǒng),將“數(shù)字信號處理”過程的理論設計成代碼的形式,用戶在App界面設置輸入?yún)?shù),實現(xiàn)功能的圖像化輸出。MATLAB App Designer提供了設計視圖和代碼視圖,設計視圖用來放置控件,代碼視圖進行回調(diào)函數(shù)的編寫,設計視圖/代碼視圖區(qū)可以切換。系統(tǒng)設計好以后,可以用MATLAB軟件提供的“共享”對系統(tǒng)進行打包發(fā)布成Web App形式或者獨立的桌面App應用。
本設計采用自頂向下的設計方法,整體框架如圖1所示。數(shù)字信號處理教學輔助系統(tǒng)分為四部分,其中濾波器設計又分IIR濾波器設計、FIR濾波器設計,綜合應用分為語音處理和圖像處理。
圖1 系統(tǒng)的整體框架
App的設計創(chuàng)建步驟如下。
(1) 根據(jù)需要,確定好需要設計的總體框架,并設計好App的文件和幫助菜單。放置相應的標簽設計App的標題,選擇選項卡組,可以讓每個功能獨立一個界面,允許用戶在不同的選項卡組之間自由選擇。
(2) 布置每個選項卡組界面,放置相應的基本控件并排列美觀整潔。放置好控件后通過屬性查看器修改控件的大小、形狀、背景顏色、字體等屬性。
(3) 編寫控件的回調(diào)函數(shù)并調(diào)試功能。回調(diào)函數(shù)是實現(xiàn)交互的關鍵。
如果設計視圖進行App框架和外形的設計,那么代碼視圖特別是回調(diào) (callback)函數(shù)則是App設計的靈魂,是實現(xiàn)整個設計按鍵交互功能的關鍵。
具體實現(xiàn)的方法:在設計視圖中,選中組件比如按鍵(Button);然后右鍵選擇添加這個組件的回調(diào)函數(shù),進入代碼視圖,灰色區(qū)域代碼是在拖入組件后自動生成,不可修改。白色區(qū)域是可以編輯的部分,在此處添加代碼。App Designer 中,通過添加回調(diào)函數(shù)、函數(shù)和屬性對 App 進行代碼編寫?;卣{(diào)函數(shù)響應用戶交互,例如當點擊按鈕即執(zhí)行某些操作。函數(shù)可以是實現(xiàn)某些功能的輔助函數(shù),屬性是創(chuàng)建了用來存儲在回調(diào)和函數(shù)之間共享數(shù)據(jù)的變量。函數(shù)和屬性都分公有和私有。私有函數(shù)和屬性都是只在App內(nèi)部使用。
結(jié)合數(shù)字信號處理的教學內(nèi)容和信號處理的基本過程所涉及的概念和原理,分信號及其基本運算、傅里葉變換和分析、濾波器設計、綜合應用4個部分介紹本設計的實現(xiàn)過程。
由于數(shù)字信號是自變量和幅度都是離散的信號,為了能夠利用數(shù)字系統(tǒng)處理連續(xù)時間信號,要對連續(xù)時間信號進行抽樣,轉(zhuǎn)換成離散時間信號,離散時間信號再進行量化編碼得到數(shù)字信號[8]。
在這一部分,設計了利用MATLAB生成所需要的正弦波、方波、鋸齒波、離散序列等信號的波形,以及序列的基本運算如相加、相乘、移位、延拓、卷積。界面如圖2所示,演示的是指數(shù)序列x[k]和矩形序列h[k]的卷積的結(jié)果。通過設計動態(tài)的計算過程,可以直觀看到其結(jié)果,也可以看到序列的起點和終點、序列長度等,任何復雜的信號都可以轉(zhuǎn)換成為對基本信號的基本運算的分析。
圖2 常見信號的認識和序列的基本運算
信號的傅里葉變換建立了信號的時域和頻率的對應關系,信號的頻域分析在濾波、檢測方面有更加清晰的物理概念。對信號進行頻譜分析時,要對信號做傅里葉變換得到信號對應的頻譜函數(shù)。
在實際的研究工作中,計算機采集有限長的序列,根據(jù)信號抽樣定理可以將四種信號的頻譜分析轉(zhuǎn)換成有限長序列的離散傅里葉變換(DFT),用DFT對連續(xù)非周期信號進行近似分析時,會出現(xiàn)混疊、泄露和柵欄現(xiàn)象,這些現(xiàn)象都可以通過本系統(tǒng)進行直觀的演示。
本設計以信號xa(t)為例,以抽樣頻率fsam分別為1 000 Hz、400 Hz、100 Hz對x(t)進行等間隔抽樣,得到x[k],觀察不同抽樣頻率下的抽樣信號x[k]及其幅頻特性函數(shù),以及抽樣頻率和混疊程度的關系。設連續(xù)信號為
Xa(t)=Ae-atsin(ωt)
(1)
若利用有限長序列的DFT分析xa(t)的傅里葉變換X(jw),要先對xa(t)離散化,得到的信號用x[k]表示。T為抽樣間隔,T=1/fsam,
x[k]=x(t)|t=kT
(2)
離散信號x[k]的頻譜X(ejΩ)與連續(xù)信號xa(t)的頻譜Xa(jw)之間的關系:
(3)
其中,Ω=wT。
由以上公式可知,抽樣信號的頻譜函數(shù)是原來模擬信號的頻譜函數(shù)的周期延拓。采樣頻率fsam必須大于2倍的模擬信號的最大頻率f。抽樣后得到的X(ejΩ)才不會發(fā)生混疊失真。如圖3所示,其中采樣頻率可以通過對話框輸入,當輸入1 000時,得到的抽樣序列及幅度譜。若輸入400以下,開始清楚地看到頻譜的混疊較大,隨著采樣頻率的減小,混疊現(xiàn)象加大。
圖3 信號的采樣及其頻率
濾波器設計包含IIR 濾波器和FIR濾波器,分為低通、高通、帶通和帶阻。根據(jù)給定的濾波器技術指標,設計符合要求的濾波器。
濾波器設計窗口按功能可分為兩個區(qū)域:濾波器設計選擇區(qū)域,包含濾波器類型、模擬濾波器模型選擇及參數(shù)設置區(qū)域;濾波器波形顯示區(qū)域顯示按輸入?yún)?shù)要求設計的濾波器幅度響應特性曲線。
IIR數(shù)字濾波器,以模擬低通濾波器為基礎,模擬濾波器再轉(zhuǎn)換成為數(shù)字濾波器。比較常用的模擬低通濾波器Butterworth、Chebyshev和Cauer型。使用不同的模型,設計出來的濾波器有不同的幅度頻率響應,可以從圖4直觀觀察到。圖4(a)是IIR低通濾波器,采用ChebyshevI模型,設置好相應的參數(shù)之后得到的濾波器的幅頻響應圖。
FIR濾波器的設計通常根據(jù)理想濾波器的頻率響應Hd(ejΩ),采樣用窗函數(shù)法、頻率采樣法等設計的濾波器的頻率響應H(ejΩ)去逼近理想頻率響應Hd(ejΩ)。選擇不同的窗函數(shù)實現(xiàn)出來的濾波器有性能上的差別。在FIR濾波器設計界面中,設置好相應的濾波器參數(shù),并選擇濾波器窗函數(shù)(矩形窗、Hann窗、Hamming窗、Blackman窗、Kaiser窗)類型。圖4(b)是基于Hamming窗的FIR帶通濾波器幅度響應曲線。
圖4 濾波器的幅頻特性圖
通過對比,可以了解相同指標下,不同模板設計的IIR濾波器的性能差別,不同窗函數(shù)設計的FIR濾波器性能不同。IIR濾波器和FIR濾波器的性能差別。在實際應用中要根據(jù)工程的實際需求選擇合適類型的濾波器。
設計好的濾波器在實際的工程應用中,能不能實現(xiàn)預想的功能?本文提出綜合性實踐應用,分為語音信號處理系統(tǒng)和圖像處理系統(tǒng),既是前面幾個部分的理論應用,也可以增加學習的趣味性,作為一個拋磚引玉的作用,使數(shù)字信號處理的學習不只是公式的推導和理論的疊加,而是日常實在的工程應用,也幫助學生建立起數(shù)字信號處理的大概流程與基本概念。
2.4.1 語音處理
含有加性噪聲的信號s(t)的數(shù)學模型一般為
s(t)=x(t)+noise
(4)
其中,x(t)是有用信號,noise是噪聲,對信號s(t)進行去噪處理的目的就是抑制噪聲信號分量而恢復信號x(t)。
語音信號是日常生活中最常見的信號,以比較容易獲取的語音信號作為處理對象,可以從電腦中導入已有的文件,也可以借助麥克風錄入語音。涉及了數(shù)字信號處理的信號采集、處理、重建輸出的全過程,如圖5所示。
圖5 數(shù)字信號處理基本過程
語音處理模塊的設計如圖6所示,分別是信號采集、加噪濾波、播放音頻。為深入理解奈奎斯特抽樣定理,以及如何設置抽樣頻率,采樣頻率也可以自主輸入,進行實時語音信號采集,對比采集的音頻信號的效果驗證采樣定理的內(nèi)容。語音信號導入后即在坐標區(qū)顯示其時域信號和頻譜圖。
讀入語音文件并播放:用audioread命令讀取設備存儲的wav或mp3文件。
[y,Fs]=audioread(filename)語句中,y返回讀取的音頻信號,F(xiàn)s返回采樣頻率。
用sound指令播放語音,sound(y,Fs)以正常速度播放音頻,F(xiàn)s乘于系數(shù),可以調(diào)整語音播放速度。
加入噪聲
為了驗證所設計濾波器的有效性,需要引入加噪語音信號,設置了添加噪聲選項卡,可以設置噪聲強度或信噪比,選擇噪聲類型。本例噪聲由MATLAB的隨機函數(shù)randn得到,randn函數(shù)的調(diào)用格式為randn(m,n),返回的是一個m*n的隨機項矩陣。設置好噪聲強度后,噪聲信號也可以確定下來,加入噪聲以后的加噪語音信號y的大小是:
y=x+noise
(5)
將噪聲混入信號源中,利用MATLAB強大的圖形功能可以分別觀察原始語音信號和加噪語音信號時域波形和頻域波形。根據(jù)語音信號的特點,設置合適的濾波器參數(shù),可以從圖上觀察不同類型的濾波器的時域和頻域圖,對比不同類型濾波器對信號的處理效果,也可以實時播放處理前后的語音文件,從聽覺上直觀感受濾波的效果。界面如圖6所示。同樣指標下分別采用IIR橢圓濾波器、FIR布萊克曼窗濾波器、自適應濾波器對語音處理后的結(jié)果。
從圖6原始信號的波形圖上可以看出,語音的主要頻率分布在2 000 Hz以內(nèi), 播放音頻也可以聽出是一個女聲說話。
加了信噪比0.1的隨機噪聲以后,語音的主要頻率還是分布同一個范圍,其他頻率上的幅度分布比較均勻,這是加了噪聲的原因。
利用不同的濾波器對語音信號進行處理,對比了IIR的濾波器、FIR濾波器和其他方法濾波器,從圖6(c)上可以看出,相對來說最好的濾波效果是自適應濾波器。但是還不是最好的去噪效果,教學過程中可以師生討論分析可能的原因。引導學生了解語音信號其實并不是嚴格平穩(wěn)信號,要提高去噪質(zhì)量,還需要考慮對音頻進行分幀,對信號預處理及后續(xù)的平滑處理等。
(a)
2.4.2 圖像處理
數(shù)字圖像處理有很好的再現(xiàn)性,不會因為圖像的存儲、傳輸或復制等變換而導致圖像質(zhì)量的退化,利用圖像處理技術可以對圖像進行圖像分析、重建和圖像質(zhì)量改善等。圖像處理在近幾十年迅速發(fā)展,應用在人類生活和工作的方方面面,例如生物醫(yī)學、通信工程、智能制造等方面都有廣泛應用,也可以作為啟發(fā)數(shù)字信號處理的學習、拓展學習方向引入,并以一些簡單的數(shù)字圖像處理作為例子,增加學習的趣味性。圖7是圖像處理,對處理對象加椒鹽噪聲,再中值濾波的應用。
圖7 圖像處理
本系統(tǒng)利用MATLAB App的特點,結(jié)合數(shù)字信號處理課程對課堂上的抽象知識點進行動態(tài)仿真,把繁瑣抽象的原理以直觀簡潔圖形的方式表現(xiàn)出來,輔助課堂教學,不僅使課堂教學生動有趣,也緩解了使用者的編程壓力,把涉及高等數(shù)學、線性代數(shù)、復變函數(shù)的數(shù)字信號課程理論具體化、形象化;還可用于后續(xù)的語音處理圖像處等,提高了學習的效率,擴展了學生的視野。經(jīng)教學實踐檢驗,收到良好效果。