版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上精选优质文档-倾情为你奉上专心-专注-专业专心-专注-专业精选优质文档-倾情为你奉上专心-专注-专业 用定时器实现数字振荡器实验目的在数字信号处理中,会经常使用到正弦/余弦信号。通常的方法是将某个频率的正弦/余弦值预先计算出来后制成一个表,DSP 工作时仅作查表运算即可。在本实验中将介绍另一种获得正弦/余弦信号的方法,即利用数字振荡器用叠代方法产生正弦信号。 本实验除了学习数字振荡器的 DSP 实现原理外,同时还学习 C54X定时器使用以及中断服务程序编写。另外,在本实验中我们将使用汇编语言和 C 语言分别完成源程序的编写。实验原理数字振荡器原理设一个传递函数为正弦序
2、列 sinkT,其 z 变换为其中,A=2cosT, B=-1, C=sinT。设初始条件为 0,求出上式的反 Z 变换得:yk=Ayk-1+Byk-2+Cxk-1这是一个二阶差分方程, 其单位冲击响应即为 sinkT。 利用单位冲击函数 xk-1的性质,即仅当 k=1时,xk-1=1,代入上式得:k=0 y0 = Ay-1 + By-2 + 0 = 0 k=1 y1 = Ay0 + By-2 + c = c k=2 y2 = Ay1 + By0 + 0 = Ay1 k=3 y3 = Ay2 + By1 . . k=n yn= Ayn-1 + Byn-2 在 k2 以后,yk能用 yk-1和
3、yk-2算出,这是一个递归的差分方程。 根据上面的说明,我们可以开始数字振荡器的设计。设该振荡器的频率为 2kHz,采样率为 40kHz(通过定时器设置,每隔 25us 中断一次,即产生一个 yn) ,则递归的差分方程系数为: A=2cosT=2cos (2 x PI x 2000 / 40000)=2 x 0. B=-1 C=sinT=sin (2 x PI x 2000 / 40000)=0.为了便于定点 DSP 处理,我们将所有的系数除以 2,然后用 16 位定点格式表示为:这便是本实验中产生 2KHz 正弦信号的三个系数。在本实验中,主程序在初始化时先计算出 y1和 y2,然后开放定时
4、器中断。以后每次进入定时器中断服务程序时,利用前面的 y1和 y2,计算出新的有 y0,通过 CCS提供的图形显示工具,我们将在图形窗口中看到一个正弦信号波形。下面是初始化和中断服务程序代码片段: 初始化 y1和 y2: ssbx FRCT ;置 FRCT=1,准备进行小数乘法运算 st #INIT_A,AA ;将常数 A装入变量 AA st #INIT_B,BB ;将常数 B装入变量 BB st #INIT_C,CC ;将常数 C装入变量 CC pshd CC ;将变量 CC压入堆栈popd y2 ;初始化 y2=CCld AA, T ;装 AA到 T 寄存器 mpy y2,a ;y2 乘系
5、数A,结果放入 A寄存器 sth a,y1 ;将 A寄存器的高 16 位存入变量 Y1 中断服务程序片段: ld BB,T ;将系数 B装入 T 寄存器 mpy y2,a ;y2 乘系数B,结果放入 A寄存器 ltd y1 ;将 y1 装入T 寄存器,同时复制到 y2 mac AA,a ;完成新正弦数据的计算,a 寄存器中为 y1*AA+y2*BB sth a,1,y1 ;将新数据存入 y1,因所有系数都除过 2,所以在保,存结果时转移一位,恢复数据正常大小。 sth a,1,y0 ;将新正弦数据存入 y0C54X的定时器操作初始化定时器的程序片段:stm #10h,TCR ;停止定时器 st
6、m #2499,PRD ;设置 PRD寄存器值为 2499,TINT 中断频率为 ; Foutclk /(2499+1)= 100MHz/2500 = 40 KHz stm #20h,TCR ; 重新装入TIM 和 PSC,然后启动定时器C54X中断的使用本实验的初始化程序读取中断向量表的启始地址,然后设置 PMST 的高 9 位,以便DSP 能正确响应中断,代码如下: ld #0,dp ;设置DP 页指针 ssbx intm ;关闭所有中断 ld #vector, a ;读出中断向量(地址 vector 在中断向量表程序中定义)and #0FF80h, a ;保留高 9位(IPTR) and
7、m #007Fh, pmst ;保留 PMST 的低 7 位 or pmst, a ; stlm a, pmst ;设置 PMST(其中包括 IPTR)实验内容本实验需要使用 C54X汇编语言或 C 语言实现数字振荡器, 并通过 CCS提供的图形显示窗口观察输出信号波形以及频谱。实验分下面几步完成:1) 根据确定数字振荡器的频率,确定系数。数字振荡器系数的确定在前面已经说明,这里不再赘述。 2) 启动 CCS,新建工程文件,如文件名为 sinewave.pjt。选择 Project 菜单中的Add File to 4Project 选项,将汇编源程序 exer3.asm、vec_table.a
8、sm和连接定位 sinewave.cmd文件依次添加到工程文件中。注意,你可以在添加文件对话框中选择显示不同的文件类型来加快文件选择速度。你也可以使用鼠标右键单击工程文件名(如sinewave.pjt)并选择 Add Files项来添加需要的文件。其中,exer3.asm包括初始化代码和中断服务程序,而 vec_talbe.asm包含中断向量表。 3) 选择 Project 菜单中的 Options 选项,或使用鼠标右键单击工程文件名(如sinewave.pjt)并选择 build options 项来修改或添加编译、连接中使用的参数。选择Linker 窗口,在“Output Filename”栏中写入输出 OUT 文件的名字,如 sine.out,你还可以设置生成的 MAP 文件名。 4) 完成编译、连接,正确生成 OUT 文件。然后使用 File 菜单的“Load Program”选项,将生成的 OUT 文件(如 sine.out)装入 DSP 的片内存储器。这时 CCS 将显示程序的启始地址_c_int00。 5) 选 ViewGraphTime/Frequency打开图形显示设置窗口。在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 密码基础及应用 7
- 山东省淄博市2025年化学中考试卷(含答案)
- 2026年小学生主题班会安全
- 2026年市场调研竞品分析报告
- 2026年街道安全生产检查队
- 2026年用户增长策略产品经理
- 2026年小学生成长手册社会实践
- 2026年班级主题班会活动方案策划
- 2026年教研活动常态化工作方案设计
- 2026年车辆抵押贷款合同三篇
- 2026云南地质工程第二勘察院有限公司社会招聘29人考试参考题库及答案详解
- 2026贵州贵阳市白云区选聘社区工作者62人备考题库含答案详解
- 漂流岗位责任制度
- 药品窜货管理办法
- 《新生儿感染性肺炎》课件
- 2025届广东省普宁市第一中学高考历史一模试卷含解析
- 金属非金属矿山开采方法手册
- DBJT13-366-2021 建筑工程附着式升降脚手架应用技术标准
- 《烟草行业培训教材》课件
- DZ∕T 0321-2018 方解石矿地质勘查规范(正式版)
- 趣识古文字智慧树知到期末考试答案章节答案2024年吉林师范大学
评论
0/150
提交评论