《信號(hào)與系統(tǒng)實(shí)訓(xùn)指導(dǎo)》課件第1章_第1頁(yè)
《信號(hào)與系統(tǒng)實(shí)訓(xùn)指導(dǎo)》課件第1章_第2頁(yè)
《信號(hào)與系統(tǒng)實(shí)訓(xùn)指導(dǎo)》課件第1章_第3頁(yè)
《信號(hào)與系統(tǒng)實(shí)訓(xùn)指導(dǎo)》課件第1章_第4頁(yè)
《信號(hào)與系統(tǒng)實(shí)訓(xùn)指導(dǎo)》課件第1章_第5頁(yè)
已閱讀5頁(yè),還剩111頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第1章信號(hào)與系統(tǒng)的基本概念1.1MATLAB的基礎(chǔ)知識(shí)

1.2基本離散時(shí)間信號(hào)及其MATLAB表示

1.3基本連續(xù)時(shí)間信號(hào)及其MATLAB表示

1.4信號(hào)自變量的變換

1.5系統(tǒng)的性質(zhì)習(xí)題本章介紹信號(hào)與系統(tǒng)的基本概念以及用MATLAB分析和處理信號(hào)與系統(tǒng)基本問(wèn)題所需的準(zhǔn)備知識(shí)。1.1節(jié)介紹用MATLAB分析信號(hào)與系統(tǒng)時(shí)用到的一些主要的基礎(chǔ)知識(shí),1.2節(jié)介紹用MATLAB表示一些常見(jiàn)的離散信號(hào),1.3節(jié)介紹用MATLAB表示一些常見(jiàn)的連續(xù)信號(hào),1.4節(jié)介紹用MATLAB進(jìn)行信號(hào)自變量的變換,1.5節(jié)介紹用MATLAB分析系統(tǒng)性質(zhì)。

用MATLAB分析和處理信號(hào)與系統(tǒng)問(wèn)題時(shí),經(jīng)常會(huì)涉及到數(shù)據(jù)的表示和運(yùn)算、數(shù)據(jù)的輸入和輸出以及波形的繪制等問(wèn)題,下面就簡(jiǎn)要介紹一下處理這些問(wèn)題所需的MATLAB基礎(chǔ)知識(shí)。1.1MATLAB的基礎(chǔ)知識(shí)1.1.1數(shù)據(jù)的表示和運(yùn)算

MATLAB中,變量可以通過(guò)表達(dá)式直接賦值,例如直接輸入

>>a=2+2

得到的結(jié)果為

a=4

如果輸入的表達(dá)式后面加上分號(hào)“;”,那么結(jié)果就不會(huì)顯示出來(lái)。由于MATLAB的變量名對(duì)字母大小寫(xiě)敏感,因此“a”和“A”是兩個(gè)不同的變量名。

MATLAB主要用到以下數(shù)值運(yùn)算符:

+加

-減

*乘

/除

^乘方(冪)

′(矩陣)轉(zhuǎn)置

這些符號(hào)可以對(duì)數(shù)值或已經(jīng)定義過(guò)的變量進(jìn)行運(yùn)算,并給變量直接賦值。例如,假設(shè)變量“a”在上面已經(jīng)定義過(guò),則

b=2*a

得到的結(jié)果為

b=8

MATLAB中有一些預(yù)定義的變量可以直接使用。信號(hào)與系統(tǒng)中常用的變量有:

i或j

piπ(3.14159…)

在信號(hào)與系統(tǒng)中,常用以下函數(shù)進(jìn)行計(jì)算和對(duì)變量賦值:

abs數(shù)值的大小(實(shí)數(shù)的絕對(duì)值)

angle復(fù)數(shù)的角度,以弧度表示

real求復(fù)數(shù)的實(shí)部

imag求復(fù)數(shù)的虛部

cos余弦函數(shù),假設(shè)角度是弧度值

sin正弦函數(shù),假設(shè)角度是弧度值

exp指數(shù)函數(shù)

sqrt求平方根

例如:

>>y=2*(1+4*i)

y=2.0000+8.0000i

>>c=abs(y)

c=8.2462

>>d=angle(y)

d=1.32581.1.2矩陣的表示和運(yùn)算

MATLAB是基于矩陣和向量的代數(shù)運(yùn)算,甚至標(biāo)量也可以看做是1×1的矩陣,因此,MATLAB中對(duì)矩陣和向量的操作比較簡(jiǎn)單。

向量可以用兩種方法定義。第一種是指定元素建立向量:

v=[1357];

這個(gè)命令創(chuàng)建了一個(gè)1×4的行向量,元素為1,3,5和7。可以用逗號(hào)代替空格來(lái)分隔元素:

v=[1,3,5,7];

如果要增加向量的元素,可以表示為

v(5)=8;

得到的向量為v=[13578]。前面定義過(guò)的向量還可以用來(lái)定義新的向量,例如,前面已經(jīng)定義過(guò)向量v,再定義向量a和b:

a=[910];

b=[va];

得到向量b為

b=[13578910]第二種定義方法是用等間隔元素建立向量,例如:

t=0∶.1∶10;

這個(gè)命令創(chuàng)建了一個(gè)1×101的向量,元素為0,0.1,0.2,0.3,…,10。這個(gè)表達(dá)式中,前面的數(shù)字表示初值,后面的數(shù)字表示終值,中間的數(shù)字表示增量。如果只給出兩個(gè)數(shù)字,那么表示增量為1,例如:

t=0∶10;

這個(gè)命令創(chuàng)建了一個(gè)1×11的向量,元素為0,1,2,3,…,10。函數(shù)linspace和logspace也用于創(chuàng)建向量。函數(shù)linspace的格式為

x=linspace(a,b,n)

其中,a表示初值,b表示終值,n指定元素個(gè)數(shù),默認(rèn)n為100,x是1×n的線性等間隔分布的向量。例如:

x=linspace(0,10,101);

這個(gè)命令創(chuàng)建的向量x與命令t=0∶.1∶10的結(jié)果是相同的。函數(shù)logspace的格式為

x=logspace(a,b,n)其中,a表示向量初值為10a,b表示終值為10b,n指定元素個(gè)數(shù),默認(rèn)n為50,x是1×n的向量,這n個(gè)元素取以10為底的對(duì)數(shù)后在[a,b]間等間隔分布。這個(gè)函數(shù)常用于頻率響應(yīng)分析中產(chǎn)生頻率變量的采樣點(diǎn)。例如:

x=logspace(-2,1,10);

這個(gè)命令創(chuàng)建了一個(gè)1×10的向量,元素為0.0100,0.0215,0.0464,0.1000,0.2154,0.4642,1.0000,2.1544,4.6416,10.0000。這些元素的以10為底的對(duì)數(shù)在-2和1之間等間隔分布。矩陣可以通過(guò)輸入行列元素獲得:

M=[124;368];

得到的矩陣為

M=1.002.004.00

3.006.008.00

矩陣特定位置的元素可以通過(guò)下面的命令賦值:

M(1,2)=5;

這個(gè)命令給矩陣M的第1行、第2列元素賦值為5,結(jié)果為

M=1.005.004.00

3.006.008.00用下面的幾個(gè)命令可以定義一些特殊的矩陣:

M=[];空矩陣

M=zeros(n,m);n×m的0矩陣

M=ones(n,m);n×m的1矩陣

M=eye(n);n×n的單位陣

在1.1.1節(jié)給出的操作和函數(shù)也可以用于向量和矩陣。例如:

a=[123];

b=[456];

c=a+b得到的結(jié)果為

c=5.007.009.00

函數(shù)也可以用于向量元素。例如:

t=0∶10;

x=cos(2*t);

得到向量x的元素等于cos(2t)的值,其中t=0,1,2,3,…,10。

如果運(yùn)算是元素對(duì)元素逐項(xiàng)進(jìn)行的,需要在1.1.1節(jié)給出的一些運(yùn)算符前面加一個(gè)“.”。例如,要得到x(t)=tcos(t),即在指定的t向量下求對(duì)應(yīng)的向量x,不能直接把向量t和向量cos(t)相乘,而是要把它們對(duì)應(yīng)的元素逐個(gè)相乘:

t=0∶10;

x=t.*cos(t);

要得到向量或矩陣的規(guī)??梢杂孟旅孢@兩個(gè)函數(shù):

[r,c]=size(A)r、c分別為矩陣A的行數(shù)和列數(shù)

n=length(b)n為向量b的長(zhǎng)度

1.1.3數(shù)據(jù)的輸入和輸出

數(shù)據(jù)文件的讀取和存儲(chǔ)用load命令和save命令,常用的格式如下:

loadmy.mat可調(diào)用由MATLAB產(chǎn)生的文件名為my.mat的數(shù)據(jù)文件

loaddata.txt可調(diào)用.txt數(shù)據(jù)文件,并生成與文件名同名的變量

savemyty把變量t和y保存為名為my.mat的二進(jìn)制文件

savedata.txttyascii把變量t和y保存為名為data.txt的8位ASCII文件1.1.4波形的繪制

在信號(hào)與系統(tǒng)分析中,我們經(jīng)常需要繪制波形圖,這些圖一般是二維的。MATLAB具有強(qiáng)大的繪圖功能,為我們提供了豐富的繪圖函數(shù)。例如:

plot繪制曲線圖

stem繪制桿圖

holdon保留當(dāng)前圖形及坐標(biāo)的全部屬性

holdoff恢復(fù)圖形設(shè)置缺省值

gridon畫(huà)網(wǎng)格線

gridoff去掉網(wǎng)格線

subplot(m,n,p)將當(dāng)前窗口分成m×n個(gè)子圖,并選擇在其中第p個(gè)上繪圖

figure創(chuàng)建圖形窗口

合理的標(biāo)注可以使圖形更加有說(shuō)服力,MATLAB還提供了豐富的標(biāo)注用函數(shù)。例如:

title圖形頂部加標(biāo)題

xlabel橫軸標(biāo)注

ylabel縱軸標(biāo)注

legend在右上角建立一個(gè)圖例說(shuō)明盒

axis確定坐標(biāo)軸刻度范圍

text在圖中特定位置標(biāo)注

這些函數(shù)的具體使用方法可以參考MATLAB的書(shū)籍、手冊(cè)或幫助文件。1.1.5M文件

M文件是大量MATLAB命令的集合,它以文本文件的形式存儲(chǔ),文件名的后綴是“.m”。M文件可以是一個(gè)有輸入、輸出變量的函數(shù),也可以是一系列的命令腳本。利用M文件,可以把命令腳本保存下來(lái),在今后使用的時(shí)候修改或調(diào)用這些文件,不用再重新鍵入所有的命令,大大提高效率,而且使排除錯(cuò)誤更加容易。MATLAB要求M文件必須保存在工作目錄或指定的目錄下。

下面實(shí)現(xiàn)一個(gè)函數(shù)的M文件。在工作目錄下創(chuàng)建一個(gè)文件名為yplusx.m的M文件,它將包含以下命令:

functionz=y(tǒng)plusx(y,x)

z=y(tǒng)+x;

調(diào)用yplusx函數(shù)的命令如下:

z=y(tǒng)plusx(2,3)

結(jié)果為

z=5

利用矩陣和向量形式寫(xiě)的M文件效率比較高。循環(huán)和if語(yǔ)句也可以在M文件中使用,但是計(jì)算的效率較低,所以要慎重使用。下面列舉一個(gè)for循環(huán)的例子:

fork=1∶10,

x(k)=cos(k);

end

這個(gè)例子創(chuàng)建一個(gè)向量x,該向量包含k從1到10的余弦值。這個(gè)操作和下面命令的結(jié)果一樣:

k=1∶10;

x=cos(k);

但是這個(gè)命令用向量的函數(shù)代替循環(huán),效率更高。

if語(yǔ)句可以用來(lái)定義條件語(yǔ)句,例如:

if(a<=2),

b=1;

elseif(a>=4)

b=2;

else

b=3;

end

在if語(yǔ)句中可以使用的關(guān)系運(yùn)算符有:<,>,==,<=,>=和~=。一些M文件需要使用者給出變量值,這是使用帶有詢問(wèn)提示的輸入命令input實(shí)現(xiàn)的。例如:

T=input(′InputthevalueofT:′)

這個(gè)命令可以讓使用者輸入不同的T值。當(dāng)M文件運(yùn)行時(shí),引號(hào)內(nèi)的文字將顯示在命令窗口,用戶必須鍵入合適的值,然后回車(chē)運(yùn)行程序。

如果M文件運(yùn)行中間需要暫停,可以使用pause命令使程序暫停,然后敲任意鍵繼續(xù)執(zhí)行。1.1.6其他常用的MATLAB命令

在后面幾章中,還會(huì)用到下面幾個(gè)命令,在這里簡(jiǎn)單列舉一下:

who列出內(nèi)存中的變量名

whos列出內(nèi)存中變量的詳細(xì)信息

clc清除命令窗口

clear清除內(nèi)存變量和函數(shù)

clf清除圖形窗口

sound對(duì)聲音進(jìn)行回放

help在線幫助以上介紹的是信號(hào)和系統(tǒng)分析中所需的MATLAB基礎(chǔ)知識(shí),對(duì)于信號(hào)和系統(tǒng)分析中用到的專(zhuān)門(mén)函數(shù),我們會(huì)在后續(xù)各章節(jié)做相應(yīng)的介紹。如果對(duì)MATLAB的相關(guān)內(nèi)容不熟悉,可以通過(guò)MATLAB的相關(guān)書(shū)籍、手冊(cè)或幫助文件學(xué)習(xí)并掌握這些函數(shù)的使用。

離散時(shí)間信號(hào)在時(shí)間上是離散的,只在某些不連續(xù)的規(guī)定瞬時(shí)給出函數(shù)值,在其他時(shí)間沒(méi)有定義,簡(jiǎn)稱(chēng)為離散信號(hào)或序列。一般情況下,給出函數(shù)值的離散時(shí)刻的間隔是均勻的。用數(shù)學(xué)表達(dá)式描述離散信號(hào)時(shí),以整數(shù)序號(hào)n為自變量,函數(shù)符號(hào)寫(xiě)做x(n)。1.2基本離散時(shí)間信號(hào)及其MATLAB表示在MATLAB中,離散信號(hào)用一個(gè)行向量或一個(gè)列向量表示。在MATLAB中向量是從1開(kāi)始編號(hào)的,即x(1)是x向量的第1個(gè)元素。在表示信號(hào)或信號(hào)運(yùn)算時(shí),如果這些編號(hào)與所需要的信號(hào)標(biāo)號(hào)不能對(duì)應(yīng),可以創(chuàng)建另外一個(gè)標(biāo)號(hào)向量,使信號(hào)的標(biāo)號(hào)與實(shí)際情況一致。MATLAB軟件具有強(qiáng)大的繪圖功能,可以用MATLAB中的函數(shù)表示離散信號(hào)并繪制出離散信號(hào)的波形。下面介紹基本的離散信號(hào)和它們的MATLAB表示。

1.單位階躍序列

單位階躍序列的函數(shù)表達(dá)式為

u(n)= 1(n≥0)

0(n<0)

(1.1)

用MATLAB中的全0矩陣函數(shù)zeros(1,N)和全1矩陣函數(shù)ones(1,N)可以表示出單位階躍序列。MATLAB只能表示有限長(zhǎng)的序列,對(duì)于單位階躍序列這樣的無(wú)限長(zhǎng)序列可以取一個(gè)有限長(zhǎng)的范圍,把這個(gè)范圍內(nèi)的信號(hào)表示出來(lái)。例1-1繪制單位階躍序列u(n)的波形。

解:MATLAB程序如下:

n=[-2∶10];

un=[zeros(1,2)ones(1,11)];

stem(n,un);

xlabel(′n′);ylabel(′u(n)′);

gridon;

axis([-210-0.21.2])

運(yùn)行結(jié)果如圖1-1所示。

圖1-1單位階躍序列根據(jù)單位階躍序列的特點(diǎn),還可以用MATLAB中的關(guān)系運(yùn)算符“>=”來(lái)實(shí)現(xiàn)這個(gè)序列,將例1-1程序中的第2行語(yǔ)句換成關(guān)系運(yùn)算語(yǔ)句“un=(n>=0)”即可。語(yǔ)句“un=(n>=0)”的返回值是由“0”和“1”組成的向量,當(dāng)n≥0時(shí),返回值為“1”;當(dāng)n<0時(shí),返回值為“0”。程序運(yùn)行結(jié)果與例1-1相同。需要注意的是,這種方法得到的“un”是一個(gè)由邏輯量組成的向量,在數(shù)值計(jì)算時(shí)需要變換成數(shù)值型的向量。

2.單位樣值信號(hào)

單位樣值信號(hào)的函數(shù)表達(dá)式為

δ(n)=1 (n=0)

0 (n≠0)

(1.2)MATLAB中的全0矩陣函數(shù)zeros(1,N)可以用來(lái)實(shí)現(xiàn)單位樣值信號(hào)。MATLAB中的關(guān)系運(yùn)算符“==”也可以實(shí)現(xiàn)這個(gè)序列。

例1-2繪制單位樣值信號(hào)δ(n)的波形。

解:MATLAB程序如下:

n=[-5∶5];

xn=[zeros(1,5)1zeros(1,5)];

stem(n,xn);

xlabel(′n′);ylabel(′\delta(n)′);

gridon;

axis([-55-0.21.2])

運(yùn)行結(jié)果如圖1-2所示。

圖1-2單位樣值信號(hào)

3.矩形序列

矩形序列的函數(shù)表達(dá)式為

RN(n)= 1(0≤n≤N-1)

0(n<0,n≥N)

(1.3)

矩形序列從n=0開(kāi)始,到n=N-1為止,共有N個(gè)幅度為1的函數(shù)值,其余各點(diǎn)數(shù)值為0。矩形序列可以用階躍序列表示為

RN(n)=u(n)-u(n-N)

(1.4)

所以,用MATLAB表示矩形序列的方法可以參考階躍序列的表示方法。例1-3繪制矩形序列R6(n)的波形。

解:MATLAB程序如下:

n=[-2∶10];

rn=[zeros(1,2)ones(1,6)zeros(1,5)];

stem(n,rn);

xlabel(′n′);ylabel(′R_6(n)′);

gridon;

axis([-210-0.21.2])

運(yùn)行結(jié)果如圖1-3所示。

圖1-3矩形序列為了使用方便,可以把單位階躍序列做成一個(gè)函數(shù),存在名為un.m的M文件中,在其他程序中可以調(diào)用該函數(shù)。函數(shù)為

functiony=un(n)

y=(n>=0);

要用上述函數(shù)表示矩形序列R6(n),可以把例1-3程序中的第2行語(yǔ)句寫(xiě)成

rn=un(n)-un(n-6);

程序運(yùn)行結(jié)果與例1-3相同。

4.斜變序列

斜變序列的函數(shù)表達(dá)式為

x(n)=nu(n) (1.5)

例1-4繪制0≤n≤5范圍內(nèi)的斜變序列的波形。

解:設(shè)已經(jīng)創(chuàng)建了M文件un.m,MATLAB程序如下:

n=[-2∶5];

xn=n.*un(n);

stem(n,xn);

xlabel(′n′);ylabel(′x(n)′);

title(′x(n)=nu(n)′);

gridon;

運(yùn)行結(jié)果如圖1-4所示。

圖1-4斜變序列

5.單邊指數(shù)序列

單邊指數(shù)序列的函數(shù)表達(dá)式為

x(n)=anu(n) (1.6)

例1-5繪制0≤n≤10范圍內(nèi)的單邊指數(shù)序列x(n)=0.5nu(n)的波形。

解:設(shè)已經(jīng)創(chuàng)建了M文件un.m,MATLAB程序如下:

n=[-2∶10];

xn=(0.5).^n.*un(n);

stem(n,xn);

xlabel(′n′);ylabel(′x(n)′);

title(′x(n)=0.5^nu(n)′);

gridon;

運(yùn)行結(jié)果如圖1-5所示。圖1-5指數(shù)序列

6.正弦序列

正弦序列的函數(shù)表達(dá)式為

x(n)=sin(nω0) (1.7)

式中ω0是正弦序列的頻率,它反映了序列值依次周期重復(fù)的速率。正弦序列不一定是周期函數(shù)。只有 為整數(shù)N時(shí),正弦序列才具有N=2π/ω0的周期;

若 不是整數(shù),而是有理數(shù) ,則正弦序列還是周期性的,但其周期等于 ;若 不是有理數(shù),則正弦序列就是非周期性的。例1-6繪制正弦序列x(n)=sin(0.1πn)的波形。

解:MATLAB程序如下:

N=10;

n=[0∶4*N-2];

x=sin(0.1*pi*n);

stem(n,x);

title(′x(n)=sin(0.1\pin)′);

xlabel(′n′);

ylabel(′x(n)′);

運(yùn)行結(jié)果如圖1-6所示。

圖1-6正弦序列從圖1-6可以看出,該信號(hào)是一個(gè)周期信號(hào),周期等于

。

7.復(fù)指數(shù)序列

復(fù)指數(shù)序列的一般函數(shù)表達(dá)式為

(1.8)

如果|x(n)|=1,arg[x(n)]=ω0n,則序列的表達(dá)式為

(1.9)

在畫(huà)序列波形時(shí),可以按直角坐標(biāo)分別畫(huà)出復(fù)指數(shù)序列的實(shí)部和虛部的波形,也可以按極坐標(biāo)分別畫(huà)出復(fù)指數(shù)序列的模和相角的波形。例1-7繪制復(fù)指數(shù)序列

的實(shí)部、虛部、模和相角波形。

解:MATLAB程序如下:

n=[0∶32];

x=exp(i*(pi/8)*n);

subplot(2,2,1);

stem(n,real(x;

xlabel(′n′);

ylabel(′Real(x[n])′);

subplot(2,2,2);

stem(n,imag(x;

xlabel(′n′);

ylabel(′Imag(x[n])′);

subplot(2,2,3);

stem(n,abs(x;

xlabel(′n′);

ylabel(′|x[n]|′);

subplot(2,2,4);

stem(n,angle(x;

xlabel(′n′);

ylabel(′Arg(x[n])′);

運(yùn)行結(jié)果如圖1-7所示。

圖1-7復(fù)指數(shù)序列

(a)實(shí)部;(b)虛部;(c)模;(d)相角圖1-7中分別畫(huà)出了復(fù)指數(shù)序列的實(shí)部和虛部,以及模和相角。由angle產(chǎn)生的值是以弧度計(jì)的復(fù)數(shù)相位,如果想轉(zhuǎn)換成度數(shù),可以用命令stem(n,angle(x)*(180/pi。

在所討論的時(shí)間間隔內(nèi),除若干不連續(xù)點(diǎn)之外,對(duì)于任意時(shí)間值都可給出確定的函數(shù)值,這種信號(hào)稱(chēng)為連續(xù)時(shí)間信號(hào),簡(jiǎn)稱(chēng)連續(xù)信號(hào)。我們用t表示連續(xù)時(shí)間自變量,數(shù)學(xué)表達(dá)式寫(xiě)做x(t)。1.3基本連續(xù)時(shí)間信號(hào)及其MATLAB表示利用MATLAB軟件,可以給出連續(xù)時(shí)間信號(hào)x(t)的解析式,并畫(huà)出信號(hào)波形。在MATLAB中表示連續(xù)時(shí)間信號(hào)有兩種方法:一種方法是用SymbolicMathToolbox(符號(hào)數(shù)學(xué)工具箱)中的函數(shù)進(jìn)行符號(hào)運(yùn)算;另一種方法是用向量來(lái)表示連續(xù)信號(hào),這些向量包含了連續(xù)信號(hào)在時(shí)間上依次間隔的樣本。值得注意的是,在用向量進(jìn)行連續(xù)信號(hào)處理和繪制連續(xù)信號(hào)波形時(shí),時(shí)間增量Δt必須取得足夠小,以生成平滑的曲線。如果增量選擇得太大,則信號(hào)值都是以直線連接的,曲線是鋸齒狀的。下面介紹基本的連續(xù)信號(hào)和它們的MATLAB表示。

1.指數(shù)信號(hào)

指數(shù)信號(hào)的表達(dá)式為

x(t)=Keαt

(1.10)

式中α是實(shí)數(shù)。若α>0,則信號(hào)隨時(shí)間增長(zhǎng);若α<0,則信號(hào)隨時(shí)間衰減;若α=0,則信號(hào)成為直流信號(hào)。實(shí)際上,遇到較多的是衰減的指數(shù)信號(hào)。例1-8繪制信號(hào)x(t)=e-0.5tu(t)的波形。

解:MATLAB程序如下:

t=[0∶0.01∶10];

x=exp(-0.5*t);

plot(t,x);

xlabel(′t′);

ylabel(′x(t)′);

title(′x(t)=exp(-0.5t)′);

gridon

運(yùn)行結(jié)果如圖1-8所示。

圖1-8指數(shù)信號(hào)

2.正弦信號(hào)

正弦信號(hào)的表達(dá)式為

x(t)=Ksin(ωt+θ) (1.11)

式中:K為振幅,ω是角頻率,θ為初相位。

例1-9繪制信號(hào)x(t)=sin(πt)的波形。

解:用向量表示信號(hào)時(shí),MATLAB程序如下:

t=[0∶0.1∶10];

x=sin(pi*t);

plot(t,x);

xlabel(′t′);

ylabel(′x(t)′);

title(′x(t)=sin(\pit)′)

gridon

運(yùn)行結(jié)果如圖1-9所示。圖1-9正弦信號(hào)

SymbolicMathToolbox中的函數(shù)可以用符號(hào)而不是數(shù)值來(lái)表示連續(xù)信號(hào)。這種方法用sym函數(shù)創(chuàng)建信號(hào)的符號(hào)表達(dá)式,然后用ezplot函數(shù)繪圖,MATLAB程序如下:

x=sym(′sin(pi*t)′);

ezplot(x,[0,10]);

ylabel(′x(t)′);

title(′x(t)=sin(\pit)′)

gridon

運(yùn)行結(jié)果如圖1-10所示。

圖1-10正弦信號(hào)

ezplot繪制x=x(t)(圖形的默認(rèn)范圍是-2π<t<2π,如果需要改變繪圖范圍,可以用命令ezplot(x,[a,b]),這樣將會(huì)得到a<t<b范圍內(nèi)的信號(hào)波形。

例1-10繪制信號(hào)x(t)=e-0.5tsin(πt)的波形。

解:用向量表示信號(hào)時(shí),MATLAB程序如下:

t=[0∶0.01∶10];

x=exp(-0.5*t).*sin(pi*t);

plot(t,x);

axis([010-11]);

xlabel(′t′);

ylabel(′x(t)′);

title(′x(t)=exp(-0.5t)sin(\pit)′)

gridon

運(yùn)行結(jié)果如圖1-11所示。

圖1-11按指數(shù)衰減的正弦信號(hào)用符號(hào)運(yùn)算時(shí),MATLAB程序如下:

x=sym(′exp(-0.5*t)*sin(pi*t)′);

ezplot(x,[0,10,-1,1],1);

gridon

如果波形圖的橫軸和縱軸都需要設(shè)定范圍,可以用命令ezplot(x,[xmin,xmax,ymin,ymax],1),這樣將會(huì)得到xmin<t<xmax,ymin<x<ymax范圍內(nèi)的信號(hào)波形。運(yùn)行結(jié)果與圖1-11所示的波形相同。

3.復(fù)指數(shù)信號(hào)

復(fù)指數(shù)信號(hào)的表達(dá)式為

x(t)=Kest (1.12)

式中,s=σ+jω。用歐拉公式將式(1.12)展開(kāi)得

(1.13)

與復(fù)指數(shù)序列一樣,復(fù)指數(shù)信號(hào)也需要分別畫(huà)出實(shí)部信號(hào)和虛部信號(hào)的波形,或者分別畫(huà)出模和相角的波形。

例1-11繪制信號(hào) 的實(shí)部和虛部波形。

解:用向量表示信號(hào)時(shí),MATLAB程序與離散復(fù)指數(shù)序列的類(lèi)似,這里我們也可以用符號(hào)運(yùn)算,MATLAB程序如下:

x=sym(′exp(i*2*pi*t/16)+exp(i*2*pi*t/8)′);

xr=compose(′real(x)′,x);

xi=compose(′imag(x)′,x);

figure(1)

ezplot(xr,[0,32]);

figure(2)

ezplot(xi,[0,32]);

運(yùn)行結(jié)果如圖1-12和圖1-13所示。

圖1-12復(fù)指數(shù)信號(hào)的實(shí)部

圖1-13復(fù)指數(shù)信號(hào)的虛部程序中,compose函數(shù)用來(lái)創(chuàng)建信號(hào)x(t)的實(shí)部分量和虛部分量的符號(hào)表達(dá)式。

4.抽樣信號(hào)Sa(t)

抽樣信號(hào)的表達(dá)式為

(1.14)

在MATLAB中,SignalProcessingToolbox提供的sinc函數(shù)定義為

(1.15)

在使用這個(gè)函數(shù)時(shí)要注意系數(shù)的處理。例1-12繪制信號(hào)Sa(t)=sin(t)t的波形。

解:MATLAB程序如下:

t=[-5*pi∶pi/100∶5*pi];

x=sinc(t/pi);

plot(t,x);

xlabel(′t′);

ylabel(′x(t)′);

title(′Sa(t)′)

gridon

運(yùn)行結(jié)果如圖1-14所示。

圖1-14抽樣信號(hào)Sa(t)

5.階躍信號(hào)

階躍信號(hào)的表達(dá)式為u(t)=0(t<0)

(1.16)

在數(shù)值計(jì)算中可以根據(jù)階躍信號(hào)的定義來(lái)描述信號(hào),在符號(hào)運(yùn)算中則使用Heaviside函數(shù)定義階躍信號(hào)的符號(hào)表達(dá)式。例1-13繪制階躍信號(hào)u(t)的波形。

解:如果只需要繪制階躍信號(hào)的波形,可以用行向量寫(xiě)出信號(hào)對(duì)應(yīng)點(diǎn)的數(shù)值,MATLAB程序如下:

t1=-1∶0.1∶0;

x1=zeros(1,length(t1;

t2=0∶0.1∶3;

x2=ones(1,length(t2;

t=[t1,t2];

ut=[x1,x2];

plot(t,ut)

xlabel(′t′);

ylabel(′u(t)′);

axis([-13-0.21.2]);

畫(huà)出的波形如圖1-15所示。

圖1-15階躍信號(hào)(1)根據(jù)階躍信號(hào)的定義,用關(guān)系運(yùn)算符“>=”描述信號(hào)的MATLAB程序如下:

t=-1∶0.01∶3;

y=(t>=0);

plot(t,y)

xlabel(′t′);

ylabel(′u(t)′);

axis([-13-0.21.2]);

運(yùn)行結(jié)果如圖1-16所示。

圖1-16階躍信號(hào)(2)在這個(gè)程序中,語(yǔ)句“y=(t>=0)”的返回值是由“0”和“1”組成的向量。當(dāng)t≥0時(shí),返回值為“1”;當(dāng)t<0時(shí),返回值為“0”。需要注意的是,這種方法得到的“y”是一個(gè)由邏輯量組成的向量,在數(shù)值計(jì)算時(shí)需要變換成數(shù)值型的向量。

我們可以把寫(xiě)出階躍信號(hào)的過(guò)程做成一個(gè)函數(shù),存在名為ut.m的M文件中,這樣在以后使用時(shí)就可以直接調(diào)用了。函數(shù)為

functiony=ut(t)

y=(t>=0);如果用符號(hào)運(yùn)算的方法,MATLAB程序如下:

ut=sym(′Heaviside(t)′);

ezplot(ut,[-1,3])

這個(gè)程序畫(huà)出的波形與圖1-16相同。

6.沖激信號(hào)

單位沖激信號(hào)的定義式為

(1.17)

在MATLAB中無(wú)法畫(huà)出沖激信號(hào)的圖形。在符號(hào)運(yùn)算中用Dirac函數(shù)定義沖激信號(hào)。

信號(hào)自變量的變換主要有時(shí)移、反折和尺度。下面就分析兩個(gè)信號(hào)自變量變換的實(shí)例。

例1-14離散信號(hào)的定義如下:1.4信號(hào)自變量的變換定義信號(hào)時(shí)間變量范圍是-3≤n≤7,用MATLAB表示y1(n)=x(n-2)、y2(n)=x(-n)和y3(n)=x(-n+1),并畫(huà)出各信號(hào)的波形。

解:y1(n)=x(n-2)相當(dāng)于把信號(hào)x(n)右移2個(gè)單位,y2(n)=x(-n)相當(dāng)于把信號(hào)x(n)反折,y3(n)=x(-n+1)相當(dāng)于把信號(hào)x(n)左移1個(gè)單位再反折,MATLAB程序如下:

nx=[-3∶7];

x=[zeros(1,3)201-13zeros(1,3)];

subplot(2,2,1);

stem(nx,x);

title(′x(n)′);

xlabel(′n′);

ny1=nx+2;%時(shí)移[-1∶9]

ny2=-nx;%反折

ny3=-(nx-1);

y1=x;

y2=x;

y3=x;

subplot(2,2,3);

stem(ny1,y1);

title(′y_1(n)=x(n-2)′);

xlabel(′n′);

subplot(2,2,2);

stem(ny2,y2);

title(′y_2(n)=x(-n)′);

xlabel(′n′);

subplot(2,2,4);

stem(ny3,y3);

title(′y_3(n)=x(-n+1)′);

xlabel(′n′);該程序是通過(guò)改變信號(hào)向量和時(shí)間向量的對(duì)應(yīng)關(guān)系來(lái)進(jìn)行自變量的變換的,以y1(n)=x(n-2)為例,將信號(hào)x(n)向右移動(dòng)2個(gè)單位就相當(dāng)于把時(shí)間樣本與信號(hào)樣本的對(duì)應(yīng)位置向右移動(dòng)2個(gè)單位,另外兩個(gè)變換可以進(jìn)行類(lèi)似的處理。

各信號(hào)的波形如圖1-17所示。

圖1-17信號(hào)x(n)的波形例1-15連續(xù)信號(hào)x(t)的波形如圖1-18所示。

用MATLAB表示y(t)=x(-2t+3),并畫(huà)出各信號(hào)的波形。

解:y(t)=x(-2t+3)相當(dāng)于把信號(hào)x(t)左移3個(gè)單位,然后尺度倍乘2,最后反折,設(shè)已經(jīng)創(chuàng)建了M文件ut.m,MATLAB程序如下:

t=[-3∶0.01∶3];

x=ut(t+2)-ut(t)+(-t+1).*(ut(t)-ut(t-1;

subplot(2,1,1);

圖1-18連續(xù)信號(hào)x(t)的波形

plot(t,x);

title(′x(t)′);

xlabel(′t′);

axis([-33-0.21.2]);

ny1=(-1/2)*(t-3);

y1=x;

subplot(2,1,2);

plot(ny1,y1);

title(′y(t)=x(-2*t+3)′);

xlabel(′t′);

axis([-33-0.21.2]);

這個(gè)程序通過(guò)處理時(shí)間向量得到對(duì)自變量變換的結(jié)果,即先把時(shí)間向量向左移動(dòng)3個(gè)單位,然后把時(shí)間向量的范圍壓縮為原來(lái)的1/2,最后把時(shí)間向量反折。結(jié)果如圖1-19所示。圖1-19信號(hào)x(t)和y(t)=x(-2t+3)的波形(1)如果把信號(hào)x(t)寫(xiě)成一個(gè)函數(shù),那么可以通過(guò)函數(shù)的變量替換實(shí)現(xiàn)自變量的變換,MATLAB程序如下:

t=[-3∶0.01∶3];

x=func(t);

y=func(-2*t+3);

subplot(2,1,1);

plot(t,x);

title(′x(t)′);

xlabel(′t′);

axis([-33-0.21.2]);

subplot(2,1,2);

plot(t,y);

title(′y(t)=x(-2*t+3)′);

xlabel(′t′);

axis([-33-0.21.2]);

程序中的函數(shù)func(t)保存在M文件func.m中,內(nèi)容如下:

functionf=func(t)

f=ut(t+2)-ut(t)+(-t+1).*(ut(t)-ut(t-1;

結(jié)果如圖1-20所示。

由于第一種方法時(shí)間向量的范圍壓縮為原來(lái)的1/2,因此只畫(huà)出原來(lái)給出時(shí)間范圍一半的圖形。

圖1-20信號(hào)x(

溫馨提示

  • 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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論