连续三天都说同一件事情:信号的转换
扫描二维码
随时随地手机看文章
三天前一个同学在微信公众号提了关于在 模拟课程中的问题[1] ,即要求设计一个系统,输入一个正弦波,可以输出一个二倍频的三角波。三角波的幅值、占空比(上升沿、下降沿的时间)可以被改变。
在前天给出了一个 信号转换的解题思路[2] ,并在昨天 对前面的思路进行了物理仿真 验证,结果可以看到这个简单的思路还存在着不少的问题。
这些问题归纳起来主要有以下几条:
- 控制量之间的耦合,特别是频率,占空比对输出信号幅值的影响;
- 频率对于占空比的影响虽然经过改进之后有所解耦,还是会有部分的影响;
- 输出三角波存在失真。这主要是最后一级从方波到三角波转换的过程中,对于信号的直流分量的变化与波形失真之间的关系;
- 最后一点,也是最重要的一点,就是电路非常复杂。
估计这两天看过推文的同学开始嘀咕,这个问题,如果使用数字电路,特别是使用一个单片机就可以轻轻松松的搞定。的确这也反映出使用数字电路和模拟电路在对待同样的问题上的迥然差别。
在模拟电子中,信号都是看做是在时间和幅值的连续变化的模拟量,对于信号处理的手段大多是进行倍乘、积分、微分、比较整形等方法。另外,系统必须满足因果关系。在此过程中,信号的幅值、频谱宽度等会受到电子线路中器件的限制。
当然,还有非常重要的一个方面就是方案会受到器件的非线性、温度漂移、以及无处不在的干扰的影响。这就使得方案在精度、稳定性参数变化范围等方面受到影响。
那么改成数字电路,特别是使用MCU,DSP,FPGA等可编程器件,就会在改进很多。
比如使用一款STC的单片机STC8G1K08,价格仅仅只有1.3块人民币,包括有众多的电路外设。其中的模拟比较器可以将输入正弦波变成方波,并进一步测对应的信号的周期。虽然它没有DA输出,但高速的PWM输出功能通过滤波也可以形成所需要的信号。
使用数字器件完成同样的信号转换问题,是将信号分解成等时间间隔的脉冲信号(也就是对信号进行采样),为了能够使用有限位数的数字表示这些采样,还需要对信号的幅值进行量化(离散化)。只要保证时间和幅值的离散化足够小,就可以逼近模拟信号。
将输入的参考正弦波送入到单片机的比较器管脚,内部完成过零比较中断,测量得到对应正弦信号的半周期。然后在根据设定的三角波的占空比以及幅值,生成对应三角波输出DA转换的数据。
通过定时器,按照一定速率(5kHz)将三角波的波形数据送到PWM定时器,外部在配合一个简单的RC低通滤波器,便可以获得对应的二倍频三角波形了。
在本文前面的的动图就是这个单片机将输入正弦波信号进行转换后的波形。 该方案中,三角波信号的频率、占空比、幅值之间的调节就不在有任何耦合,可以独立的进行调节。
由于受到单片机本身RAM容量、CPU频率、PWM分辨率的影响,这个方案对于信号转换有一定的限制:
- 三角波的占空比从0~100%,分成100个等级进行调节;
- 三角波的幅值从0~255,分成256个等级进行调节;
- 三角波的频率从5.6Hz~250Hz。
过低的频率则需要内部有更大的RAM来存储输出波形的数据;更高的频率则要求内部PWM,CPU的频率要更高才行。
比如,下图显示了三角波的频率达到500Hz时,输出波形中就包含了明显变形失真。这是因为在一个周期内之后十几个采样点输出。
在现代的一些电子线路中,除了微弱信号、强功率信号、超高频信号以及与人的感知交互的等场合,还需要模拟电路设计。越来越多的领域则逐步转向数字可编程电子线路来完成对信号的处理。
当然了,设计一个可以沿着黑线行进的智能车,如果只允许使用模拟电路的方案,不允许使用MCU,你觉得可能吗?
如果你想不到答案的话,也许下面这个黑板上的电路你可以仔细看一下了。这是只使用模拟器件就可以完成巡线机器人的电路。最后就只剩下一个问题,这种使用模拟电路搭建的自主巡线车模还能被称为智能车吗?
本文中所涉及到的STC单片机进行信号转换的硬软件文件可以从以下链接下载:
- 实验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
三声叹息
今天来叹三声气。今年真是不寻常啊,卓老师。
去年从没想过来年三月才能等出规则,三月的时候从没想过春季回不到实验室了。唉 ......
看着讨论群里每天讨论的人逐渐变少,看着眼前的软硬件bug解决不了,看着手里还是没跑起来的H车,唉 ........
想起比赛事项悬而未定,想起未来渺渺。唉 .......
真想感叹一句时运多艰啊!但是叹气以后,就又是新的一天吧,还是要好好干!卓老师忙了这么久也要多多注意休息哈!
▲ 2015年,智能车竞赛秘书处成员去韩国汉阳大学Sunwoo教授参观访问,了解韩国全国大学生智能汽车竞赛活动经验让AI完败传统算法
报告卓大大,经过我一段时间的调车实验,从速度上来说,电磁AI组用神经网络确实有非常大的优势,我觉得如果模型表现得好,速度一定可以2m/s+的。但传统的跑法在那么短的电感上速度0.5m/s拐弯就很抖了。
但神经网络的方法有一个大问题,我想其他车友应该都能感受到,就是怎么采集数据、采集车有多偏离赛道的数据、以及各个姿态下数据的占比可能对模型训练好后最后的损失值几乎没有区别,但跑车的效果却会差很多,如何把握这个却相当的玄学,我只希望比赛的赛道不会太长(二十米已经够累死累活的推车了)。
另外赛制也要照顾到前面所说的情况,让AI完败传统算法。
▲ 飞思卡尔杯亚洲大学生智能车大赛讨论会自己的孩子
卓大大,今年的比赛真的能在8月份进行嘛?
我刚刚问了我们学校的老师,我们学校现在还不允许我们返校,也不允许老师带我们出去比赛,真的有点难呀!
现在有点迷茫,附上我一个多月前进度的视频,感觉有种自己养了多年的孩子,不能带出去比赛的无奈。
免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!