《信號與系統(tǒng)》實驗指導書_第1頁
《信號與系統(tǒng)》實驗指導書_第2頁
《信號與系統(tǒng)》實驗指導書_第3頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、信號與系統(tǒng)?實驗指導書黃劍航 編莆田學院機電工程學院2022年 3 月目錄實驗 1MATLAB 在信號處理中的應用根底 1實驗 2 連續(xù)時間信號在 MATLAB 中的表示 6實驗 3連續(xù)時間信號在 MATLAB 中的運算 12實驗 4傅里葉變換及其性質(zhì) 18實驗5信號抽樣及抽樣定理 24實驗 6連續(xù)時間 LTI 系統(tǒng)的時域分析 30、八 、-前言MATLAB是矩陣實驗室Matrix Laboratory的簡稱,它是美國 MathWorks 公司出品的商業(yè)數(shù)學軟件, 用于算法開發(fā)、 數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計算 的高級技術(shù)計算語言和交互式環(huán)境,主要包括 MATLAB 和 Simulink 兩

2、大局部。MATLAB 的根本數(shù)據(jù)單位是矩陣,它的指令表達式與數(shù)學、工程中常用的 形式十分相似,故用 MATLAB 來解算問題要比用 C, FORTRAN 等語言完成相 同的事情簡捷得多,并且 MathWorks 公司也吸收了像 Maple 等軟件的優(yōu)點 ,使 MATLAB 成為一個強大的數(shù)學軟件。 MATLAB 可以進行矩陣運算、繪制函數(shù)和 數(shù)據(jù)、實現(xiàn)算法、創(chuàng)立用戶界面、連接其他編程語言的程序等,主要應用于工程 計算、控制設(shè)計、信號處理與通訊、圖像處理、信號檢測、金融建模設(shè)計與分析 等領(lǐng)域。MATLAB 在信號與系統(tǒng)中的應用主要包括符號運算和數(shù)值計算仿真分析。 由于信號與系統(tǒng)課程的許多內(nèi)容都是

3、基于公式演算,而 MATLAB 借助符號數(shù)學 工具箱提供的符號運算功能, 能根本滿足信號與系統(tǒng)課程的需要。 例如解微分方 程、傅立葉正反變換、拉普拉斯正反變換和 Z 正反變換等。 MATLAB 在信號與 系統(tǒng)中的另一主要應用是數(shù)值計算與仿真分析, 主要包括函數(shù)波形繪制、 函數(shù)運 算、沖激響應仿真分析、信號的時域分析、信號的頻譜分析等內(nèi)容。數(shù)值計算仿 真分析可以幫助學生更深入地理解信號與系統(tǒng)的理論知識,并為將來使用 MATLAB 進行信號處理領(lǐng)域的各種分析和實際應用打下根底。實驗報告要求如下:1. 具體格式參照“莆田學院機電工程學院實驗報告格式。2. 注意實驗報告要求分析組織有條理,截圖美觀,結(jié)

4、論正確。實驗1 MATLAB 在信號處理中的應用根底1. 實驗目的熟悉MATLAB工作環(huán)境和根本操作;熟悉MATLAB數(shù)組及矩陣運算;學習 函數(shù)的編制,掌握MATLAB的編程應用。通過不同的程序結(jié)構(gòu)和不同的實際編 程問題,掌握MATLAB的編程方法。2. 實驗內(nèi)容232.1假設(shè)x=3, y=4。利用MTLAB計算以下表達式:z X y 3,要求: (x y)31在命令窗口直接輸入,得到運算結(jié)果;2編寫M文檔并在命令窗口執(zhí)行,然后用工作空間平臺查看有哪些變量在當 前工作區(qū)。1 22.2 一小球從空中下落的位移公式為:x xo vot at ,利用MATLAB計算2小球在 t=5s 時的位置,:x

5、0 1Om,vo 15m/s,a9.8m/s2.2.3計算函數(shù)f(x) x3 (x 0.98)2 /(x 1.25)3 5(x 1)2在x為如下取值時候的x函數(shù)值,x取 4.9, 3.2, 1OO, 1.5, 9.75, 2.56 16,4.9,10。2.4確定以下數(shù)組的大小,通過 whos或工作空間窗口 The workspace browse 檢查你的答案。注意在本練習中后面的數(shù)組可能要用到前面數(shù)組的定義。(1) u=1O, 2O, 1O+2O v=-1;2O;3(3) w=1 O -9;2 -2 O;1 2 3 x=u' v(5) y(3,3)=-7(6) z=zeros(4,1

6、) ones(4,1) zeros(1,4)'(7) v=x(2,1)2.5執(zhí)行完2.4的所有題目后,w(2,1)的值是多少? x(2,1)的值是多少? y(2,1)的值是多少?2.6 c數(shù)組的定義如下,寫出下面子數(shù)組的內(nèi)容。1.1000 -3.2000 3.4000 0.60000.6000 1.1000-0.6000 3.10001.30000.60005.50000(1) c(2,:) (2) c(:,end) (3) c(1:2,2:end) (4) c(6)(5) c(4:end) (6) c(1:2,2:4) (7) c(1 4,2) (8) c(2 2,3 3)2.7當賦

7、值語句執(zhí)行后,以下數(shù)組的內(nèi)容是多少?(1) a=1 2 3; 4 5 6; 7 8 9;a(3 1,:)=a(1 3,:);(2) a=1 2 3; 4 5 6; 7 8 9;a(1 3,:)=a(2 2,:);(3) a=1 2 3; 4 5 6; 7 8 9;a=a(2 2,:);2.8假設(shè)a,b,c和d的定義如下:1 01 23a,b,c ,d 52 1 0 1 2分別運行出以下表達式的運算結(jié)果,并思考點乘和乘法的不同(1) a + b a .* c a * b a * c(5) a + c (6) a + d (7) a .* d (8) a * d2.9 一個程序?qū)嵗龑W習:溫度轉(zhuǎn)換設(shè)

8、計一個MATLAB 程序,讀取一個華氏溫度的輸入,輸出開爾文溫度。華氏溫度和開爾文溫度的轉(zhuǎn)換關(guān)系式可在物理學課本中找到。其關(guān)系式為:鞏開爾文)=f|r(ia匱厘)-3卜171151I hi.在物理學參考書中舉了一些例子,我們可以用來檢驗我們程序是否正確。例如2J21沐水濕令鞫的泡度-HO我們設(shè)計程序的步驟如下:1提示用戶鍵入華氏溫度值2讀取輸入值3通過關(guān)系式轉(zhuǎn)換為開氏溫度4輸出結(jié)果,結(jié)束我們將會用in put函數(shù)輸入華氏溫度,用fprintf函數(shù)輸出結(jié)果。% Script file:temp_c onv ersio n.m% Purpose:% To convert an in put tem

9、perature from degrees Fahre nheit to% an output temperature in kel vins.% Record of revisi ons:% Date Programmer Descripti on of cha nge% = = =% 12/01/97 S.J. Chapma n Origi nal code%Defi ne variables:% temp_f -Temperature in degrees Fahre nheit% temp_k -Temperature in kelvi ns%Prompt the user for t

10、he in put temperature.temp_f=i nput('E nter the temperature in degrees Fahre nheit:');%Con verttokelvi ns.temp_k=(5/9)*(temp_f-32)+273.15;%Writeouttheresult.fprin tf('%6.2f degrees Fahre nheit = %6.2f kelvin s.n',. temp_f,temp_k);我們輸入上面的例子中的華氏溫度值,以檢測程序的正確性。注意用戶的輸入值 已用黑 體字標出。>>

11、temp_c onv ersi onEn ter the temperature in degrees Fahre nheit: 212212.00 degrees Fahre nheit = 373.15 kelvi ns.>> temp_c onv ersi onEn ter the temperature in degrees Fahre nheit: -110-110.00 degrees Fahre nheit = 194.26 kelvi ns.這個結(jié)果和物理教科書的結(jié)果相同。2.10編寫一個程序,計算出坐標系中用戶指定兩點(X1,Y1)和(X2,Y2)之間的距離要求有

12、輸入、輸出及其相關(guān)提示。xx2.11雙曲余弦的定義如下:. e e cosh x2編寫一個程序,計算出用戶指定的x的值對應的雙曲余弦值。用這個程序計算雙曲余弦值的假設(shè)干值,并和 MATLAB 中的內(nèi)建函數(shù)cosh(x)得到的值比擬看 看是否完全相同。并用 MATLAB 打印出這個函數(shù)的圖象。2.12電子工程:負載的最大輸出功率一個內(nèi)阻 Rs= 50Q,電動勢V= 120V的電 源驅(qū)動一個負載RL。當RL為多少時,RL的功率最大?在這種情況下,功率為 多少?畫以RL為自變量的RL功率圖。1 1 12.13利用公式一1 1 1丄求43 5 7510為止。的近似值,直到最后一項的絕對值小于2.14

13、Fib on acci(斐波納契序列的元素滿足 Fib on acci規(guī)貝U:ak 2 ak1 ak(k 1,2,3.)且® 1® 1;現(xiàn)要求該序列中第一個大于 20000的并指明該兀素是序列的第幾項2.15在田徑比賽中,一個身高為一米八零的鉛球運發(fā)動, 大概以多大的角度和 水平方向夾角推鉛球,才能使鉛球推得最遠,并求出最遠距離。不計空氣阻力, 假設(shè)鉛球出手點和運發(fā)動高度相等,且鉛球出手瞬間初始速度大小為 14m/s,重 力加速度取g=10m/s2。2.16打印出所有的“水仙花數(shù),所謂“水仙花數(shù)是指一個三位數(shù),其各位數(shù) 字立方和等于該數(shù)本身。例如153是一個水仙花數(shù),滿足1

14、53= 1A3+5A3+3A3o2.17有一個函數(shù):xx 1y 2x 11 x 10,寫一程序,輸入X,輸出y值。3x 11 x 102.18 輸入 3 個整數(shù),要求按大小輸出。2.19 編寫一個 MATLAB 程序,要求輸入圓柱體的半徑和高,然后輸出體積3. 思考3.1 MATLAB 的命令窗口的作用是什么?3.2 列出幾種不同的得到 MATLAB 幫助的方法。3.3 什么是工作區(qū)?在同一工作區(qū)內(nèi),你如何決定它里面存儲了什么?3.4 你怎樣清空 MATLAB 工作區(qū)內(nèi)的內(nèi)容?3.5 數(shù)組,矩陣,向量有什么區(qū)別?3.6 答復關(guān)于以下矩陣的有關(guān)問題1.13.23.40.6C 0.61.10.63

15、.11.30.65.50.0(1)C 的大小是多少?(2) C(2,3)的值是多少?(3) 列出值為 0.6 的元素的下標3.7 腳本文件和函數(shù)文件的區(qū)別是什么?實驗 2 連續(xù)時間信號在 MATLAB 中的表示1. 實驗目的學會運用 MATLAB 表示常用連續(xù)時間信號的方法; 觀察并熟悉這些信號的波 形和特性。2. 實驗原理在某一時間區(qū)間內(nèi),除假設(shè)干個不連續(xù)點外,如果任意時刻都可以給出確定 的函數(shù)值,那么稱該信號為連續(xù)時間信號,簡稱為連續(xù)信號。從嚴格意義上講, MATLAB 數(shù)值計算的方法并不能處理連續(xù)時間信號。然而,可利用連續(xù)信號在 等時間間隔點的取樣值來近似表示連續(xù)信號, 即當取樣時間間隔

16、足夠小時, 這些 離散樣值能夠被 MATLAB 處理,并且能較好地近似表示連續(xù)信號。MATLAB 提供了大量生成根本信號的函數(shù)。 比方常用的指數(shù)信號、正余弦信 號等都是 MATLAB 的內(nèi)部函數(shù)。為了表示連續(xù)時間信號,需定義某一時間或自 變量的范圍和取樣時間間隔, 然后調(diào)用該函數(shù)計算這些點的函數(shù)值, 最后畫出其 波形圖。3. 實例分析3.1 典型信號的 MATLAB 表示1實指數(shù)信號實指數(shù)信號的根本形式為 f(t) Ke t 。式中, K, 為實數(shù)。當 0 時,實 指數(shù)信號隨時間按指數(shù)式增長;當 0 時,實指數(shù)信號隨時間按指數(shù)式衰減; 當 0 時候,那么轉(zhuǎn)化為直流信號。 MATLAB 中用 e

17、xp 函數(shù)來表示實指數(shù)信號, 其語句格式為:y K *exp( a* t)例1用MATLAB命令產(chǎn)生單邊衰減指數(shù)信號2e1.5tu(t),并繪出時間0 t 3的 波形圖。解:MATLAB源程序為:clear;clc;K = 2; a = -1.5;t = 0:0.01:3;ft = K*exp(a*t); plot(t,ft);grid on axis(0,3,0,2.2);title('單邊指數(shù)衰減信號');2正弦信號正弦信號的根本形式為f(t) Ksin(t )或者f(t) Kcos( t )。其中K是振幅; 是角頻率;是初相位。這三個參數(shù)稱為正弦信號的三要素。MATLAB

18、中可用sin或者cos函數(shù)來表示正弦信號,其語句格式為:K *sin( *t phi) K *cos( * t phi)例2用MATLAB命令產(chǎn)生正弦信號2sin(2 t /4),并繪出時間0 t 3的波形圖。解:MATLAB源程序為:clear;clc;K = 2; w = 2*pi; phi = pi/4; t = 0:0.01:3;ft = K*s in( w*t+phi); plot(t,ft);grid on axis(0,3,-2.2,2.2); title('正弦信號');圖1單邊指數(shù)衰減信號圖2正弦信號3抽樣信號抽樣信號的根本形式為Sa(t) sin(t)/t,

19、在 MATLAB 中用與Sa(t)類似的sinc(t)函數(shù)表示,定義為 sinc(t) sin( t)/( t)。可以看出,Sa(t)函數(shù)與sinc(t)沒有本質(zhì)的區(qū)別,只是在時間尺度上不同而已。 例3用MATLAB命令產(chǎn)生抽樣信號Sa(t),并繪出時間為6 t 6的波形圖。解:MATLAB源程序為:clear;clc;t = -6*pi: pi/100: 6*pi; ft = sin c(t/pi);plot(t,ft);grid on axis(-20,20,-0.5,1.2); title('抽樣信號');fa+T'f E圖3抽樣信號4矩形脈沖信號矩形脈沖信號在M

20、ATLAB中可用rectpuls函數(shù)產(chǎn)生,其語句格式為:y rectpls (t, width )該函數(shù)用于產(chǎn)生一個幅度為1、寬度為width,且以t=0為對稱軸的矩形脈沖信 號,width的默認值為1。f(t)2 (0 t 1)0 (t 0,t1)例4用MATLAB命令畫出以下矩形脈沖信號的波形圖。解:根據(jù)所定義的矩形脈沖信號,f(t)定義的矩形脈沖寬度為1,脈沖的中心位置相對于縱軸向右移動了 0.5。因此,其MATLAB源程序為:clear;clc;t = -0.5: 0.01: 3;t0 = 0.5; width = 1;圖4矩形脈沖信號ft = 2* rectpuls(t-t0, wi

21、dth); plot(t,ft);grid on axis(-0.5,3,-0.2,2.2); title('矩形脈沖信號');周期性矩形波信號或方波在MATLAB中可用square函數(shù)產(chǎn)生,其語句格式為:y=square(t,DUTY)該函數(shù)用于產(chǎn)生一個周期為2 ,幅值為1的周期性方波信號,其中,DUTY參 數(shù)用來表示信號的占空比DUTY%,即在一個周期內(nèi)脈沖寬度正值局部與脈沖周期比值。占空比默認值為0.5例5用MATLAB命令產(chǎn)生頻率為10Hz,占空比為30%的周期方波信號解:MATLAB源程序為:5期方減信T圖5周期方波信號clear;clc;t = 0: 0.001:

22、0.3;y = square(2*pi*10*t, 30); plot(t,y);grid on axis(0,0.3,-1.2,1.2); title('周期方波信號');還有非周期的三角波脈沖可以用tripuls函數(shù),周期三角波鋸齒波可以用 sawtooth函數(shù)實現(xiàn)。同學們可以通過 MATLAB help自學,或者上網(wǎng)搜索及其他 途徑學習。3.2單位階躍信號的MATLAB表示單位階躍信號是信號分析中的根本信號之一,在信號與系統(tǒng)分析中有著十分重要的意義,常用于簡化信號的時域數(shù)學表示。例如,表示分段函數(shù)信號、時限 信號和因果信號等。單位階躍信號用符號 u(t)表示,定義為:u(

23、t)I!113I&圖6單位階躍信號例6用MATLAB命令產(chǎn)生單位階躍信號u(t) 解:MATLAB源程序為:clear;clc;t = -1: 0.01: 5;ft = (t >=0 );plot(t,ft);grid onaxis(-1,5,-0.5,1.5);title('單位階躍信號');5此外,也可以在 MATLAB的工作目錄下創(chuàng)立 uCT的M文件,其MATLAB 源文件為:fun ctio n f = uCT(t)f = (t>=0);保存后,就可調(diào)用該函數(shù),并運用plot命令來繪制單位階躍信號的波形。例 如,圖6中波形也可以用如下代碼實現(xiàn):cle

24、ar;clc;t = -1: 0.01: 5;ft = uCT(t); plot(t,ft);grid on axis(-1,5,-0.5,1.5); title('單位階躍信號');注意,在此定義的uCT函數(shù)是階躍信號數(shù)值表示方法,因此在數(shù)值電腦中我們將調(diào)用uCT函數(shù)。而在MATLAB的MAPLE內(nèi)核中,將Heaviside函數(shù)定義為階 躍信號符號表達式,在符號運算過程中,假設(shè)要調(diào)用它必須用 sym定義后,才能 實現(xiàn)。例如,還可用下面的命令會出階躍信號,即:clear;clc;y=sym('Heaviside(t)'); %定義符號表達式ezplot(y,-1

25、,5).grid on在表示分段函數(shù)信號、時限信號時,經(jīng)常用到延時的單位階躍信號,對于延時T的單位階躍信號u(t T),可以用uCT(t-T)來表示。解:MATLAB源程序為:(1l7 K圖圖7門函數(shù)波形例7用MATLAB命令實現(xiàn)幅度為1、寬度為1的門函數(shù)g(t)clear;clc;t = -1: 0.01: 1;ft = uCT(t+0.5)-uCT(t-0.5); plot(t,ft);grid on axis(-1,1 -0.2,1.2);title('門函數(shù)');4. 實驗內(nèi)容4.1利用MATLAB命令畫出以下連續(xù)信號的波形圖。12cos(3t/4) 2(2 et)u(

26、t)3tu(t) u(t 1)41 cos( t)u(t) u(t 2)4.2利用MATLAB命令產(chǎn)生幅度為1、周期為1、占空比為0.5的一個周期矩形脈沖信號。T=1;f=1/T=14.3利用MATLAB命令畫出如下信號的實部、虛部、模和幅角。j _4tj_2tf (t)2 e 4 e 2 cos(pi/4*t)+jsin(pi/4*t)5. 問題與思考階躍信號函數(shù)中語句ft = (t >=0 )的含義。實驗 3 連續(xù)時間信號在 MATLAB 中的運算1. 實驗目的學會運用 MATLAB 進行連續(xù)信號的時移、反折和尺度變換;學會運用 MATLAB 進行連續(xù)信號的相加、 相乘運算; 學會運

27、用 MATLAB 數(shù)值計算方法求 連續(xù)信號的卷積。2. 實驗原理2.1 信號的時移、反折和尺度變換信號的時移、反折和尺度變換是針對自變量時間而言的,其數(shù)學表達式與波 形變換之間存在一定的變換規(guī)律。信號f(t)的時移就是將信號數(shù)學表達式中的t用t to替換,其中to為正實數(shù)。 因此,波形的時移變換是將原來的f(t)波形在時間軸上向左或者向右移動。f(t to)為f(t)波形向左移動to ; f(t to)為f(t)波形向右移動to。信號f(t)的反 折就是將表達式中的自變量t用t替換,即變換后的波形是原波形的 y軸鏡像。 信號f (t)的尺度變換就是將表達式中的自變量t用at替換,其中,a為正實

28、數(shù)。 對應于波形的變換,那么是將原來的 f(t)的波形以原點為基準壓縮a 1至原 來的 1/ a ,或者擴展 o a 1至原來的 1/ a 。上述可以推廣到f(at to)的情況。2.2 MATLAB 數(shù)值計算法求連續(xù)時間信號的卷積用 MATLAB 分析連續(xù)時間信號,可以通過時間間隔取足夠小的離散時間信 號的數(shù)值計算方法來實現(xiàn)。 可調(diào)用 MATLAB 中的 conv( )函數(shù)近似地數(shù)值求解連 續(xù)信號的卷積積分。如果對連續(xù)時間信號 f,(t)和f2(t)進行等時間間隔t足夠 小均勻抽樣,那么f't)和f2(t)分別變?yōu)殡x散序列fm t)和f2(m t)。其中m為 整數(shù)。當t足夠小時,f,

29、(m t)和f2(m t)即為連續(xù)時間信號fi(t)和f2(t)。因此連續(xù)信號的卷積積分運算轉(zhuǎn)化為:f(t) f1(t)* f2(t)f1( ) f2(t)dlimf1(m t) f2 (t m t) tm采用數(shù)值計算法,只求當 t n t時卷積積分f(t)的值f(n t),其中,n為整數(shù),即f (n t)f1(m t) f2(n t m t) tmtf1(m t) f2(n m) tm其中, f1(m t) f2(n m) t實際就是離散序列f1(m t)和f2(m t)的卷積和。當 mt足夠小時,f(n t)就是卷積積分的結(jié)果,從而連續(xù)時間信號f(t) f(n t) f1(n)* f2(n

30、)上式說明通過MATLAB實現(xiàn)連續(xù)信號f1(t)和f2(t)的卷積,可以利用各自抽 樣后的離散時間序列的卷積再乘上抽樣間隔t 0抽樣間隔t越小,誤差也就越小。3. 實例分析例 1 信號 f (t) u(t 2) u(t) ( t 1)u(t 1) u(t),試用 MATLAB 命令畫 出 f(t 2)、 f(3t)、f( t)、 f( 3t 2)的波形圖0解:根據(jù)信號,先建立 f(t)函數(shù)文件,即在 MATLAB的工作目錄下創(chuàng)立 functl.m文件,MATLAB 源程序為:function f = funct1(t)f=uCT(t+2)-uCT(t)+(-t+1).*(uCT(t)-uCT(

31、t-1);然后,可以調(diào)用上述函數(shù)來繪制所求的信號波形0程序運行完,產(chǎn)生如圖 1所示的波形0 MATLAB 源程序為:clear;clc;t = -2:0.01:4; ft1 = fun ct1(t-2);ft2 = fun ct1(3*t);ft3 = fun ct1(-t); ft4 = fun ct1(-3*t-2);subplot(221) plot(t,ft1);grid on title('f(t-2)'); axis(-2 4 -0.5 2);subplot(222) plot(t,ft2);grid ontitle('f(3t)'); axis(-

32、2 4 -0.5 2);subplot(223) plot(t,ft3);grid on title('f(-t)'); axis(-2 4 -0.5 2);subplot(224) plot(t,ft4);grid on title('f(-3t-2)'); axis(-2 4 -0.5 2);肚2)妙圖 1f(t-2),f(3t),f(-t),f(-3t-2)波形圖例2用MATLAB數(shù)值計算分析法求信號f,(t) u(t) u(t 2)與f2(t) e3tu(t)的 卷積積分。解:因為f2(t) e3tu(t)是一個持續(xù)時間無限長的信號,而電腦數(shù)值計算不可能

33、計 算真正的無限長時間信號,所以在 進行f2(t)的抽樣離散化時,所取的時間范圍 讓f2(t)衰減到足夠小就可以了,本例中取t 2.5。MATLAB源程序為:clear;clc;dt = 0.01; t = -1:dt:2.5; fl = uCT(t)- uCT(t-2);f2 = exp(-3*t)*uCT(t);f = con v(f1,f2)*dt;n =le ngth(f);tt = (0: n-1)*dt-2; tt 從-2 開始subplot(221), plot(t,f1),grid on; axis(-1,2.5, -021.2);title('f1(t)');

34、 xlabel('t');subplot(222), plot(t,f2),grid on; axis(-1,2.5, -0.2,1.2);title('f2(t)'); xlabel('t');subplot(212), plot(tt,f),grid on; title('f(t)=f1(t)*f2(t)' ); xlabel('t');由于£(t)和f2(t)的時間范圍都是從t 1開始,所以卷積結(jié)果的時間范圍從t 2開始,增量還是取樣間隔t,這就是上面MATLAB語句tt = (0:n-1)*dt-

35、2的由來。對于時限信號的卷積運算,還可以利用 MATLAB中的function命令建立一 個實用函數(shù)來求卷積。例如,可以建立連續(xù)時間信號卷積運算的函數(shù) ctsconv.m , 其MATLAB源程序為:function f,t = ctsconv(f1,f2,t1,t2,dt)f = con v(f1,f2);f = f*dt;ts = mi n(t1) +mi n( t2);te = max(t1)+max(t2);t = ts:dt:te;subplot(221)plot(t1,f1); grid onaxis( min(t1), max(t1), min(f1)- abs(min(f1)*

36、0.2 ), max(f1)+ abs(max(f1)*0.2) ) title( 'f1(t)' );xlabel( 't');subplot(222)plot(t2,f2); grid onaxis( 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); grid onaxis( min(t), max(t), min(f)- a

37、bs(min(f)*0.2 ), max(f)+ abs(max(f)*0.2) ) title( 'f(t)=f1(t)*f2(t)' );xlabel( 't');MATLAB 源程序為:對于例 2,可以用上面定義的 ctsconv 函數(shù)求的,clear;clc;dt = 0.01;t1 = -1:dt:2.5;f1 = uCT(t1)- uCT(t1-2);t2 = t1;f2 = exp(-3*t2).*uCT(t2);t,f = ctsconv(f1,f2,t1,t2,dt);程序運行后,可獲得和例 2 相同的波形結(jié)果4. 實驗內(nèi)容4.1試用MATLA

38、B命令繪制信號f(t) e ' sin( 10 t) e t/2 sin(9 t)的波形圖。4.2 信 號 f(t) u(t) u(t 1) (t 1)u(t 1) u(t) ,畫 出 f(t) 、 f(t 2) 、 f( t)、 f( 2t 1)的波形。4.3 求信號 f1(t) u(t) u(t 2)與的卷積結(jié)果f(t)f't)* f2(t),并畫出fQ, f2(t)和f(t)的波形。4.4 求信號 f1(t) u(t 0.5) u(t 0.5)與自身的卷積結(jié)果 f(t) f1(t)* f1(t) ,并畫出fl(t)和f (t)的波形。5. 問題與思考MATLAB 運算符中

39、 .*和 * 的區(qū)別?可結(jié)合例子說明。 實驗 1和實驗 2 都 有碰到的實驗4傅里葉變換及其性質(zhì)1. 實驗目的學會運用 MATLAB求連續(xù)時間信號的傅里葉Fourie門變換;學會運用 MATLAB求連續(xù)時間信號的頻譜圖;學會運用MATLAB分析連續(xù)時間信號的傅 里葉變換的性質(zhì)。2. 實驗原理及實例分析2.1傅里葉變換的實現(xiàn)信號f的傅里葉變換定義為:F( ) F f (t) f (t)e j Pt,傅里葉反變換定義為:f (t) F 1F( ) 一 f( )ej td 。2信號的傅里葉變換主要包括MATLAB符號運算和MATLAB數(shù)值分析兩種方 法,下面分別加以探討。同時,學習連續(xù)時間信號的頻譜

40、圖。2.1.1 MATLAB符號運算求解法MATLAB符號數(shù)學工具箱提供了直接求解傅里葉變換與傅里葉反變換的函 數(shù)fourier()和ifourier( )。Fourier變換的語句格式分為三種。(1) F=fourier(f,):它是符號函數(shù)f的Fourier變換,默認返回是關(guān)于的 函數(shù)。(2) F=fourier(f,v):它返回函數(shù)F是關(guān)于符號對象v的函數(shù),而不是默認的 , 即 F (v) f (t)e jvtdt °(3) F=fourier(f,u,v):是對關(guān)于u的函數(shù)f進行變換,返回函數(shù)F是關(guān)于v的 函數(shù),即 F(v) f(t)e jvudu。傅里葉反變換的語句格式也分

41、為三種。(1) f=ifourier(F):它是符號函數(shù)F的Fourier反變換,獨立變量默認為,默 認返回是關(guān)于x的函數(shù)。(2) f=ifourier(F,u):它返回函數(shù)f是u的函數(shù),而不是默認的X。(3) f=ifourier(F,u,v):是對關(guān)于v的函數(shù)F進行反變換,返回關(guān)于u的函數(shù)f。 值得注意的是,函數(shù)fourier()和ifourier()都是接受由sym函數(shù)所定義的符號變量或者符號表達式。例1用MATLAB符號運算求解法求單邊指數(shù)信號f (t) e 2tu(t)的傅里葉變換解:MATLAB源程序為:ft = sym('exp(-2*t)*Heaviside(t)

42、9;);Fw = fourier(ft)運行結(jié)果為:Fw = 1/(2+i*w)例2用MATLAB符號運算法求F()乙的傅里葉逆變換f(t)1 2解:MATLAB源程序為:ft = sym('exp(-2*t)*Heaviside(t)');Fw = fourier(ft)運行結(jié)果為:ft = 1/2*exp(-t)*heaviside(t)+1/2*exp(t)*heaviside(-t) 連續(xù)時間信號的頻譜圖信號f(t)的傅里葉變換F()表達了信號在處的頻譜密度分布情況,這就 是信號的傅里葉變換的物理含義。F()般是復函數(shù),可以表示成F( ) F( )ej()。F( ) 與

43、()曲線分別稱為非周期信號的幅度頻譜與相位頻譜,它們都是頻率的連續(xù)函數(shù),在形狀上與相應的周期信號頻譜包絡(luò)線相同。非周期信號的頻譜有兩個特點,密度譜和連續(xù)譜。要注意到,采用fourier() 和ifourier()得到的返回函數(shù),仍然是符號表達式。假設(shè)需對返回函數(shù)作圖,那么 需應用ezplot()繪圖命令。例3用MATLAB命令繪出例1中單邊指數(shù)信號的幅度譜和相位譜。解:MATLAB源程序為ft = sym('exp(-2*t)*Heaviside(t)');Fw = fourier(ft);subplot(211) ezplot(abs(Fw);grid ontitle(

44、9;幅度譜')phase = ata n(imag(Fw)/real(Fw);subplot(212) ezplot(phase);grid on title('相位譜')圖1單邊指數(shù)信號的幅度譜和相位譜2.1.3 MATLAB數(shù)值計算求解法fourier()和ifourier()函數(shù)的一個局限性是,如果返回函數(shù)中有諸如單位沖激 函數(shù)(t)等項,那么用ezplot()函數(shù)無法作圖。對某些信號求變換時,其返回函數(shù) 可能包含一些不能直接用符號表達的式子,因此不能對返回函數(shù)作圖。此外,在很多實際情況中,盡管信號f(t)是連續(xù)的,但經(jīng)過抽樣所獲得的信號那么是多組離 散的數(shù)值量f

45、(n),因此無法表示成符號表達式,此時不能應用fourier()函數(shù)對f(n) 進行處理,而只能用數(shù)值計算方法來近似求解。從傅里葉變換定義出發(fā)有F( ) f (t)e j tdt lim f(n )e j n ,當 足夠小時,上式的近似情況可以滿足實際需要。對于時限信號 f(t),或者在 所研究的時間范圍內(nèi)讓f(t)衰減到足夠小,從而近似地看成時限信號,那么對于上 式可以考慮有限n的取值。假設(shè)是因果信號,那么有M 1F( )f (n ) e j n ,0 n M 1n 0傅里葉變換后在域用MATLAB進行求解,對上式的角頻率進行離散化。假設(shè)離散化后得到N個樣值,即 k - k, 0 k N -

46、1,NM 1.因此有F(k)f(n )e j kn ,0 k N 1。采用行向量,用矩陣表示為n 0F(k);*Nf (n )爲e j kn 爲。其要點是要正確生成f(t)的M個樣本向量f(n )與向量e j kn 。當 足夠小時,上式的內(nèi)積運算即相乘求和運算結(jié) 果即為所求的連續(xù)時間信號傅里葉變換的數(shù)值解。例4 用MATLAB數(shù)值計算法求三角脈沖幅度譜。三角脈沖的數(shù)學表達式如下:1-t 2,4 t 02f(t)-1丄 t 2,0 t 42解:MATLAB源程序為:dt = 0.01;t = -4:dt:4;ft = (t+4 )/2.*uCT(t+4)-t.*uCT(t)+(t-4)/2.*u

47、CT(t-4);N = 2000;k = -N:N;W = 2*pi*k/(2*N+1)*dt);F = dt * ft*exp(-j*t'*W); plot(W,F), grid on axis(-pi pi -1 9);xlabel('W), ylabel('F(W)') title('amplitude spectrum');w圖2三角脈沖信號的幅度譜2.2傅里葉變換的性質(zhì)傅里葉變換的性質(zhì)包含了豐富的物理意義,并且揭示了信號的時域和頻域的 關(guān)系。熟悉這些性質(zhì)成為信號分析研究工作中最重要的內(nèi)容之一尺度變換特性傅里葉變換的尺度變換特性為:假設(shè)f

48、(t)F(),那么有 f(at)aF(a),其/、中,a為非零實常數(shù)。例5 設(shè)矩形信號f(t) u(t 1/2) u(t 1/2),用MATLAB命令繪出該信號及其頻譜圖。當信號f(t)的時域波形擴展為原來的2倍,或壓縮為原來的1/2時,那么 分別得到f(t/2)和f(2t),用MATLAB命令繪出f(t/2)和f(2t)的頻譜圖,并加 以分析比擬解:采用符號運算法求解,并分析結(jié)果。MATLAB源程序為:ft1 = sym('Heaviside(t+1/2)-Heaviside(t-1/2)'); subplot(321); ezplot(ft1,-1.5 1.5),grid

49、on Fw1 = simplify(fourier(ft1); subplot(322);ezplot(abs(Fw1),-10*pi 10*pi), grid on axis(-10*pi 10*pi -0.2 2.2);ft2 = sym( 'Heaviside(t/2+1/2)-Heaviside(t/2-1/2)'); subplot(323);ezplot(ft2,-1.5 1.5), grid onFw2 = simplify(fourier(ft2); subplot(324);ezplot(abs(Fw2),-10*pi 10*pi),grid onaxis(-

50、10*pi 10*pi -0.2 2.2);ft3 = sym( 'Heaviside(2*t+1/2)-Heaviside(2*t-1/2)'); subplot(325);ezplot(ft3,-1.5 1.5), grid onFw3 = simplify(fourier(ft3); subplot(326);ezplot(abs(Fw3),-10*pi 10*pi),grid on axis(-10*pi 10*pi -0.2 2.2);頻移特性傅里葉變換的頻移特性為:假設(shè)f(t) F(),那么有f(t)ej 0t F(0)。頻移技術(shù)在通信系統(tǒng)中得到廣泛應用,諸如調(diào)幅變

51、頻等過程都是在頻譜搬移的根底上完成的。頻移的實現(xiàn)原理是將信號f(t)乘以載波信號cos °t或sin °t,從而完成頻譜的搬移,即f (t )cosot2F(0) F(0)f (t )sin0t0) F(0)例6閱讀并運行如下程序段,并觀察信號調(diào)制前后的頻譜。ft1 = sym( '4*(Heaviside(t+1/4)-Heaviside(t-1/4)');Fw1 = simplify(fourier(ft1); subplot(121);ezplot(abs(Fw1),-24*pi 24*pi),grid on axis(-24*pi 24*pi -0.

52、2 2.2);title'矩形信號頻譜'ft2 = sym( '4*cos(2*pi*6*t)*(Heaviside(t+1/4)-Heaviside(t-1/4)');Fw2 = simplify(fourier(ft2);subplot(122);ezplot(abs(Fw2),-24*pi 24*pi),grid on axis(-24*pi 24*pi -0.2 2.2);title('矩形調(diào)制信號頻譜');3. 實驗內(nèi)容3.1試用MATLAB命令求以下信號的傅里葉變換,并繪出其幅度譜和相位譜。1鈍sin 2 (t 1)(t 1)2f2t

53、sin( t)t3.2試用MATLAB命令求以下信號的傅里葉反變換,并繪出其時域信號圖1F1()103 je423.3試用MATLAB數(shù)值計算方法求門信號的傅里葉變換,并畫出其頻譜圖門信號即g t1, t0, t/2,其中/23.4兩個門信號的卷積為三角波信號,試用MATLAB命令驗證傅里葉變換的時域卷積定理。4. 問題與思考傅里葉變換的其他性質(zhì)可以用類似的方法加以驗證,試舉一例,說明你驗證過程的思路。實驗5信號抽樣及抽樣定理1. 實驗目的本實驗是綜合性實驗,實驗目的主要為:學會運用 MATLAB完成信號抽樣 及對抽樣信號的頻譜進行分析;學會運用MATLAB改變抽樣間隔,觀察抽樣后信號的頻譜變

54、化;學會運用 MATLAB對抽樣后的信號進行重建。進一步加深對 信號采樣和重建過程的理解。2. 實驗原理及實例分析2.1信號抽樣信號抽樣是連續(xù)時間信號分析向離散時間信號、連續(xù)信號處理向數(shù)字信號處 理的第一步,廣泛應用于實際的各類系統(tǒng)中。所謂信號抽樣,也稱為取樣或采樣, 就是利用抽樣脈沖序列P(t)從連續(xù)信號f(t)中抽取一系列的離散樣值,通過抽樣 過程得到的離散樣值信號稱為抽樣信號,用fs(t)表示。從數(shù)學上講,抽樣過程就是抽樣脈沖p(t)和原連續(xù)信號f(t)相乘的過程,即:fs(t) f(t)p(t)因此可以用傅里葉變換的頻移卷積性質(zhì)來求抽樣信號fs(t)的頻譜。常用的抽樣脈沖序列p(t)有

55、周期矩形脈沖序列和周期沖激脈沖序列。假設(shè)原連續(xù)信號f(t)的頻譜為F(),即f(t) F();抽樣脈沖p(t)是一個 周期信號,它的頻譜為:p(t)巳ejn stP( ) 2 巳(n s)nn2其中,s 為抽樣角頻率,Ts為抽樣間隔。因此,抽樣信號fs(t)的頻譜為:Ts1Fs( ) 2-F( )P( )F( )Pn ( n s)時(n s)nn上式說明,信號在時域被抽樣后,它的頻譜是原連續(xù)信號的頻譜以抽樣角頻率為 間隔周期的延拓,即信號在時域抽樣或離散化,相當于頻域周期化。在頻譜的周 期重復過程中,其頻譜幅度受抽樣脈沖序列的傅里葉加權(quán),即被Pn加權(quán)。假設(shè)抽樣信號為周期沖激脈沖序列,即:P(t

56、)(t n Ts)s (ns)nn因此,沖激脈沖序列抽樣后信號的頻譜為:1Fs( ) - F( n JI s n可以看出,F(xiàn)s()是以s為周期等幅地重復。例1升余弦脈沖信號為f(t) -1 COS(,0 t ,E 1, ,參數(shù)2用MATLAB編程,實現(xiàn)該信號經(jīng)沖激脈沖抽樣后得到的抽樣信號fs(t)及其頻譜。解:升余弦脈沖信號的頻譜大局部集中在0,之間,當采用抽樣間隔Ts 1時,根據(jù)抽樣定理,可以從抽樣信號恢復出原信號。MATLAB源程序為:Ts = 1;dt = 0.1;t1 = -4:dt:4;ft =(1+cos(t1)/2).*(uCT(t1+pi)-uCT(t1-pi);subplot(221)plot(t1,ft), grid on axis(-4 4 -0.1 1.1) xlabel('Time(sec)' ),ylabel('f(t)') title('升余弦脈

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論