干货|大学生电子竞赛题目分析——2021年A题《信号失真度测量装置》
▲ 更多精彩活动 请点击上方蓝字关注我们吧!
一、任务
设计制作信号失真度测量装置,对来自函数/任意波形发生器的周期信号(以下简称为输入信号)进行采集分析,测得输入信号的总谐波失真THD(以下简称为失真度),并可在手机上显示测量信息。测量装置系统组成示意图如图所示。
二、要求
1. 基本要求
(1)输入信号的峰峰值电压范围:300mV~600mV。
(2)输入信号基频:1kHz。
(3)输入信号失真度范围:5% ~ 50%。
(4)要求对输入信号失真度测量误差绝对值Δ=|THDx -THDo|≤5%,THDx和THDo分别为失真度的测量值与标称值。
(5)显示失真度测量值THDx。
(6)失真度测量与显示用时不超过10秒。
2. 发挥部分
(1)输入信号的峰峰值电压范围:30mV ~ 600mV。。
(2)输入信号基频范围:1kHz ~100kHz。
(3)测量并显示输入信号失真度THDx值,要求Δ=|THDx -THDo|≤3%。
(4)测量并显示输入信号的一个周期波形。
(5)显示输入信号基波与谐波的归一化幅值,只显示到5 次谐波。
(6)在手机上显示测量装置测得并显示的输入信号THDx值、一个周期波形、基波与谐波的归一化幅值。
(7)其他。
三、说明
(1)本题用于信号失真度测量的主控制器和数据采集器必须使用TI 公司的MCU及其片内ADC,不得使用其他片外ADC 和数据采集模块(卡)成品。
(2)关于THD 的说明:当放大器输入为正弦信号时,放大器的非线性失真表现为输出信号中出现谐波分量,即出现谐波失真,通常用“总谐波失真THD(total harmonic distortion)”定量分析放大器的非线性失真程度。
若放大器的输入交流电压为
出现谐波失真的放大器输出交流电压为
本题信号失真度测量采用近似方式,测量和分析输入信号谐波成分时,限定只处理到5次谐波。定义
为本题失真度的标称值。
若失真度测量值为THDx,则失真度测量误差的绝对值为
(3)基波与谐波的归一化幅值:当输入信号的基波幅值为Um1 ,各次谐波幅值分别为Um2、Um3、…,基波与谐波的归一化幅值为:1、(Um2/Um1)、(Um3/Um1) …。
(4)用函数/任意波形发生器(以下简称为发生器)输出的周期信号作为测量装置的输入信号。参赛队员必须熟练掌握发生器“谐波发生”功能的操作技能(包括但不限于设置信号谐波参数、存储与调用信号)。
(5)参赛队必须自带本队自用的发生器参加赛区作品测试,根据测试专家提出的有关要求自行设定、存储自带发生器的输出信号,作为测量装置输入信号。
(6)除输入信号外,不得再有任何其他信号引入测量装置。一键启动测量后,装置应在10 秒钟内自动完成失真度测量与显示(期间不得有人工操作),超时扣分。一旦测量显示总用时超过30 秒,停止作品测试。
题目分析与方案设计
尽管此题的题目是失真度测量装置,但实际上是对输入信号进行频谱分析。
常见的频谱分析设备有两种不同的结构:一种是基于模拟电路实现的超外差式频谱分析仪,这种结构连续改变本振频率,输入信号中的对应频谱分量则通过中频滤波器后输出,相当于一个连续改变其中心频率的带通滤波器。另一种则是数字频谱分析仪,用ADC将输入信号转换为数字信号,然后基于FFT算法得到其频谱分量。
由于题目要求显示一个信号周期波形,显然需要对信号进行采集,所以本题的解决方案一定是用FFT实现频谱分析的方案,其结构如下:
题目给定的输入信号幅度范围较大(峰峰值30mV ~ 600mV),为了保证足够的采样精度,前置放大器必须增益可变。由于题目只要求测量归一化幅度,所以放大器只要带有AGC功能即可(如果要求测量信号的绝对幅度,那就需要用单片机控制放大器的增益,使得其增益精确可控)。
按照题目的要求,采用TI 公司的MCU 的片内ADC进行采样,随后的FFT以及显示、传输等功能均在MCU内部完成(传输部分可外接传输模块,例如WIFI传输模块)。
本题的关键在于如何用MCU实现FFT。
第一个问题是采样窗口的选择。根据傅里叶变换的原理,如果采样时间正好等于被采样信号基波周期的整数倍,那么FFT的变换结果是正确的。但若是采样时间不等于被测信号基波周期的整数倍,那么就会出现频谱泄漏,即分析结果中出现原始信号中没有的虚假分量。
解决这个问题的方法有下面几种。办法一是加窗,常见的有Hamming窗和Hanning窗。可以通过软件实现加窗。但是加窗只能降低频谱泄漏,并不能完全消除之。
方法二是令测量时间等于被采样信号基波周期的整数倍,可以完全解决频谱泄漏问题。为了实现整数周期采样,可以在电路中增加一个信号频率(周期)测量功能,例如将输入信号通过一个过零比较器整形成方波,然后送入MCU的外部中断进行计时,就可得到信号的基频周期T。由于题目还要求显示输入信号的周期波形,所以在本题的解决方案中,这个周期测量功能是一个必然的选项。
第二个问题是题目要求被测信号的频率为1kHz~100kHz。由于MCU的工作频率有限,对于频率较高的信号,在一个信号周期内可能来不及采集到满足FFT需要的足够点数。为此可以根据输入信号的频率高低分为两种情况:
在频率较低的情况下,一个信号周期内直接采样n点,采样时间间隔为T/n。
在输入频率较高的情况下,每个信号周期只采一个点,但每个采样点在信号周期内的位置都延迟1/n周期,经过n次采样就得到了一个完整的信号周期波形,采样时间间隔为
注意这个方法只对周期重复信号有效,本题的输入信号为周期信号,所以可以采用此方法。
第三个问题是如何保证采样时间间隔的准确度。当信号频率升高以后,其采样周期可能会变得很短,随之而来的是对于采样时间的精确度要求也越来越高,此时由单片机定时采样可能产生很大的定时误差。例如每个信号周期采样512点,在信号频率为1kHz时采样时间间隔为1.953μs,假设由于单片机时钟频率的限制导致定时误差为10ns,则此情况下的相对误差大约为0.5%。但当信号频率升高到100kHz时,同样采样512点的采样时间间隔缩短为19.53ns,此时定时误差10ns导致的相对误差将高达50%。必须注意,前面介绍的每个周期只采样一个点的方法在每个采样时间间隔中增加了一个信号周期T,但是决定采样时间准确度的是T/n,所以那个方法只能改善对于ADC转换时间的要求,而不能改变对于采样时间精度的要求。
解决这个问题的方法是设计一个外部的采样时钟信号,要求该时钟信号频率能够精确地等于被测信号基频的n倍(如果是每个周期采样一次的情况则为被测信号基频的n/(n+1)倍),然后用该信号作为采样-保持电路的保持信号,同时送单片机作为采样启动信号。
具体实现上述采样时钟信号的电路可以是DDS或锁相环。用DDS实现的原理是基于DDS有很高的频率分辨率,所以可以很好地逼近被测信号基频的n倍。此方法的特点是电路稍简单,但是不能完全精确地等于被测信号基频的n倍。
用锁相环实现的电路如下图所示,先将被测信号整形成方波,然后用锁相环锁定在n倍频。该电路的特点是可以精确地产生基频n倍(或n/(n+1)倍)的脉冲信号,缺点是电路稍稍复杂一些。
须注意的一点是:由于输入信号的频率范围很大(1kHz~100kHz),上述电路中锁相环的环路滤波器以及VCO参数可能要随着不同频率区间作适当的改变。可通过模拟开关切换外部RC元件实现。
因为题目只要求分析到5次谐波,最高信号基频为100kHz,要分析的最高频率为500kHz。在满足采样频率严格等于输入信号基频的整数倍条件下,根据奈奎斯特定理,采样频率只要高于1MHz即可,所以采样点数n并不需要512这样大。但是若不能满足采样频率严格等于输入信号基频的整数倍情况下(不采用前述的锁相环方案),则采样点数越多分析结果的误差将越小。所以具体采用何种方案,要根据MCU速度等条件作合理的选择。
这是一个很好的竞赛题目。这个题目的基本要求难度不高,只要熟悉ADC采样以及FFT原理,采用2楼的基本方案就可以完成。但是其发挥部分将信号频率扩展100倍,还增加了手机显示部分,这样就使得频谱分析部分的难度增加不少,还需要掌握手机的传输与编程等知识。套用一个学校考试的模式,就是及格很容易,但是得高分很难。
在公众号内回复您想搜索的任意内容,如问题关键字、技术名词、bug代码等,就能轻松获得与之相关的专业技术内容反馈。快去试试吧!
由于微信公众号近期改变了推送规则,如果您想经常看到我们的文章,可以在每次阅读后,在页面下方点一个「赞」或「在看」,这样每次推送的文章才会第一时间出现在您的订阅列表里。
或将我们的公众号设为星标。进入公众号主页后点击右上角「三个小点」,点击「设为星标」,我们公众号名称旁边就会出现一个黄色的五角星(Android 和 iOS 用户操作相同)。