




已阅读5页,还剩35页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
河南科技大学毕业设计(论文)FFT在单片机上的实现摘 要音频信号分析仪是一种可广泛见于各种音响、调音和录音设备上的,能实时地采样及分析输入的音频信号的频谱,并将其显示在显示屏上的设备,使人在聆听音乐时能对音乐的高低频能有直观的了解。本文所介绍的即是这样一个音频信号分析系统。系统的硬件由信号调理、控制处理器、显示模块三部分组成。信号调理电路使信号可输入300mV3V的交流音频信号。这里只对单路信号处理:当电压较低时使用LM324运放获得增益,对超过12800Hz的信号进行滤波处理。另外设置输出音频接口以便监听。控制处理器采用51内核1T单片机STC12C60A5S2,晶振频率为32.768MHz。该单片机自带8路10位高速ADC,这里只用1路ADC的高8位。对信号连续采32个点进行浮点型FFT运算。一次完整采样的时间为1.25ms,最高采样频率为25600Hz,分辨频率为800Hz12800Hz,分16级。显示部分主体为1602液晶显示屏,其具有2行16列的85点显示点阵。16分频谱将分别以柱高形式显示在显示屏上。程序中设置了频率下落效果以使观感更好。另设置了对比度调节电阻,使屏幕对比度可调。关 键 词:FFT 单片机 音频 频谱THE REALIZATION OF FFT IN THE MICROCONTROALERABSTRACTAudio signal analyzer is a kind of device which can be widely found in various of audio, mixing and recording devices, and can sampling and analysis of the spectrum of the input have an intuitive audio signal and displays it on the display in real-time, people can are listening to Music for music when high frequency understanding. What presented in this article is just such an audio signal analysis system. The hardware of the system are formed with three parts: the signal conditioner, the control processorand the display module.Signal conditioning circuit makes the signal of 300mV 3V AC audio signal available for inputting. In this system,we only process with single-channel signal: When the voltage is lower the system uses LM324 op amp to gain voltage, and as to signals more than 12800Hz it filters them. In addition the system sets an output audio interface for monitoring.The control processor of the system is the 51 cores 1T MCU STC12C60A5S2, with 32.768MHz crystal frequency. The device comes with 8-channel &10-bit high-speed ADC, where only one channel ADC high 8. The signal collected 32 points in consecutive floating-point FFT operation. A complete sampling time is 1.25ms, the maximum sampling frequency is 25600Hz, and the distinguish frequency is 800Hz 12800Hz, with 16 levels.The main display section is 1602 LCD screen, which has 2 rows 16 columns - 8 5 dot display matrix. 16 points to the column height spectrum will be displayed on the display. The process of setting of the frequency drop in the perception of better effect. There is also contrast adjustment resistor, which makes the screen contrast adjustable.KEY WORDS:FFT,MCU,AUDIO SPECTRUM目 录第1章 绪论11.1 研究的背景及意义11.1.1 课题研究背景11.1.2 课题研究意义11.2 课题发展的状况11.3 设计任务2第2章 系统方案设计32.1 系统方案设计32.2 系统硬件的选择32.2.1 处理器的比较与选择32.2.2 采样模块的确定42.2.3 显示器件的比较和选择4第3章 系统硬件设计53.1 单片机STC12C5A60S253.1.1 单片机STC12C5A60S2功能简介53.1.2 单片机STC12C5A60S2引脚图63.1.2 单片机的最小系统63.2 显示屏LCD160273.2.1 LCD1602简介73.2.2 LCD1602的硬件连接83.3.1 LM324电压增益与偏移电路93.3.2 滤波电路10第4章 系统软件设计114.1 系统软件总体设计114.2 系统软件详细设计124.2.1 系统的准备和初始化124.2.2 AD采样子程序134.2.3 蝶形运算的FFT算法154.2.4 显示子程序17第5章 系统调试205.1 信号电压调试205.2 单频率信号测试205.2.1 实际频率分度测试215.2.1 频率混叠和滤波效果225.3 实际使用效果22结 论24参考文献25致 谢26附录27一、主程序代码27二、原理图3536河南科技大学毕业设计(论文)第1章 绪论1.1 研究的背景及意义1.1.1 课题研究背景在家庭影院、卡拉OK等音响系统中,实时显示音乐信号的频谱将为音响系统增不少色彩。目前实际生产的音响系统产品,大多采用以下两种方法实现音频频谱显示:一是利用硬件滤波器和A/D转换器;二是利用单片机或DSP处理频谱显示。前者实现简单,但硬件成本高;后者软件和硬件实现都较复杂。1.1.2 课题研究意义目前,大多数音频信号处理仪不但体积大而且价格贵,在一些特殊方面难以普及使用,而嵌入式系统分析仪具有小巧可靠的特点,所以开发基于特殊功能单片机的音频信号分析仪器是语音识别的基础,具有很好的现实意义。1.2 课题发展的状况早期专业的音频分析仪种类很少,在做音频测量时一般是利用万用电表、频率计、示波器及频谱仪等组合成一套音频测试系统。这种测试系统中间环节多,各环节之间接口匹配较为困难,使用起来比较麻烦,测量结果往往也不精确。传统的频谱分析仪的前端电路是一定带宽内可调谐的接收机,输入信号经变频器变频后由低通滤器输出,滤波输出作为垂直分量,频率作为水平分量,在示波器屏幕上绘出坐标图,就是输入信号的频谱图。由于变频器可以达到很宽的频率,例如30Hz-30GHz,与外部混频器配合,可扩展到100GHz以上,频谱分析仪是频率覆盖最宽的测量仪器之一。无论测量连续信号或调制信号,频谱分析仪都是很理想的测量工具。但是,传统的频谱分析仪也有明显的缺点,它只能测量频率的幅度,缺少相位信息,因此属于标量仪器而不是矢量仪器。近年来出现的音频分析仪器也与仪器的主流发展趋势一致,朝着高度集成化、智能化的方向发展,这些仪器集成了复杂音频信号发生装置、功率放大装置等,具备了一些初步的图形化分析功能,使用户很容易组建音频测量系统。基于快速傅里叶变换(FFT)的现代频谱分析仪,通过傅里叶运算将被测信号分解成分立的频率分量,达到与传统频谱分析仪同样的结果,。这种新型的频谱分析仪采用数字方法直接由模拟/数字转换器(ADC)对输入信号取样,再经FFT处理后获得频谱分布图。在这种频谱分析仪中,为获得良好的仪器线性度和高分辨率,对信号进行数据采集时ADC的取样率最少等于输入信号最高频率的两倍,亦即频率上限是100MHz的实时频谱分析仪需要ADC有200MS/S的取样率。目前半导体工艺水平可制成分辨率8位和取样率4GS/S的ADC或者分辨率12位和取样率800MS/S的ADC,亦即,原理上仪器可达到2GHz的带宽,为了扩展频率上限,可在ADC前端增加下变频器,本振采用数字调谐振荡器。这种混合式的频谱分析仪可扩展到几GHz以下的频段使用。1.3 设计任务1、 完成信号电压调理电路和硬件的连接电路的设计。制作出硬件实物。2、 ADC模块能正确采集到音频的完整波形,并保证一定的精度。3、 学习频谱分析和傅里叶变换有关原理,使用FFT算法分析出当前音频的频谱。4、 设计显示程序,使显示屏能实时地、以柱状图的形式将音频频谱显示出来,并有一定的美观效果。第2章 系统方案设计2.1 系统方案设计图2-1 系统总体方案系统由信号调理电路、数模转换模块、主控制器、显示部件组成。信号调理电路主要负责对音频信号的电压进行变换,使其电压变化能正确地被数模转换模块采集。对信号的滤波处理也在这里进行。ADC模块将连续变化的电压值转化为单片机可识别的离散数字量。主控制器对采集的数据处理得到信号频谱,并控制显示屏将频谱实时显示出来。由于是对模拟信号的实时采集分析,本系统除了可应用于数码音乐播放器的音频谱显示,还可连接麦克风显示分析环境或人声音频谱。2.2 系统硬件的选择2.2.1 处理器的比较与选择鉴于本次设计的学习目的,处理器选择最易操作的51内核的单片机。传统8051单片机以12个晶振周期作为一个机器周期,处理速度慢,内存较小,且在用到ADC时需要与ADC芯片通讯花费时间,因此舍弃传统8051单片机。升级版的51内核单片机有STC12系列和Cygnal的C8051F系列待选。其中后者被誉为51系列最快单片机,内部有最高12位高速ADC和最高4K的RAM。但这款单片机价格较贵且仅有贴片形式的封装,调试困难。STC的12系列单片机同样有较快的处理速度,内部有最高10位高速ADC和1280字节RAM。考虑到本次设计目的为普通的频谱分析器,且液晶显示屏整体刷新速度有100ms的瓶颈限制,这里采用双排插针封装的STC12C560S2单片机作为处理器。晶振使用单片机最高允许的32.768MHz晶振。2.2.2 采样模块的确定由于单片机自带ADC转换模块,可以直接使用。内部ADC模块的采样速度高达250K/S,远高于音频最高频率20KHz的二倍。使用内部ADC模块还可以省去通信、存储等使用外部ADC芯片时的繁琐操作。因此确定使用单片机内部ADC模块作为采样模块。2.2.3 显示器件的比较和选择常见的单片机操作的8位显示屏有1602和12864两种,均为单色显示屏。前者是分块显示的显示屏。每格块的像素点为85,共2行16列。后者12864为12864个像素点的整块点阵显示屏,用于显示图形十分方便,但每次更新图形都需要整屏刷新,需要传输的数据量较大。综合考虑,采用1602作为显示设备。利用同列的两个显示块显示一个变化高度的亮柱来表示一个频率分量的幅值大小。第3章 系统硬件设计3.1 单片机STC12C5A60S23.1.1 单片机STC12C5A60S2功能简介1.增强型8051CPU,单时钟/机器周期,指令代码完全兼容传统8051 2.工作电压:STC12C5A60S2系列工作电压:5.5V - 3.5V(5V单片机) 3.工作频率范围:035MHz,相当于普通8051的0420MHz 4.用户应用程序空间8K /16K / 20K / 32K / 40K / 48K / 52K / 60K / 62K 5.片上集成1280字节RAM 6.通用I/O口(36/40/44个),复位后为:准双向口/弱上拉(普通8051传统I/O口)可设置成四种模式:准双向口/弱上拉,强上拉,仅为输入/高阻,开漏上拉,仅为输入/高阻,开漏上拉,仅为输入/高阻,每个I/O口驱动能力均可达到20mA,但整个芯片最大不要超过120mA 7.ISP (在系统可编程)/ IAP(在应用可编程),无需专用编程器,无需专用仿真器可通过串口(P3.0/P3.1 )直接下载用户程序。 8.有EEPROM功能(STC12C5A62S2/AD/PWM无内部EEPROM) 9.看门狗10. 内部集成MAX810专用复位电路(外部晶体12M以下时,复位脚可直接1K电阻到地) 11.外部掉电检测电路:在P4.6口有一个低压门槛比较器 5V单片机为1.33V,误差为5%,3.3V单片机为1.31V,误差为3% 12.时钟源:外部高精度晶体/时钟,内部R/C振荡器(温漂为5%到10%以内)用户在下载用户程序时,可选择是使用内部R/C振荡器还是外部晶体/时钟常温下内部R/C振荡器频率为:5.0V单片机为: 11MHz 17MHz单片机为: 8MHz12MHz。精度要求不高时,可选择使用内部时钟,但因为有制造误差和温漂,以实际测试为准 。13.共4个16位定时器,两个与传统8051兼容的定时器/计数器,16位定时器T0和T1,没有定时器2,但有独立波特率发生器做串行通讯的波特率发生器,再加上2路PCA模块可再实现2个16位定时器 14.3个时钟输出口,可由T0的溢出在P3.4/T0输出时钟,可由T1的溢出在P3.5/T1输出时钟,独立波特率发生器可以在P1.0口输出时钟 15.外部中断I/O 口7路,传统的下降沿中断或低电平触发中断,并新增支持上升沿中断的PCA模块。16.PWM (2路)/ PCA (可编程计数器阵列,2路)也可用来当2路D/A使用,也可用来再实现2个定时器,也可用来再实现2个外部中断(上升沿中断/下降沿中断均可分别或同时支持) 17.A/D转换, 10位精度ADC,共8路,转换速度可达250K/S18.通用全双工异步串行口(UART),由于STC12系列是高速的8051,可再用定时器或PCA软件 19.STC12C5A60S2系列有双串口,后缀有S2标志的才有双串口,RxD2/P1.2 (可通过寄存器设置到P4.2),TxD2/P1.3 (可通过寄存器设置到P4.3) 20.工作温度范围:-40 +85(工业级) /0 75(商业级) 21.封装: PDIP-403.1.2 单片机STC12C5A60S2引脚图图3-1 STC12C5A60S2引脚图3.1.2 单片机的最小系统STC12C60S2最高支持33MHz的晶振,为使单片机处理数据的速度尽量快,这里选用32.768MHz的晶振。当外部晶振大于10MHz时,单片机需要外部复位电路。用RC上电复位的的方式,电容为10uF、电阻为10时,电容的放电时间为ms,大于RST脚高电平复位时间。单片机的串口通过PL-2303芯片与电脑USB连接用来下载程序。这里省略PL-2303芯片的连接图。方便起见,单片机供电直接使用USB的+5V供电。下面是单片机的最小系统连接图:图3-2 STC12C5A60S2最小系统3.2 显示屏LCD1602 3.2.1 LCD1602简介1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。读CGROM地址的时候,先读左边那列,再读上面那行,如:感叹号!的ASCII为0x21,字母B的ASCII为0x42(前面加0x表示十六进制)。另外还有8个可由用户自定义的5X8的字符发生器CGRAM。用户可以将自定义图形写入其中。其他特性为:+5V电压,对比度可调,内含复位电路,有80字节显示数据存储器DDRAM,提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能。3.2.2 LCD1602的硬件连接图3-3 单片机与1602液晶的连接3.3 信号调理电路 3.3.1 LM324电压增益与偏移电路本系统的信号输入来自数字音频播放器如PC机的声卡、MP3,或有源麦克风等有源设备,单声道输入。输入信号为均值为0,幅值为VV的交流信号,由输入。而进入单片机ADC模块的电压要求0,为USB供电的+5V。因此必须进行电压调理。整个系统采用单电源供电,所以无法对交流信号直接放大,必须先偏移再放大。该过程可由一个运算放大器来完成。运放选用LM324N,连线图如下:图3-4 电压增益与偏移电路这是一个同向加法电路,由模拟电路相关知识易得:其中为的输入信号,电压范围为VV,为偏移电压,由稳压二极管产生,其作用是使均值为0的交流音频信号偏移使全为正值。电阻的值的计算过程略,这里只对图中的数值进行验证。当输入电压为V时,应将放大倍数取最大,可变电阻取0,得:V当的输入电压为V时,应将放大倍数取最小, 可变电阻取,得:V可见电阻如图取值,当音频信号较大和较小时,都可以通过调节可变电阻R2来使采样达到较好的效果。为使稳压管正常工作,稳压管的阴极应接在高于稳压管反向导通电压的位置。即有:将、带入上式,得,取。3.3.2 滤波电路如果由于原信号频带很宽或采样频率选得太低,则频域中相邻周期的波形就会发生重叠,从而引起误差。这种现象称频率混叠,简称频混。如果一个信号的频谱具有无限的带宽,则不论如何选择采样频率,频混误差都不可避免。然而这种信号并不多见,比较常见的是一个有用的低频信号混进了一个高频的噪声信号。因此在采样之前先用低通滤波器滤去高频噪声,这种低通滤波器称为抗混淆滤波器。在现代数字式分析系统中,它已被列为基本组成环节。抗混淆滤波器的截止频率选为。由采样定理可知:对一个频率为的有限带宽连续信号进行采样,只有当采样频率时,其离散傅里叶变换才不会发生频率混淆,因而只有用这样采样的点才能得到离散信号的频谱。 人可感知的音频中多不超过12KHz,为了凸显低频声音信号的频谱变化,本系统只分析12KHz以下的音频信号。使用RC滤波器,当,截止频率时,电容值为:取10nF。另外,单片机ADC输入的标准电路还要求加一个截止频率为3.2MHz的滤波器。总体滤波电路图如下:图3-5 滤波电路第4章 系统软件设计4.1 系统软件总体设计 该系统的软件需要完成控制ADC模块采样信号、对采集的数据计算、控制液晶显示屏显示三个任务。三个任务理论上应顺序运行,上一个任务完成后生成的数据交予下一个任务继续处理。但信号采样需要严格控制采样时间间隔,数据计算任务处理速度很快,而液晶显示的控制又会间隔较长时间。因此三个部分不能一个接一个运行。程序还包括了各模块的初始化,总程序流程图如下:图4-1 系统程序流程总图本程序采用中断的方式,将需要定时的采样程序和显示程序分别放在两个中断服务程序中,而主程序一直等待采样完成处理数据。数据的连接使用了两个全局变量数组。这样就使三个子程序在运行时,采样程序的采样时间间隔有了保障,而后两个子程序又始终有数据可以处理。4.2 系统软件详细设计4.2.1 系统的准备和初始化Code代码段准备了一个32个元素的nxd数组和一个88的User数组。定义如下:unsigned char code nxd32=0,16,8,24,4,20,12,28,2,18,10,26,6,22,14,30,1,17,9,25,5,21,13,29,3,19,11,27,7,23,15,31;unsigned char code User88=0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x1F,0x00,0x00,0x00,0x00,0x00,0x1F,0x1F,0x1F,0x00,0x00,0x00,0x00,0x1F,0x1F,0x1F,0x1F,0x00,0x00,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x00,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F;nxd数组用于将32个采样点重新排列,其值为采样点重排的顺序。这将在下面的 4.2.3蝶形运算的FFT算法 中详细介绍。User二维数组为液晶显示块的8种显示点阵的分布,这将在下面的 4.2.4 显示子程序 中详细介绍。main()函数的开始是一些初始化程序,这包括液晶显示屏的初始化、显示屏CGRAM的写入、ADC的初始化和定时器0的初始化。代码和注释如下:LcdInt(); delay(15);/调用LCD初始化函数,设置显示模式为:162显示,57点阵,8位数据接口,显示开,有光标,光标闪烁,光标右移,字符不移。并清屏。CgInt(); delay(10); /调用CgInt子函数,将User数组写入LCD1602的CGRAM中的0x100x17。P1ASF = 0x06;/P1.1 P1.2口作为AD输入,P1.1作为今后可能开发双通道分析的保留。AUXR1&= 0xfb;/ADRJ=0,10位ADC的高8位放在ADC_RES中,后续将不再用低2位。EADC=1;/开AD中断ADC_CONTR=0x8a; NOP5;/启动ADC转换AUXR = 0x80; /T0x12=1,定时器0以12倍速运行TMOD = 0x01;/定时器0工作在方式1TL0 = T1MS;TH0 = T1MS8;/定时器0赋初值TR0 = 1;/开定时器0中断ET0 = 1;/定时器0启动EA = 1;/开总中断4.2.2 AD采样子程序AD采样的数据将反映信号的频率,因此AD采样的间隔必须保证。有两种方案来保证时间间隔:使用高中断优先级的定时器或直接连续采样,靠ADC自己的采样延时来控制时间间隔。定时器控制看似更加准确,但ADC的采样延时仍存在,实际每两采样点的时间间隔=定时器延时时间两次ADC采样延时时间之差。若ADC采样延时时间有误差,以这种方式定时的误差仍存在,且程序结构复杂,编写困难。实际上,STC12C5A60S2单片机对模数转换速度已经有了很好的控制。本程序拟使用单片机数模转换的转换时间来控制采样速率,而不再使用另外的定时器。程序流程图如图:图4-2 AD采样子程序流程图STC12C5A60S2单片机对模数转换速度由AUXR1中的SPEED1、SPEED0两位控制。速度定义如表:表4-1 STC12C5A60S2数模转换速度控制位SPEED1SPEED0A/D转换所需时间1190个时钟周期转换一次,CPU工作频率21MHz时,A/D转换速度约250KHz10180个时钟周期转换一次01360个时钟周期转换一次00540个时钟周期转换一次当SPEED1=0,SPEED0=0,=32MHz时,采样时间间隔有:采样的信号的最高频率分量有:高于音频最高频率22KHz。由于人可感知的音频中多不超过12KHz,若隔点采样,则变为:定采样点数为32个点,则通过FFT变换可将原信号变为16个频率分量相加(采样点数的确定和FFT结果的解释见下节)。最小频率分量为940Hz。采样过程并未关断定时器0中断,因此采样过程会被打断。但定时器0的溢出间隔较长(5ms),期间可进行很多次完整的32点采样。只有当32个点是连续采样并被移出时,主循环中的数据处理函数才开始运行。4.2.3 蝶形运算的FFT算法FFT(Fast Fourier Transformation),即为快速傅氏变换,是离散傅氏变换的快速算法,它是根据离散傅氏变换的奇、偶、虚、实等特性,对离散傅立叶变换的算法进行改进获得的。它对傅氏变换的理论并没有新的发现,但是对于在计算机系统或者说数字系统中应用离散傅立叶变换,可以说是进了一大步。设x(n)为N项的复数序列,由DFT变换,任一X(m)的计算都需要N次复数乘法和N-1次复数加法,而一次复数乘法等于四次实数乘法和两次复数加法,一次复数加法等于两次实数加法,即使把一次复数乘法和一次复数加法定义成一次“运算”(四次实数乘法和四次实数加法),那么求出N项复数序列的X(m),即N点DFT变换大约就需要N2次运算。当N=1024点甚至更多的时候,需要N2=1048576次运算,在FFT中,利用WN的周期性和对称性,把一个N项序列(设N=2k,k为正整数),分为两个N/2项的子序列,每个N/2点DFT变换需要(N/2)2次运算,再用N次运算把两个N/2点的DFT变换组合成一个N点的DFT变换。这样变换以后,总的运算次数就变成N+2*(N/2)2=N+N2/2。继续上面的例子,N=1024时,总的运算次数就变成了525312次,节省了大约50%的运算量。而如果我们将这种“一分为二”的思想不断进行下去,直到分成两两一组的DFT运算单元,那么N点的DFT变换就只需要Nlog2N次的运算,N在1024点时,运算量仅有10240次,是先前的直接算法的1%,点数越多,运算量的节约就越大,这就是FFT的优越性。2点DFT运算称为蝶形运算,而整个FFT就是由若干级迭代的蝶形运算组成,而且这种算法采用原位运算,故只需N个存储单元图4-3 蝶形运算单元图4-3是FFT频域抽取算法的基本运算单元,一般称为蝶形运算.下一步再将X(4m+i),i=0,1,2,3分解成4个N42序列,迭代r次后完成计算,整个算法的复杂度减少为O(Nlog4N)上诉结论可以推广到N点的一般情况,规律是第一列只有一种类型的蝶形运算,系数是 ,以后每列的蝶形类型,比前一列增加一倍,到第是N/2个蝶形类型,系数是,共N/2个。由后向前每推进一列,则用上述系数中偶数序号的那一半,例如第列的系数则为参加蝶形运算的两个数据点的间距,则是最末一级最大,其值为N/2,向前每推进一列,间距减少一半。对N = 2L点FFT,共需L级蝶形运算,每级有N/2个蝶形运算组成,蝶形运算两节点的距离:2L-1(L表示级数)每个蝶形运算有一次复乘和2次复加。如图4-4 8点FFT运算示意图本程序每次采样32个点,进行32点FFT运算。限于篇幅不再画出32点FFT运算图。程序用排好的32个序号来重排采集到的32个信号点。运算时的复数用结构体存储和表示。具体运算程序见附录。4.2.4 显示子程序由信号处理的相关知识知,非周期信号的频谱图为连续函数。声音信号显然为非周期信号,但在单片机内,频谱只能表示为离散且成倍的频率分量。本系统将每个频谱分量以亮柱的高度形式显示在显示屏上。LCD1602一般只能显示CGROM内的160个字符,不能显示图形。要显示不同高度的立柱,只能编辑CGRAM。在程序初始化阶段,已将CGRAM的0x100x17的用户自定义位置写入如下图形:图4-5 1602字符空间(字库)图当需要在第p列显示高为l的亮柱时,先对LCD写入p列第二行的地址,若l8,就在这个位置调取CGRAM中0x100x16对应高度的图形(当l=0时调取0x20显示空格),若l8,则在p列第二行显示0x17全亮图后,在第p列第一行显示高度为l-8的亮柱。这样就实现了以亮柱高度直观展示频率分量幅值的目的。为了获得更好的视觉感受,显示程序还加入了频谱亮柱缓慢下落的动画效果。做法为:当本次计算的的频率幅值大于等于上次的幅值时,立即更新此幅值以待显示。若本次计算的频率幅值小于上次的幅值时,只将上次的幅值减1显示。如此就会使得亮柱可以突然升高,却只能缓慢下落。这符合了人对突然增强的事件敏感而对突然减弱的事件不敏感的感受。由LCD1602的资料知,控制一个亮块需要有写地址和写数据两步操作,且间隔的典型时间为5ms。整屏刷新一次需要经历。若计算出16个频率分量幅值后统一显示,则信号采集后至少要经过320ms才能看到结果,实时性太差。本程序利用定时器,采用了显示与频谱计算工作交替处理的方式,即:在两次写1602的等待过程中进行采样和计算工作,每次对1602的同列两个亮块操作时,取到的数据都是刚刚计算好的数据。这样就使得屏幕上每隔都会有一个亮柱显示新的数据。程序流程图如下:图4-6 显示子程序流程图显示程序见附录。第5章 系统调试5.1 信号电压调试根据3.3.1 的设计,为了达到最好的采样效果,需要根据信号的幅值调节可变电阻R2,使输入的信号在0中能有较大的变化。编写调试程序,使显示屏显示出一段时间内(1s左右)从P1.2脚输入的信号电压最大值,以表示。调试过程为:将系统输入连接PC机的声卡,输出端连接耳机,PC机播放音乐并调到合适的音量。然后调整R2阻值,使显示屏显示到一个200左右的数值。如屏幕显示值为191,在无信号输入时显示为100,则交流的信号在输入单片机以后就变成了9191,以100为均值的数据。这里需要说明的是,FFT变换的交流部分并不会因信号的均值不同而不同,所以无信号时的输入值并不需引入FFT计算中。 图5-1 电压调试5.2 单频率信号测试调整好信号电压后,使用虚拟仪器v0.94,使声卡发出特定频率的正弦波对系统性能进行测试。5.2.1 实际频率分度测试在4.2.2小结中计算得系统能识别的最小频率分量为940Hz。实际测试中,当发生800Hz的正弦信号时,屏幕的第一个亮柱显示满幅值,第二个和以后的分量基本不显示。如果再调低频率,第一亮柱高度会下降;调高频率,第一亮柱下降的同时第二格也会有了幅值。因此可以确定该系统实际频率分度,也即最小能识别的频率分量为800Hz。图5-2 800Hz正弦波显示效果将频率调高3倍和10倍屏幕显示的情况如下:图5-3 2400Hz正弦波显示效果图5-4 8000Hz正弦波显示效果该系统在采样后并没有进行特殊的加窗处理,理论上会造成频谱泄露,即最后计算结果在主频率的两侧也有较小的幅值。但从上面的结果来看,频谱泄露的现象并不很明显,为了节省计算量,不再加特别的窗函数。5.2.1 频率混叠和滤波效果频率混叠是由于采样频率过低,造成进行模数转换后的信号频率产生失真的现象。本系统的最高采样频率为12800Hz,而声音信号的频率在2020000Hz,主要信号也集中在2015000Hz。超过12800Hz的信号会与12800Hz以内的高频信号产生频率混叠现象。为了尽量消除这种现象,可以增高采样频率或加低通滤波器。这里使用了加低通滤波器的方法。在不加滤波器时,正弦信号每超过12800Hz频率800Hz,屏幕亮柱就会从最右边往左无衰减地移动一格。增加低通滤波器后,超过12800Hz的信号会明显被削弱。如下图所示14400Hz的信号幅值已经较小,但12800Hz以内的高频信号也会一定程度的被减弱。图5-5 14400Hz正弦波显示效果图5-6 11200Hz正弦波显示效果5.3 实际使用效果用计算机播放频段分明的音乐时,发现该系统对9600Hz以内的音频信号反应很好,和计算机上未经过模拟量采样的数字处理结果吻合好,且实时响应速度也很快。但对于9600Hz12800Hz的频率信号有过大增益。分析认为这还是由于采样频率不足造成了频谱混叠,12800Hz之后的信号在计算时叠加到了这一段的频谱幅值上了。低通滤波器起到了一定的效果但还不够强。图5-7 使用效果对照结 论本系统利用了STC12C5A60S2的片上资源,使用内部AD直接采样音频信号,这既简化了通讯程序,而且还简化了硬件电路设计,使系统具有更好的维护性。本系统实现了对有源声音信号的采集与处理、分析功能,完成了基于STC12C5A60S2芯片的音频频谱分析显示系统的设计。系统对单通道信号每次采样32点,运用蝶形运算算法进行离散傅里叶变换,求出采样信号最低800Hz,最高12800Hz的频率分量幅值。在处理由频率超过12800Hz信号造成的频率混叠问题上,系统对输入的信号进行了截止频率为12KHz的RC滤波处理。这样种方法较提高采样频率的方法来说虽然不能完全消除频率混叠现象,但也是一个在速度较慢的单片机上实现FFT变换的折中方法。显示屏采用有背光的LCD1602显示结果,虽然该LCD本是用来显示字符的,但通过自定义图形让其显示了跳动的柱状图,也达到了预期的目的。综上所述,本系统基本上完成了实时分析显示音频信号频谱的任务。而本系统几个可以改进的地方为:1、可以换用更快速的单片机增加FFT点数同时提高最大采样频率,这样即使直接使用矩形窗且不需滤波也能在整个信号的频率范围内没有频率混淆。2、可以换用更高刷新率的液晶屏。本系统实时显示的瓶颈在于显示屏的刷新速度,如果换用高速单片机的同时改用更高刷新率的液晶屏实时效果会更好。3、可增加一个采样通道,实现双通道采样,双通道切换分析或者合并分析显示。当然这也需要单片机更快速的性能。参考文献1 韩建海、马尾机械工程测试技术J清华大学出版社2010.52 孙立功电子技术(电工学II)J高等教育出版社2010.12 3 吴继发、陈特放单片机实现音频频谱显示的快速算法研究M2009.114 姚永平STC12C5A60S2系列单片机器件手册Z2011.25 伟纳电子通用1602液晶显示模块使用手册Z2011.86 张登奇、李宏民、李丹按时间抽取的基2FFT算法分析及MATLAB实现M电子技术2011第38卷第2期7 胡汉才单片机原理及接口技术J北京:清华大学出版社1999 8 潘永雄新编单片机原理与应用J西安 西安电子科技大学出版社,2003 9 陈享成耿长青基于单片机的显示终端设计M电力自动化设备,200710 陈兴文刘燕单片机应用系统硬件调试技巧M中国测控网,2009 11 卢官明、宗肪数字音频原理及应用J机械工业出版社2001.612 宋瑜数字音频及多媒体广播接收系统J世界广播电视出版社2003.1213 张韶高数字声频技术原理及应用J国防工业出版社2001.214 林福宗多媒体技术基础J清华大学出版社2001.6致 谢如果说任何机会都是需要去创造出来的话,那么那个创造者,其实就是自己。时间过得真快,转眼间已经有一个多月了,现在回想起来,往事还历历在目。但是不可否认的却是这些经历将会是我人生当中不可多得的财富和经验的累积。在没有做毕业设计以前觉得毕业设计只是对这几年来所学知识的单纯总结,但是通过这次做毕业设计发现自己的看法有点太片面。毕业设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。通过这次毕业设计使我明白了自己原来知识还比较欠缺。自己要学习的东西还太多,以前老是觉得自己什么东西都会,什么东西都懂,有点眼高手低。通过这次毕业设计,我才明白学习是一个长期积累的过程,在以后的工作、生活中都应该不断的学习,努力提高自己知识和综合素质。不管学会的还是学不会的的确觉得困难比较多,真是万事开头难,不知道如何入手。最后终于做完了有种如释重负的感觉。此外,还得出一个结论:知识必须通过应用才能实现其价值!有些东西以为学会了,但真正到用的时候才发现是两回事,所以我认为只有到真正会用的时候才是真的学会了。在此要感谢我的指导老师黄晓东对我悉心的指导,感谢老师给我的帮助。导师渊博的专业知识、严谨的治学态度,精益求精的工作作风、平易近人的人格魅力对我影响深远。不仅使我树立了远大的学习目标、掌握了基本的研究方法,还使本人明白了许多为人处事的道理。在设计过程中,我通过查阅大量有关资料,与同学交流经验和自学,并向老师请教等方式,使自己学到了不少知识,也经历了不少艰辛,但收获同样巨大。在整个设计中我懂得了许多东西,也培养了我独立工作的能力,树立了对自己工作能力的信心,相信会对今后的学习工作生活有非常重要的影响。而且大大提高了动手的能力,使我充分体会到了在创造过程中探索的艰难和成功时的喜悦。虽然这个设计做的也不太完美,但是在设计过程中所学到的东西是这次毕业设计的最大收获和财富,使我终身受益。在此,谨向黄老师表示崇高的敬意和衷心的感谢!附录一、主程序代码#include #include #include#define NOP5 _nop_();_nop_();_nop_();_nop_();_nop_()#define FOSC 32782266L#define NMS 4#define T1MS (65536-NMS*FOSC/12/1000)sbit RS=P20;/寄存器选择位,将RS位定义为P2.0引脚sbit RW=P21;/读写选择位,将RW位定义为P2.1引脚sbit E=P22;/使能信号位,将E位定义为P2.2引脚sbit BF=P07;/忙碌标志位,将BF位定义为P0.7引脚unsigned char code User88=0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x1F,0x00,0x00,0x00,0x00,0x00,0x1F,0x1F,0x1F,0x00,0x00,0x00,0x00,0x1F,0x1F,0x1F,0x1F,0x00,0x00,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x00,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F;unsigned char code nxd32=0,16,8,24,4,20,12,28,2,18,10,26,6,22,14,30,1,17,9,25,5,21,13,29,3,19,11,27,7,23,15,31;unsigned char data132;struct complexfloa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 栏杆拆除及更换施工方案
- 2025短期劳动合同全面解析
- 2025至2031年中国反射型普通照明灯泡行业投资前景及策略咨询研究报告
- 工厂隔音墙板施工方案
- 2025至2030年中国验卷机数据监测研究报告
- 2025至2030年中国钢制链轮数据监测研究报告
- 2025至2030年中国煤矿防爆特殊型蓄电池电机车数据监测研究报告
- 2025动产抵押借款合同
- 2025至2030年中国机车车辆及零部件数据监测研究报告
- 2025至2030年中国数码隐形防伪技术数据监测研究报告
- 2025-2030氧化铈纳米粒子行业市场现状供需分析及重点企业投资评估规划分析研究报告
- 2025年货运检查员职业技能鉴定参考试题库(含答案)
- 教育评价改革的创新路径与实践方案
- 光伏电站安全培训
- 壁纸施工协议书范本
- 呼和浩特2025年内蒙古呼和浩特市融媒体中心第二批人才引进20人笔试历年参考题库附带答案详解
- 2024辽宁能源集团所属能源投资集团招聘3人笔试参考题库附带答案详解
- 2024年秋儿童发展问题的咨询与辅导终考期末大作业案例分析1-5答案
- 通信工程建设标准强制性条文汇编(2023版)-定额质监中心
- 幼儿园故事课件:《盲人摸象》
- 工程参建各方责任主体开展质量安全提升行动责任清单
评论
0/150
提交评论