基于MSP432E401Y的信号失真度测量系统
2022-06-01田澄睿余然顾浚哲杨旻荟
田澄睿,余然,顾浚哲,杨旻荟
(南京信息工程大学电子与信息工程学院,江苏南京,210044)
关键字:快速傅里叶变换;总谐波失真测量;MSP432E401Y;ESP32
0 引言
随着信号处理领域的发展,信号失真度测量技术也越来越得到研究人员的重视。总谐波失真度(THD)是信号的重要参数之一,其是对信号偏离正弦波信号的程度的体现,同时也是衡量各种放大器、信号发生器等仪器的重要指标,THD在电子领域有着广泛的应用与重要的研究意义。本文通过FFT算法处理得到输入信号的基波幅值及二至五次谐波幅值,进而计算得出信号的失真度并进行显示,本文的技术方案能够为测量信号THD的应用场景提供有用参考。
1 系统整体方案设计
本系统的硬件主要由MSP432为主控芯片,前端接模拟电路将输入信号放大、抬升,并经过AD模块采入单片机。后端接ESP32通讯模块与Android studio制作的手机app进行交互。整体系统设计如图1所示。
图1 系统总框架图
本系统设计旨在设计开发一种测量范围广、测量精度高的信号失真度测量装置,可测信号峰峰值电压范围为30mV~600mV、输入信号基频范围为 1kHz~100kHz、失真度误差≤3%。
2 系统硬件电路设计
2.1 AD603 AGC放大模块
为使在输入信号峰峰值变化时输出给后续模拟电路的电压稳定,本文采用AD603 AGC自动增益控制放大电路,可针对强度不同的信号产生不同的放大倍数,使得最终的输出电压稳定在同一标准。与普通放大器不同的是,AGC自动增益控制放大器有一个引脚Vtune,通过控制其电压即可控制输出电压的范围。原理如图2所示。
图2 AGC结构原理图
2.2 加法电路
由于MSP432单片机的可承受电压范围均为正电压,因此信号发生器信号无法直接输入单片机进行A/D采样。本文设计的加法电路可为输入信号增加直流分量,使单片机可以承受。电路原理如图3所示。
图3 加法电路原理图
3 系统软件设计分析
3.1 A/D模块
A/D模块使用MSP板载模块。包括两个相同的转换器模块,它们共享24个输入通道。ADC模块具有12位的转换分辨率,支持24个输入通道,外加一个内部的温度传感器。每个ADC模块包含四个可编程的顺序器,允许对多个模拟输入源进行采样而无需控制器干预。多个模拟输入源的采样,无需控制器干预。每个采样序列器提供灵活的编程,具有完全可配置的输入源、触发事件、中断生成和序列器优先级。此外,转换值可以选择转移到一个数字比较器模块。每个ADC模块提供八个数字比较器。每个数字比较器评估ADC转换值,以确定信号的工作范围。ADC的转换频率是采样和保持数的一个函数,由公式(1)给出:
其中,NSH为ADC时钟中的采样和保持宽度,TADC为ADC转换时钟周期。
ADC使用内部信号VREFP和VREFN作为参考,从选定的模拟输入产生一个转换值。这个转换值的范围是0x000到0xFFF。在单端输入模式下,0x000值相当于VREFN上的电压水平;0xFFF值相当于VREFP上的电压水平。分辨率可由公式(2)得出。
转换公式如图4所示。
图4 AD 转换公式
3.2 快速傅里叶变换与可变频率的处理
信号经过傅里叶级数分解后可得到一系列正余弦信号,其中具有一定频率且振幅最大的信号即为基波,而频率大于基波频率振幅较小的信号即为谐波。谐波的频率为基波频率的整数倍,基波频率3倍的波称之为三次谐波,以此类推。为此本文对输入信号进行快速傅里叶变换(FFT),通过寻峰算法找出最大幅值的正弦分量,其对应的频率即为基波频率。基波频率的高次整数倍频率即为对应的谐波频率。
对于频率从1k-100k的输入信号,需要FFT的采样频率能够基于输入信号频率做出可自动适应的调整。FFT的采样间隔可由公式(3)计算。
其中,si为采样间隔,sf为采样频率。由此可知,sf越小采样间隔越小,精度越高。但为了满足采样定理,sf固定以后,可处理的信号范围被限制在了≤2sf的区间内。为处理这个矛盾,本文对输入信号的频率做分段处理,1k、2k~50k、50k~60k、60k~100k。
3.3 数据的上传与下载
本文采用的数据上传与下载的整体思路为:信号经FFT后计算测得的失真度测量值THDx和基波谐波频率的数据首先通过串口传给ESP32模块,ESP32将数据上传给服务器,最后通过Android Studio制作的手机APP从服务器下载数据。本文通过网络连接服务器,采用HTTP协议和RESTful风格的api接口进行数据的传递,流程如图5所示。
其中,ESP32主频高达230MHz,计算能力可达600DMIPS。涵盖精细分辨时钟门控、省电模式和动态电压调整等特征。
图5 数据传输原理
3.4 软件系统整体设计
系统的整体系统设计如图6所示。主要包含uDMA,AD采样,测频,频率判断,数据拟合,串口收发。
图6 软件系统设计
4 系统测试
本文利用KJS-4825电源变压器、DG4102信号发生器及DS2202A-EDU示波器来搭建信号失真度测量系统的测试环境,本测量系统被测信号的电压峰峰值范围是30mV~600mV,被测信号的频率范围是1kHz~100kHz,在给定信号谐波失真度THDo的情况下记录测量值THDx,并计算绝对误差。因1kHz的正弦波信号具有典型性,故将其单独进行测试。
4.1 关于1kHz信号的THD测量
表1 1kHz的 THD测量
4.2 关于2kHz~100kHz信号的THD测量
表2 2kHz~100kHz的 THD测量
4.3 数据及输入波形显示
串口显示与手机app显示分别如图7、图8所示。
图7 串口屏本地显示
图8 手机app显示
4.4 误差分析
本文的误差主要来源于以下几个方面:①经过AGC放大模块的信号幅值会在一定范围内发生微小波动。②MSP432开发板在DMA中存储的AD采样数据有限,无法直接提高采样精度,THDx需要通过拟合逼近。
5 结语
本文设计的基于MSP432E401Y的信号失真度测量系统,可以实现30mv~600mv,频率1kHz~100kHz交流信号谐波失真度的测量,并能够通过串口屏和手机app进行数据显示。本文通过FFT算法处理输入信号数据的技术方案能够为测量信号失真度的研究提供有益的参考,符合当今电子测量的发展趋势。