- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验三用定时器实现数字振荡器.doc
实验三 用定时器实现数字振荡器
1 实验目的
在数字信号处理中,会经常使用到正弦/余弦信号。通常的方法是讲某个频率的正弦/余弦值余弦计算出来后制成一个表,DSP工作时仅作查表运算即可。在本实验中将介绍另一种获得正弦/余弦信号的方法,即利用数字振荡器用叠代方法产生正弦信号。
本实验除了学习数字振荡器的DSP实现原理外,同时还学习C54X定时器使用以及中断服务程序编写。另外,在本实验中我们将使用汇编语言和C语言分别完成源程序的编写。
2 实验要求
本实验利用定时器产生了一个2kHz的正弦信号,定时器被设置成每25uS产生一次中断,(等效于采样速率未40k)利用该中断,在该中断服务程序中用叠代算法计算出一个SNT值,病利用CCS的图形显示功能查看波形。
3 实验原理
(1)数字振荡器原理
设一个传递函数为阵线序列sinkwT,其z变换为
其中,A=2coswT,B=-1,C=sinwT。设初始条件为0,求出上式的反Z变换得:
y[k]=Ay[k-1]+By[k-2]+Cx[k-1]
这是个二阶差分方程,其单位冲击响应即为sinkwT。利用单位冲击函数x[k-1]的性质,即仅当k=1时,x[k-1]=1,代入上式得:
k=0 y[0]=Ay[-1]+By[-2]+0=0
k=1 y[1]=Ay[0]+By[-2]+c=c
k=2 y[2]=Ay[1]+By[0]+0=Ay[1]
k=3 y[3]=Ay[2]+By[1]
k=n y[n]=Ay[n-1]+By[n-2]
在k﹥2以后,y[k]能用y[k-1]和y[k-2]算出,这是一个递归得方法。
根据上面得说明,我们可以开始数字振荡器得设计。设该振荡器得频率为2kHz,采样率为40kHz(通过定时器设置,每隔25us中断一次,即产生一个y[n])则递归得差分方程系数为:
A=2coswT=2cos(2×PI×2000/40000)=2×0B=-1
C=sinwT=sin(2×PI×2000/40000)=0为了便于定点DSP处理,我们将所有系数除以2,然后用16为定点格式表示为:
这便是本实验中查生2kHz阵线信号的三个系数。在本实验中,主程序在初始化时先计算出y[1]和y[2],然后开放定时器中断。以后每次进入定时器中断服务程序时,利用前面的y[1]和y[2],计算出新的所有y[n],通过CCS提供的图形显示工具,我们将在图形窗口中看到一个正弦信号波形。下面时初始化和中断服务程序代码片断:
初始化y[1]和y[2]:
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=CC
ld AA.T :装AA到T寄存器
mpy y2,a :y2乘系数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,l,y1 :将新数据存入y1,因所有系数都除过2,所以在
保存结果时转移一位,恢复数据正常大小
sth a,l,y0 :将新正弦数据存入y0
(2)C54X的定时器操作
C54X的片内定时器利用CLKOUT时钟计数,用户使用三个寄存器(TIM,PRD,TCR)来控制定时器,参见表4-1。
文档评论(0)