《数字信号课程设计报告--基于DSP的数字信号发生器.docx》由会员分享,可在线阅读,更多相关《数字信号课程设计报告--基于DSP的数字信号发生器.docx(16页珍藏版)》请在第一文库网上搜索。
1、数字信号课程设计课题:基于DSP的数字信号发生器目录摘要2引言2一、课程设计的任务3二、课程设计原理32.1 设计原理32.2 波形的实现4三课程设计过程63.1 GU1界面的设计63.2 MAT1AB编程7四、课程设计实验结果及存在问题84.1 输出波形84.2 存在问题10五、课程设计心得115.1小组总结115.2组员总结12附录:13参考文献17摘要数字信号处理器(DSP)是在模拟信号变成数字信号以后进行高速实时处理的专业处理器,是一种基于软硬件结合实现的函数波形产生仪器,它在工程分析和实验教学中有着广泛应用。MAT1AB是一个数据分析和处理功能十分强大的工程实用软件,它的数据采集工具
2、箱为实现数据的输入和输出提供了十分方便的函数和命令。针对设计,采用了一种以MAT1AB软件制作GUI界面为仿真平台的实验,本课程设计介绍了周期性正弦波、方波、三角波、锯齿波、脉冲信号产生的算法。首先介绍了信号的产生原理,接着详细阐述系统的设计,最后通过实验生成波形。结合原理,应用MAT1AB软件编程完成了这些信号发生器的设计。引言随着现代科学技术的发展,工程中越来越多的工作需要借助计算机来实现,信号发生器原本是模拟电子技术发展的产物,到后来的数字信号发生器可以通过软件来实现,本课程设计将给出通过计算机软件仿真技术实现数字信号发生器的功能。信号发生器是一种常用的信号源,广泛应用于电子技术实验、自
3、控系统和科学研究等领域。然而以Mat1ab为代表的软件的出现,轻松地用软件仿真技术解决了这些问题。一、课程设计的任务课程设计题目:基于DSP的数字信号发生器主要内容:设计数字信号发生器,能够根据需要产生一定频率范围,一定振幅,相位可调节的特定信号波形,并显示及保存。设计要求:1、能产生周期性正弦波、方波、三角波、锯齿波以及用户自己编辑的特定波形;2、输出信号的频率范围为IoOHZ200Hz,且输出频率可以调节;3、输出振幅和相位可以调节;4、(提高部分)波形能保存,能实时调节显示;5、编制DU1用户界面;6、(提高部分)其他功能自由发挥;7、按要求完成设计报告。主要仪器设备:计算机,MAT1A
4、B仿真软件二、课程设计原理2.1设计原理通常的数字信号发生器一般可产生正弦信号、方波信号、三角波信号、锯齿波信号等。此时的数字信号又可称为离散信号,即时间为离散变量的信号。它只在离散时间上给出函数值,是时间上不连续的“序列”。离散时间的间隔是均匀的,以At表示。At的值有信号的采样率fs决定。为保证采样后信号能真实的保留原始模拟信号信息,信号采样频率必须至少为原信号中最高频率成分的2倍。这是采样的基本法则,称为采样定理。MAT1AB程序提供了常用的各种基本信号的生成函数。我们设计模拟的信号自己使用了MAT1AB提供的函数,为了模拟信号发生器的设置,设计也将常用的信号的副职、频率、相位设计成可调
5、节的。2.2波形的实现正弦信号的实现正弦波信号的数字表达式如下所示:y=Asin(2ft+)其中:A为幅值;f为频率;。为相位。在MAT1AB中,将时间变量离散化并构成一个意味数组,如下式所示:t=(2)其中:fs为采样频率。相应的正弦波信号的而数字信号表达式如下表示:y(nt=Asin(2fkt+)(3)幅值、频率、相位参数可以由用户界面上的滑动条或编辑框输入。在分别得到t和y的离散值后,用PIot作图函数即可获得波形显示。方波信号的实现在MAT1AB中,可以用SqUare函数自己生成一个方波信号,其函数原型为y=square(t,duty),该函数可生成一个周期为2,峰值为1,占空比为du
6、ty的方波,duty的默认值为50%o利用该函数,可得到幅值、频率、相位可调的方波信号函数如下:y=ASqIIe1reQ兀f1+)(4)(3)三角波信号的实现在MAT1AB中,可以用sawtooth函数直接生成一个三角波信号,其函数原型为y=sawtooth(t,width),该函数可生成一个周期为2几,峰值为1,最大值出现在2几Xwidth位置的三角波。利用该函数,可得到幅值、频率、相位可调的三角波信号函数如下:y=Asawtooth(2ft+,0.5)(5)(4)锯齿波信号的实现将式(3)中sawtooth函数中的width参数值设为1即可得到锯齿波。利用该函数得到的幅值、频率、相位可调的
7、锯齿波信号函数如下:y=Asawtooth(2ft+0,1)(6)(5)脉冲信号的实现考虑到脉冲信号与方波信号波形相似,所以以方波信号函数SqUare函数为基础,将y=square(t,duty)函数值力口1,即可得到最大值为2,最小值为。的脉冲波形,原函数的duty参数可以用来调节脉冲的宽度。利用该函数,得到的幅值、频率、相位可调的脉冲信号函数如下:y=A(square(2ft+,1)+1)/2(7)三、课程设计过程3.1GU1界面的设计首先打开MAT1AB,在命令窗口中输入guide命令进入GUI图形设计界面。再新建一个空白的图形界面文件,添加如下的控制键并设计题目的布局。(1)添加1个a
8、xes控件,用于显示波形;(2)添加4个StatiCtext控件,用于窗口及其他控件的说明和使用;(3)添加3个PaneI控件,将一组相关的控件框放在一起;(4)添加3个S1ider控件,用于输入信号的幅值、频率、相位参数值;(5)添加3个edittext控件,用于显示SIider滚动出的幅值、频率、相位的参数值;(6)添加6个PUShbUtton控件,5个用于控制输出的5种相应波形,1个用于控制开关的按钮。双击各个控件,打开其属性编辑窗,根据自己的需求可修改其名称、颜色、大小、初始值及位置等属性。最终编辑好的界面如下图:3.2MAT1AB编程当界面控件及布局创建完成以后,点击运行即可自动生成
9、包含各控件回调函数在内的文件。MAT1AB对于输入框,按钮及滑动条等控件的响应都是通过自动调用相应的回调函数来实现的。回调函数是在一定的操作下自动执行的指令代码。信号发生器相关的控件有幅值、频率和相位的输入控件,滑动条和编辑框,显示对应波形的按钮以及放大和缩小显示图形的按钮。以下是5种波形发生器的编程,程序见附录。四、课程设计实验结果及存在问题4.1输出波形正弦波文件)编辑(K)视图9插入(1)格式IU)工具表格)窗口也)帮助Qf)(2)方波新建MicrosoftWord文裆.doc-MicrosoftWord(3)三角波(4)锯齿波(5)脉冲信号Editor-D:DocumentsandSe
10、ttingsAdministrator桌面课程设计kuntiHedGUI.m4.2存在问题由于之前只用过C和C+语言进行程序设计,对MAT1AB比较陌生。这次是初次使用MAT1AB中的GUI模块,在用MAT1AB语言进行程序设计的过程中遇到很多问题,查阅了很多资料后,得到解决。设计过程中遇到的主要问题有:(1)对MAT1AB中的GU1界面不熟悉,造成了一些错误。比如:运行后滚动条消失,经查阅资料后,找到原因所在,初值设置应从0开始。(2)由于对MAT1AB的语法及其函数不熟悉,导致我们的一些编程无法用MAT1AB语言实现,只好换一种思路,应用MAT1AB语言,加入波形计算公式进行调试,才得出波
11、形。(3)在进行GU1界面设计时,由于安装MAT1AB的版本不同,导致很多按键找不到,花费了很多时间。(4)输出三角波失真:由于输出波形的坐标没有随频率的变化而变化,导致在频率变化时波形失真。经过小组讨论出其解决方法是:在编程时,公式时间t处加入频率f,使得t随频率变化而变化。(5)一开始没有做实时调节的功能,需要每次通过按钮才能改变波形。后来通过按钮设置全局变量作为标记,然后通过滑动滚动条来获取标记,再根据IF语句判断标记,识别不同波形,根据不同波形的公式进而调节波形。因此实现了实时调节的功能。就可以直接通过滚动条来调节波形的变化。五、课程设计心得5.1小组总结一周的课程设计结束了,这一周对
12、于我们来说收获真的不少。运用DSP进行简单的数字信号处理,老师给了我们任务,按照题目要求,查阅资料,每一步开始一点一滴做起。一开始进度很慢,因为在没有复习的情况下自己了解的东西太少,于是我们开始有重点的学习,在脑中形成对于DSP德整个体系,学习GU1界面制作,逐个击破。我们还利用课余时间赶进度,发现当有目标的时候学习东西真的很快,原本什么都不会,经过一个星期的课程设计,大家都可以清晰地知道各个的流程及原理,并会自己编写一些效果出来,虽然还有一些细节需要改进。看着一起的成果,在设计过程中每一次面对困难又解决的而快乐。不管时怎么样的结果,至少自己真正努力过,就不会一遗憾,一周,我们一直抱着这样的信
13、念坚持到最后一刻。一分耕耘一分收获,这是一个亘古不变的道理,努力总会有收获。然而这次课程设计也让我们深刻的体会到了书到用时方恨少,平时不用功,关键时刻才来后悔平时没有好好念书。所以在今后的学习和生活中,一定要多学、多问,然后总结出自己的一套学习方法。止匕外,在设计过程中,由于我们组员对MAT1AB软件不熟悉,同学和老师给予了我们指导,在此一并感谢。5.2组员总结刘羽:这次的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我们如何去把握一件事情,如何去动手做一件事情,又如何思考并完成一件事情。在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。学会了合作,学会
14、了宽容,学会了理解,也学会了做人与处世的道理。体会到了团结的力量。赵锐锐:课程设计是我们专业课程知识综合应用的实践训练,也是我们迈向社会,从事职业工作前一个必不少的过程.“千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义.我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础。王可可:通过这次的课程设计,明白自己本身还存在很多的不足。比如对mat1ab仿真的掌握不熟悉,一些基本操作有的不会,刚开始运行出错找不到在哪,随着多次的修改运行,最后对这个mat1ab的仿真软件了解的比以前更多一些。现在能找错在哪,并加以改正。还有就是从
15、小组的讨论中收获到了很多,因为大家掌握的侧重点不一样,想到的解决方法也就不一样,可以供小组成员参考,彼此之间可以取长补短。我觉得自己在加强基础知识的同时,还要多动手去实践,在实践中发现问题并解决问题。这也为以后的课程设计及毕业设计打好坚实的基础。林鑫:这次课程设计我们培养了团队精神,一起实验一起讨论。在课程设计过程中,我们不断发现错误,不断改正,感到了解决问题后的高兴。使我们懂得了理论与实践结合的重要性,在实践中认识到自己的不足,不断学习和进步。吴敏栋:通过这次课程设计,我体会到了实践是检验真理的唯一标准。在实验中,我从一无所知到懵懵懂懂再到大概了解,让我明白了在学习中成长,在学习中学习。学习就要去尝试,不要总觉得自己不会自己不懂。陈宝强:这次的课程设计将要结束了。在这次的学习中,我学到了很多,也找到了自己身上的不足,感受良多,获益匪浅,同时也深深的体会到了团队合作的重要性,正所谓独木不成舟,独树不成林。附录:波形程序(1)正弦波%EXCUtSonbuttonPrSSinpushbutton1.functionPUShbUttOn1_Ca11back(hbjct,