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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

1402121170吴江平小实验.docx

1、1402121170吴江平小实验 西安电子科技大学DSP技术及应用实验小作业学 院 电子工程学院 专 业 模式识别与智能系统 学 号 1402121170 学生姓名 吴江平 授课老师 郭万有 实验一 VISUALDSP+的使用入门实验目的: 本次实验主要目的是熟悉VISUALDSP+的开发环境。针对ADSPTS201,利用几个用C、C+和汇编语言写成的简单例子来描述VISUAL DSP+编程环境和调试器(debugger)的主要特征和功能。Part1 C语言代码的性能评估实验实验步骤: 1、打开VisualDSP+,并新建一个工程文件,命名为”test1_1”,保存路径选择”D:DSP”。 2

2、、新建C语言源程序文件,命名为” dotprod.c”。 3、若工程中源程序文件夹(Sourse Files)中默认新建了.c文件,请先删除,然后再将新建的dotprod.c语言源程序文件添加到新建的工程文件中。 4、编译C语言源程序文件,分析输出窗口的错误并纠正,直至文件编译通过,输出窗口显示“Build completed successfully”。5、新建一个调试会话(Session),按照下表进行调试会话的属性设置。域选择值Debug TargetADSP-TS20x Family SimulatorPlatformADSP-TS201 Rev.0.0 Single Processo

3、r SimulatorSession NameADSP-TS201 ADSP-TS201 Rev.0.0 Single Processor SimulatorProcessorADSP-TS201 ADSP-TS201 Rev.0.0 Single Processor Simulator或域选择值ProcessorTigerSHARC-ADSP-TS201Connection TypeEZ-KIT Lite(评估板调试),Emulator(仿真器仿真),Simulator(软件仿真)PlatformADSP-TS201 Rev. 1.x/2.x Single Processor Simulat

4、or Session Name选择Platform后默认即可(也可修改) 6、编译整个工程,(首次编译需要先选择调试会话(Session)对象,选择新建Session对象即可),输出窗口无错误信息提示则整个工程编译连接通过。7、在整个工程编译完成后,环境已经自动进入调试状态,选择运行(Run)工程, 程序将被执行,其输出结果在 Output window中显示。用VisualDSP+调试时,调试器会自动调入工程的dxe可执行文件,并打开相应的窗口(调试器的输出窗口、反汇编窗口和源代码窗口等),源代码窗口中,箭头所指为当前执行指令,红圆圈代表设定的断点位置。当调试器加载C程序时,会自动设置两个断

5、点,分别在代码执行的开头和结尾。8、新建代码性能分析器(Linear Profiling)工具, 程序评估函数 a_doc_b, a_doc_c, a_doc_d 的性能。(注意在Linear Profiling窗口点击右键选择Properties然后在filter选项卡中设置要分析的程序段的起始地址或函数,在Linear Profiling窗口点击右键选择View Execution切换性能分析结果的显示方式(百分比或计数器)。 9、将Project Options中的编译器设置将代码优化功能选中(ProjectCompileGeneral选中Enable optimization),重新编

6、译和链接程序后,对上面的三个子函数的运行性能重新进行评估,对比优化前和优化后的区别,考虑其原因。(提示:显示结果要采用计数器的显示方式才能区分两者的差别)。实验结果:(a) 程序运行结果(b) 代码优化前a_doc_b, a_doc_c, a_doc_d三个子函数的性能值(Count值和百分值)(c) 代码优化后a_doc_b, a_doc_c, a_doc_d三个子函数的性能值(Count值和百分值)实验结果分析: 从图中可以看出利用Visual DSP十可以很好的对C语言的各种的效率进行分析。Part2 C语言与汇编语言混合编程代码的性能评估实验实验步骤: 1、打开VisualDSP+,导

7、入工程”test1_2”,工程路径为”D:DSPtest1_2”文件夹,并添加该文件夹下的dotprod.c和main.c文件。 2、查看源程序代码并与实验1中的代码进行对比观察两者的不同之处,最后对文件进行编译纠错。 3、编译整个工程,(首次编译需要先选择调试会话(Session)对象,选择已建立的Session对象或新建一个Session对象),输出窗口无错误信息提示则整个工程编译连接通过。 4、新建代码性能分析器(Linear Profiling)工具, 要评估函数的函数为 a_doc_c 。 5、运行(Run)工程, 程序将被执行,其输出结果在 Output window中显示,记录实

8、验结果和代码性能分析结果。 6、添加”D:/DSP/ test1_2”文件夹下的dotprod.asm文件,并将main.c中代码作如下修改:将extern int a_dot_c( int *, int * );修改为extern int a_dot_c_asm( int *, int * )。将result1 = a_dot_c( a, c );修改为result1 = a_dot_c_asm( a, c )。 此处代码修改是将主函数调用的a_dot_c函数,由采用 C语言编写的函数修改为采用汇编语言书写的程序。 7、重新编译工程,出现错误,创建链接描述文件(ToolExpert Link

9、erCreat LDF),并打开,为my_asm_section下的dotprod.doj分配存储空间至M0Code。 8、修改代码性能分析器中要分析asm代码的起始地址(在Profile设置窗口中要选择Memory ranges,设置代码的起始地址分别为_a_dot_c_asm, _a_dot_c_asm.end),运行(RUN),记录程序执行结果和性能分析结果,并与第5)步中的结果进行对比。实验结果:代码修改前的输出结果和代码性能分析结果如下:代码修改后的输出结果和代码性能分析结果如下:实验结果分析: 从图中可以看出原来没有优化的C语言子程序为626,现在改变为汇编语言程序嵌入后为201,

10、从而说明汇编语言执行速度比C语言快多了。Part3 数据绘图(Plotting)实验实验步骤:1、将已编译好的工程的可执行文件调入Debugger环境,目录为D:DSPtest1_3.dxe(选择菜单FileLoad Program)。 2、在弹出的汇编语言源代码查看inputs和output两个全局数组。3、新建绘图窗口(选择菜单 ViewDebug WindowsPlotNew项)在Plot设置窗口中type设定为Line Plot Title命名为”FIR”;添加两个Data Setting,参数按以下表格进行设定。Data SetsNameMemoryAddressDataCountS

11、trideInputsInputsTigerSharcMemoryInputsFloat2561OuputOuputTigerSharcMemoryOuputFloat2561 4、将 Plot窗口调整合适的大小,运行(Run), 观察Plot窗口中图像的变化。将图像记录下来。并确定count=150时in变量和out变量的值并记录下来。 5、绘制幅度谱线图:在plot窗口点击右键,选择“modify setting”,在“plot setting”窗口选择“data processing”,在“data sets”窗口选择“inputs”,在“data process”窗口选择“FFT Ma

12、gnitude”,然后点“OK”,观察图像,重复以上操作,把数据“output”也改为“FFT Magnitude”,观察图像,把数据“output”也改为“FFT Magnitude”,就得到了最终的滤波谱图,将图像记录下来。并请实验老师查看实验结果。实验结果:接F5运行程序,当程序Halt(SHIFT-F5)后,用Plot窗口绘出出现数据output的曲线,图中的两条曲线分别代表inputs(绿)和output(紫)数组的值,程序运行后的Plot窗口如图7.20(1)所示:该图就是bkfir2_flp32滤波前后的数据频谱图。实验结果分析: 软件可以很好的绘制出输入和输出波形,从而更好的对

13、程序进行分析。Part4 代码性能统计实验实验步骤: 1、导入工程文件,目录为将D:DSPtest1_4test1_4.dpj。(选择菜单 FileOpenProject) 2、编译。 3、新建代码性能分析器(Linear Profiling)工具,弹出代码性能统计窗口。在窗口中: Histogram:用图形的方式来显示该执行单元所用时间百分比。 :用数字显示该执行单元所占用的时间百分比。 Execution Unit:执行单元,对于C或C十十语言中的函数显示其函数名,对于其它指令或汇编语言显示指令的地址,显示为 PCxxx。 4、运行(RUN),代码性能统计窗口得到统计信息,双击窗口中的ma

14、in(),在窗口右半部分观察最耗时间的程序段。实验结果:从窗口中可以看出,内循环占去了绝大部分的时间。因此,在编程时若需提高算法的执行效率,可将该段代码用汇编语言重新编写来提高它的效率。其结果如下:实验结果分析:从窗口中我们可以看出main()函数用去了总程序时间的约99.94。用鼠标双击该行,在右边窗口显示该函数的源代码及其行数,且显示各语句所用的时间百分比。从窗口中可以看出,内循环占去了92.29的时间。因此,在编程时若需提高算法的执行效率,可将该段代码用汇编语言重新编写来提高它的效率。实验二 用SIMULATOR模拟实现数字信号处理 以及DMA传输实验目的: 了解DMA通信基本原理,掌握

15、内存与SDRAM间一维DMA通信方式、二维DMA通信方式以及相关控制方法。学习数字滤波器设计方法,掌握其调试步骤,使学生加深对IIR的理解,进一步提高对数字信号处理理论的认识。实验任务: 实验1:内存与SDRAM间的一维DMA通信实验 实验2:内存与SDRAM间的二维DMA通信实验 实验3:无限脉冲响应数字滤波器(IIR)的设计实验实验内容:Part1 内存与SDRAM间的一维DMA通信实验实验原理:DMA是一种不需要处理器内核干预的数据传输机制,作为一种后台任务执行,即进行DMA传输时,处理器可以处理其它任务。如果使能了DMA中断,那么当数据传输结束后会产生中断信号,表示DMA传输已经完成。

16、DMA传输方式包括:一维DMA、二维DMA、链式DMA、AutoDMA等,本次实验使用一维DMA方式,即传输存储器中一段连续的数据(地址是相邻接的)。 若要利用DMA传输数据,首先应配置DMA传输控制块(TCB)寄存器。DMA传输的数据具有方向性,即从发送端(源)到接受端(目的),若为外部存储器DMA传输,则需要设置两个TCB参数,一个源TCB,用于描述源数据的地址、大小和每次传输数据的长度等;还有一个目的TCB,用于描述数据传入的目标地址、数据大小及每次传输数据的长度等。若要使能DMA中断,也需要在TCB中设置相应位。若使用链路或AutoDMA通道则只需一个目的TCB。设置好TCB寄存器后,

17、DMA传输自动开始。TS201S一共14个DMA通道,4个通道(03)专用于外部存储器设备,8个通道(411)用于链路口,2个通道(1213)用于自动DMA操作。本次实验使用DMA0通道实现内存与外部存储器SDRAM间的一维DMA通信。实验步骤: 1、启动VisualDSP+,新建工程命名为”test2_1”,路径选择为”D:DSP”,并将源代码文件夹下默认生成的test2_1.c文件移除。 2、新建空白文件(选择菜单FileNewFile),输入参考源代码,保存为DMA_1.asm,并将其添加到工程中。 3、分析、理解源程序,并编译文件纠错。 4、建立链接文件(选择菜单ToolsExpert

18、 LinkerCreate LDF)。 5、编译整个工程,若出现错误“The following symbols referenced in processor p0 could not be resolved: main _main referenced from ts_hdr_TS201.doj”则说明声明的程序段/数据段(变量)所存放到了不能被执行的位置,导致该程序段/数据段(变量)没有被分配到相应的存储空间。处理方式:打开生成的LDF链接文件,在打开的Expert Linker窗口中将红叉项下的DMA1.obj添加(用鼠标拖拽)到MSSD0存储区(由于TS201S将外部存储器SDRAM

19、地址映射到了0x4000 0000到0x7FFF FFFF之间的四个部分:MSSD03,所以我们将DMA1.obj添加至其中之一即可,由于开发板上SDRAM是映射在MSSD0,为方便以后实验,直接添加至MSSD0即可)。 6、重新编译工程,为方便观察存储器内相应地址其内容变化,在_Done处设置断点,同时打开两个存储器观察窗口(选择菜单Memory-TigerSHARC Memory)分别输入tx_data和rx_data。 7、运行(RUN)工程,程序自动运行至_Done后停止,观察tx_data内数据值,然后单步运行程序(按F11键),观察rx_data内数据变化。实验结果:要求:1、按照

20、实验步骤完成实验。2、修改程序,DMA每次传输一个字(32位),验证结果。 3、修改程序,用软环境模拟外部中断来启动DMA传输,并观察传输结果。通过下列步骤来建立一个外部中断:a、打开对话框选SettingsInterrupts,会出现一个Interrupt Timing对话框。b、设置中断属性。c、设置断点并且运行程序。用如下程序段:_Set_IRQ_A: /*设置外部中断*/ j0=_IRQ0_ISR; IVIRQ0=j0; xr0=INT_IRQ0; IMASKH=xr0; /外部中断IRQ0使能 SQCTLST=SQCTL_GIE;_Wait_For_Interrupt: .align

21、_code 4; nop;nop;nop;idle; /无限等待直到中断发生,然后跳至中断程序_IRQ0_ISR执行 jump _Wait_For_Interrupt;_IRQ0_ISR: _Load_DMA0_TCBs: /将初始值倒入DMA0的传输和接收TCB j0=DC0_Source_TCB; xr3:0=qj0+j31; /注意这种传递方式 j0=DC0_Destination_TCB; yr3:0=qj0+j31; DCS0=xr3:0; DCD0=yr3:0; /开始进行DMA传输rti(np)(abs); 代替以下原程序:_Load_DMA0_TCBs: /将初始值倒入DMA0

22、的传输和接收TCB j0=DC0_Source_TCB; xr3:0=qj0+j31; /注意这种传递方式 j0=DC0_Destination_TCB; yr3:0=qj0+j31; DCS0=xr3:0;DCD0=yr3:0; /开始进行DMA传输实验结果: 4、分析两个程序的原理,简述软环境模拟外部硬件中断的程序流程。实验结果分析: 原程序是直接将初始值倒入DMA0的传输和接收TCB,而修改后的程序是通过触发中断响应,然后才进行始进行DMA传输。软环境模拟外部硬件中断的程序是先设置中断,然后不停地进行中断扫描,当中断发生时,跳转到DMA传输程序段。Part2 内存与SDRAM间的二维DM

23、A通信实验实验原理: 二维DMA将存储区中的数据块作为一个数据阵列进行传输,有利于执行矩阵操作的DSP算法。若要进行二维DMA传输,对DX、DY寄存器都要进行设置,同时在DP寄存器中使能二维DMA(第27位)。 DX增量寄存器(DX低16位)保存的是偏移值,此值加上当前地址后指向X维的下一数据元素(下一内循环首址),DX计数寄存器(DX高十六位)保存在X维方向(循环内部)需要传输的字数,传输一次减一,可以指示当前行中待传输的字数。 DY增量寄存器保存的是Y维方向(外循环)的偏移值,此值加上当前地址可以指示Y维方向上下一个数据元素(下外循环的首址)。DY计数寄存器初始值是Y维的传输单元数(外循环

24、次数),每当DX计数器减少至零时,其值才减一。当Y计数寄存器内容减为零时,DMA传输完成。二维DMA的具体执行过程: 1、输出保存在TCB DI寄存器中的当前地址,启动一个DMA存储器周期。 2、在此周期内,将TCB DX增量寄存器中的值与当前DI寄存器中的当前地址相加,产生下一个要访问的数据元素地址,同时更新DI寄存器的值。 3、DX计数器的值减一,然后跳回第二步执行,直至DX计数器值减为零。 4、DX计数器减为零后,DX计数器被重新加载原来的初始值。 5、DY增量寄存器的值加到DI寄存器中的当前地址。 6、DY计数寄存器内容减一,然后从第二步继续开始执行,直至DY计数器减少至零,完成二维D

25、MA传输。实验步骤: 1、启动VisualDSP+,新建工程命名为”test2_2”,路径选择为”D:DSP”,并将源代码文件夹下默认生成的test2_2.c文件移除。 2、新建空白文件(选择菜单FileNewFile),输入参考源代码,保存为DMA_2.asm,并将其添加到工程中。 3、分析、理解源程序,并编译文件纠错。 4、建立链接文件(选择菜单ToolsExpert LinkerCreate LDF)。 5、编译整个工程,若出现错误“The following symbols referenced in processor p0 could not be resolved: main _

26、main referenced from ts_hdr_TS201.doj”处理方法同前一个实验。 6、重新编译工程,为方便观察存储器内相应地址其内容变化,在_Done处设置断点,同时打开两个存储器观察窗口(选择菜单Memory-TigerSHARC Memory)分别输入tx_data和rx_data。 7、运行(RUN)工程,程序自动运行至_Done后停止,观察tx_data内数据值,然后单步运行程序(按F11键),观察rx_data内数据变化。实验结果: 1、按照实验步骤完成实验。 2、理解并修改程序,使rx_data收到的数据排列验证结果如下: 3、修改程序,只传输tx_data中的奇

27、数值,且接受到的数据在tx_data中连续排列,验证结果。实验结果分析: 通过对DSP的DMA设置,由于不经过cpu传输可以快速的数据进行传输。Part3 无限脉冲响应数字滤波器(IIR)的设计实验实验原理:所谓的数字滤波,指的是输入、输出均为数字信号,通过一定运算关系改变输入信号所含频率成分的相对比例或者滤除某些频率成分。数字滤波可分为无限脉冲响应(IIR)滤波和有限脉冲响应(FIR)滤波。本次试验利用VISUAL DSP+ 软环境SIMULATOR模拟实现无限脉冲响应(IIR)数字信号处理。无限脉冲响应(IIR)的系统函数为: (2-3-1)即如果输入为X(Z),输出为Y(N),则:Y(Z

28、)=X(Z)H(Z),即 (2-3-2)本试验中利用的公式是对上面的公式2对了相应的形式变化,利用中间变量 (2-3-3) 那么 (2-3-4)因此,本次试验设计了一个4阶IIR滤波,其对应的公式3和公式4的时域公式如下: (2-3-5) (2-3-6)本次设计中系数a4,a3,a2,a1,b4,b3,b2,b1都是用户自己初始化的时候给定的且均为常数,其中x(n)是输入的数字序列。 从公式5和公式6可知,只要我们设定设计需要的a4,a3,a2,a1,b4,b3,b2,b1,以及初始化w(n-1), w(n-2), w(n-3), w(n-4),就可以得到我们所需要的滤波器了。滤波器算法中的变

29、量分配:inputsN:存放输入数据;coeffs2*SECTIONS:按顺序猘2, a4, b2,b4,a1, a3, b1, b3存放滤波器系数;delaylineSECTIONS:存放w(n-1), w(n-2), w(n-3), w(n-4)初始化值(此处滤波器设计为因果滤波器,n0时w(n)全为0);outputN:存放计算结果。实验步骤: 1、启动VisualDSP+,新建工程命名为”test2_3”,路径选择为”D:DSP”,并将源代码文件夹下默认生成的test2_3.c文件移除。 2、新建空白文件(选择菜单FileNewFile),输入参考源代码,保存为IIR.asm,并将其添

30、加到工程中。 3、分析、理解源程序,并编译文件纠错。 4、编译整个工程。 5、查看inputs和output的时域图和频谱图。新建绘图窗口(选择菜单 ViewDebug WindowsPlotNew项)在Plot设置窗口中type设定为Line Plot Title命名为”IIR”;添加两个Data Setting,参数按以下表格进行设定。Data SetsNameMemoryAddressCountStrideDataInputsInputsTigerSharcMemoryInputs301FloatOutputOutputTigerSharcMemoryOutput301Float实验结果:输入数据和输出数据的时域图和频谱图如图所示:实验结果分析:数字滤波,指的是输入、输出均为数字信号,通过一定运算关系改变输入信号所含频率成分的相对比例或者滤除某些频率成分,实验中滤波器将信号中的某些频率成分滤除得到如图波形。实验三 定时中断、外部中断实验实验目的: 理解FLAG可编程作为输入输出引脚,并且能够利用按键进行相应的FLAG标(FLAG0,FLAG1)的输入来进行相应的FLAG标志(FLAG2,FLAG3)输出来控制与之相连的LED。掌握外部中断和定时器中断的设

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

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