我真的很想把这篇文章命名为“Of RMS and the Mean I sing”。但是明智的编辑头头们曾不止一次地告诉我,古怪的标题不会吸引人们,这种虚假的学识反而会疏远读者。现在,我对滤波器的了解比对George Bernard Shaw的作品要多得多,所以我最终放弃了自作聪明的标题,而在文章中对下面五个与RMS相关的信息,着重强调了它们的实用价值:
1.RMS是给定信号段的特定属性
2.滤波与求平均值不是一回事
3.RMS并非总是与功率有关
4.在采样系统中,RMS比均值更优
5.无法通过对连续的RMS结果滤波来提高精度
RMS的“基本”定义众所周知,即对一些数据求平方(S),求出平均值(M),然后取平方根(R)。那么,为什么不称其为SMR,而是RMS呢?我猜想那是因为采用了逆波兰记法(RPN)。我肯定是个爱好者,花了大量时间在全新的“特别版”HP 15计算器上。但是我离题了。
好吧,我们应该使用哪些数据?当有人拿来一个BNC插座,问您“这个插座出来的信号,RMS值是多少?”时,您可能会回答:“我想您的意思是:您问这个问题时两个时间点之间的信号的RMS值。”
这个回答其实没那么滑稽,问题在于,对于任何未知信号,仅当给出相关信号段的起止时间时,才能确定其RMS“值”。如果是连续时间(“模拟”)信号,则其计算是先在起止时间之间对信号的平方进行时间上的积分,将其除以持续时间,然后取平方根。而对于采样信号来说,则实际上只需要对所有采样点的平方取平均值,然后取该平方根即可。
如果信号确实是周期性的,那么把测量时间设置为波形周期的整数倍,就会非常好。这样得到的数字就与测量的起止时间无关。换句话说,周期性波形的RMS值是该波形的一个特征常数。这个捷径通常在计算中非常有用——在与波形周期相等的时间间隔内,与RMS值相等的DC电压,对恒定负载提供的能量与信号本身相同。但我在这儿说得有点超前了……
理想的“RMS响应”测量设备,在馈入周期性波形时,输出应完全保持不变。它应与重复频率和测量设备的输出采样率无关。为了提供稳定的RMS值,设备需要确定波形的周期。如果该周期未知、无法确定、不存在或者随时间而变化,则根本不可能实现严格的RMS测量。但这并不能阻止大多数电压表或RMS-DC转换器IC给出答案。在这种情况下,就需要相当谨慎——这是很不明确的。
界定不清是因为RMS-DC转换器IC(大多数“真RMS”电压表的前端都包含有)用单极点低通滤波器代替了严格的时间平均过程。从表面上看,这种滤波可以实现与求平均值过程相似的工作——抑制平方信号的变化,提供稳定的答案。实际上,若提供连续的周期性波形,且其重复频率远高于低通滤波器的截止频率,则获得的结果就与严格的求平均值方法相同。
实际上,求平均值是低通滤波的一个非常具体的例子——它恰好是唯一一种滤波形式,能实际上为所加信号在“现在”和“现在减去求平均值时间”之间的平均值给出“正确”答案。其他低通滤波器可以很好地对信号进行平滑,但求平均值的效果却很差。要是不简单的话,有可能设计一种模拟滤波器,其脉冲响应与平均器的矩形波串(box-car)脉冲响应相近似。但是本文稍后会看到,无法将这种滤波器集成到传统的模拟RMS-DC转换器设计中。该死,我又说超前了……
配备常规单极点低通滤波的RMS-DC转换器IC,若是馈入非周期性信号,则其产生的输出永远不会完全等于任何实际波形段的RMS值。相反,所得到的是RFS,即信号平方的滤波版本的平方根。这种滤波的存在,及其可能带来的异常状态,就是RMS成为“Filter Wizard”(滤波器行家,译者注:作者所著系列文章)探索的重要主题的原因。异常状态是否要紧,取决于这种转换器所用于的应用。我们会发现有时确实可以利用这种情况。
RMS测量通常与功率相关。网上经常看到有人断言(我就说过),某个波形的RMS值即是,如果将其当作DC电平施加到负载上,则在该负载上所耗散的功率就与施加信号本身时相同。与许多断言一样,这个断言只有在满足一系列条件时才是正确的。有时它们不对。
一个例子是,假设在某个实验中,有两个1Ω电阻要用作加热器。若对这样一个电阻器的两端施加1V电压,则流过它的电流就是1A,所耗散的功率也就是1W,即1J/s。假设每次向每个电阻依次施加1V电压1s,则在2s的时间内,每个电阻就会耗散1J能量,因此,不足为奇,总耗散功率仅为1W。
现在,如果把两个电阻并联起来,施加1V电压1s,然后关闭电压1s。在第1s,每个电阻会产生1J热量,而在第2s,则没有能量耗散。总能量在2s内是2J,仍然是1W。这么明显的问题我花了两段来讲,真是抱歉。
下面来计算每种情况下的RMS电流。对于此处的简单波形来说,真是微不足道。在第一种情况下,电流平方的平均值显然为1A2,因此RMS值显然为1A。在第二种情况下,平方电流的平均值为(4×1+0×1)/2=2A2,因此RMS电流为1.4142A。什么?这两种情况下在实验期间所耗散的能量相同,这是显而易见的,但为什么这时的RMS电流却不同呢?我还以为相同的RMS就会产生相同的功率呢?
答案是我们没有使负载值保持恒定。从中学到的重点是,只有在电压和电流之间的比例常数在整个测量期间不变时,电流或电压的RMS值与系统中的功耗之间的关系才适用(好吧,这样来介绍“电阻”有点卖弄学问了)。在许多实际情况下——例如我们家里的电源所连接的负载,或是手机天线所见的阻抗的实部——这种恒定性都是不存在的。在这种情况下,要测量功率,就需要同时了解电流和电压,并对其乘积进行积分而获得能量。在这种情况下,仅对一个参数进行RMS测量,会产生误导。
要产生与AC信号幅度相对应的DC电平,一种最常见的方法是对信号进行整流,然后滤除高频“垃圾”,剩下的就是与幅度成比例的DC分量。自从电子时代开始以来,采用这种方式工作的AC电压表就已经问世了——尽管它们是对信号绝对值的平均值进行响应,但却通常被称为“平均响应”。
对模拟域中的AC信号整流,是一种标准的电子技术,电路缺陷对性能(例如放大器带宽)的影响已广为人知。专用的RMC-DC转换器IC(我们现在来讨论它们)往往价格较高,而节俭的工程师(几乎我们所有人都是)对于不太重要的应用,尤其是当所加信号接近于正弦波时,通常都倾向于搭建自制的平均响应电路。
如果在对信号进行采样后在数字域中进行计算(假设输入信号所处的频率范围可以转换为数字),那么我们有可能倾向于使用绝对值方法,因为对于有符号的信号数字表示来说,运用这种运算很简单。由于不需要扩展内部精度,它也很有吸引力。有符号的16位样本,其绝对值是个16位数,而该样本的平方则需要32位才能表示。
但是,一旦进入到数字域,就强烈建议使用RMS技术而不是绝对值方法。原因很简单。绝对值和平方都是非线性运算。当用于采样信号时,这类运算会导致其他频率产生,而如果采样率大于一半,则这些频率会发生混叠。在这两种方法中,平方是一种良性、可预测的运算——仅会产生二次谐波,因此很容易跟踪。甚至在运用降噪滤波器之前,只需要以最高信号频率的四倍进行采样,就可以防止由二次谐波引起的任何意外的音调成分再次出现在数据集中。如果滤波后的幅度测量代表音频之类的感兴趣的信号,则这点就尤其重要。
相反,由于在零交叉点处突然间断,取信号的绝对值会产生无限的信号谐波序列。无论输入频率多低,这些谐波中的某些在混叠后总是会回到所需的频率范围以内。在某些情况下,这些混叠的频率可能太低,以至于它们实际上在测量时会以纹波的形式出现,而用通常的平滑滤波器无法消除它们。如果试图设计一个数字AM解调器,通过对已调幅载波波形的绝对值进行滤波来从该载波的采样版本中恢复音频,那么这就马上显而易见。由此带来的带内音调混乱,可能使其无法使用。对输入信号进行平方运算,滤除所产生的载波二次谐波,然后对该结果取平方根,即可获得清晰的音频再现——我已经在真实产品中做到了。
RMS-DC转换器IC的数据手册中讲到,当输入频率低到足以“穿过”内部所设置的滤波过程时,其就会产生输出纹波,因此其中讨论了通过使用后置滤波器来减少这一输出纹波的水平。可以通过采用数值低得多的电容器搭建电路,在输出端增加一两个额外的极点,来拒绝这些不期望的频率——实现良好低频响应所需的大容值钽电容器,通常是电路板上体积最大、寿命最短的元件。
这种方法有一个缺陷。数据手册对此几乎只是顺带提及,好像就不是个问题,但是却确实应该考虑。这个问题就是:如果RMS转换器芯片的输出上具有明显的纹波,则其DC值就已经错误。再加一个低通滤波器也无法改变答案的精度,这只能消除一些烦人的纹波。但是,对于错误答案来说,把它变得更稳定又有什么意义呢?我在讲解滤波器的使用时,就以这个为例说明了一种情况,即存在的AC信号就不是用滤波器解决的问题,而是另一个更深层次的问题的征兆,对此,滤波器可能不是正确的解决方案。
解决这个问题的适当方法,是在RMS转换器内核本身当中使用更好的滤波——但是,对于标准的RMS-DC转换器IC中所使用的标准架构来说,这基本上是不可能的。这个架构是一项出色的发明,称为隐式RMS转换,它解决了动态范围问题,否则就无法在宽动态范围内进行RMS的模拟计算。这个问题是,如果只有一个很小的输入信号(相对于要处理的最大信号),那么对其幅度平方,会使其变得更小。如果要在输入端处理的动态范围为90dB,则平方信号需要的跨度就为180dB。用任何实用的电子电路都不可能做到。隐式RMS转换巧妙地避免了实际上必须对信号进行平方(可以预见,显式方法中需要去做)的问题,因此不需要管理非常小的模拟电平。
但是,隐式方法是一种反馈系统,清除高频残差的滤波过程是在这个反馈回路的内部。对于稳定工作点周围的任何小信号激励来说,正式的反馈规则都适用,因此滤波器的传递函数需要能包裹在反馈回路内部。这实际上就限制了只能在任何实际电路中使用一阶滤波器。
如果使用数字实现,使用ADC采样,然后对结果进行平方,则动态范围仅受所用算术的精度所限制,并且这一精度可以提高到远超可能对结果产生限制的任何值。有了这样广泛的范围,显式方法——对信号平方,执行所选的求平均值或滤波,然后取平方根——就成为数字域的首选方法。使用显式方法,就可以使用任何想用的滤波器。快速建立、强抑制能力的滤波器方法在此就正好适用,可以处理掉平方域中的所有纹波,然后最终求得这一稳定答案的平方根。
这也不是说在模拟和数字方法之间二者择一。如果要设计一个RMS测量系统,要求在不使用可乐罐大小的电容器的情况下,对从毫赫兹到兆赫兹的信号具有良好的精度,那么就应考虑采用混合方法。这里从一个良好的模拟域RMS-DC转换器开始。对于物理上合理的求均值电容器尺寸来说,会碰到一个较低的极限频率——若低于它,输出纹波就会逐渐增加,这就会对得到稳定答案造成不便。但是不用担心,下面是有关这个情况的知识:这个RMS转换器输出的RMS值仍然正确!不要去犯试图把纹波滤除的错误,只需将整个信号馈入到另一个RMS转换器(这次是数字转换器)的输入即可。任何带良好ADC的微控制器都可以工作。
这样就得到了一个混合的两级转换器。第一级在模拟域中工作:高频“变成DC”,而非常低的频率出来时,看起来就像是输入信号的绝对值(很明显,对吧?)。第二级以数字方式进行工作,但由于它仅负责处理DC和一些低频纹波的混合物,因此无需进行非常快速的采样。需要确保ADC的频率响应不会使任何重要频率上的纹波显著衰减。然后,第二级就会通过显式并使用快速响应数字滤波,对第一个RMS转换器的输出计算出RMS值,然后其结果就是期望的总体答案。这个方案小巧、便宜并且准确——老板,您还想要什么?
我希望这篇文章已让您了解,选择和使用RMS测量法(以及相关的滤波)远没有想象的那么简单。
(原文刊登于EDN美国版,参考链接:Five things you should know about RMS)
本文为《电子技术设计》2020年6月刊杂志文章,版权所有,禁止转载。免费杂志订阅申请点击这里。