DSP正弦波——查表法原理(共3页).doc

上传人:飞****2 文档编号:13574178 上传时间:2022-04-30 格式:DOC 页数:3 大小:50KB
返回 下载 相关 举报
DSP正弦波——查表法原理(共3页).doc_第1页
第1页 / 共3页
DSP正弦波——查表法原理(共3页).doc_第2页
第2页 / 共3页
点击查看更多>>
资源描述

《DSP正弦波——查表法原理(共3页).doc》由会员分享,可在线阅读,更多相关《DSP正弦波——查表法原理(共3页).doc(3页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上正弦波的产生方法目前,正弦波的产生方法主要有两种:(1)查表法(2)利用数字振荡器产生正弦波1)查表法考虑一个模拟正弦波的表达式,并以固定的时间间隔对其进行采样,即其中,为初始相位;F为模拟频率,即需要产生的频率;Fs为采样频率;即为采样间隔。因此,要想产生一个正弦波,需要在每一个采样间隔计算xn的值,并通过数模转换器(DAC,Digital-to-Analog Convector)输出。通过将xn的值以不同的幅度和不同的采样间隔输出,就可以得到任意幅度、任意频率的正弦波或余弦波。根据上式,xn通过计算正弦函数而得。基于此,可以构造一个查找表,表中所列为余弦函数的值。

2、考虑到不可能把正弦函数或余弦函数的所有值都放在查找表内,不妨将表的大小初设为517项。又考虑到正弦函数和余弦函数之间只有一个90的相移,可以将表的大小缩减为257项。表中的第一个值对应于,最后一个值对应于180,或者说。这样,表中相邻两点之间的间隔为180/256=0.,即表格中的第1项是cos0的值,第2项是cos0.的值,第3项是cos1.的值,以此类推,最后一项是cos180的值。利用该表所能构成的波形的相位步进通常是0.的整数倍。在采样过程中,上式中的n值在每一个采样间隔递增,从而得到模拟正弦波的采样版本。但是,如何通过查找余弦表的方法来产生一个任意频率F的正弦波呢?由于在前面构造的余

3、弦函数表中,已经包括了以0.为间隔的余弦函数值,现在的问题就变成了,当n递增时,怎样估计出相位的值。记录波形的初始相位和当前相位,以得到连续相位的正弦波。如果记录了上一个输出点的相位值,利用正弦波的频率信息,就可以计算出当前输出点的相位值,该相位值是和幅度值相对应的。在此基础上,就可以根据相位值去查找余弦表中相应的位置,得到当前输出点的幅度值。假设需要产生频率为F的正弦波,它的起始相位是Init_Phase,和F对应的相位步进为Phase_Step。相位步进的计算式为Phase_Step=2=例如,如果需要产生的正弦波的频率为10KHz,采样频率为44.1KHz,对应的相位步进为Phase_S

4、tep=其中,radians为弧度。于是,在每一个采样间隔输出信号的幅度为(n=0,1,2,.)利用这个式子计算的相位步进和上一个输出点的相位信息,就可以计算出当前输出点的相位值。当前输出点的相位值等于上一个输出点的相位值加上相位步进。例如,如果输出信号的初始相位为0,那么,下一个输出点的相位就为81.6,再下一个输出点的相位为163.2,以此类推。得到这些相位值后,就可以从查找表中的对应位置去读取当前输出点的幅度。为了便于以DSP处理器中常用的Q15格式来表示,将相位值按进行归一化计算相位(Radians)归一化值/Q15格式(十六进制)/41/42000/21/240003/43/4600

5、0-18000-3/4-3/4A000-/2-1/2C000 由于前面建立的查找表是以余弦函数为基础的,所以在产生正弦波时,需要将归一化的相位值减去/2,即4000H,然后才能利用得到的相位值去查找表中读取对应的幅度值。令COSOFF指向查找表的表头,那么cos0、 和在表中对应的地址分别为COSOFF、(COSOFF+128)和(COSOFF+256)。如果输出信号的初始相位为-119.53,那么,该初始相位在查找表中对应的地址为-119.53/0.= -170,即初始点的幅度值对应的地址为(COSOFF+170)。这里没有使用-170,是因为余弦函数具有偶对称性,即。正是基于这一原因,在查

6、表法中通常都是构造余弦表,而不是正弦表。将该初始相位的地址按照查找表的大小进行归一化处理,得到其Q15格式的表示为:。其中,归一化的初始相位地址的范围为-1,+1,-1对应-180,+1对应+180。仍然使用刚才的例子,需要产生一个10KHz的正弦波,采样频率为44.1KHz,其按归一化后的相位步进的Q15格式表示为在输出了初始相位对应的幅度值后,当前输出点的相位为Current_Phase,即,n=1,其计算过程如下:Current_Phase=Init_Phase+Phase_Step =AB00H+3A0CH =E50CHInit_Phase= Current_Phase ;For co

7、ntinuous phase由于是产生正弦波,还需要减去/2,即4000H。 Sine_Phase=E50CH-4000H =A50CH注意得到的结果A50CH为负,再次利用余弦函数的偶对称性质,使用该值的绝对值5AF4进行查表即可。利用上面的结果查表,实际就是计算距离余弦表头的偏移量。余弦表头地址加上该偏移量,就得到当前输出点幅度值的地址。使用上面的绝对相位值计算偏移量为:5AF4H/80H=B5H=181(十进制)。因此,余弦表中存储的第181个数据就是当前输出的幅度值,即= -0.6055。由于只有简单的加、减操作,查表法的速度非常快,这是它最重要的优点。另外,由于需要存储查找表,查找表需要消耗一定的存储时间,特别是当表格比较大时,这种开销是惊人的,往往令系统难以承受。这时,就需要使用其他方法来产生正弦波了,比如数字振荡器法。还可以根据泰勒级数展开近似求得sin或者co s函数sinx=x-x3/3!+x5/5!-x7/7!+x9/9!cos=1-x2/2!+x4/4!-x6/6!+x8/8!在利用2倍角来产生正弦,程序在下面的文档进行更新专心-专注-专业

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁