易 婷
(復(fù)旦大學(xué) 微電子學(xué)院, 上海 200433)
基于Matlab的“數(shù)字信號(hào)處理”課程實(shí)驗(yàn)設(shè)計(jì)
易 婷
(復(fù)旦大學(xué) 微電子學(xué)院, 上海 200433)
本文設(shè)計(jì)了一個(gè)基于Matlab的“數(shù)字信號(hào)處理”課程綜合性實(shí)驗(yàn)。該實(shí)驗(yàn)把“數(shù)字信號(hào)處理”課程中的許多離散的知識(shí)點(diǎn)串接了起來(lái),包括采樣、量化、濾波器設(shè)計(jì)、濾波器實(shí)現(xiàn)、DFT/FFT和濾波器的有限字長(zhǎng)效應(yīng)等。教學(xué)實(shí)踐表明該實(shí)驗(yàn)有利于鞏固學(xué)生課堂上學(xué)到的理論知識(shí),提高學(xué)生的理論聯(lián)系實(shí)際的能力和動(dòng)手解決問(wèn)題的能力。
數(shù)字信號(hào)處理;綜合性實(shí)驗(yàn);Matlab
“數(shù)字信號(hào)處理”課程的主要內(nèi)容包括z變換、離散傅里葉變換(DFT)、快速傅里葉變換(FFT)、數(shù)字濾波器設(shè)計(jì)和實(shí)現(xiàn)以及數(shù)字信號(hào)處理中的有限字長(zhǎng)效應(yīng)等等[1]。在學(xué)習(xí)理論知識(shí)的同時(shí)或之后,引入實(shí)驗(yàn)將有助于學(xué)生更好地理解和掌握課程內(nèi)容[2-3]。筆者在教學(xué)過(guò)程中,設(shè)計(jì)了Matlab綜合性實(shí)驗(yàn)。該實(shí)驗(yàn)在不失趣味性的同時(shí),能把該課程中許多分散的知識(shí)點(diǎn)串接起來(lái)。教學(xué)實(shí)踐表明,該實(shí)驗(yàn)可以幫助學(xué)生更深入地理解本門課程,取得了較好的教學(xué)效果。
筆者所設(shè)計(jì)的Matlab實(shí)驗(yàn)如下:
對(duì)下式所示的輸入信號(hào)進(jìn)行濾波。
x=sin(100πt)+sin(480πt)
(1)
具體步驟為
(1)將輸入的模擬信號(hào)x進(jìn)行采樣和量化,得到12位精度的數(shù)字信號(hào);
(2)設(shè)計(jì)一個(gè)低通無(wú)限沖激響應(yīng)(IIR)濾波器,將輸入信號(hào)中的240 Hz的干擾濾除,要求濾波器的輸出信號(hào)中240 Hz處的噪聲功率比50 Hz處的信號(hào)功率低60 dB。
(3)設(shè)計(jì)一個(gè)高通有限沖激響應(yīng)(FIR)濾波器,將輸入信號(hào)中的50 Hz的干擾濾除,要求濾波器的輸出信號(hào)中50 Hz處的噪聲功率比240 Hz處的信號(hào)功率低60 dB。
(4)對(duì)于上述兩個(gè)濾波器,要求:給出理想濾波器的傳輸函數(shù)及頻率響應(yīng);給出系數(shù)量化后所得的新的濾波器的傳輸函數(shù)及頻率響應(yīng);確定濾波器實(shí)現(xiàn)所采用的結(jié)構(gòu),并給出該結(jié)構(gòu)中所用加法器和乘法器的位數(shù);將輸入的數(shù)字信號(hào)通過(guò)前一步實(shí)現(xiàn)的濾波器,畫出輸出信號(hào)的頻譜,確保濾波器性能滿足設(shè)計(jì)要求。
順利完成上述Matlab實(shí)驗(yàn),需要解決以下問(wèn)題:
(1)采樣頻率和FFT點(diǎn)數(shù)的選?。焊鶕?jù)采樣定理,采樣頻率只要不低于信號(hào)中所包含的最高頻率的兩倍,就可以從采樣后的離散時(shí)間信號(hào)中恢復(fù)出原始的模擬信號(hào)。根據(jù)式(1),采樣頻率只要不小于480 Hz即可。但是當(dāng)需要使用FFT對(duì)信號(hào)進(jìn)行頻譜分析時(shí),在確定采樣頻率時(shí),除了要滿足采樣定理外,還需要考慮其他條件。例如:在做FFT時(shí),信號(hào)頻率應(yīng)為頻率分辨率的整數(shù)倍,這樣才能準(zhǔn)確地從頻譜中看到該頻率信號(hào)的功率,避免譜泄漏,即下式中的k應(yīng)為整數(shù):
(2)
其中f,fs和N分別為信號(hào)頻率、采樣頻率和FFT的點(diǎn)數(shù)。fs/N為頻率分辨率,N一般為2的冪次方。
圖1給出了在采樣頻率為1024 Hz,式(1)給出的輸入信號(hào)量化為12位后所得信號(hào)的頻譜。
圖1 采樣頻率為1024 Hz時(shí)的信號(hào)頻譜
從頻譜中可以清楚地看出輸入信號(hào)中含有兩個(gè)主要的頻率成分,其它頻率上的分量均為噪聲。
圖2給出了在采樣頻率為600 Hz,式(1)所給輸入信號(hào)量化為12位后所得信號(hào)的頻譜。從圖上可以看出,存在嚴(yán)重的譜泄漏。
在k不為整數(shù)時(shí),為了減小譜泄漏的影響,可以在做FFT之前對(duì)采樣所得的信號(hào)進(jìn)行加窗處理[1]。
(2)模數(shù)轉(zhuǎn)換器的實(shí)現(xiàn):實(shí)驗(yàn)中要求對(duì)輸入信號(hào)進(jìn)行量化,得到12位精度的數(shù)字信號(hào)。在將輸入
圖2 采樣頻率為600 Hz時(shí)的信號(hào)頻譜
信號(hào)進(jìn)行量化時(shí),涉及到如何確定模數(shù)轉(zhuǎn)換器的滿量程范圍、結(jié)構(gòu)、量化方式(舍入還是截?cái)?以及如何進(jìn)行有符號(hào)數(shù)的量化等。
(3)IIR濾波器類型的選擇和設(shè)計(jì):雙線性變換是設(shè)計(jì)數(shù)字IIR濾波器的常用方法。它首先要將所要設(shè)計(jì)的數(shù)字濾波器的歸一化邊界角頻率進(jìn)行預(yù)畸變,然后再設(shè)計(jì)出滿足性能要求的模擬濾波器。模擬濾波器有四種類型,分別為巴特沃斯濾波器,切比雪夫I型濾波器、切比雪夫II型濾波器以及橢圓濾波器。只有了解了這四種濾波器的特性,才能根據(jù)實(shí)際需求來(lái)選擇合適的濾波器類型。在選擇好濾波器類型后,將濾波器的性能指標(biāo)輸入相應(yīng)的Matlab函數(shù),就可以得到濾波器的傳輸函數(shù),完成濾波器的設(shè)計(jì)。以橢圓濾波器為例,可以依次調(diào)用函數(shù)ellipord(),函數(shù)ellipap()和函數(shù)zp2tf()來(lái)獲得濾波器的階數(shù)、零極點(diǎn)、增益和s域傳輸函數(shù);也可以直接調(diào)用函數(shù)ellip()來(lái)得到濾波器的s域傳輸函數(shù)。最后再通過(guò)調(diào)用函數(shù)bilinear()得到相應(yīng)數(shù)字濾波器的傳輸函數(shù)。
(4)FIR濾波器的設(shè)計(jì):在用窗函數(shù)法來(lái)設(shè)計(jì)FIR濾波器時(shí),首先要根據(jù)濾波器的性能參數(shù)(如過(guò)渡帶寬度、阻帶衰減等)選取合適的窗函數(shù)以及確定窗函數(shù)的長(zhǎng)度,之后將得到的窗函數(shù)與理想濾波器的單位脈沖響應(yīng)序列相乘得到FIR濾波器的單位脈沖響應(yīng)序列。以Kaiser窗為例,在Matlab中,函數(shù)kaiserord()用于預(yù)估FIR濾波器的階數(shù),函數(shù)kaiser()用于產(chǎn)生相應(yīng)長(zhǎng)度的Kaiser窗函數(shù),函數(shù)fir1()用于實(shí)現(xiàn)采用該Kaiser窗設(shè)計(jì)的FIR濾波器,輸出為濾波器的單位脈沖響應(yīng)序列。
(5)濾波器的實(shí)現(xiàn):在用硬件實(shí)現(xiàn)濾波器時(shí),必須考慮濾波器的有限字長(zhǎng)效應(yīng),即濾波器系數(shù)的量化、濾波器中加法器和乘法器的有限字長(zhǎng)效應(yīng)以及運(yùn)算結(jié)果的有限字長(zhǎng)等等。濾波器的實(shí)現(xiàn)結(jié)構(gòu)有直接型、級(jí)聯(lián)型和并聯(lián)型等。由于IIR濾波器存在量化噪聲的積累,所以在選擇結(jié)構(gòu)時(shí),需要考慮各種結(jié)構(gòu)對(duì)有限字長(zhǎng)效應(yīng)的靈敏度。高階IIR濾波器通常采用級(jí)聯(lián)型或并聯(lián)型結(jié)構(gòu)來(lái)實(shí)現(xiàn)。Matlab中的函數(shù)residuez(B,A)用于計(jì)算傳輸函數(shù)B(z)/A(z)的留數(shù)、極點(diǎn)和直接項(xiàng),從而得到有理式的部分分式展開;利用傳輸函數(shù)的部分分式展開,并通過(guò)適當(dāng)?shù)暮喜ⅲ梢缘玫綖V波器的并聯(lián)型結(jié)構(gòu)。函數(shù)tf2sos()則可用于將傳輸函數(shù)轉(zhuǎn)換成二階節(jié),得到濾波器的級(jí)聯(lián)型結(jié)構(gòu)。圖3給出了系數(shù)量化前后高通濾波器的頻率響應(yīng)。
圖3 系數(shù)量化前后高通濾波器的頻率響應(yīng)
為了能夠判斷所設(shè)計(jì)和實(shí)現(xiàn)的濾波器的性能是否達(dá)到設(shè)計(jì)指標(biāo),需要對(duì)濾波器的輸出序列做N點(diǎn)的FFT。這時(shí)需要注意兩點(diǎn):一要能正確地區(qū)分輸出序列中的暫態(tài)響應(yīng)部分和穩(wěn)態(tài)響應(yīng)部分;二要從穩(wěn)態(tài)響應(yīng)部分選取連續(xù)的N個(gè)輸出值做N點(diǎn)的FFT。
根據(jù)學(xué)生上交的實(shí)驗(yàn)報(bào)告,從他們所寫的實(shí)驗(yàn)收獲和實(shí)驗(yàn)心得可以看出這個(gè)實(shí)驗(yàn)對(duì)他們學(xué)好這門功課所起的作用??偨Y(jié)如下:
(1)本次實(shí)驗(yàn)是FIR濾波器與IIR濾波器的設(shè)計(jì),綜合使用了大量數(shù)字濾波器的設(shè)計(jì)方法,比如雙線性變換法,窗函數(shù)法等,加深了對(duì)課堂學(xué)習(xí)的理論知識(shí)的理解,如IIR和FIR濾波器的優(yōu)缺點(diǎn)、濾波器
的暫態(tài)響應(yīng)和穩(wěn)態(tài)響應(yīng)、各種模擬濾波器的性能比較以及各種窗函數(shù)之間的差異等。
(2)學(xué)生對(duì)采樣定理和FFT有了更深的認(rèn)識(shí),明白了采樣頻率、FFT點(diǎn)數(shù)等對(duì)頻譜分析結(jié)果的影響,并通過(guò)不斷的摸索與嘗試,總結(jié)出了使用FFT時(shí)的一些注意事項(xiàng)。
(3)對(duì)數(shù)字信號(hào)處理中的有限字長(zhǎng)效應(yīng)有了更加直觀的體會(huì),認(rèn)識(shí)到在設(shè)計(jì)濾波器的傳輸函數(shù)時(shí),需要考慮量化對(duì)濾波器性能的影響,設(shè)計(jì)指標(biāo)需要留出一定的裕量。
(4)提高了用Matlab實(shí)現(xiàn)數(shù)字信號(hào)處理功能的能力,包括:熟悉了使用Matlab設(shè)計(jì)FIR和IIR濾波器的流程;學(xué)會(huì)使用Matlab中的一些函數(shù),如fft,cheb1ord,cheby,bilinear,fir1等;學(xué)會(huì)了用Matlab編寫程序來(lái)實(shí)現(xiàn)指定結(jié)構(gòu)的濾波器;學(xué)會(huì)了從時(shí)域和頻域觀察濾波器的輸出是否正確以及是否達(dá)到性能要求等。
總而言之,通過(guò)這次實(shí)驗(yàn),使學(xué)生真正了解了如何利用Matlab來(lái)進(jìn)行濾波器的設(shè)計(jì),感覺受益匪淺,對(duì)他們學(xué)好“數(shù)字信號(hào)處理”課程很有幫助。
筆者所設(shè)計(jì)的基于Matlab的綜合性實(shí)驗(yàn)涵蓋了“數(shù)字信號(hào)處理”課程中的主要知識(shí)點(diǎn)。從學(xué)生反饋的意見可以看出,本實(shí)驗(yàn)取得了良好的教學(xué)效果,這有利于提高學(xué)生學(xué)習(xí)興趣以及增強(qiáng)他們解決實(shí)際問(wèn)題的能力。
[1] 程佩青,數(shù)字信號(hào)處理教程[M],北京:清華大學(xué)出版社,2007.
[2] 曹建玲,劉煥淋,雷宏江.基于MATLAB 的“數(shù)字信號(hào)處理”仿真實(shí)驗(yàn)[J].北京: 中國(guó)電力教育,2012 ( 32) : 88 - 89.
[3] 易婷.“數(shù)字信號(hào)處理”課程課內(nèi)配套實(shí)驗(yàn)的設(shè)計(jì)[J].南京:電氣電子教學(xué)學(xué)報(bào),2013,35( 4) : 89 - 90.
Experiment for Digital Signal Processing Course Based on Matlab
YI Ting
(SchoolofMicroelectronics,F(xiàn)udanUniversity,Shanghai200433,China)
A comprehensive experiment for Digital Signal Processing course, which is based on Matlab and digital filter design, is proposed in this paper. It involves sampling theorem, quantization, digital filter design, digital filter realization, DFT/FFT and quantization effects in digital filters. The teaching experience shows that the experiment is helpful for students to grasp this course, and strengthens their ability to integrate theory and practice and solve practical problems.
digital signal processing; comprehensive experiment; Matlab
2016-06-12;
2017-08- 02 基金項(xiàng)目:復(fù)旦大學(xué)本科教學(xué)研究課題(201244)
易 婷(1971- ),女,博士,副教授,主要從事數(shù)?;旌霞呻娐方虒W(xué)和研究,E-mail: yiting@fudan.edu.cn
A
1008-0686(2017)02-0111-03