ImageVerifierCode 换一换
格式:DOCX , 页数:34 ,大小:661.09KB ,
资源ID:19899389      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/19899389.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(FFT在单片机上的实现Word文档格式.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

FFT在单片机上的实现Word文档格式.docx

1、 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章

2、 绪论1.1 研究的背景及意义1.1.1 课题研究背景在家庭影院、卡拉OK等音响系统中,实时显示音乐信号的频谱将为音响系统增不少色彩。目前实际生产的音响系统产品,大多采用以下两种方法实现音频频谱显示:一是利用硬件滤波器和A/D转换器;二是利用单片机或DSP处理频谱显示。前者实现简单,但硬件成本高;后者软件和硬件实现都较复杂。1.1.2 课题研究意义目前,大多数音频信号处理仪不但体积大而且价格贵,在一些特殊方面难以普及使用,而嵌入式系统分析仪具有小巧可靠的特点,所以开发基于特殊功能单片机的音频信号分析仪器是语音识别的基础,具有很好的现实意义。1.2 课题发展的状况早期专业的音频分析仪种类很少,在

3、做音频测量时一般是利用万用电表、频率计、示波器及频谱仪等组合成一套音频测试系统。这种测试系统中间环节多,各环节之间接口匹配较为困难,使用起来比较麻烦,测量结果往往也不精确。传统的频谱分析仪的前端电路是一定带宽内可调谐的接收机,输入信号经变频器变频后由低通滤器输出,滤波输出作为垂直分量,频率作为水平分量,在示波器屏幕上绘出坐标图,就是输入信号的频谱图。由于变频器可以达到很宽的频率,例如30Hz-30GHz,与外部混频器配合,可扩展到100GHz以上,频谱分析仪是频率覆盖最宽的测量仪器之一。无论测量连续信号或调制信号,频谱分析仪都是很理想的测量工具。但是,传统的频谱分析仪也有明显的缺点,它只能测量

4、频率的幅度,缺少相位信息,因此属于标量仪器而不是矢量仪器。近年来出现的音频分析仪器也与仪器的主流发展趋势一致,朝着高度集成化、智能化的方向发展,这些仪器集成了复杂音频信号发生装置、功率放大装置等,具备了一些初步的图形化分析功能,使用户很容易组建音频测量系统。基于快速傅里叶变换(FFT)的现代频谱分析仪,通过傅里叶运算将被测信号分解成分立的频率分量,达到与传统频谱分析仪同样的结果,。这种新型的频谱分析仪采用数字方法直接由模拟/数字转换器(ADC)对输入信号取样,再经FFT处理后获得频谱分布图。在这种频谱分析仪中,为获得良好的仪器线性度和高分辨率,对信号进行数据采集时ADC的取样率最少等于输入信号

5、最高频率的两倍,亦即频率上限是100MHz的实时频谱分析仪需要ADC有200MS/S的取样率。目前半导体工艺水平可制成分辨率8位和取样率4GS/S的ADC或者分辨率12位和取样率800MS/S的ADC,亦即,原理上仪器可达到2GHz的带宽,为了扩展频率上限,可在ADC前端增加下变频器,本振采用数字调谐振荡器。这种混合式的频谱分析仪可扩展到几GHz以下的频段使用。1.3 设计任务1、 完成信号电压调理电路和硬件的连接电路的设计。制作出硬件实物。2、 ADC模块能正确采集到音频的完整波形,并保证一定的精度。3、 学习频谱分析和傅里叶变换有关原理,使用FFT算法分析出当前音频的频谱。4、 设计显示程

6、序,使显示屏能实时地、以柱状图的形式将音频频谱显示出来,并有一定的美观效果。第2章 系统方案设计2.1 系统方案设计图2-1 系统总体方案系统由信号调理电路、数模转换模块、主控制器、显示部件组成。信号调理电路主要负责对音频信号的电压进行变换,使其电压变化能正确地被数模转换模块采集。对信号的滤波处理也在这里进行。ADC模块将连续变化的电压值转化为单片机可识别的离散数字量。主控制器对采集的数据处理得到信号频谱,并控制显示屏将频谱实时显示出来。由于是对模拟信号的实时采集分析,本系统除了可应用于数码音乐播放器的音频谱显示,还可连接麦克风显示分析环境或人声音频谱。2.2 系统硬件的选择2.2.1 处理器

7、的比较与选择鉴于本次设计的学习目的,处理器选择最易操作的51内核的单片机。传统8051单片机以12个晶振周期作为一个机器周期,处理速度慢,内存较小,且在用到ADC时需要与ADC芯片通讯花费时间,因此舍弃传统8051单片机。升级版的51内核单片机有STC12系列和Cygnal的C8051F系列待选。其中后者被誉为51系列最快单片机,内部有最高12位高速ADC和最高4K的RAM。但这款单片机价格较贵且仅有贴片形式的封装,调试困难。STC的12系列单片机同样有较快的处理速度,内部有最高10位高速ADC和1280字节RAM。考虑到本次设计目的为普通的频谱分析器,且液晶显示屏整体刷新速度有100ms的瓶

8、颈限制,这里采用双排插针封装的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个像素点的整块点阵显示屏,

9、用于显示图形十分方便,但每次更新图形都需要整屏刷新,需要传输的数据量较大。综合考虑,采用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 / 4

10、0K / 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.

11、 看门狗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位定时器,

12、两个与传统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个外部中断(上升沿中断/下降沿中断均可分别或同时支持)

13、 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最高支持

14、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个不同的点阵字

15、符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。读CGROM地址的时候,先读左边那列,再读上面那行,如:感叹号!的ASCII为0x21,字母B的ASCII为0x42(前面加0x表示十六进制)。另外还有8个可由用户自定义的5X8的字符发生器CGRAM。用户可以将自定义图形写入其中。其他特性为:+5V电压,对比度可调,内含复位电路,有80字节显示数据存储器DDRAM,提供各种控制命令,如:清屏、字符闪烁、光标

16、闪烁、显示移位等多种功能。3.2.2 LCD1602的硬件连接图3-3 单片机与1602液晶的连接3.3 信号调理电路 3.3.1 LM324电压增益与偏移电路本系统的信号输入来自数字音频播放器如PC机的声卡、MP3,或有源麦克风等有源设备,单声道输入。输入信号为均值为0,幅值为VV的交流信号,由输入。而进入单片机ADC模块的电压要求0,为USB供电的+5V。因此必须进行电压调理。整个系统采用单电源供电,所以无法对交流信号直接放大,必须先偏移再放大。该过程可由一个运算放大器来完成。运放选用LM324N,连线图如下:图3-4 电压增益与偏移电路这是一个同向加法电路,由模拟电路相关知识易得:其中为

17、的输入信号,电压范围为VV,为偏移电压,由稳压二极管产生,其作用是使均值为0的交流音频信号偏移使全为正值。电阻的值的计算过程略,这里只对图中的数值进行验证。当输入电压为V时,应将放大倍数取最大,可变电阻取0,得:的输入电压为V时,应将放大倍数取最小, 可变电阻取,得:可见电阻如图取值,当音频信号较大和较小时,都可以通过调节可变电阻R2来使采样达到较好的效果。为使稳压管正常工作,稳压管的阴极应接在高于稳压管反向导通电压的位置。即有:将、带入上式,得,取。3.3.2 滤波电路如果由于原信号频带很宽或采样频率选得太低,则频域中相邻周期的波形就会发生重叠,从而引起误差。这种现象称频率混叠,简称频混。如

18、果一个信号的频谱具有无限的带宽,则不论如何选择采样频率,频混误差都不可避免。然而这种信号并不多见,比较常见的是一个有用的低频信号混进了一个高频的噪声信号。因此在采样之前先用低通滤波器滤去高频噪声,这种低通滤波器称为抗混淆滤波器。在现代数字式分析系统中,它已被列为基本组成环节。抗混淆滤波器的截止频率选为由采样定理可知:对一个频率为的有限带宽连续信号进行采样,只有当采样频率时,其离散傅里叶变换才不会发生频率混淆,因而只有用这样采样的点才能得到离散信号的频谱。人可感知的音频中多不超过12KHz,为了凸显低频声音信号的频谱变化,本系统只分析12KHz以下的音频信号。使用RC滤波器,当,截止频率时,电容

19、值为:取10nF。另外,单片机ADC输入的标准电路还要求加一个截止频率为3.2MHz的滤波器。总体滤波电路图如下:图3-5 滤波电路第4章 系统软件设计4.1 系统软件总体设计 该系统的软件需要完成控制ADC模块采样信号、对采集的数据计算、控制液晶显示屏显示三个任务。三个任务理论上应顺序运行,上一个任务完成后生成的数据交予下一个任务继续处理。但信号采样需要严格控制采样时间间隔,数据计算任务处理速度很快,而液晶显示的控制又会间隔较长时间。因此三个部分不能一个接一个运行。程序还包括了各模块的初始化,总程序流程图如下:图4-1 系统程序流程总图本程序采用中断的方式,将需要定时的采样程序和显示程序分别

20、放在两个中断服务程序中,而主程序一直等待采样完成处理数据。数据的连接使用了两个全局变量数组。这样就使三个子程序在运行时,采样程序的采样时间间隔有了保障,而后两个子程序又始终有数据可以处理。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=

21、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,

22、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(

23、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; /开定时

24、器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转换所需时间190个时钟周期转换一次,CPU工作频率21MHz时,A/D转换速度约250KHz180个时钟周期转换一次360个时钟周期转换一次540个时钟周期转换一次当SPEED1=0,SPEED0=0,=32MHz时,采样时间间隔有:采样

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1