
声音定位系统总结报告.docx
10页声音定位系统总结报告姓名2013.8.4摘要本设计是一种基于单片机的可移动声源定位系统的研究与实现采用stm32芯片为主体,搭 建外围电路组成声响模块,产生500HZ,功耗不高于200MW的声音信号再通过单片机捕 获4个麦克接收的时间差,传到以stm32为主体的控制模块通过一定的算法计算,在彩屏上 显示声响模块的坐标以及运动轨迹关键字:stm32,信号放大,功率放大,带通滤波,声源定位;一、方案论证与比较1・1设计任务与要求一、任务设计一套声音定位系统在一块不大于1m2的平板上贴一张500mmx350mm的坐标纸, 在其四角外侧分别固定安装一个声音接收模块,声音接收模块通过导线将声音信号传输到信 息处理模块,声音定位系统根据声响模块通过空气传播到各声音接收模块的声音信号,判定 声响模块所在的位置坐标系统结构示意图如图1所示图1声音定位系统结构示意图二、要求1. 基本要求(1) 设计制作一个声响模块,含信号产生电路、放大电路和微型扬声器等,每按键一次 发声一次,声音信号的基波频率为500Hz左右,声音持续时间约为1s要求声响模块采用 3V以下电池供电,功耗不大于200mW2) 设计制作四路声音接收模块,由麦克风、放大电路等组成,并分别与信息处理模块 相连接,以便将频率为500Hz左右的信号传送至信息处理模块。
3) 设计制作一个信息处理模块,要求该模块能根据从声音接收模块传来的信号判断声 响模块所在位置的x、y坐标,并以数字形式显示x、y坐标值,位置坐标值误差的绝对值不 大于30mm2. 发挥部分(1) 改善接收信号的放大电路性能,改进算法,进一步提高定位精度2) 控制声响模块以不间断的连续周期波的形式发出声音信号,其基波频率为500Hz 左右当声响模块在坐标纸上移动时,声音定位系统能连续跟踪显示声响模块的x、y坐标 值,随机停止声响模块的移动,能立即稳定地显示声响模块的x、y坐标值,误差的绝对值 不大于10mm3) 具有显示声响模块移动轨迹的功能当声响模块在坐标纸上按指定路径移动时,液 晶显示屏能动态显示声响模块移动的轨迹,显示的轨迹与声响模块移动的路径一致⑷其它1.2设计分析要完成此次任务,需要500HZ发生模块、声波接收电路、放大电路、滤波电路、信号处理 部分和信号显示部分在整体的方案上,我们采用8位的51单片机作为500HZ的信号发生部分,以32位的STM32 作为信号处理部分由于声响模块产生的信号在经过咪头接收后,信号变的很微弱,因此, 我们需要设计一个放大电路,将mv级的信号放大到v级信号,放大倍数为10~100倍。
由 于环境中还有各种其他噪声,在经过放大电路后也被放大了,因此,我们需要一个带通滤波 电路以消除杂波,让我们想要的波形通过本设计采用NE5532作为放大芯片,以LM358 作为滤波芯片此系统的总体框架如下:图1.系统框图、方案论证与比较1・1声响模块方案比较应要求:每按键一次发声一次,声音信号的基波频率为500Hz左右,声音持续时间约 为Is要求声响模块采用3V以下电池供电,功耗不大于200mW分析知,为保证基波频 率为500hz左右,是以500hz的矩形波为主的信号发送,功率要求不大于200mw,那么应 以低脉宽来达到此要求方案一:采用模拟器件搭建一个信号发生电路,如自激电路,与逻辑门电路配合,再经 由三极管放大电路驱动扬声器发声人为通过纯电路产生某个可识别信号,电路构造复杂, 在接收模块中又易受干扰,而且难度过大,在接收模块亦难识别方案二:采用stc89c52单片机发生符合要求的声音信号,再通过三极管驱动扬声器发 声此方案灵活方便,电路和程序简单,权衡之下选择方案二作为声响模块设计方案1.2声音接受模块方案比较当声音信息通过空气向四周振动发送,利用麦克风对空气振动的敏感性,提出利用麦克 风采集声音的方案。
方案一:设想声音在空气中传播时,距离声波越远接收到的信号也越小,通过麦克风放 大电路检测信号大小来计算出点与声源的距离但实际操作中,由于距离与接收声强关系未 知,准确度较低,不能准确定位方案二:将麦克风接收到的声音信号,通过放大电路,带通滤波电路,再通过比较电路 获得与声源模块相似的矩形波,再由信息处理模块该方案,电路简单,与所发送信息吻合 性高,抗干扰性强,故选用1.3算法方案比较方案一:通过比较输出波形的相位差来测得三点的距离,经过STM32的四路捕获信号比较 四路的相位差,经过相应的算法求得发生点的坐标方案二:通过捕获的四路信号,算得四路的时间差,通过一定的算法测得发生点的坐标 由于测相位的算法较为复杂,硬件要求较高,因此,我们选用了方案二二声源定位系统分析编程框图计算声源离各个 角的距离算出(X,Y)算法首先我们使用四个接收器来接收发射源的声音信号,从这四个接收器中我们能从中读取 出各个之间的差值,即有三个差值为S1,S2,S3这三个点都是以1号点为基准来做的,si 为2到1的距离差,s2为3到1的距离差,s3为4到1的距离差用单片机计算距离差的 时候运用捕获寄存器来实现捕获各个声音的波形的上升沿来算出时间差。
频率为500HZ, 所以周期为2us,所以为计数器加一下就是2us距离差=计算器个数*2*10人-3*340声速 340m/s还有就是发射源到各个点的距离分别为D1,D2, D3, D4由以上可以得到三个式子S1 -D1, S2=D3-D1, S3=D4-D1.因为在这个长方形中对角线想等可得,D4*D4+D2*D2=D1*D1+D3*D3 通过计算可以得出以下四个各条边的式子,D2 — S1 + )1 , )3 — S 2 + S1 + )1 ,S1A2 + (S 3 + S 2 + S1)A2 - (S 2 + S1)A2^)1 —2*( S 2 + S1) - 2* S1 - 2*( S1 + S 2 + S 3)D 4 — S 3 + D3根据海伦公式S= Vp*(p-a)*(p-b)*(p-c) (p=(a+b+c)/2)得到面积,根据面积即可求出相应的X,Y值三、单元电路分析与设计3.1声响模块电路设计声响模块电路基于stc89c52最小系统产生声波信号,经过放大电路驱动扬声器通过 按键开关控制模式选择以及单次声波输出电路图如下:C122P■=:TEXT>C2HI22P
电路原理图详见附页麦克风接收到声波信号经过放大电路处理,再经过高通滤波器已经低通滤波器,将不需 要的杂波信号滤除,最后经过比较器可以使正弦信号变成矩形波信号从而得到与输入波形较 为接近的波形,使信息处理电路便于检测计算四、系统程序设计4.1声响模块为满足题中的单次发声和连续发生的要求,通过单片机的I/O 口控制按键实现,同时为 了是发声模块的功耗小于200mw,采用输出含有题目要求的500Hz基波的窄脉冲和一定时间 的低电平的矩形波厂开始1系统初始化1读入 P0.0 口值连续发声1P1 0 输出波形判别模式P0.0=1?单次触发发声4.2信息处理模块开始系统初始化四路捕获信号处理信号液晶显示五、系统测试及结果分析5.1测试器件恒压直流电源信号发生器示波器5.2测试数据(1) 声响模块测量通过示波器测得,声响模块的声音频率在500hz左右,输出的幅值在5V左右,测得的 电流在20mA左右,满足功率低于200mW要求(2) 输出波形测量我们测得硬件给单片机的最后波形的幅值为5V,频率为500hz,占空比为50%,四路 的输出波形都大致如此(3)坐标测量设定坐标值(x,y)显示坐标值(x,y)误差(0,0)(12,15)(12,15)(50,30)(36,78)(14,48)(100,120)(170,132)(70,12)(350,175)(278,200)(122,25)经过测量,我们做的声音定位的准确度不高,在操作过程中,会出现较多的单片机能接受信 号但显示屏无反应的结果,出现的概率较大,这是我们这个过程中难以解决的问题六、结论本系统使用自己建立的声源模块发出固定的声波信号,并且利用自建的四路声音接收模 块和一个基于STM32和51单片机的信息处理模块来进行声音的定位。
在自己建立的区域内, 通过声源模块发出500HZ的声波型号,在四个角上的麦克风采样后经过处理传至FPGA计算 出4个信号的时间差,从而利用单片机计算并显示出他们的坐标,实现定位七:附录1. 咪头接受电路10Kl:TkFGNDVCCm-zl[Xmid2. 放大与带通滤波电路GNDGND3. 比较电路1GND。
