开方表
- 相关推荐
开方表
-
2023年2月9日发(作者:clamping)龙源期刊网
基于DSP的基本函数快速计算
作者:李泽光
来源:《现代电子技术》2008年第05期
摘要:在许多数字信号处理中,一般都会有实时性的要求,在满足计算精度条件下,函
数的运算速度非常重要。在DSP上实现基本函数的计算方法有多种,通过设计一个简单的查
表电路,可以用查表法快速计算函数值,此电路也使函数表的空间扩展不受DSP存储器空间
限制。另外,还给出了三角函数、自然对数和平方根函数表的制作方法以及用查表法求基本函
数值的过程。
关键词:函数运算;三角函数;对数;查表法
中图分类号:TN29文献标识码:B
文章编号:1004373X(2
RapidComputationofBasicFunctiononDSP
LIZeguang
(InformationEngineeringCollege,DalianUniversity,Dalian,116622,China)
Abstract:Inmanydigitalsignalprocessing,ingenerally,
operationspeedoffunctionisveryimportantundermeetingtheconditionofoperation
remanywaystorealizeoperationofbasicfunctiononDSP,withdesigningasimple
look-tablecircuit,thefunctionvaluecanbecalculatedspeedilybylook-tablealgorithm,thiscircuitalso
makesthespaceexpandingofthefunctiontableisnothandicapedbymemoryspaceof
s,themakingwaysoftrigonometricfunctiontable,naturallogarithmfunctiontableand
squarerootfunctiontablearegiven,thecoursetocalculatebasicfunctionvalueisalsogivenbylook-
tablealgorithm.
Keywords:functionoperation;trigonometricfunction;logarithm;look-tablealgorithm
在DSP或一般单片机中最常见的运算指令是“加”和“乘”,而在数据处理中,不但有加、
减、乘、除等运算,还要有一些基本函数的计算,如利用正交双通道零中频算法测量信号相位
差[1]或分析信号倒频谱时,需要计算三角函数、平方根函数、对数函数等。在DSP上实现函数
计算一般可以从数值精度、时间效率和空间效率等角度来衡量各种算法的优劣[2]。利用高级语
言库函数求这些基本函数的运算速度比较慢,在许多数字信号处理中,一般都有实时性的要
求,在满足计算精度条件下,函数的运算速度尤为重要。对于空间效率来讲,本文中给出一个
查表电路,其最大特点是不占用DSP的存储器空间,而只占用他的一个I/O端口,利用此电路
提高了空间利用率,查表时使用的指令很少,从而提高了函数值的运算速度。
龙源期刊网
1函数表电路
函数表电路如图1所示,如果系统时钟比较快,应选择高速器件。这里以16位定点DSP
为例,即数据线有条,则用2片分别存储函数表的高位和低8位
数据,若每个函数表的容量是4kB,则此电路可以存储16个函数表,每个函数表的空间大小
也可以根据需要来定。设函数表示为:
其中:x是自变量,y是函数值,x和y都是16位定点数。查表时x作为查找存储在27512
存储单元中函数值y的地址,经两片74HC574输出连接到27512的16条地址线上,然后,
DSP从两片74LS244中读取函数值y。若查表端口为PA,则查表时只用两条指令即可完成,
即:
2函数表的制定
由于使用的是16位定点DSP,因此,各函数表的函数值采用16位定点方式,最高位为符
号位,低15位为有效数字位,即Q15方式。所有的数都采用小数形式,即小数点位于最高位
后。每个函数表容量为4096B,下面分别给出三角函数表(正弦函数表和余弦函数表)、以e为
底的自然对数表、平方根函数表的制作方法。
2.1三角函数表的制作
将正、余弦函数1/4周期内等间隔取4096个值,归一化后进行量化并编码,分别制成
正、余弦函数表。
正弦函数表值:
在式(2)和式(3)中,n为自然数,取值范围为,函数int[]表示对括号中的数取
整数,式中函数值乘32768是将小数变为整数后再变成Q15方式二进制数。
对于浮点数,b为指数,a为正的Q15方式小数,取值范围为:0-5≤a
自然对数表值:
2.3平方根函数表的制作
平方根函数表是将0~1等间隔取4096个数,再求平方根,即平方根函数表值为:
式(7)中,n为自然数,取值范围为0~4095。
龙源期刊网
以上是几个基本函数表值的计算,最后要将函数表值变为二进制数,用程序写入器写入两
片27512中,每个函数表分配4k地址,地址线高4位作为每个函数表的段地址,地址线低12
位作为函数查表地址。
3函数的计算
3.1正、余弦函数值的计算
假设正、余弦信号频率为f,求一个周期内某一时刻点k的函数值,其中,k取值范围为
0~N-1,则在计算cos(2πfk/N)和sin(2πfk/N)时,需要进行查表求函数值,由于在制表过程中,
已将圆周率π考虑进去,所以,在计算角度时只计算2fk/N。
假设λ=2fk/N=2n+φ,其中,n为自然数,φ<2。下面给出cos(λ)和sin(λ)的求解过程。首
先去掉λ中的2n项,得到小于2的Q15方式的小数,这里最高位不是符号位,而代表数值1
或0。实际上,cos(λ)=cos(φ),sin(λ)=sin(φ)。计算cos(λ)和sin(λ)的流程图如图2所示。
从以上3种情况看,每种情况下只有对正实小数进行开方运算,所以在计算时,将Q15方
式的小数向右移4位,其高4位为换上开方表段地址,即可查表求得a。
4结语
在DSP上实现基本函数的计算方法有多种[2,3],这里介绍的方法可以快速计算函
数值,其实现电路简单,函数表的空间扩展方便,不受DSP存储空间限制的,我们在为海军
装备修理部研制“HSP-1型声纳电功率测量仪”中得到应用,取得良好效果。
参考文献
[1]李泽光.基于正交双通道算法的相位差测量[J].电测与仪表,2004,41(2):20-21,29.
[2]马士超,王贞松.基于DSP的三角函数快速计算[J].计算机工程,2005,31(22):12-14.
[3]方彦军,孙健.智能仪器技术及其应用[M].北京:化学工业出版社,2004.
[4]李泽光,宋伯涛.噪声中正(余)弦信号相位差的检测[J].电测与仪表,2006,43(11):10-11.
作者简介李泽光男,1963年出生,毕业于西安电子科技大学,硕士,大连大学副教授。
主要研究方向为信息与信号处理,现从事电子信息工程专业教学和科研工作。
注:“本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。”