资源描述:
《基于matlab信号的分析与处理》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、可编辑版目录摘要21设计目的32设计要求33设计内容33.1理论依据33.2信号的产生43.3信号的采样及频谱分析5(1)低频连续信号5(2)中频连续信号6(3)高频连续信号8(4)连续信号93.4滤波器的设计及信号处理11(1)低通滤波11(2)带通滤波13(3)高通滤波143.5结果分析16总结与致谢17参考文献18Word完美格式可编辑版摘要随着信息时代和数字世界的到来,数字信号处理的理论与应用得到了飞跃式的发展,并且,数字信号处理以其灵活性、高精度和高稳定性、便于大规模形成等特点,形成了一门极其重
2、要的学科。因而受到了人们的重视。本文利用MATLAB软件首先产生低频、中频、高频三种频率信号,然后将三种信号合成为连续信号,对连续周期信号抽样、频率分析,并设计低通、、带通、高通三种滤波器对信号滤波,观察滤出的信号与原信号的关系,并分析误差的产生,通过数字信号处理课程的理论知识的综合运用。从时间上初步实现对数字信号的处理。关键词:信号分析;数字信号;连续信号;MATLABWord完美格式可编辑版1设计目的通过此次课程设计,我们能够学会如何综合运用在数字信号处理课本上的巴特沃斯滤波器、信号的产生、对连续信号
3、采样及产生幅频特性和相频特性等知识,并把这些知识运用于实践当中,使所学知识在综合运用能力上以及分析问题、解决问题能力上得到进一步的发展,让自己对这些知识有更深的了解。通过课程设计培养严谨的科学态度,认真的工作作风和团队协作精神。2设计要求产生一个连续信号,包含低频、中频、高频分量,对其进行采样,进行频谱分析,分别设计三种高通、低通、带通滤波器对信号进行滤波处理,观察滤波后的频谱。3设计内容3.1理论依据理论上信号的采样要符合奈奎斯特采样定律,就是采样频率要高一点,一般为被采信号最高频率的2倍,只有这样,才
4、能保证频域不混叠,也就是采样出来数字信号中包含了被采信号的所有信息,而且没有引入干扰。这就是信号的时域采样。 频谱分析是指对信号进行频域谱的分析,观察其频域的各个分量的功率大小,其理论基础是傅立叶变换,现在一般采用数字的方法,也就是将时域信号数字化后做FFT,可以得到频域的波形。 Word完美格式可编辑版数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域滤波的目的。可以设计系统的频率响应,让它满足一定的要求,从而对通过该系统的信号的某些特定的频率成分进行过滤,这就是滤波器
5、的基本原理。如果系统是一个连续系统,则滤波器称为模拟滤波器。如果系统是一个离散系统,则滤波器称为数字滤波器。 IIR数字滤波器的设计步骤:(1)按照一定规则把给定的滤波器技术指标转换为模拟低通滤波器的技术指标; (2)根据模拟滤波器技术指标设计为响应的模拟低通滤波器; (3)很据脉冲响应不变法和双线性不变法把模拟滤波器转换为数字滤波器; (4)如果要设计的滤波器是高通、带通或带阻滤波器,则首先把它们的技术指标转化为模拟低通滤波器的技术指标,设计为数字低通滤波器,最后通过频率转换的方法来得到所要的滤波器。
6、 本课程设计设计思想:首先利用MATLAB分别产生低频中频高频信号,然后进行叠加得到连续时间信号;对所产生的连续时间信号进行采样,得到数字信号;对信号进行FFT频谱分析,绘制其频谱图;根据信号频谱分析的结果,分别设计高通,低通,带通滤波器,得到滤波器的幅频及相频特性。3.2信号的产生f1=30;f2=350;f3=850;t=(1:120)/2800;x1=sin(2*pi*f1*t);x2=sin(2*pi*f2*t);x3=sin(2*pi*f3*t);xt=x1+x2+x3;figure(1);su
7、bplot(2,2,1);plot(x1);gridon;axis([0100-1.21.2]);line([0,100],[0,0]);%画横坐标轴线xlabel('t/2800');ylabel('x1(t)');title('(a)低频分量');figure(1);subplot(2,2,2);plot(x2);gridon;axis([0100-1.21.2]);line([0,100],[0,0]);xlabel('t/2800');ylabel('x2(t)');title('(b)中频分量'
8、);figure(1);subplot(2,2,3);plot(x3);gridon;axis([0100-1.21.2]);line([0,100],[0,0]);xlabel('t/2800');ylabel('x3(t)');title('(c)高频分量');Word完美格式可编辑版figure(1);subplot(2,2,4);plot(xt);gridon;axis([0100-3.23.2]);line([0,1