课程实验报告
( 2014/2015 学年 第 一 学期 )
实验名称:
用Matlab进行信号与系统的时频域分析
专 业
学 生 姓 名
班 级 学 号
指 导 教 师
指 导 单 位
日 期
一、实验目的
1、了解matlab中相关函数的调用,以及其参数设定方式。学会调试代码运行过程中出现的错误。
2、熟悉掌握时域、频域的相关知识,加深对书本知识的理解。
二、实验任务
1、完成实验内容的三个小题,分析解决调试代码过程中出现的问题。
2、对第三个小题做拓展,完成思考题并做小结。
3、认真完成本次实验小结,总结概括实验心得体会。
三、主要仪器设备
硬件:微型计算机
软件:Matlab
四、实验内容
(一)连续时间信号的卷积
上机题1.已知两个信号和,试分别画出和卷积的波形。
图形:
代码:
上机题2.已知两个信号和,试用数值计算法求卷积,并分别画出和卷积的波形。
图形:
代码:
(二)信号的频域分析
上机题3.求周期矩形脉冲信号的频谱图,已知
图形:
代码:
五、实验思考题
对于上机题3,改变信号的周期,比较他们的计算结果。
T=0.4s T=0.5s
T=0.8s T=1s
六、实验小结
本次试验虽然时间很短,只有两节课时间,但是我却从中学到了很多。下面我就这次试验总结自己的感悟。
第一,实现做好准备。这次实验前,许多同学都不知道实验要做什么内容,在老师提醒下,才开始找资料。这些事应该在实验前就做好了,这导致了最后有同学没有做完。这让我明白了,好的开始是成功的一半,天上不会掉馅饼,准备很重要。第二,细节决定成败。在上面的代码中,有很多错误只是抄写不准确,导致之前所有的代码都要重新打一遍,非常浪费时间,这完全可以避免。同样的,在学习中,有解许多题目时,往往一个小错就可能导致整个题目都是是错的,非常可惜。第三,学会找错。其实本次matlab实验还比较简单,大部分错误都是字符打错了。但是,我在过程中就发现了一个问题,比如第一题在最后一行代码输入之后,前面的两个图形都不见了。我问到其他同学,有些人遇到同样的问题,有些人则没有。而解决办法则是重新输入,不知道这是不是因为软件自身的原因,我重新输入之后,程序又运行正常了。这让那个我明白了在学习是要善于发现问题,在解决问题过程中让自己对知识了解得更透彻。同时这也让我明白了同学合作的重要性。
最后,这次试验不仅让我熟悉了matlab中关于信号的函数,还让我重新复习了信号相关的知识,感觉收获颇丰,希望这样的信号实验能越来越多。
七、教师评阅
日期:
第二篇:信号与系统实验报告
实验一 信号的表示与信号的运算
姓名 罗治民 班级电子12--BF学号 14122502289日期 2014.6.9 成绩
一、实验条件:计算机一台、MATLAB软件。
二、实验目的:学习使用MATLAB产生基本信号、回执信号波形、实现信号的基本运算,为信号分析何系统分析奠定基础。
三、实验原理:MATLAB提供了许多函数用于产生常用的基本信号:
(1)阶跃信号: t=-2:0.02:6; x=(t>=0); plot(t,x); axis([-2,6,0,1.2]);
(2)指数信号: t=0:0.001:5; x=2*exp(-1*t); plot(t,x);
(3)正弦信号: f0=4; w0=2*pi*f0; t = 0: 0.001: 1; x = 2*sin(w0*t+ pi/6);
plot(t,x);
(4)矩形脉冲信号: t=-2: 0.02: 6; x=rectpuls(t-2,4); plot(t,x);
(1)单位脉冲序列:k= -4: 20; x=[zeros(1,7),1,zeros(1,17)]; stem(k,x);
(2)单位阶跃序列:k= -4:20; x=[zeros(1,7),ones(1,18)]; stem(k,x);
(3)指数序列:k = -5:15; x = 0.3*(1/2).^k; stem(k,x);
(3)正弦序列:k=-10:10;omega=pi/3;x=0.5*sin(omega*k+ pi/5); stem(k,x);
信号的基本运算
四、实验步骤及结果测试:
1.利用MATLAB长生下列信号并作图。
(1) x(t)=-3u(t-1),-1<t<5
程序:t=-1:0.02:5;
x=-3*(0<=(t-1));
plot(t,x);
axis([-2.1,6.2,-3.1,0.1])
(2) x(t)=,0<t<30
程序:t=0:0.02:30;
x=exp(-0.1*t).*sin(2/3*t);
plot(t,x)
axis([-0.2,30.2,-1.1,1.1])
(3) x(t)=
程序:t=-0.1:0.00001:0.1;
x=cos(100*t)+cos(2000*t);
plot(t,x)
(4) x[k]=
程序:k=-14:15;
x=[zeros(1,9),ones(1,11),zeros(1,10)];
stem(k,x)
(5) x[k]=(0.9)[sin(0.25πk)+cos(0.25πk)] ,-20<k20
程序:k=-19:20;
x=((0.9).^k).*[sin(0.25*pi*k)+cos(0.25*pi*k)];
stem(k,x)
2.已知无限长序列
(1)计算信号的总能量;k=0:10000000; x=(0.5).^k; E=sum(abs(x).^2);fprintf('E=%2.16f\n',E)
结果:E=1.3333333333333333
(2)分别计算序列前10点、前20点和前30点的能量及占总能量的百分比。
解:k=0:10000000; x=(0.5).^k; E=sum(abs(x).^2);
k=0:10; x=(0.5).^k; E1=sum(abs(x).^2);
k=0:20; x=(0.5).^k; E2=sum(abs(x).^2);
k=0:30; x=(0.5).^k; E3=sum(abs(x).^2);
fprintf('E1=%2.16f\nE2=%2.16f\nE3=%2.16f\n',E1,E2,E3)
fprintf('E1/E=%2.16f\nE2/E=%2.16f\nE3/E=%2.16f\n',E1/E,E2/E,E3/E)结果:E1=1.3333330154418945
E2=1.3333333333330302
E3=1.3333333333333333
E1/E=0.9999997615814209
E2/E=0.9999999999997726
E3/E=1.0000000000000000
3.已知序列:
(1)计算离散序列的卷积和y[k]=x[k]*h[k],并绘出其波形;
解: k=-2:3; x=[2,2,1,-1,4,2];
k=0:2; h=[2,-1,1];
y=conv(x,h);
k=-2:5;
stem(k,y);
(2)计算离散序列的互相关函数,并绘出其波形;
解: k=-2:3; x=[2,2,1,-1,4,2];
k=0:2; h=[2,-1,1];
R=xcorr(x,h); k=-5:5;stem(k,R);
(3)序列的相关与序列的卷积有何关系?
解:根据序列的相关与序列的卷积的定义表达式可知,x[k] 与y[k]的序列相关为R[K]=x[k]*y[-k].
4.数字信号处理的应用之一是从含有加性噪声的信号中去除噪声。现有被噪声污染的信号 x[k]=s[k]+d[k],式中:为原始信号,d[k]为均匀分布的白噪声
(1)分别产生50点的序列s[k]和白噪声序列d[k],将二者叠加生成x[k],并在同一张图上绘出x[k],s[k]和d[k]的序列波形;
解: k=0:49;
s=cos(0.08*pi*k); stem(k,s,'g*'); hold on;
d=rand(1,50); stem(k,d,'b+'); hold on;
x=s+d; stem(k,x,'r'); hold on;
legend('s','d','x');
(2)均值滤波可以有效的去除叠加在低频信号上的噪声。已知3点滑动平均数字滤波器的单位脉冲响应为h[k]=[1,1,1;k=0,1,2],计算y[k]=x[k]*h[k],在同一张图上绘出前50点y[k]、s[k]和x[k]的波形,比较序列y[k]和s[k]。
解: k=0:49;
s=cos(0.08*pi*k); stem(k,s,'g*'); hold on;
d=rand(1,50);
x=s+d; stem(k,x,'r'); hold on;
k=0,1,2; h=[1,1,1]; y=conv(x,h);
k=0:51; stem(k,y,'b+'); hold on;
legend('s','x','y');
五、思考题:
1. 两个连续信号的卷积定义是什么?两个序列的卷积定义是什么?卷积的作用是什么?conv函数只输出了卷积结果,没有输出对应的时间向量,如何使时间向量和卷积结果对应起来?
解: 连续信号卷积定义是 y(t)=x(t)*h(t)= ,两个序列的卷积定义是 y[k]=.
把信号分解成冲激信号(单位脉冲)之和,借助系统的冲激响应好h(t)(单位脉冲响应h[k]),求系统的零状态响应。
卷积结果是y(t)的起点是x(t)与h(t)的起点之和,y(t)的终点是x(t)与h(t)的终点之和。
3. 产生连续信号时,首先要定义时间向量t = 0:T:Tp。 其中T和Tp是什么意思?
解: T表示步长,Tp表示向量终点。