[摘 要]本文通過幾個Matlab仿真演示的實例,說明了在數字信號處理教學中采用Matlab仿真演示的教學效果,使數字信號處理中的抽象、難懂的基本概念和基本原理轉化成易懂、直觀的圖形圖像形式,較好地幫助學生理解課堂講授內容,提高了學生的學習興趣,有效地提高教學質量和效果。
[關鍵詞]數字信號處理 Matlab 仿真演示
[中圖分類號] G642.0 [文獻標識碼] A [文章編號] 2095-3437(2013)24-0085-02
一、前言
隨著計算機技術和信息科學的飛速發展,數字信號處理已成為信息科學的重要組成部分,在眾多領域都得到了廣泛的應用。因此,作為電子信息類和相關學科本科專業的數字信號處理課程是主要專業基礎課之一 ,具有十分重要的地位。在教學實踐中,如何幫助學生掌握基本理論和基本分析方法,提高學生的理論水平和應用能力,最終讓學生產生學習興趣是教學的重點和難點。
本文以Matlab仿真演示教學為重點,闡述仿真演示教學作用和意義,并利用Matlab給出幾個軟件仿真演示實例,加深學生對教學內容的理解和掌握,還可以從仿真實現的方法中提高學生軟件編程能力。
二、仿真演示實例分析
(一)圓周卷積等于線性卷積的條件
若x1(n)為M點序列,x2(n)為L點序列,N為圓周卷積的點數,圓周卷積等于線性卷積的必要條件:N≥M+L-1。為了讓同學加深理解,通過Matlab仿真舉例說明。首先根據圓周卷積的定義,在Matlab中編寫圓周卷積的程序。如:x1(n)={1,1,1},x2(n)={1,1,0,1},分別計算兩序列的線性卷積和4、5、6、7、8點的圓周卷積,yconv為線性卷積,ycir分別為n點的圓周卷積,列出計算結果并作圖1所示。
yconv=1 2 2 2 1 1
ycir4= 2 3 2 2
ycir5= 2 2 2 2 1
ycir6= 1 2 2 2 1 1
ycir7= 1 2 2 2 1 1 0
ycir8= 1 2 2 2 1 1 0 0
■
圖1線性卷積與n點圓周卷積計算結果圖 圖2衰減正弦序列的時域圖、頻域圖
通過上面的例子,M=3,L=4,明顯看出N=6、7、8(≥M+L-1)點的圓周卷積等于線性卷積,強有力的驗證了圓周卷積等于線性卷積的條件。
(二)用DFT進行頻譜分析時的誤差演示
DFT是對序列傅立葉變換的等距采樣,因此可以用于序列的頻譜分析。在運用DFT進行頻譜分析的時候可能有三種誤差,(1)混疊現象;(2)泄漏現象;(3)柵欄效應。僅僅靠講解比較空洞,我們用具體的例子加以說明。
例1 已知衰減正弦序列如下:x(n)=e-αsin2πfn,0≤n≤150,else,當固定取α=0.1,而f取不同值時,分別取f=0.0625、f=0.4375和f=0.5625時,用Matlab編程計算并作出其時域圖和頻域圖如圖2所示。
f=0.4375和f=0.5625時,其DFT頻譜看似相同,其實有本質差異。由n=0,1,2,3,…,14,15可知采樣頻率為1,當f=0.0625、f=0.4375時,滿足奈奎斯特采樣定律,因此對應的DFT頻譜沒有混疊;而f=0.5625時,不能滿足奈奎斯特采樣定律,對應的DFT頻譜發生了混疊,其頻譜不能真實反映實際頻譜,這就是用DFT來逼近連續時間信號的傅里葉變換時可能出現的混疊現象。
例2 一個高斯序列的解析式如下:x(n)=e■,0≤n≤150,else,當固定取q=8,而p取不同值時,用Matlab編程計算并作出其對應的時域和頻域圖形如圖3所示。時域圖形看出,p=8時波形較完整,p=13和14時波形被截斷;頻域圖形看出,時域波形被截斷,對應頻譜的高頻成分增加了,就好像原來集中在低頻部分的頻譜泄漏出來了,反映了DFT逼近連續時間信號的傅里葉變換時頻譜泄漏現象。
■
圖3 高斯序列的時域圖、頻域圖
■
圖4 三角波與反三角波序列的時域圖、頻域圖
例3 三角波序列的解析式如下:xc(n)=n+1,0≤n≤38-n,4≤n≤70,else,反三角波序列的解析式如下:xd(n)=4-n,0≤n≤3n-3,4≤n≤70,else。用Matlab編程分別進行8點和16點DFT計算,并作出對應的時域和頻域圖形如圖4所示。正三角波序列的8點DFT和16點DFT基本一致,而反三角波序列的8點DFT和16點DFT有明顯差異,表明正三角和反三角序列的頻譜有明顯不同的特征,這種不同特征在8點DFT時沒能反映出來,而在16點DFT中反映出來了,說明了反三角序列的8點DFT出現了柵欄效應。
通過上面三個例子的演示,讓同學較直觀地了解應用FFT(DFT的快速算法)進行信號頻譜分析過程中可能出現的問題,以便在實際中正確應用FFT。
(三)用iir濾波器進行語音信號處理
在課堂上現場進行語音信號的采集,通過Matlab編程將其加上f1=10000、f2=15000、f3=6000三種頻率的噪音信號,分別分析加噪前、后的頻譜,如圖5所示。然后又通過Matlab中的濾波器設計分析工具箱設計低通濾波器,編程對加噪后的語音信號進行濾波,分析濾波前、后的頻譜如圖6所示。并將加噪前后和濾波后的語音信號放給同學聽,讓同學對比。通過同學的參與和演示,讓同學清楚了濾波器的參數選取和濾波的程序設計,收到很好的教學效果。
■
圖5 加噪前、后的語音頻譜圖
■
圖6 濾波前、后的語音頻譜圖
三、結束語
本文通過MATLAB的現場仿真,給學生演示重要理論的推導過程,將抽象、難懂的基本概念和基本原理轉化成易懂、直觀的圖形圖像形式,使得課堂教學更加直觀、生動、活潑、緊湊,提高了學生的學習興趣。較好地幫助學生理解課堂講授內容。因此,在教學中使用仿真工具,可以有效地提高教學質量和效果。
[ 參 考 文 獻 ]
[1] 程佩青.程數字信號處理教程(第三版)[M].北京:清華大學出版社,2012.
[2] 丁玉美,高西全.數字信號處理[M].西安:西安電子科技大學出版社,2006.
[3] 薛年喜.MATLAB在數字信號處理中的應用(第2版)(高等院校計算機應用技術系列教材)[M].北京:清華大學出版社,2008.
[4] 趙發勇.數字信號處理教學研究:仿真演示教學[J].阜陽師范學院學報(自然科學版),2013,30(1):84-87.
[5] 余成波.數字信號處理及MATLAB實現[M].北京:清華大學出版社,2008.
[責任編輯:左 蕓]