欢迎来到工作报告网!

信号与系统课程研究性学习报告

换届工作报告 时间:2020-08-26 07:19:21

 《信号与系统》课程研究性学习报告

 指导教师 薛健

 时间 2013.11

 信号与系统的时域分析专题研讨

 【目的】

 (1) 加深对信号与系统时域分析基本原理和方法的理解。

 (2) 学会利用MATLAB进行信号与系统的分析。

 (3) 培养学生自主学习能力,以及发现问题、分析问题和解决问题的能力。

 【研讨题目】 题目1 连续信号通过系统的响应

  一连续LTI系统满足的微分方程为

 ?3t,试求该系统的零状态响应已知。

 (1) )t)?eu(tx()y(tzs(2) 用lsim求出该系统的零状态响应的数值解。利用(1)所求得的结果,比较不同的抽样间隔对数值解精度的影响。

 (3)用命令

  [x,Fsam,bits] = wavread('Yourn');

 将硬盘上的语音文件Yourn.wav 读入计算机。用命令

  sound(x,Fsam);

 播放该语音信号;

 (4)用命令

  load model01

 将磁盘文件model01.mat读入计算机后,MATLAB的workspace中将会新增变量den和num。den表示微分方程左边的系数,变量num表示微分方程右边的系数。写出磁盘文件model01.mat定义的微分方程;

 (5)计算(3)中的信号通过(4)中系统的响应,播放系统输出的语音信号。与处理前的信号比较,信号有何不同?能用已学知识解释所得结果吗?

 【题目目的】

  1.学会用计算机求解信号通过系统响应;

  2.熟悉用Matlab处理语音信号的基本命令;

 【仿真结果】

 (1) 解出y=-2.5*exp(-3*t)+3*exp(-2*t)-0.5*exp(-t)

 【结果分析】

 由图可知,抽样间隔越小,精度越高。

 【仿真结果】

  )3(.

 杂音音频0.6

  0.40.20-0.2-0.4-0.-0.2111112 】【结果分析 可以听出与看出高频部分存在杂音。

 】【仿真结果 4)(>> Untitled3

 den=

 den= 1.309536e+04

 den= 7.076334e+08

 den= 6.939120e+12

 den= 1.396319e+17

 den= 8.396151e+20

 den= 5.648432e+24

 num= 3.162278e-03

 num= 9.235054e-14

 num= 1.649476e+07

 num= 3.566819e-04

 num= 1.646178e+16

 num= 1.058969e+05

 num= 4.486709e+24

 【仿真结果】

 (5)

 【结果分析】

 杂音部分被去掉,音乐恢复正常。该系统有去噪的效果相当于一个低通录波器,高频的噪声信号被滤去。

 【研讨题目】题目2 连续信号卷积积分的数值近似计算

  两个连续信号的卷积积分定义为

 xkxk hkhk?), ?[]=]=为(?),([为了能用数值方法进行计算,需对连续信号进行抽样。记进行数值计算所选定的抽样间隔,则可证明连续信号卷积积分可近似的表示为

  (1)

 ])h[k(?x[k]?)y(kΔ?Δ由式(1)可知,可以利用Matlab提供的conv函数近似计算连续信号的卷积积分。设xtututhtxtxt ,)(?)()=(,1)?(?)()=(

 ytxtht);(( (a)为了与近似计算的结果作比较,用解析法求出)(?)=(b)用不同的?计算出卷积积分的数值近似值,并与?a?中的理论结果进行比较;?(c)证明(1)式成立;

 ?tuttxtuthxtht),)=e)=,( (d)若)(,)和则用上面的方法进行近()不是时限信号,如(((似计算是否会遇到问题?若出现问题请分析出现问题的原因,并给出一种解决问题的方案;根据提出的方案完成近似计算卷积分的子程序;

 (e)卷积函数conv新选项的定义与应用研究

  在新版MATLAB中,卷积函数conv提供了选项conv(A, B,'valid' ),下面将研究conv(A, B,'valid' )的定义及应用。

 (1) 读MATLAB提供的关于conv的Help,给出卷积函数conv(A, B,'valid' )的定义。设计一些简单的实验,验证你给出的定义。你认为这样定义的卷积有何优缺点?

 (2)能否用conv(A, B,'valid' )完成conv(A, B )?请给出解释,编程验证你的观点。

 (3) 探索能否用conv(A, B,'valid' )解决(d) 中出现的问题?若行,请给出解决问题的方案及实验结果。若不行,请给出理由。

 (4)关于卷积conv(A, B,'valid' )的应用,你还有什么见解?欢迎发表新想法,胆要大,不要怕犯错。

 【题目目的】

  1.学会用计算机近似计算连续信号的卷积积分;

  2.分析在计算过程中出现的问题并提出解决方案;

 【题目分析】

 h(t)?x(t)*x(t)?u(t)*u(t)?u(t?1)*u(t?1)-2u(t)*u(t?1)?r(t)?r(t?2)-2r(t?1) (a)【仿真结果】

 绿线是间隔的结果,蓝线是间隔?结果,红线是实际结果,可见时间间隔越小,精确度越高。?(c)证明:

 【仿真结果】

 (d)

 【结果分析】

 卷积结果在t=10时刻发生突变,与实际结果不符,原因是t只取0-10这一范围,在大于10区域matlab默认信号为0,造成突变。

 解决方案,根据实际需要确定t的范围,取坐标时只显示有实际含义的范围内的曲线。

 【仿真结果】

 (2)

 【结果分析】

 计算卷积只会计算序列完全重合的部分,略去matlab对不重合部分默认置0对结果可能造成的影响。valid有一个显着缺点,卷积运算时,只会将B翻转与A,比较,而不会自动选择短的序列进行翻转,当B的长度大于A时,无法得出卷积结果。

  【仿真结果】

 (3)可以。若B的长度为n,则在A 后面添加n-1个0。

 (3b)在A前加n-1个0,使用valid

 比较 A,B长度,若B序列比A长就交换A,B序列,这样就可以算出卷积。

 可以编一个选择程序,(4).

 附录代码

 (2) t1=0:0.01:5; t2=0:0.1:5; t3=0:0.5:5; sys=tf([2 1],[1 3 2]); x1=exp(-3*t1); x2=exp(-3*t2); x3=exp(-3*t3);y1=lsim(sys,x1,t1); y2=lsim(sys,x2,t2); y3=lsim(sys,x3,t3);

  y=-2.5*exp(-3*t1)+3*exp(-2*t1)-0.5*exp(-t1); );'k''c',t1,y,'b',t2,y2,'r',t3,y3,plot(t1,y1, );,'dt=0.5'legend('dt=0.01','dt=0.1' );零状态响应'title(' );'y'xlabel('t');ylabel((3)

 [x,Fsam,bits] = wavread('Yourn')

 sound(x,Fsam)

 sl=length(x);

 t=(0:sl-1)/Fsam;

 wavwrite(x,Fsam,'yourns.wav');

 plot(t,x);

 title('杂音音频');

  (4)

 load model01

 fprintf('den= %s\n',den);

 fprintf('num= %s\n',num);

 (5)

 [x,Fsam,bits] = wavread('Yourn');

 load model01;

 sys = tf(num,den);

 t=linspace(0,20,220500)';

 y=lsim(sys,x,t);

 sound(y,Fsam);

 (b)

 t=0:0.1:5;

 t1=0:0.1:5;

 t2=0:0.01:5

 x1=[t1>=0]-[t1>=1];

 x2=[t2>=0]-[t2>=1];

 ht1=convn(x1,x1);

 y1=convn(x1,ht1);

 ht2=convn(x2,x2);

 y2=convn(x2,ht2);

 y=1/2*t.*t.*[t>=0]-3/2*(t-1).*(t-1).*[t>=1]+3/2*(t-2).*(t-2).*[t>=2]-1/2*(t-3).*(t-3).*[t>=3];

 N1=length(y1);

 N2=length(y2);

 plot(t,y,'r');

 plot((0:N2-1)*0.01,y2*0.01*0.01,'b');

 plot((0:N1-1)*0.1,y1*0.1*0.1,'g');

 axis([0 5 0 1]);

 (d)

 dt=0.01;

 t=0:dt:10;

 x=[t>=0];

 y=exp(-t).*[t>=0];

 y1=convn(x,y);

 L=length(y1);

 plot((0:L-1)*dt,y1*dt*dt);

 (2)

 y=[1 1 1];

 x=[0 1 1 1 1 0];

 z=conv(x,y);

 z1=conv(x,y,'valid');

 a=length(z);

 a1=length(z1);

 t=0:a-1;

 t1=0:a1-1;

 subplot(211)

 stem(t,z);

 axis([-1 8 -1 6]);

 subplot(212)

 stem(t1,z1);

 axis([-1 8 -1 6])

 title('h(t)=y*x');

 (3)

 y=[1 1 1];

 x=[0 1 1 1 1 0];

 n=length(y);

 x1=[zeros(1,n-1),x,zeros(1,n-1)];

 z=conv(x1,y,'valid')

 a=length(z);

 t=0:a-1;

 stem(t,z);

 axis([-1 8 -1 6]);

 (3)

 y=[1 1 1];

 x=[0 1 1 1 1 0];

 n=length(y);

 x1=[zeros(1,n-1),x,zeros(1,n-1)];

 z=conv(x1,y,'valid')

 a=length(z);

 t=0:a-1;

 stem(t,z);

 axis([-1 8 -1 6]);

 title('h(t)=y*x');

 (3b)

 dt=0.01;

 t=0:dt:10;

 x=1.*[t>=0];

 y=exp(-t).*[t>=0];

 L1=length(x);

 a=zeros(1,L1);

 x=[a,x];

 y1=conv(x,y,'valid');

 L=length(y1);

 plot((0:L-1)*dt,y1*dt*dt);

 title('h(t)=y*x');

推荐访问:学习报告 研究性学习 信号 课程

热门文章