第一篇:Matlab的數(shù)字信號處理課程實(shí)驗(yàn)設(shè)計(jì)的論文
摘要:本文設(shè)計(jì)了一個基于Matlab的“數(shù)字信號處理”課程綜合性實(shí)驗(yàn)。該實(shí)驗(yàn)把“數(shù)字信號處理”課程中的許多離散的知識點(diǎn)串接了起來,包括采樣、量化、濾波器設(shè)計(jì)、濾波器實(shí)現(xiàn)、DFT/FFT和濾波器的有限字長效應(yīng)等。教學(xué)實(shí)踐表明該實(shí)驗(yàn)有利于鞏固學(xué)生課堂上學(xué)到的理論知識,提高學(xué)生的理論聯(lián)系實(shí)際的能力和動手解決問題的能力。
關(guān)鍵詞:數(shù)字信號處理;綜合性實(shí)驗(yàn);Matlab
0引言
“數(shù)字信號處理”課程的主要內(nèi)容包括z變換、離散傅里葉變換(DFT)、快速傅里葉變換(FFT)、數(shù)字濾波器設(shè)計(jì)和實(shí)現(xiàn)以及數(shù)字信號處理中的有限字長效應(yīng)等等[1]。在學(xué)習(xí)理論知識的同時(shí)或之后,引入實(shí)驗(yàn)將有助于學(xué)生更好地理解和掌握課程內(nèi)容[2-3]。筆者在教學(xué)過程中,設(shè)計(jì)了Matlab綜合性實(shí)驗(yàn)。該實(shí)驗(yàn)在不失趣味性的同時(shí),能把該課程中許多分散的知識點(diǎn)串接起來。教學(xué)實(shí)踐表明,該實(shí)驗(yàn)可以幫助學(xué)生更深入地理解本門課程,取得了較好的教學(xué)效果。
1綜合實(shí)驗(yàn)內(nèi)容設(shè)計(jì)
筆者所設(shè)計(jì)的Matlab實(shí)驗(yàn)如下:對下式所示的輸入信號進(jìn)行濾波。x=sin(100πt)+sin(480πt)(1)具體步驟為(1)將輸入的模擬信號x進(jìn)行采樣和量化,得到12位精度的數(shù)字信號;(2)設(shè)計(jì)一個低通無限沖激響應(yīng)(IIR)濾波器,將輸入信號中的240Hz的干擾濾除,要求濾波器的輸出信號中240Hz處的噪聲功率比50Hz處的信號功率低60dB。(3)設(shè)計(jì)一個高通有限沖激響應(yīng)(FIR)濾波器,將輸入信號中的50Hz的干擾濾除,要求濾波器的輸出信號中50Hz處的噪聲功率比240Hz處的信號功率低60dB。(4)對于上述兩個濾波器,要求:給出理想濾波器的傳輸函數(shù)及頻率響應(yīng);給出系數(shù)量化后所得的新的濾波器的傳輸函數(shù)及頻率響應(yīng);確定濾波器實(shí)現(xiàn)所采用的結(jié)構(gòu),并給出該結(jié)構(gòu)中所用加法器和乘法器的位數(shù);將輸入的數(shù)字信號通過前一步實(shí)現(xiàn)的濾波器,畫出輸出信號的頻譜,確保濾波器性能滿足設(shè)計(jì)要求。順利完成上述Matlab實(shí)驗(yàn),需要解決以下問題:(1)采樣頻率和FFT點(diǎn)數(shù)的選取:根據(jù)采樣定理,采樣頻率只要不低于信號中所包含的最高頻率的兩倍,就可以從采樣后的離散時(shí)間信號中恢復(fù)出原始的模擬信號。根據(jù)式(1),采樣頻率只要不小于480Hz即可。但是當(dāng)需要使用FFT對信號進(jìn)行頻譜分析時(shí),在確定采樣頻率時(shí),除了要滿足采樣定理外,還需要考慮其他條件。例如:在做FFT時(shí),信號頻率應(yīng)為頻率分辨率的整數(shù)倍,這樣才能準(zhǔn)確地從頻譜中看到該頻率信號的功率,避免譜泄漏,即下式中的k應(yīng)為整數(shù):k=ffs=N(2)其中f,fs和N分別為信號頻率、采樣頻率和FFT的點(diǎn)數(shù)。fs/N為頻率分辨率,N一般為2的冪次方。在k不為整數(shù)時(shí),為了減小譜泄漏的影響,可以在做FFT之前對采樣所得的信號進(jìn)行加窗處理[1]。(2)模數(shù)轉(zhuǎn)換器的實(shí)現(xiàn):實(shí)驗(yàn)中要求對輸入信號進(jìn)行量化,得到12位精度的數(shù)字信號。在將輸入信號進(jìn)行量化時(shí),涉及到如何確定模數(shù)轉(zhuǎn)換器的滿量程范圍、結(jié)構(gòu)、量化方式(舍入還是截?cái)?以及如何進(jìn)行有符號數(shù)的量化等。(3)IIR濾波器類型的選擇和設(shè)計(jì):雙線性變換是設(shè)計(jì)數(shù)字IIR濾波器的常用方法。它首先要將所要設(shè)計(jì)的數(shù)字濾波器的歸一化邊界角頻率進(jìn)行預(yù)畸變,然后再設(shè)計(jì)出滿足性能要求的模擬濾波器。模擬濾波器有四種類型,分別為巴特沃斯濾波器,切比雪夫I型濾波器、切比雪夫II型濾波器以及橢圓濾波器。只有了解了這四種濾波器的特性,才能根據(jù)實(shí)際需求來選擇合適的濾波器類型。在選擇好濾波器類型后,將濾波器的性能指標(biāo)輸入相應(yīng)的Matlab函數(shù),就可以得到濾波器的傳輸函數(shù),完成濾波器的設(shè)計(jì)。以橢圓濾波器為例,可以依次調(diào)用函數(shù)elli-pord(),函數(shù)ellipap()和函數(shù)zp2tf()來獲得濾波器的階數(shù)、零極點(diǎn)、增益和s域傳輸函數(shù);也可以直接調(diào)用函數(shù)ellip()來得到濾波器的s域傳輸函數(shù)。最后再通過調(diào)用函數(shù)bilinear()得到相應(yīng)數(shù)字濾波器的傳輸函數(shù)。(4)FIR濾波器的設(shè)計(jì):在用窗函數(shù)法來設(shè)計(jì)FIR濾波器時(shí),首先要根據(jù)濾波器的性能參數(shù)(如過渡帶寬度、阻帶衰減等)選取合適的窗函數(shù)以及確定窗函數(shù)的長度,之后將得到的窗函數(shù)與理想濾波器的單位脈沖響應(yīng)序列相乘得到FIR濾波器的單位脈沖響應(yīng)序列。以Kaiser窗為例,在Matlab中,函數(shù)kaiserord()用于預(yù)估FIR濾波器的階數(shù),函數(shù)kaiser()用于產(chǎn)生相應(yīng)長度的Kaiser窗函數(shù),函數(shù)fir1()用于實(shí)現(xiàn)采用該Kaiser窗設(shè)計(jì)的FIR濾波器,輸出為濾波器的單位脈沖響應(yīng)序列。(5)濾波器的實(shí)現(xiàn):在用硬件實(shí)現(xiàn)濾波器時(shí),必須考慮濾波器的有限字長效應(yīng),即濾波器系數(shù)的量化、濾波器中加法器和乘法器的有限字長效應(yīng)以及運(yùn)算結(jié)果的有限字長等等。濾波器的實(shí)現(xiàn)結(jié)構(gòu)有直接型、級聯(lián)型和并聯(lián)型等。由于IIR濾波器存在量化噪聲的積累,所以在選擇結(jié)構(gòu)時(shí),需要考慮各種結(jié)構(gòu)對有限字長效應(yīng)的靈敏度。高階IIR濾波器通常采用級聯(lián)型或并聯(lián)型結(jié)構(gòu)來實(shí)現(xiàn)。Matlab中的函數(shù)residuez(B,A)用于計(jì)算傳輸函數(shù)B(z)/A(z)的留數(shù)、極點(diǎn)和直接項(xiàng),從而得到有理式的部分分式展開;利用傳輸函數(shù)的部分分式展開,并通過適當(dāng)?shù)暮喜?,可以得到濾波器的并聯(lián)型結(jié)構(gòu)。函數(shù)tf2sos()則可用于將傳輸函數(shù)轉(zhuǎn)換成二階節(jié),得到濾波器的級聯(lián)型結(jié)構(gòu)。圖3給出了系數(shù)量化前后高通濾波器的頻率響應(yīng)。為了能夠判斷所設(shè)計(jì)和實(shí)現(xiàn)的濾波器的性能是否達(dá)到設(shè)計(jì)指標(biāo),需要對濾波器的輸出序列做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個輸出值做N點(diǎn)的FFT。
2教學(xué)反饋
根據(jù)學(xué)生上交的實(shí)驗(yàn)報(bào)告,從他們所寫的實(shí)驗(yàn)收獲和實(shí)驗(yàn)心得可以看出這個實(shí)驗(yàn)對他們學(xué)好這門功課所起的作用??偨Y(jié)如下:(1)本次實(shí)驗(yàn)是FIR濾波器與IIR濾波器的設(shè)計(jì),綜合使用了大量數(shù)字濾波器的設(shè)計(jì)方法,比如雙線性變換法,窗函數(shù)法等,加深了對課堂學(xué)習(xí)的理論知識的理解,如IIR和FIR濾波器的優(yōu)缺點(diǎn)、濾波器的暫態(tài)響應(yīng)和穩(wěn)態(tài)響應(yīng)、各種模擬濾波器的性能比較以及各種窗函數(shù)之間的差異等。(2)學(xué)生對采樣定理和FFT有了更深的認(rèn)識,明白了采樣頻率、FFT點(diǎn)數(shù)等對頻譜分析結(jié)果的影響,并通過不斷的摸索與嘗試,總結(jié)出了使用FFT時(shí)的一些注意事項(xiàng)。(3)對數(shù)字信號處理中的有限字長效應(yīng)有了更加直觀的體會,認(rèn)識到在設(shè)計(jì)濾波器的傳輸函數(shù)時(shí),需要考慮量化對濾波器性能的影響,設(shè)計(jì)指標(biāo)需要留出一定的裕量。(4)提高了用Matlab實(shí)現(xiàn)數(shù)字信號處理功能的能力,包括:熟悉了使用Matlab設(shè)計(jì)FIR和IIR濾波器的流程;學(xué)會使用Matlab中的一些函數(shù),如fft,cheb1ord,cheby,bilinear,fir1等;學(xué)會了用Matlab編寫程序來實(shí)現(xiàn)指定結(jié)構(gòu)的濾波器;學(xué)會了從時(shí)域和頻域觀察濾波器的輸出是否正確以及是否達(dá)到性能要求等??偠灾?,通過這次實(shí)驗(yàn),使學(xué)生真正了解了如何利用Matlab來進(jìn)行濾波器的設(shè)計(jì),感覺受益匪淺,對他們學(xué)好“數(shù)字信號處理”課程很有幫助。
3結(jié)語
筆者所設(shè)計(jì)的基于Matlab的綜合性實(shí)驗(yàn)涵蓋了“數(shù)字信號處理”課程中的主要知識點(diǎn)。從學(xué)生反饋的意見可以看出,本實(shí)驗(yàn)取得了良好的教學(xué)效果,這有利于提高學(xué)生學(xué)習(xí)興趣以及增強(qiáng)他們解決實(shí)際問題的能力。
參考文獻(xiàn):
[1]程佩青,數(shù)字信號處理教程[M],北京:清華大學(xué)出版社,2007.
[2]曹建玲,劉煥淋,雷宏江.基于MATLAB的“數(shù)字信號處理”仿真實(shí)驗(yàn)[J].北京:中國電力教育,2012(32):88-89.
[3]易婷.“數(shù)字信號處理”課程課內(nèi)配套實(shí)驗(yàn)的設(shè)計(jì)[J].南京:電氣電子教學(xué)學(xué)報(bào),2013,35(4):89-90.
第二篇:MATLAB實(shí)現(xiàn)數(shù)字信號處理
數(shù)字信號處理
說 明 書
目錄
一.摘要…………………………………3 二.課程設(shè)計(jì)目的………………………3 三.設(shè)計(jì)內(nèi)容……………………………3 四.設(shè)計(jì)原理……………………………4 4.1.語音信號的采集…………………………….4 4.2.濾波器……………………………………….4 4.21.IIR濾波器原理…………………………………….4 4.22.FIR濾波器原理………………………………………5 五.設(shè)計(jì)步驟……………………………6 5.1錄制女音………………………………………6 5.2采樣語音信號并畫出時(shí)域波形和頻譜圖……7 5.3采用雙線性變換法設(shè)計(jì)IIR濾波器…………10 5.4窗函數(shù)法設(shè)計(jì)FFR濾波器………………......12 5.5用IIR濾波器對信號進(jìn)行濾波………………14 5.6用FIR濾波器對信號進(jìn)行濾波………………16 5.7男女聲語音信號頻譜特點(diǎn)分析………………19 5.8有背景噪聲的信號分析………………………20 六.心得體會…………………………….22 七.參考文獻(xiàn)…………………………….23
一.摘要:
這次課程設(shè)計(jì)的主要目的是綜合運(yùn)用本課程的理論知識進(jìn)行頻譜分析以及濾波器設(shè)計(jì),通過理論推導(dǎo)得出相應(yīng)結(jié)論,并利用MATLAB或者DSP開發(fā)系統(tǒng)作為工具進(jìn)行實(shí)現(xiàn),從而復(fù)習(xí)鞏固課堂所學(xué)的理論知識,提高對所學(xué)知識的綜合應(yīng)用能力,并從實(shí)踐上初步實(shí)現(xiàn)對數(shù)字信號的處理。通過對聲音的采樣,將聲音采樣后的頻譜與濾波。
MATLAB全稱是Matrix Laboratory,是一種功能強(qiáng)大、效率高、交互性好的數(shù)值和可視化計(jì)算機(jī)高級語言,它將數(shù)值分析、矩陣運(yùn)算、信號處理和圖形顯示有機(jī)地融合為一體,形成了一個極其方便、用戶界面友好的操作環(huán)境。經(jīng)過多年的發(fā)展,已經(jīng)發(fā)展成為一種功能全面的軟件,幾乎可以解決科學(xué)計(jì)算中所有問題。MATLAB軟件還提供了非常廣泛和靈活的用于處理數(shù)據(jù)集的數(shù)組運(yùn)算功能。
在本次課程設(shè)計(jì)中,主要通過MATLAB來編程對語音信號處理與濾波,設(shè)計(jì)濾波器來處理數(shù)字信號并對其進(jìn)行分析。
二.課程設(shè)計(jì)目的:
綜合運(yùn)用本課程的理論知識進(jìn)行頻譜分析以及濾波器設(shè)計(jì),通過理論推導(dǎo)得出相應(yīng)結(jié)論,并利用MATLAB作為工具進(jìn)行實(shí)現(xiàn),從而復(fù)習(xí)鞏固課堂所學(xué)的理論知識,提高對所學(xué)知識的綜合應(yīng)用能力,并從實(shí)踐上初步實(shí)現(xiàn)對數(shù)字信號的處理。
三.設(shè)計(jì)內(nèi)容:
內(nèi)容:錄制一段個人自己的語音信號,并對錄制的信號進(jìn)行采樣;畫出采樣后語音信號的時(shí)域波形和頻譜圖;給定濾波器的性能指標(biāo),采用窗函數(shù) 法和雙線性變換法設(shè)計(jì)濾波器,并畫出濾波器的頻率響應(yīng);然后用自己設(shè)計(jì)的濾波器對采集的信號進(jìn)行濾波,畫出濾波后信號的時(shí)域波形和頻譜,并對濾波前后的信號進(jìn)行對比,分析信號的變化;回放語音信號;換一個與你性別相異的人錄制同樣一段語音內(nèi)容,分析兩段內(nèi)容相同的語音信號頻譜之間有什么特點(diǎn);再錄制一段同樣長時(shí)間的背景噪聲疊加到你的語音信號中,分析疊加前后信號頻譜的變化,設(shè)計(jì)一個合適的濾波器,能夠把該噪聲濾除。
四.設(shè)計(jì)原理:
4.1.語音信號的采集
熟悉并掌握MATLAB中有關(guān)聲音(wave)錄制、播放、存儲和讀取的函數(shù),在MATLAB環(huán)境中,有關(guān)聲音的函數(shù)有:
a:y=wavrecord(N,fs,Dtype);利用系統(tǒng)音頻輸入設(shè)備錄音,以fs為采樣頻率,默認(rèn)值為11025,即以11025HZ進(jìn)行采樣。Dtype為采樣數(shù)據(jù)的存儲格式,用字符串指定,可以是:‘double’、‘single’、’int16’、‘int8’其中只有int8是采用8位精度進(jìn)行采樣,其它三種都是16位采樣結(jié)果轉(zhuǎn)換為指定的MATLAB數(shù)據(jù);
b:wavplay(y,fs);利用系統(tǒng)音頻輸出設(shè)備播放,以fs為播放頻率,播放語音信號y;
c:wavwrite((y,fs,wavfile);創(chuàng)建音頻文件; d:y=wavread(file);讀取音頻文件;
關(guān)于聲音的函數(shù)還有sound();soundsc();等。4.2濾波器: 4.21.IIR濾波器原理
沖激響應(yīng)不變法是使數(shù)字濾波器在時(shí)域上模擬濾波器,但是它們的缺點(diǎn)是產(chǎn)生頻率響應(yīng)的混疊失真,這是由于從s平面到z平面是多值的映射關(guān)系所造成的。
雙線性變換法是使數(shù)字濾波器的頻率響應(yīng)與模擬濾波器的頻率響應(yīng)相似的一種變換方法。為了克服多值映射這一缺點(diǎn),我們首先把整個s平面壓縮變換到某一中介的s1平面的一條橫帶里,再通過變換關(guān)系將此橫帶變換到整個z平面上去,這樣就使得s平面與z平面是一一對應(yīng)的關(guān)系,消除了多值變換性,也 就消除了頻譜混疊現(xiàn)象。
雙線性法設(shè)計(jì)IIR數(shù)字濾波器的步驟:
1)將數(shù)字濾波器的頻率指標(biāo){ ?k}由Wk=(2/T)*tan(wk),轉(zhuǎn)換為模擬濾波器的頻率指標(biāo){?k}.2)由模擬濾波器的指標(biāo)設(shè)計(jì)H(s).3)由H(s)轉(zhuǎn)換為H(z)21?z?1H(z)?H(s)s?T1?z?1
4.22.FIR濾波器原理
FIR濾波器與IIR濾波器特點(diǎn)不同,IIR濾波器的相位是非線性的,若需線性相位則要采用全通網(wǎng)絡(luò)進(jìn)行相位校正。而有限長單位沖激響應(yīng)(FIR)數(shù)字濾波器就可以做成具有嚴(yán)格的線性相位,同時(shí)又可以具有任意的幅度特性。
由于FIR系統(tǒng)的沖激響應(yīng)就是其系統(tǒng)函數(shù)各次項(xiàng)的系數(shù),所以設(shè)計(jì)FIR濾波器的方法之一可以從時(shí)域出發(fā),截取有限長的一段沖激響應(yīng)作為H(z)的系數(shù),沖激響應(yīng)長度N就是系統(tǒng)函數(shù)H(z)的階數(shù)。只要N足夠長,截取的方法合理,總能滿足頻域的要求。這種時(shí)域設(shè)計(jì)、頻域檢驗(yàn)的方法一般要反復(fù)幾個回合,不像IIR DF設(shè)計(jì)靠解析公式一次計(jì)算成功。給出的理想濾波器頻率響應(yīng)是,它是w的周期函數(shù),周期
由傅立葉反變換導(dǎo)出,即
hd(n)?1Hd(ejw)ejwndw?2?,再將hd(n)與窗函數(shù),因此可展開成傅氏級數(shù)w(n)相乘就可以得到h(n)。、的計(jì)算可采用傅氏變換的現(xiàn)成公式和程序,窗函數(shù)也是現(xiàn)成的。但整個設(shè)計(jì)過程不能一次完成,因?yàn)榇翱陬愋秃痛笮〉倪x擇沒有解析公式可一次算,整個設(shè)計(jì)可用計(jì)算機(jī)編程來做。
窗函數(shù)的傅式變換W(ejω)的主瓣決定了H(ejω)過渡帶寬。W(ejω)的旁瓣大小和多少決定了H(ejω)在通帶和阻帶范圍內(nèi)波動幅度,常用的幾種窗函數(shù)有:
矩形窗
w(n)=RN(n);
Hanning窗
;
Hamming窗
;
Blackmen窗
;
Kaiser窗。
式中Io(x)為零階貝塞爾函數(shù)。
五.設(shè)計(jì)步驟:
5.1錄制女音:
利用MATLAB中的函數(shù)錄制聲音。function nvyin()fs=11025;
%采樣頻率
str=['@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'];disp(str);disp('
開始錄音');str=['@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'];disp(str);y=wavrecord(3*fs,fs,'double');
%錄制聲音3秒
str=['@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'];disp(str);disp('
錄音結(jié)束');str=['@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'];disp(str);str=['@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'];disp(str);disp('
播放錄音');str=['@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'];5 disp(str);wavplay(y,fs);
%播放錄音
str=['@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'];disp(str);disp('
播放錄音結(jié)束');str=['@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'];disp(str);wavwrite(y,fs,'原女音');
%聲音的存儲
5.2采樣語音信號并畫出時(shí)域波形和頻譜圖
讀取語音信號,畫出其時(shí)域波形和頻譜圖,與截取后的語音信號的時(shí)域波形和頻譜圖比較,觀察其變化。程序如下:
[x,fs,bits]=wavread('女音.wav');
%讀取聲音
N=length(x);
%計(jì)數(shù)讀取信號的點(diǎn)數(shù) t=(1:N)/fs;
%信號的時(shí)域采樣點(diǎn) f0=fs/N;
%采樣間隔 n=1:N/2;
%取信號的一半 figure(1);subplot(2,2,1);
%把畫圖區(qū)域劃分為2行2列,指定第一個圖 plot(t, x);
%畫出聲音采樣后的時(shí)域波形 title('原女音信號的時(shí)域波形');
%給圖形加注標(biāo)簽說明 xlabel('時(shí)間/t');ylabel('振幅/A');grid;
%添加網(wǎng)格
y=fft(x);
%對信號做N點(diǎn)FFT變換 k=(n-1)*f0;
%頻域采樣點(diǎn)
subplot(2,2,3);
%把畫圖區(qū)域劃分為2行2列,指定第三個圖 plot(k,abs(y(n)));
%繪制原始語音信號的幅頻響應(yīng)圖 title('FFT變換后聲音的頻譜特性');
%給圖形加注標(biāo)簽說明 xlabel('頻率/Hz');ylabel('幅值/A');grid;
%添加網(wǎng)格
subplot(2,2,4);
%把畫圖區(qū)域劃分為2行2列,指定第四個圖 if y~=0
%判斷指數(shù)是否為0
plot(k,20*log10(abs(y(n))));
%畫信號頻譜的分貝圖 end xlabel('Hz');ylabel('振幅/分貝');title('FFT變換后聲音的頻譜特性');grid;
%添加網(wǎng)格
%實(shí)際發(fā)出聲音落后錄制動作半拍的現(xiàn)象的解決 siz=wavread('女音.wav','size');x1=wavread('女音.wav',[3500 32076]);
%截取語音信號 N=length(x1);
%計(jì)數(shù)讀取信號的點(diǎn)數(shù) t=(1:N)/fs;
%信號的時(shí)域采樣點(diǎn) f0=fs/N;
%采樣間隔 n=1:N/2;
%取信號的一半
figure(2);subplot(2,2,1);
%把畫圖區(qū)域劃分為2行2列,指定第一個圖 plot(t,x1);
%畫出聲音采樣后的時(shí)域波形 title('截取后女音信號的時(shí)域波形');
%給圖形加注標(biāo)簽說明 xlabel('時(shí)間/t');ylabel('振幅/A');grid;
%添加網(wǎng)格
y1=fft(x1);
%對信號做N點(diǎn)FFT變換
subplot(2,2,3);
%把畫圖區(qū)域劃分為2行2列,指定第三個圖 k=(n-1)*f0;
%頻域采樣點(diǎn)
plot(k,abs(y(n)));
%繪制原始語音信號的幅頻響應(yīng)圖 title('FFT變換后聲音的頻譜特性');
%給圖形加注標(biāo)簽說明 xlabel('頻率/Hz');ylabel('幅值/A');grid;
%添加網(wǎng)格
subplot(2,2,4);
%把畫圖區(qū)域劃分為1行2列,指定第二個圖 if y1~=0
%判斷指數(shù)是否為0
plot(k,20*log10(abs(y1(n))));
%畫信號頻譜的分貝圖 end xlabel('Hz');ylabel('振幅/分貝');title('FFT變換后聲音的頻譜特性');grid;
%添加網(wǎng)格
原女音信號的時(shí)域波形10.5A/幅0振-0.5-10123時(shí)間/tFFT變換后聲音的頻譜特性FFT變換后聲音的頻譜特性30050A200貝/值分/幅0幅100振00200040006000-***頻率/HzHz 截取后女音信號的時(shí)域波形10.5振幅/A0-0.5-10123FFT變換后聲音的頻譜特性50時(shí)間/tFFT變換后聲音的頻譜特性300200振幅/分貝幅值/A01000020004000頻率/Hz6000-5002000Hz40006000
結(jié)果分析:
由原女音信號的時(shí)域波形可知錄取開始時(shí)實(shí)際發(fā)出聲音大概落后3500個采樣點(diǎn),我們把前3500點(diǎn)去除即可解決實(shí)際發(fā)出聲音落后錄制動作半拍的現(xiàn)象。由原女音的的頻譜圖和截取后聲音的頻譜圖可看出,對聲音的截取并不會影響它們頻譜分布。
5.3采用雙線性變換法設(shè)計(jì)IIR濾波器:
人的聲音頻率一般在(1~~4)kHZ之間,則我們只需要設(shè)計(jì)一個帶通濾波器即可濾去聲音頻帶以外的無用噪聲,得到比較清晰的聲音。根據(jù)聲音的頻譜圖分析,設(shè)計(jì)一個帶通濾波器性能指標(biāo)如下:
fp1=1000 Hz,fp2=3000 Hz,fsc1=500 Hz,fsc2=3500Hz,As=100dB,Ap=1dB,fs=10000 程序如下:
%iir帶通的代碼: %w=2*pi*f/fs Ap=1;
%通帶波紋系數(shù)
Az=100;
%最小阻帶衰減
wp=[0.2 0.6];
%歸一化通帶數(shù)字截止頻率 wz=[0.1 0.7];
%歸一化阻帶數(shù)字截止頻率 [N,wn]=cheb1ord(wp,wz,Ap,Az);
%估計(jì)契比雪夫I型濾波器階數(shù) [b,a]=cheby1(N,Ap,wn);
%N指定濾波器階數(shù),wn歸一化
截 %止頻率,Ap通帶波動
[h,w]=freqz(b,a);
%求數(shù)字濾波器的復(fù)頻率響應(yīng) figure(1);subplot(2,1,1);plot(w/pi,abs(h));
%繪制數(shù)字濾波器的頻譜圖 grid;xlabel('omega/pi');ylabel('振幅(幅值)');title('契比雪夫Ⅰ型帶通濾波器的幅頻響應(yīng)');subplot(2,1,2);if abs(h)~=0
%判斷指數(shù)是否為0
plot(w/pi,20*log10(abs(h)));
%繪制數(shù)字濾波器頻譜的分貝圖 end grid;xlabel('omega/pi');ylabel('振幅(分貝)');title('契比雪夫Ⅰ型帶通濾波器的幅頻響應(yīng)');契比雪夫Ⅰ型帶通濾波器的幅頻響應(yīng)1振幅(幅值)0.5000.10.20.50.60.70.8?/?契比雪夫Ⅰ型帶通濾波器的幅頻響應(yīng)0.30.40.910振幅(分貝)-200-400-60000.10.20.30.40.5?/?0.60.70.80.91
5.4窗函數(shù)法設(shè)計(jì)FFR濾波器
線性相位FIR濾波器通常采用窗函數(shù)法設(shè)計(jì)。窗函數(shù)法設(shè)計(jì)FIR濾波器的基本思想是:根據(jù)給定的濾波器技術(shù)指標(biāo),選擇濾波器長度N和窗函數(shù)ω(n),使其具有最窄寬度的主瓣和最小的旁瓣。其核心是從給定的頻率特性,通過加窗確定有限長單位脈沖響應(yīng)序列h(n)。工程中常用的窗函數(shù)共有6種,即矩形窗、巴特利特(Bartlett)窗、漢寧(Hanning)窗、漢明(Hamming)窗、布萊克曼(Blackman)窗和凱澤(Kaiser)窗。
這次設(shè)計(jì)我采用的是布萊克曼來設(shè)計(jì)給定數(shù)字帶通濾波器的參數(shù)如下: wp1=0.3pi, wp2=0.6pi, wz1=0.2pi, wz2=0.7pi, Ap=1dB, Az=70dB 程序如下:
Ap=1;
%通帶波紋系數(shù) Az=100;
%最小阻帶衰減 fs=10000;
%采樣頻率 wp1=0.3*pi;wp2=0.6*pi;wz1=0.2*pi;wz2=0.7*pi;wc1=(wz1+wp1)/2;wc2=(wz2+wp2)/2;deltaW=min((wp1-wz1),(wz2-wp2));
%---取兩個過渡帶中的小者 N0=ceil(2*5.5*pi/deltaW);
%---查表7-3(P342)布拉克曼窗 N=N0+mod(N0+1,2);
%---確保N為奇數(shù) hdWindow=ideallp(wc2,N)-ideallp(wc1,N);%理想帶通濾波器 wdWindow=blackman(N);
%布拉克曼窗 hr=wdWindow.*hdWindow';
%點(diǎn)乘
n=0:N-1;
%階數(shù) subplot(2,2,1);stem(n,wdWindow);
%繪制布拉克曼窗時(shí)域波形 xlabel('時(shí)間');ylabel('振幅');title('布拉克曼窗');[H,W]=freqz(hr,1);
%求濾波器頻率響應(yīng) subplot(2,2,3);plot(W/pi,abs(H))
%繪制濾波器頻域波形 xlabel('omega/pi');ylabel('振幅');title('FIR帶通濾波器幅頻特性');subplot(2,2,4);
if abs(H)~=0
%判斷指數(shù)是否為0
plot(W/pi,20*log10(abs(H)));
%畫濾波器頻譜的分貝圖 end xlabel('omega/');ylabel('振幅/分貝');title('FIR帶通濾波器幅頻特性');grid;
%添加網(wǎng)格 %---ideallp()函數(shù)(非系統(tǒng)自有函數(shù))在系統(tǒng)安裝目錄的WORK子目錄ideallp.m function hd = ideallp(wc,N);% 理想低通濾波器的脈沖響應(yīng)子程序 % hd = 點(diǎn)0 到 N-1之間的理想脈沖響應(yīng) % wc = 截止頻率(弧度)% N = 理想濾波器的長度
tao =(N-1)/2;
% 理想脈沖響應(yīng)的對稱中心位置 n = [0:(N-1)];
% 設(shè)定脈沖響應(yīng)長度 m = n-tao + eps;
% 加一個小數(shù)以避免零作除數(shù)
hd = sin(wc*m)./(pi*m);
% 理想脈沖響應(yīng)
布拉克曼窗1振幅0.500406080時(shí)間FIR帶通濾波器幅頻特性500振幅/分貝20FIR帶通濾波器幅頻特性1.51振幅-50-100-15000.5?/10.5000.5?/?1
5.5用IIR濾波器對信號進(jìn)行濾波
用自己設(shè)計(jì)的IIR濾波器分別對采集的信號進(jìn)行濾波,在Matlab中,IIR濾波器利用函數(shù)filter對信號進(jìn)行濾波。程序如下: [x,fs,bits]=wavread('女音.wav');N=length(x);
%計(jì)數(shù)讀取信號的點(diǎn)數(shù) t=(1:N)/fs;
%信號的時(shí)域采樣點(diǎn) f0=fs/N;
%采樣間隔 n=1:N/2;
%取信號的一半 y=fft(x);
%對信號做N點(diǎn)FFT變換 k=(n-1)*f0;
%頻域采樣點(diǎn)
subplot(2,1,1);
%把畫圖區(qū)域劃分為2行1列,指定第一個圖 plot(k,abs(y(n)));
%繪制原始語音信號的幅頻響應(yīng)圖 title('濾波前女音的頻譜特性');
%給圖形加注標(biāo)簽說明 xlabel('頻率/Hz');ylabel('幅值/A');grid;
%iir帶通的代碼:
Ap=1;
%通帶波紋系數(shù)
Az=100;
%最小阻帶衰減
wp=[0.2 0.6];
%歸一化通帶數(shù)字截止頻率 wz=[0.1 0.7];
%歸一化阻帶數(shù)字截止頻率 [N,wn]=cheb1ord(wp,wz,Ap,Az);
%估計(jì)契比雪夫I型濾波器階數(shù)
[b,a]=cheby1(N,Ap,wn);
%N指定濾波器階數(shù),wn歸一化截止頻率,Ap通帶波動 x1=filter(b,a,x);
%對聲音濾波 wavplay(x1)wavwrite(x1,'IIR濾波后女音.wav');N=length(x1);
%計(jì)數(shù)讀取信號的點(diǎn)數(shù) t=(1:N)/fs;
%信號的時(shí)域采樣點(diǎn) f0=fs/N;
%采樣間隔 n=1:N/2;
%取信號的一半
y=fft(x1);
%對信號做N點(diǎn)FFT變換 k=(n-1)*f0;
%頻域采樣點(diǎn)
subplot(2,1,2);
%把畫圖區(qū)域劃分為2行1列,指定第一個圖 plot(k,abs(y(n)));
%繪制原始語音信號的幅頻響應(yīng)圖 title('l濾波后女音的頻譜特性');
%給圖形加注標(biāo)簽說明 xlabel('頻率/Hz');ylabel('幅值/A');grid;
濾波前女音的頻譜特性300幅值/A***030004000頻率/Hz濾波后女音的頻譜特性500060006040幅值/A***0頻率/Hz400050006000
結(jié)果分析:
由上面濾波前后的頻譜圖可看出,濾波器濾除了小于1000Hz和大于3400Hz的頻譜成分。回放語音信號,由于低頻和高頻成分被濾除,聲音變得較低沉。
5.6用FIR濾波器對信號進(jìn)行濾波
用自己設(shè)計(jì)的FIR濾波器分別對采集的信號進(jìn)行濾波,在Matlab中,FIR濾波器利用函數(shù)fftfilt對信號進(jìn)行濾波 程序如下:
[x,fs,bits]=wavread('女音.wav');N=length(x);
%計(jì)數(shù)讀取信號的點(diǎn)數(shù)
t=(1:N)/fs;
%信號的時(shí)域采樣點(diǎn) f0=fs/N;
%采樣間隔 n=1:N/2;
%取信號的一半
y=fft(x);
%對信號做N點(diǎn)FFT變換 k=(n-1)*f0;
%頻域采樣點(diǎn)
subplot(2,1,1);
%把畫圖區(qū)域劃分為2行1列,指定第一個圖 plot(k,abs(y(n)));
%繪制原始語音信號的幅頻響應(yīng)圖 title('濾波前女音的頻譜特性');
%給圖形加注標(biāo)簽說明 xlabel('頻率/omega');ylabel('幅值/A');grid;
%FIR帶通濾波器代碼 fs=10000;wp1=0.3*pi;wp2=0.6*pi;wz1=0.2*pi;wz2=0.7*pi;wc1=(wz1+wp1)/2;wc2=(wz2+wp2)/2;deltaW=min((wp1-wz1),(wz2-wp2));
%---取兩個過渡帶中的小者 N0=ceil(2*5.5*pi/deltaW);
%---查表7-3(P342)布拉克曼窗 N=N0+mod(N0+1,2);
%---確保N為奇數(shù) hdWindow=ideallp(wc2,N)-ideallp(wc1,N);wdWindow=blackman(N);hr=wdWindow.*hdWindow';x1=fftfilt(hr,x);
%對聲音濾波 wavplay(x1)wavwrite(x1,'FIR濾波后女音.wav');N=length(x1);
%計(jì)數(shù)讀取信號的點(diǎn)數(shù) t=(1:N)/fs;
%信號的時(shí)域采樣點(diǎn) f0=fs/N;
%采樣間隔 n=1:N/2;
%取信號的一半
y=fft(x1);
%對信號做N點(diǎn)FFT變換 k=(n-1)*f0;
%頻域采樣點(diǎn)
subplot(2,1,2);
%把畫圖區(qū)域劃分為2行1列,指定第一個圖 plot(k,abs(y(n)));
%繪制原始語音信號的幅頻響應(yīng)圖 title('l濾波后女音的頻譜特性');
%給圖形加注標(biāo)簽說明 xlabel('頻率/Hz');ylabel('幅值/A');grid;
濾波前女音的頻譜特性300200幅值/A***004000頻率/?l濾波后女音的頻譜特性500060006040幅值/A20005001000***03000頻率/Hz***0
結(jié)果分析:
由上面濾波前后的頻譜圖可看出,濾波器濾除了小于1000Hz和大于3500Hz的頻譜成分。和用IIR濾波器濾波一樣,回放語音信號,由于低頻和高頻成分被濾除,聲音變得較低沉。5.7男女聲語音信號頻譜特點(diǎn)分析
換一個男音錄制同樣一段語音內(nèi)容,分析兩段內(nèi)容相同的語音信號頻譜之間有什么特點(diǎn)。程序如下:
[x,fs,bits]=wavread('女音.wav');
%讀取聲音
N=length(x);
%計(jì)數(shù)讀取信號的點(diǎn)數(shù) t=(1:N)/fs;
f0=fs/N;
n=1:N/2;
y=fft(x);
k=(n-1)*f0;
subplot(2,1,1);
plot(k,abs(y(n)));
title('FFT變換后女音的頻譜特性');xlabel('頻率/omega');ylabel('幅值/A');grid;
[x,fs,bits]=wavread('明明.wav');
N=length(x);
t=(1:N)/fs;
f0=fs/N;
n=1:N/2;
y=fft(x);
k=(n-1)*f0;
subplot(2,1,2);
plot(k,abs(y(n)));
title('FFT變換后男音的頻譜特性');xlabel('頻率/omega');ylabel('幅值/A');grid;
%信號的時(shí)域采樣點(diǎn)
%采樣間隔
%取信號的一半
%對信號做N點(diǎn)FFT變換
%頻域采樣點(diǎn)
%把畫圖區(qū)域劃分為2行1列,指定第一個圖%繪制原始語音信號的幅頻響應(yīng)圖
%給圖形加注標(biāo)簽說明
%添加網(wǎng)格
%讀取聲音
%計(jì)數(shù)讀取信號的點(diǎn)數(shù)
%信號的時(shí)域采樣點(diǎn)
%采樣間隔
%取信號的一半
%對信號做N點(diǎn)FFT變換
%頻域采樣點(diǎn)
%把畫圖區(qū)域劃分為2行1列,指定第二個圖%繪制原始語音信號的幅頻響應(yīng)圖
%給圖形加注標(biāo)簽說明
%添加網(wǎng)格
axis([0 6000 0 300]);
%改變橫縱坐標(biāo)便于比較頻譜圖
FFT變換后女音的頻譜特性300200幅值/A***00頻率/?FFT變換后男音的頻譜特性***200幅值/A***00頻率/?400050006000
結(jié)果分析:
通過比較上面女音頻譜圖和男音頻譜圖可知,男音的頻譜集中在低頻部分,高頻成分底,譜線較平滑,聲音聽起來低沉。5.8有背景噪聲的信號分析
從硬盤中把一段噪聲(頻譜能量集中在某個小范圍內(nèi))疊加到語音信號中,分析疊加前后信號頻譜的變化,設(shè)計(jì)一個合適的濾波器,能夠把該噪聲濾除; 程序如下:
z=wavread('女音.wav',[1 24000]);
%讀取聲音在1-24000之間 f=wavread('noise.wav',[1 24000]);x=z+f;wavplay(x);fs=11025;N=length(x);f0=fs/N;
%采樣間隔
n=1:N;
%取信號的一半 y=fft(x,N);%對信號做N點(diǎn)FFT變換
k=(n-1)*f0;
%頻域采樣點(diǎn)
subplot(2,1,1);
%把畫圖區(qū)域劃分為1行2列,指定第二個圖 plot(k,abs(y(n)));
%繪制原始語音信號的幅頻響應(yīng)圖 title('加噪聲后聲音的頻譜特性');
%給圖形加注標(biāo)簽說明 xlabel('頻率/Hz');ylabel('幅值/A');grid;%添加網(wǎng)格
%iir帶通濾波器的代碼:
Ap=1;
%通帶波紋系數(shù)
Az=70;
%最小阻帶衰減
wp=[0.2 0.7];
%歸一化通帶數(shù)字截止頻率 wz=[0.1 0.8];
%歸一化阻帶數(shù)字截止頻率 [N,wn]=cheb1ord(wp,wz,Ap,Az);
%估計(jì)契比雪夫I型濾波器階數(shù)
[b,a]=cheby1(N,Ap,wn);
%N指定濾波器階數(shù),wn歸一化截止頻率,Ap通帶波動 x1=filter(b,a,x);
%對聲音濾波 wavplay(x1);
wavwrite(x1,'濾除噪音后女音.wav');N=length(x1);f0=fs/N;
%采樣間隔 n=1:N;
%取信號的一半
y1=fft(x1,N);
%對信號做fs點(diǎn)FFT變換
subplot(2,1,2);
%把畫圖區(qū)域劃分為1行2列,指定第二個圖 k=(n-1)*f0;
%頻域采樣點(diǎn)
plot(k,abs(y1(n)));
%繪制原始語音信號的幅頻響應(yīng)圖 title('濾除噪聲后聲音的頻譜特性');
%給圖形加注標(biāo)簽說明 xlabel('頻率/Hz');ylabel('幅值/A');grid;%添加網(wǎng)格
加噪聲后聲音的頻譜特性3000幅值/A***0008000頻率/Hz濾除噪聲后聲音的頻譜特性***030幅值/A***000頻率/Hz80001000012000
結(jié)果分析
觀察加噪聲后聲音的頻譜圖可知,噪音頻率主要在4000Hz處,只要我們設(shè)計(jì)一個,濾波器濾除大概在4000Hz的頻譜即可,回放濾波后的語音信號,可證噪音基本濾除。
六.心得體會:
通過這次課程設(shè)計(jì),讓我對MATLAB的基本應(yīng)用有了更深的了解,還有數(shù)字信號處理在MATLAB中的一些函數(shù)的用法。通過理論推導(dǎo)得出相應(yīng)結(jié)論,并利用MATLAB作為工具進(jìn)行實(shí)現(xiàn),從而復(fù)習(xí)鞏固課堂所學(xué)的理論知識,提高對所學(xué)知識的綜合應(yīng)用能力,并從實(shí)踐上初步實(shí)現(xiàn)對數(shù)字信號的處理。
在這次實(shí)驗(yàn)中,也遇到了很多問題,比如畫信號頻譜的分貝圖時(shí)(20*log10(abs(y)))指數(shù)為零時(shí)的處理。濾波器的設(shè)計(jì)也花了好大的功夫,剛開始不會設(shè)計(jì)參數(shù),一頭霧水,通過同學(xué)的指導(dǎo)和討論,得知通過觀察信號的頻譜圖,看噪音頻率集中在那一部分,設(shè)計(jì)濾波器把其濾除即可??煞磸?fù)設(shè)置參數(shù)直到濾波后語音信號的效果好為止。
七.參考文獻(xiàn):
(1)《MATLAB LabVIEW SystemView》翁劍楓 葉志前 編著, 機(jī)械工業(yè)出版社;
(2)《MATLAB及在電子信息課程中的應(yīng)用》陳懷琛 吳大正 高西全編著,電子工業(yè)出版社;
(3)《MATLAB在數(shù)字信號處理中的應(yīng)用》(弟2版)薛年喜 編著,清華大學(xué)出版社;
(4)《MATLAB擴(kuò)展編程》何強(qiáng) 何英
編著,清華大學(xué)出版社;(5)《MATLAB7簡明教程》吳清 曹輝林 編著,清華大學(xué)出版社;(6)MATLAB5.3精要.編程及高級應(yīng)用》程衛(wèi)國 馮峰 王雪梅 劉藝 編著,機(jī)械工程出版社。
第三篇:數(shù)字信號處理課后習(xí)題Matlab作業(yè)
數(shù)字信號處理MATLAB
第1頁
習(xí)題數(shù)字信號處理MATLAB習(xí)題
M1-1 已知g1(t)?cos(6?t),g2(t)?cos(14?t),g3(t)?cos(26?t),以抽樣頻率fsam?10Hz對上述三個信號進(jìn)行抽樣。在同一張圖上畫出g1(t),g2(t)和g3(t)及抽樣點(diǎn),對所得結(jié)果進(jìn)行討論。
解:
第2頁
從以上兩幅圖中均可看出,三個余弦函數(shù)的周期雖然不同,但它們抽樣后相應(yīng)抽樣點(diǎn)所對應(yīng)的值都相同。那么這樣還原回原先的函數(shù)就變成相同的,實(shí)際上是不一樣的。這是抽樣頻率太小的原因,我們應(yīng)該增大抽樣頻率才能真實(shí)還原。如下圖:f=50Hz
第3頁
程序代碼
f=10;
t=-0.2:0.001:0.2;g1=cos(6.*pi.*t);g2=cos(14.*pi.*t);g3=cos(26.*pi.*t);k=-0.2:1/f:0.2;h1=cos(6.*pi.*k);h2=cos(14.*pi.*k);h3=cos(26.*pi.*k);% subplot(3,1,1);
% plot(k,h1,'r.',t,g1,'r');% xlabel('t');% ylabel('g1(t)');% subplot(3,1,2);
% plot(k,h2,'g.',t,g2,'g');% xlabel('t');% ylabel('g2(t)');% subplot(3,1,3);
% plot(k,h3,'b.',t,g3,'b');% xlabel('t');% ylabel('g3(t)');
plot(t,g1,'r',t,g2,'g',t,g3,'b',k,h1,'r.',k,h2,'g.',k,h3,'b.')
第4頁
xlabel('t');ylabel('g(t)');
legend('g1(t)','g2(t)','g3(t)');
M2-1 利用DFT的性質(zhì),編寫一MATLAB程序,計(jì)算下列序列的循環(huán)卷積。
(1)g[k]={1,-3,4,2,0,-2,},h[k]={3,0,1,-1,2,1};(2)x[k]=cos(?k/2),y[k]=3k,k=0,1,2,3,4,5。解:(1)循環(huán)卷積結(jié)果
6.0000-3.0000 17.0000-2.0000 7.0000-13.0000
程序代碼
第5頁
g=[1-3 4 2 0-2];h=[3 0 1-1 2 1];l=length(g);L=2*l-1;GE=fft(g,L);HE=fft(h,L);y1=ifft(GE.*HE);for n=1:l
if n+l<=L
y2(n)=y1(n)+y1(n+l);else
y2(n)=y1(n);
end end y2
stem(0:l-1,y2)xlabel('k')ylabel('y(k)')title('循環(huán)卷積')
(2)循環(huán)卷積結(jié)果
-71.0000-213.0000 89.0000 267.0000 73.0000 219.0000
第6頁
程序代碼
k=0:5;
x=cos(pi.*k./2);y=3.^k;l=length(x);L=2*l-1;GE=fft(x,L);HE=fft(y,L);y1=ifft(GE.*HE);for n=1:l
if n+l<=L
y2(n)=y1(n)+y1(n+l);
else
y2(n)=y1(n);
end end y2
stem(0:l-1,y2)xlabel('k')ylabel('y’(k)')title('循環(huán)卷積')
第7頁
M2-2 已知序列x[k]???cos(k?/2N),|k|?N
0,其他?(1)計(jì)算序列DTFT的表達(dá)式X(ej?),并畫出N=10時(shí),X(ej?)的曲線。
(2)編寫一MATLAB程序,利用fft函數(shù),計(jì)算N=10時(shí),序列x[k]的DTFT在?m?2?m/N的抽樣值。利用hold函數(shù),將抽樣點(diǎn)畫在X(ej?)的曲線上。
解:
(1)X(e)?DTFT{x[k]}?j?k????x[k]e??j?k?k??N?cos(k?/2N)eN?j?k
程序代碼
N=10;k=-N:N;
x=cos(k.*pi./(2*N));W=linspace(-pi,pi,512);
第8頁
X=zeros(1,length(W));for k=-N:N
X1=x(k+N+1).*exp(-j.*W.*k);X=X+X1;end
plot(W,abs(X))xlabel('W');ylabel('abs(X)');
(2)
程序代碼
N=10;k=-N:N;
x=cos(k.*pi./(2*N));X_21=fft(x,21);L=-10:10;
W=linspace(-pi,pi,1024);X=zeros(1,length(W));for k=-N:N
X1=x(k+N+1).*exp(-j.*W.*k);X=X+X1;end
第9頁
plot(W,abs(X));hold on;
plot(2*pi*L/21,fftshift(abs(X_21)),'o');xlabel('W');ylabel('abs(X)');
M2-3 已知一離散序列為x[k]?Acos?0k?Bcos[(?0???)k]。用長度N=64的Hamming窗對信號截短后近似計(jì)算其頻譜。試用不同的A和B的取值,確定用Hamming窗能分辨的最小的譜峰間隔??w?c的值。
解:f1=100Hz f2=120Hz時(shí)
2?中cN
f2=140Hz時(shí)
第10頁
f2=160Hz時(shí)
第11頁
由以上三幅圖可見
f2=140Hz時(shí),各譜峰可分辨。則?f又
??w?c2?N
?40Hz
且
??w???T?2??fT?2??40?1 800所以c=3.2(近似值)
程序代碼
N=64;L=1024;
f1=100;f2=160;;fs=800;
A=1;B1=1;B2=0.5;B3=0.25;B4=0.05;T=1/fs;ws=2*pi*fs;k=0:N-1;
x1=A*cos(2*pi*f1*T*k)+B1*cos(2*pi*f2*T*k);x2=A*cos(2*pi*f1*T*k)+B2*cos(2*pi*f2*T*k);x3=A*cos(2*pi*f1*T*k)+B3*cos(2*pi*f2*T*k);x4=A*cos(2*pi*f1*T*k)+B4*cos(2*pi*f2*T*k);hf=(hamming(N))';x1=x1.*hf;x2=x2.*hf;x3=x3.*hf;x4=x4.*hf;
X1=fftshift(fft(x1,L));X2=fftshift(fft(x2,L));X3=fftshift(fft(x3,L));X4=fftshift(fft(x4,L));
W=T*(-ws/2+(0:L-1)*ws/L)/(2*pi);subplot(2,2,1);plot(W,abs(X1));title('A=1,B=1');xlabel('W');ylabel('X1');subplot(2,2,2);
第12頁
plot(W,abs(X2));title('A=1,B=0.5');xlabel('W');ylabel('X2');subplot(2,2,3);plot(W,abs(X3));title('A=1,B=0.25');xlabel('W');ylabel('X3');subplot(2,2,4);plot(W,abs(X4));title('A=1,B=0.05');xlabel('W');ylabel('X4');
M2-4 已知一離散序列為x[k]?cos?0k?0.75cos?1k,0?k?63。其中, ?0?2?/15,?1?2.3?/15。
(1)對x[k]做64點(diǎn)FFT, 畫出此時(shí)信號的譜。
(2)如果(1)中顯示的譜不能分辨兩個譜峰,是否可對(1)中的64點(diǎn)信號補(bǔ)0而分辨出兩個譜峰。通過編程進(jìn)行證實(shí),并解釋其原因。
解:(1)
第13頁
程序代碼
W0=2*pi/15;W1=2.3*pi/15;N=64;k=0:N-1;
x=cos(W0*k)+0.75*cos(W1*k);X=fft(x);
plot(k/N,abs(X));grid on;
title('64點(diǎn)FFT');
(2)
第14頁
第15頁
由以上三幅圖看出:不能對(1)中的64點(diǎn)信號補(bǔ)零而分辨出兩個譜峰,這樣的方法只能改變屏幕分辨率,但可以通過加hamming窗來實(shí)現(xiàn)對譜峰的分辨。程序代碼
W0=2*pi/15;W1=2.3*pi/15;N=64;L=1024;k=0:N-1;
x=cos(W0*k)+0.75*cos(W1*k);X=fft(x,L);
plot((0:L-1)/N,abs(X));grid on;
title('1024點(diǎn)FFT');
M2-5 已知一連續(xù)信號為x(t)=exp(-3t)u(t),試?yán)肈FT近似分析
第16頁
其頻譜。若要求頻率分辨率為1Hz,試確定抽樣頻率fsam、抽樣點(diǎn)數(shù)N以及持續(xù)時(shí)間Tp。
解:
本題使用矩形窗,則N?fsamfsam1??fsam,Tp??1 ?f1?f
第17頁
由以上三幅圖可以看出當(dāng)fsam越來越大時(shí),近似值越來越接近
第18頁
于實(shí)際值。即fsam越大擬合效果越好,造成的混疊也是在可以允許的范圍內(nèi)。程序代碼
fs=100;ws=2*pi*fs;Ts=1/fs;N=fs;
x=exp(-3*Ts*(0:N-1));y=fft(x,N);l=length(y);
k=linspace(-ws/2,ws/2,l);
plot(k,Ts*fftshift(abs(y)),'b:');hold on;
w=linspace(-ws/2,ws/2,1024);y1=sqrt(1./(9+w.^2));plot(w,y1,'r')
title('fs=100Hz時(shí)的頻譜')legend('近似值','實(shí)際值);
M2-6 試用DFT近似計(jì)算高斯信號g(t)?exp(?dt2)的頻譜抽樣值。
π?2通過和頻譜的理論值G(j?)?exp(?)比較,討論如何根據(jù)時(shí)域的信
d4d號來恰當(dāng)?shù)剡x取截短長度和抽樣頻率使計(jì)算誤差能滿足精度要求。
解:
第19頁
第20頁
由以上三幅圖可以看出:
當(dāng)時(shí)域截取長度相同時(shí),抽樣間隔越小時(shí)誤差越小,當(dāng)抽樣間隔一定時(shí),時(shí)域截取長度越長,誤差越小。當(dāng)取抽樣間隔為1S,時(shí)域截取長度為2S時(shí),誤差較大,絕對誤差在0.5左右;當(dāng)抽樣間隔為0,5S,時(shí)域截取長度為2S時(shí),誤差比間隔為1S時(shí)小,絕對誤差不大于0.2;當(dāng)抽樣間隔為0.5S時(shí)域截取長度為4S時(shí),誤差更小,絕對誤差不大于0.04。因?yàn)闀r(shí)域截取長度越長,保留下來的原信號中的信息越多,抽樣間隔越小,頻譜越不容易發(fā)生混疊,所以所得頻譜與理論值相比,誤差更小。
程序代碼
Ts=0.5;N=4;N0=64;
k=(-N/2:(N/2))*Ts;
第21頁
x=exp(-pi*(k).^2);X=Ts*fftshift(fft(x,N0));
w=-pi/Ts:2*pi/N0/Ts:(pi-2*pi/N0)/Ts;XT=(pi/pi)^0.5*exp(-w.^2/4/pi);subplot(2,1,1)
plot(w/pi,abs(X),'-o',w/pi,XT);xlabel('omega/pi');ylabel('X(jomega)');
legend('試驗(yàn)值','理論值');
title(['Ts=',num2str(Ts)subplot(2,1,2)plot(w/pi,abs(X)-XT)ylabel('實(shí)驗(yàn)誤差')
xlabel('omega/pi');
'N=',num2str(N)]);第22頁
' '
第四篇:數(shù)字信號處理課程總結(jié)(全)
數(shù)字信號處理課程總結(jié)
以下圖為線索連接本門課程的內(nèi)容:
xa(t)數(shù)字信號前置濾波器A/D變換器處理器D/A變換器AF(濾去高頻成分)ya(t)x(n)
一、時(shí)域分析
1. 信號
? 信號:模擬信號、離散信號、數(shù)字信號(各種信號的表示及關(guān)系)? 序列運(yùn)算:加、減、乘、除、反褶、卷積 ? 序列的周期性:抓定義
njwna、e?(n)(可表征任何序列)cos(wn??)u(n)、? 典型序列:、、RN(n)、?x(n)??x(m)?(n?m)
m???特殊序列:h(n)2. 系統(tǒng)
? 系統(tǒng)的表示符號h(n)? 系統(tǒng)的分類:y(n)?T[x(n)]
線性:T[ax1(n)?bx2(n)]?aT[x1(n)]?bT[x2(n)] 移不變:若y(n)?T[x(n)],則y(n?m)?T[x(n?m)] 因果:y(n)與什么時(shí)刻的輸入有關(guān) 穩(wěn)定:有界輸入產(chǎn)生有界輸出
? 常用系統(tǒng):線性移不變因果穩(wěn)定系統(tǒng) ? 判斷系統(tǒng)的因果性、穩(wěn)定性方法 ? 線性移不變系統(tǒng)的表征方法:
線性卷積:y(n)?x(n)*h(n)
NMk差分方程: y(n)??ak?1y(n?k)??bk?0kx(n?k)3. 序列信號如何得來?
xa(t)x(n)抽樣
? 抽樣定理:讓x(n)能代表xa(t)? 抽樣后頻譜發(fā)生的變化? ? 如何由x(n)恢復(fù)xa(t)?
?sin[xa(mT)?T(t?mT)]
xa(t)=?m????T
(t?mT)
二、復(fù)頻域分析(Z變換)
時(shí)域分析信號和系統(tǒng)都比較復(fù)雜,頻域可以將差分方程變換為代數(shù)方程而使分析簡化。A. 信號 1.求z變換
?定義:x(n)?X(z)??x(n)zn????n
收斂域:X(z)是z的函數(shù),z是復(fù)變量,有模和幅角。要其解析,則z不能取讓X(z)無窮大的值,因此z的取值有限制,它與x(n)的種類一一對應(yīng)。
? x(n)為有限長序列,則X(z)是z的多項(xiàng)式,所以X(z)在z=0或∞時(shí)可能會有∞,所以z的取值為:0?z??;
? x(n)為左邊序列,0?z?Rx?,z能否取0看具體情況;
? x(n)為右邊序列,Rx??z??,z能否取∞看具體情況(因果序列); ? x(n)為雙邊序列,Rx??z?Rx? 2.求z反變換:已知X(z)求x(n)
? 留數(shù)法
? 部分分式法(常用):記住常用序列的X(z),注意左右序列區(qū)別。? 長除法:注意左右序列 3.z變換的性質(zhì):
? 由x(n)得到X(z),則由x(n?m)?z?mX(z),移位性; ? 初值終值定理:求x(0)和x(?);
? 時(shí)域卷積和定理:y(n)?x(n)*h(n)?Y(z)?X(z)H(z); ? 復(fù)卷積定理:時(shí)域的乘積對應(yīng)復(fù)頻域的卷積; ? 帕塞瓦定理:能量守恒
?
?n???x(n)2?12?????X(ejw)dw2
4.序列的傅里葉變換
?公式:X(ejw)??x(n)en????jwn
x(n)?12?????X(ej?)ej?nd?
注意:X(ejw)的特點(diǎn):連續(xù)、周期性;X(ejw)與X(z)的關(guān)系 B. 系統(tǒng)
由h(n)?H(z),系統(tǒng)函數(shù),可以用來表征系統(tǒng)。
? H(z)的求法:h(n)?H(z);H(z)=Y(z)/X(z); ? 利用H(z)判斷線性移不變系統(tǒng)的因果性和穩(wěn)定性 ? 利用差分方程列出對應(yīng)的代數(shù)方程
MNMy(n)??ak?1y(n?k)?k?bk?0x(n?k)?kY(z)X(z)?b?k?0Nkz?k
k1??ak?1z?k? 系統(tǒng)頻率響應(yīng)H(ejw):以2?為周期的?的連續(xù)函數(shù)
?
H(e)?jw?h(n)en?????jwn
H(e?jw)??h(n)en???jwn,當(dāng)h(n)為實(shí)序列時(shí),則有H(ejw)=H*(e?jw)
三、頻域分析
根據(jù)時(shí)間域和頻域自變量的特征,有幾種不同的傅里葉變換對
? 時(shí)間連續(xù),非周期?頻域連續(xù)(由時(shí)域的非周期造成),非周期(由時(shí)域的連續(xù)造成); ?X(j?)??x(t)e????j?tdt
x(t)?12????X(j?)ej?td?
? 時(shí)間連續(xù),周期?頻域離散,非周期
X(jk?0)?1T0T0/2?x(t)e?jk?0tdt
?T0/2x(t)??X(jk?0)ejk?0t
? 時(shí)間離散,非周期?頻域連續(xù),周期
?
X(e)?jw?x(n)en????jwn
x(n)?12?????X(ej?)ej?nd?,w??T(數(shù)字頻率與模擬頻率的關(guān)系式)
? 時(shí)間離散,周期?頻域離散,周期
~X(k)?N?1?n?0~x(n)e?j2?Nkn?~?x(n)W
knNn?0N?11~x(n)?NN?1?n?0~X(k)ej2?Nkn?1NN?1?n?0~?knX(k)WN
? 本章重點(diǎn)是第四種傅里葉變換-----DFS ? 注意:
x(n)和X(k)都是以N為周期的周期序列; 1)~x(n)和X(k)的定義域都為(??,?)
2)盡管只是對有限項(xiàng)進(jìn)行求和,但~;
~~~例如:k?0時(shí),X(0)?N?1?x(n)
n?0~~k?1時(shí),X(1)?N?1?n?0~x(n)e?j2?Nn
2?NNnN?1~k?N時(shí),X(N)?N?1?n?0?j~x(n)e??n?02?N~~x(n)=X(0)
~k?N?1時(shí),X(N?1)?N?1?n?0~x(n)e?j(N?1)n~?X(1)
x(n)也有類似的結(jié)果。x(n)和X(k)一
同理也可看到~可見在一個周期內(nèi),~~一對應(yīng)。
?? 比較X(e)?jw?x(n)en????jwn~和X(k)?N?1?n?0~x(n)e?j2?Nkn?~?x(n)W,當(dāng)x(n)knNn?0N?1x(n)的一個周期內(nèi)有定義時(shí),即x(n)=~x(n),0?n?N?1,則在只在~??N?12?Nj2?Nk時(shí),X(ejw)?X(k)。
?1,k?r?? 0,k?r?~? ?en?0(k?r)nx(n)和X(k)的每個周期值都只是其主值區(qū)間的周期延拓,所以求和? 因?yàn)閪~在任一個周期內(nèi)結(jié)果都一樣。
? DFT:有限長序列x(n)只有有限個值,若也想用頻域方法分析,它只屬于序列的傅里葉變換,但序列的傅氏變換為連續(xù)函數(shù),所以為方便計(jì)算機(jī)處理,也希望能像DFS一樣,兩個域都離散。將x(n)想象成一個周期x(n)的一個周期,然后做DFS,即 序列~
~X(k)?N?1?n?0~x(n)e?j2?NknN?1??n?0x(n)e?j2?Nkn
x(n)只有x(n),不是真正的周期序列,但因?yàn)榍蠛椭恍鐽注意:實(shí)際上~個獨(dú)立的值,所以可以用這個公式。同時(shí),盡管x(n)只有N個值,但依上式求出的X(k)還是以N為周期的周期序列,其中也只有N個值獨(dú)立,這樣將~X(k)規(guī)定在一個周期內(nèi)取值,成為一個有限長序列,則會引出
N?1?j2?Nkn~DFT X(k)??x(n)en?0RN(k)
x(n)?1NN?1?n?0X(k)ej2?NknRN(n)
比較:三種移位:線性移位、周期移位、圓周移位
三種卷積和:線性卷積、周期卷積、圓周卷積
重點(diǎn):1)DFT的理論意義,在什么情況下線性卷積=圓周卷積 2)頻域采樣定理:掌握內(nèi)容,了解恢復(fù)
3)用DFT計(jì)算模擬信號時(shí)可能出現(xiàn)的幾個問題,各種問題怎樣引起?
混疊失真、頻譜泄漏、柵欄效應(yīng)
? FFT:為提高計(jì)算速度的一種算法
1)常用兩種方法:按時(shí)間抽取基2算法和按頻率抽取基2算法,各自的原理、特點(diǎn)是什么,能自行推導(dǎo)出N小于等于8的運(yùn)算流圖。2)比較FFT和DFT的運(yùn)算量; 3)比較DIT和DIF的區(qū)別。
四、數(shù)字濾波器(DF)
一個離散時(shí)間系統(tǒng)可以用h(n)、H(z)、差分方程和H(ejw)來表征。問題:
1、各種DF的結(jié)構(gòu)
2、如何設(shè)計(jì)滿足要求指標(biāo)的DF?
3、如何實(shí)現(xiàn)設(shè)計(jì)的DF?
A. 設(shè)計(jì)IIR DF,借助AF來設(shè)計(jì),然后經(jīng)S---Z的變換即可得到。
1)脈沖響應(yīng)不變法:思路、特點(diǎn) 2)雙線性變換法:思路、特點(diǎn)、預(yù)畸變 3)模擬濾波器的幅度函數(shù)的設(shè)計(jì) B. 設(shè)計(jì)FIR DF 1)線性相位如何得到?條件是什么?各種情況下的特點(diǎn)。2)窗函數(shù)設(shè)計(jì)法:步驟、特點(diǎn) 3)頻率抽樣法:步驟、特點(diǎn) C. 實(shí)現(xiàn)DF
M?a
標(biāo)準(zhǔn)形式:H(z)?k?0Nkz?k
bkz?k1??k?1
第五篇:數(shù)字信號處理課程總結(jié)(推薦)
數(shù)字信號處理課程總結(jié)
信息09-1班 陳啟祥 金三山 趙大鵬 劉恒
進(jìn)入大三,各種專業(yè)課程的學(xué)習(xí)陸續(xù)展開,我們也在本學(xué)期進(jìn)行了數(shù)字信號處理這門課程的學(xué)習(xí)。
作為信心工程專業(yè)的核心課程之一,數(shù)字信號處理的重要性是顯而易見的。在近九周的學(xué)習(xí)過程中,我們學(xué)習(xí)了離散時(shí)間信號與系統(tǒng)的時(shí)域及頻域分析、離散傅里葉變換、快速傅里葉變換、IIR及FIR數(shù)字濾波器的設(shè)計(jì)及結(jié)構(gòu)等相關(guān)知識,并且在實(shí)驗(yàn)課上通過MATLAB進(jìn)行了相關(guān)的探究與實(shí)踐??傮w來說,通過這一系列的學(xué)習(xí)與實(shí)踐,我們對數(shù)字信號處理的有關(guān)知識和基礎(chǔ)理論已經(jīng)有了初步的認(rèn)知與了解,這對于我們今后進(jìn)一步的學(xué)習(xí)深造或參加實(shí)際工作都是重要的基礎(chǔ)。
具體到這門課程的學(xué)習(xí),應(yīng)當(dāng)說是有一定的難度的。課本所介紹的相關(guān)知識理論性很強(qiáng),并且與差分方程、離散傅里葉級數(shù)、傅里葉變換、Z變換等數(shù)學(xué)工具聯(lián)系十分緊密,所以要真正理解課本上的相關(guān)理論,除了認(rèn)真聆聽老師的講解,還必須要花費(fèi)大量時(shí)間仔細(xì)研讀課本,并認(rèn)真、獨(dú)立地完成課后習(xí)題。總之,理論性強(qiáng)、不好理解是許多同學(xué)對數(shù)字信號處理這門課程的學(xué)習(xí)感受。
另外,必須要說MATLAB實(shí)驗(yàn)課程的開設(shè)是十分必要的。首先,MATLAB直觀、簡潔的操作界面對于我們真正理解課堂上學(xué)來的理論知識幫助很大;其次,運(yùn)用MATLAB進(jìn)行實(shí)踐探究,也使我們真正意識到,在信息化的今天,研究數(shù)字信號離不開計(jì)算機(jī)及相關(guān)專業(yè)軟件的幫助,計(jì)算機(jī)及軟件技術(shù)的發(fā)展,是今日推動信息技術(shù)發(fā)展的核心動力;最后,作為信息工程專業(yè)的學(xué)生,在許多學(xué)習(xí)與實(shí)踐領(lǐng)域需要運(yùn)用MATLAB這樣一個強(qiáng)大工具,MATLAB實(shí)驗(yàn)課程的開設(shè),鍛煉了我們的實(shí)踐能力,也為我們今后在其他領(lǐng)域運(yùn)用MATLAB打下了基礎(chǔ)。
課程的結(jié)束、考試的結(jié)束不代表學(xué)習(xí)的結(jié)束,數(shù)字信號處理作為我們專業(yè)的基礎(chǔ)之一,是不應(yīng)當(dāng)被我們拋之腦后的。
最后感謝老師這幾周來的教誨與指導(dǎo),謝謝老師!
2012年5月7日