




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
課程設計說明書PAGEPAGE17唐山學院課程設計1引言1.1設計的背景“信號與系統”是一門實用性較強、涉及面較廣的專業基礎性課程,是電子信息類專業本科學生的必修課程,也是電子信息類專業碩士研究生入學必考的課程。長期以來,該課程一直采用黑板加粉筆式的單一教學方式,學生僅依靠做習題來鞏固和理解教學內容,對課程中大量的應用性較強的內容不能實際動手設計、調試、分析,嚴重影響和制約了教學效果。由于“信號與系統”課程長期以來一直以粉筆加黑板式教學為主。所以大量的分析結果缺乏可視化的直觀表現,導致學生學起來比較抽象,并且花大量的時間和精力在手工數學運算上,但不能真正理解結果在信號處理中的實際運用。因此,我們在這次畢業設計中用MATLAB來對該課程的部分內容進行形象、直觀的可視化計算機模擬與仿真實現。在此基礎上,我們應用了MATLAB的圖形用戶界面功能完成了信號與系統部分內容課件的設計并實現了進行交互式的操作。1.2設計的目標和內容1熟練掌握連續信號的時域變換、頻域、復頻域變換的基本方法與原理,掌握連續信號的變換的原理以及連續信號的時域變換、頻域、復頻域變換的二維曲線圖。2熟練掌握MATLAB的操作與應用。3熟練掌握MATLAB程序設計與實現方法。4熟練掌握MATLAB的二維曲線圖的可視化表現方法,圖形對象的屬性、事件與方法及其編程與控制。5熟練掌握MATLAB的圖形用戶界面集成開發環境——GUIDE,以及用戶界面的設計與實現方法。6以MATLAB為開發平臺,GUIDE為開發環境,開發完成連續信號的時域變換、頻域、復頻域變換的二維曲線動態演示系統。1.3設計意義以計算機輔助教學的模式進行學習,這樣學生能夠更加深刻地了解該課程,從而能夠更加好的掌握課程所涉及到的知識。所以將MATLAB引入到“信號與系統”課程中的意義的非常巨大的。利用MATLAB高效的數值計算和符號計算功能,使學生能夠從繁瑣的數學運算分析中解脫出來從而把有限的時間用到課程知識的理解與運用上。利用MATLAB完備的圖形處理功能,實現計算結果和編程的可視化,可以讓信號能夠很直觀的表現出來,極大的提高了學生的學生的學習效率。用MATLAB的可視化建模及動態仿真功能,讓學生能夠對信號在系統中各種傳輸、變換與運算有深層次的理解,對整個過程也能夠有更加直觀和全面的認識。MATLAB功能豐富的應用工具箱,為學生和老師提供了大量方便實用的處理工具,在處理好課程內知識的同時,還可以對課程相關知識做更深入的研究。1.4系統的基本功能1系統由連續時間信號的時域變換、頻域、復頻域變換組成;2系統為用戶提供交互式的信號選擇功能,為用戶提供可視化的連續時間信號的變換與運算的觀察與分析界面;3通過典型信號將連續時間信號的變換與運算用生動直觀的二維曲線面圖進行可視化表現;4為“信號與系統”課程的教學提供計算機輔助教學環境。5開發平臺與開發環境:開發平臺:WindowsXPProfessional+MATLAB7.0開發環境:MATLAB7.0GUI(layoutEditor、M-fileEditor)2總體設計2.1開發與設計的總體思想模塊主要針對連續時間信號的時域變換、頻域、復頻域變換進行設計。我們提供了一些典型的例子,利用軟件對信號進行簡單分析。在時域變換部分,我們提供了零狀態響應、階躍響應、沖激響應等功能;而在頻域、復頻域變換部分,我也提供了一些例子。2.2系統功能結構圖MMatlab主程序復頻域(拉普拉斯變換)頻域(傅里葉變換)設計入門時域零狀態響應沖激和階躍響應圖1系統功能結構圖3.詳細設計(算法、原理、仿真演示)我們的總體思路是模塊化程序設計。將程序功能分割成時域變換、頻域變換、復頻域變換等幾個模塊,通過函數之間的調用實現總功能。3.1時域變換仿真分析3.1.1實驗原理(1)線性時不變(LTI)連續時間系統用常系數線性微分方程進行描述,系統的零狀態響應就是在系統初始狀態為零條件下微分方程的解。MATLAB控制系統工具箱提供了一個lsim函數來求解連續時間系統的零狀態響應。設系統方程為:f(t)b(t)fb(t)fb(t)fby(t)a(t)ya(t)ya(t)ya)()()()()()(01122330112233+++=+++,該方程左邊、右邊的系數向量分別為][0123a,a,a,aa=,][0123b,b,b,bb=,所對應的系統模型sys可借助MATLAB中的tf函數得到:sys=tf(b,a).這樣,系統的零狀態響應為:y=lsim(sys,f,t),其中f是輸入信號向量,t是與f對應的時間變量。(2)連續系統的沖激響應、階躍響應分別是輸入信號為)t(δ和所對應的零狀態響應。MATLAB控制系統工具箱專門提供了兩個函數求解連續系統的沖激響應和階躍響應。沖激響應:y=impulse(sys,t);階躍響應:y=step(sys,t).其中sys,t的含義同上。3.12零狀態響應Y(2)(t)+4y(1)(t)+4y(t)=f(1)(t)+3f(t),f(t)=e^u(t).求零狀態響應y(t)源程序見6.1.1程序運行結果見下圖2。圖23.1.2沖擊和階躍沖激響應和階躍響應的結果如下圖3,源程序見6.1.2圖33.1.3卷積卷積是信號與系統中一個最基本、也是最重要的概念之一。在時域中,對于LTI連續時間系統,其零狀態響應等于輸入信號與系統沖激響應的卷積;而利用卷積定理,這種關系又對應頻域中的乘積。如實驗一所述,我們用離散卷積來代替連續卷積,只要取樣時間間隔足夠小時,就可得到滿意的效果。MATLAB信號處理工具箱提供了一個計算兩個離散序列卷積和的函數conv。設向量a、b代表待卷積的兩個序列,則c=conv(a,b)就是a與b卷積后得到的新序列。1:利用conv函數,編制一個函數文件dconv,其輸出為兩個序列卷積后的新序列以及與該新序列對應的時間變量。function[f,k]=dconv(f1,f2,k1,k2)%計算f1與f2的卷積,并返回與得到的新序列相對應的時間變量%f1,f2為輸入序列;k1,k2為f1,f2所對應的時間變量范圍f=conv(f1,f2);k_start=k1(1)+k2(1);k_end=length(f1)+length(f2)-2;k=k_start:(k_start+k_end);2:在dconv函數和(*)式的基礎上,編制一個函數文件cconv,利用離散卷積和來近似計算連續卷積積分。function[f,k]=cconv(f1,f2,k1,k2,td)%計算f1與f2的連續卷積,并返回與得到的新序列相對應的時間變量f=td*conv(f1,f2);%實驗講義中的(*)式計算k_start=k1(1)+k2(1);k_end=length(f1)+length(f2)-2;k=k_start:td:(k_start+k_end*td);詳細源程序見6.1.33.2頻域變換類似于傅里葉級數正交展開,函數看做復指數函數在整個連續頻率區間上的積分和G(f)稱為g(x)的傅里葉變換,或頻譜。若g(x)表示某空間域的物理量,G(f)則是該物理量在頻率域的表示形式。振幅與相位頻譜A(f)=|G(f)|,是g(x)的振幅頻譜;φ(f)是g(x)的相位頻譜。1.函數絕對可積2.在任一有限區域里,g(x,y)必須只有有限個間斷點和有限個極大和極小點3.g(x,y)必須沒有無窮大間斷點若函數可以看作是某個可變換函數所組成的序列的極限,對序列中每一函數進行變換,組成一個新的變換式序列,這個新序列的極限就是原來函數的廣義傅里葉變換根據存在條件知:Delta函數、正、余弦函數、階躍函數不存在FT源程序見6.1.4圖4頻域變換主頁面3.3復頻域變換我們知道,對于階躍信號,其拉普拉斯變換為。首先,利用兩個向量來確定繪制曲面圖的平面的橫、縱坐標的范圍。例如可定義繪制曲面圖的橫坐標范圍向量x1和縱坐標范圍向量y1分別為:x1=-0.2:0.03:0.2;y1=-0.2:0.03:0.2;然后再調用meshgrid()函數產生矩陣s,并用該矩陣來表示繪制曲面圖的復平面區域,對應的MATLAB命令如下:[x,y]=meshgrid(x1,y1);s=x+i*y;上述命令產生的矩陣包含了復平面,范圍內以時間間隔0.03取樣的所有樣點。最后再計算出信號拉普拉斯變換在復平面的這些樣點上的值,即可用函數mesh()繪出其曲面圖,對應命令為:fs=abs(1./s);mesh(x,y,fs);surf(x,y,fs);title('單位階躍信號拉氏變換曲面圖');colormap(hsv);axis([-0.2,0.2,-0.2,0.2,0.2,60]);rotate3d;執行上述命令后,繪制的單位階躍信號拉普拉斯變換曲面圖如圖5-1所示。圖5-1階躍信號拉普拉斯變換曲面圖圖5-1階躍信號拉普拉斯變換曲面圖例6-1:已知連續時間信號,求出該信號的拉普拉斯變換,并利用MATLAB繪制拉普拉斯變換的曲面圖6—1。解:該信號的拉普拉斯變換為:利用上面介紹的方法來繪制單邊正弦信號拉普拉斯變換的曲面圖,實現過程如下:%繪制單邊正弦信號拉普拉斯變換曲面圖程序圖6-1單邊正弦信號拉氏變換曲面圖圖6-1單邊正弦信號拉氏變換曲面圖4.總結這次我的設計開發基于MATLAB下的信號與系統教學輔助系統的過程中,在王麗俠老師的細心指導和幫助下;我親身體驗到了如何運用MATLAB來進行實用性的開發工作,在開發過程中我對信號與系統這門課程以及MATLAB軟件有了更加深入的認識,同時也對軟件的開發過程得到了解,這對于我以后的學習與工作有著非常重要的意義。與此同時,通過這次開發經歷我也感受到自己存在著很多不足,比如說:學科知識不夠扎實,知識結構不夠完善,軟件操作與程序設計能力不高等等。但是值得欣慰的是,在王老師的耐心指導下,我還是成功的完成了自己所負責的設計與實現,雖然還可能存在許多的問題,但是我覺得我在動手能力方面有了很大的提高,受益非淺。5主要參考資料[1]薛定宇,陳陽泉,基于matlab/Simulink的系統仿真技術與應用,清華大學出版社,2002[2]鐘麟,王峰,MATLAB仿真技術與應用教程,國防工業出版社,2005[3]樓順天,李博菡,基于MATLAB的系統分析與設計—信號處理,西安電子科技大學出版社,1998[4]吳湘琪,信號、系統與信號處理的軟硬件實現,電子工業出版社,2002[5]吳大正等,信號與系統分析,高等教育出版社,2000;[6]鄭君里等,信號與系統,高等到教育出版社,2001;[7]梁虹等,信號與系統及MATLAB實現,電子工業出版社,2002;[8]MATLAB6.5聯機幫助; [9]張志涌等,精通MATLAB,北京航空航天大學出版社,2000;[10]程衛國等,MATLAB應用指南,人民郵電出版社;[11]姚東等,MATLAB命令大全,人民郵電出版社,2001;[12]飛思科技,MATLAB6.5應用接口編程,電子工業出版社。6附錄:源程序清單6.1上面用到的程序6.1.1a=[144];b=[13];sys=tf(b,a);td=0.01;t=0:td:10;f=exp(-t);y=lsim(sys,f,t);plot(t,y);xlabel('t(sec)');ylabel('y(t)');gridon6.1.2clear;clc;t=0:0.001:6;sys=tf([1],[2,3,4]);h=impulse(sys,t);g=step(sys,t);subplot(211)plot(t,h),gridonxlabel('Time(sec)'),ylabel('h(t)')title('沖激響應')subplot(212)plot(t,g),gridonxlabel('Time(sec)'),ylabel('g(t)')title('階躍響應')6.1.3function[f,t]=ctsconv(f1,f2,t1,t2,dt)f=conv(f1,f2);f=f*dt;ts=min(t1)+min(t2);te=max(t1)+max(t2);t=ts:dt:te;subplot(221)plot(t1,f1);gridonaxis([min(t1),max(t1),min(f1)-abs(min(f1)*0.2),max(f1)+abs(max(f1)*0.2)])title('f1(t)');xlabel('t');subplot(222)plot(t2,f2);gridonaxis([min(t2),max(t2),min(f2)-abs(min(f2)*0.2),max(f2)+abs(max(f2)*0.2)])title('f2(t)');xlabel('t');subplot(212)plot(t,f);gridonaxis([min(t),max(t),min(f)-abs(min(f)*0.2),max(f)+abs(max(f)*0.2)])title('f(t)=f1(t)*f2(t)');xlabel('t'6.1.4g(x,y)limrectxrectyT=4;tao=2;w=2*pi/T;a0=quadl(@singrect,-2,2)/T;%計算a0N=10;an=zeros(1,N);bn=zeros(1,N);fork=1:N30an(k)=quadl(@rectcos,-2,2,[],[],k,w)*2/T;%計算an.quadl中的[],[]表示以默認精度進行數值積分,k,w為%rectcos函數中的后兩個參數;bn(k)=quadl(@rectsin,-2,2,[],[],k,w)*2/T;%計算bn;end;n=1:1:N;figure(1);subplot(1,2,1);plot(n,an,'-o');gridon;subplot(1,2,2);plot(n,bn,'-o');gridon;t=-6:0.01:6;x=pulstran(t,-8:4:8,'rectpuls',2);%生成周期矩形脈沖信號figure(2);subplot(6,2,1);plot(t,x);axis([-8,8,-1,2]);gridon;%有限項級數逼近A0=a0;AN=sqrt(an.^2+bn.^2);fiN=-atan(bn./an);subplot(6,2,2);plot(t,A0/2);gridon;%直流項wave=a0/2;fork=1:10wave=wave+an(k)*cos(k*w*t+fiN(k));subplot(6,2,k+2);plot(t,wave);gridon;end程序中“singrect”、“rectcos”和“rectsin”分別為所預先定義的函數文件。其中singrect.m文件為:functiony=singrect(t);y=(abs(t)<=1);%定義單個矩形脈沖函數rectcos.m文件為:functiony=rectcos(t,n,w);y=(abs(t)<=1).*cos(n*w*t);%定義了矩形脈沖與余弦函數的乘積31rectsin.m文件為:functiony=rectsin(t,n,w);y=(abs(t)<=1).*sin(n*w*t);%定義了矩形脈沖與正弦函數的乘積運行結果:傅里葉系數圖形4:12345678910-0.500.5112345678910-1-0.500.516.1.5clf;a=-0.5:0.08:0.5;b=-1.99:0.08:1.99;[a,b]=meshgrid(a,b); d=ones(size(a));c=a+i*b;%確定繪制曲面圖的復平面區域c=c.*c;c=c+d;c=1./c;c=abs(c); %計算拉普拉斯變換的樣值mesh(a,b,c); %繪制曲面圖surf(a,b,c);axis([-0.5,0.5,-2,2,0,15]);title('單邊正弦信號拉氏變換曲面圖');colormap(hsv);6.2常用語句Allnodes計算樹結點
appcoef提取一維小波變換低頻系數
appcoef2提取二維小波分解低頻系數
bestlevt計算完整最佳小波包樹別可以實現一維、二維和N維DFT
besttree計算最佳(優)樹biorfilt雙正交樣條小波濾波器組
biorwavf雙正交樣條小波濾波器Matlabcentfrq求小波中心頻率
cgauwavfComplexGaussian小波
cmorwavfcoiflets小波濾波器1.離散傅立葉變換的Matlab實現
cwt一維連續小波變換
dbauxDaubechies小波濾波器計算
dbwavfDaubechies小波濾波器dbwavf(W)W='dbN'N=1,2,3,...,50別可以實現一維、二維和N維DFT
ddencmp獲取默認值閾值(軟或硬)熵標準
depo2ind將深度-位置結點形式轉化成索引結點形式
detcoef提取一維小波變換高頻系數Matlab
detcoef2提取二維小波分解高頻系數
disp顯示文本或矩陣
drawtree畫小波包分解樹(GUI)別可以實現一維、二維和N維DFT
dtree構造DTREE類
dwt單尺度一維離散小波變換
dwt2單尺度二維離散小波變換別可以實現一維、二維和N維DFT
dwtmode離散小波變換拓展模式dyaddown二元取樣
dyadup二元插值1.離散傅立葉變換的Matlab實現
entrupd更新小波包的熵值
fbspwavfB樣條小波
gauswavfGaussian小波Matlab
get獲取對象屬性值
idwt單尺度一維離散小波逆變換
idwt2單尺度二維離散小波逆變換
ind2depo將索引結點形式轉化成深度—位置結點形式
*intwave積分小波數
isnode判斷結點是否存在Matlab
istnode判斷結點是否是終結點并返回排列值
iswt一維逆SWT(StationaryWaveletTransform)變換
iswt2二維逆SWT變換Matlab
leavesDetermineterminalnodes
mexihat墨西哥帽小波
meyerMeyer小波別可以實現一維、二維和N維DFT
meyerauxMeyer小波輔助函數
morletMorlet小波
nodease計算上溯結點
nodedesc計算下溯結點(子結點)
nodejoin重組結點
nodepar尋找父結點別可以實現一維、二維和N維DFT
nodesplt分割(分解)結點
noleavesDeterminenonterminalnodes
ntnodeNumberofterminalnodes函數fft、fft2和fftn分
ntreeConstructorfortheclassNTREEorthfilt正交小波濾波器組
plot繪制向量或矩陣的圖形qmf鏡像二次濾波器
rbiowavfReversebiorthogonalsplinewaveletfilters
read讀取二進制數據
readtree讀取小波包分解樹scal2frqScaletofrequency
setMatlab
shanwavfShannonwavelets
swt一維SWT(StationaryWaveletTransform)變換
swt2二維SWT變換
symauxSymletwaveletfiltercomputation.
symwavfSymlets小波濾波器
thselect信號消噪的閾值選擇
thodesReferences
treedpth求樹的深度
treeord求樹結構的叉數
upcoef一維小波分解系數的直接重構
upcoef2二維小波分解系數的直接重構
upwlev單尺度一維小波分解的重構
upwlev2單尺度二維小波分解的重構
wavedec單尺度一維小波分解
wavedec2多尺度二維小波分解Matlab
wavedemo小波工具箱函數demowavefun小波函數和尺度函數wavefun2二維小波函數和尺度函數別可以實現一維、二維和N維DFT
wavemenu小波工具箱函數menu圖形界面調用函數wavemngr小波管理函數
waverec多尺度一維小波重構1.離散傅立葉變換的Matlab實現
waverec2多尺度二維小波重構
wbmpenPenalizedthresholdforwavelet1-Dor2-Dde-noising
wcodemat對矩陣進行量化編碼1.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 從理論到實踐探索如何利用區塊鏈技術提升企業信息安全保障能力
- 從服務到體驗以患者為中心的醫院品牌建設策略
- 企業數字化轉型中的區塊鏈安全保障方案
- 以洛陽市為藍本探索我國新型健康服務體系建設路徑
- 從傳統到智能醫療信息化中的電子病歷系統轉型
- 以草藥的視角解讀醫療人文教育的未來趨勢
- 全球化的趨勢下如何利用區塊鏈技術優化跨境交易
- 供應鏈透明化管理的關鍵技術-區塊鏈解析
- 2025年中國冷凍干燥南極蝦粉市場調查研究報告
- 2025年中國修補工具市場調查研究報告
- 華為經營管理叢書華為的研發管理
- 2025年安徽國際商務職業學院單招職業技能考試題庫及答案1套
- 2024北京理工大附中高一(下)期中英語試題及答案
- 干洗店中央洗衣工廠崗位職責及管理手冊
- 2024年數學新高考I卷評析及教學建議
- 玉盤二部合唱簡譜
- 第十一單元課題1 化學與人體健康教學設計-2024-2025學年九年級化學人教版(2024)下冊
- 個人裝載機租賃協議書范本
- 2022年高級經濟師《運輸經濟》試題真題及答案
- 2023-2024學年滬科版(2019)高中信息技術必修一第三單元項目六《解決溫標轉換問題-認識程序和程序設計語言》教學設計
- 《豬的傳染病》課件
評論
0/150
提交評論