[发明专利]实现对数运算的装置及方法无效
申请号: | 200910202008.5 | 申请日: | 2009-12-21 |
公开(公告)号: | CN102103480A | 公开(公告)日: | 2011-06-22 |
发明(设计)人: | 张帆;金方其 | 申请(专利权)人: | 卓胜微电子(上海)有限公司 |
主分类号: | G06F7/556 | 分类号: | G06F7/556 |
代理公司: | 上海浦一知识产权代理有限公司 31211 | 代理人: | 戴广志 |
地址: | 201203 上海市浦东新*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 实现 对数 运算 装置 方法 | ||
技术领域
本发明涉及信号处理领域,特别是涉及一种实现对数运算的装置。本发明还涉及一种实现对数运算的方法。
背景技术
对数运算一般的可以表示成Y=loga(X),其中X是输入,a称为底数,常用的底数有2,e,10。对数运算有许多应用,其中包括自动增益控制,在自动增益控制中需要计算信号的功率值,为了便于后面的处理,往往需要转换成分贝,即Y=20×log10(X),其中X代表信号的幅度测量值。这就需要一种合适的计算对数的装置。
对数运算目前已有很多方法,一类比较直接的方法是查表,即把X的每个值所对应的对数值存到表中。这种方法对于精度要求不高以及X的动态范围有限的场合下是合适的,但是在自动增益的应用场合往往要求较大的动态范围和较高的精度,即使采用分段查表的方法,其复杂度仍比较高。另外一类方法是采用幂级数展开或者数值递推等数值计算方法(参见《高级FPGA设计结构、实现和优化》----(美)克里兹著,孟宪元译机械工业出版社2009)。这类方法精度很高但是计算复杂,需要多次迭代计算,往往还需要先对X作归一化操作(Prescaling),收敛速度慢。另外上述方法都不够灵活,不能通过简单的改动来实现不同精度不同底数的对数运算。这就需要一种简单的,又能灵活配置的对数运算装置。
发明内容
本发明要解决的技术问题是提供一种实现对数运算的装置,能够根据需要进行灵活配置实现不同精度不同底数的对数运算,并且结构简单,实现的低复杂度;为此,本发明还要提供一种实现对数运算的方法。
为解决上述技术问题,本发明的实现对数运算的装置包括:
输入控制逻辑模块,用于把输入X的值转换成A,B,S的值,并赋值给寄存器A,寄存器B,寄存器S,初始化所述寄存器;
寄存器A,寄存器B,寄存器S,其输入端与输入控制逻辑模块连接,分别用于存储A,B,S的值;
寄存器K,其输出端与迭代比较控制模块连接,用于存储设定的常数K,且K为大于1的有理数;
一累加器CNT,其输入端与迭代比较控制模块连接,输出端与MUX模块连接,在所述迭代比较控制模块的控制下进行累加计算;
迭代比较控制模块,与所述寄存器A,寄存器B,寄存器K,累加器CNT连接,用于以迭代方式获得对数运算结果;
MUX模块,根据累加值CNT的值和寄存器S中的符号指示位S,得到最终的对数结果Y,Y=S×CNT。
本发明的实现对数运算的方法包括如下步骤:
步骤一、将输入X的值拆分为或近似为分子除以分母的形式,将分子分母中大的值赋给寄存器A,将分子分母中较小的值赋给寄存器B,根据X是否大于1来预先确定对数的符号并存储给寄存器S;
步骤二、迭代比较寄存器A中的数值A与寄存器B中的数值B与常数K的乘积K×B,同时更新加器CNT和寄存器B的值,直至A≤K×B为止;
步骤三、根据累加器CNT和寄存器S的值确定最终的对数计算结果Y。
本发明实现简单,复杂度低,无需查表,只需几次加减法运算操作即可得到最终的对数计算结果;操作灵活,通过配置不同的参数(常数K)即可实现不同精度不同底数的对数运算。
附图说明
下面结合附图与具体实施方式对本发明作进一步详细的说明:
图1是本发明的对数运算方法一实施例控制流程图;
图2是本发明的对数运算装置一实施例结构框图;
图3是图2中的迭代比较状态机的控制流程图。
具体实施方式
参见图1所示,在一实施例中所述实现对数运算的方法包括如下步骤:
步骤一、根据输入X的值初始化寄存器A,B和S。将X的值近似成分子除以分母的形式,并把分子分母中较大的值赋给寄存器A,把较小的值赋给寄存器B。即当X小于1时,X≈B/A,S=-1;当X大于等于1时,X≈A/B,S=1。
步骤二、迭代比较寄存器A的值A与寄存器B中的数值B与K的乘积K×B,同时更新一个累加器CNT和寄存器B的值,直至A≤K×B为止。
根据获得的寄存器A的值A和寄存器B的值B,通过以下的迭代过程来更新累加器CNT以及寄存器B的值:
(1)累加器CNT清零;
(2)比较A和K*B,如果A>K*B则进入(3),如果A≤K*B则进入(4);
(3)累加器加1,即CNT=CNT+1,更新寄存器B的值,即B=K×B,返回(2);
(4)迭代过程结束,输出累加器CNT的值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于卓胜微电子(上海)有限公司,未经卓胜微电子(上海)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910202008.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种基于空间矢量方程求解的三维定位线计算方法
- 下一篇:小型恒温反应装置