音频信发号分析仪设计

上传人:沈*** 文档编号:149939197 上传时间:2022-09-08 格式:DOC 页数:22 大小:1.36MB
收藏 版权申诉 举报 下载
音频信发号分析仪设计_第1页
第1页 / 共22页
音频信发号分析仪设计_第2页
第2页 / 共22页
音频信发号分析仪设计_第3页
第3页 / 共22页
资源描述:

《音频信发号分析仪设计》由会员分享,可在线阅读,更多相关《音频信发号分析仪设计(22页珍藏版)》请在装配图网上搜索。

1、音频信号分析仪指导老师:邓晶年纪专业:11信息工程 成员: 刘丽梅(1128401039) 东飞(1128401014) 罗兰(1128401128) 日期:2014年6月 22 / 22摘 要:本音频信号分析仪基于快速傅里叶变换的原理,以32位CPU STM32构成的最小系统为控制核心,由电压跟随、程控放大、峰值检测、抗混叠滤波等模块组成。本音频信号分析仪由STM32控制,通过AD转换,对音频信号进行采样,把连续信号离散化,然后通过FFT运算,对音频信号各个频率分量以及功率等指标进行分析和处理,然后通过高分辨率的LCD对信号的频谱进行显示。该系统能够精确测量的音频信号频率范围为50Hz-10

2、KHz,其幅度范围为5mVpp-5Vpp,分辨力为50Hz。关键词:FFT 嵌入式系统 前级信号处理 功率谱 Abstract: This audio signal analyzer based on the principle of fast Fourier transform, the minimum system consisting of STM32 embedded system as control core, followed by the voltage, program-controlled amplifier, peak detection, such as anti al

3、iasing filter modules. This audio signal analyzer controlled by an embedded system, through the AD conversion, the audio signal sampling, the continuous signal discretization, then through FFT arithmetic, each frequency component and the power index in the audio signal analysis and processing, and t

4、hen through high resolution display LCD frequency spectrum of the signal and the characteristics of. The system can accurately measure the audio signal frequency range of 50 -10K HZ, its amplitude range is 5 mVpp- 5 V pp ,resolution of 50 Hz. 目 录摘要2目录3引言41 系统方案比较与选择31.1 主控芯片的选择312 采样方法比较与选择413 信号功率的

5、计算41. 4 系统总体方案42 硬件设计 521 程控放大电路设计522 峰值检测电路设计6 23 总硬件电路 73 软件调试941软件总体流程图设计942程控放大程序设计1043 FFT程序114. 4功率计算114.5 周期计算124 系统调试 1251 总硬件焊接图1252电压跟随电路75.3程控放大电路8 5.4峰值检测电路85.5电压抬升电路1856 液晶屏显示图13 57 测试结果145 总结15参考文献15附录1:元器件明细表和仪器设备清单15附录2:FFT程序15附录3:周期计算程序17附录4:主程序18引言 早期专业的音频分析仪种类很少,在做音频测量时一般是利用万用电表、频

6、率计、示波器及频谱仪等组合成一套音频测试系统。这种测试系统中间环节多,各环节之间接口匹配较为困难,使用起来比较麻烦,测量结果往往也不精确。 近年来出现的音频分析仪器也与仪器的主流发展趋势一致,朝着高度集成化、智能化的方向发展,这些仪器集成了复杂音频信号发生装置、功率放大装置等,具备了一些初步的图形化分析功能,使用户很容易组建音频测量系统。 美国AudioPrecision公司是一家全球最大的音频测试仪器制造商;创立于1984年,其音频测试仪器SystemTwo/AP2700系列是目前音频测试业界的标准测试仪器,为Dobly,DTS,等多家研究机构采用,是miscrosoftDTM认证的指定仪器

7、。 RS公司的“精灵系列”音频分析仪UP300&UP350也是这类仪器的典型代表,可测量双向信道串扰,可产生双音信号,用于调制失真分析和差频失真测量,且测量范围宽,精度较,UP350还可分析数字音频信号,采样率高达192KHz,可用于数字音频设备测量和模拟/数字混合接口的相关应用。音频信号分析仪利用频谱分析原理来分析被测信号的频率、频谱及波形。常用的频谱分析方法有:扫频法、数字滤波法、FFT法。这里提出一种基于FFT方法的音频信号分析仪设计方案,通过快速傅里叶变换(FFT)把被测的音频信号由时域信号转换为频域信号,将其分解成分立的频率分量,在此基础上对其进行各种分析,达到与传统频谱分析仪同样效

8、果。该系统设计可应用于音频制作、信号分析等领域,具有一定的科学价值和实用价值。1 系统方案比较与选择1.1 主控芯片的选择本系统采用基于32位的ARM Cortex-M3处理器STM32F103VBT6作为主控芯片,它具有非常丰富的片内资源,例如实时时钟(RTC)、定时器(TIM)、通用IO接口(GPIO)、DMA控制器、AD转换器、USART接口、I2C接口、SPI接口和CAN总线接口还包括20 kB的片内SRAM,128 KB的片内FLASH以及一个支持USB 2O规范的全速USB外围设备等,它是整个系统的主控单元,协调其它模块完成数据采集、存储、处理、控制、传输等多项功能。它的引脚图如图

9、1-1所示:图1-1 STM32F103VB引脚图1.2 采样方法比较与选择方案一:采用12位AD转换器ADS7819进行转换,将转换的数据送32位控制器进行处理。方案二:利用STM32对数据进行采集,然后利用STM32自带的12位AD转换器进行转换后送入内部,然后由STM32对数据进行处理。方案一能采集电压值为负的信号,方案二易于控制采样频率,硬件简单,综合考虑以及使硬件简单化,所以我们选择了方案二。1.3 信号功率的计算方案一:通过测真有效值的方式实现,应用普通的真有效值检测芯片可以方便的测出信号在一定时间段内的总功率。但对单个频点处的功率测量无能为力。方案二:在用FFT得到信号的频谱后根

10、据帕斯瓦尔定律可以很方便的得到信号各频率分量的功率及信号的总功率。因为本设计中我们可以通过FFT得到信号的频谱,因此方案二最适合本设计。1.4 系统总体方案根据以上的方案论证与比较,先将输入信号通过电压跟随电路,一路送给峰值检测电路,然后一路送给程控放大模块,调理到ADC适合采样的输入范围内,经过抗混叠滤波后进行电压抬升,送人STM32内部的AD进行采样。根据频率分辨力来确定采样率,利用STM32快速数据处理能力,在其中完成1024点的FFT运算计算该信号的功率谱,并能实时显示信号总功率及主要频率成分功率。其中,对于信号周期性的判断与测量,我们采用自相关的方法,大大提高了判断的准确性。最后系统

11、总体实现方案如图1-3所示:信号输入内部ADC峰值检测电压跟随抗混叠滤波电压抬升程控放大LCD显示STM32键盘 图1-4 系统总体方案 2、硬件设计2.1 程控放大电路 程控放大电路电路图如图2-1-1所示。该电路主要由2个DAC0832和1个OP07组成。令R2=R1,输出与输入的关系是Vo/Vi=-D1/D2.理论上它可以实现使信号最大放大255倍和最大缩小255倍。图2-1-2,2-1-3,2-1-4为它的仿真结果(上面的信号为输入信号,下面的信号为输出信号),分别为放大21倍,放大1倍和缩小0.6倍。图2-1-1程控放大电路电路图图2-1-2 20倍放大仿真图 图2-1-3倍放大仿真

12、图 图2-1-4 0.6倍放大仿真图2.2 峰值检测电路 峰值检测电路图如图2-2-1所示。它的工作原理如下:初始状态电容电压Uc=0时,当输入电压Ui0时,由于运放U1A充当跟随器,故U2=Ui。二极管D1,D2导通,电压Ui电容C充电,直至电容C上的电压Uc等于Ui的峰值。只要UiUc时,二极管才导通,电容C进行充电。运放U1B也充当跟随器的作用,使峰值检测与后面电路隔离。它的仿真结果如图2-2-2所示。 图 2-2-1 峰值检测电路图 图2-2-2 峰值检测电路仿真图2.3 总硬件电路如图2-3-1所示为总硬件电路,输入信号首先经过电阻匹配和电压跟随电路,实现输入阻抗50欧姆和输入信号与

13、后级电路隔离,然后经过放大电路,通过主板来控制放大倍数,接着接入抗混叠滤波电路,实现输入信号截止频率为10KHz,最后接入电压抬升电路,使信号电压不为负值。如图2-3-2所示为STM32与外围电路的连接图图2-3-1 总硬件电路PC1PC4PC53、硬件调试(1为输入(上面),2为输出(下面)3.1 电压跟随电路 如图3-1所示,当输入信号为幅值Vi=1.24V,频率为F=1.00KHz时,输出信号为Vo=1.28V,误差率:S1=(1.28-1.24)/1.24)*100%=3.2% 图3-1 电压跟随电路测试结果3.2 程控放大电路如图3-2-1所示为放大21倍结果显示,当输入信号为幅值V

14、i-pp=130mV,频率为F=1.00KHz时,输出信号为Vo-pp=2.64V,误差率:S2=(2.73-2.64)/2.73)*100%=3.3%如图3-3-2所示为放大0.6倍结果显示,当输入信号为幅值Vi-pp=3.48V,频率为F=1.00KHz时,输出信号为Vo-pp=2.24V,误差率:S3=(2.24-2.088)/2.088)*100%=7%图3-2-1放大21倍测试结果 图3-2-2 放大0.6倍测试结果3.3峰值检测电路 如图3-3所示,当输入信号为幅值Vi=1.12V,频率为F=4.00KHz时,输出信号为Vo=1.08V,误差率:S4=(1.12-1.08)/1.0

15、8)*100%=3.7% 图3-3 峰值检测电路测试结果 3.4 电压抬升电路 图3-4为抬升1.5V电压测试结果显示,当输入信号为幅值Vi=1.48V,频率为F=1.00KHz时,输出信号为Vo=1.44V,平均值为1,59V,误差率:S5=(1.59-1.5)/1.5)*100%=6% 图3-4 电压抬升测试结果4 软件设计4.1 系统总体程序流程图系统总体程序流程图如图4-1所示,主程序见附录4。开始 系统初始化设置求峰值放大倍数设置否信号采样完成?是FFT运算功率计算暂停健按下?LCD显示周期计算 否是 图4-1 系统总体程序流程图4.2 程控放大程序设计图4-2为程控放大程序流程图。

16、峰值采样10个点 求平均值是峰值大于1.5V?、否设置倍数为0.6是峰值大70mV? 否设置倍数为1设置倍数为21图4-2 程控放大程序流程图4.3 FFT程序设计 FFT程序主要由位倒置和蝶形运算组成。其位倒置程序流程图如图4-3所示:i=1,j=512 i1023?是ij?否是Xi Xj j最高位加1,逢2向次高位进1 图4-3 位倒置程序流程图FFT程序见附录2。4.4 功率计算功率谱表示单位频带内信号功率随频率的变化情况,它反映了信号功率在频域的分布情况。对于功率谱的测量我们采用的是周期图法。 已知随机信号的功率谱和自相关函数是傅氏变换对,即功率谱。而自相关函数定义为:,则 用有限长的

17、样本序列来估计功率密度谱即为。对于的求解,我们在STM32内部完成了1024点的基2时域抽取法FFT运算。计算出了各频率分量上的功率大小,那么根据失真度的定义,即信号中全部谐波分量的能量与基波能量之比的平方根值,正弦信号的失真度可以很方便得求出。4.5 周期计算我们根据相关性能够反映信号相似程度的特点来解决周期性的判断问题。 自相关函数为:。它表示信号的波形与自身经过时刻后的波形的相似程度。当m=0时具有极大值,即相似性最好的时候。当移位时间恰好等于一个周期时,又有一个极大值,且两个极大值相等,则周期即为移位时间m. 实际测试时采样点要包含两个以上的周期,先取长为L的窗对数据进行加窗后再作上述

18、的相关运算。得到需要的移位时间K后,根据采样频率即可计算出周期大小T为(为采样率)。周期程序见附录3。5、系统调试 5.1总硬件焊接图图5-1为总硬件焊接图 5-1 总硬件焊接图5.2液晶屏显示图:当输入信号为Vi=1.05V,频率为F=1000Hz的正弦信号时,系统得到的测试结果为平均功率P均=10.979mW,是周期信号Y=1,周期为0.97ms最大功率的频率f1=1050Hz,功率为P1=4.785mW次大功率的频率f2=0 Hz,功率为P2=0.2mW失真度为ds=38.2%,放大倍数为b=1;5-2 液晶屏显示图5.3测试结果 测试结果1如表1所示,当输入频率相同,而输入幅度不同时,

19、测得功率随幅度而变化;当输入幅度相同,而输入频率不同时,测得周期随输入频率而变化 表1输入信号实际测量类型频率(Hz)幅度(V)理论功率(mV)测量功率(mV)误差(%)周期(ms)误差(%)失真度(%)正弦10004.02161.604158.61.90.97334.1正弦10001.0511.02510.9794.60.97333.4正弦10000.050.0250.02346.40.99135.3正弦10003.77142.1137.23.41.971.538.9正弦50003.77142.1130.48.20.21151.2正弦10003.77142.1101.728.30.09103

20、6.8测试结果2如图5-3-1,图5-3-2,图5-3-3所示,当输入为2次,4次,8次谐波时,正弦波失真度分别为70.6%,85.4%,93.6%图5-3-1 图5-3-2 图5-3-3测试结果3如图5-3-4所示当输入信号为2000Hz与3000Hz的正弦信号相加时,测得的周期为0.9ms图5-3-46、总结从对嵌入式的一窍不通到现在基本熟练,“音频信号分析仪”课程设计起了莫大的作用。对于我们三个来说,音频信号分析仪是我们迄今为止做过的最难的课程设计。一开始的我们对这个课题充满迷茫,特别是STM32。经过上网查阅资料和自学,才对这个课题有了初步的认识与了解。因为在此之前完全没有学过嵌入式,

21、所以看书很吃力。后来嵌入式入门后,看书就相对简单了,越学就越简单了。在此次课题设计中,可谓遇到过许多困难。因为没有熟识的人请教,所以一切都由我们自己摸索与上网查阅。在硬件调试中,因为虚焊和连接错误而反复的测量各个部分的电压。在软件调试中,问题更多。当时就是每天改程序,改程序做的时候就感觉很累很累,做完就感觉轻松轻松。在学习上没有做不成的事,只有你不想去完成的事,坚持不懈就一定有所收获。参考文献1.数字信号处理教程MATLAB释义与实现.陈怀琛著2.嵌入式系统原理及应用.屈召贵 等著3.ARM Cortex嵌入式系统开发教程.黄建华 等著4.STM32嵌入式微控制器快速上手 陈志旺 等编著附录附

22、录1:元器件明细表和仪器设备清单核心板STM32F103VB:1块TFT 液晶屏:1块DAC0832:2个OP07:4个LM741:2个1N4148:2个电阻:若干电容:若干万用表:1个函数发生器:1台示波器:1台附录2: FFT程序struct complex /构造复数结构 float real; float imag;typedef struct complex COMPLEX;void fft(COMPLEX *x) double temp_re; double temp_im; unsigned int i,j,k,P; unsigned int LH,K,B; COMPLEX tm

23、p; LH=512; j=LH; for(i=1;i1023;i+) /倒序最高位加1,逢2向次高位进位 if(ij) tmp.real=xj.real; tmp.imag=xj.imag; xj.real =xi.real; xj.imag =xi.imag; xi.real=tmp.real; xi.imag=tmp.imag; K=512; while(jK)=0) j=j-K; K=K/2; j=j+K; /对1024点输入序列进行位 for(i=1;i=10;i+) /第一重循环控制蝶形的级数 B=pow(2,(i-1); for(j=0;j=(B-1);j+) /控制每级的蝶形和旋

24、转因子 P=pow(2,(10-i)*j; temp_re=cos(2*3.1415926*P/1024); temp_im=sin(2*3.1415926*P/1024); for(k=j;k0)t=512/k;if(k=20) for(i=0;i=k;i+) Rx0+=Ti.real*Ti.real; for(m=t;m512;m+) Rxx=0; for(i=0;i=k;i+) Rxx+=Ti.real*Ti+m.real; if(Rx0-Rxx)/Rx00) for(i=0;i=2*t;i+) Rx0+=Ti.real*Ti.real; for(m=t;m512;m+) Rxx=0;

25、for(i=0;i=2*t;i+) Rxx+=Ti.real*Ti+m.real; if(Rx0-Rxx)/Rx00.04) break; else for(i=0;i=100;i+) Rx0+=Ti.real*Ti.real; for(m=2;m512;m+) Rxx=0; for(i=0;i=100;i+) Rxx+=Ti.real*Ti+m.real; if(Rx0-Rxx)/Rx0CR1|=0x01;GPIO_Write(GPIOB, 0x00ff); while(1) shua=1;TIM3-CR1|=0x01; while(count!=10); average=sum/10;/峰

26、值大于3V,倍数为0.6;峰值大于140mv,倍数为1;峰值大于25mv,倍数为21;峰值小于25mv,倍数为101if(average1861) GPIO_Write(GPIOB, 0x03ff); /LCD_ShowString(10,130,16,b: 0.6,1); else if(average160) GPIO_Write(GPIOB, 0x00ff);LCD_ShowString(10,130,16,b: 1,1); else GPIO_Write(GPIOB, 0x14ff); LCD_ShowString(10,130,16,b: 21,1); while(flag); /等

27、待采集信号1024点结束 for(i=0;i1024;i+) xi.real =yi.real;xi.imag = 0; fft(x); /FFT计算 t=frequency(x); /功率计算dis=(u16)(1000*sqrt(power/2-Max)/Max); /失真度cir=period(y,t); /周期计算if(cir=(512/t)|cir=512|cir=2)yes=0;elseyes=1;cir=1000*cir/512;/*液晶屏显示*/LCD_ShowString(10,10,16,P :,1);LCD_ShowNum(50,10,(u16)(power*100),7

28、,16);LCD_ShowString(120,10,16,m W(e-2),1); if(yes=1)LCD_ShowString(10,25,16,Y : 1,1);LCD_ShowString(10,40,16,T :,1);LCD_ShowNum(50,40,cir,3,16);LCD_ShowString(110,40,16,m s(e-2),1);elseLCD_ShowString(10,25,16,N : 0,1);LCD_ShowString(10,55,16,f1:,1);LCD_ShowNum(50,55,50*t,5,16);LCD_ShowString(100,55,

29、16,H z,1);LCD_ShowString(10,70,16,p1:,1);LCD_ShowNum(50,70,(u16)(Max*100),5,16);LCD_ShowString(100,70,16,m W(e-2),1);LCD_ShowString(10,85,16,f2:,1);LCD_ShowNum(50,85,50*f2,5,16);LCD_ShowString(100,85,16,H z,1);LCD_ShowString(10,100,16,p2:,1);LCD_ShowNum(50,100,(u16)xf2.real,5,16);LCD_ShowString(100,100,16,m W,1);LCD_ShowString(10,115,16,ds:,1);LCD_ShowNum(50,115,dis,5,16);LCD_ShowString(100,115,16,/1000,1);for(i=0;i0)LCD_DrawLine(9+i),220-yi-1.real,(10+i),220-yi.real); /画时域波形LCD_DrawLine(10+i),lcddev.height,(10+i),lcddev.height-(u16)xi.real); /画频率波形 delay_ms(10);while(shua);LCD_Clear(WHITE);

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!