注册 登录
光电工程师社区 返回首页

microunit的个人空间 https://club.oecr.com/?67401 [收藏] [复制] [分享] [RSS]

日志

正弦波的产生

已有 779 次阅读2008-12-28 23:50 |个人分类:学习日志|

一.使用查找表
1)通过TurboC或Matlab,可以预先计算出正弦数据表: DataTblSine=ValueScale*sin(2.0*pi*n*f/Fs), 生成数组或H文件;
2)每Ts周期发生中断,在ISR中,从数据表中取出一数据点至DAC;
注意:浮点与定点转换及误差,ADC/DAC的满刻度值......

二.使用迭代法
1)使用差分方程y(n)=Ay(n-1)-y(n-2), 其中A=2cos(wT), y(-1)=-sin(wT), y(-2)=-sin(2wT), y(-1)与y(-2)是两个初始条件, w=2*pi*f, 取样周期T=1/Fs, Y(z)=z*sin(wT)/(z^2-Az+1).
2)每Ts周期发生中断,在ISR中,进行上述差分方程计算并输出一数据点至DAC;
注意:浮点与定点转换及误差,ADC/DAC的满刻度值......

路过

雷人

握手

鲜花

鸡蛋

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册