音频信号分析仪设计报告剖析.docx
- 文档编号:11737058
- 上传时间:2023-03-31
- 格式:DOCX
- 页数:29
- 大小:3.72MB
音频信号分析仪设计报告剖析.docx
《音频信号分析仪设计报告剖析.docx》由会员分享,可在线阅读,更多相关《音频信号分析仪设计报告剖析.docx(29页珍藏版)》请在冰豆网上搜索。
音频信号分析仪设计报告剖析
摘要
本音频信号分析仪以STM32F103为主控制器,通过AD转换,对音频信号进行采样,把连续信号离散化,然后通过FFT快速傅氏变换运算,在时域和频域对音频信号各个频率分量以及功率等指标进行分析和处理,然后通过高分辨率的LCD对信号的频谱进行显示。
该系统能够精确测量的音频信号频率范围为20Hz-10KHz,其幅度范围为5mVpp-5Vpp,分辨力为100Hz。
关键词:
STM32F103FFT频谱功率
Abstract
Theaudiosignalanalyzerisbasedona32-bitMCUcontroller,throughtheADconverterforaudiosignalsampling,thecontinuoussignaldiscrete,andthenthroughtheFFTfastFouriertransformcomputing,inthetimedomainandfrequencydomainofthevariousaudiofrequencysignalweightandpower,andotherindicatorsforanalysisandprocessing,andthenthroughthehigh-resolutionLCDdisplaysignalsinthespectrum.Thesystemcanaccuratelymeasuretheaudiosignalfrequencyrangeof20Hz-10KHz,therangeof5-5VppmVpp,resolutionof100Hzcorrespondent.
Keyword:
STM32F103FFTSpectrumPower
前言
随着信息社会的到来,计算机技术已经在科学研究与应用领域中得到了最引人注目的应用和推广;尤其在信息、信号处理及其通信方面有其特殊的优越性。
我们常见的音频信号分析仪,它是一种用来对被测信号进行频率、频谱及波形分析的重要测量工具,广泛应用于电声测量、音频制作、信号分析乃至振动测试等领域。
随着数字技术的飞速发展,这种复杂仪器已经可以在一个普通的单片机系统上用软件来实现,即所谓的“音频信号分析仪”。
第一章系统总体方案设计
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档。
(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模块分析
从整体方案图中,我们可以得到系统所需的模块:
中心模块:
STM32F103的FFT的算法编程;阻抗匹配电路;峰值检测;增益放大电路;滤波器设计;AD转换;液晶显示模块。
下面就围绕这些模块进行硬件电路设计。
第二章:
分模块硬件电路设计
2.1阻抗匹配电路
由于设计指标要求输入阻抗为50欧姆,所以在前端电路信号输入处加了一个跟随电路,利用一个50欧姆的电阻与一运放的输入端并联,满足50欧姆输入阻抗的要求,在选择运放方面,通过查资料我们比较了各种运放,选择了带宽增益积较高、输入失调电压较小比较适合音频信号的NE5532。
其中用到运放NE5532,NE5532是高性能低噪声双运算放大器(双运放)集成电路。
与很多标准运放相似,但它具有更好的噪声性能,优良的输出驱动能力及相当高的小信号带宽,电源电压范围大等特点。
因此很适合应用在高品质和专业音响设备、仪器、控制电路及电话通道放大器。
用作音频放大时音色温暖,保真度高,在上世纪九十年代初的音响界被发烧友们誉为“运放之皇”,至今仍是很多音响发烧友手中必备的运放之一。
利用Multisim仿真原理图如图2.1
图2.1阻抗匹配仿真原理图
仿真结果如图2.2所示,其中输入信号为Vp-p4V,1KHz的正弦波,得到输出也为同等参数的正弦波。
图2.2阻抗匹配仿真结果图
2.2峰值检测电路
峰值检测电路设计的要点:
1.模拟开关存储器,即电容
2.单向电流开关,即二极管
3.当一个新峰值到来,是电容电压能够跟踪输入电压,电压跟随,输入输出缓冲
4.电容放电复位开关
设计原理框图:
利用到运放OP07:
OP07芯片是一种低噪声,非斩波稳零的双极性(双电源供电)运算放大器集成电路。
由于OP07具有非常低的输入失调电压(对于OP07A最大为25μV),所以OP07在很多应用场合不需要额外的调零措施。
OP07同时具有输入偏置电流低(OP07A为±2nA)和开环增益高(对于OP07A为300V/mV)的特点,这种低失调、高开环增益的特性使得OP07特别适用于高增益的测量设备和放大传感器的微弱信号等方面。
利用Multisim仿真原理图如图2.3
图2.3峰值检测仿真原理图
图2.4峰值检测仿真结果图
仿真结果如图2.4,当输入是正弦信号时,输出是紧贴峰值的直流电压,满足实验要求
2.3增益放大
直接利用运放电路来搭建各种增益放大电路,利用比较器和继电器来选择不同的信号的不同放大倍数,可以满足要求,电路元件较小且较容易控制,实现了小信号大增益,大信号小增益。
放大电路同时设置了×1,×5,×0.5,3个放大通道,分别对100mv到300mv,300mv到3v和3v到5v的峰峰值范围内的信号进行不同放大,这样将可测量信号的动态范围扩展到了50mV;电路图见图2-5。
同时通过峰值保持电路记录一个FFT运算周期内的信号峰值,通过与设定的参考电压进行比较以确定信号的峰峰值范围,以作为下一次采样时放大通道的选择参考;控制器通过模拟开关来选择不同的放大通道。
图2.5
5倍放大和一倍放大电路,利用的是最基本的运算电路,同相比例运算电路。
0.5倍的电压放大是为了满足后端电路ADC模块的输入范围0到3.3v的需要,0.5倍不能用同相比例运算电路,我们选择的是两路反向比例运算电路级联,前一级是放大一倍,为了使信号相位反相,以便于在下一级0.5倍放大后与输入信号同相,电路图如下所示:
图2.6
2.4低通滤波器设计
音频信号的频率范围是20hz到20khz,为了有效的滤除各种干扰信号,我们设计了一个20khz的低通滤波器,利用OP27及其外围元件采用的是VCVS(VCVS全称为VoltageControlledVoltageSource电压控制电压源)电路设计的一种巴特沃斯低通滤波器。
图2.7四阶巴特沃斯低通滤波器
图2.8滤波器仿真结果图
第三章软件设计
3.1程序设计流程
在本设计中,控制及计算部分都由STM32来实现。
其中STM32核完成液晶显示、FFT算法实现、功率计算、A/D转换控制,增益选择控制等,系统流程图如图3.1:
图3.1软件流程图
3.2FFT算法
采用FFT实现采集的音频信号频域分析,得到音频信号中各频率分量的大小。
FFT运算主要分为位倒置和蝶形运算两个功能部分。
其中位倒置程序流程如图3-3。
蝶形运算设计:
由X1(k)、X2(k)表示X(k)的运算是一种特殊的运算-碟形运算
实现上式运算的流图称作蝶形运算(N/2个蝶形)。
由上式可以看出蝶形运算主要是系数
的确定。
而第L级的系数因子为(L=1,2,3...,M)。
,(J=0,1,2,...,
)
即第L级的蝶形运算系数因子类型数为
个。
设系统共有M级,可得
即有
,
。
图3.2位倒置程序流程图
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个点。
通过FFT分析出不同的频率点对应的功率后,就可以画出其功率谱,并可以在频域计算其总功率。
3.5LCD显示
LCD的软件设计由LCD的初始化程序、数值的显示程序组成,为了实时更新数据,此部分软件采用了定时器中断,时间间隔为5s,即每隔5秒都会进行一次数据的读取,并更新显示在LCD上。
图3.3显示流程图
第四章系统调试
4.1阻抗匹配电路
图4.1阻抗匹配电路调试结果
如图4.1所示,输入信号与输出信号基本一致,基本无噪声,打到预期效果。
4.2峰值检测电路
图4.2峰值检测电路调试结果
如图4.2所示,当输入是正弦波时,输出是峰值的一直流电压,达到实验要求。
4.3增益放大
图4.30.5倍放大电路结果
如图4.3所示,0.5倍放大,略微有些噪声,放大倍数满足实验要求。
图4.45倍放大电路结果
如图4.4所示,5倍放大效果良好,满足实验要求。
4.4低通滤波器
图4.5低通滤波器结果
如图4.5所示,当输入一频率为20KHz的正弦波时,输出的频率未变,但幅度明显变小,达到了滤波的效果。
4.5整体测试
图4.6整体实物图
将硬件电路与STM32F103连接起来,再将LCD显示屏与开发板相接。
接上电源,输入信号。
启动程序,观察LCD显示结果。
五、测试结果
当输入信号为1KHz,Vp-p1V的正弦波时,实验结果如下表
输入信号幅值(v)
1
2
3
4
5
功率
(mW)
理论值
2.5
10
22.5
40
62.5
实际值
2.52
10.3
23.1
40.5
63.2
误差
0.8%
3%
2.6%
1.3%
1.1%
表5.1正弦波测试结果
由表5.1可知,误差均小于3%,实验效果良好。
当输入信号是方波信号时,结果如表5.2所示。
输入信号幅值(v)
1
2
3
4
5
理论值
一次谐波功率(mW)
4.05
16.21
36.47
64.84
101.32
二次谐波功率(mW)
0.45
1.80
4.05
7.20
11.26
总功率(mW)
5
20
45
80
125
实际值
一次谐波功率(mW)
4.13
16.26
36.53
65.23
103.47
二次谐波功率(mW)
0.46
1.84
4.21
7.32
11.54
总功率(mW)
5.2
20.7
45.8
81.3
126.4
误差(%)
一次误差
2%
0.3%
1.5%
0.6%
2%
二次误差
2%
2%
3%
1.7%
2.5%
总攻误差
4%
3.5%
1.8%
1.6%
1.1%
表5.2方波测试结果
由表5.2可知,误差均在4%以内,对方波测试效果同样精确。
六、总结
我们所制作的音频信号分析仪基本完成了题目的要求,系统整体性能良好。
其实本设计还有很大的提升空间,但由于我们的动手能力以及理论水平有限,没能很好的达到。
通过本次设计,我们的动手能力以及处理问题的能力都有了很大的提高,并加深了对信号处理的理解,我们的收获很大!
附录
部分源程序
/*/////////////////////////////////////////////////////////////////////////////////////////////////
FFT转换函数,dataR:
实部,datai:
虚部,
////////////////////////////////////////////////////////////////////////////////////////////////*/
voidFFT(float*dataR,float*dataI,intn)
{
inti,L,j,k,b,p,xx,qq;
intx[11]={0};
floatTR,TI,temp;
floatQQ;
//////////////////////////////////位倒置////////////////////////////////////////////////////
for(i=0;i {xx=0; for(j=0;j x[j]=0; for(j=0;j {x[j]=(i/count[j])&0x01;} for(j=0;j {xx=xx+x[j]*count[n-j-1];} dataI[xx]=dataR[i]; } for(i=0;i {dataR[i]=dataI[i]; dataI[i]=0; } ////////////////////////////////////蝶形运算//////////////////////////////////////// for(L=1;L<=n;L++) { b=1;i=L-1; while(i>0) {b=b*2; i--; } for(j=0;j<=b-1;j++) {p=1;i=n-L; while(i>0) {p=p*2;i--;} p=p*j; for(k=j;k { TR=dataR[k]; TI=dataI[k]; temp=dataR[k+b]; QQ=2*pi*p/count[n]; qq=p*count[11-n]; dataR[k]=dataR[k]+dataR[k+b]*cos_tab[qq]+dataI[k+b]*sin_tab[qq]; dataI[k]=dataI[k]-dataR[k+b]*sin_tab[qq]+dataI[k+b]*cos_tab[qq]; dataR[k+b]=TR-dataR[k+b]*cos_tab[qq]-dataI[k+b]*sin_tab[qq];//查表运算 dataI[k+b]=TI+temp*sin_tab[qq]-dataI[k+b]*cos_tab[qq]; } } } for(i=0;i { w[i]=sqrt(dataR[i]*dataR[i]+dataI[i]*dataI[i]); w[i]=w[i]/count[n-1]; } w[0]=w[0]/2; } ///////////////////////////回放数据///////////////////////// voidviewdata(void) { unsignedintkey,page,i; page=0; LCD_PenColor=0x1F;//红色 LCD_WriteChineseString(font5,2,40,0); LCD_PenColor=0xFC;//蓝色 while (1){ key=getkey(); if(key! =0xFF) { if(key==4){SystemState=fft_mode;return;}//返回 if(key==2){ LCD_ClearScreen(); LCD_WriteChineseString(font3,2,10,0);LCD_WriteChineseString(font4,2,60,0); i=page*4+1; p3510(Re[i],0,15);print3510(Im[i]*mode,50,15); p3510(Re[i+1],0,26);print3510(Im[i+1]*mode,50,25); p3510(Re[i+2],0,38);print3510(Im[i+2]*mode,50,35); p3510(Re[i+3],0,50);print3510(Im[i+3]*mode,50,50); if(page>0)page--; delay_nms(8000000); }//上翻页 if(key==1){ LCD_ClearScreen(); LCD_WriteChineseString(font3,2,10,0);LCD_WriteChineseString(font4,2,60,0); i=page*4+1; p3510(Re[i],0,15);print3510(Im[i]*mode,50,15); p3510(Re[i+1],0,26);print3510(Im[i+1]*mode,50,25); p3510(Re[i+2],0,38);print3510(Im[i+2]*mode,50,35); p3510(Re[i+3],0,50);print3510(Im[i+3]*mode,50,50); page++;if(page>=SampleNum/4)page=0; delay_nms(8000000); }//下翻页 } } } ////////////////////////////失真度计算/////////////////////// voiddistortion(void) { LCD_ClearScreen(); LCD_WriteChineseString(font6,3,10,20); unsignedintkey; intfr; while (1) { ////////////获取频率//////////////////// log_2_N=11;SampleNum=SampleTab[log_2_N]; reset_timer(0); init_timer0(40960); New_Flag=0; enable_timer(0); ////////////////////等待采样完成/////////////////////////// while(! FFT_Flag); disable_timer(0);//关定时器0 //////////////////////FFT运算///////////////////////////////// FFT(Re,Im,log_2_N); ////////////////频域功率//////////////////////////////////// for(i=1;i ////////////////////总功率///////////////////////////////// Fp=0; for(i=1;i sort(&Re[1],&Im[1],SampleNum/2-1); fr=1000000/fre; if(Tflag){LCD_WriteChineseString(font7,1,50,20);LCD_WriteEnglishString("",0,38);print3510(fr,10,38);LCD_WriteEnglishString("US",58,38);} else {LCD_WriteEnglishString("",0,38);LCD_WriteChineseString(font8,1,50,20);} ////////////////////按键扫描///////////////////////////// key=getkey(); if(key! =0xFF) { if(key==1){SystemState=fft_mode;mode=20;break;}//返回 if(key==2){SystemState=fft_mode;mode=100;break;}//返回 } } } /////////////////按键扫描////////////////////////////// unsignedchargetkey(void) { if(IO1PIN_bit.P1_21==0){ delay
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 音频 信号 分析 设计 报告 剖析
![提示](https://static.bdocx.com/images/bang_tan.gif)