在 5 月 20 日,有同学在公众号里发送来一个 「波形的转换与信号处理」[1]问题,是将输入的正弦波转换成两倍频、占空比可调、幅度可调的三角波形。
下图展示该问题所提到信号转换问题的功能,从输入的正弦信号产生的三角波形始终保持与输入正弦波两倍频的关系,并且维持相位不变。
正弦波转换成倍频的三角波形
三角波的幅值可以进行调节。
▲ 三角波的幅值可以独立进行改变
以及三角形的上升沿和下降沿的时间比值(占空比)可以进行调节。
三角波形的占空比(上升沿和下降沿)可以改变
昨天给出了一个初步 「信号转换的解题思路」[2] 。也就是将输入的正弦 「正弦波整形成方波」 ,然后再通过对其进行微分,整流,去触发一个单稳态触发器,形成二倍频的脉冲波形。
将正弦波整形成对称方波
但是这种方式存在一种缺点,就是产生的二倍频的脉冲波形的占空比会随着输入信号的频率变化而改变。
因此一种替代方案就是讲输入的方波先产生一个二倍频的锯齿波。对锯齿波进行滤波得到其直流分量。它应该等于锯齿波峰值的一半。然后再将该直流分量通过一个电位器分压得到一个比较电压,与锯齿波分压一半的波形同时送到比较器进行比较,形成输出的 PWM 波形。这样,输出的 PWM 波形的占空比就不会随着输入频率的改变而变化了。
频率变化与内部锯齿波波形变化情况
下面是在不同的三个占空比下,测量输入信号的频率从 100Hz 变化到 1000Hz,对应输出信号的占空比(使用该信号的平均值来表示)的变化情况。
可以看到这种方案可以基本上消除占空比随着输入信号频率的改变而线性变化的问题,从而将输出信号的占空比与信号频率之间进行解耦。
三种不同 PWM 占空比的情况下,输入信号的频率对于输出 PWM 的平均电压的影响
下图反映了输入信号(蓝色)、二倍频的锯齿波(绿色)以及输出信号(黄色)在频率变化下的动态变化情况。
改变输入信号的频率,测量输出二倍频的 PWM 的占空比
最后一步,将这种由正弦波转换成的二倍频的 PWM 波形,通过积分,便可以输出三角波形了。但是这其中存在着一些问题:
首先,将不同占空比的 PWM 波形积分所得到的三角波的幅值,会随着占空比的改变而变化。只有当占空比为 50%的时候,三角波的复制最大。当占空比接近于 0,或者 100%时,三角波的幅值会线性减少。
由正弦波转换成的二倍频的 PWM 波形
其次,就是积分电路本身需要通过隔直电容以及自身反馈电阻来稳定工作点,防止积分饱和。但是这会带来两个矛盾的问题无法调和:
一是如果隔直电容过大,将会使得占空比变化带来的输入信号直流分量的变化会耦合到输出级,从而会改变输出信号动态的工作直流电压。当然,随着时间的平移,积分电路的直流电会逐步恢复到正常。
下图显示了隔直电容去 10uF,手动改变 PWM 占空比的时候,引起输出三角波形出现短时间的上下波动。
隔直电容为 10uF 时,可以看到改变占空比会引起输出信号的直流点的变化
将隔直电容改为 1uF,输出三角波形随着 PWM 的占空比上下波动减少了。
将隔直电容改为 1uF,输出信号的波形上下波动减少
二是,如果隔直电容过小,则会引起输出三角波变形。
下面是将隔直电容减少到 0.1uF,可以看到随着占空比的改变,输出波形的直流分量几乎不跳动。但是输出的波形开始有了变形。
将隔直电容减少到 0.1uF,波形开始出现失真
这说明昨天的方案中,还是存在着一些缺点需要进行改进。
工程问题不想理论问题那样,只有对和错。更多的情况下是在解决问题限制情况下,进行系统优化。在优化中,那些因素占主要成分,那些是次要成分,则需要在仿真设计(实物仿真、软件仿真)阶段通过若干次迭代之后才能够最终解决。
但将该问题改成使用 MCU、DSP 或者 FPGA 来实现,则会带来全新的简洁方案,只需要一个芯片便可以解决该问题。
▲ 实验电路
Reference
[1]「波形的转换与信号处理」: https://zhuoqing.blog.csdn.net/article/details/106240267
[2]「信号转换的解题思路」: https://zhuoqing.blog.csdn.net/article/details/106293296