信号与系统实验75042Word格式.docx
《信号与系统实验75042Word格式.docx》由会员分享,可在线阅读,更多相关《信号与系统实验75042Word格式.docx(19页珍藏版)》请在冰豆网上搜索。
2绘出下列复信号的实部、虚部、模和辐角随时间变化的曲线。
a=2+j*2;
f=exp(-a*t);
fr=real(f);
fi=imag(f);
F=abs(f);
Fi=angle(f)*180/pi;
Subplot(221)
plot(t,fr,'
b'
)
title('
实部'
Subplot(222)
plot(t,fi,'
虚部'
Subplot(223)
plot(t,F,'
模'
Subplot(224)
plot(t,Fi,'
相角'
3已知连续时间信号
,试用Matlab编程绘出下列信号的时域波形。
(2)
(5)习题1-12和1-13(分单双号做)
例解1:
f='
sin(pi*t)/t'
;
figure
(1)
ezplot(f,[-55])
sin(pi*(1-t/2))/(1-t/2)'
figure
(2)
ezplot(f,[-1014-13.5])
例解2:
t=-10:
f=sin(pi*t)./t;
t1=(1-t/2);
f1=sin(pi*t1)./t1;
plot(t,f,’b’,t,f1,’r’)
4信号的运算:
信号的尺度变换、翻转、平移(信号的尺度变换、翻转、平移,实际上是函数自变量的运算)。
试用Matlab编程先给出一原始信号,再对它进行尺度变换、翻转、平移运算,并绘出它们的时域波形.
实验二连续时间系统的时域分析
一、实验目的
1、掌握连续时间信号卷积及其MATLAB实现方法;
2、掌握连续系统的冲激响应、阶跃响应及其MATLAB实现方法;
3、掌握利用MATLAB求LTI系统响应的方法;
4、掌握利用MATLAB求函数卷积和解微分方程。
1、预习连续系统的卷积积分原理;
2、学习编程实现连续系统的卷积过程;
3、学习冲激响应及其函数impulse()的调用格式;
4、学习阶跃响应及其函数step()的调用格式。
1求信号零状态响应:
Matlab的lsim函数可对由微分方程描述的LTI连续系统的响应进行分析仿真。
该函数有两种调用格式:
lsim(sys,f,t,x0)和y=lsim(sys,f,t)其中,t表示时间范围的向量,f则是输入信号在向量t定义的时间点上的采样值,x0表示该系统的初始状态。
输入参量sys是由Matlab的tf函数根据描述系统的微分方程的系数生成的系统函数对象(TF对象)。
其调用格式为:
sys=tf(b,a)
调用tf函数生成系统函数对象sys,并用向量f和t定义了系统激励信号后,就可调用lsim函数对连续系统的响应进行仿真。
例已知描述某系统的微分方程为
当输入信号为
时,用Matlab进行系统零状态响应的求解,并画出其时域波形.
其理论解为:
。
a=[132];
b=[13];
sys=tf(b,a);
%定义系统函数对象
p=0.01;
%定义采样时间间隔
t=-1:
p:
%定义时间范围向量
%f=exp(-2*t).*(t>
%定义输入信号
f=1*(t>
y=lsim(sys,f,t);
plot(t,y,'
)%描绘系统零状态响应时域波形
holdon%在原来的图形上加画其它线条而不会把原来的图形覆盖掉
yr=(-2*exp(-t)+0.5*exp(-2*t)+1.5).*(t>
plot(t,yr,'
r--'
)%%描绘系统零状态响应时域波形(理论解)
单位阶跃响应'
(习题2-6)
(例2—8)
2信号的冲激响应和阶跃响应
Matlab的impulse函数可对由微分方程描述的LTI连续系统的冲激响应进行分析仿真。
该函数的调用格式:
y=impulse(sys,t).Matlab的step函数可对由微分方程描述的LTI连续系统的阶跃响应进行分析仿真。
y=step(sys,t).其中,t表示时间范围的向量,输入参量sys是由Matlab的tf函数根据描述系统的微分方程的系数生成的系统函数对象(TF对象)。
例已知描述某系统的微分方程为
,用Matlab进行系统阶跃响应的求解,并画出其时域波形.
a=[16116];
b=[102];
t=0:
y=step(sys,t);
plot(t,y);
习题2-9
3卷积运算
例求f1=1.*(u(t1-0.5)-u(t1-1.5))与f2=0.5*t2.*(u(t2)-u(t2-2))的卷积;
lconv.mM函数文件:
function[t,f]=lconv(f1,f2,t1,t2,dt)
f=conv(f1,f2);
f=f*dt;
t0=t1
(1)+t2
(1);
l=length(f1)+length(f2)-2;
t=t0:
dt:
(t0+l*dt);
end
AAAAAAAAAAAAAAAAAAAAAA
M脚本文件:
dt=0.005;
%%%%%%%%%%%%%%%%定义f1_t1
t1=-1:
2;
f1=1.*(heaviside(t1-0.5)-heaviside(t1-1.5));
%%%%%%%%%%%%%%%定义f2_t2
t2=-1:
3;
f2=0.5*t2.*(heaviside(t2)-heaviside(t2-2));
%%%%%%%%%%%%%%%%%%%%
[t,f]=lconv(f1,f2,t1,t2,dt);
%调用自定义lconv函数
subplot(221)
plot(t1,f1)
axis([min(t1),max(t1),min(f1)-min(f1)*0.2,max(f1)+max(f1)*0.2])
f1(t)'
xlabel('
t'
subplot(222)
plot(t2,f2)
axis([min(t2),max(t2),min(f2)-min(f2)*0.2,max(f2)+max(f2)*0.2])
f2(t)'
subplot(212)
plot(t,f)
axis([min(t),max(t),min(f)-min(f)*0.2,max(f)+max(f)*0.2])
f(t)=f1(t)*f2(t)'
求 (书P63页)的卷积;
习题2-19(分单双号选做2小题)
实验三傅里叶变换
1傅里叶变换
如果连续时间信号f(t)可用符号表达式表示,则可利用Matlab提供的fourier函数直接求出其傅立叶变换(方法1)。
该函数常用的调用格式有三种:
F=fourier(f);
F=fourier(f,v);
F=fourier(f,u,v);
与上变换对应的逆变换也有三种常用的调用格式:
f=ifourier(F);
f=ifourier(F,u);
f=ifourier(F,v,u);
连续时间信号f(t)傅立叶变换的数值近似方法(方法2):
傅立叶变换可以表示为
对绝大数信号,当
足够小时上式的近似情况可以满足实际需要。
若
是时限信号,或当
大于某个给定值时
的值已衰减很厉害(可近似看作是时限的)。
则上式可变为
对角频率
进行离散化,得到N个角频率采样点,描绘幅频特性曲线。
例1.求
的傅立叶变换(方法1)。
symstv%定义符号变量tv
f=exp(-1.5*abs(t));
F=fourier(f);
%F=fourier(f,t,v);
subplot(211)
axis([-11-0.21.2])
ezplot(abs(F),[-55])
axis([-5501.5])
例2.求f=u(t+1.5)-u(t-1.5)的傅立叶变换。
%数值近似方法(方法2):
dt=0.01;
Nt=5;
t=-Nt:
Nt;
f=heaviside(t+1.5)-heaviside(t-1.5);
Nw=20;
dw=0.05;
w=-Nw:
dw:
Nw;
F=zeros(1,length(w));
fork=1:
length(w)
F(k)=dt*exp(-j*w(k)*t)*f'
end
时域信号f(t)'
axis([-5501.2])
plot(w,abs(F))
频谱图F(jw)'
axis([-NwNw03])
求下面典型非周期信号的傅里叶变换,写出傅里叶变换的表达式并画出其频谱图(同时用方法1与方法2):
单边指数信号:
双边指数信号:
矩形脉冲信号:
习题3-24,3-15
2傅里叶逆变换:
求
的傅里叶逆变换的表达式,并画出时域波形图.
symstw%定义符号变量tw
F=1/(1+W^2);
f=ifourier(F);
实验四拉普拉斯变换
已知连续系统的系统函数为H(s),可利用Matlab控制工具箱提供的tf函数、pole函数(计算系统极点)、zero函数(计算系统零点)和pzmap函数(绘制零、极点分布图)、laplace函数(拉普拉斯变换),ilaplace函数(拉普拉斯逆变换)。
1.求下面函数的拉普拉斯变换:
;
例symstaw
F1=laplace(heaviside(t))
F2=laplace(exp(-a*t))
F3=laplace(t^3)
F4=laplace(sin(w*t)
2求下面函数的拉普拉斯逆变换:
习题4-4(分单双号各做任选4道小题)
例函数 (书例4-8)的拉普拉斯逆变换。
symss;
f=ilaplace(10*(s+2)*(s+5)/s/(s+1)/(s+3))
例函数 (书例4-9)的拉普拉斯逆变换。
b=[1,5,9,7];
a1=[1,1];
a2=[1,2];
a=conv(a1,a2);
%计算分母多项式的系数
[r,p,k]=residue(b,a)%部分分式展开,得到系数r,极点p和自由项k
f=ilaplace(s+2+2/(s+1)-1/(s+2));
3连续时间系统的零,极点分析与MATLAB实现
求出
系统函数的零、极点,并绘出其零、极点分布图,并绘制出对应的冲激响应h(t)的时域波形,观察分析系统函数零点位置对冲激响应时域波形的影响。
例b=[0.0400];
a=[0.040.42];
H=tf(b,a);
pzmap(H);
p=pole(H);
z=zero(H);
实验五 傅立叶变换的应用
1、加深对系统的频率特性的理解;
2、加深理解连续时间信号离散化过程中的数学概念和物理概念;
3、掌握对连续时间信号进行抽样和恢复的基本方法;
4、通过实验验证抽样定理。
二、实验内容
1.Matlab提供了专用函数freqs来实现连续系统频率响应H(jω)的分析。
该函数有四种调用格式:
H=freqs(b,a,w)[H,w]=freqs(b,a)[H,w]=freqs(b,a,N)freqs(b,a)
写出习题4-38中各情况下的连续系统频率响应H(jω),并进行频率特性分析,画出其幅频响应和相频响应特性曲线.对例题4-20和4-21中的RC取恰当的值后,对它们分别进行频率特性分析,并画出幅频响应和相频响应特性曲线.
例
b=[0.0400];
freqs(b,a);
2、为了观察连续信号时域抽样时,抽样频率对抽样过程的影响,在[0,0.1]
区间上以50Hz的抽样频率对下列
信号分别进行抽样,试画出抽样后序列的波形,并分析产生不同波形的原因,提出改进措施并实施。
例t0=0:
0.001:
0.1;
X0=cos(2*pi*20*t0);
Plot(t0,x0);
Holdon
Fs=50;
1/fs:
x=cos(2*pi*20*t0);
stem(t,x);
holdoff;
3.理想时域采样可分为:
过采样(频谱周期拓展无频率混叠现象)和欠采样(频谱周期拓展有频率混叠现象).
读并由Matlab仿真下面的程序,然后回答下面的程序完成了什么工作?
采样过程是过采样还是欠采样?
哪些参数决定它的采样性质?
是如何决定的?
请你改变这些参数观察程序的仿真结果,验证你的理论。
例求cos(2*pi*0.2*t)的采样信号频谱:
clc
clear
Nt=20;
Ts=1.0;
f=cos(2*pi*0.2*t);
%频率为0.2Hz临界采样频率为0.4Hz
Nw=3*pi*1;
dw=0.02;
%axis([-55-0.11.1])
plot(w/(2*pi),abs(F),'
holdon
E=2;
tao=0.3;
ws=2*pi/Ts;
%tao必须小于Ts
N=2;
forn=-N:
N
plot((w+n*ws)/(2*pi),1/Ts*abs(F),'
r'
)%理想抽样
plot((w+n*ws)/(2*pi),(E*tao)/Ts*abs(sinc(n*ws*tao/(2*pi)))*abs(F),'
)%零阶保持抽样
4信号的重构:
如何才能实现信号的重构?
哪些参数决定重构的实现?
例由Sa(t)的采样信号Sa(nTs)恢复出其原始信号。
%Ts小于等于1.0
ts=-Nt:
Ts:
f=sinc(t/pi);
fs=sinc(ts/pi);
%采样信号fs
fr=zeros(1,length(t));
wc=ws/2;
length(t)
fr(k)=sinc((wc/pi)*(t(k)-ts))*fs'
plot(t,f,'
r:
'
实验六离散时间信号的时域分析
熟悉MATLAB软件的使用,了解离散时间信号的特点,掌握离散信号的表示方法,并熟
悉用MATLAB产生和实现离散信号。
离散时间信号指在时间自变量上是离散的,只在某些不连续的规定时刻给出函数值,其
他时刻没有定义,通常用f(kT)或
表示,k表示离散时间变量。
常见的离散时间信号有:
指数序列、正弦序列、单位脉冲序列、单位阶跃序列等。
1利用Matlab绘出下列离散序列的时域波形。
例解法1单位样值信号
的表示。
解1:
n=-2:
4;
x=(n==0);
stem(n,x,'
filled'
title(‘单位样值信号’)
n'
);
ylabel('
x(n)'
解法2:
dwxl.m文件
functiony=dwxl(n)
y=(n==0);
另建.m文件
x=dwxl(n);
stem(n,x,’filled’)
xlabel(‘n’);
ylabel(‘x(n)’);
例 单位阶跃序列
du.m文件
functiony=du(n)
y=(n>
8;
x=du(n);
title(‘单位阶跃序列’)
2.LTI离散时间系统的响应:
调用filter函数(离散时间系统仿真,数字滤波器):
y=filter(b,a,x)
例已知LTI离散系统为
绘出输入序列为
的系统相应的零状态响应。
a=[6-52];
b=[101];
n=0:
20;
x=(3/4).^n;
y=filter(b,a,x);
stem(n,x,‘filled’)
title(‘输入序列x(n)’)
stem(n,y,‘filled’)
title(‘输出序列y(n)’)
LTI离散时间系统的单位序列响应:
impz函数(计算单位样值响应):
impz(b,a,N1:
N2)
例求上例中系统的单位序列响应。
impz(b,a,-10:
30)
title(‘h(n)’)
已知LTI离散系统为
(例7-10);
绘出系统的零状态响应。
绘出系统的零状态响应.
实验七离散时间系统的Z域分析
1利用Matlab的符号运算实现z变换(单边):
调用ztrans函数的命令格式:
X=ztrans(x)和X=ztrans(x,w)
求下列信号的单边z变换:
要求写出信号的单边z变换的表达式
例解:
symsn
x=(1/2)^n;
X=ztrans(x)
2求下列信号的的逆变换。
要求写出所求信号的表达式。
(1)X=2z/(2z-1) (2)
(3) (4)
利用Matlab的符号运算实现z逆变换。
调用iztrans函数的命令格式:
x=iztrans(X)和x=iztrans(X,w)
例解:
symsz
X=2*z/(2*z-1);
x=iztrans(X);
3绘制离散系统零极点分布图。
利用函数zplane绘制离散系统零极点分布图,其调用格式为:
zplane(num,den)
例描绘离散系统的零极点分布图。
(2)
num=[135];
den=[184];
4传递函数模型与零、极点增益模型之间的转换
函数tf2zp的调用格式:
[z,p,k]=tf2zp(num,den)
函数zp2tf的调用格式:
[num,den]=zp2tf(z,p,k)
例转换
为零极点增益模型。
[z,p,k]=tf2zp(num,den);
[n,d]=zp2tf(z,p,k);