版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 不要?jiǎng)h除行尾的分節(jié)符,此行不會(huì)被打印</p><p><b> 目 錄</b></p><p> 一. 課程設(shè)計(jì)任務(wù)1</p><p> 1、掌握MATLAB及其在數(shù)字信號(hào)處理中的應(yīng)用1</p><p> 2、課程設(shè)計(jì)題目:數(shù)字聽(tīng)診器信號(hào)分析1</p><p>
2、; 二. 課程設(shè)計(jì)原理及設(shè)計(jì)方案2</p><p> 1、濾波器設(shè)計(jì)原理2</p><p> 1.1濾波器概述2</p><p> 1.2FIR數(shù)字濾波器設(shè)計(jì)原理2</p><p> 1.3 FIR數(shù)字濾波器的特性2</p><p> 1.4窗函數(shù)的介紹4</p><p>
3、;<b> 2、設(shè)計(jì)方案5</b></p><p> 三. 課程設(shè)計(jì)的步驟和結(jié)果6</p><p> 1、讀取病人心肺聲音信號(hào)并對(duì)其進(jìn)行頻譜分析6</p><p> 2、設(shè)計(jì)濾波器對(duì)信號(hào)進(jìn)行濾波(以凱塞窗為例)7</p><p> 2.1 低通濾波器7</p><p> 2.
4、2帶通濾波器8</p><p> 2.3帶阻濾波器10</p><p> 3、GUI界面設(shè)計(jì)11</p><p> 3.1 BUTTON1 病人心肺聲音信號(hào)提取11</p><p> 3.2 BUTTON2 退出系統(tǒng)12</p><p> 3.3 BUTTON3 運(yùn)行12</p>&
5、lt;p> 3.4文本編輯框15</p><p> 3.5 GUI整體界面15</p><p> 四. 課程設(shè)計(jì)總結(jié)16</p><p> 五. 設(shè)計(jì)體會(huì)17</p><p> 六. 參考文獻(xiàn)18</p><p><b> 課程設(shè)計(jì)任務(wù)</b></p>&
6、lt;p> 1、掌握MATLAB及其在數(shù)字信號(hào)處理中的應(yīng)用</p><p> MATLAB 計(jì)算軟件是一套進(jìn)行科學(xué)計(jì)算的高性能軟件,可以進(jìn)行矩陣運(yùn)算、繪制函數(shù)和數(shù)據(jù)、實(shí)現(xiàn)算法、創(chuàng)建用戶界面、連接其他編程語(yǔ)言的程序等,主要應(yīng)用于工程計(jì)算、控制設(shè)計(jì)、信號(hào)處理與通訊、圖像處理、信號(hào)檢測(cè)、金融建模設(shè)計(jì)與分析等領(lǐng)域。</p><p> Matlab語(yǔ)言可以很容易實(shí)現(xiàn)Fourier 變換和
7、數(shù)字濾器的設(shè)計(jì),廣泛應(yīng)用于數(shù)字信號(hào)處理中,給我們對(duì)數(shù)字信號(hào)的研究工作帶來(lái)很大方便,同時(shí)具有功能全面的GUI程序設(shè)計(jì),使所設(shè)計(jì)的應(yīng)用程序具有圖形用戶界面,方便用戶操 作。</p><p> 2、課程設(shè)計(jì)題目:數(shù)字聽(tīng)診器信號(hào)分析</p><p> 目前大夫主要以聽(tīng)診器傾聽(tīng)病人的氣管、肺部區(qū)域的聲音,對(duì)病人的疾病進(jìn)行判斷;請(qǐng)?jiān)O(shè)計(jì)一個(gè)聽(tīng)診的軟件,要求如下: </p><p&
8、gt; 1) 可記錄病人的姓名、年齡、性別、病史、不同疾病部位等狀況; </p><p> 2) 對(duì)病人的氣管、肺部等區(qū)域的聲音進(jìn)行采集、分析、存儲(chǔ)(前端聽(tīng)診部分不用考慮,只考慮數(shù)據(jù)采集部分)。 </p><p> 3) 可分析不同聲音分量的大小,給出頻譜圖,以及主要頻率的幅度,便于大夫分析和驗(yàn)證; </p><p> 4) 由于采集到的信號(hào)經(jīng)常存在某些干擾
9、信號(hào),比如心臟的震動(dòng),請(qǐng)?jiān)O(shè)計(jì)低通、帶通、帶阻濾波器對(duì)信號(hào)處理,濾波器參數(shù)在用戶界面中可以進(jìn)行設(shè)置,方便醫(yī)生進(jìn)行使用; </p><p> 5) 編制GUI用戶界面。</p><p> 課程設(shè)計(jì)原理及設(shè)計(jì)方案</p><p><b> 1、濾波器設(shè)計(jì)原理</b></p><p><b> 1.1濾波器概述
10、</b></p><p> 隨著信息時(shí)代和數(shù)字世界的到來(lái),數(shù)字信號(hào)處理已成為當(dāng)今一門(mén)極其重要的學(xué)科和技術(shù)領(lǐng)域。數(shù)字信號(hào)處理在通信、語(yǔ)音、圖像,自動(dòng)控制、雷達(dá)、軍事、航空航天、醫(yī)療和家用電器等眾多領(lǐng)域得到了廣泛的應(yīng)用。在數(shù)字信號(hào)處理中,數(shù)字濾波器占有極其重要的地位。現(xiàn)代數(shù)字濾波器可以用軟件或設(shè)計(jì)專(zhuān)用的數(shù)字處理硬件兩種方式來(lái)實(shí)現(xiàn),用軟件來(lái)實(shí)現(xiàn)數(shù)字濾波器優(yōu)點(diǎn)是隨著濾波器參數(shù)的改變,很容易改變?yōu)V波器的性能。
11、根據(jù)數(shù)字濾波器單脈沖響應(yīng)的時(shí)域特性可將數(shù)字濾波器分為兩種, 即IIR (Infinite Impulse Response)無(wú)限長(zhǎng)脈沖響應(yīng)數(shù)字濾波器和FIR (Finite Impulse Response)有限長(zhǎng)脈沖響應(yīng)數(shù)字濾波器。從功能上分類(lèi), 可分為低通、高通、帶通、帶阻濾波器。</p><p> 1.2FIR數(shù)字濾波器設(shè)計(jì)原理</p><p> FIR具有突出的優(yōu)點(diǎn):系統(tǒng)總是穩(wěn)
12、定的、易于實(shí)現(xiàn)線性相位、允許設(shè)計(jì)多通帶(或多阻帶)濾波器。但與IIR相比,在滿足同樣的阻帶衰減的情況下需要較高的階數(shù)。FIR的沖激響應(yīng)h(k)是有限長(zhǎng)的M 階FIR系統(tǒng)函數(shù)可表示為</p><p><b> 濾波器的輸出: </b></p><p> 它的設(shè)計(jì)問(wèn)題實(shí)質(zhì)上是確定能滿足所要求的轉(zhuǎn)移序列或脈沖響應(yīng)的常數(shù)問(wèn)題,給出的設(shè)計(jì)方法主要有窗函數(shù)法、頻率采樣法和等波
13、紋最佳逼近法等。</p><p> 在這里我們利用窗函數(shù)法設(shè)計(jì)FIR濾波器。給定所要求的濾波器的頻率響應(yīng)Hd ( ejw) , 要求設(shè)計(jì)一個(gè)FIR 濾波器的頻率響應(yīng)H( ejw) 來(lái)逼近Hd( ejw) .設(shè)計(jì)是在時(shí)域進(jìn)行的, 首先由傅立葉變換導(dǎo)出無(wú)限長(zhǎng)的序列hd( n) , 然后用窗函數(shù)截?cái)鄅d ( n) ,即: h( n) = hd( n) w( n)。</p><p> 1.3
14、FIR數(shù)字濾波器的特性</p><p> FIR濾波器有以下特點(diǎn): </p><p> (1) 系統(tǒng)的單位沖激響應(yīng)h(n)在有限個(gè)n值處不為零; </p><p> (2) 系統(tǒng)函數(shù)H(z)在|z|>0處收斂,極點(diǎn)全部在z = 0處(因果系統(tǒng));</p><p> (3) 結(jié)構(gòu)上主要是非遞歸結(jié)構(gòu),沒(méi)有輸出到輸入的反饋,但有些結(jié)構(gòu)
15、中(例如頻率抽樣結(jié)構(gòu))也包含有反饋的遞歸部分。</p><p> 因?yàn)镕IR數(shù)字濾波器的單位沖激響應(yīng)是有限長(zhǎng)的,所以它永遠(yuǎn)都是穩(wěn)定的。[3]說(shuō)明了達(dá)到具有線性相位這一要求,僅需要對(duì)FIR數(shù)字濾波器的沖激響應(yīng)施加一定的約束。令,就可由得到FIR數(shù)字濾波器的頻率響應(yīng):</p><p><b> ?。?-2-1)</b></p><p> 式中是
16、的幅頻特性,是的相頻特性</p><p><b> ?。?-2-2)</b></p><p> 由于h(n)的長(zhǎng)度N取奇數(shù)或偶數(shù)時(shí)對(duì)H(w)的特性有影響, FIR濾波器的幅頻特性可以分為以下4種情況:</p><p> ?。?)第Ⅰ種類(lèi)型:為偶對(duì)稱(chēng),且N為奇數(shù)</p><p> 根據(jù)式:可以得到濾波器的幅頻函數(shù)為:&
17、lt;/p><p><b> ?。?-2-3)</b></p><p> 其中,。幅度函數(shù)對(duì)呈偶對(duì)稱(chēng)。</p><p> ?。?)第Ⅱ種類(lèi)型:為偶對(duì)稱(chēng),且N為偶數(shù)</p><p> 根據(jù)式:可得濾波器的幅頻函數(shù)為:</p><p><b> (1-2-4)</b></
18、p><p> 其中:。幅度函數(shù)對(duì)于或呈偶對(duì)稱(chēng)。如果數(shù)字濾波器在處不為零,如本文設(shè)計(jì)的高通濾波器和帶阻濾波器則不能用這一類(lèi)型。 </p><p> ?。?)第Ⅲ種類(lèi)型:為奇對(duì)稱(chēng),且N為奇數(shù)</p><p> 根據(jù)式:可得濾波器的幅頻函數(shù)為:</p><p><b> ?。?-2-5)</b></p><
19、p> 其中。數(shù)字濾波器在=0,,2處不為零如低通濾波器、高通濾波器、帶阻濾波器,則不適合用這類(lèi)濾波器來(lái)設(shè)計(jì)。</p><p> (4)第Ⅳ種類(lèi)型:為奇對(duì)稱(chēng),且N為偶數(shù)</p><p> 根據(jù)式:可得濾波器的幅頻函數(shù)可表示為:</p><p><b> (1-2-6)</b></p><p> 其中:。幅度
20、函數(shù)對(duì)于呈偶對(duì)稱(chēng)。如果數(shù)字濾波器在處不為零如低通濾波器、帶阻濾波器,則不適合用這類(lèi)數(shù)字濾波器來(lái)設(shè)計(jì)。</p><p><b> 1.4窗函數(shù)的介紹</b></p><p> 設(shè)計(jì)濾波器盡量要求窗函數(shù)滿足以下兩項(xiàng)要求:</p><p> (1)窗譜主瓣盡可能地窄,以獲取較陡的過(guò)渡帶。</p><p> (2)盡量減
21、少窗譜的最大旁瓣的相對(duì)幅度。也就是能量盡量集中于主瓣,這樣使尖峰和波紋減小,就可增大阻帶的衰減。</p><p> 但是這兩項(xiàng)要求是不能同時(shí)滿足的。當(dāng)選用主瓣寬度較窄時(shí),雖然得到陡峭的過(guò)渡帶,但通帶和阻帶的波動(dòng)明顯增加;當(dāng)選用最小的旁瓣幅度時(shí),雖能得到平坦的幅度響應(yīng)和較小的阻帶波紋,但過(guò)渡帶加寬,即主瓣會(huì)加寬。因此,實(shí)際所選用的窗函數(shù)往往是它們的折中。設(shè)計(jì)FIR濾波器常用的窗函數(shù)有:矩形窗、三角窗、漢寧窗、海明
22、窗、布拉克曼窗、凱塞窗等。</p><p> 以下是幾種窗函數(shù)的性能比較:</p><p><b> 2、設(shè)計(jì)方案</b></p><p> ☆通過(guò)采集WAV文件讀取不同病人心肺聲音信號(hào)。</p><p> ☆對(duì)聲音信號(hào)進(jìn)行時(shí)域、頻譜及幅度譜分析,觀察不同聲音分量大小以及主要頻率的幅度。</p>&
23、lt;p> ☆設(shè)計(jì)FIR數(shù)字濾波器對(duì)聲音信號(hào)進(jìn)行濾波,設(shè)計(jì)不同的窗函數(shù)進(jìn)行帶通、帶通、帶阻濾波。</p><p> ☆ 設(shè)計(jì)GUI界面,可進(jìn)行濾波器參數(shù)設(shè)置。</p><p> 課程設(shè)計(jì)的步驟和結(jié)果</p><p> 1、讀取病人心肺聲音信號(hào)并對(duì)其進(jìn)行頻譜分析</p><p> [x,B]=wavread(‘fb2.wav’)
24、; %讀取病人心肺聲音信號(hào)</p><p> F=B*(0:511)/1024; </p><p> y=fft(x,1024); %頻譜</p><p> fp=2*sqrt(y.*conj(y));%幅度譜 </p><p> subplot(3,1,1);</p><p> plot(x); titl
25、e('濾波前信號(hào)');</p><p> subplot(3,1,2);</p><p> plot(F,abs(y(1:512)));title('濾波前信號(hào)頻譜');</p><p> axis([0,1000,0,inf]);</p><p> subplot(3,1,3);</p>
26、<p> plot(fp(1:257)); </p><p> title('信號(hào)幅度譜');</p><p> 2、設(shè)計(jì)濾波器對(duì)信號(hào)進(jìn)行濾波(以凱塞窗為例)</p><p><b> 2.1 低通濾波器</b></p><p> [x,B]=wavread('fb2.wav
27、');</p><p> Fs=2000;%采樣頻率</p><p> Fp1=10;%低通通帶模擬截止頻率</p><p> Fs1=100;%低通阻帶模擬截止頻率</p><p> ws1=2*Fs1/Fs;%模擬轉(zhuǎn)變?yōu)閿?shù)字域的截止頻率</p><p> wp1=2*Fp1/Fs;</p&g
28、t;<p> delta_w=ws1-wp1; %過(guò)渡帶寬</p><p> N=ceil(10*pi/delta_w)+1;%最小階數(shù)N</p><p> window=kaiser(N+1)';%凱塞窗</p><p> Wn=(Fp1+Fs1)/Fs;%理想LPF的截止頻率</p><p> [b,a]=
29、fir1(N,Wn,window);</p><p> [H,w]=freqz(b,1,512);</p><p> db=20*log10(abs(H)); </p><p> t=(0:200)/Fs;</p><p> subplot(3,1,1);</p><p> plot(w*
30、Fs/(2*pi),db);title('濾波器'); </p><p> Filterx=filter(b,a,x);</p><p> subplot(3,1,2);</p><p> plot(Filterx);title('濾波后信號(hào)');</p><p> F=B*(0:511)/1024;&
31、lt;/p><p> y=fft(Filterx,1024);</p><p> subplot(3,1,3);</p><p> plot(F,abs(y(1:512)));title('濾波后信號(hào)頻譜');</p><p> axis([0,1000,0,inf]); </p>&l
32、t;p> 如上設(shè)計(jì)采樣頻率為2000Hz,通帶截止頻率為10Hz,阻帶截止頻率為200Hz的低通濾波器對(duì)原聲音信號(hào)進(jìn)行濾波</p><p> 對(duì)比濾波前后信號(hào)頻譜,可觀察得到該濾波器成功濾除了大于100Hz的頻率,但仍與理想情況有一定差距。</p><p><b> 2.2帶通濾波器</b></p><p> [x,B]=wavr
33、ead('fb2.wav');</p><p> Fs=2000;%采樣頻率</p><p> Fp1=200;%帶通通帶模擬截止頻率</p><p><b> Fp2=400;</b></p><p> Fs1=100;%帶通阻帶模擬截止頻率</p><p><b&
34、gt; Fs2=500;</b></p><p> ws1=2*Fs1/Fs;%模擬轉(zhuǎn)變?yōu)閿?shù)字域的截止頻率</p><p> ws2=2*Fs2/Fs;</p><p> wp1=2*Fp1/Fs;</p><p> wp2=2*Fp2/Fs;</p><p> delta_w1=wp1-ws1
35、; </p><p> delta_w2=ws2-wp2; </p><p> delta_w=min(deltaw1,deltaw2);</p><p> N=ceil(10*pi/delta_w1)+1;</p><p> window=kaiser(N+1); %凱塞窗</p><p>
36、b=fir1(N,[wp1/pi wp2/pi],window);</p><p> [H,w]=freqz(b,1,512);</p><p> db=20*log(abs(H));</p><p> t=(0:200)/Fs;</p><p> subplot(3,1,1);</p><p> plot(
37、w*Fs/(2*pi),db);title('濾波器'); </p><p> Filterx=filter(b,1,x);</p><p> subplot(3,1,2);</p><p> plot(Filterx);title('濾波后信號(hào)');</p><p> F=B*(0:511)/1024
38、;</p><p> y=fft(Filterx,1024);</p><p> subplot(3,1,3);</p><p> plot(F,abs(y(1:512)));title('濾波后信號(hào)頻譜');</p><p> axis([0,1000,0,inf]); </p><
39、p> 如上設(shè)計(jì)采樣頻率為2000Hz,通帶截止頻率為200Hz、400Hz,阻帶截止頻率為100Hz、500Hz的帶通濾波器對(duì)原聲音信號(hào)進(jìn)行濾波;</p><p> 對(duì)比濾波前后信號(hào)頻譜,可觀察得到該濾波器成功濾除了除200Hz至400Hz以外的頻率,但仍與理想情況有一定差距。</p><p><b> 2.3帶阻濾波器</b></p>&l
40、t;p> [x,B]=wavread('fb2.wav');</p><p> Fs=2000;%采樣頻率</p><p> Fp1=100;%帶阻通帶模擬截止頻率</p><p><b> Fp2=500;</b></p><p> Fs1=200;%帶阻阻帶模擬截止頻率</p&g
41、t;<p><b> Fs2=400;</b></p><p> ws1=2*Fs1/Fs;%模擬轉(zhuǎn)變?yōu)閿?shù)字域的截止頻率</p><p> ws2=2*Fs2/Fs;</p><p> wp1=2*Fp1/Fs;</p><p> wp2=2*Fp2/Fs;</p><p>
42、; delta11=ws1-wp1;</p><p> delta21=wp2-ws2;</p><p> delta_w=min(delta11,delta21); %過(guò)渡帶寬</p><p> N=ceil(10*pi/delta_w2)+1;N=N+rem(N,2);</p><p> window=kaiser(N+1);&
43、lt;/p><p> b=fir1(N,[ws1/pi ws2/pi],'stop',window);</p><p> [H,w]=freqz(b,1,512);</p><p> db=20*log(abs(H));</p><p> t=(0:200)/Fs;</p><p> subplo
44、t(3,1,1);</p><p> plot(w*Fs/(2*pi),db);title('濾波器'); </p><p> Filterx=filter(b,1,x);</p><p> subplot(3,1,2);</p><p> plot(Filterx);title('濾波后信號(hào)');&l
45、t;/p><p> F=B*(0:511)/1024;</p><p> y=fft(Filterx,1024);</p><p> subplot(3,1,3);</p><p> plot(F,abs(y(1:512)));title('濾波后信號(hào)頻譜');</p><p> axis([0,
46、1000,0,inf]); </p><p> 如上設(shè)計(jì)采樣頻率為2000Hz,通帶截止頻率為100Hz、500Hz,阻帶截止頻率為200Hz、400Hz的帶阻濾波器對(duì)原聲音信號(hào)進(jìn)行濾波;</p><p> 對(duì)比濾波前后信號(hào)頻譜,可觀察得到該濾波器成功濾除了200Hz至400Hz的頻率,但仍與理想情況有一定差距。</p><p><b>
47、 3、GUI界面設(shè)計(jì)</b></p><p> 3.1 BUTTON1 病人心肺聲音信號(hào)提取</p><p> [FileNamePathName]=uigetfile({'*.wav','TextFiles(*.wav)';'*.*','AllFiles(*.*)'},'Choose a File&
48、#39;);</p><p> L=length(FileName);</p><p> test=FileName(1,L-3:L);</p><p> if test == '.wav'</p><p> str=[PathName FileName];</p><p> set(hand
49、les.edit11,'string',str);</p><p> [x,B]=wavread(str); </p><p><b> else</b></p><p> errordlg('Wrong File','File Open Error!');</p><
50、p><b> return;</b></p><p><b> end</b></p><p> F=B*(0:511)/1024; </p><p> y=fft(x,1024); </p><p> axes(handles.axes9);</p><p&g
51、t; plot(F,abs(y(1:512)));title('濾波前信號(hào)頻譜');</p><p> axis([0,1000,0,inf]);</p><p> axes(handles.axes8);</p><p> plot(x);title('濾波前信號(hào)');</p><p> fp=2*
52、sqrt(y.*conj(y));%幅度譜 </p><p> axes(handles.axes10);</p><p> plot(fp(1:257)); </p><p> title('信號(hào)幅度譜');</p><p><b> 此按鍵實(shí)現(xiàn)功能為:</b></p><p
53、> ?。?)選擇文件路徑,讀取文本類(lèi)文檔,并將路徑顯示在界面上。</p><p> ?。?)對(duì)所選擇的聲音信號(hào)進(jìn)行時(shí)域、頻譜及幅度譜分析。</p><p> 3.2 BUTTON2 退出系統(tǒng)</p><p><b> clear;</b></p><p> close(gcf);</p><
54、;p> 此按鍵實(shí)現(xiàn)功能為:退出GUI界面。</p><p> 3.3 BUTTON3 運(yùn)行</p><p> 此按鍵實(shí)現(xiàn)功能為:根據(jù)用戶所設(shè)定的參數(shù),選擇相應(yīng)的窗函數(shù)對(duì)原聲音信號(hào)進(jìn)行相應(yīng)的濾波,并繪制濾波后的時(shí)域譜和頻譜。</p><p> global x B;</p><p><b> Nn=128;</b
55、></p><p> DigitalFilter_value=get(handles.DigitalFilter,'Value');</p><p> Windows_value=get(handles.Windows,'Value');</p><p> FilterType_value=get(handles.Filt
56、erType,'Value');</p><p> Order_value=get(handles.Order,'Value');</p><p> Rp_value=str2double(get(handles.Rp,'String'));</p><p> Rs_value=str2double(get(ha
57、ndles.Rs,'String'));</p><p> Fs_value=str2double(get(handles.Fs,'String'));</p><p> Fp1_value=str2double(get(handles.Fp1,'String'));</p><p> Fp2_value=str
58、2double(get(handles.Fp2,'String'));</p><p> Fs1_value=str2double(get(handles.Fs1,'String'));</p><p> Fs2_value=str2double(get(handles.Fs2,'String'));</p><p&g
59、t; wp1=2*Fp1_value/Fs_value;wp2=2*Fp2_value/Fs_value;</p><p> ws1=2*Fs1_value/Fs_value;ws2=2*Fs2_value/Fs_value;</p><p> wp=[wp1,wp2];ws=[ws1,ws2];</p><p> delta_w=ws1-wp1;</
60、p><p> deltaw1=wp1-ws1; </p><p> deltaw2=ws2-wp2;</p><p> delta11=ws1-wp1;</p><p> delta21=wp2-ws2;</p><p> delta_w1=min(deltaw1,deltaw2);</p><
61、;p> delta_w2=min(delta11,delta21);</p><p> if(FilterType_value==1)</p><p> [n,Wn]=buttord(wp1,ws1,Rp_value,Rs_value);</p><p> set(handles.MinOrderDisplay,'string',num
62、2str(n))</p><p><b> else</b></p><p> if((FilterType_value==3)||(FilterType_value==2))</p><p> [n,Wn]=buttord(wp,ws,Rp_value,Rs_value);</p><p> set(handl
63、es.MinOrderDisplay,'string',num2str(n))</p><p><b> end</b></p><p><b> end</b></p><p> MinOrder_value=get(handles.MinOrder,'Value');</p&
64、gt;<p> if(MinOrder_value==0)</p><p> n=str2double(get(handles.Order,'String'))</p><p><b> end</b></p><p> switch Windows_value %FIR中的Windows選擇</p&
65、gt;<p> case 1 %選擇設(shè)計(jì)kaiser濾波器</p><p> switch FilterType_value%選擇濾波器類(lèi)型</p><p> case 1 %低通濾波器 </p><p> N=ceil(10*pi/delta_w)+1;%最小階數(shù)N</p><p> window=kai
66、ser(N+1)';</p><p> Wn=(Fp1_value+Fs1_value)/Fs_value; %理想LPF的截止頻率</p><p> [b,a]=fir1(N,Wn,window);</p><p> [H,w]=freqz(b,1,512);</p><p> db=20*log10(abs(
67、H)); %db imagine</p><p> t=(0:200)/Fs_value;</p><p> axes(handles.Magnitude);</p><p> plot(w*Fs_value/(2*pi),db);title('濾波器'); </p><p> Filterx=f
68、ilter(b,a,x);</p><p> axes(handles.axes11);</p><p> plot(Filterx);title('濾波后信號(hào)');</p><p> F=B*(0:511)/1024;</p><p> y=fft(Filterx,1024);</p><p>
69、; axes(handles.axes12);</p><p> plot(F,abs(y(1:512)));title('濾波后信號(hào)頻譜');</p><p> axis([0,1000,0,inf]); </p><p> case 2 %帶通濾波器</p><p><b>
70、…… </b></p><p> case 3 %帶阻濾波器</p><p><b> ……</b></p><p> case 2 %選擇設(shè)計(jì)hamming濾波器</p><p> switch FilterType_value%選擇濾波器類(lèi)型</p><p>
71、<b> ……</b></p><p> case 3 %選擇設(shè)計(jì)hanning濾波器</p><p> switch FilterType_value%選擇濾波器類(lèi)型</p><p><b> ……</b></p><p> case 4 %選擇設(shè)計(jì)bartlett濾波器<
72、/p><p> switch FilterType_value%選擇濾波器類(lèi)型</p><p><b> ……</b></p><p><b> end</b></p><p><b> end </b></p><p><b> 3
73、.4文本編輯框</b></p><p> 參數(shù)輸入時(shí),在輸入抽樣頻率Fs的前提下,判斷濾波器通帶臨 (Fp1、Fp2)、濾波器阻帶臨界頻率(Fst1、Fst2)的歸一化頻率wp1、 wp2、ws1、ws1是否在[0,1]之間,如不正確顯示錯(cuò)誤對(duì)話框,</p><p> Fs_value=str2double(get(handles.Fs,'String')
74、);</p><p> Fp1_value=str2double(get(handles.Fp1,'String'));</p><p> wp1=2*Fp1_value/Fs_value;%如果不在[0,1]之間,顯示輸入錯(cuò)誤對(duì)話框</p><p> if(wp1>=1)</p><p> errordlg(&
75、#39;wp1=2*Fp1/Fs,歸一化頻率不在【0,1】之間,請(qǐng)輸入正確的參數(shù)','錯(cuò)誤信息') </p><p><b> end</b></p><p> 3.5 GUI整體界面</p><p><b> 課程設(shè)計(jì)總結(jié)</b></p><p> 1、GUI是實(shí)現(xiàn)
76、人機(jī)交互的中介,具有強(qiáng)大的功能,可以完成許多復(fù)雜的程序模塊。使用它,需要具有一定的知識(shí)儲(chǔ)備和必要的經(jīng)驗(yàn)技巧。并且要充分利用好MATLAB 的幫助文檔,仔細(xì)研讀HELP是最好的辦法。需要了解函數(shù)句柄等必要基礎(chǔ)知識(shí),熟悉各控件對(duì)象的基本屬性和方法操作,知曉不同控件的合適使用條件及其特有的功能,并會(huì)采用不同的使用手段來(lái)實(shí)現(xiàn)相同功能的設(shè)計(jì)。同時(shí)還需要詳細(xì)掌握菜單和控件。菜單很簡(jiǎn)單,就是弄清除菜單之間的關(guān)系和如何調(diào)用就可以。控件的使用主
77、要是用好CreateFcn和Callback屬性。CreateFcn中的語(yǔ)句就是在程序運(yùn)行時(shí),就立即執(zhí)行腳本。如果希望界面可控,那么最好用Callback屬性。在相應(yīng)控件下,添加相應(yīng)的腳本就可以實(shí)現(xiàn)比較復(fù)雜計(jì)算繪圖等功能。在設(shè)計(jì)GUI的時(shí)候,要注意一定的原則和步驟,分析界面所要求實(shí)現(xiàn)的主要功能,明確設(shè)計(jì)任務(wù),構(gòu)思草圖,設(shè)計(jì)界面和屬性,編寫(xiě)對(duì)象的相應(yīng)代碼,實(shí)現(xiàn)控件的交互調(diào)用。對(duì)于GUI在數(shù)字信號(hào)處理中的應(yīng)用中,數(shù)字信號(hào)處理這門(mén)學(xué)科的知識(shí)是
78、基礎(chǔ),要掌握數(shù)字信號(hào)處理的相關(guān)知識(shí)的原理后,并用代碼來(lái)實(shí)現(xiàn),才能很好地結(jié)合MATLAB進(jìn)行GUI編程。</p><p> 2、FIR濾波器窗函數(shù)法是從時(shí)域出發(fā),通過(guò)一定的窗函數(shù)截取有限長(zhǎng)的單位脈沖響應(yīng)來(lái)逼近理想單位脈沖響應(yīng);各個(gè)窗函數(shù)在某些細(xì)節(jié)上有所不同,但整體濾波效果區(qū)別不大。</p><p><b> 設(shè)計(jì)體會(huì)</b></p><p>
79、 在為期兩周的課程設(shè)計(jì)中,從剛看到題目的無(wú)從下手到整理好思路,廣泛查閱資料和學(xué)習(xí),到最后的初成規(guī)模,真的受益匪淺。雖然上學(xué)期就已經(jīng)學(xué)習(xí)了數(shù)字信號(hào)處理這門(mén)課,但當(dāng)將及真正運(yùn)用到實(shí)際情況是還是覺(jué)得光是書(shū)本上的知識(shí)并不能解決所有問(wèn)題。還需要自己去廣泛查閱資料,然后融會(huì)貫通,需要自己的自學(xué)以及舉一反三,很有挑戰(zhàn)性也充分鍛煉了自己的能力,對(duì)數(shù)字呢信號(hào)處理技術(shù)與MATLAB應(yīng)用也有了進(jìn)一步的認(rèn)識(shí)。</p><p> 在設(shè)
80、計(jì)中遇到的問(wèn)題有:</p><p> 濾波器參數(shù)設(shè)置是這個(gè)課題的一個(gè)難點(diǎn),一開(kāi)始不了解如何將輸入的參數(shù)讀入到相應(yīng)的程序中去,在查閱了相關(guān)資料后,才對(duì)get(handles.edit1,'String')這個(gè)函數(shù)有了一定的了解;此外諸如濾波器窗函數(shù)選擇等問(wèn)題也是靠著自己邊查資料邊摸索才將其各個(gè)解決。</p><p> 在選擇濾波器的時(shí)候,曾想過(guò)同時(shí)使用FIR和IIR濾波器
81、,但設(shè)計(jì)出來(lái)的IIR濾波器的濾波效果很不理想,試了很多方法都不能改進(jìn),最終只能將其舍棄,選擇用FIR窗函數(shù)進(jìn)行濾波。</p><p> 在設(shè)計(jì)GUI界面是同樣遇到很多問(wèn)題,各個(gè)按鍵功能設(shè)置好后總是提示出錯(cuò),經(jīng)仔細(xì)觀察發(fā)現(xiàn)沒(méi)有定義全局變量,從而意識(shí)到global的重要性,也明白了程序設(shè)計(jì)中每個(gè)細(xì)節(jié)的至關(guān)重要。另外,在編程的過(guò)程中,常常會(huì)出現(xiàn)一些數(shù)組長(zhǎng)度不一致的情況,GUI中的回調(diào)函數(shù)與一般的MATLAB程序還是有
82、一定的不同,在編寫(xiě)的時(shí)候尤其要注意。</p><p> 通過(guò)這次理論加實(shí)踐的課程設(shè)計(jì),意識(shí)到數(shù)字信號(hào)處理在日常生活中的應(yīng)用,也驚嘆于MATLAB的強(qiáng)大功能。在設(shè)計(jì)中總會(huì)有些意想不到的小發(fā)現(xiàn),希望以后多一些這樣的課設(shè)機(jī)會(huì),并適當(dāng)加長(zhǎng)時(shí)間,也許會(huì)做的更好。這次課設(shè)給了我一次鍛煉自己專(zhuān)業(yè)知識(shí)的機(jī)會(huì),同時(shí)對(duì)今后的畢業(yè)設(shè)計(jì)也有很大的啟示和幫助。</p><p><b> 參考文獻(xiàn)<
83、;/b></p><p> 1 董紹平.數(shù)字信號(hào)處理基礎(chǔ).哈爾濱工業(yè)大學(xué)出版社.1996</p><p> 2 曹弋.MATLAB教程及實(shí)訓(xùn)[M].北京.機(jī)械工業(yè)出版社,2008.05</p><p> 3 徐成波 陶紅艷 楊菁 楊如明編著.?dāng)?shù)字信號(hào)處理及MATLAB實(shí)現(xiàn).第二版.北京:清華大學(xué)出版社,2008.1</p><p
84、> 4 陳垚光等.精通MATLAB GUI設(shè)計(jì).北京.電子工業(yè)出版社,2008.02</p><p> 5 王宏.MATLAB6.5及其在數(shù)字信號(hào)處理中的應(yīng)用.北京:清華大學(xué)出版社</p><p><b> 課程設(shè)計(jì)成績(jī)?cè)u(píng)定表</b></p><p><b> 設(shè)計(jì)上機(jī)驗(yàn)收成績(jī)表</b></p>
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于matlab濾波器設(shè)計(jì)說(shuō)明書(shū)
- 語(yǔ)音濾波器課程設(shè)計(jì)--語(yǔ)音濾波器
- iir濾波器課程設(shè)計(jì)
- 語(yǔ)音濾波器課程設(shè)計(jì)
- 語(yǔ)音濾波器課程設(shè)計(jì)
- 課程設(shè)計(jì)--帶通濾波器
- dsp課程設(shè)計(jì)--濾波器
- 濾波器的課程設(shè)計(jì)
- 語(yǔ)音濾波器課程設(shè)計(jì)
- 課程設(shè)計(jì)---濾波器的設(shè)計(jì)
- fir帶阻濾波器課程設(shè)計(jì)
- 低通濾波器課程設(shè)計(jì)論文
- 電路課程設(shè)計(jì)---低通濾波器
- 語(yǔ)音濾波器的課程設(shè)計(jì)
- iir帶通濾波器課程設(shè)計(jì)
- 橢圓低通濾波器課程設(shè)計(jì)
- fir帶通濾波器課程設(shè)計(jì)
- 代碼輸入器課程設(shè)計(jì)說(shuō)明書(shū)
- 變速器課程設(shè)計(jì)說(shuō)明書(shū)
- 濾波器設(shè)計(jì)與信號(hào)濾波課程設(shè)計(jì)報(bào)告
評(píng)論
0/150
提交評(píng)論