版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年商品房租賃合同(含社區(qū)花園使用權(quán))2篇
- 2024年度供應(yīng)鏈管理合同:汽車(chē)行業(yè)供應(yīng)鏈優(yōu)化協(xié)議3篇
- 學(xué)校食堂餐費(fèi)管理與財(cái)務(wù)監(jiān)督策略
- 2024年智慧城市項(xiàng)目軟件開(kāi)發(fā)與實(shí)施合同3篇
- 2024年度個(gè)人信用卡授信額度借款合同范本3篇
- 2024年新材料研發(fā)試劑采購(gòu)專(zhuān)項(xiàng)合同3篇
- 2024年實(shí)驗(yàn)室場(chǎng)地借用3篇
- 2024年服務(wù)采購(gòu)協(xié)議
- 2024年度企業(yè)網(wǎng)絡(luò)安全風(fēng)險(xiǎn)評(píng)估與防護(hù)合同6篇
- 2024年度伸縮門(mén)市場(chǎng)調(diào)研與采購(gòu)合作協(xié)議3篇
- 計(jì)量經(jīng)濟(jì)學(xué)論文-城鎮(zhèn)單位就業(yè)人員工資總額的影響因素
- 《農(nóng)業(yè)企業(yè)經(jīng)營(yíng)管理》試題及答案(U)
- 山東省聊城市2024-2025學(xué)年高一上學(xué)期11月期中物理試題
- 孫悟空課件教學(xué)課件
- 華南理工大學(xué)《自然語(yǔ)言處理》2023-2024學(xué)年期末試卷
- 新能源行業(yè)光伏發(fā)電與儲(chǔ)能技術(shù)方案
- 中國(guó)高血壓防治指南(2024年修訂版)要點(diǎn)解讀
- 24秋國(guó)開(kāi)《西方行政學(xué)說(shuō)》形考任務(wù)1答案(第2套)
- 2024巡察整改方案和整改措施
- 醫(yī)院冬季防雪防凍工作應(yīng)急預(yù)案
- 2024年公共管理學(xué)考試題庫(kù)及答案
評(píng)論
0/150
提交評(píng)論