信号与线性系统实验报告.docx
《信号与线性系统实验报告.docx》由会员分享,可在线阅读,更多相关《信号与线性系统实验报告.docx(14页珍藏版)》请在冰豆网上搜索。
信号与线性系统实验报告
课程实验报告
课程名称:
信号与线性系统
专业班级:
计算机科学与技术11级10班
学号:
U201114445
姓名:
王涛
指导教师:
孙伟平
报告日期:
2013/7/1
计算机科学与技术学院
实验一连续时间系统的时域分析
%1_1_1.m
T=0.01;
tx=0:
T:
2;
x=rectpuls((tx-1),2).*exp(-tx);
th=0:
T:
2;
h=rectpuls((th-1),2).*2;
t=(0+0):
T:
(2+2);
y=conv(x,h);
figure
subplot(3,1,1);plot(tx,x)
ylabel('输入激励');
subplot(3,1,2);
plot(th,h)
ylabel('单位冲激响应');
subplot(3,1,3);
plot(t,y)
ylabel('输出响应');
%1_1_2.m
T=0.01;tx=-4:
T:
4;
x=rectpuls((tx-0),8).*(1-abs(tx)/4);th=0:
T:
4;
h=(th>=0);
t=(-4):
T:
8;
y=conv(x,h);
figure
subplot(3,1,1);
plot(tx,x)
ylabel('输入激励');
subplot(3,1,2);
plot(th,h)
ylabel('单位冲激响应');
subplot(3,1,3);
plot(t,y)
ylabel('输出响应');
%1_2_1.m
R=10;%电阻值
C=4;%电容值
U0=2;%电容电压初始值
S=[num2str(C),'*',num2str(R),'*Dy+','y=heaviside(t)'];%得到微分
方程的字符串表达式
init=['y(0)=',num2str(U0)];%得到初始条件的字符串表达式
y=dsolve(S,init,'t');
%求解微分方程,得到符号解
t=2:
0.01:
2*pi;
x=ones(1,length(t));
figure
subplot(1,2,1);
plot(t,x)
title('激励电压');
subplot(1,2,2);%2号子图显示输出响应ys
ezplot(y,[0,2*pi])
title('输出响应')
%1_2_2.m
R=0.5;%电阻值
L=1;%电容值
I0=2;%电感电流初始值
S=[num2str(L),'*Dy+',num2str(R),'*y=heaviside(t)'];%得到微分
方程的字符串表达式
init=['y(0)=',num2str(I0)];%得到初始条件的字符串表达式
y=dsolve(S,init,'t');%求解微分方程,得到符号解
t=0:
0.01:
2*pi;
x=ones(1,length(t));
%得到时间范围t内的阶跃信号u(t)的离散抽样序列x
figure
subplot(1,2,1);
%多子图显示,将图形框分为1x2个子图,1号子图显示阶跃信号x
plot(t,x)
title('激励电压');
subplot(1,2,2);%2号子图显示输出响应ys
ezplot(y,[0,2*pi])
title('输出响应')
实验分析:
本次实验应用连续系统时域分析的两种方法,卷积计算和微分方程的求解。
实验二信号的傅里叶分析实验
%2_1_1.m
N=10;%希望看到的谐波次数
symstTk;%定义时间t、周期Ta、下标k三个符号
y=subs(sym('Heaviside(t+T/20)-Heaviside(t-T/20)'),'T',TT);%锯齿脉冲基础波形,tao/T=1/20
%修改上面的sym中的参数,将T/20改为T/40皆可
%得到占空比为1/20的。
A0=int(y,t,-TT/2,TT/2)/TT;%直流分量A0
%利用符号法得到各频率分量的复数Fourier系数Ak的符号表达式
Ak=int(y*exp(-2*i*pi*k*t/TT),t,-TT/2,TT/2)/TT;
fk=sym(Ak)*sym(exp(2*i*k*pi*t/TT));
%计算k在区间[-N,N]内的Fourier系数,存入向量a(长度为2*N+1)
form=-N:
-1
%a(m+N+1)=numeric(subs(Ak,k,m));
a(m+N+1)=double(subs(Ak,k,m));
end
a(N+1)=double(sym(A0));
form=1:
N
a(m+N+1)=double(subs(Ak,k,m));
end%for
%利用symsum命令进行符号求和,得到综合信号f
f=symsum(fk,k,-N,-1)+A0+symsum(fk,k,1,N);
%图形显示结果
figure
n=-N:
N;
as=abs(a)*2;%由Fourier系数得到频谱幅度
subplot(3,1,1)
ezplot(y,[-TT,TT])
ylabel('原函数');
subplot(3,1,2)
ezplot(f,[-TT,TT])
ylabel('合成函数');
subplot(3,1,3)
stem(n,as)
ylabel('幅度频谱图');
%2_1_2.m
symt;
f=sym('(t/5)*(Heaviside(t+5)-Heaviside(t-5))');%信号的符号表达式
F=fourier(f);%得到Fourier变换的符号表达式
FF=maple('convert',F,'piecewise');%对Fourier变换的符号表达式进行转换,使其便于画图
FFF=abs(FF);%得到频谱符号表达式
figure
subplot(1,2,1)
ezplot(f,[-2,2])
title('时域波形f(t)');
subplot(1,2,2)
ezplot(FFF,[-2,2])
title('频域波形F(jw)');
%2_2_1.m
symt;
f=sym('Heaviside(t+2)-Heaviside(t-2)');%信号的符号表达式
F=fourier(f);%得到Fourier变换的符号表达式
FF=maple('convert',F,'piecewise');%对Fourier变换的符号表达式进行转换,使其便于画图
FFF=abs(FF);%得到频谱符号表达式
figure
subplot(1,2,1)
ezplot(f,[-2*pi,2*pi])
title('时域波形f(t)');
subplot(1,2,2)
ezplot(FFF,[-2*pi,2*pi])
title('频域波形F(jw)');
%2_2_2.m
symt;
f=sym('(1+t)*(Heaviside(t+1)-Heaviside(t))+(1-t)*(Heaviside(t)-Heaviside(t-1))');%信号的符号表达式
F=fourier(f);%得到Fourier变换的符号表达式
FF=maple('convert',F,'piecewise');%对Fourier变换的符号表达式进行转换,使其便于画图
FFF=abs(FF);%得到频谱符号表达式
figure
subplot(1,2,1)
ezplot(f,[-2,2])
title('时域波形f(t)');
subplot(1,2,2)
ezplot(FFF,[-2,2])
title('频域波形F(jw)');
实验分析:
本次试验通过输入不同的参数可以验证傅里叶变换的性质。
实验三连续时间系统的频域分析实验
%3_1.m
m=0.1:
0.2:
0.9;
b=[1];%分子系数向量
fori=1:
5
a=[m(i)-m(i)*m(i),1];%分母系数向量
printsys(b,a,'s')
[Hz,w]=freqs(b,a);
w=w./pi;
magh=abs(Hz);
zerosIndx=find(magh==0);
magh(zerosIndx)=1;
magh=20*log10(magh);
magh(zerosIndx)=-inf;
angh=angle(Hz);
angh=unwrap(angh)*180/pi;%角度换算
figure
subplot(1,2,1)
plot(w,magh);
gridon
%set(H(2,2),'xlim',[0,1])
xlabel('特征角频率(\times\pirads/sample)')
title('幅频特性曲线|H(w)|(dB)');
subplot(1,2,2)
plot(w,angh);
gridon
xlabel('特征角频率(\times\pirads/sample)')
title('相频特性曲线\theta(w)(degrees)');
end
%3_2.m
b=[b2,b1,b0];%分子系数向量
a=[a2,a1,a0];%分母系数向量
printsys(b,a,'s')
[Hz,w]=freqs(b,a);
w=w./pi;
magh=abs(Hz);
zerosIndx=find(magh==0);
magh(zerosIndx)=1;
magh=20*log10(magh);%以分贝
magh(zerosIndx)=-inf;
angh=angle(Hz);
angh=unwrap(angh)*180/pi;%角度换算
figure
subplot(1,2,1)
plot(w,magh);
gridon
%set(H(2,2),'xlim',[0,1])
xlabel('特征角频率(\times\pirads/sample)')
title('幅频特性曲线|H(w)|(dB)');
subplot(1,2,2)
plot(w,angh);
gridon
xlabel('特征角频率(\times\pirads/sample)')
title('相频特性曲线\theta(w)(degrees)');
实验分析:
本次实验研究连续时间系统的频域分析,重点分析的频率特性即频率响应特性,为系统在正弦信号激励下稳态响应随频率变化而变化的情况,包括幅度随频率变化的响应和相位随频率变化的响应两个部分。
在手绘频率响应特性曲线时,可以利用极、零点借助几何作图法绘制。
实验四拉普拉斯逆变换及应用
%4_1_1.m
z=[-5+0*i];%零点向量
p=[-4,-3,-1];%极点向量
k=2;%增益系数
[num,den]=zp2tf(z',p',k);
printsys(num,den,'s')
a1=poly2sym(num);
a2=poly2sym(den);
a=a1/a2;
ft=ilaplace(a);
figure
subplot(1,2,1)
rlocus(num,den)
title('像函数F(s)极、零图');
subplot(1,2,2)
ft=maple('convert',ft,'radical');
ezplot(ft,[0,4*pi])
title('时域原函数f(t)');
%4_1_2.m
同上,只是将矢量变化:
z=[-1+0*i];%零点向量
p=[-4,-3,-2];%极点向量
%4_2_1.m
symss;
fs=sym((s+1)/(s^2+s+1))%系统传递函数符号表达式
ft=ilaplace(fs);
ft=maple('convert',ft,'radical');
figure
ezplot(ft,[0,4*pi])
title('时域原函数f(t)');
%4_2_2.m
symss;
fs=sym((1-s)/(s^2+s))%系统传递函数符号表达式
ft=ilaplace(fs);
ft=maple('convert',ft,'radical');
figure
ezplot(ft,[0,4*pi])
title('时域原函数f(t)');
实验分析:
本次实验了解拉普拉斯逆变换及其应用。
通过系统函数H(S)的极、零点可以得到单位冲击响应h(t)的波形。
实验五离散时间系统的时域分析实验
%5_1_1.m
x=[12362];
n1=[4:
8];
h=[102];
n2=[1:
3];
n=[(min(n1)+min(n2)):
1:
((min(n1)+min(n2))+length(n2)+length(n1)-2)];
y=conv(x,h);
subplot(1,1,1);
stem(n,y);
%5_1_2.m
n1=[1:
5];
x=sin(n1);
n2=[1:
3];
h=[102];
n=[(min(n1)+min(n2)):
1:
((min(n1)+min(n2))+length(n2)+length(n1)-2)];
y=conv(x,h);
subplot(1,1,1);
stem(n,y);
%5_2_1.m滤波法:
clear;
N=2;%差分方程阶数
a=[1-0.950.9025];%差分方程分母系数向量a(0)~a(N)
b=[1/31/31/3];%差分方程分子系数向量b(0)~b(N)
k=20;%输出样点数目
zi=[20.95*2/0.9025];%初始状态N个
yzi=[0*ones(1,k+N+1)];%初始化零输入响应
h=yzi;%初始化单位函数响应
yzs=yzi;%初始化零状态响应
forn=1:
N
yzi(n)=zi(N-n+1);
end
y=yzi;%初始化全响应
n=[-N:
k];
x=[n==0];
zic=filtic(b,a,zi);%将零输入初始条件转化为函数filter()所需的初始条件
h(N+1:
end)=filter(b,a,x(N+1:
end));%或由命令dimpulse实现
x=[n>=0];
yzs(N+1:
end)=filter(b,a,x(N+1:
end));
yzi(N+1:
end)=filter([00],a,x(N+1:
end),zic);
y(N+1:
end)=filter(b,a,x(N+1:
end),zic);
figure
subplot(3,1,1)
stem(n,x)
title('激励x(n)');
subplot(3,1,2)
stem(n,h)
title('冲激响应h(n)');
subplot(3,1,3)
holdon
stem(n,yzs,'g')
stem(n,yzi,'r')
stem(n,y)
holdoff
legend('yzs','yzi','y');
title('输出响应y(n)');
%5_2_2.m滤波器法:
clear;
N=2;%差分方程阶数
a=[10-0.81];%差分方程分母系数向量a(0)~a(N)
b=[10-1];%差分方程分子系数向量b(0)~b(N)
k=20;%输出样点数目
zi=[41/0.81];%初始状态N个
yzi=[0*ones(1,k+N+1)];%初始化零输入响应
h=yzi;%初始化单位函数响应
yzs=yzi;%初始化零状态响应
forn=1:
N
yzi(n)=zi(N-n+1);
end
y=yzi;%初始化全响应
n=[-N:
k];
x=[n==0];
zic=filtic(b,a,zi);%将零输入初始条件转化为函数filter()所需的初始条件
h(N+1:
end)=filter(b,a,x(N+1:
end));%或由命令dimpulse实现
x=[n>=0];
yzs(N+1:
end)=filter(b,a,x(N+1:
end));
yzi(N+1:
end)=filter([00],a,x(N+1:
end),zic);
y(N+1:
end)=filter(b,a,x(N+1:
end),zic);
figure
subplot(3,1,1)
stem(n,x)
title('激励x(n)');
subplot(3,1,2)
stem(n,h)
title('冲激响应h(n)');
subplot(3,1,3)
holdon
stem(n,yzs,'g')
stem(n,yzi,'r')
stem(n,y,'b')
holdoff
legend('yzs','yzi','y');
title('输出响应y(n)');
实验分析:
本次实验研究离散时间系统的时域分析,了解离散卷积的计算和差分方程的求解。
通过激励信号与单位函数响应的卷积可以得到系统的零状态响应,通过差分方程的求解也可以得到系统的响应。
实验六离散时间系统的Z域分析实验
%6_1.m
figure
color=['b']
b=[10-1];%分子系数向量
a=[10-0.81];%分母系数向量
printsys(b,a,'z')
[Hz,w]=freqz(b,a);
w=w./pi;
magh=abs(Hz);
zerosIndx=find(magh==0);
magh(zerosIndx)=1;
magh=20*log10(magh);
magh(zerosIndx)=-inf;
angh=angle(Hz);
angh=unwrap(angh)*180/pi;
subplot(1,1,1)
plot(w,magh,color);
holdon
subplot(1,1,1)
xlabel('特征角频率(\times\pirads/sample)')
title('幅频特性曲线|H(w)|(dB)');
holdoff
%6_2.m同上,只是稍微改变系数就可
b=[0.1-0.30.30.1];%分子系数向量
a=[10.60.40.1];%分母系数向量
%6_3.m同上,只是稍微改变系数就可
b=[1-1];%分子系数向量
a=[100.81];%分母系数向量
实验分析:
最后一次实验研究离散时间系统的Z域分析,对于离散时间系统,系统单位冲击序列h(n)的傅里叶变换H(jw)反应系统自身的频率特性,可由系统函数H(z)求出,频率特性H(jw)具有周期性和对称性。
实验总结与体会:
虽然这个实验课程只有两次实验,虽说不能学得很精,但是还是能了解到一些有用的知识。
首先,见识了matlab软件的强大图形绘制与数学计算能力,正所谓“工欲善其事,必先利其器”,要想很好的发挥matlab的计算能力,必须先得学会matlab的基本编程操作。
经过短暂的学习和使用,对matlab编程语言有了初步的掌握,能看懂一些基本的代码步骤。
这就是我最先学到的。
其次,那就是通过实验过程及实验结果对课本的信号的相关知识有了直观的接触和了解,尤其是离散信号在计算机中的处理方法。
最后,日后不断的学习积累经验才能更好地掌握所学知识。