广告

想获得真正的对数增益?其实只需要Dpot伪对数+对数查找表

2024-09-12 17:34:04 Stephen Woodward 阅读:
尽管有了改进,但它仍然不是一个真正的对数函数,那么我们能做得更好吗?

这是,其中包含(第15页,图4-4)一个有趣的应用电路,该电路由具有伪对数增益设置的Dpot控制放大器组成。但是,正如Microchip文本中所解释的那样,当电位器的控制设置接近0或256时,该电路实现的增益会开始发生根本性变化,Microchip文本中写道:“当电位器接近任一端子时,增益计算中的步长都会急剧增加。建议将此电路用于0.1至10V/V之间的增益。”SYkednc

这是个好建议。遗憾的是,如果按照这个建议去做,实际上会放弃256个8位电位器设置中的48个,相当于损失了近20%的可用分辨率。图1中所示的简单修改可以消除这一限制。SYkednc

SYkednc

图1:添加两个固定电阻器,将增益范围限制在建议的限值内,同时保持完整的8位分辨率。SYkednc

这就得到了图2中的增益与红色的关系曲线。SYkednc

SYkednc

图2:通过图1所示的简单修改,伪对数增益曲线略有改善。SYkednc

然而,尽管有了这样的改进,关键项仍然是伪对数。它仍然不是一个真正的对数函数,事实上,从数量上看,它甚至没有那么接近对数函数,在某些地方偏差了近两倍。那么我们能做得更好吗?答案是,当然!SYkednc

简单的(软件)技巧是准备一个257字节的对数查找表,将0.1到10.0的增益范围设置转换为对数生成这些增益所需的Dpot代码。SYkednc

我们将表索引变量称为J。然后,对于(abs)增益G从0.1到10.0(含)的257字节表,SYkednc

J(G) = (128 LOG10(abs(G)) + 128)SYkednc

例如SYkednc

J(0.1) = 0,SYkednc

J(0.5) = 89,SYkednc

J(1.0) = 128,SYkednc

J(10.0) = 256,SYkednc

等等……SYkednc

观察图1中的增益表达式可以发现,(绝对)增益G所需的Dpot十进制代码N为:SYkednc

N(G) = (284.4G – 28.4)/(G + 1)SYkednc

因此N(.1)  = (28.4 – 28.4)/(.1 + 1) = 0/1.1 = 0,SYkednc

N(.5)  = (142 – 28.4)/(.5 + 1) = 114/1.5 = 76,SYkednc

N(1.0) = (284.4 – 28.4)/(1 + 1) = (256)/2 = 128,SYkednc

N(10.0) = (2844 – 28.4)/(10 + 1) = 2816/11 = 256,SYkednc

等等。SYkednc

图3总结了G、J和N之间的最终关系。SYkednc

SYkednc

图3:Dpot设置[N(J)]与对数表索引[J(G)],总结了G、J和N之间的关系。SYkednc

对数增益表可在此Excel表中找到。最终结果具有8位所允许的尽可能好的对数一致性如图4中的绿线所示。SYkednc

SYkednc

图4:绝对增益[Gabs=10(J/128-1)]与十进制码(J)的关系。SYkednc

(原文刊登于EDN美国版,参考链接:Dpot pseudolog + log lookup table = actual logarithmic gain,由Ricardo Xie编译)SYkednc

责编:Ricardo
本文为电子技术设计原创文章,未经授权禁止转载。请尊重知识产权,违者本司保留追究责任的权利。
  • 微信扫一扫
    一键转发
  • 最前沿的电子设计资讯
    请关注“电子技术设计微信公众号”
广告
热门推荐
广告
广告
EE直播间
在线研讨会
广告
广告
面包芯语
广告
向右滑动:上一篇 向左滑动:下一篇 我知道了