基于MATLAB的信号采样与离散系统的时域分析报告Word文件下载.docx
《基于MATLAB的信号采样与离散系统的时域分析报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于MATLAB的信号采样与离散系统的时域分析报告Word文件下载.docx(13页珍藏版)》请在冰豆网上搜索。
);
Pleaseinputthevalueofsampleperiod'
Ts=input('
Ts='
%绘制有限长余弦信号y=cos(2/3*pi*t)
t=0:
0.01:
40;
y=cos(2/3*pi*t);
subplot(221);
plot(t,y);
axis([06-1.11.1]);
xlabel('
t单位:
s'
'
Fontsize'
8);
title('
f(t)'
line([06],[00],'
color'
[000]);
%数值求解余弦信号的频谱
N=300;
W=2*pi*5;
k=-N:
N;
w=k*W/N;
Y=0.01*y*exp(-j*t'
*w);
%求f(t)的傅里叶变换F1(ω)
Y=abs(Y);
subplot(222);
plot(w/pi,Y)
axis([-2,2,0,pi*7+0.2]);
F(j\omega)'
\omega单位:
pi'
%采样后的余弦信号
subplot(223);
plot(t,y,'
b:
'
%绘制包络
holdon
t2=0:
Ts:
y2=cos(2/3*pi*t2);
stem(t2,y2);
fs(t)'
holdoff
%采样后余弦信号的频谱
Y2=Ts*y2*exp(-j*t2'
Y2=abs(Y2);
subplot(224);
plot(w/pi,Y,'
b'
)%蓝色绘制原信号频谱
Fs(j\omega)'
plot(w/pi,Y2,'
r'
%红色绘制采样信号频谱
axis([-2,2,0,pi*10]);
%end
2.离散时间系统
(1)线性时不变(LTI)离散时间系统用常系数线性差分方程进行描述:
其中,f[k]和y[k]分别表示系统的输入和输出,N=max(n,m)是差分方程的阶数。
系统的零状态响应就是在系统初始状态为零条件下微分方程的解。
在零初始状态下,MATLAB控制系统工具箱提供了一个filter函数,可以计算差分方程描述的系统的响应,其调用形式为:
y=filter(b,a,f)
其中,
、
分别是系统差分方程左、右端的系数向量,f表示输入向量,y表示输出向量。
注意,输出序列的长度与输入序列的长度相同。
(2)离散系统的冲激响应、阶跃响应分别是输入信号为
和
所对应的零状态响应。
MATLAB控制系统工具箱专门提供了两个函数求解离散系统的冲激响应和阶跃响应。
冲激响应:
h=impz(b,a,K),其中的h表示系统的单位序列响应,
分别是系统差分方程左、右端的系数向量,K表示输出序列的时间范围。
阶跃响应:
g=stepz(b,a,N),其中的g表示系统的单位阶跃序列响应,b和a的含义与上相同,N表示输出序列的长度。
(3)卷积是信号与系统中一个最基本、也是最重要的概念之一。
在时域中,对于LTI离散时间系统,其零状态响应等于输入信号与系统冲激响应的卷积;
而利用卷积定理,这种关系又对应频域中的乘积。
MATLAB信号处理工具箱提供了一个计算两个离散序列卷积和的函数conv。
设向量a、b代表待卷积的两个序列,则c=conv(a,b)就是a与b卷积后得到的新序列。
我们知道两个序列卷积以后,一般而言所得新序列的时间范围、序列长度都会发生变化。
例如设f1(n)长度为5,-3≤n≤1;
f2(n)长度为7,2≤n≤8;
则卷积后得到的新序列长度为5+7-1=11,且有在-1≤n≤9时,新序列的值不为零。
三
1.运行例题参考程序,对比观察过采样(Ts=0.05s)和欠采样状态(Ts=3.0s)。
周期1.5秒,Ts<
1.5,过采样,Ts>
1.5,欠采样'
扩展:
wm=2/3*pi
wc=wm
ws=60*wm
ws2=1*wm
ts=2*pi/ws
ts2=2*pi/ws2
n=-300:
300
nts=n*ts
nts2=n*ts2
f=cos(2/3*pi*nts)
f2=cos(2/3*pi*nts2)
dt=0.005
t=0:
dt:
6
y=cos(2/3*pi*t)
fa=f*ts*wc/pi*sinc((wc/pi)*(ones(length(nts),1)*t-nts'
*ones(1,length(t))));
error=abs(fa-cos(2/3*pi*t))
fa2=f2*ts*wc/pi*sinc((wc/pi)*(ones(length(nts),1)*t-nts'
error2=abs(fa2-cos(2/3*pi*t))
t1=0:
0.05:
f1=cos(2/3*pi*t1)
subplot(221)
stem(t1,f1)
kts'
)
ylabel('
f(kts)'
cos(2/3*pi*t)的过采样信号'
grid
subplot(222)
plot(t,error)
t'
error(t)'
过采样信号重建与源信号的误差error(t)'
subplot(223)
t3=0:
3:
f3=cos(2/3*pi*t3)
stem(t3,f3)
cos(2/3*pi*t)的欠采样信号'
subplot(224)
plot(t,error2)
error2(t)'
欠采样信号重建与源信号的误差error(t)'
2.设有限时宽周期信号f(t)=5+cos(2Πt)+cos(4Πt)(0≤t≤40),用MATLAB编程求该信号和其采样信号的频谱,对比观察过采样和欠采样状态。
y=5+cos(2*pi*t)+cos(4*pi*t);
axis([063.17.1]);
%求f(t)的傅里叶变F1(ω)
axis([-2,2,0,pi*10+0.2]);
y2=5+cos(2*pi*t2)+cos(4*pi*t2);
TS=0.05
TS=1
已知系统的差分方程为
,输入为
。
计算系统的零状态响应
、单位序列响应
和阶跃响应
,
10
a=[1-0.70.1]
b=[7-20]
f=0.4.^t
subplot(131)
stem(t,y)
零状态响应y[k]'
k'
y[k]'
gridon
subplot(132)
h=impz(b,a,t)
stem(t,h)
单位序列响应h[k]'
h[k]'
subplot(133)
g=stepz(b,a,11)
stem(t,g)
g(k)'
阶跃响应g[k]'
3.已知系统的单位序列响应为
=
,输入信号为
利用MATLAB计算:
a.
b.
h=u(t)-u(t-5)
f=(0.5.^t).*(u(t)-u(t-5))
f2=(0.5.^(t-2)).*(u(t-2)-u(t-7))
c=conv(h,f)
c2=conv(h,f2)
)
stem(t,f)
f[k]'
stem(c)
y1[k]'
y1[k]=h[k]*f[k]'
stem(c2)
y2[k]'
y2[k]=h[k]*f[k-2]'