第1页摘要本音频信号分析仪以STM32F103为主控制器,通过AD转换,对音频信号进行采样,把连续信号离散化,然后通过FFT快速傅氏变换运算,在时域和频域对音频信号各个频率分量以及功率等指标进行分析和处理,然后通过高分辨率的LCD对信号的频谱进行显示。该系统能够精确测量的音频信号频率范围为20Hz-10KHz,其幅度范围为5mVpp-5Vpp,分辨力为100Hz。关键词:STM32F103FFT频谱功率AbstractTheaudiosignalanalyzerisbasedona32-bitMCUcontroller,throughtheADconverterforaudiosignalsampling,thecontinuoussignaldiscrete,andthenthroughtheFFTfastFouriertransformcomputing,inthetimedomainandfrequencydomainofthevariousaudiofrequencysignalweightandpower,andotherindicatorsforanalysisandprocessing,andthenthroughthehigh-resolutionLCDdisplaysignalsinthespectrum.Thesystemcanaccuratelymeasuretheaudiosignalfrequencyrangeof20Hz-10KHz,therangeof5-5VppmVpp,resolutionof100Hzcorrespondent.Keyword:STM32F103FFTSpectrumPower第2页前言随着信息社会的到来,计算机技术已经在科学研究与应用领域中得到了最引人注目的应用和推广;尤其在信息、信号处理及其通信方面有其特殊的优越性。我们常见的音频信号分析仪,它是一种用来对被测信号进行频率、频谱及波形分析的重要测量工具,广泛应用于电声测量、音频制作、信号分析乃至振动测试等领域。随着数字技术的飞速发展,这种复杂仪器已经可以在一个普通的单片机系统上用软件来实现,即所谓的“音频信号分析仪”。第一章系统总体方案设计1.1实验要求设计、制作一个可分析音频信号频率成分,并可测量正弦信号失真度的仪器。1.1.1基本要求(1)输入阻抗:50Ω(2)输入信号电压范围(峰-峰值):100mV~5V(3)输入信号包含的频率成分范围:200Hz~10kHz(4)频率分辨力:100Hz(可正确测量被测信号中,频差不小于100Hz的频率分量的功率值。)(5)检测输入信号的总功率和各频率分量的频率和功率,检测出的各频率分量的功率之和不小于总功率值的95%;各频率分量功率测量的相对误差的绝对值小于10%,总功率测量的相对误差的绝对值小于5%。(6)分析时间:5秒。应以5秒周期刷新分析数据,信号各频率分量应按功率大小依次存储并可回放显示,同时实时显示信号总功率和至少前两个频率分量的频率值和功率值,并设暂停键保持显示的数据。1.1.2发挥部分(1)扩大输入信号动态范围,提高灵敏度。(2)输入信号包含的频率成分范围:20Hz~10kHz。(3)增加频率分辨力20Hz档。第3页(4)判断输入信号的周期性,并测量其周期。(5)测量被测正弦信号的失真度。(6)其他。1.2整体方案整体方案如图1.1所示音频信号经过一个由运放和电阻组成的50Ohm阻抗匹配网络后,经由量程控制模块进行处理,若是一般的100mV-5V的电压,我们选择直通,也就是说信号没有衰减或者放大,但是若信号太小,12位的A/D转换器在2.5V参考电压的条件下的最小分辨力为1mV左右,所以如果选择直通的话其离散化处理的误差将会很大,所以若是采集到信号后发现其值太小,在20mV-250mV之间的话,我们可以将其认定为小信号,从而选择信号经过20倍增益的放大器后再进行A/D采样。经过12位A/D转换器ADS7819转换后的数字信号经由STM32F103进行FFT变换和处理,分析其频谱特性和各个频率点的功率值,然后将这些值送由LCD进行显示。信号由STM32F103分析后判断其周期性,然后进行显示。图1.1整体方案图1.3模块分析从整体方案图中,我们可以得到系统所需的模块:第4页中心模块:STM32F103的FFT的算法编程;阻抗匹配电路;峰值检测;增益放大电路;滤波器设计;AD转换;液晶显示模块。下面就围绕这些模块进行硬件电路设计。第二章:分模块硬件电路设计2.1阻抗匹配电路由于设计指标要求输入阻抗为50欧姆,所以在前端电路信号输入处加了一个跟随电路,利用一个50欧姆的电阻与一运放的输入端并联,满足50欧姆输入阻抗的要求,在选择运放方面,通过查资料我们比较了各种运放,选择了带宽增益积较高、输入失调电压较小比较适合音频信号的NE5532。其中用到运放NE5532,NE5532是高性能低噪声双运算放大器(双运放)集成电路。与很多标准运放相似,但它具有更好的噪声性能,优良的输出驱动能力及相当高的小信号带宽,电源电压范围大等特点。因此很适合应用在高品质和专业音响设备、仪器、控制电路及电话通道放大器。用作音频放大时音色温暖,保真度高,在上世纪九十年代初的音响界被发烧友们誉为“运放之皇”,至今仍是很多音响发烧友手中必备的运放之一。利用Multisim仿真原理图如图2.1第5页图2.1阻抗匹配仿真原理图仿真结果如图2.2所示,其中输入信号为Vp-p4V,1KHz的正弦波,得到输出也为同等参数的正弦波。图2.2阻抗匹配仿真结果图2.2峰值检测电路峰值检测电路设计的要点:1.模拟开关存储器,即电容2.单向电流开关,即二极管3.当一个新峰值到来,是电容电压能够跟踪输入电压,电压跟随,输入输出缓冲4.电容放电复位开关设计原理框图:第6页利用到运放OP07:OP07芯片是一种低噪声,非斩波稳零的双极性(双电源供电)运算放大器集成电路。由于OP07具有非常低的输入失调电压(对于OP07A最大为25μV),所以OP07在很多应用场合不需要额外的调零措施。OP07同时具有输入偏置电流低(OP07A为±2nA)和开环增益高(对于OP07A为300V/mV)的特点,这种低失调、高开环增益的特性使得OP07特别适用于高增益的测量设备和放大传感器的微弱信号等方面。利用Multisim仿真原理图如图2.3图2.3峰值检测仿真原理图图2.4峰值检测仿真结果图仿真结果如图2.4,当输入是正弦信号时,输出是紧贴峰值的直流电压,满足实第7页验要求2.3增益放大直接利用运放电路来搭建各种增益放大电路,利用比较器和继电器来选择不同的信号的不同放大倍数,可以满足要求,电路元件较小且较容易控制,实现了小信号大增益,大信号小增益。放大电路同时设置了×1,×5,×0.5,3个放大通道,分别对100mv到300mv,300mv到3v和3v到5v的峰峰值范围内的信号进行不同放大,这样将可测量信号的动态范围扩展到了50mV;电路图见图2-5。同时通过峰值保持电路记录一个FFT运算周期内的信号峰值,通过与设定的参考电压进行比较以确定信号的峰峰值范围,以作为下一次采样时放大通道的选择参考;控制器通过模拟开关来选择不同的放大通道。第8页图2.55倍放大和一倍放大电路,利用的是最基本的运算电路,同相比例运算电路。0.5倍的电压放大是为了满足后端电路ADC模块的输入范围0到3.3v的需要,0.5倍不能用同相比例运算电路,我们选择的是两路反向比例运算电路级联,前一级是放大一倍,为了使信号相位反相,以便于在下一级0.5倍放大后与输入信号同相,电路图如下所示:第9页图2.62.4低通滤波器设计音频信号的频率范围是20hz到20khz,为了有效的滤除各种干扰信号,我们设计了一个20khz的低通滤波器,利用OP27及其外围元件采用的是VCVS(VCVS全称为VoltageControlledVoltageSource电压控制电压源)电路设计的一种巴特沃斯低通滤波器。第10页图2.7四阶巴特沃斯低通滤波器图2.8滤波器仿真结果图第三章软件设计3.1程序设计流程在本设计中,控制及计算部分都由STM32来实现。其中STM32核第11页完成液晶显示、FFT算法实现、功率计算、A/D转换控制,增益选择控制等,系统流程图如图3.1:图3.1软件流程图3.2FFT算法采用FFT实现采集的音频信号频域分析,得到音频信号中各频率分量的大小。FFT运算主要分为位倒置和蝶形运算两个功能部分。其中位倒置程序流程如图3-3。第12页蝶形运算设计:由X1(k)、X2(k)表示X(k)的运算是一种特殊的运算-碟形运算{)()()()()()(2121kXWkXkXkXWkXkXkNkN实现上式运算的流图称作蝶形运算(N/2个蝶形)。由上式可以看出蝶形运算主要是系数kNW的确定。而第L级的系数因子为(L=1,2,3...,M)。JLW2,(J=0,1,2,...,121L)即第L级的蝶形运算系数因子类型数为12L个。设系统共有M级,可得LMMMLMLJJJ2*22*22即有MN2,LMJk2*。图3.2位倒置程序流程图第13页3.3AD转换本设计中要求分析的信号峰峰值范围为100mVp-p~5Vp-p,用8位A/D进行采样,不能满足题目的精度要求(5000/255=19.6mV,相对于5Vp-p信号,相对误差达到了20%),采用12位的A/D芯片,其分辨率可达到1.2mV(相对于5Vp-p信号),满足了题目要求的5%误差范围。同时其100K的采样频率也满足本设计中的频率要求。3.4功率计算功率谱测量主要通过对音频信号进行离散化处理,通过FFT运算,求出信号各个离散频率点的功率值,然后得到离散化的功率谱。由于题目要求频率分辨力为100Hz和20Hz两个档,这说明在进行FFT运算前必须通过调整采样频率(fK)和采样的点数(N),使其基波频率f为100Hz和20Hz。根据频率分辨率与采样频率和采样点数的关系:f=fk/N;可以得知,fk=N*f;又根据采样定理,采样频率fk必须不小于信号频率fm的2倍,即:fk=2fm;题目要求的最大频率为10KHz,所以采样频率必须大于20KHz,考虑到FFT运算在2的11次数的点数时的效率较高,所以我们在20Hz档时选择40.96KHz采样率,采集2048个点,而在100档时我们选择51.2KHz采样率,采集512个点。第14页通过FFT分析出不同的频率点对应的功率后,就可以画出其功率谱,并可以在频域计算其总功率。3.5LCD显示LCD的软件设计由LCD的初始化程序、数值的显示程序组成,为了实时更新数据,此部分软件采用了定时器中断,时间间隔为5s,即每隔5秒都会进行一次数据的读取,并更新显示在LCD上。图3.3显示流程图第四章系统调试4.1阻抗匹配电路第15页图4.1阻抗匹配电路调试结果如图4.1所示,输入信号与输出信号基本一致,基本无噪声,打到预期效果。4.2峰值检测电路第16页图4.2峰值检测电路调试结果如图4.2所示,当输入是正弦波时,输出是峰值的一直流电压,达到实验要求。4.3增益放大图4.30.5倍放大电路结果如图4.3所示,0.5倍放大,略微有些噪声,放大倍数满足实验要求。第17页图4.45倍放大电路结果如图4.4所示,5倍放大效果良好,满足实验要求。4.4低通滤波器图4.5低通滤波器结果如图4.5所示,当输入一频率为20KHz的正弦波时,输出的频率未变,第18页但幅度明显变小,达到了滤波的效果。4.5整体测试第19页第20页图4.6整体实物图将硬件电路与STM32F103连接起来,再将LCD显示屏与开发板相接。接上电源,输入信号。启动程序,观察LCD显示结果。五、测试结果第21页当输入信号为1KHz,Vp-p1V的正弦波时,实验结果如下表输入信号幅值(v)12345功率(mW)理论值2.51022.54062.5实际值2.5210.323.140.563.2误差0.8%3%2.6%1.3%1