时间:2024-05-04
李翔,毛子彦,史晓涵,钟海伟
(浙江科技学院,浙江杭州,310012)
使用信号发生器模拟输出各种失真的信号,并通过放大电路,对输入信号进行放大和偏置,放大以后的失真波形通过 ADC 采集信号电压值,利用快速傅里叶变换对采集的信号进行频谱,失真度等分析。最后可得到信号失真度 THD 值以及波形图等并且可以在OLED以及在手机上显示测量结果。
MSP430 是一款超低功耗,具有精简指令集的16位混合信号处理器。我们选择 MSP430F5438A 作为主控芯片,其低电压范围 1.8V-3.6V,待机模式下电流为0.8uA,具有内部基准电压,采样和保持及自动扫描功能的 12 位模数(A/D)转换器,可以实现更精准转换。 而且 MSP430F5438A内部集成有多通道、高速率的片内ADC,同时能够提供多通道的12位精度A/D转 换 ,其最大采样速率可以达到200kbps。在绝大多数需要进行AD转换的场景下,MSP4 30F5438A集成的ADC模块都可以满足对数据采集的要求,因此选择 该芯片作为主控芯片。
快速傅里叶变换(FFT):FFT 算法可以分为两种方式:按时间抽取(DFT)和按频率抽取(DIF),借助蝶形图总结出码位倒序和蝶形运算的规律,推导得 FFT 算法:
输入信号由 A/D 转换器转换成采样序列x (n),其频谱用x(ejω)表示,x(ejω)是频率为ω的周期函数,可以表示为:
由于 DFT 的需要(但是在实际应用中通常采用FFT计算),必须把 x(n)限制在一定的时间范围之内,即对数据进行加窗处理。因此,在计算 FFT之前,将有限时间域的窗函数ω(n)加到 x(n)上,即V (N) = x (N) w (N),用卷积表示如下[1]:
周期振荡信号在电压上发生的畸变,不仅包含了基波电压分量,还包含了各次谐波分量的电压分量。通过计算,可以把任意的信号都展开成傅里叶级数形式:
与此同时,正弦信号的畸变值可以用基波电压有效值与各次谐波电压的均方根值之比来表示,即:
在公式中,U1、Un分别代表基波电压的有效值和 n 次谐波电压的有效值。通过求出各个谐波的幅值,从而计算出信号的失真度[2]。为了能够在实际的使用中较为容易的实现,通常用测量到的各谐波电压的有效值和总电压有效值来之比代替,具体计算方式如下:
根据频域分析的方法设计失真度测量装置,通过计算傅里叶系数等值,求得失真度的大小。
对于一个较长的周期信号,其采样点数较多,我们无法对其所有的采样点都进行存储和计算,只能截取有限场序列进行离散傅里叶变换。因此,利用离散傅里叶变换对连续信号的傅里叶变化其结果只能是近似的,产生误差的原因主要有以下两点:混叠和泄漏。
图1 蝶形运算图
2.3.1 混叠
根据奈奎斯特采样定理,要使得通过计算得到的数字信号能够完全地表示原信号,只有当采样频率大于等于信号最高频率的两倍时,才能不失真的恢复该信号。但是当信号频率较高时,往往受限于硬件条件,采样频率就很难达到信号最高频率的两倍,本系统所采用的MSP430F4538A单片机最高采样频率为200kHz,最高可以采集到基波频率为20kHz的五次谐波。如果输入信号频率高于此信号,就会出现部分频谱重叠的情况,部分频谱就会叠加起来,这种现象被称为“混叠”,也就造成了信号的丢失[3]。
2.3.2 频谱泄露
由于快速傅里叶变换运算的本质是截取了一些离散傅里叶级数的主值,所以实际上对FFT的研究过程就可以划分为对若干的整数周期的信号进行离散的傅里叶变换分析,拓展延伸后使其与截取前的信号相同。如果截取的信号周期并不是其原信号周期的整数倍,那么在周期延伸拓展之后信号就会出现不连续的点,此时DFT分析的结果也与将与原始信号不同,频谱能量会泄漏到旁瓣,因此会造成测量误差[4]。
根据系统框图,硬件部分可以分为信号输入端、放大电路、单片机、显示部分。
3.1.1 信号输入端设计
信号发生器是一种能够提供各种频率、波形、输出电平电信号的设备,用于测量各种电信号系统和电信设备的振幅特性、频率特性、传输特性及其它电参数,还可以作为测试其它元器件或者信号检测的信号源或激励源。本次设计的失真度检测系统选择信号发生器模拟输出各种失真信号。
3.1.2 放大电路设计
放大电路是使用最广泛的电子电路之一,是构成其他电子电路的基础单元电路。放大电路的作用是将一些微弱的信号放大到所需要的幅值且保持与原输入信号变化规律一致,也即进行不失真的放大,保证原始信号的完整性。常见的放大电路有低频低压放大电路、功率放大电路、直流放大电路、集成运算放大电路等。本次设计的失真度检测系统采用集成运算放大电路,将多级直流放大器集中在一个集成片上。放大电路如图3所示,输入端连接信号发生器,U2A对输入信号进行直流偏置,将输入信号整体抬升至1/2电源电压。U2B采用同相放大器,将输入信号幅值放大11倍。U2C为电压跟随器,进行阻抗匹配,对放大之后的信号进行稳定输出,并将其输入到单片机MSP430F5438A 中,进行下一步处理。放大电路用于放大交流信号或者直流信号,采用直接耦合方式,具备信号传输效率高、集成简单的特点。本系统采用的放大电路模块由一定数量的电阻、运算放大器构成,实现对失真信号的放大偏置处理。
图3 放大电路
3.1.3 单片机介绍
MSP430F5438A 是本系统的主控芯片,是MSP430系列单片机的一种,具有低功耗、快速转换的特点,内部集成有多通道、高速率的片内ADC,同时能够提供多通道的 12 位精度A / D转换,实现检测系统的A/D转换和快速取样,为下一步进行傅里叶变化做准备。具体如图4所示。
图2 系统总体框图
图4 MSP430F5438A最小系统电路
3.1.4 结果显示模块设计
结果显示设备包括手机屏幕显示和OLED显示。
手机端显示使用主从一体的HC-05蓝牙串口模块,该模块使用简单,能够实现设备之间的通信、数据传输,具备成本低、体积小、功耗低的特点,工作时蓝牙设备之间连接,两设备共同使用一个串口,其中一个设备负责发送数据到通道中,另一个设备负责接受通道中的数据,实现数据的传输。HC-05的具体电路如图5所示。
图5 HC-05蓝牙串口模块
单片机显示部分采用OLED12864,其分辨率为 128×64 ,屏幕尺寸为 0.96 寸,由于其较小的尺寸,高对比度,低功耗,和比较高的分辨率,让它有着很好的显示效果和便携性。OLED显示电路如图6所示。
图6 OLED显示模块
3.2.1 软件整体设计思路
检测系统设计的软件部分主要包括了单片机MSP430 F5438A软件设计、傅里叶变换(FFT)算法的设计以及蓝牙模块的传输设计。首先MSP430F5438A单片机读取模拟出数字转换器的数字信号数据,然后将数据存储到数组中,实现数据的采样,采用嵌入式A/D转换器捕捉该输入信号的频率和起始过零点,然后控制模数转换器从起始过零点开始以上述频率的整数倍来采样原始的被 测信号,这样就实现了对被测信号的整周期同步采样,有效地避免了频谱泄漏和栅栏效应,实现数据采集。其次,利用微控制器实现数据处理,微控制器是一种微型计算机,具体通过蝶形运算的方式计算出频率,进一步进行频谱和失真度的分析,通过的THD运算得出信号的失真度以及波形图。最后是数据传输模块的设计,将计算结果通过蓝牙模块发送至手机端,以下是三个部分的软件设计及程序代码运行样图。
3.2.2 利用 A/D 转换实现数据采样
在单片机内部控制及测量实验中,A/D 转换器是数据信息采集管理系统中不可缺少的重要因素组成一个部分,在系统设计中,为了可以简化电路、降低成本、提高信号采集时的抗干扰能力,通常采用嵌入式的A/D转换器。A/D采样代码实现片段如下所示:
3.2.3 利用微控制器实现数据处理(FFT 算法)
快速傅里叶变换(FFT)在信号进行处理中的线性滤、谱分析等方面起着非常重要的作用,可以利用FFT可以将n个采样点的数据分解为更短的数据段并以此来提高计算效率。目前应用最广泛的算法是按频率抽取的快速傅里叶变换。由于MSP430F4538A并不支持复数运算,所以需要将复数运算拆分为实数运算和虚拟运算两部分来完,用于实现蝶形运算的函数代码如下所示:
3.2.4 利用HC-05实现数据传输(蓝牙模块)
通过HC-05,发送输入信号的频率,归一化值和失真度等信息到手机端。蓝牙传输代码片段如下所示:
由信号发生器产生的 1kHz -10kHz的各种基波,其结果如表1所示,可以清晰地看到五次谐波分量的数值以及显示屏显示出来的THD值和通过FFT显示出电压值再通过THD的计算公式手动计算出THD值。
根据该装置的制作的完成,由表1的测量以及计算数据分析,结合快速傅里叶(FFT)理论算法和总谐波失真度(THD)理论验证,验证了该实验装置的可执行性。但是由于硬件和软件的结合,以及外围电路的各种影响,会让该装置存在一定的误差。
表1 测量结果
失真度测量显示图如图7所示。
图7 失真度测量结果
本文设计了一款基于MSP430F438A的信号失真度测量装置,对输入的信号地进行快速傅里叶变换从而求得信号的失真度,整个系统易于携带,精度较高。但同时装置也存在一定的局限性,对于较高频率的输入信号此系统将无法完成采集,一定程度上限制了此装置的使用。可以使用FPGA对输入信号进行更高精度的采集并运算,MSP430完成对结果的显示与发送,从而大大提高此装置的适用范围。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!