方焯 陳西曲 劉衛(wèi)華 陳良艷
基金項目:
湖北省高等學(xué)校省級教學(xué)研究項目:以能力提升為核心的電子信息科學(xué)與技術(shù)專業(yè)戰(zhàn)略性新興產(chǎn)業(yè)人才培養(yǎng)模式的探索與實踐(2014322);電子信息科學(xué)與技術(shù)戰(zhàn)略性新興產(chǎn)業(yè)專業(yè)人才培養(yǎng)方案與教學(xué)方法改革的研究(2013317)。
摘 要
本文將 MATLAB 軟件引入到數(shù)字信號處理的理論教學(xué)中,介紹了離散時間信號的顯示與運算和離散系統(tǒng)的分析。通過運用 MATLAB 軟件自帶的函數(shù)可以很方便地畫出離散時間信號的圖形、離散信號的頻譜以及離散系統(tǒng)的零極點圖和頻率響應(yīng)曲線。
關(guān)鍵詞
數(shù)字信號處理;MATLAB;零極點
中圖分類號: TN911.72-4;G712 文獻標識碼: A
DOI:10.19694/j.cnki.issn2095-2457.2020.03.011
自從20世紀70年代采用第一塊數(shù)字信號處理芯片以來,數(shù)字信號處理技術(shù)不斷地發(fā)展。隨著DSP(數(shù)字信號處理)處理器速度和精密性的飛速發(fā)展以及計算能力相應(yīng)的增強,數(shù)字信號處理越來越多地進入人們生活的各個領(lǐng)域。掌握數(shù)字信號處理的基本概念和方法,是電子信息、電信科學(xué)等專業(yè)所必備的。通過數(shù)字信號處理課程的學(xué)習(xí),可以深入理解離散時間信號及其處理,并且為DSP技術(shù)、通信理論與技術(shù)、無線電技術(shù)、微機應(yīng)用、電路系統(tǒng)等專業(yè)課打下良好的基礎(chǔ)。為了更好地掌握數(shù)字信號處理的經(jīng)典理論及其應(yīng)用,以及數(shù)字信號處理基于計算機的方法,我們在教學(xué)方法上,將課堂教學(xué)、上機實驗與MATLAB有機地結(jié)合起來,使學(xué)生能夠充分掌握數(shù)字信號處理的基本技術(shù),為進一步的深入學(xué)習(xí)奠定良好的基礎(chǔ)[1]。
1 離散信號的顯示與運算
數(shù)字信號處理研究的對象是離散時間信號,而離散時間信號可以通過MATLAB工具中函數(shù)進行計算以及畫圖功能顯示[2]。如計算一個一階全通系統(tǒng)的單位采樣序列和矩形序列的響應(yīng)。其原理是線性時不變系統(tǒng)的響應(yīng)用filter函數(shù)或conv函數(shù)計算。其MATLAB程序流程如下:
H(z)=(1)
(1)生成單位采樣序列x1和長度為7的矩形序列x2。
(2)根據(jù)全通系統(tǒng)的函數(shù)表達式可以得出b=[-0.5 1]和a=[1 -0.5]。
(3)用filter函數(shù)得到單位采樣響應(yīng)h=filter(b,a,x1)和矩形響應(yīng)y2=filter(b,a,x2)。b和a分別為系統(tǒng)函數(shù)分子和分母的系數(shù)。
(4)也可以用conv函數(shù)計算x2與h的卷積y=conv(x2, h)。
(5)用stem函數(shù)畫出x1,x2,h,y2,y。
由圖1可以看出,單位采樣響應(yīng)和矩形序列的卷積與矩形響應(yīng)是相等的。同時也說明了我們既可以用filter函數(shù)又可以使用conv函數(shù)計算線性時不變系統(tǒng)的輸出。
圖1 輸入序列、相應(yīng)的響應(yīng)及矩形序列與單位采樣響應(yīng)的卷積
2 畫零極點圖和頻率響應(yīng)曲線
運用MATLAB工具能夠很方便的畫出系統(tǒng)的零極點圖和頻率響應(yīng)曲線。例如一個系統(tǒng)函數(shù)H(z)有一個零點z=2,兩個極點z=0.5exp(±j4π/3)。若該系統(tǒng)的直流增益為1,我們可以確定該系統(tǒng)的零極點圖和頻率響應(yīng)曲線。其原理是已知系統(tǒng)的零、極點可以用poly函數(shù)確定系統(tǒng)函數(shù)分子和分母的系統(tǒng),常系數(shù)可以由直流增益得到。依題意,直流增益為1,我們可以得到系統(tǒng)零極點的圖用zplane函數(shù)得到,數(shù)字系統(tǒng)的頻率響應(yīng)用freqz得到。其MATLAB程序流程如下:
H(ejw)|w=0=1(2)
(1)根據(jù)系統(tǒng)零點和極點可以確定系統(tǒng)函數(shù)分子和分母的系數(shù)。
(3)
常系數(shù)通過直流增益來計算,常系數(shù)為sum(a)/sum(b);
(2)用zplane(b,a)畫出系統(tǒng)函數(shù)的零極點圖;|
(3)用[H,w]=freqz(b,a,N)計算頻率響應(yīng),N為頻率的采樣點數(shù)。
圖2 非最小相位系統(tǒng)的零極點圖,單位采樣響應(yīng),幅頻響應(yīng)和相頻響應(yīng)
圖3 最小相位系統(tǒng)的零極點圖,單位采樣響應(yīng),幅頻響應(yīng)和相頻響應(yīng)
我們得到非最小相位系統(tǒng)的零極點圖,單位采樣響應(yīng),幅頻響應(yīng)和相頻響應(yīng),如圖2所示。進一步將零點移至以單位圓為對稱軸的鏡像位置得到一個最小相位系統(tǒng),重復(fù)前面的步驟得到圖3。圖2和圖3分別為零點在z=2和鏡像位置z=0.5,兩個極點都在z=0.5exp(±j4π/3)的系統(tǒng)的零極點圖,單位采樣響應(yīng),幅頻響應(yīng)和相頻響應(yīng)。比較可見,將零點由單位圓外移到單位圓內(nèi)的鏡像位置,由非最小相位系統(tǒng)變成了最小相位系統(tǒng),并沒有改變系統(tǒng)的幅頻響應(yīng),而單位采樣響應(yīng)和相頻響應(yīng)都有變化。圖2和圖3的h(0)都等于0,圖2的h(1)=-1.75,圖3的h(1)=3.5,可見最小相位系統(tǒng)的單位采樣響應(yīng)序列的能量集中在n=0附近,從相頻響應(yīng)曲線可以看出,最小相位系統(tǒng)的相頻響應(yīng)曲線的斜率較小,因此運用MATLAB可以很直觀的驗證最小相位系統(tǒng)具有較小的群延遲。
3 頻譜分析
圖4 三種抽樣方法得到的信號頻譜,(1)fs=3000Hz,N=60;(2)fs=1000Hz,N=60;(3)fs=3000Hz,N=20
運用MATLAB工具可以對離散時間信號做DFT頻譜分析,例如一個模擬信號用可以借助MATLAB軟件做頻譜分析。對模擬信號的表達式化簡得到公式(5),利用函數(shù)fft可以直接返回離散時間信號的頻域值。先由模擬信號采樣得到不同采樣頻率下的離散信號x,再用X=fft(x)函數(shù)可以直接得出信號的頻域值。我們得到圖4,可以看出模擬信號的頻譜在頻率為500Hz,600Hz,700Hz有峰值,其他頻率信號的幅度為零。頻譜分析如圖4所示,采樣頻率fs和采樣點數(shù)N分別為(1)fs=3000Hz,N=60;(2)fs=1000Hz,N=60;(3)fs=3000Hz,N=20??梢钥闯鰣D4。(1)能清晰地分辨出這三個峰值,而圖4。(2)的頻譜在k=30出現(xiàn)了混跌現(xiàn)象,圖4。(3)的抽樣點數(shù)太少了,峰值很模糊。根據(jù)奶奎斯特抽樣定理,抽樣頻率應(yīng)大于信號最高頻率的兩倍,因此抽樣頻率必須大于1400Hz,抽樣點數(shù)N≥fs/F0,F(xiàn)0為頻率分辨率,(3)的抽樣頻率為3k Hz,F(xiàn)0=100Hz,因此抽樣點數(shù)至少為30點,因此只有(1)的抽樣條件能使抽樣信號能分辨所有的頻率分量。
xa(t)=[1+cos(2π×100t)]cos(2π×600t)(4)
xa(t)=cos(2π×600t)+cos(2π×500t)+cos(2π×700t)(5)
4 結(jié)論
本文介紹了MATLAB在數(shù)字信號處理理論教學(xué)中的應(yīng)用??梢钥闯鯩ATLAB的引入為數(shù)字信號的處理提供了便捷的數(shù)值計算方法,讓數(shù)值信號處理的理論教學(xué)從大量的數(shù)據(jù)推導(dǎo)和計算中解放出來,使得數(shù)字信號處理簡單化、實用化,充分體現(xiàn)了MATLAB軟件在數(shù)字信號處理的理論教學(xué)中的優(yōu)越性。
參考文獻
[1]程佩青.數(shù)字信號處理教程[M].北京:清華大學(xué)出版社(第四版),2015.
[2]王永玉,孫衢.數(shù)字信號處理與應(yīng)用[M].北京:北京郵電大學(xué)出版社,2009.