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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

DSP实验报告2.docx

1、DSP实验报告2DSP实验报告班级: 姓名: 学号: 实验一 快速傅立叶变换(FFT)的实现一、 实验目的在数字信号处理系统中,FFT 作为一个非常重要的工具经常使用,甚至成为 DSP 运算能力的一个考核因素。FFT 是一种高效实现离散付氏变换的算法。离散付氏变换的目的是把信号由时域变换到频域,从而可以在频域分析处理信息,得到的结果再由付氏逆变换到时域。 本实验的目的在于学习FFT算法, 及其在TMS320C54X上的实现, 并通过编程掌握C54X的存储器管理、辅助寄存器的使用、位倒序寻址方式等技巧,同时练习使用 CCS的探针和图形工具。另外在 BIOS 子目录下是一个使用 DSP/BIOS

2、工具实现 FFT 的程序。通过该程序,你可以使用 DSP/BIOS 提供的分析工具评估 FFT 代码执行情况。二、 实验原理1) 基 2 按时间抽取 FFT 算法对于有限长离散数字信号xn,0 n N-1,其离散谱xk可以由离散付氏变换(DFT)求得。DFT 的定义为:可以方便的把它改写为如下形式:不难看出,WN是周期性的,且周期为 N,即WN的周期性是 DFT 的关键性质之一。为了强调起见,常用表达式 WN取代 W 以便明确其周期是 N。2) 实数 FFT 运算对于离散傅立叶变换(DFT)的数字计算,FFT 是一种有效的方法。一般假定输入序列是复数。当实际输入是实数时,利用对称性质可以使计算

3、 DFT 非常有效。 一个优化的实数 FFT 算法是一个组合以后的算法。原始的 2N 个点的实输入序列组合成一个 N 点的复序列,之后对复序列进行 N 点的 FFT 运算,最后再由 N 点的复数输出拆散成 2N点的复数序列, 这 2N点的复数序列与原始的 2N点的实数输入序列的 DFT输出一致。 使用这种方法,在组合输入和拆散输出的操作中,FFT 运算量减半。这样利用实数 FFT算法来计算实输入序列的 DFT 的速度几乎是一般复 FFT 算法的两倍。本实验就用这种方法实现了一个 256 点实数 FFT(2N = 256)运算。a. 实数 FFT 运算序列的存储分配 如何利用有限的 DSP 系统

4、资源,合理的安排好算法使用的存储器是一个比较要的问题。3) 计算所求信号的功率由于最后所得的 FFT 数据是一个复数,为了能够方便的在虚拟频谱仪上观察该信号的特征,我们通常对所得的 FFT 数据进行处理取其实部和虚部的平方和,即求得该信号的功率。 三、 实验内容1)启动 CCS,在 Project 菜单相项中打开 FFT 目录下的 fft.pjt 文件。 2)用鼠标展开左面项目栏,打开 fft.asm源程序。 3)使用 Bulid 命令完成编译、连接,并使用 Load Program 将生成的 fft.out 装入 5402片内存储器。 4)将光标移动到“call get_input”行,并设

5、置一个探针点。将光标移动到下一行“nop”语句,使用工具设置一个断点。5)在 File 菜单中打开选项“File I/O” ,使用“Add File”在 FFT 目录下打开数据文件fft.dat,然后修改“Address”参数为 0x2300,修改“Length”参数为 256。这表示程序执行到探针点时,将从 fft.dat 文件中读出 256 个数据,并将数据放入 0x2300开始的存储器中。你可以选择“Wrap Around” ,循环使用该数据文件。6) 选择“Add Probe Point” ,将探针点与数据文件连接起来。选择探针点,然后在“Connect”选项中选择需要使用的数据文件名

6、,再选择“Replace” ,按确定键完成。这时将返回图 7 所示的对话框。你可以看到“Probe”项被自动修改为 “Connected” ,表示探针已经与数据文件成功相连。7) 完成探针设置后,可以使用 F5 或“Run”命令启动程序运行。程序执行到探针点时自动从数据文件读出 256 个点的数据放入输入缓冲 0x2300。 8) 在“View”菜单项下选择“Graph - Time/Frequency” ,打开一个图形工具以便显示输入数据波形。将“Start Address”改为 0x2300,将“Acquisition Buffer Size”改为128,将“DSP Data Type”改

7、为“16-bit signed integer” ,这样即可显示 128 个输入点波形。 9) 调整窗口显示大小,将光标移动到源程序的“b _c_int00”这行,使用 Debug 中的 “Run to Cursor”项,程序将执行到这行并停下。这时 FFT 程序已经计算完成。再打开一个波形显示窗口,这次仅仅将“Start Address”改为 0x2200,便可以显示计算完成后的谱波形。 10) 选择“Debug”下的“Animate”运行程序,这时程序将循环运行,不断从数据文件fft.dat 中读出数据,并计算其频谱。这时你可以看到连续的输入/输出波形。11) 选择原始数据波形窗口,单击鼠

8、标右键,进入“Properties”属性对话框。你可以将 “Display Type”改为“FFT Magnitude” ,这时输入数据将显示其频谱,对比两个图形,看看谱线的位置一样吗? 12) 清除所有断点、探针点,关闭 CCS 的源程序窗口和上面的工程文件 fft.pjt,然后在Project 菜单下打开 BIOS 目录下 fft.pjt文件。 这时一个使用 DSP/BIOS 工具实现 FFT的例子。 为了使用 DSP/BIOS 的工具分析工具, 我们将 FFT 的源程序做了一点修改。将 FFT 子程序做为一个中断函数,并在 DSP/BIOS 的周期模块中调用。所以在DSP/BIOS 的配

9、置文件中增加一个周期模块 PRD0, 并且设置每 1ms 执行一次, 即每1ms 执行一次 FFT 子程序。这时的主程序仅仅完成一次数据输入,然后返回 DSP/BIOS。以后 DSP/BIOS 将每隔 1ms 启动一次周期函数,完成一次 FFT。13) 在 File 菜单中用 Load Program装入 BIOS 目录下的 demo5402.out 文件。 参照前面的函数中的“call wait_input”设置一个探针点,并建立数据文件连接。这时应该将输入数据读到 0x2900 开始的存储器中。在 FFT 子程序 process 中设置一个断点,启动程序运行。 14) 程序将在第一次进入周

10、期函数执行 FFT 子程序时停下来。使用图形工具观察输入信号波形(启始地址 0x2900 ) 。将 FFT 子程序执行完,然后再使用图形工具观察 FFT后的波形(启始地址 0x2800)。 15) 清除所有断点,以便程序连续运行。使用 Tools菜单下的 DSP/BIOS 选项打开“RTA Control Panel”窗口,再打开“Execution Graph”窗口。在“RTA Control Panel”控制窗口中选择“enable SWI logging” 、 “enable PRD logging”和“gobal host enable” 。恢复程序运行,观察 FFT 程序执行情况。1

11、8) 在 Tools - DSP/BIOS - CPU Load Graph 窗口,观察 CPU占用情况。修改周期函数的周期,重新编译、连接、装入程序并运行,看看 CPU占用比有何变化?实验二 FIR 数字滤波器一、实验目的数字滤波的作用是滤除信号中某一部分频率分量。信号经过滤波处理,就相当于信号频谱与滤波器的频率响应相乘的结果。从时域来看,就是输入信号与滤波器的冲激响应作卷积和。数字滤波器在各种领域由广泛的应用,例如数字音响、音乐和语音合成、躁声消除、数据压缩、频率合成、谐波消除、过载检测、相关检测等。 本实验主要学习数字滤波器的 DSP 实现原理和 C54X 编程技巧,并通过 CCS 的图

12、形显示工具观察输入/输出信号波形以及频谱的变化。 该实验应该安排在串口和定时器操作实验之后进行。 二、实验原理1) FIR滤波器的实现如果 FIR 滤波器的冲激响应为 h(0),h(1),.,h(N-1)。X(n)表示滤波器在 n 时刻的输入,则 n时刻的输出为:y(n) = h(0)x(n) + h(1)x(n-1)+ . + h(N-1)xn-(N-1) 使用 MAC或 FIRS指令可以方便地实现上面的计算。 使用带 MAC 指令的循环寻址模式实现 FIR 滤波器,程序片段如下:(输入数据在AL 中,滤波结果在 AH中) STM #1,AR0 ;AR0=1 STM #N,BK ;BK=N,

13、循环寻址BUFFER 大小为N STL A,*FIR_DATA_P+% ;更新滤波窗口中的采样数据 RPTZ A,#(N-1) ;重复MAC指令N次,先将 A清零 MAC *FIR_DATA_P+0%,*FIR_COFF_P+0%,A ;完成滤波计算。注意FIR滤波系数存放在数据存储区 2) AC01 的初始化DSE320PP-U使用AC01作为模拟信号接口。 AC01提供一个14bit的D/A和一个14bit的 A/D 通道。AC01 与 VC5402 通过串口 0 连接。DSP 通过串口可以控制 AC01 的采样频率、增益、低通/高通滤波器的截止频率等参数。这一步是通过读写 AC01 的寄

14、存器来实现的。3) 1KHz方波信号的产生利用 AC01的 D/A通道产生一个 1KHz 的方波,作为 FIR 滤波器的输入信号。由于串口发送中断将每 0.04ms(25KHz)产生一次,所以我们将一个周期的方波信号分 25次送出,这样经 D/A变化后便可得到 1KHz 的方波。4) 串口的初始化和串口中断服务程序本实验通过 DSP 的串口 0 输入/输出数据。在串口通讯中,数据时钟和帧同步信号都由 AC01 产生,所以 VC5402 将使用外部时钟和帧同步信号三、实验内容本实验需要使用C54X汇编语言实现 FIR 滤波器,并通过 CCS的图形显示工具观察输入/输出信号波形以及频谱的变化。实验

15、分以下几步完成: 1) 短接 JP12,使得 DES320PP-U 的模拟信号输出通道与模拟信号输入通道相连。 2) 启动 CCS,在 Project 选项中打开 fir5402.pjt 文件。 3) 使用 Build 选项完成编译、连接,然后使用 File 菜单中的 Load Program 将 OUT 文件装入。按 F5 键启动程序运行,若有示波器,可以观察 DSE320PP-U 板上的 JP12的引脚输出的 1KHz 的方波。4) 请使用 Debug - Halt 暂停程序的执行。在 Project 管理栏中打开 fir5402.asm文件,并在 ccs_show(在 fir 子程序中)

16、行后的 nop 语句处上增加一个断点。添加断点的方法是先用鼠标单击某行,将光标移动到需要增加断点的行上,然后选择工具栏的手状图标。当该行被设置了一个断点后,可以看到红色的圆点。 5) 选择 View - Graph - Time/Frequency菜单打开一个图形显示窗口。将 “Start Address”项改为地址 0x1800,将“Display Data Size”项设置为 128,将“DSP Data Type”改为“16-bit signed integer” 。这样,将在图形显示窗口中显示从 0x1800(信号输入缓冲)开始的 128 个点的 16 位有符号整数。再打开一个图形窗口

17、,显示从地址 0x1020(滤波信号输出缓冲)开始的 128点的 16 位有符号整数。 6) 选择 Debug - Animate 项运行程序。Animate 运行和 Run 运行基本一致,只是使用Run 运行时,若遇到断点,将停下来,直到用户再次使用 Run 命令才恢复运行。而使用 Animate 运行时,若遇到断点,CCS刷新所有的显示窗口,如寄存器、CPU、MEM、图形显示等,然后自动恢复运行。所以,你能看到连续更新的滤波输出。四、实验心得 在学习过程中,我学习到了很多关于信号处理的实践方法,让我对DSP有了更深一步的认识,这些都是在书本学习中无法理解的。但是,这次学习仅仅提供了简单的实

18、验,不是现实生活中的真正使用,带有的理想成分太大,得到的结果也是非常的“理想”。虽然离实际应用还有一段距离,但是让我对“DSP”这门课的知识融汇连接在一起,印象深刻。实验一 快速傅立叶变换(FFT)算法实验一 实验目的1加深对DFT算法原理和基本性质的理解;2熟悉 FFT算法原理和FFT子程序的应用;3学习用FFT对连续信号和时域信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应用FFT。二 实验设备计算机,CCS 2.0 版软件,实验箱,DSP仿真器,导线三 基本原理1离散傅立叶变换DFT的定义:将时域的采样变换成频域的周期性离散函数,频域的采样也可以变换成时域的周期性

19、离散函数,这样的变换称为离散傅立叶变换,简称DFT。2FFT是DFT的一种快速算法,将DFT的N2步运算减少为(N/2)log2N 步,极大的提高了运算的速度。3旋转因子的变化规律、蝶形运算规律及基 2FFT算法。四 实验步骤1底板的开关SW4 的第1位置ON,其余置OFF。其余开关不用具体设置。2板子上的SW7开关的第1位置OFF,其余位置ON3. 正确完成计算机、DSP仿真器和实验箱的连接后,系统上电。4. 启动CCS2.0,Project/Open 打开“algorithm01_fft”子目录下“fft.pjt”工程文件;双击“fft.pjt” 及“Source”可查看各源程序;加载“D

20、ebugfft.out”;5. 单击“DebugGo main”进入到主程序,在主程序“flag=0;”处设置断点;6. 单击“Debug Run”运行程序,或按F5 运行程序;程序将运行至断点处停止;7. 用 View / Graph / Time/Frequency打开一个图形观察窗口;设置该观察图形窗口变量及参数;采用双踪观察在启始地址分别为px 和pz,长度为128,数值类型为16 位整型,px:存放经A/D 转换后的输入信号;pz:对该信号进行FFT变换的结果;8. 单击“Debug Animate”运行程序,或按F10运行;观察窗口并观察输入信号波形及其FFT变换结果;9. 单击“

21、Debug Halt”暂停程序运行,关闭窗口,本实验结束。五、子程序流程图: 六、实验结果在CCS2.0环境,同步观察输入信号波形及其FFT变换结果(下图观察窗口中px波形在上面,pz 波形在下面)五、实验心得机器和软件能告诉我们怎么去做,这是前人帮我们建立的基础,而我们可以通过设置参数,需要告诉机器怎么去做。适当修改 cmd 文件和源程序,能更改程序和数据的大小和位置,然后再通过观察机器自动生成的map 文件可以了解DSP代码的确切信息,从而了解到程序的大小和位置,这也是工程上的需要。通过学习DSP这门课程,我认识到动手能力的重要,让我收获很大。实验一 快速傅立叶变换(FFT)算法实验一 实

22、验目的1加深对DFT算法原理和基本性质的理解;2熟悉 FFT算法原理和FFT子程序的应用;3学习用FFT对连续信号和时域信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应用FFT。二 实验设备计算机,CCS 2.0 版软件,实验箱,DSP仿真器,导线三 基本原理1离散傅立叶变换DFT的定义:将时域的采样变换成频域的周期性离散函数,频域的采样也可以变换成时域的周期性离散函数,这样的变换称为离散傅立叶变换,简称DFT。2FFT是DFT的一种快速算法,将DFT的N2步运算减少为(N/2)log2N 步,极大的提高了运算的速度。3旋转因子的变化规律、蝶形运算规律及基 2FFT算法

23、。四 实验步骤1底板的开关SW4 的第1位置ON,其余置OFF。其余开关不用具体设置。2板子上的SW7开关的第1位置OFF,其余位置ON3. 正确完成计算机、DSP仿真器和实验箱的连接后,系统上电。4. 启动CCS2.0,Project/Open 打开“algorithm01_fft”子目录下“fft.pjt”工程文件;双击“fft.pjt” 及“Source”可查看各源程序;加载“Debugfft.out”;5. 单击“DebugGo main”进入到主程序,在主程序“flag=0;”处设置断点;6. 单击“Debug Run”运行程序,或按F5 运行程序;程序将运行至断点处停止;7. 用

24、View / Graph / Time/Frequency打开一个图形观察窗口;设置该观察图形窗口变量及参数;采用双踪观察在启始地址分别为px 和pz,长度为128,数值类型为16 位整型,px:存放经A/D 转换后的输入信号;pz:对该信号进行FFT变换的结果;8. 单击“Debug Animate”运行程序,或按F10运行;观察窗口并观察输入信号波形及其FFT变换结果;9. 单击“Debug Halt”暂停程序运行,关闭窗口,本实验结束。五、子程序流程图: 六、实验结果在CCS2.0环境,同步观察输入信号波形及其FFT变换结果(下图观察窗口中px波形在上面,pz 波形在下面)五、实验心得机

25、器和软件能告诉我们怎么去做,这是前人帮我们建立的基础,而我们可以通过设置参数,需要告诉机器怎么去做。适当修改 cmd 文件和源程序,能更改程序和数据的大小和位置,然后再通过观察机器自动生成的map 文件可以了解DSP代码的确切信息,从而了解到程序的大小和位置,这也是工程上的需要。通过学习DSP这门课程,我认识到动手能力的重要,让我收获很大。实验一 快速傅立叶变换(FFT)算法实验一 实验目的1加深对DFT算法原理和基本性质的理解;2熟悉 FFT算法原理和FFT子程序的应用;3学习用FFT对连续信号和时域信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应用FFT。二 实验设

26、备计算机,CCS 2.0 版软件,实验箱,DSP仿真器,导线三 基本原理1离散傅立叶变换DFT的定义:将时域的采样变换成频域的周期性离散函数,频域的采样也可以变换成时域的周期性离散函数,这样的变换称为离散傅立叶变换,简称DFT。2FFT是DFT的一种快速算法,将DFT的N2步运算减少为(N/2)log2N 步,极大的提高了运算的速度。3旋转因子的变化规律、蝶形运算规律及基 2FFT算法。四 实验步骤1底板的开关SW4 的第1位置ON,其余置OFF。其余开关不用具体设置。2板子上的SW7开关的第1位置OFF,其余位置ON3. 正确完成计算机、DSP仿真器和实验箱的连接后,系统上电。4. 启动CC

27、S2.0,Project/Open 打开“algorithm01_fft”子目录下“fft.pjt”工程文件;双击“fft.pjt” 及“Source”可查看各源程序;加载“Debugfft.out”;5. 单击“DebugGo main”进入到主程序,在主程序“flag=0;”处设置断点;6. 单击“Debug Run”运行程序,或按F5 运行程序;程序将运行至断点处停止;7. 用 View / Graph / Time/Frequency打开一个图形观察窗口;设置该观察图形窗口变量及参数;采用双踪观察在启始地址分别为px 和pz,长度为128,数值类型为16 位整型,px:存放经A/D 转

28、换后的输入信号;pz:对该信号进行FFT变换的结果;8. 单击“Debug Animate”运行程序,或按F10运行;观察窗口并观察输入信号波形及其FFT变换结果;9. 单击“Debug Halt”暂停程序运行,关闭窗口,本实验结束。五、子程序流程图: 六、实验结果在CCS2.0环境,同步观察输入信号波形及其FFT变换结果(下图观察窗口中px波形在上面,pz 波形在下面)实验二 卷积(Convolve)算法实验一 、实验目的1了解卷积算法的原理;2掌握 TMS320 C54X 程序的编译和调试方法;3掌握在CCS环境下,编写和调试程序的方法。二 、实验设备计算机,CCS 2.0 版软件,DSP

29、仿真器,E300实验箱,信号输入线三 、实验原理卷积的基本原理。四 、实验步骤1. 底板的开关SW4 的第1位置ON,其余置OFF。其余开关不用具体设置;2. 板子上的SW7开关的第1位置OFF,其余置ON;3. 正确完成计算机、DSP 仿真器和实验箱连接;启动CCS3.1,用Project/Open 打开“04_convolveconvolve.pjt”工程文件;双击“convolve.pjt”及“Source”可查看源程序;并加载“convolve.out”;4. 在”Convolve.c”文件中最后的“flag = 0”处,设置断点;单击“Debug Run”运行程序,程序运行到断点处停

30、止;5. 用 View / Graph / Time/Frequency打开图形观察窗口;设置观察图形窗口变量及参数;采用双踪观察两路输入变量Input 及Impulse的波形,波形长度为512,数值类型为32 位浮点型;6打开一个图形观察窗口,以观察卷积结果波形;该观察窗口的参数设置为:变量为Output,长度为1024,数据类型为32 位浮点数;7. 调整观察窗口,观察两路输入波形和卷积结果波形;8. 关闭“convolve.pjt”工程文件,关闭各窗口,实验结束。五、子程序流程图六、实验结果设置好CCS的环境,打开本工程,编译、下载、运行。用图形观察窗口观察y数组中的波形数据如下:七、实验心得 在这门课程学习中,我的最大体会是要学会强迫自己动手,整合思路,查找资料,为己所用。平时所学的理论知识只是基础,真正应用软件做设计的时候才能知道自己的局限性。一味停留在老师的教学中自己能做的实在是少之又少。老师只是在较高的层次上为自己的学习指明道路,为整体概念指出思路。所以就应该学会利用资料,首先就是互联网,然后是图书馆。由于时间限制,最合理的资料应该是互联网,快速,方便。搜集到资料以后不能照抄,应该仔细阅读,读懂,然后根据自己的要求改变参数。总之,只有知道怎么自己学习,才能知道怎么自己动手,实在收获颇丰。

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

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