数字信号处理设计报告.doc
《数字信号处理设计报告.doc》由会员分享,可在线阅读,更多相关《数字信号处理设计报告.doc(46页珍藏版)》请在沃文网上搜索。
1、 目录1信号课程设计内容、目的31.1课程设计的内容、目的1.2课程设计程序语言的选用2课程设计5 2.1课程设计原理2.2课程设计结构图2.3程序运行及分析3调试及结果讨论323.1调试出现的问题3.2讨论分析结果4课程设计心得体会335参考资料336.附录34信号课程设计报告1.信号课程设计内容、目的1.1 课程设计的内容及目的开学初,鉴于上学期的信号处理课程的学习,学院安排了为期两周的信号课程设计。此次课程设计的目的是:1全面复习课程所学理论知识,巩固所学知识重点和难点,将理论与实践很好地结合起来。2提高综合运用所学知识独立分析和解决问题的能力。3熟练使用一种高级语言进行编程实现。 课程
2、设计的内容包括下几个大块:(一)信号分析1编制信号生成程序,产生下述各序列,绘出它们的时域波形,其中包括:单位抽样序列、矩形序列、三角波序列、反三角波序列、Gaussian(高斯)序列、正弦序列、衰减正弦序列。2. 对上述信号完成下列信号分析1)对三角波序列和反三角波序列,作N=8点的FFT,观察比较它们的幅频特性,说明它们有什么异同?绘出两序列及其它们的幅频特性曲线。在和的尾部补零,作N=16点的FFT,观察它们的幅频特性发生了什么变化?分析说明原因。2)观察高斯序列,固定信号中的参数p=8,令q分别等于2,4,8,观察它们的时域和幅频特性,了解当q取不同值时,对信号序列的时域幅频特性的影响
3、;固定q=8,令p分别等于8,13,14,观察参数p变化对信号序列的时域及幅频特性的影响,观察p等于多少时,会发生明显的泄漏现象,混叠是否也随之出现?记录实验中观察到的现象,绘出相应的时域序列和幅频特性曲线。3)对于正弦序列,取数据长度N分别等于8,16,32,分别作N点FFT,观察它们的的时域和幅频特性,说明它们的差别 ,简要说明原因。4)观察衰减正弦序列的时域和幅频特性,绘出幅频特性曲线,改变采样频率fs,使fs=300Hz, 观察此时的频谱的形状和谱峰出现位置?说明产生现象的原因。3设有一连续时间信号s(t),其由20Hz、220Hz和750Hz的正弦信号叠加而成,分析确定采样频率及数据
4、分析长度,计算并绘出信号的频谱,指出各个频率份量。 (二)、数字滤波器的设计与实现设计和实现IIR或FIR数字滤波器:要求:输入数字滤波器的滤波指标,包括通带截止频率,通带最大衰减,阻带截止频率,阻带最小衰减。设计出相应的数字滤波器。显示得到的滤波器的系数和阶数,求出系统的单位脉冲响应h(n)。并画出设计得到的滤波器的幅频特性图(要有坐标标度)和相频特性。 1对于IIR数字滤波器:使用双线性变换法。可选用BW型、CB型和椭圆型等滤波器类型来进行设计2对于FIR数字滤波器:要对多种窗口(三种及以上)、不同阶数设计结果进行分析比较。(三)、综合应用对于给出的任意一段语音信号,进行分析处理。1.读出
5、语音信号,并显示语音信号的时域波形,然后对读出的信号进行FFT变换,得到信号的频谱特性。2.分析其频谱特性,应用设计的滤波器将主要的频率分量分离出来。3.回放此语音信号,感觉滤波前后的声音有什么变化1.2课程设计程序语言的选用本次信号课程设计要求使用一门高级计算机语言来编程,鉴于在许多高等院校,Matlab已经成为许多课程的基本教学工具,我们指导老师就要求我们使用Matlab来实现这次的课程设计。在开始设计之前,我们先要对matlab有一番的认识。Matlab自1984年由MathsWorks公司推向市场以来,历经20多年的发展和竞争,现已风靡世界。在科研与工程应用领域,Matlab已被广泛的
6、应用于科学研究和解决各种具体的实际问题。可靠的数值计算和符号计算功能、强大的绘图功能、简单易学的语言体系以及为数众多的应用工具箱是Matlab区别于其他科技应用软件的显著标志。1. 数值计算和符号计算功能Matlab以矩阵作为数据操作的基本单位,这使得矩阵计算变得非常简洁、方便、高效。Matlab还提供了十分丰富的数值计算函数,而且采用的数值计算算法都是国际公认的最先进、可靠的算法,其程序由世界一流专家编制和高度优化。2. 绘图功能利用Matlab绘图十分方便,它既可以绘制各种图形,包括二维图形和三维图形,还可以对图形进行修饰和控制,以增强图形的表现效果。Matlab提供了两个层次的绘图操作:
7、一种是对图形句柄进行的低层操作,另一种是建立在低层操作之上的高层绘图操作。3. 语言体系Matlab具有程序结构控制、函数调用、数据结构、输入/输出等程序语言特征。因此,对于从事数值计算、计算机辅助设计和系统仿真等领域的人员来说,用Matlab编程的确是一个理想选择。4. Matlab工具箱Matlab工具箱包含两部分内容:基本部分和各种可选的工具箱。Matlab工具箱分为两大类:功能性工具箱和学科性工具箱。功能性工具箱主要用来扩充其符号计算功能、可视建模仿真功能及文字处理功能等。学科性工具箱专业性比较强,如控制系统工具箱、信号处理工具箱、神经网络工具箱、最优化工具箱等,这些工具箱都是由该领域
8、内学术水平很高的专家编写的,用户可以直接利用这些工具箱进行相关领域的科学研究。2.课程设计2.1课程设计原理根据课程设计的目的和要求,指导老师要求我们使用Matlab语言。在课程设计分析,我们可以使用Matlab的工具箱来实现课程设计所要求的内容。在命令窗口中输入Guide,然后出现界面操作。截图如下所示:然后通过switch语句来实现不同功能函数之间的转换,来实现设计要求。在这次的设计中,包括各种序列函数、序列分析函数、滤波器设计函数等,通过一个主菜单选择所要的操作,编写的程序根据你的选择执行对应的操作。序列分析函数可以使用序列的函数表达式来编写程序,序列分析函数多是通过对已知序列进行傅里叶
9、变换来进行幅频分析,滤波器的部分通过各种不同滤波器的函数来实现,例如巴特沃思滤波器可以通过buttord函数来实现巴特沃思数字滤波器的设计,切比雪夫滤波器通过cheb1ord函数等。2.2课程设计结构图选择操作序列单位脉冲序列矩形脉冲序列三角波序列反三角波序列高斯序列正弦序列衰减正弦序列序列分析下拉菜单滤波器设计巴特沃思滤波器切比雪夫滤波器椭圆滤波器语音信号分析2.3程序运行及分析总菜单菜单界面,只要选择想要的操作,就可以之间调用程序中的编码,执行要求。单位抽样序列单位抽样序列的程序如下所示:n=1:50; x=zeros(1,50); x(1)=1;stem(n,x,.);title(x1)
10、;xlabel(n);ylabel(x(n);这个程序编码中,取单位抽样序列的长度为50,n=1:50表示n的取值从1到50,而且之间间隔都是一个单位长度(即为1)。用zeros语句来实现赋零值,zeros函数是产生一个零矩阵。然后只对x=1时赋1值(注意:MATLAB中数组下标从1开始)。矩形序列矩形序列的程序编码如下所示:n=1:50;x=sign(sign(10-n)+1);stem(n,x,.);title(x2);xlabel(n);ylabel(x(n)自行定义序列长度为50个单位,n=1:50表示n的取值从1到50,而且之间间隔都是一个单位长度(即为1)。这个程序中sign函数实
11、现。三角波序列三角波序列的程序编码如下所示:n1=0:3;x1=n1+1;n2=4:7;x2=8-n2;n=n1 n2x=x1 x2stem(n,x,.);title(x3);xlabel(n);ylabel(x(n);text(1,2.5,x=n+1);text(6,2.2,x=8-n);三角波序列是分段序列,程序中n的取值从0到7,其中一段由0到3,另外一段由4到7,两段分别由不同的表达式,这段编码使用stem函数来实现绘图的功能。还有,使用title、xlabel、ylabel、text等函数对图形进行标注。反三角波序列反三角波序列的程序如下所示:n1=0:3;x1=4-n1;n2=4:
12、7;x2=n2-3;n=n1 n2;x=x1 x2;stem(n,x,.);title(x4);xlabel(n);ylabel(x(n);text(2,2.2,x=4-n);text(5,2.2,x=n-3);和三角波序列的程序一样,反三角波序列也是分段序列,同样分成0到3和4到7两段,两段有不同的算术表达式。同样的,程序中也调用stem、title、text等函数,功能和三角波序列的程序中一样。高斯序列高斯序列的程序如下所示:n=0:15; p=8;q=2;x=exp(-1*(n-p).2/q);stem(n,x,.);title(x5);xlabel(n);ylabel(x(n);tex
13、t(11,0.4,x=exp(-1*(n-8).2/2);高斯序列在编程时自行定义序列长度为16,而且确定p=8,q=2,然后输入高斯序列的表达式x=exp(-1*(n-p).2/q)。同样的,该程序也调用了stem等函数。正弦序列正弦序列的程序如下所示:fs=64;N=16;n=0:N-1;x=sin(n*pi/4);stem(n,x,.);title(x6);xlabel(n);ylabel(x(n);text(11,0.8,x=sin(16*pi*n);取fs=64Hz,N=16。那么n的取值是从0到N-1。调用text函数进行图形标注。衰减正弦序列衰减正弦序列程序如下所示:n=0:15
14、; a=0.1;f=0.0625;x=50*exp(-a*n).*sin(2*pi*f*n); stem(n,x,.);title(x7);xlabel(n);ylabel(x(n);text(9,10,x=50*exp(-a*n).*sin(2*pi*f*n);题目中取A=50,采样周期T=1ms,即fs=1000Hz,f0=62.5,a=100。本程序中去序列长度为16,n的取值从0到15.同时调用text函数进行标注。三角波与反三角波的幅频特性这步幅频特性的程序如下所示:n1=0:3;x1=n1+1n2=4:7;x2=8-n2;n=n1 n2;x=x1 x2m1=0:3;y1=4-m1m
15、2=4:7;y2=m2-3;m=m1 m2;y=y1 y2subplot(4,2,3);stem(n,x,.);title(三角波序列x3);xlabel(n);ylabel(x(n);subplot(4,2,5);stem(abs(fft(x,8),.);title(三角波FFT(N=8);xlabel(n);ylabel(幅度值);subplot(4,2,7);stem(abs(fft(x,16),.);title(三角波FFT(N=16)xlabel(n);ylabel(幅度值);subplot(4,2,4);stem(m,y,.);title(反三角波序列x4);xlabel(n);y
16、label(x(n);subplot(4,2,6);stem(abs(fft(y,8),.);title(反三角波FFT(N=8);xlabel(n);ylabel(幅度值);subplot(4,2,8);stem(abs(fft(y,16),.);title(反三角波FFT(N=16);xlabel(n);ylabel(幅度值);如截图所示,程序中实现的功能包含了不同N值(8,16,20)的时域图以及相对应的幅频分析图。利用subplot函数实现图形的分区显示,subplot(m,n,p)函数将当前图形窗口分成m*n个绘图区,即m行,每行n个绘图区,区号按行优先编号,且选定第p个区为当前活动
17、区。在每一个绘图区允许以不同的坐标系单独绘制图形。Matlab提供了对向量或直接对矩阵进行离散傅里叶变换的函数。在这段程序中调用了fft(x,N)函数计算N点离散傅里叶变换。它是限定向量的长度为N,若x的长度小于N,则不足部分补上0;若大于N,则删去超出N的那些元素。观察演示图形,三角波序列和反三角波序列的8点傅里叶变换图形相同,但N=16时,二者就出现了不同。其中的过程大致如下:序列傅里叶变换将x(n)进行周期延拓,得到周期为N的周期序列,对周期序列进行DFS变换,取其主值序列。P=8,q取不同值的时域和幅频特性这段程序如下所示:n=0:15; x1=exp(-1*(n-8).2/2);x2
18、=exp(-1*(n-8).2/4);x3=exp(-1*(n-8).2/8);subplot(4,2,3);stem(n,x1,.);title(x5(p=8,q=2);xlabel(n);ylabel(x(n);subplot(4,2,4);stem(abs(fft(x1),.);title(FFT(p=8,q=2); xlabel(n);ylabel(幅度值);subplot(4,2,5);stem(n,x2,.);title(x5(p=8,q=4);subplot(4,2,6);stem(abs(fft(x2),.); title(FFT(p=8,q=4);xlabel(n);ylab
19、el(幅度值);subplot(4,2,7); stem(n,x3,.);title(x5(p=8,q=8);xlabel(n);ylabel(x(n);subplot(4,2,8);stem(abs(fft(x3),.);title(FFT(p=8,q=8);xlabel(n);ylabel(幅度值);如截图所示,当q取不同的值时的时域图以及幅频特性图。通过stem和subplot函数进行图形的显示。利用fft函数对高斯序列进行离散傅里叶变换,从而进行幅频分析。通过比较,当固定p=8,而q在取不同值时它们的时域和幅频图形是不一样,q=8,p取不同值时的时域和幅频特性这段程序如下所示:n=0:
20、15;x1=exp(-1*(n-8).2/8);x2=exp(-1*(n-13).2/8);x3=exp(-1*(n-14).2/8);subplot(4,2,3);stem(n,x1,.);title(x5(p=8,q=8);xlabel(n);ylabel(x(n);subplot(4,2,4);stem(abs(fft(x1),.);title(FFT(p=8,q=8);xlabel(n);ylabel(幅度值);subplot(4,2,5);stem(n,x2,.);title(x5(p=13,q=8);subplot(4,2,6);stem(abs(fft(x2),.); title
21、(FFT(p=13,q=8);xlabel(n);ylabel(幅度值);subplot(4,2,7); stem(n,x3,.);title(x5(p=14,q=8);xlabel(n);ylabel(x(n);subplot(4,2,8);stem(abs(fft(x3),.);title(FFT(p=14,q=8);xlabel(n);ylabel(幅度值);如截图所示,当p取不同的值时的时域图以及幅频特性图。同样通过stem和subplot函数进行图形的显示。利用fft函数对高斯序列进行离散傅里叶变换,从而进行幅频分析。通过比较,当p=8,q=8时发生的泄露现象最明显。当p=14,q=
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字信号 处理 设计 报告