ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:345.07KB ,
资源ID:6577282      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6577282.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(DSP编程与Visual DSP++入门.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

DSP编程与Visual DSP++入门.docx

1、DSP编程与Visual DSP+入门实验一DSP编程与Visual DSP+入门一、实验内容本次实验内容主要有四个部分:练习一:启动VisualDSP+,建立一个用C源代码的工程(Project),同时用调试器来评估用C语言所编写代码的性能;练习二:创立一个新的工程,修改源码来调用一个汇编(asm)程序,重新编译工程,用调试器来评估用汇编语言所写程序的性能并与C语言程序作比较;练习三:利用调试器的绘图(plot)功能来图形显示一个卷积算法中的有关数据的波形;练习四:利用调试器的性能统计功能(Statistical profile统计剖析)来检查练习三中卷积算法的效率。利用所收集到的性能统计数

2、据就能看出算法中最耗时的地方。二、实验步骤1. 练习一进入VisualDSP+开发环境,选择菜单File中Open 打开文件G:Program FilesAnalog DevicesVisualDSP 5.1worktest1DSP_expunit_1DotProductCDotProductC.dpj。DotProductC工程中有3个文件,定义数组和计算数组点积和的两个C语言源文件dotprod_main.C(主程序)、DOTPROD.c(子程序)以及一个描述程序和数据存储位置的链接描述文件DOTPRODC.LDF。在菜单 Project中选择Build Project来对工程进行编译。输

3、出窗口显示程序编译时的各种状态信息(包括出错和编译进程信息)。当编译检测到错误时,输出窗口出现相应的出错信息,打开对应的源文件进行修改,保存并再次进行编译。当编译不再有错时,输出窗口将显示“Build completed successfully”。编译成功后进入Debug界面,初次进入Debug需要设置session,其设置步骤如图1.1和图1.2所示,按图中步骤设置完毕后,点击next,再点finish即可。如果不是第一次进入Debug,不会出现session的设置,会默认之前的设置,这是如果要更换处理器的类型可以在session选项中选择new session来设置。图1.1 sessi

4、on界面设置步骤1图1.2 session界面设置步骤2完成上述步骤后,在debug菜单中选择run,可以在console窗口中看到运行结果。下面对程序中的各个函数进行性能的分析,在进入debug没有运行程序之前,选 ToolsLinear ProfileNew Profiling命令,会在反汇编窗口上方出现一个小窗口如图1.3,窗口可以拖动放大。图1.3 linear profiling窗口在窗口空白处右击,选properties,点filter中的C/C+ function,点击add,将3个子函数和主函数都加进去如图1.5所示:图1.5 剖析窗口的设置窗口设置好后点确定,运行程序,得到分

5、析结果。2. 练习二关闭DotProductC工程,fileopenproject,选择路径G:Program FilesAnalog DevicesVisualDSP 5.1worktest1DSP_expunit_1DotProductASMDotProductASM.dpj。如果需要对工程选用的处理器等做修改,在project窗口右击当前工程,选择project options,进行相应的设置如图1.6所示。图1.6 project选项卡设置在对话框中打开Compile选项卡点General,选中“Enable optimization”,“Generate debug informat

6、ion”这一项默认已选,系统将自动生成针对ADSP-21161的优化代码,如图1.7所示:图1.7 Compile 选项卡设置编译工程,主程序与练习一相比有两个地方被改动了:extern double a_dot_b( double pm *, double * );/*extern double a_dot_c( double pm *, double * );*/extern double a_dot_c_asm( double pm *, double * ); extern double a_dot_d( double pm *, double * );result0 = a_dot_

7、b( a, b );/* result1 = a_dot_c( a, c );*/ result1 = a_dot_c_asm( a, c );result2 = a_dot_d( a, d );上面两段程序中绿色的是练习一中的主程序用的语句,练习二的主程序则用的是标红的语句,从语句中可以看到练习二用汇编语言重新写了a数组和c数组的点乘,并在后面调用了这个汇编程序。实现了在C语言中调用汇编语言程序,同样也可以分析其性能。对工程进行编译,右击练习一中建的linear profiling窗口的空白处,选择clear profile,将之前的性能分析清除掉,再右击:propertiesfilterC

8、/C+ function,将之前添加的函数选中,点remove,再点add,5个文件中只有a_dot_c不选,用a_dot_c_asm代替它,如图1.8所示图1.8 添加待分析的函数设置完成后运行程序,在console窗口得到运行结果,同时在性能分析窗口看到函数的性能分析结果。3. 练习三关闭DotProductASM工程,fileopenproject,选择路径G:Program FilesAnalog DevicesVisualDSP 5.1worktest1DSP_expunit_1Convolution Convolution.dpj。编译工程,编译成功后,会在工程的debug文件中生

9、成可执行文件Convolution.dxe。将工程关闭,fileload program,找到Convolution工程文件夹下的debug文件夹下的可执行文件Convolution.dxe打开,工程进入debug界面,运行程序后,在console窗口并没有输出结果,我们的得到的计算结果都存储在4个数组当中,为了看清运行结果,下面将数据以图形的形式展现出来。选择菜单 ViewDebug WindowsPlotNew项,将出现Plot参数设置窗口。在 Plot Type项中选择Line Plot,在Plot Title中输入Convolution。其它参数设定如表1-1所示:NameAddres

10、sCountDataTableTable360floatInputInput360floatOutputOutput360float表1-1 数组图形化的参数设置在plot configuration窗口中还有一个很重要的选项设置memory选项,该选项默认为数据存储器,而这个练习中的3个数组都存在数据存储器中,所以不用选;但如果以后要处理的数据有存在其他的存储器中的就需要进行选择。每对一个数组设置完毕就点击add,都设完后点OK,就可以在一个convolution窗口中看到相应的曲线(程序已经运行完毕)。想对图形的某一部分放大可以用鼠标左键选中这一部分,如果想恢复的话右击鼠标,右击鼠标选择r

11、eset,想精确的知道某点的数据也可以右击鼠标,选择“Data Cursor”项,图形上将出现“十”字大光标,可点击曲线上的任一点,在窗口左下角会出现该点的数值和曲线名,可用键盘上的上()下()键来切换所选曲线。4. 练习四关闭所有文件,选FileLoad Programe命令项,在对话框中选择文件convolution.dxe。选 ToolsLinear ProfileNew Profiling命令,可以按练习二中的步骤对窗口进行设置,也可以直接选“Entire memory space”对整个程序进行分析,设置完毕后运行程序即可得到分析结果。三、程序调试这个实验中需要进行调试的程序只有练习

12、一中DotProductC工程中的主程序,进行练习一时,编译工程会出现错误,提示信息如图1.9所示:图1.9 编译错误提示图将鼠标放在line 115处双击,可以打开有错误的源程序,而且光标所在行即为有错误的行,同时提示信息还提示了错误的类型,这里可以看到是说有未定义的变量“itn”,事实上这是int的误写,将这个错误改正后再编译就可以顺利通过。四、实验结果及分析1. 练习一按练习一的步骤进行实验,得到的结果如图1.10和图1.11所示:图1.10 DotProductC工程的结果显示图1.11 DotProductC工程各程序性能分析从程序上来看,a,b,c,d是四个复数数组,a,b,c的长

13、度相同是20,d是10。函数a_dot_b,a_dot_c,a_dot_d分别将a和b,c,d做点乘,即逐点相乘之后累加,图1.10显示的就是累加后的3个结果。由于a,b,c的长度相同,所以a_dot_b和a_dot_c的计算量可以说是完全相同的,其耗时也就完全一样,而d的长度只有前三者的一半,所以a_dot_d是将a的偶数项和d中的数据点乘累加,其运算量要小于前两者,耗时也小于前两者,从图1.1中就可以看到这种分析与结果是一致的,子程序a_dot_b和a_dot_c各占总时间的34.54%,a_dot_d占22.40%,主程序基本上就是对3个函数的调用,所以仅占8.52%。窗口的右半部分显示

14、的是各程序中逐条语句在这个程序中耗时所占百分比,想研究哪一个程序双击即可。2. 练习二按练习二的步骤进行实验,得到的实验结果如图1.12和图1.13所示:图1.12DotProductASM工程的结果显示图1.13DotProductASM工程各程序性能分析练习二中的工程与练习一中的工程实现的功能是一样的,所以对比图1.12和图1.10可以发现它们的结果是一样的。但二者的区别在于练习DotProductASM工程主函数在调用子函数实现相应数组的点乘累加时,对a数组和c数组的点乘累加调用的不再是C语言的程序,而是汇编语言,也就是用_a_dot_c_asm代替了原来的a_dot_c。对比图1.12

15、和图1.14可以发现,实现同样功能的汇编语言程序要比C语言程序高效,原来的a_dot_c耗时34.54%,而_a_dot_c_asm仅耗时18.10%。这是由于汇编语言可以在一个指令周期内实现多个操作(包括寻址,运算,条件判断等,具体如何组合使用由指令规则而定),而且人为地编写汇编程序可以有效地利用填充时间和排空时间,使程序更高效。但查看程序代码其编写难度也明显高于C语言程序。3. 练习三按练习三的步骤进行实验,得到的实验结果如图1.14和图1.15所示:图1.14 数组数据的图形显示图1.14 数组数据的局部放大图形图1.14中的蓝色正弦波形是Table数据画出的,Table是从0到以0.0

16、17453292为步长取了360个点再求其sin值。红色波形是Input数据的图形,它是有Table的前36个数据不断赋值得到的,所以其最大幅值不会超过Table波形第36个数据的值。黄色的是Output的波形,它是由Input的每个数据和Impulse中所有数据分别相乘累加后得到的,而Impulse则是由Table中10的整数倍位置的数据不断赋值得到的。图1.14是图形某个部分的放大图,这种方法可以很好地观察我们重点关注的区域。4. 练习四按练习四的步骤进行实验,结果如图1.15和图1.16所示:图1.15 Convolution中个程序性能分析图1.16 CalculateOutputPu

17、lse子程序中各语句所占时间比图1.15和图1.16是性能分析窗口的左右两边,为了便于观看分两幅图截了下来。从图1.15中可以看到最耗时的程序就是Output的计算子程序,占总时间的89.04%;而在图1.16中可以看到CalculateOutputPulse子程序中最耗时又是程序的内循环,也就是用Input中的数据与Impulse中的数据逐个相乘在累加的过程,所以想要改善这个子程序的效率,可以将这一段程序用汇编语言编写。五、实验体会经过本次实验,基本上学会了DSP开发环境的使用,初步掌握了一些程序调试和分析的手段,深刻体会到了C语言和汇编语言的差别,C语言编写难度要比汇编语言的难度低,但其效率也没有汇编语言高。而且汇编语言由于一个指令周期可以有多条指令,其编写很灵活,想要编出高效的程序很需要一定的编程经验。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1