如何从正弦波得到二倍频的三角波?

电子森林 2020-05-25

三天前一个同学在微信公众号提了关于在 模拟课程中的问题[1] ,即要求设计一个系统,输入一个正弦波,可以输出一个二倍频的三角波。三角波的幅值、占空比(上升沿、下降沿的时间)可以被改变。

在前天给出了一个 信号转换的解题思路[2] ,并在昨天 对前面的思路进行了物理仿真 验证,结果可以看到这个简单的思路还存在着不少的问题。

▲ 正弦波转换成倍频三角波,并且占空比、幅值可以调节

这些问题归纳起来主要有以下几条:

  • 控制量之间的耦合,特别是频率,占空比对输出信号幅值的影响;
  • 频率对于占空比的影响虽然经过改进之后有所解耦,还是会有部分的影响;
  • 输出三角波存在失真。这主要是最后一级从方波到三角波转换的过程中,对于信号的直流分量的变化与波形失真之间的关系;
  • 最后一点,也是最重要的一点,就是电路非常复杂。

▲ 三角波的占空比独立可调整

估计这两天看过推文的同学开始嘀咕,这个问题,如果使用数字电路,特别是使用一个单片机就可以轻轻松松的搞定。的确这也反映出使用数字电路和模拟电路在对待同样的问题上的迥然差别。

在模拟电子中,信号都是看做是在时间和幅值的连续变化的模拟量,对于信号处理的手段大多是进行倍乘、积分、微分、比较整形等方法。另外,系统必须满足因果关系。在此过程中,信号的幅值、频谱宽度等会受到电子线路中器件的限制。

▲ 三角波的幅度独立可以调整

当然,还有非常重要的一个方面就是方案会受到器件的非线性、温度漂移、以及无处不在的干扰的影响。这就使得方案在精度、稳定性参数变化范围等方面受到影响。

那么改成数字电路,特别是使用MCU,DSP,FPGA等可编程器件,就会在改进很多。

比如使用一款STC的单片机STC8G1K08,价格仅仅只有1.3块人民币,包括有众多的电路外设。其中的模拟比较器可以将输入正弦波变成方波,并进一步测对应的信号的周期。虽然它没有DA输出,但高速的PWM输出功能通过滤波也可以形成所需要的信号。

▲ 使用STC8G1K08单片机实现相同的功能

使用数字器件完成同样的信号转换问题,是将信号分解成等时间间隔的脉冲信号(也就是对信号进行采样),为了能够使用有限位数的数字表示这些采样,还需要对信号的幅值进行量化(离散化)。只要保证时间和幅值的离散化足够小,就可以逼近模拟信号。

将输入的参考正弦波送入到单片机的比较器管脚,内部完成过零比较中断,测量得到对应正弦信号的半周期。然后在根据设定的三角波的占空比以及幅值,生成对应三角波输出DA转换的数据。

▲ 利用STC8G1K内部比较器将输入的正弦波转换成方波

通过定时器,按照一定速率(5kHz)将三角波的波形数据送到PWM定时器,外部在配合一个简单的RC低通滤波器,便可以获得对应的二倍频三角波形了。

在本文前面的的动图就是这个单片机将输入正弦波信号进行转换后的波形。 该方案中,三角波信号的频率、占空比、幅值之间的调节就不在有任何耦合,可以独立的进行调节。

▲ 模拟方案与单片机方案

由于受到单片机本身RAM容量、CPU频率、PWM分辨率的影响,这个方案对于信号转换有一定的限制:

  • 三角波的占空比从0~100%,分成100个等级进行调节;
  • 三角波的幅值从0~255,分成256个等级进行调节;
  • 三角波的频率从5.6Hz~250Hz。

过低的频率则需要内部有更大的RAM来存储输出波形的数据;更高的频率则要求内部PWM,CPU的频率要更高才行。

比如,下图显示了三角波的频率达到500Hz时,输出波形中就包含了明显变形失真。这是因为在一个周期内之后十几个采样点输出。

▲ 高频下对应的输出三角波的形状

在现代的一些电子线路中,除了微弱信号、强功率信号、超高频信号以及与人的感知交互的等场合,还需要模拟电路设计。越来越多的领域则逐步转向数字可编程电子线路来完成对信号的处理。

当然了,设计一个可以沿着黑线行进的智能车,如果只允许使用模拟电路的方案,不允许使用MCU,你觉得可能吗?

如果你想不到答案的话,也许下面这个黑板上的电路你可以仔细看一下了。这是只使用模拟器件就可以完成巡线机器人的电路。最后就只剩下一个问题,这种使用模拟电路搭建的自主巡线车模还能被称为智能车吗?

▲ 只是用一个模拟器件便可以让车模沿着线行进

本文中所涉及到的STC单片机进行信号转换的硬软件文件可以从以下链接下载:

  1. 实验AD设计文件和C51程序 [3]

参考资料

[1]

模拟课程中的问题https://zhuoqing.blog.csdn.net/article/details/106240267

[2]

信号转换的解题思路https://zhuoqing.blog.csdn.net/article/details/106293296

[3]

实验AD设计文件和C51程序https://download.csdn.net/download/zhuoqingjoking97298/12453886





电子森林 讲述电子工程师需要掌握的重要技能: PCB设计、FPGA应用、模拟信号链路、电源管理等等;不断刷新的行业新技术 - 树莓派、ESP32、Arduino等开源系统;随时代演进的热点应用 - 物联网、无人驾驶、人工智能....
评论
热门推荐
相关推荐
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦