信号与系统之 基础演练.docx
《信号与系统之 基础演练.docx》由会员分享,可在线阅读,更多相关《信号与系统之 基础演练.docx(14页珍藏版)》请在冰豆网上搜索。
信号与系统之基础演练
实验一连续系统的时域分析
一、实验目的
(1)掌握零状态响应和冲激响应的计算。
(2)了解卷积的计算。
二、实验原理
连续时间线性时不变系统(LTI),可以用线性常系数微分方程描述。
系统分析即求解一定输入信号所产生的输出响应,并根据响应判断系统特性。
系统响应可分为由初始状态产生的零输入响应和由输入信号产生的零状态响应。
当输入信号为冲激信号、阶跃信号时,产生的零状态响应分别为冲激响应和阶跃响应。
(1)直接求解
建立系统函数模型tf、零状态响应lsim、冲激响应impulse、阶跃响应step。
这些函数属于ControlSystemToolbox。
系统方程的系数将作为建立系统函数的参数。
零输入响应较少用到,可利用roots来求。
(2)卷积求解
系统的零状态响应,等于其冲激响应与输入激励信号的卷积。
采用数值计算,用离散序列的卷积和conv近似
这实际是用宽度为1的矩形脉冲之和代替积分,因此最后的结果需要乘上实际的数据间隔时间。
这是一个近似结果,间隔时间越窄,结果越接近积分值。
利用卷积求响应主要意义体现在理论上,实际做数值计算时使用现成函数更简便,也更准确。
此外,利用符号计算可以求得响应的表达式。
三、验证性实验
已知系统
。
(1)e(t)=u(t)时,求零状态响应
程序:
b=[39];a=[168];
sys=tf(b,a);%Createtransferfunctionmodel
t=0:
0.1:
10;
e=ones(1,length(t));
r=lsim(sys,e,t);%SimulateLTImodelresponse
%figure('Position',[100,100,400,200]);
plot(t,r);
问题:
本例所求响应是原方程的特解还是齐次解?
方程的特征根有哪些?
为什么响应最终趋于常数?
总响应中有没有暂态分量?
(2)求冲激响应h(t)
程序:
b=[39];a=[168];
sys=tf(b,a);%Specifytransferfunctions
t=0:
0.1:
10;
h=impulse(sys,t);%ComputetheimpulseresponseofLTImodels
plot(t,h);
问题:
本例所求响应是原方程的什么解?
为什么响应最终趋于0?
系统的因果性、稳定性如何?
(3)e(t)=u(t)时,用卷积法求零状态响应
程序:
clearall;
b=[39];a=[168];
sys=tf(b,a);%Specifytransferfunctions
dt=0.1;tf=10;
t=0:
dt:
tf;
h=impulse(sys,t);%ComputetheimpulseresponseofLTImodels
e=ones(1,length(t));
r=conv(h,e);%Convolutionmultiplication
r=r*dt;
tr=0:
dt:
2*tf;
plot(tr,r);
axis([0,tf,0,1.5]);
问题:
该例结果与例
(1)是否一致?
原因何在?
四、设计性实验
已知系统
,当e(t)=cos(t)u(t)时,求系统的零状态响应。
将得到的响应与激励作对比分析。
(直流分量,幅度、相位、频率等)
还可以尝试改变激励信号的幅度、频率,看响应有何变化。
五、实验要求
1.运行验证性实验,观察记录结果,回答问题。
2.完成设计性实验,记录程序和结果,并分析。
六、补充:
符号计算
(1)已知系统
,求零输入响应。
r=dsolve('D2r+6*Dr+8*r=0','r(0)=1,Dr(0)=0','t')
r=2/exp(2*t)-1/exp(4*t)
(2)冲激信号dirac(x)抽样
symsx
int(dirac(x-5)*sin(x),-inf,inf)
ans=sin(5)
(3)阶跃信号heaviside(t)求导
symsx;
diff(heaviside(x),x)
ans=dirac(x)
实验二离散系统的分析
一、实验目的
(1)熟悉零状态响应和冲激响应的计算。
(2)熟悉z变换。
(3)熟悉系统的频率响应。
二、实验原理
(1)离散线性时不变系统(LTI),可以用线性常系数差分方程描述。
当输入信号为冲激信号时,产生的零状态响应为冲激响应。
(2)离散LTI系统,在z域可以用系统函数H(z)描述,其实质是冲激响应h(n)的z变换。
(3)如果系统函数H(z)的收敛域包含单位圆,则令
,得到系统的频率响应
。
三、验证性实验
(1)已知系统y(n)-y(n-1)+0.8y(n-2)=x(n),当
时,求零状态响应。
程序:
b=[1];a=[1,-1,0.8];%差分方程系数
n=0:
15;%输入序列长度
xn=0.5.^n;%输入序列
yn=filter(b,a,xn);%零状态响应
figure('Position',[100,100,400,200]);
stem(n,yn,'filled');
gridon
问题:
求方程的特征根,分析其零状态响应(齐次解+特解)的特征。
(2)已知下式,求其部分分式展开
程序:
clear;
p=[0.6,0.3];
a=poly(p);%分母多项式系数
b=[2.5,-0.9];%分子多项式系数
[r,p,k]=residue(b,a)
运行结果:
r=
2.0000
0.5000
p=
0.6000
0.3000
k=
[]
则
问题:
根据极点分布判断该系统的稳定性。
(3)已知系统函数
画出零、极点图;
求冲激响应;
求幅频响应和相频响应。
b=[0,1,2,1];
a=[1,0.5,-0.005,0.3];
figure('Position',[100,100,400,300]);
subplot(2,2,1),zplane(b,a);%画零极点
title('Zero-Pole');
[hnn]=impz(b,a,16);%求冲激响应
subplot(2,2,2),stem(n,hn,'filled');
title('h(n)');gridon;
[hw]=freqz(b,a,16);%求频率响应
subplot(2,2,3),plot(w,abs(h));
title('Amplitude');gridon;
subplot(2,2,4),plot(w,angle(h));
title('Phase');gridon;
问题:
该系统是何种滤波器?
对信号延迟还是超前?
四、设计性实验
已知系统函数
画出零、极点图,求冲激响应,并判断系统稳定性;
求幅频响应,并判断系统属于就何种滤波器。
求相频响应,分析系统对信号的相移。
五、实验要求
1.运行验证性实验,观察记录结果,回答问题。
2.完成设计性实验,在实验报告上记录程序和结果。
实验三信号的抽样和重构
实验目的
(1)熟悉抽样信号及其频谱。
(2)掌握抽样定理。
(3)了解理想低通滤波器。
一、实验原理
1.抽样信号
抽样信号相当于连续信号与周期性的冲击序列相乘。
在Matlab中可以很方便的用不同的时间间隔实现对连续信号不同频率的抽样。
抽样信号的频谱等于原始信号的频谱与冲击序列的频谱的卷积。
抽样信号的频谱是对原始信号的频谱的周期性延拓,周期大小为抽样品率,其中每一个周期都复制了原始信号的频谱。
2.抽样定理
一个带宽为wm的带限信号f(t),可唯一地由它的均匀取样信号fs(nTs)确定,其中,取样间隔Ts<π/wm。
3.低通滤波器
为了从抽样信号中恢复原始信号,可以让抽样信号通过一个低通滤波器,把一个周期的频谱取出来。
理想低通滤波器的频率响应H(jw),是一个自变量为w的门函数。
让抽样信号的频谱Fs(jw)与滤波器的H(jw)相乘,可以得到抽样信号一个周期的频谱Fa(jw)。
对Fa(jw)求傅立叶逆变换,可以重构原始信号。
二、验证性实验
1.绘制宽度为2的门信号G2(t)=u(t+1)-u(t-1)的图形和频谱。
门信号并非严格意义上的有限带宽信号,但是,由于其频率f>1/τ的分量所具有的能量占有很少的比重,所以一般定义fm=1/τ为门信号的截止频率。
其中的τ为门信号在时域的宽度。
在本例中选取fm=0.5,临界采样频率为fs=2fm=1,过采样频率为fs>1(为了保证精度,可以将其值提高到该值的50倍),欠采样频率为fs<1。
MATLAB程序:
Ts=0.01;%采样周期=0.01,fs=100>>2fm=1
t=-4:
Ts:
4;
f=rectpuls(t,2);%宽度为2的门信号
w1=2*pi*10;%频谱范围[-20*pi20*pi]
N=1000;%计算出2*1000+1个频率点
k=0:
N;
wk=k*w1/N;
F=f*exp(-j*t'*wk)*Ts;%计算Fourier变换
F=abs(F);%计算频谱的幅度
wk=[-fliplr(wk),wk(2:
1001)];
F=[fliplr(F),F(2:
1001)];%补充对应负频率的频谱
subplot(2,1,1);plot(t,f);
xlabel('t');ylabel('f(t)');
title('f(t)=u(t+1)-u(t-1)');
subplot(2,1,2);plot(wk,F);
xlabel('w');ylabel('F(jw)');
title('f(t)的幅度谱');
由于抽样周期很小,抽样频率(100Hz)远远大于信号带宽,结果相当于连续信号。
请回答:
门信号的频谱第一个过零点是多大的频率?
2.绘制宽度为2的门信号G2(t)=u(t+1)-u(t-1)的的抽样信号的图形和频谱。
MATLAB程序:
Ts=0.25;%采样周期=0.25,fs=4>2fm=1
t=-4:
Ts:
4;
f=rectpuls(t,2);%宽度为2的门信号
w1=2*pi*10;%频谱范围[-20*pi20*pi]
N=1000;%计算出2*1000+1个频率点
k=0:
N;
wk=k*w1/N;
F=f*exp(-j*t'*wk);%计算Fourier变换
F=abs(F);%计算频谱的幅度
wk=[-fliplr(wk),wk(2:
1001)];
F=[fliplr(F),F(2:
1001)];%补充对应负频率的频谱
subplot(2,1,1);stem(t/Ts,f);%采样信号的离散时间显示
xlabel('n');ylabel('f(n)');title('f(n)');
subplot(2,1,2);plot(wk,F);%显示采样信号的连续的幅度谱
xlabel('w');ylabel('F(jw)');title('f(n)的频谱');
请回答:
抽样序列f(n)的脉冲宽度是多少,为什么不是2?
抽样信号的频谱周期是多少?
3.求宽度为2的门信号G2(t)=u(t+1)-u(t-1)的的抽样信号,利用低通滤波器重构门信号,并计算误差。
MATLAB程序:
%计算抽样信号
Ts=0.25;%采样周期
t=-4:
Ts:
4;%时间区间[-4,4]
f=rectpuls(t,2);%抽样信号
%计算抽样信号的频谱
w1=2*pi*10;
N=1000;
k=0:
N;
wk=k*w1/N;
F=f*exp(-j*t'*wk);%利用数值计算连续信号的Fourier变换
wk=[-fliplr(wk),wk(2:
1001)];
F=[fliplr(F),F(2:
1001)];%抽样信号的频谱
%计算理想低通滤波器
Tw=w1/N;%频率采样间隔
w=-2*pi*10:
Tw:
2*pi*10;
H=Ts*rectpuls(w,2.*pi/Ts);%理想低通滤波器频率特性
%重构原始信号
Fa=F.*H;%采样信号通过滤波器后的频谱
Dt=0.01;
t1=-4:
Dt:
4;%时间区间[-4,4]
fa=Tw/(2*pi)*(Fa*exp(j*wk'*t1));%Fourier逆变换
%绘重构信号
subplot(2,1,1)
plot(t1,fa);
xlabel('t');ylabel('fa(t)');
title('f(t)的重构信号');
%绘误差图
err=fa-rectpuls(t1,2);%误差
subplot(2,1,2)
plot(t1,err);
xlabel('t');ylabel('err(t)');
title('f(t)的重构误差信号');
三、设计性实验
求宽度为2的门信号G2(t)=u(t+1)-u(t-1)的的抽样信号,利用低通滤波器重构门信号,并计算误差。
比较抽样周期分别为0.1、0.5、1、1.5时的不同结果,分析其原因。
四、实验要求
1.运行验证性实验,观察记录结果。
2.完成设计性实验,在实验报告上记录程序和结果。