基于stm32单片机声源方向识别器设计与实现毕业设计论.doc_第1页
基于stm32单片机声源方向识别器设计与实现毕业设计论.doc_第2页
基于stm32单片机声源方向识别器设计与实现毕业设计论.doc_第3页
基于stm32单片机声源方向识别器设计与实现毕业设计论.doc_第4页
基于stm32单片机声源方向识别器设计与实现毕业设计论.doc_第5页
已阅读5页,还剩79页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要本科毕业设计(论文)基于STM32单片机声源方向识别器设计与实现摘要近年来,基于麦克风阵列的声源定位系统被广泛地应用于电话会议、视频会议、语音增强、助听器等系统中,因此受到了越来越多的关注,已经成为一大研究热点。在各种声源定位方法中,基于到达时延估计的双步定位法原理简单,运算量小,精度相对较高,有利于实时实现,因此它的应用也最为广泛,本文着重研究了该方法。 本文首先给出了麦克风阵列声源定位系统的硬件设计。该硬件电路实现了在一定的采样率下对多个麦克风通道进行同步采样。接下来,以STM32F103RBT6为硬件平台,设计了一个可以在二维平面内对声源进行实时定位的实验系统。STM32F103系列丰富的外设配置,使得STM32系列微型控制器适合于多种应用场合。系统软件部分的核心算法采用了基于达到时延估计双步定位。 最后,对系统进行大量测试,实验结果表明,该系统硬件性能良好,软件算法实现简单,运算量小,精度较高,可适用于实时定位系统中。关键词麦克风阵列;实验估计;声源定位;STM32F103RBT6AbstractIn recent years, source localization system based on microphone array is being widely used in the videoconference, teleconference, speech enhancement, hearing aids. So it has been received a growing interest and become a very hot area. In various source location method, time difference of arrival (TDOA)based on the double step method is the most widely used, which has simple principle, low calculated amount, high precision, and can realize real-time in practice. The paper also focuses on this method.Firstly, the hardware design of the source localization system based on microphone array is been presented. Multi-channel microphone signal can be sampled at a certain sampling frequency in the same time in this design. Secondly, based on the single chip Single-Chip microcomputer of STM32F103RBT6, standard and advanced communication interfaces. These features make the STM32F103 line microcontroller family suitable for a wide range of applications. The critical section of the system software is the double step sound source location method based on time difference of arrival (TDOA).Finally, do a great amount of experiment test, the experiment all results show that the hardware performance of this is good, and the software localization algorithm has simple implementation, little computation and high accuracy, so it can be used in real time positioning system.KeywordsMicrophone array; sound source localization; Time delay estimation;STM32F103RBT677 目录目 录摘要II第1章 绪论11.1 课题背景及研究的目的和意义11.2 国内外研究现状51.3 本文主要工作及论文结构6第2章 声源定位系统的技术基础82.1 麦克风阵列声源定位系统整体结构82.2 STM32单片机简介92.3 KeilVision4MDK简介162.4 ISP下载器172.5 本章小结17第3章 声源定位算法研究193.1 声源定位算法概述193.2 时延估计算法203.3 对时延估计算法误差的分析223.4 对时延估计算法的改进223.5 本章小结23第4章 麦克风阵列声源定位系统整体硬件设计244.1 硬件系统电路图设计244.2 音频放大电路244.3 STM32外围电路254.4 串行通信接口294.5 本章小结31第5章 声源定位系统程序设计325.1 KeilVision4MDK建立工程文件325.2 A/D转换程序设计325.3 基本互相关函数计算时延程序设计345.4 本章小结35第6章 声源定位系统测试366.1 硬件电路数据采集测试366.2 对时延估计算法的测试386.3 本章小结39结论40参考文献42致谢错误!未定义书签。附录145附录2错误!未定义书签。附录3错误!未定义书签。附录4错误!未定义书签。附录565第1章 绪论第1章 绪论1.1 课题背景及研究的目的和意义声音是人类进行信息交流和认识外界的重要手段。对声音信号的处理研究伴随着声学的研究发展而进行。在信号与信息处理、计算机、数字通信、人工智能等先进技术的推动下,声音信号处理成为当今国内外的研究热点1。早在20世纪七八十年代,就已经开始将麦克风阵列应用于语音信号处理的研究中,进入90年代以来,基于麦克风阵列的语音信号处理算法逐渐成为一个新的研究热点。1985年Flanagan将麦克风阵列引入到大型会议的语音增强中,并开发出很多实际产品。1987年Silverman将麦克风阵列引入到语音识别系统,1992年又将阵列信号处理用于移动环境下的语音获取,后来将其应用于说话人识别。1995年Flanagan在混响环境下用阵列信号处理对声音进行捕获。1996年Silverman和BrandstEin开始将其应用于声源定位中,用于确定和实时跟踪说话人的位置。近年来,基于传声器阵列的声源定位技术得到广泛的应用2。系统通过传声器阵列接收声源信息,然后进行数字信号处理,得到声源的位置信息。目前,基于传声器阵列的声源定位的主要应用有: (1)人机交互 近年来随着机器人技术的发展,人们希望智能化机器人可以服务于人们的日常生活,尤其是为老年人的生活提供帮助,比如为老年人打扫卫生,或是为行动不便的老年人提供其他方面的协助。先前人们对智能机器人技术的发展主要是集中在移动系统和视觉系统上,缺少人机之间的交流和沟通,因此在人类与机器人之间建立一个有效的沟通方式是非常必要的3。无论对于专家和非专家人员来说,语音是人机交互最有前途的工具之一,因为语言能够提供双向的交互和不同标准的控制,所以机器人听觉系统的发展在家居机器人为人类服务方面提供了潜在的重要作用。机器人的听觉注意机制可以对外界的声音首先发起响应,进而引导机器人对声音目标进行观察,听觉系统还可以引起机器人的其他感官的注意,这种多信息融合技术已经成为一个重要的研究方向4,5。用于人机交互的机器人听觉系统的核心构成便是声源定位技术6。当一个机器人的使用者和智能机器人进行语言的交流时,机器人能很快发现这个使用者或是找到这个声源的位置。除此之外,它还能在黑暗的环境中通过声音信号寻找说话者,或是在复杂的环境中寻找危险的声源7。在人机交互设备中,听觉系统水平的高低已经成为智能化水平的重要标志之一。图1-1 机器人利用声源定位确定声源的位置(2)军事领域 在战场上,声源定位技术在反狙击手方面运用广泛,用来探测火炮发射的精确位置。声源定位技术还为发现和跟踪隐身飞机提供了一种简单的方法,相比于红外和雷达设备,可降低设备的造价8。例如飞行在12000米高空的隐身飞机,以1.5马赫的速度突防,发动机的声音需要40s的时间传播到布置在地面或海洋表面的麦克风阵列,这时隐身飞机刚飞过 20公里,只需根据麦克风阵列探测的隐身飞机的飞行轨迹就可以拦截隐身飞机。(3)视频、电话会议系统 目前大多数的视频、电话会议系统均使用了麦克风阵列技术,使用麦克风阵列技术不仅可以判定出当前发言人的位置,而且可以自动的将麦克风阵列的波束方向对准发言人的位置,屏蔽其他方位的噪声,提高了视频、电话会议系统的效果。(4)大型会场 大型会场一般采用固定位置的麦克风,限制了发言人的自由移动,佩戴无线麦克风也有诸多不便。而采用麦克风阵列的技术,通过对发言人进行声源定位,可以将阵列的波束方向对准发言人的位置,并随着发言人的移动调整波束方向,非常方便。(5)助听器 基于麦克风阵列的助听器可以根据声源的位置,将阵列波束方向对准声源的方向,很好地抑制了环境噪声,提高了助听器的性能。(6)工业降噪 应用声源定位技术,我们还可以对机械设备的不同区域进行降噪处理。如图 1-2 和图 1-3 所示,则是采用麦克风阵列望远镜检测汽车噪声源,及不同部位的噪声能量的分析结果。图1-2 声波阵列望远镜图1-3 汽车不同部位的噪声能量分析(7)智能手机去噪 目前已有智能手机已经采用麦克风阵列技术进行去噪,一般选用多个麦克风分别对准不同的方向,通过阵列信号处理的技术,去除环境噪声,仅放大说话人的声音。除此之外,声源定位技术还被广泛应用于电视电话会议和安防系统等领域。在电视电话会议上,声源定位系统可以将摄像头对准正在发言的人,使远方的与会人员也可以看见视频另一端的说话人,这样会使虚拟会议的真实感增强9。在光线昏暗的条件下,传统的视频监控对监控区域内的监控存在死角,声源定位技术不受光线条件的影响,可以弥补视频监控系统的不足,发现异常声源可以及时提醒监控人员。随着声源定位技术的发展,其应用领域将越来越广,更加接近人们的日常生活。在现有的银行监控系统中,主要运用的是视频监控,通过摄像机与录像机对监控场景的图像或视频进行采集和存储。但是其设备本身不具备对视频内容的分析判断能力,需要人工完成。由于这种单纯的人力监视受限于人体的观察能力,使得系统存在监控漏洞。如果能够开发一种更加智能化的监控系统,弥补现有系统的不足,有着很大的实用价值。人类的判断分析能力之所以高,就是因为我们从外界得到的信息较多。通过视觉、听觉、嗅觉等等,综合判断必定比单纯的一种信息得到的结论更准确。因此,在监控系统中使用声源定位技术可以使系统更加智能化。即监控过程分两步进行,声源定位系统不断检测环境中的声音信号,若检测到有异常声音时,立即定位该声源,然后控制摄像机对声源所在区域进行视频采集,同时发出警报提醒监控人员。因此,这种视频采集结合声源定位的监控系统极大地提高了监控效率。在军事领域,声源定位技术也起着极其重要的作用。例如狙击手定位系统就是一种声源定位系统,目标声源信号为狙击手开枪时步枪的膛口激波和弹丸飞行产生的冲击波10。定位系统通过接收这两种声波,确定狙击手的位置。目前已经研制成功的该类系统有:美军研制的“哨兵”、“安全”等单兵反狙击手探测定位系统。美国 BBN 公司开发的“枪弹定位器”声测系统。该系统采用 2 个传声器阵列测量弹丸飞行中的声激波对弹丸进行定位和分类,定位成功率达到90%。另外,试设想一下多媒体教室,若在传统的麦克风中置入声源定位系统,使得该麦克风不仅可以接收、扩大声音,而且可以对说话人的方位进行实时检测和跟踪,即麦克风始终对准讲话人的方向。这样就大大方便了讲话人的自由活动或交换。声音给人们带来了方便,丰富了人们的生活。而对声源位置的确定能给大家有效的利用声音提供帮助。事实证明,声源定位系统是一个很有意义的研究课题,随着声源定位技术的发展,其应用领域将越来越广,越来越贴近人们的日常生活11。1.2 国内外研究现状声源定位技术有几十年的发展历程。其基本原理就是根据收到的音频信号,确定声源的位置。目前主要采用基于麦克风阵列的信号处理方法。该方法是在 1996 年,由 Silverman 和 Brandstein 两人首先将其应用于说话人位置识别的定位系统中的。随着传声器阵列的信号处理技术的迅猛发展,麦克风阵列的产品以其极大的优越性已经应用到社会生活的各个场合。国外对声源定位技术的研究起步较早,目前的研究成果比也较多。主要应用于军事领域,如战场目标声音识别系统12、飞机探测系统、声探测预警系统13等。除军事领域外,其他领域的声源定位技术的研究成果也很多,如日本HONDA研究院研制的实时跟踪多声源的系统。该系统由两个麦克风阵列组成,分别为室内的麦克风阵列和嵌入机器人头部的麦克风阵列。这两个阵列分别采用基于加权延时累加波束成形法和自适应波束成形器法来定位多声源位置。加拿大魁北克的珊不勒凯大学机电学院研发的避障机器人,使用8元麦克风阵列采集声音,采用波束成形和粒子滤波方法实现声源的跟踪。近年来,国内的许多大学和研究所也对声源定位技术进行了研究。哈尔滨工程大学水声技术国家级重点实验室针对水下近场噪声源的定位,研究了一种矢量阵宽带 MVDR 聚焦波束形成方法。该方法解决了“左右舷模糊”问题,提高了处理增益,及对实际水声信号的适用性14。湖南科技大学和中南大学机电工程学院对海底超声波微地形探测系统进行了研究15。安徽理工大学电气与信息工程学院,设计了一种智能视频监控系统。该系统综合应用了声音和光的信息实现定位,突破了传统监控系统监控范围的局限性,提高了监控系统的监控效率16。另外,如何实现低成本的小型声源定位系统已成为目前研究的一个热点。例如,移动机器人、智能车等声音定位控制系统。文献17设计了一套基于单片机的声音导引系统,该系统通过检测声音信号到达任意两个探测器的时间差实现移动声源方位的估计,从而控制小车的运动方向,并引导小车到达指定位置。文献18介绍了一种用于移动机器人搜寻目标方向的声源定位系统。文献19设计了一套以 STM32 芯片为硬件的移动声源实时定位系统。1.3 本文主要工作及论文结构本文研究的主要内容是设计与实现基于麦克风阵列和STM32单片机的声源方向识别器。其中,包括麦克风阵列、音频放大电路的设计、A/D转换的电路设计及其相关程序的设计,声源定位算法的程序设计。但是考虑到时间不够充足这一实际情况,最后决定采用已完成的一套STM32单片机为核心的硬件电路作为实现声源定位的硬件系统。在最后对整个系统进行软硬联调,对系统进行大量声源定位实验,测试系统的精确程度以保证系统能够应用于实际环境中。论文共分为六章,章节主要内容如下:第1章介绍声源定位背景及研究的目的和意义,相关应用以及国内外的研究现状。第2章主要介绍整个声源定位系统硬件基础知识。首先介绍STM32F103系列单片机的主要性能、特点以及主要参数。其次介绍了现有的3 类基本声源定位技术。最后简略介绍编程软件KeilVision4MDK的使用方法。第3章主要对声源定位算进行了介绍,包括当下集中主要的声源定位算法,时延估计算法中的基本互相关函数,对时延估计算法误差的分析和改进。第4章主要介绍基于麦克风阵列和STM3单片机的声源方向识别器硬件整体结构的设计,包括麦克风阵列几何结构的选择,音频放大电路的设计,STM32单片机的A/D转换电路的设计,以及各部分电路与单片机的连接方式。第5章主要介绍如何设计相关程序以实现STM32单片机的采样和A/D转换,声源定位算法的程序设计。第6章主要介绍使用已设计好的硬件系统结合声源定位算法算法进行多次声源定位实验并记录过程,进而对测试结果进行分析。分析系统误差并且提出改进的方法。最后为结论,主要介绍本次毕业设计工作的内容和取得的成果,设计过程中完成的声源定位系统的优点以及不足之处,并提出一些改进办法。第2章 声源定位系统的技术基础第2章 声源定位系统的技术基础2.1 麦克风阵列声源定位系统整体结构麦克风阵列声源定位系统主要包括四大部分:麦克风阵列部分、音频放大部分、采样和A/D转换部分以及声源定位算法处理部分。结构框图如图2-1所示。如图 2-1 声源定位系统框图(1)麦克风阵列 麦克风阵列的设计涉及到麦克风种类的选择、麦克风阵列结构的选择、阵元间距和阵元数目这些因素。麦克风阵列的设计与声源定位算法的选择、声源定位系统的设计细节相关,是实现麦克风阵列声源定位系统的基础。本系统采用两个麦克风以一定的间距并列放置,用于配合接下来的基于时延估计声源定位的计算方法。(2)音频放大模块 因为声音信号经麦克风转换为电压信号以后是毫伏级的, STM32单片机中的 ADC端口不能分辨出如此小的电压,故音频前置放大电路是声源定位系统中必不可少的。由于所选择的麦克风频率范围为2016KHz,为保证放大电路在麦克风的频率范围内都能正常工作,所选择的运算放大器应有足够宽的带宽。另外,所选择的模拟运算放大器应该具有较高的信噪比,以满足系统对采集信号的精度要求。本系统的运算放大器选用的是德州仪器TL084C,该放大器满足了系统所要求的增益和带宽要求,同时具有较宽的电源电压工作范围,保证了放大电路有着很宽的线性工作区。模拟运算放大芯片084C为四输入运算放大器,具有较高的转换率,INn+为同相输入端,INn-为反相输入端,OUTn为输出端,硬件电路中使用两个084C,可根据声音信号的大小决定采用一级放大还是两级放大。将麦克风接到放大器的输入端,经放大后与单片机相连,作为模拟信号的输入端。(3)采样和A/D转换模块 声源信号为模拟信号,在STM32单片机中实现声源定位的计算,则需要将模拟信号转换为数字信号,从而进行接下来的数字信号处理环节。该模块的作用就是对模拟信号进行等间隔采样,将模拟信号转换为数字信号,为接下来的定位计算提供可用数据。(4)声源定位算法处理模块 该模块主要对采集到的数据进行数字信号处理,依据声源定位算法,进而计算出声源的位置信息。2.2 STM32单片机简介STM32F103系列微处理器是首款基于ARMv7- M体系结构的32位标准RISC (精简指令集)处理器, 提供很高的代码效率, 在通常8位和16位系统的存储空间上发挥了ARM 内核的高性能。该系列微处理器工作频率为72MHz, 内置高达128K 字节的Flash存储器和20K 字节的SRAM, 具有丰富的通用I /O 端口。作为最新一代的嵌入式ARM 处理器, 它为实现MCU 的需要提供了低成本的平台、缩减的引脚数目、降低的系统功耗,同时提供了卓越的计算性能和先进的中断响应系统。丰富的片上资源使得STM32F103系列微处理器在多种领域如电机驱动、实时控制、手持设备、PC游戏外设和空调系统等都显示出了强大的发展潜力6M32F103系列微处理器主要资源和特点如下:(1)多达51个快速I /O 端口, 所有I/O口均可以映像到16个外部中断, 几乎所有端口都允许5V 信号输入。每个端口都可以由软件配置成输出(推挽或开漏)、输入(带或不带上拉或下拉) 或其它的外设功能口。(2)2个12位模数转换器, 多达16个外部输入通道, 转换速率可达1MHz, 转换范围为03.6V;具有双采样和保持功能;内部嵌入有温度传感器,可方便的测量处理器温度值。(3)灵活的7路通用DMA 可以管理存储器到存储器、设备到存储器和存储器到设备的数据传输,无须CPU任何干预。通过DMA可以使数据快速地移动这就节省CPU的资源来进行其他操作。DMA控制器支持环形缓冲区的管理,避免了控制器传输到达缓冲区结尾时所产生的中断。它支持的外设包括:定时器、ADC、SPI、I2C和USART 等。(4)内部包含多达7个定时器。(5)含有丰富的通信接口:三个USART异步串行通信接口、两个I2C 接口、两个SPI接口、一个CAN接口和一个USB接口,为实现数据通信提供了保证5。STM32 的通用定时器是一个通过可编程预分频器(PSC)驱动的 16 位自动装载计数器(CNT)构成。STM32 的通用定时器可以被用于:测量输入信号的脉冲长度(输入捕获)或者产生输出波形(输出比较和 PWM)等。使用定时器预分频器和 RCC 时钟控制器预分频器,脉冲长度和波形周期可以在几个微秒到几个毫秒间调整。STM32 的每个通用定时器都是完全独立的,没有互相共享的任何资源。如图2-2为定时器的框图,其功能包括: (1)16位向上、向下、向上/向下自动装载计数器(TIMx_CNT)。 (2)16 位可编程(可以实时修改)预分频器(TIMx_PSC),计数器时钟频率的分频系数为 165535之间的任意数值。 (3)4个独立通道(TIMx_CH14),这些通道可以用来作为: 1.输入捕获 2.输出比较 3.PWM生成(边缘或中间对齐模式) 4.单脉冲模式输出 5.可使用外部信号(TIMx_ETR)控制定时器和定时器互连(可以用 一个定时器控制另外一个定时器)的同步电路。 6.支持针对定位的增量(正交)编码器和霍尔传感器电路 7.如下事件发生时产生中断/DMA: 更新:计数器向上溢出/向下溢出、计数器初始化(通过软件或者内部/外部触发) 触发事件(计数器启动、停止、初始化或由内部/外部触发计数)触发输入作为外部时钟或者按周期的电流管理 支持针对定位的增量(正交)编码器和霍尔传感器电路 输入捕获 输出比较图2-2 定时器的框图ADC(Analog to Digital Converter),模拟/数字转换器。在模拟信号需要以数字形式处理、存储或传输时,ADC必不可少。STM32系列单片机的ADC转换位数为12位,是一种逐次逼近型模拟数字转换器。它有多达18个通道,可测量16个外部和2个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中,其框图如图2-3所示。STM32系列在片上集成的ADC外设非常强大,其主要特征如下:(1)12位分辨率(2)转换结束、注入转换结束和发生模拟看门狗事件时产生中断 (3)单次和连续转换模式 (4)从通道0到通道n的自动扫描模式 (5)自校准 (6)带内嵌数据一致性的数据对齐 (7)采样间隔可以按通道分别编程 (8)规则转换和注入转换均有外部触发选项 (9)间断模式 (10)双重模式(带2个或以上ADC的器件)(11)ADC供电要求:2.4V到3.6V (12)ADC输入范围:VREF- Vin VREF+ (13)规则通道转换期间有DMA请求产生STM32的ADC参考电压输入如表2-1所示表2-1 STM32的ADC参考电压输入名称信号类型注解VREF+输入,模拟参考正极ADC使用的高端/正极参考电压,2.4v VREF+ VDDAVDDA(1)输入,模拟电源等效于VDD的模拟电源且:2.4v VDDA VDD (3.6v)VREF-输入,模拟参考负极ADC使用的低端/负极参考电压,VREF-= VSSAVSSA(1)输入,模拟电源地等效于VSS的模拟电源地VDDA和VSSA应该分别连接到VDD和VSS通过设置ADC_CR2寄存器的A/DON位可给ADC上电。当第一次设置A/DON位时,它将ADC从断电状态下唤醒。ADC上电延迟一段时间后(tSTAB),再次设置A/DON位时开始进行转换。通过清除A/DON位可以停止转换,并将ADC置于断电模式。在这个模式中,ADC几乎不耗电(仅几个A)。ADC的时钟控制器ADCCLK时钟和PCLK2(APB2时钟)同步,ADC的输入时钟不得超过14MHz。STM32单片机有16个多路通道,可以把转换组织成两组:规则组和注入组,在任意多个通道上以任意顺序进行的一系列转换构成成组转换。STM32同样具有双ADC模式和单ADC模式,只有一个ADC工作时,具有单次转换和连续转换以及扫描模式三种模式;双ADC模式具有同步规则模式等多种模式。 图 2-3 ADC框图STM32单片机的A/D转换可以由外部事件触发, ADC1和ADC2用于规则通道的外部触发如表2-2所示,本实验中采用的是由通用定时器3所产生的TRGO事件来触发A/D转换。表2-2 ADC外部触发TIM1_CC3事件来自片上定时器的内部信号010TIM2_CC2事件011TIM3_TRGO事件100TIM4_CC4事件101信号经过音频放大器进行放大,被ADC采集、转换,然而ADC转换得到的数据如何转移到内存从而进行下一步的时延计算呢?这里我们使用DMA用来“搬运”这些数据。DMA,全称为:Direct Memory Access,即直接存储器访问,DMA 传输将数据从一个地址空间复制到另外一个地址空间。当CPU初始化这个传输动作,传输动作本身是由DMA 控制器 来实行和完成。典型的例子就是移动一个外部内存的区块到芯片内部更快的内存区。像是这样的操作并没有让处理器工作拖延,反而可以被重新排程去处理其他的工作。DMA传输对于高效能嵌入式系统算法和网络是很重要的。DMA传输方式无需CPU直接控制传输,也没有中断处理方式那样保留现场和恢复现场的过程,通过硬件为RAM与 I/O 设备开辟一条直接传送数据的通路,能使CPU的效率大为提高。图2-4为DMA框图,STM32 的DMA有以下一些特性: (1)每个通道都直接连接专用的硬件 DMA 请求,每个通道都同样支持软件触发。这些功能通过软件来配置(2)在七个请求间的优先权可以通过软件编程设置(共有四级:很高、高、 中等和低),假如在相等优先权时由硬件决定(3)独立的源和目标数据区的传输宽度(字节、半字、全字),模拟打包和拆包的过程。源和目标地址必须按数据传输宽度对齐 (4)支持循环的缓冲器管理 (5)每个通道都有3个事件标志(DMA 半传输,DMA 传输完成和 DMA 传输 出错),这3个事件标志逻辑或成为一个单独的中断请求。(6)存储器和存储器间的传输 (7)外设和存储器,存储器和外设的传输 (8)闪存、SRAM、外设的 SRAM、APB1 、APB2 和 AHB 外设均可作为访问的 源和目标 (9)可编程的数据传输数目:最大为 65536首先在内存中开拓一片空间用来存储DMA从ADC寄存器转移而来的数据,即在内存中定义一个首地址,配置DMA的工作模式,使A/D转换数据不断地从ADC数据寄存器转移到SRAM中。转移的数据以两个数组的形式存储下来,供下面的声源定位计算使用。整个A/D转换的程序分为三个部分:包括DMA的配置程序、GPIO的配置程序以及ADC的配置程序。图 2-4 DMA框图2.3 KeilVision4MDK简介对STM32F103系列单片机开发前, 需要准备相应的软硬件。其中硬件主要包括STM32F103开发板(或用户目标板); 软件主要包括KeilVision4MDK开发平台。KeilVision4MDK是一个基于窗口的软件开发平台,它集成了强大而且现代化的编辑器、程管理器和make工具,几乎集成了嵌入式系统开发所需的全部工具: C/C+编译器、汇编器、链接/定位器、HEX文件生成器等。该软件提供了两种工作模式:编译和调试模式。在编译模式中,开发者可以创建工程、选择目标器件、新建文件、输入源代码、生成可执行文件;调试模式中,开发者可以利用其强大的集成调试器对应用程序进行调试,如设置断点、单步执行等, 方便了程序错误的查找和修改。作为ARM嵌入式开发的主流工具,MDK也是目前为数不多的完全支持Cortex-M3处理器的开发工具,并内含STM32F10x系列处理器片上外围接口固件库和完整的数据手册。MDK尽管是针对16位和32位处理器的,但仍然使用中国工程师非常熟悉的开发环境,当面对有更高性能需求的MCU开发时,开发人员可以利用原有开发经验轻松地实现过渡。该软件的突出特性包括:(1)启动代码和系统硬件结合紧密,必须用汇编语言编写,因而成为许多工程师难以跨越多门槛。MDK开发工具可以自动生成完善的启动代码,并提供图形化的窗口,轻松完成修改。无论对于初学者还是有经验的开发工程师,都能大大节省时间,提高开发效率。(2) KeilVision4MDK的设备模拟器可以仿真整个目标硬件,包括快速指令集仿真、外部信号和1/0口仿真、中断过程仿真、片内所有外围设备仿真等。开发工程师在无硬件的情况下即可开始软件开发和调试,使软硬件开发同步进行,大大缩短开发周期。而一般的ARM开发工具仅提供指令集模拟器,只能支持ARM内核模拟调试。(3) KeilVision4MDK的性能分析器好比哈雷望远镜,能让开发工程师看得更远和更准,辅助查看代码覆盖情况,程序运行时间,函数调用次数等高端控制功能,轻松完成代码的优化,成为嵌入式开发高手。通常这些功能只有价值数千美元的昂贵的Trace工具才能提供。(4)KeilVision4MDK无需寻求第三方编程软件与硬件支持,通过JLINK或类似仿真器与Flash编程工具一同轻松实现CPU片内Flash、外扩Flash烧写,并支持用户自行添加Flash编程算法;而且能支持Flash整片删除、扇区删除、编程前自动删除以及编程后自动校验等功能,轻松方便。(5)KeilVision4MDK中国版的用户将享受到专业的本地化的技术支持和服务,包括电话、Email、论坛、中文技术文档等,这将为国内工程师们开发出更有竞争力的产品提供更多的助力。2.4 ISP下载器KeilVision4MDK进行整个系统的软件设计,代码编写完成以后,对程序进行编译,系统自动生成HEX类型的文件,使用MCUISP(ISP下载器),将加载HEX文件到单片机中,下载成功以后如图2.6.2所示。ISP是在系统编程的英文缩写(In-System Programming)。简单的说,可以不用插拔芯片,也不需要编程器,就可以在你的目标应用板(有单片机的电路板)上直接编程,作程序改动调试。 在系统可编程技术与传统逻辑电路设计比较,其优点在于: (1)实现了在系统编程的调试,缩短了产品上市时间,降低了生产成本。 (2)无需使用专门的编程器,已编程器件无须仓库保管,避免了复杂的制造流程,降低了现场升级成本。 (3)使用ISP器件,不仅能够在已有硬件系统的基础上设计开发自己的系统,真正实现硬件电路的“软件化”,将器件编程和调试集中到生产最终电路板的测试阶段,使系统调试数字系统硬件现场升级变得容易而且便宜。2.5 本章小结本章首先介绍了麦克风阵列声源定位系统整体结构,克风阵列声源定位系统主要包括四大部分:麦克风阵列部分、音频放大部分、采样和A/D转换部分以及声源定位算法处理部分。其次介绍了STM32单片机的主要性能,着重介绍了A/D转换器,通用定时器和单片机的DMA功能。软件方面文章介绍了STM32单片机的软件编程工具以及后面用到的下载工具。通过对以上内容的介绍,为接下来的毕业设计提供了充足的预备知识,更加深入的理解单片机的工作方式,并且为程序的编写和下载打下了基础。 第3章 声源定位算法研究第3章 声源定位算法研究3.1 声源定位算法概述麦克风阵列是指一组摆放成特定几何结构的麦克风,利用特定算法对麦克风阵列拾取的声音信号进行处理,计算得出声源的具体位置。目前应用于麦克风阵列的声源定位算法大致可以分为三类20:(1)基于最大输出功率的可控波束形成技术(2)基于高分辨率谱估计技术(3)基于到达时间差(Time Difference of Arrival,TDOA)定位技术基于最大输出功率可控波束的声源定位算法21,最早是由 William R.hahnh 和 Steven A.thetter 在 1973 年提出的22。1983 年,Mati Wax 和 Thomas Kailath 将该方法由单声源定位扩展到多声源定位23。这种算法的基本思想24.25是通过对各阵元输出加权求和来得到波束,通过调整权值使波束的输出功率最大,以搜索的方式来寻找功率最大的点,该点即为声源的方向。基于麦克风阵列的语音拾取领域多用到了波束形成技术,用来进行语音增强,但是该方法在实现的过程中需要进行全局搜索,而这种搜索需要极大的运算量,影响了实时实现,所以将该方法用于稳健有效的声源定位系统还是比较困难。并且,可控波束定位技术依赖于背景噪声和声源信号的频谱特性的先验知识,但是在实际使用中,这些先验知识很难获取26.27。因此将该方法应用在实际系统中性能差异大,计算复杂度高,其应用范围受到了很大的限制28。基于高分辨率谱估计技术的声源定位方法 空间谱估计技术具有超高的空间信号的分辨能力,能突破并进一步改善一个波束宽带内的的空间不同来向的信号分辨能力29,所以又称为高分辨率谱估计技术。在实际的运用中,该方法要求信号是平稳的,以便利用时间平均估计阵元的相关矩阵,但声音信号是一个短时平稳过程,并不满足此条件,从而导致该方法的定位效果并不好;此外该方法适用于远场信号的处理,应用到近场声源定位中距离分辨率较低,准确性也不高30;而且该方法主要对窄带信号有效,对于像语音信号这样的宽带信号,可采用频率聚焦技术31,但这样会使算法运算量增加,不利于实时实现。基于时间延迟估计(Time Delay Estimation, TDE)的声源定位方法 此方法由两步完成,第一步计算同一阵列中不同的麦克风接收信号之间的时间差,第二步就是利用这些时间参数根据不同的定位算法进行定位。该方法原理简单,计算量小,实时性强,适用于单声源的定位,应用广泛32。但是该方法由于分两步完成,第二步利用的是过去时延值参数,因此只是一个次最优估计,而且第一步中的时延值误差会对第二步的估计结果产生很大的影响,造成误差累积。此外当房间内的噪声和混响比较强时,会造成时延值异常点增多。尽管如此,该算法在经过适当的改进后仍能更好的适用于实际环境,且该算法的实时性优于前两种算法,计算量小,这无疑会降低系统实现的成本和难度。基于 TDOA 的声源定位算法与前两种定位方法相比,算法更为简单,且运算量远小于基于最大输出功率的可控波束形成算法和高分辨率谱估计算法,比较适合实时性要求高的应用,但如何提高时延估计的精确度是该算法中的难点。本次设计采用基于到达时间差的定位算法(TDOA)实现声源方向的定位,故着重介绍,前两种算法不做详细说明。3.2 时延估计算法 通过对几种声源定位算法的综合比较,本文主要介绍如何运用基于时延估计的声源定位方法来进行声源定位该方法的主要部分是分为时延估计和定位2 个部分,实现过程如图3-1。图3-1 基于时延估计的声源定位方法实现框图在基于时间延迟估计(TDOA)的声源定位方法中,互相关方法是最基本的时延估计方法,计算原理如下:在声源定位系统中,在没有噪声和混响影响的理想情况下,现想数学模型如式(3-1): (3-1)在式(3-1)中和分别为两传声器的接收信号,为传声器接收到声源信号,和分别是两个传声器接收到的高斯噪声,是声波的相对衰减系数,d为两传声器之间的相对时延,其中、和为互不相关的平稳随机过程。于放置在不同位置的传声器所接收到的目标声源信号所需要的时间不同,因此时延估计技术实际上就是通过信号处理的方法求时延d的一个问题。不同时延估计方法各有相应的优点和缺点,实际应用中应结合系统的具体精度要求和运算复杂度进行选择。相关分析实际上就足对两个信号在时间域的相似程度上进行比较。本论文中假设两个传声器接收信号的离散时间信号模型为: (3-2)其中,为接收的声源信号,和为两个高斯白噪声。和是声波从声源到达传声器1和传声器2的时间,则:=-就是声波到达传声器1和传声器2间的时间延迟。本模型的理论基础为假设、信号为互不相关的平稳随机变化过程。两个传声器接收信号和的互相关函数可表示为: (3-3)将式(3-2)代入(5-3)得: (3-4) 由于、信号之间两两互不相关,即后三项均为0,则式3-4可以变为: (3-5)由自相关函数的性质知,当时,取得最大值。因此两个传声器之间的时间延迟就是这个求得的的最大值对应。由以上分析可知求两不同位置传声器之间的时延估计值就是求互相关函数的极大值。3.3 对时延估计算法误差的分析以上分析了基本相关法用于时延估计的基本理论,从中可以看出基本相关法非常的简单,但基本相关法用于时延估计有三个缺点33:首先该方法假定了信号和噪声及噪声和噪声之间均不相关,这在有些情况下不一定能得到满足。其次,基本相关法所定义的相关函数是一种严格数学意义上的统计平均或在平稳遍历条件下替代统计平均的无穷时间平均。而在实际应用中,严格数学意义上的统计平均或无穷平均是不可能做到的,而只能用有限的时间平均来替代无穷或统计平均,即用相关函数的估计值来替代理论值。最后,基于时延估计的声源定位方法计算时延分2步进行34,估计方位的时候用的时延值是过去值,使得该方法只能得到一个次最优的定位结果,而且时延估计的精度直接影响定位的精度,时延误差将在第 2 步的方位估计中进一步积累,最终使定位结果产生较大的误差。且时延估计对信号采样率要求比较高,受房间混响和信噪比的影响较大,实际工程应用中往往很难得到特别精确的时延值。3.4 对时延估计算法的改进上一节对运用基本互相关函数计算相对时延产生误差的因素进行了分析,由于在实际环境中,基本互相关函数计算出的相对时延不能达到特别精确,仍旧存在一些缺点,于是许多对时延估计算法的改进算法就被提了出来。(1)最小均方(LMS)自适应滤波时间延迟估计方法 基于相关分析的时延估计方法可以有效的抑制随机噪声的影响,但是对于相关性极强的周期干扰,其抑制效果较差,另外基于相关分析的方法对平稳和非时变的随机信号有较好的时延估计效果,但对于非平稳和时变的信号,估计效果并不理想。与相关分析法相比,基于自适应滤波的时间估计方法不仅能够在一定程度上抑制随机噪声的影响,而且可以有效地消除接收信号中的周期性干扰,在较强的干扰下得到较好的时延估计。(2)广义相关法 为了减弱或消除噪声对相关法时延估计的影响,产生了各种不同的加权方法,称为广义相关法。广义相关法是指在对接收到的信号估算相关函数之前,先对接收到的信号进行预滤波处理,对信号和噪声进行白化处理,增强信号中信噪比较高的频率成分,从而到达抑制噪声功率的目的,使得相关函数取得尖锐的峰值,提高时延估计的精度。(3)基于低采样率实现高精度的TDOA声源定位算法 基于 TDOA 的声源定位算法由于其实现原理简单,运算量小的特点,比较适合运算能力较差、内存小的嵌入式设备。但如果需要提高定位的精度,必须要有很高的系统采样率,这对嵌入式设备来说是不现实的。由于嵌入式设备硬件和功耗的限制,只能提供非常有限的采样率,限制了系统声源定位精度的提高。基于这一事实,提出了一种基于低采样率实现高精度的 TDOA 声源定位算法。3.5 本章小结本章主要介绍了几种常用的声源定位方法,分别列出了各种定位方法的优缺点,本章主要研究了基于TDOA的声源定位算法,在基于TDOA的声源定位算法中,又主要介绍了基于互相关函数计算信号相对时延的方法,最后又对基本相关法用于计算时延算法的优缺点进行了分析,又提出了几种比较主流的改进方法,并对几种改进方法的优缺点一一作了分析。第4章 麦克风阵列声源定位系统整体硬件设计第4章 麦克风阵列声源定位系统整体硬件设计4.1 硬件系统电路图设计本系统中的硬件设计主要包括信号采集电路的设计和STM32外围电路设计,硬件设计主要完成信号的输入、输出操作,是各种功能设计的具体实现。系统采用模块化的设计思想,便于调试、移动和功能扩展。本系统的信号采集部分主要包括信号传感器(麦克风)、模拟信号放大器(综合考虑确定选用TL084C模拟运算放大器);其次,硬件电路设计以高性能的STM32微控制器为核心搭建硬

温馨提示

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

评论

0/150

提交评论