当前位置:文档之家› DSP上机大作业

DSP上机大作业

DSP上机实验报告实验一:VISUAL DSP++的使用入门1.实验一的目的实验一的主要目的是熟悉VISUAL DSP++的开发环境。

针对ADSP-21065L SHARC DSP,利用几个用C、C++和汇编语言写成的简单例子来描述VISUAL DSP+十编程环境和调试器(debugger)的主要特征和功能。

2.实验一的4个基本练习练习一:启动Visual DSP++,建立一个用C源代码的工程(Project),同时用调试器来评估用C语言所编写代码的性能;练习二:创立一个新的工程,修改源码来调用一个汇编(asm)程序,重新编译工程,用调试器来评估用汇编语言所写程序的性能;练习三:利用调试器的绘图(plot)功能来图形显示一个卷积算法中的多个数据的波形;练习四:利用调试器的性能统计功能(Statistical profile来检查练习三中卷积算法的效率。

利用所收集到的性能统计数据就能看出算法中最耗时的地方。

3.实验步骤:(1)练习一实验步骤:Step l 进入Visual DSP+十并打开一个工程(Project)进入Visual DSP++,显示Visual DSP++的集成开发和调试环境窗口(Integrated Development and Debugger Environment,简称IDDE)。

选择菜单File 中Open 打开文件:…DSP_exp\unit_1\dot_product_c \dotprodc.dpj。

Dotprodc工程由定义数组和计算数组点积和的两个C语言源文件dotprod_main.c(主程序)和dotprod.c(子程序)以及一个描述程序和数据存储位置的链接描述文件dotprodc.ldf。

Step 2 编译dotprodc工程在菜单Project中选择Build Project来对工程进行编译。

此时,输出窗口显示程序编译时的各种状态信息(包括出错和编译进程信息)。

当编译检测到错误时,将在输出窗口出现相应的出错信息,用鼠标双击它,编译器将自行打开源文件。

这时可对源文件编辑、修改错误,再次进行编译。

当编译不再有错时,输出窗口将显示“Build completed successfully”。

在本例子中,编译器会检测到一个未定义的错误,显示为:“.\dotprod_main.c”,line 115:error #20:identifier“itn”is undefined itn i;在输出窗口中对该行文字用鼠标双击,环境会自动打开dotprod_main.c文件,并将光标定位在出错行。

你可以看见单词“int”被错写成“itn”。

将该错误改正后,保存并重新编译,没有错误出现。

这时工程已被成功编译,就可以用VisualDSP++的debugger来调试程序。

Step 3 运行VsualDSP++调试器在编译完成后,环境将自动进入调试状态,对于初次进入debugger,将显示对象选择对话框,在其中指定对象和处理器信息。

Step 4 运行dotprod.c从Debug菜单中选择Run项,程序将被执行,其输出结果在Output window中显示。

Step 5 评估函数a_doc_c 的性能(profile)Profile用来分析程序的运行时间特性,通过Profile可以找到最耗时的程序段,这可能就是需要进一步优化性能的程序段。

通过下述步骤来设置Profile功能并显示其结果:(1)选Tools\Profile\Enable Profiling命令(2)Profile Ranges 对话框(3)设置Profile Ranges对话框的参数;在本例中,其开始地址和结束地址均分别通过Browse按钮选择标号a_dot_c和a_dot_c_end,再依次点击“Add”和“OK”按钮,所选择的Profile Range会出现在Profile的列表中,可以重复上述操作来指定多个Profile Range。

(4)选View\Debug Windows\profile,会出现一个Profile窗口;(5)按F5运行程序,程序会运行到第一个断点main()。

再按F5继续运行程序,程序完全执行后,将在Console窗口显示结果,并在Profile窗口中显示程序运行过程中的各种数据练习一截图(2)练习二步骤:Step l 创建一个新的工程(project)从Project菜单中选取New项,在弹出的工程保存对话框中,将工程名定义为dot_product_asm.dpj,并保存在…DSP_exp\unit_1\dot_product_asm目录下。

Step 2 向dot_product工程中添加文件选取菜单Project\Add to Project\file(s)…项,按住Ctrl键来同时选中dotprod_main.c,dotprod.c,dotprod_func.asm和dotprodasm.ldf文件,点击“Add”将这几个文件加到工程中。

Step 3 修改工程源文件在此步骤中,我们将修改dotprod_main.c文件,让其调用一个汇编子程序a_dot_c_asm来取代a_doc。

打开dotprod_main.c文件,在源代码中找到下列相应的四条语句:/*extern double a_dot_c_asm(double pm*,double*);*/extern double a_dot_d(double pm*,double*);result[l]=a-dot_c(a,c);/*result[1]=a_dot_casm(a,c);*/将这四条语句修改为:extern double a_dot_c_asm(double pm*,double*);/*extern double a_dot_d(double pm*,double*);*//*result[1]a=dot_c(a, c);*/result[l]=a_dot_c_asm(a,c);这样主程序将调用a_dor_c_asm汇编程序来取代练习一中的a_dot_c子程序。

Step 4 修改链接描述文件dotprodasm.Ldf在文件中找到语句:INPUT_SECTIONS(dotprod.doj(seg_pmco)dotprod.doj(pm_codel)dotProd.doj(pm_code2)dotProd.doj(pm_code3))将其修改为:INPUT_SECTIONS(dotprod.doj(seg_pmco)dotprod.doj(pm_codel)dotProd_func.doj(pm_code2)dotprod.doj(pm_code3))这样程序将链接dotprod_func.doj对象文件。

Step 5 编译和运行dot_productStep 6 评估a_dot_asm的效率如同练习一那样设置Profile参数并显示其结果:(1) 选Tools\Profile\Enable Profiling命令;(2) 选Tools\Proflle\Add/Remove Profile Ranges命令,会出现一个Profile Ranges对话框;(3)在本例子中,其开始地址和结束地址均可选取Browse中的标号_a_dot_c_asm和_a_dot_c_asm_end,再依次点击“Add”和“OK”按钮。

(4) 打开菜单View\Debug\Profile项,显示Profile结果窗口。

运行dot_product程序练习二截图(3)练习三步骤Step l 将算法程序调入Debugger环境关闭所有已打开的工程和文件,选择菜单File\Load Program...项或点击图标。

在出现的对话框中选择文件…DSP_exp\unit_1\convolution \debug\convolution.dxe。

并在随后的源文件对话框中选择文件…DSP_exp\unit_1\convolution\convolution.cpp。

可以在C代码源文件中看到四个全局数组:Table、Input、Output和Impulse。

以及四个调用数组的函数:InitializeSineTable(),GenerateInputPulse(),GenerateImpulseCoeffS( )和CalculateOutputPulse()。

Step 2 打开绘图窗口并设定参数选择菜单View\Debug Windows\Plot\New…项,将出现Plot参数设置窗口。

在Plot Type项中选择Line Plot,在Plot Title中输入Convolution。

Step 3 运行程序并在图形窗口中观察数据接F5运行程序,当程序Halt(SHIFT-F5)后,Plot窗口中将出现数据曲线。

图中的三条曲线分别代表Table、Input和Output三个数组的值练习三截图(4)练习四Step l 调用convolution程序关闭所有的文件,如同练习三中的一样,选用菜单File\Load Program…命令项,在对话框中选择文件…DSP_exp\unit_1\convolution\debug\ convolution.dxe。

并在随后的源文件对话框中选择文件…DSP_exp\unit_1\convolution\convolution.cpp。

Step2 打开统计特性选项选取菜单Tools\Statistical\Enable Profiling 项,使其变为有效。

再选取菜单View\Debug Windows\Statistical Profiling Results项,出现Statistical Profiling Results窗口。

Step 3 收集和检查统计特性数据练习四截图实验二:用SIMULATOR模拟实现数字信号处理1.实验二的练习本实验主要通过四个练习来了解如何利用SIMULATOR实现基本的信号处理方法。

实验包括以下几个练习:练习一:时域卷积运算练习二:DFT运算练习三:时域相关运算练习四:利用相关函数计算信号的功率谱2.实验步骤及结果(1)练习一步骤Step 1 调入程序启动运行VisualDSP++,运行菜单命令\Project\New来新建一个工程,工程名称自定义,正确设置工程的各个选项,将DSP_exp\unit_2\Conv目录下的源文件(conv.ASM和conv.ldf)加入到工程中,同时建立数据文件x.dat和y.dat,以及初始化文件zeros.dat。

注意:初始化文件中数据的个数必须和要初始化的数组的大小一致。

Step2 选择输入数据文件编译程序前,在下述程序行中将输入数据文件改为pulse1.dat和sin64.dat:.V AR inputx[LENGTH_X]= "pulse1.dat";.V AR inputy[LENGTH_Y]= "sin64.dat";其中pulse1.dat为单个冲击脉冲信号,sin64.dat为正弦信号。

相关主题