毕业设计(论文)-暖水壶智能关闭实时控制器的设计.doc

上传人:西安人 文档编号:3949767 上传时间:2019-10-11 格式:DOC 页数:52 大小:2.33MB
返回 下载 相关 举报
毕业设计(论文)-暖水壶智能关闭实时控制器的设计.doc_第1页
第1页 / 共52页
毕业设计(论文)-暖水壶智能关闭实时控制器的设计.doc_第2页
第2页 / 共52页
毕业设计(论文)-暖水壶智能关闭实时控制器的设计.doc_第3页
第3页 / 共52页
毕业设计(论文)-暖水壶智能关闭实时控制器的设计.doc_第4页
第4页 / 共52页
毕业设计(论文)-暖水壶智能关闭实时控制器的设计.doc_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《毕业设计(论文)-暖水壶智能关闭实时控制器的设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)-暖水壶智能关闭实时控制器的设计.doc(52页珍藏版)》请在三一文库上搜索。

1、学 士 学 位 论 文暖水壶智能关闭实时控制器的设计 作 者 姓 名: 学科、专业 : 电子信息工程 学 号 : 指 导 教 师: 暖水壶智能关闭实时控制器的设计总计: 毕业论文 51 页表 格 2 表插 图 24 幅指导教师: 评 阅 人: 完成日期: 5月23日 暖水壶智能关闭实时控制器的设计摘要在日常生活中,使用暖水壶接水时会发现:随着暖水壶中的水位不断升高,接水声的音调也在不断升高。由于暖水壶通常不是透明的,无法通过观察来判断暖水壶中的水位高低。通常情况下,会通过这种声音音调的变化来判断水是否已经接满。音调的变化是由频率变化引起的,找到水位变化与频率的关系,也就可以控制水流实现水快满时

2、自动关闭的效果。伴随着高性能的单片机与数字信号处理器的大量应用,使得实时的傅里叶变换成为了可能。本文通过硬件对声音信号采集并发送给计算机,使用MATLAB软件对实际的数据进行仿真,探求水位升高与频率的变化规律。结果发现这种声音音调的升高,体现在声音频谱信号高频分量能量的增加上。本文仿真得到了暖水瓶中水位升高时的声音频谱信号的特征,并根据暖壶中水位的升高而不断增大的高频分量,就可以控制水流实现水壶中水位快满时自动关闭。本设计使用飞思卡尔公司生产的MC9S12X128芯片作为运算核心,采用8位A/D转换精度对暖水壶接水的声音进行采样率为22.5khz的数据采集,基于基-2按频率抽取的快速傅里叶变换

3、算法(Fast Fourier Transform,FFT),对采集到的数据进行N=128个点的FFT运算并处理,实现伴随着暖壶接水状态的实时数据处理,并使得在暖水壶中的水位快到达瓶口时,水流关闭指示灯自动点亮。可以应用到寝室等大量使用接水设备的地方,达到节约用水、同时保障接水人安全的作用。关键词: 基-2 FFT;暖水壶;频谱;自动关闭45AbstractIn daily lives, we can find the following phenomenon, when using the thermos to hold water. People can hear the tone of

4、the water increases step by step, with the water level in the thermos grows. Since the thermos is opaque, people cannot judge the water level in the thermos by observing. Usually, the thermos holder can tell whether the thermos is full or not by listening to the increasing tone. The tone is created

5、by the variation of the frequency. We can control the flow to shut down automatically when the thermos is nearly full, if we can find the relationship between the water level and the frequency.It makes the real-time Fourier transform possible with the application of the high performance MCU and digi

6、tal signal processor. The paper seek the relationship between water level grows and the frequency variation by sending the data sampled by the hardware to the computer and using the MATLAB to simulate to the real data. At last, we find the raise of the tone reflect on the increase of the power in hi

7、gh frequency spectrum of the sound. The paper gets the characteristic of the sound spectrum signal by simulating the data. And then control the flow to make it an auto off design depending on the increase of high frequency spectrum. This paper based on the base-2 DIF FFT Algorithm, using the Freesca

8、le MC9S12X128 as the CPU. It set the A/D changer work in the 8 bit accuracy and 22.5 kHz sampling rate mode. Make the changer to take simples during the water flows, and use the data doing the 128-point FFT. Finally, realize the real-time processing and turn on the LED when the water level in the th

9、ermos reaches nearly to the bottleneck. It can be used in the dormitory or somewhere that has a lot of water filling machine to save water and protect the receiver. Key words: Base-2 FFT; thermos; frequency spectrum; auto off 目录摘要IAbstractI1.绪论11.1选题背景11.2 FFT硬件实现的研究概况和发展趋势11.3本文的主要研究内容42.傅里叶变换的基本理论

10、52.1 傅里叶变换的四种基本形式5(1)傅里叶变换5(2)傅里叶级数5(3)序列的傅里叶变换6(4)离散傅里叶变换62.2快速傅里叶变换72.2.1 按时间抽取的基-2 FFT算法(DIT)72.2.2 按频率抽选的基-2 FFT算法(DIF)72.2.3 按频率抽选与按时间抽选法的异同82.3 运算量的比较83.单片机及硬件电路103.1 单片机的选型103.2芯片各模块的介绍103.2.1 A/D转换模块103.2.2 SCI模块123.2.3 I/O模块133.3外围硬件系统133.3.1 稳压电源143.3.2 采样前端运放153.3.3 MAX232芯片164.C语言的程序算法18

11、4.1 按频率抽选基-2 FFT算法184.2雷德算法184.2.1 倒位序规律184.2.2 倒位序的实现194.3总体的程序框图205.运用MATLAB软件仿真215.1数据频谱特征的研究215.1.1进行N=256个点的FFT215.1.2 N=128个点的FFT235.1.3 相对的能量分析235.2 改进的采样数据分析246.实际应用的结果及分析277.结论28附录1外文文献译文30附录2外文文献原文34附录3 MATLAB仿真程序35附录四 C语言程序代码37致谢44大连大学学位论文版权使用授权书45暖水壶智能关闭实时控制器的设计1.绪论1.1选题背景目前,我国仍然大量使用着的接水

12、系统中,多数没有采用接水保护的设施,这就导致了多数情况下接水者完全无法清楚的得知接水容器中的水位高低,时常引发烫伤,水位益处等安全事故。虽然,已经有很多的根据流量控制而演化出的安全防护以及节能接水的设施。但是,这些设施很难适应于各种情况及环境,有很大的局限性。由于人为使用接水容器接水时,有很大的不确定性,每年因这种人为疏忽而引发了大量的安全事故和人身伤害事件,尤其当接水的温度过高时,更容易引发烫伤等事故的发生。空气是在日常生活中最常见的介质,当空气震动时就会产生声音,不同的震动频率,产生的声音音色也不尽相同。而水流的流动同样会引发空气的震动,进而产生声音。在接水时,由于接水容器内部空气柱的震动

13、,引发了一种不断升高的接水声音。这种声音虽然会随着容器的不同,略有差异,但是总体的变化趋势是一样的。都会随着容器内部水位的上升,水位上方空气柱的变短,震动频率的变大,进而引起产生的声音音调的变高。由于单纯的通过流量限制而达到安全保护和节能接水目地的应用,对不同容器无法进行一个统一的控制标准。而这种通过声音音调控制的设计对于不同的接水容器有着一个相同的趋势,只要进行较好的软件优化,并进行相应的滤波去干扰,相信在系统的设计上较其他应用有着较大的优势。1.2 FFT硬件实现的研究概况和发展趋势1807年法国数学家和物理学家傅里叶(Jean Baptiste Joseph Fourier)在法国科学学

14、会上发表了一篇论文,描述运用正弦曲线来描述温度分布。由于当时受到拉格朗日的坚决反对,直到1828年才正式发表。从那以后,傅里叶变换才正式诞生。随着时代的不断发展,傅里叶变换也不断被其他领域所认可和应用。根据原信号的不同类型,可以把傅立叶变换分为四种类别:表 1.1 傅里叶变换的类别表NO.信号特性傅里叶变换类型1非周期性连续信号傅立叶变换(Fourier Transform)2周期性连续信号傅立叶级数(Fourier Series)3非周期性离散信号离散时域傅立叶变换(Discrete Time Fourier Transform)4周期性离散信号离散傅立叶变换(Discrete Fourie

15、r Transform)由于计算机运算特点,我们只能使用微处理器处理和使用离散的信号,无法对连续、时间无穷的信号进行运算及处理。就如,若需要用无穷多个不同频率的正弦曲线来表示频域信号,这对于计算机来说是不可能实现的。所以,对于离散信号的变换,只有离散傅立叶变换(DFT)才能被适用。对于计算机来说,也只有离散的和有限长度的数据才能被处理,对于其它的变换类型只有在数学演算中才能用到。因此,在计算机面前我们只能使用DFT的运算方法。DFT,即离散傅里叶变换,在信号处理领域有着广泛而重要的应用。信号的频谱分析对于通信、图像传输、图像处理、雷达、声纳等应用都很重要。但是在进行DFT运算时,需要大量而费时

16、的乘加计算,在相当长的时间里,计算机的性能和运算精度很难达到进行实时的处理问题的水平,所以DFT并没有得到真正的应用。这也促进了快速傅里叶算法的研究。直到1965年,库利Cooley和图基Tukey在计算数学杂志上发表了著名的“机器计算傅里叶级数的一种算法”的文章,提出了计算离散傅里叶变换(DFT)的快速算法。后来,又随着桑德和图基提出的快速算法的相继出现,情况发生了根本的转变。这些快速的傅里叶变换算法,将DFT的运算量减少了一二个数量级。而同时,计算机的运算能力也在飞速的发展。从那以后,微型处理器的在进行这些快速算法时的耗时已经可以被工程应用所接受,基本上达到了实时处理的要求,这就使得DFT

17、的运算在实际中真正得到了广泛的应用。尽管使用了快速的傅里叶变换算法,但是要使用电子芯片进行傅里叶变换仍然需要大量的运算。当时电子芯片的运行速度仍然无法胜任如此大量而复杂的运算,根本无法达到实时处理的要求。直到70年代,当有人提出了数字信号处理器(Digital Signal Processor,DSP)的理论和算法基础时,才使的这一设想成为可能。那时的DSP仅仅停留在教科书上,即便是研制出来的DSP系统也是由分立元件组成的,其应用领域仅局限于军事、航空航天部门。随着大规模集成电路技术的发展,1982年世界上诞生了首枚DSP芯片。这种DSP器件采用微米工艺NMOS技术制作,虽功耗和尺寸稍大,但运

18、算速度却比MPU快了几十倍,尤其在语音合成和编码解码器中得到了广泛应用。这也为FFT的硬件可实现性奠定了基础。至80年代中期,随着CMOS技术的进步与发展,第二代基于CMOS工艺的DSP芯片应运而生,其存储容量和运算速度都得到成倍提高,逐渐成为了语音处理、图像硬件处理技术的基础1。DSP内部有专门为傅里叶变换设计的指令集,有着高效率的硬件乘加运算器,以及多种优化结构,使得其进行FFT运算的时间进一步减少。目前它的运算速度已经可以达到上百兆赫兹甚至G赫兹。它的出现使得快速、实时、大量、高精度的运算成为了可能。目前,凡是需要进行大量实时运算的工程项目基本都使用的是DSP处理器,或者是带有DSP内核

19、的更高级的处理芯片。这些芯片往往有着很高的性能与应用成本,如手机,相机,数字滤波器等等高成本高性能的应用2。然而,由于其较为复杂的使用方法和倾向于数学计算与图形计算的功能,使得它在控制领域的应用上有着一定的不足。由于其内部存在大量精密的结构,导致它自身的抗干扰能力并不强,在实际工程应用中往往需要特殊的抗干扰设计与保护。随着单片机的发展,许多高性能单片机在保持了原有的强大控制功能的基础上,增加了一定的硬件乘法器,这就使得这种单片机在运算处理能力上有了很大的提高。这也就使得原本只属于DSP的大量傅里叶变换应用,逐渐走向高性能的单片机。与此同时,单片机的总线频率也在不断的提升, 虽然距离DSP近百兆

20、的运算速度还有相当大的差距,运算精度、运算效率也无法与DSP相比。但是由于其独特的控制功能,较低的应用门槛和以及特殊为恶劣及复杂环境设计的较强的抗干扰能力,使得这些高性能单片机在对运算量有一定要求的低成本工程应用领域有着较大的应用空间。随着高性能单片机逐渐的被人们所认可,一些原来只有DSP才能实现的复杂计算,单片机也可以在可以接受的时间范围内完成。未来的一段时间内,单片机的性能会有更大的提高,而基于这些单片机的应用也会向着运算速度更快,成本更低的趋势发展3。1.3本文的主要研究内容本文主要通过使用单片机对暖水壶接水的声音进行A/D采样,并对采样数据进行FFT运算。并结合MATLAB仿真软件,探

21、究出一种可以通过实时对暖壶接水的声音进行分析,并可以判断水壶中的水是否已经接满的方法。本设计主要是算法的探究,其中涉及到快速傅里叶变换及相关处理算法,还包括一定的硬件设计,如声音传感器及其放大电路等。2.傅里叶变换的基本理论2.1 傅里叶变换的四种基本形式(1)傅里叶变换已知连续非周期信号x(t),它所对应的频谱密度函数X(j)是连续非周期的,他们的对应关系为:Xj=-x(t)e-jtdt (2-1-1) xt=12-X(j)ejtd (2-1-2)由这两式可以看出,时域连续函数造成的频域是非周期的谱,而时域的非周期性造成频域是连续的谱密度函数。(2)傅里叶级数若x(t)代表一个周期为T0的周

22、期性连续时间函数,x(t)可展成傅里叶级数X(jk0), X(jk0)是离散频率的非周期函数,x(t)和X(jk0)组成变换对,表示为:Xjk0=1T0-T02T02x(t)e-jk0tdt (2-1-3)xt=k=-X(jk0)ejk0t (2-1-4)其中0=2F0=2T0 为离散频谱相邻两谱线之间的角频率间隔,k为谐波序号。从这一变换对可以看出,时域的连续函数造成频域是非周期的频谱函数,而频域的离散频谱就与时域的周期时间函数相对应。(3)序列的傅里叶变换Xej=n=-xne-jn (2-1-5)xn=12-X(ej)ejnd (2-1-6)这里是数字频率,他和模拟角频率的关系是=T。我们

23、从这里可以看出时域的离散化造成频域的周期拖延,而时域的非周期对应于频域的连续。(4)离散傅里叶变换由于计算机芯片的特性,我们无法进行连续函数的运算。之前三种变换至少在一个域中是连续的,从数字计算的角度来说,我们感兴趣的是时域和频域都离散的情况,这就是离散傅里叶变换。正变换:Xk=n=0N-1x(n)e-j2Nnk (2-1-7)反变换:xn=1Nk=0N-1X(k)ej2Nnk (2-1-8)这一变换对的示意图如图2.1所示图 2.1 离散时间函数及其离散的频谱函数其中N=fsF0=T0T由此我们可以看出时域和频域都是离散的和周期的。也就是说,一个域的离散就必然造成另一个域的周期拖延4。2.2

24、快速傅里叶变换快速傅里叶变换并不是一种新的变换,而是离散傅里叶变换(DFT)的一种快速算法。目前的快速傅里叶变换有多达20多种,这里只介绍最为基本的基-2算法。该算法是将序列N设为2的整数幂,如果N不足,则人为的补零凑足2的整数幂个。然后将N个序列点分为奇数和偶数两部份,然后进行一定的运算,之后再将所得的序列点数进一步进行奇偶分割,由于N为2的整数幂次方,进而N/2仍然是偶数,仍然可以进行奇偶的分割,这样逐级的分解,然后进行运算。这样就叫做基-2 的FFT运算,而其中根据抽取方式的不同可分为按时间抽取和按频率抽取的基-2 FFT 算法5。2.2.1 按时间抽取的基-2 FFT算法(DIT)如图

25、2.2所示,为按时间抽取的蝶形信号流图,图2.2 按时间抽取的蝶形信号流图由其可推导出每一级蝶形结构基本都完成这两种最基本的迭代运算Xmk=Xm-1k+Xm-1(j)WNr (2-2-1)Xmj=Xm-1k-Xm-1(j)WNr (2-2-2)2.2.2 按频率抽选的基-2 FFT算法(DIF)信号流图为:图2.3 按频率抽选信号流图根据其信号流图可知,蝶形运算中实现了如下的迭代运算Xmk=Xm-1k+Xm-1(j) (2-2-3)Xmj=Xm-1k-Xm-1(j)WNr (2-2-4) 图2.4为N=8时的按频率抽取的FFT流图 图2.4 按频率抽取的FFT流图2.2.3 按频率抽选与按时间

26、抽选法的异同根据FFT的流图不难发现,DIF输入是自然顺序的序列,而输出则是倒位序的,与DIT正好相反。但这并不是本质区别,其实质区别在于蝶形运算中的迭代运算,DIF的复数乘法只出现在减法之后,而DIT则先做复乘后做加减法。虽然复乘的位置不尽相同,但是两种算法的运算量是完全一样的6。2.3 运算量的比较对于计算芯片来说,进行乘法运算的时间比加法多得多,我们进行粗略的估计,直接进行DFT运算,根据公式需要N2次的复数乘法,而进行FFT运算,由于DIF和DIT都有L级运算,每级需要N/2个蝶形运算来完成,总共需要进行N/2 log2N次复数乘法运算。因此直接DFT与FFT的运算量之比为N2N2lo

27、g2N=2Nlog2N (2-3-1)图2.5为DFT与FFT乘法次数的比较图2.5 DFT与FFT乘法次数的比较从图上可以明显看出进行FFT优化后的乘法运算量随着N的增大,优势越来越明显78。3.单片机及硬件电路3.1 单片机的选型由于本系统需要进行FFT这样有着大量浮点乘法的运算,需要功能强大、运算速度高、运算能力强,并且可以兼顾应用成本的单片机。对于有着大量运算量需要实时计算的工程,数字信号处理器(DSP)无疑是最好的选择,其有极强的运算能力,运算精度很高。但是,由于DSP引脚众多,使用时需要自己使用PCB电路板制作软件制作最小系统的电路板。而且,普通的两层电路板以及未经过这方面专门学习

28、、训练的人,很难设计出可以满足高性能应用需求的最小系统电路板。并且DSP芯片的价格往往居高不下,多用于需要复杂计算的工程中,其控制功能和抗干扰能力也并不十分的出色。本系统结合自身应用的特点,选择了飞思卡尔公司生产的高性能16位单片机MC9S12X128作为核心处理芯片。该芯片内部集成了A/D采样模块,SCI(Serial Communication Interface)通信模块等多种强大的控制功能模块,而且该芯片内部集成锁相环,可以进行超频来提升芯片的运算速度。虽然该芯片与DSP芯片的引脚数量不相上下,但是由于飞思卡尔公司在中国赞助全国大学生智能车竞赛,并且该型号的芯片作为指定允许使用的芯片,

29、不论在芯片价格上还是在最小系统板上都不用投入像使用DSP芯片那样的精力和金钱。使用购买的最小系统板可以使芯片稳定工作在88Mhz的总线时钟上,这就使得芯片的运算能力有了进一步的提升。而伴随着单片机的调试工具与飞思卡尔公司的官方调试软件,可以使得调试与开发过程进一步简化。综合性价比与调试的难易程度等种种因素,选择这款芯片作为核心运算加控制芯片。3.2芯片各模块的介绍3.2.1 A/D转换模块MC9S12X128自带的内部A/D模块有8位、10位、12位转换精度可供选择,最小转换时间为7微妙,可编程的采样时间,16路A/D转换通道,可以进行模拟与数字两种类型的采样,内部自带采样保持电路,可以进行多

30、通道序列的连续转换与单次转换,有快速清零标志位,有单次转换完成中断与序列转换完成中断。本系统通过A/D模块对音频信号进行采集,进而对所采集的数据进行下一步的分析。由于人耳可分辨的声音信号的频谱范围为20hz到20000hz。根据奈奎斯特采样定律,采样频率应该大于2倍的信号最高频率,这样才能不失真的将信号的频谱分离出来。而一般来说,对普通声音信号的采样率若大于8khz就完全可以满足基本要求了。在使用该模块前应对其进行初始化操作,对决定A/D模块工作方式的5个寄存器进行赋值。使得该模块工作在单通道,8位精度,22.5k采样率,转换完成中断的工作方式下9。初始化程序代码如下:voidadchange

31、_init(void)ATD0CTL0=0x00; /单通道A/D转换,通道0ATD0CTL1=0x00; / 8 位精度ATD0CTL2=0x42; /开CCF快速清零,关外部触发中断开A/D中断ATD0CTL3=0x08; / 数据左对齐,转换长度为1ATD0CTL4=0xff; /22.5k的采样率ATD0CTL5=0x20; /连续转换,单通道,通道0ATD0DIEN=0x00; /禁止数字输入在使用A/D时,由于是中断方式进行采样,程序使得单片机每隔约44us进入一次中断,之后将进行A/D转换所得的值放入到指定的内存中去。其程序流程图3.1所示:图3.1 A/D中断流程图3.2.2

32、SCI模块SCI(Serial Communication Interface)模块是该系列单片机增强型通用串行通信模块。使用串行通信模块可以很容易的使单片机与计算机以及其他设备相互通信、传递数据。该芯片的SCI模块提供可编程的波特率以及可选择的8位或者9位的数据位,还提供多种高层次的控制应用方式,由于本设计并未使用其高层次应用,所以暂不做介绍。该芯片同时提供发送中断与接收中断,可供使用者自定义使能。本系统使用通用串行通信模块的目地在于,将单片机所采集的信号通过串口传送到电脑。使用电脑强大的功能为下一步的计算进行仿真,便于调试,更易直观的体现出信号的特点,并最终找到编程的最佳算法。由于不需要单

33、片机接收数据,并且需要快速准确的传递数据。因此在程序中初始化设定为模块的工作方式为:允许发送、禁止接收、无中断、1位起始位、8位数据位、1位停止位、波特率为110000bps。初始化程序代码如下:void SCI0init(void) SCI0CR2=0x08; /*允许发送、禁止接受,关中断*/ SCI0BD=0x0032; /88M总线时钟 88M/16/50=110000的波特率 SCI0CR1=0x00; /*1个起始位,8个数据位,1个停止位*/ SCI0SR1=0x00;3.2.3 I/O模块这种型号的单片机有三种引脚封装,分别是64引脚、80引脚和112引脚,分为A、B、S、M、

34、E等几组端口。在这其中,除少量仅能用作特殊功能的引脚,如晶振引脚、电源、地以及总线信号等引脚外,大部分的引脚都有第二功能,甚至第三功能,但其中大部分都可作为通用的I/O引脚使用。本设计由于使用的通用I/O引脚较少,故选择单片机的B口作为通用I/O接口使用。根据飞思卡尔公司提供的官方数据手册得知,在当引脚作为通用I/O接口使用时,需要进行初始化,即设定数据方向寄存器:DDRB。当值为“1”的时候,当前引脚作为输出使用,“0”时则为输入使用。寄存器PORTB为数据寄存器,用来存放输入时I/O口读到的数据,以及输出时I/O口应该输出的数据。初始化语句如下:DDRB=0XFF;PORTB=0X00;经

35、过上述初始化之后,本设计所使用的各个模块已经可以正常工作了。在程序中只需要对相应模块进行调用和传递数据,就可以正常使用。3.3外围硬件系统本设计的外围硬件系统分为四个部分:供电部分、声音采集部分、串口通信部分和单片机最小系统板部分。由于该芯片为比赛指定芯片,最小系统板不需要自行设计,故对其余三个部分进行详细的介绍。总体的电路框架如图3.2所示:图3.2 电路总框图3.3.1 稳压电源由于需要方便携带,故应选择使用电池来供电。选择使用7.2v,2000maH的镍铬充电电池作为系统的供电电源。由于单片机以及其外围电路需要正5v的直流电供电,因此需要选择一款稳压芯片,为系统提供稳定的5v电压。目前较

36、为常见的5v稳压芯片种类很多,主要有开关电源型和线性稳压型两大类型。开关电源型的稳压芯片往往可以提供较大的输出功率,但是由于内部存在高频器件,在输出端可能会引入高频的纹波干扰。由于本设计的单片机以及外围设备功耗并不大,但是对电压的稳定性要求很高。因此,开关电源型的稳压芯片并不适合本设计。而线性稳压芯片的型号也是多种多样,由于本系统是电池供电,需要损耗小,效率高的芯片。从该类型的芯片中发现,高精度和低压差的稳压芯片较为符合该系统对于电源供电的需求。综合以上需求,选定了美国半导体公司生产的LM2940-5.0芯片作为供电系统的稳压芯片。该芯片有高效率,低压差-0.5v,高精度-4.95v的特点,并

37、且可以输出最大为1A的电流,内部自带短路过热保护,极性反转保护模块。其特性完全满足了本系统的需求,并且外围电路简单,仅仅需要外接四个电容即可正常工作,很适用于便携设备的应用。电路的原理图如3.3所示:图3.3 LM2940外围电路3.3.2 采样前端运放由于需要将声音信号采集到单片机中,必须有声音传感器将声音信号转换为电信号,这其中最常用、最普通的就是麦克。而通过麦克风直接转换成的声音电信号十分微小。单片机设定的A/D转换精度为8位,参考电平为5v,这样一来A/D的转换最小电压值为5v/255=19.6mv。而单独的麦克风产生的电平变化基本上是几十毫伏甚至更低,单片机根本无法捕捉到。于是这便需

38、要在A/D采样的前级进行对麦克风采集的声音的电信号进行放大。又因为单片机的A/D转换器只能采集0-5v的电压信号,而一级的放大器的输出信号经电容隔直后,变成了双极型的信号,因此需要将信号抬高到0-5v之间。本设计使用通用放大器LM358作为信号的放大芯片。该芯片自带温度补偿功能,同时支持双电源和单电源两种供电方式,最大增益为100db,频带宽度为1Mhz,并且有着低功耗、低输入偏置电压的特点。同时,由于其封装较小,频带宽度完全满足音频放大的需求,因此被广泛应用于便携设备,以及要求不高的音频放大设计中10。本设计通过不同的连接方式将麦克接收到的微小电压信号进行放大,并将原始的双极性信号转变成单片

39、机A/D可识别的单极性的信号。A/D的前端放大模块的原理图如下所示。图3.4 前端信号放大器原理图3.3.3 MAX232芯片由于需要将单片机所采集的信号发送至计算机,并使用MATLAB软件进行进一步的仿真与分析。单片机需要与计算机之间进行通信,而最简单上位机与下位机的通信的应属异步串行通信。但是,单纯的5v电平很容易受到外界信号的干扰,同时由于电脑的9针串口的电平为15v,5v电平无法与电脑自带的串行通信接口相通信。这就需要max232芯片进行电平的转换。尽管目前的电脑基本已经淘汰了9针串口,但是完全可以使用USB转串口连接线模拟电脑的9针串口,其使用方法上与正常的9针串口完全没有区别。MA

40、X232芯片是一种4通道的电平转换芯片,完全兼容EIA-232-F或称RS-232通信协议以及电平标准。其本身由正5v单电源供电,自带内部电流泵升压,低功耗。凭借着方便易用,外部电路简单等特点,被广泛应用于5v逻辑电平与RS-232电平的转换中。由于MAX232对于最大波特率有一定的要求,不能大于120000的波特率,又因为设定总线的频率为88MHZ,为了兼顾总线分频的整数性和传输的快速性,故选择了并不常用的110000bps波特率作为单片机与计算机通信的串口速率。其连接原理图如下所示:图3.5 串口通信模块原理图总电路图如下如所示:图3.6 硬件系统总原理图4.C语言的程序算法4.1 按频率

41、抽选基-2 FFT算法根据比较DIT和DIF两种FFT算法的区别,我们发现,实质上是复数乘法的位置不同。由于DIF的复乘位置位于第二个方程的最外侧如公式2-2-4所示,因此,在使用C语言编写循环计算的程序时较为简便。于是,选择了DIF作为核心的FFT算法进行软件编程。根据图2-4所示的N=8点的FFT流图,我们不难发现:进行FFT之前的数据是完全按照顺序排列的,而进行过FFT运算之后,这种顺序的序列就会被打乱。但是,进行FFT运算之后的序列的顺序十分的重要,必需要寻找一种对应的关系,将被打乱的序列顺序重新排列成正确的顺序。这就需要雷德算法来实现。4.2雷德算法不论是DIT还是DIF都需要对数据

42、进行倒序运算,而且倒位序运算的原理完全相同,只需要一种雷德算法的程序编可以完成对两种抽取方式的倒序排列,唯一不同的是,在编程时DIT算法需要先进行倒位序然后在进行DIT的FFT运算,而DIF则正好相反。倒位序的方法及算法很多,而雷德算法就是其中一种。4.2.1 倒位序规律进行DIF的FFT运算后得到的结果看似混乱无序,但是,却有着一定的规律。造成序列倒位序的原因是:输入序列x(n)按标号n的奇偶进行不断的分组。如果n用二进制数表示为(n2 n1 n0),第一次分组时,n为偶数的在上半部分,n为奇数的在下半部分,这就可以观察n的二进制数的最低位n0,n0=0则序列值对应于偶数抽样,n0=1则序列

43、值对应于偶数抽样。下一次根据次最低为n1的0,1来区分奇偶(而不管原来的子序列是偶序列还是奇序列)。这种不断分成偶数子序列和技术子序列的过程可用图4.1的二进制树状图来描述,这就是这两种基-2 FFT算法序列倒序的原因。图4.1 二进制树状图4.2.2 倒位序的实现一般运算时,通常先是将自然顺序的序列放入存储单元,为了得到倒位序得排列,我们通过变址运算来完成。如果输入序列的序号n用二进制数如(n2 n1 n0)表示,则其倒位序二进制数n就是(n0 n1 n2),这样在原来自然顺序时应该放x(n)的单元,现在倒位序后应放x(n)。例如N=8时,x(3)的标号n=3,他的二进制数是011,倒位序的

44、二进制数是110,即n=6,所以存放x(011)的单元现在应该存放入x(110)。如表4.1所示,N=8时的自然顺序二进制数以及相应的倒位序二进制数。表 4.1 N=8时的自然顺序数与倒位序数自然顺序二进制二进制倒位序倒位序顺序(n)0000000010011004201001023011110641000011510110156110011371111117按照表4.1所示的原理就可以实现从自然顺序到倒位顺序的变换,雷德算法的功能就是将自然序列变成倒位序列或者是其反过程,将倒位序列变换成正常的自然序列。雷德算法的流程图:图4.2雷德算法的流程图4.3总体的程序框图图4.3 程序总框图5.运用

45、MATLAB软件仿真5.1数据频谱特征的研究为了缩短开发时间,更清晰、明了、准确的掌控单片机所进行的FFT运算,以及对最终的结果进行数学分析并绘图。特地编写了单片机的采样发送程序,该程序只有A/D采样与串口发送,并没有FFT与处理程序,因此可以将所需要的模拟声音信号按照预定的采样频率采样,全部转换成数字信号传入计算机进行分析,并把这种采样方式叫做完全采样。由于使用单片机进行对水流处的接水声音进行采样并传入计算机十分的不方便。于是,使用MP4等录音设备对水流声音先录音,再通过电脑将录音放出,最后,使用单片机对电脑放出的声音进行采样,并得到了大量的采样数据。由于前段采集时将电平抬高到0-5v范围内

46、,在运算时需要将数据去均值,也就是减去抬高的直流的值11。5.1.1进行N=256个点的FFT由于单片机的内存容量极为有限,运算速度也无法和DSP相比,想要达到实时处理的目地就不可能进行大点数的FFT运算。这款单片机有8M的内存空间,在C语言编程前规定,浮点数为32位的浮点类型。这样想要进行256点的FFT需要4*256*2=2048字节的内存,对于8M内存的单片机来说,内存虽然够用,但是运算速度并不能保证。在MATLAB软件中,对所得到的大量数据每256个点进行一次FFT运算,并画图。由于傅里叶变换的数学特性,变换后的频谱是对称的,转变成离散的频谱就只有N/2个点是有用的频谱能量,其余都是与这N/2个点完全一样的镜像。所以我们只选取N/2个点作为有用信号。随着计算的不断进行,发现在这128个有用点中,有一部分的能量随着时间的推移

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1