前一段时间,推文中介绍了两款参赛同学根据负反馈原理制作的恒磁20kHz的信号源,有效的解决了智能车比赛场地中电磁导线的长度,直径等引起的电磁线圈的阻抗变化,从而对于输出信号中20kHz基波信号带来影响,提高了比赛场地导引信号的精度。
两款信号源中,都采用了10mH电感和6.8nF电容组成的谐振选频回路,对输出电流信号中20kHz基波信号进行检测。通过负反馈的原理来稳定输出电流信号中基波的幅值。
是否还可以采用别的方法来检测输出电流信号的基波呢?下面给大家所介绍,就是通过普通的电阻对输出电流进行采样,通过软件算法来获取输出电流的基波分量。
实验仍然采用传统的数字信号源,输出所使用的20kHz,100mA的方波交流信号。在信号输出线中串入一个0.1欧姆的电阻,将电流信号转变成电压信号。
为了便于单片机采集该信号。使用了INA199对于电阻两端的电压进行差模放大,放大倍数50倍。由于IN199的带宽只有14kHz,它对于电流信号中的高频信号 有着较大的衰减。下图中,可以看到在采样电阻两端的电压信号经过INA199差模放大之后,信号的上升沿和下降沿变得光滑了。信号失真是由于它中间的高频分量被衰减了。
虽然信号出现了失真,但这只是低通滤波器将其中的高频信号滤除了。对于20kHz基波信号衰减不大。并且这是一个线性低通滤波器,所以对于后面的测量校正不会带来很大的影响。
使用单片机软件算法来获取电流信号的基波频率分量,首先需要通过ADC(interwetten与威廉的赔率体系 数字转化器)对于输入信号进行采样,然后再进行频率分析。由于单片机的ADC性能和计算能力有限,所以需要使用信号欠采样和快速傅里叶变换计数。下面分别进行介绍。
信号欠采样
根据信号采样香侬(Claude Shannon)定理,如果信号采样频率大于信号中最高频率的两倍,则信号可以无损失进行恢复,否则就会造成信息的丢失和频率混叠。通常称信号最高频率的两倍为信号的奈奎斯特(Nyquist)采样频率。在实际应用中情况下,需要采样频率大于信号最高频率的五倍以上。
对于方波电流信号,理论上,它的最高频率是无穷大。这样就会给信号采样带来很大的麻烦。如果采样频率无法满足奈奎斯特频率,就会产生信号的频率混叠现象,表现在原本信号中高频分量在采集后所形成的序列反而是低频序列。这样就会造成信号频率分量出现偏差。
20kHz的电流信号,具有丰富的高次谐波。如果考虑到信号的10次谐波作为信号的最高频率。那么所需要的采样频率就是20000102=400,000Hz。这个频率对于普通的单片机来说已经到来它的上限了。如下是设置单片机ADC不同的转换时间,所采集到的电流信号。
可以看出,在转换时间小的情况下,是可以采集到比较完整的电流波形,但是,数据中会带有很大的噪声。如果转换时间设置长了,就会出现明显的欠采样的情况,数据波形与实际信号波形之间出现了很大的差别。
如何解决这个矛盾了。这里需要应用到电流信号是周期信号的特点,可以使用信号欠采样来获得信号完整的波形。
欠采样是巧妙应用到频谱混叠,将原本高频的谐波,变成低频的谐波,从而可以在远小于信号的奈奎斯特采样频率下完成信号的采集。
从时域分析来看,采样的周期比信号的周期(或者信号周期的整数倍数)略大,比如大了deltaT,它远远小于信号的周期T。这样每一个周期只采集一个数据,下一个周期的的采样点会往后延迟deltaT.。将若干个周期中不同位置的采样数据拼合在一起就可以形成信号的完整周期的数据。下图就可以看出,一个高频正弦波,在欠采样下,可以形成一个低频的正弦序列波形。
对于20kHz的信号,它的一个周期为50微妙。下图是采用周期是50.172微秒的间隔对电流信号进行采集所获得数据波形,可以看出它是原来电流波形的完美体现。
通过MATLAB中的FFT命令,可以求解出数据中的各个频率分量幅度(成为幅度谱)。具体结果如下图所示。
频谱显示,上述波形中,它的基波以及各个奇次(3,5,7…)谐波都存在,并随着频率的增加而减小。所有的偶次(2,4,6…)谐波都不存在。这是由于原始的对称方波属于奇谐信号,这样的信号以及它的线性变换都不存在偶次谐波。相关的介绍在“分数谐波”推文中介绍过。
FFT
获取信号中的各个谐波分量的幅值,可以通过傅里叶变换求得。对于采集所得到的离散序列来讲,所使用变换就是离散傅里叶变换(DFT)。在上个世纪60年代,出现的离散傅里叶变换的快速算法(FFT)使得DFT的计算复杂度从O(N^2)降低到N*log2(N),这使得频谱分析快速进入了实际工程应用中。
问题是,快速傅里叶变换是否是最快,最有效的分析方法呢?
这需要看应用的具体需求。在有些情况下,反而直接应用DFT所需要的计算量比FFT还要小。比如在这里,由于我们只需要求出信号中20kHz的基波信号分量,即信号频谱中对应20kHz的系数X[k],所以直接使用上述DFT公式计算X[k]则只需要N次复数乘法和N-1次复数加法即可。反而比Log2(N)*N次的FFT更少。
由于计算需要使用到Exp(2pijkn/N)系数,根据欧拉公式,它是由cos(t)+jsin(t)构成,这些系数可以在进行计算前制作成表格提前得到,或者使用三角变换公式进行地推而形成,这都可以加快具体计算过程。
下面,对于上述方法进行实验验证一下。采用和以前实验方案相同,在以前标准信号源回路中串入不同的电感,模拟不同长度的电磁线。通过一个LC谐振回路放在电磁线周围,来感应磁场强度。分别记录在不同串入电感的情况下,LC输出交流电压信号以及电流采集信号的FFT系数。
如下是对20中不同电感下,测量的数据曲线。可以看出,原来标准信号源,随着输出回路电感的增加,输出电流信号的基波分量在逐步增加。具体原因在以往的推文中有分析。
与此同时,可以看到通过电流采样数据所计算出的FFT基波分量的频谱系数也按照相同的比例进行变化。
这说明,通过软件计算所获得的基波分量的大小与采用LC选频谐振回路的作用相同。如果使用FFT系数对于输出电流进行反馈控制,就可以使得输出电流的基波保持稳定。
如下就是使用采集到的LC电压值除以电流信号的FFT基波系数所得到的比值,可以看到该比值基本维持在 一个恒定量。
这也说明,使用电流采样然后进行频谱分析可以完成信号源基波分量的稳定控制。
总结
对于比赛数字信号源增加输出电流采样电阻,通过信号欠采样计数,可以获得输出电流波形数据。应用信号傅里叶变换,提取所感兴趣的基波分量的幅度。由于只是计算基波分量 一个频谱系数,所以不需要采用快速傅里叶变换,而是使用迭代的方式完成普通的离散傅里叶变换计算就可以高效计算出对应的频谱系数。
在具体实现中有些参数需要通过试凑来完成优化。比如欠采样的频率的选择,计算DFT数据的长度等。在上述实验,选择欠采样频率使得在信号的一个周期内可以采集到100个左右的有效数据。为了避免由于数据截取对于计算结果所带来的误差,选择1个或者2个正周期的数据进行计算,可以获得比较稳定的频谱系数。
通过此次的分析,是否大家认为“信号与系统”课程的重要性了?
编辑:hfy
-
单片机
+关注
关注
6037文章
44558浏览量
635335 -
信号完整性
+关注
关注
68文章
1408浏览量
95488 -
傅里叶变换
+关注
关注
6文章
441浏览量
42600
发布评论请先 登录
相关推荐
评论