《信号与系统》matlab仿真实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《信号与系统》matlab仿真实验
综合实验一《信号与系统》的MATLAB 仿真实验
一.实验目的
1.熟悉MATLAB软件平台、工具箱、高效的数值计算及符号计算功能。
2.熟悉MATLAB软件的信号处理编程方法和结果的可视化
3.了解数字信号处理的计算机仿真方法
4.进一步加深对信号与系统的基本原理、方法及应用的理解。二.实验软件MATLAB 6.5 界面
三.实验内容
1.基本信号的表示及可视化
2.连续信号的时域运算与时域变换
3.线性系统的时域分析及Matlab实现
4.连续时间信号的频域分析及Matlab实现
四.实验原理方法及相关MATLAB函数
1.基本信号的表示及可视化
1.1 连续时间信号
(1)表示出连续信号f(t)=Sa(t)=sin(t)/t
Matlab命令如下:
t=-10:1.5:10; %向量t时间范围t=t1:p:t2,p为时间间隔
f=sin(t)./t;
plot(t,f); %显示该信号的时域波形
title(‘f(t)=Sa(t)’);
xlabel(‘t’)
axis([-10,10,-0.4,1.1])
注:改变p可使信号波形更平滑,同学们可以试一试。
(2)单位阶跃信号
定义阶跃函数
function f=Heaviside(t)
f=(t>0)
调用阶跃函数
t=-1:0.01:3;
f=Heaviside(t)
plot(t,f);
axis([-1,3,-0.2,1.2]);
(2)单位冲击信号d(t)
定义冲击函数
function chongji(t1,t2,t0)
dt=0.01;
t=t1:dt:t2;
n=length(t);
x=zeros(1,n);
x(1,(-t0-t1)/dt+1)=1/dt;
stairs(t,x);
axis([t1,t2,0,1.2/dt])
title('单位冲击信号δ(t)')
调用的是chongji(-1,5,0);可以试着给别的t1,t2,t0.
1.2离散时间信号
(1)单位阶跃序列e(k)
定义阶跃序列
function jyxulie(k1,k2,k0)
k=k1:-k0-1;
kk=-k0:k2;
n=length(k);
nn=length(kk);
u=zeros(1,n); %k0前信号赋值为零
uu=ones(1,nn); %k0后信号赋值为一
stem(kk,uu,’filled’)
hold on
stem(k,u,’filled’)
hold off
title(‘单位阶跃序列’)
axis([k1 k2 0 1.5])
调用阶跃序列函数jyxulie(-2,6,0)
(3)单位序列d(k)
定义单位序列函数
function dwxulie(k1,k2,k0)
k=k1:k2;
n=length(k);
f=zeros(1,n);
f(1,-k0-k1+1)=1;
stem(k,f,’filled’)
axis([k1,k2,0,1.5])
title(‘单位序列d(k)’)
调用单位序列函数dwxulie(-3,5,0)
2.连续信号的时域运算与时域变换
运算、变换的符号运算方法:相加、相乘、移位、反折、尺度变换、倒相 已知信号)]2()2([)21()(--+⨯+=t t t t f εε,用matlab 求f(t+2),f(t-2),f(-t),f(2t),-f(t),
并绘出时域波形。
syms t
f=sym('(t/2+1)*(heaviside(t+2)-heaviside(t-2))')
subplot(2,3,1);
ezplot(f,[-3,3]);
y1=subs(f,t,t+2)
subplot(2,3,2),ezplot(y1,[-5,1])
y2=subs(f,t,t-2)
subplot(2,3,3),ezplot(y2,[-1,5])
y3=subs(f,t,-t)
subplot(2,3,4),ezplot(y3,[-3,3])
y4=subs(f,t,2*t)
subplot(2,3,5),ezplot(y4,[-2,2])
y5=-f
subplot(2,3,6),ezplot(y5,[-3,3])
3.线性系统的时域分析及Matlab 实现 已知描述某连续系统的微分方程为:)(2)()()(2)(t f t f t y t y t y +'=+'+''试用Matlab
绘出该系统冲激响应和阶跃响应。若当输入信号为)()(2t e t f t ε-=,该系统零状态响应y (t )
b=[1 2];
a=[1 2 1];
subplot(1,3,1);
impulse(b,a); %冲激响应
subplot(1,3,2);
step(b,a) %阶跃响应
p=0.5; %定义取样时间间隔
t=0:p:5; % 定义时间范围
x=exp(-2*t); %定义输入信号
lsim(b,a,x,t); %对系统的输出信号进行仿真
subplot(1,3,3);
思考(试做):利用Matlab 求LTI 离散系统的响应,函数filter().格式filter(b,a,x)
4.连续时间信号的频域分析及Matlab 实现
设)(*)()(),1()1()(t f t f t y t t t f =--+=εε,试用Matlab 给出
)()(),(),(),(ωωωj F j F j F t y t f •及)(ωj Y 的图形,验证时域卷积定理)()()()(21ωωj F j F t f t f •↔*
R=0.05;t=-2:R:2;
f=Heaviside(t+1)-Heaviside(t-1); %f(t)的时域宽度为2,t 的取值范围放大为-2~2
subplot(3,2,1)
plot(t,f)
xlabel('t');
ylabel('f(t)');
y=R*conv(f,f); %求y(t)=f(t)*f(t),本例y(t)的时宽为f(t)时宽的两倍 n=-4:R:4; %n 的取值范围为t 的取值范围的两倍,为-4~4 subplot(3,2,2);
plot(n,y);
xlabel('t');
ylabel('y(t)=f(t)*f(t)');
axis([-3 3 -1 3]);
W1=2*pi*5;
N=200;
k=-N:N;