声音定位系统.docx
《声音定位系统.docx》由会员分享,可在线阅读,更多相关《声音定位系统.docx(11页珍藏版)》请在冰点文库上搜索。
声音定位系统
2012年大学生电子设计TI杯竞赛
声音定位系统(D题)
【本科组】
摘要:
本系统是用C8051F310单片机产生频率为500Hz的方波信号,该信号用三极管8550进行放大及驱动后输入到蜂鸣器作为声源。
接收部分使用拾音器进行接收,首先对接收的信号经过单管放大,使变化的电流信号转换为变化的电压信号。
然后经过由LM358组成的带通滤波器,该滤波器的中心频率为500Hz,带宽为50Hz,增益为10倍,去除周围环境的声波,滤波后的信号正好是蜂鸣器发出的声音信号。
再对此级信号经过LM339比较器,可以把滤波后的正弦波转换为方波,以便单片机MSP430G2553进行检测。
声源定位是通过对四个拾音器接收到信号的时间先后进行处理,经过一套比较完善的算法可得声源的坐标,即可进行声源定位。
然后经过后级的更精确的算法,当声源移动时,可实时检测到声源坐标。
关键词:
500Hz声音定位MSP430G2553
一、系统方案
1.声音信号产生的选择
方案一:
采用NE555产生频率为500Hz的方波用来作为声音信号。
它的作用是用内部的定时器来构成时基电路。
外部通过简单的电路可获得所得的信号。
该电路搭建比较简单,原理易于理解,电路中元器件参数也比较好计算。
方案二:
用单片机C8051F310来产生频率为500Hz的方波用来作为声音信号。
方波信号的产生实质上是在定时器溢出中断次数达到规定次数时,将输出I/O管脚的状态取反。
该程序比较容易实现,且不会占用单片机太多资源。
方案比较:
方案一中,用NE555产生信源不是很稳定,波形不太规范且信号的频率不固定,这样的信号对本系统不太合适。
方案二中,用软件来产生信号,该信号很稳定,是比较标准的频率为500Hz的方波信号,而且,产生波形比较灵活,从而为发挥部分做好准备。
因此选择方案二。
2.声源的选择
方案一:
采用低音扬声器作为声源。
扬声器是一种把电信号转变为声信号的换能器件。
将单片机产生的频率为500Hz的信号接在扬声器的接收端,扬声器能发出强度比较大的声音信号。
方案二:
采用无源蜂鸣器作为声源。
无源蜂鸣器在提供一定频率的方波震荡源时,能够发出声音。
试验中用无源蜂鸣器发声时,声音比较清晰,但声音强度比扬声器稍弱。
方案比较:
两种器件发出的声音都能被接收端检测出来。
方案一中,扬声器需要消耗较大的功率,若将功率限制在200mW内,则扬声器发不能满足要求,且扬声器在上电后就会发声,而设计要求是有信号输入才发声。
方案二中,蜂鸣器消耗的功率控制在200mW以内时,发出的声音强度比扬声器稍弱,但是能够满足设计要求。
因此选择方案二。
3.滤波方案的选择
方案一:
用RC无源滤波器。
通过计算可以较方便的通过匹配电阻电容得出所需要的通频带。
该滤波电路抗干扰性较强,有较好的低频特性,并且选用标准的阻容元件易得。
方案二:
用有源滤波器。
有源滤波器是利用可关断电力电子器件,产生与负荷电流中谐波分量大小相等、相位相反地电流来抵消谐波的滤波装置。
有源滤波器除了滤除谐波外,同时还可以动态补偿无功功率。
其优点是反映动作迅速,滤除谐波可达到95%以上,补偿无功细致。
方案比较:
方案一中,谐波滤除率一般只有80%,对基波的无功补偿也是一定的,并且通频带比计算出的要宽,不太符合设计要求。
方案二中,电路比较复杂,但通过匹配后能较好的完成带通滤波,能达到预期的要求。
因此选择多路负反馈二阶有源带通滤波器,即方案二。
二、理论分析与计算
1.声响模块分析、计算
声响模块是由蜂鸣器产生生源信号。
该单独的声源模块供电电压为5V,经过测量后电路中的电流在35mA左右。
功率计算公式:
P=U*I;
经计算声源模块的功耗约为175mW左右,该系统要求的声响模块功率低于200mW,所以经过该计算本设计符合设计标准。
2.声音接收放大器分析、计算
声音接收电路中在进行带通滤波的同时对接收到的信号进行了放大。
带通滤波的中心频率为500Hz。
相关参数的计算:
Req=R13//R16=R13*R16/(R13+R16)
=31.8*1.68*1000/(31.8+1.68)=1.6K;
fc=1/(2*π*
)
=10^8/(2*3.14*
)=497.6Hz;
Q=fc/BW=1/2*(R3/Req)1/2=9.97
3.数据处理原理分析、计算
数据处理部分是将信号通过比较器进行处理。
信号经过带通滤波后,其幅值可达到3.8V左右,而没有信号时噪声信号幅值比较小。
声源信号经过比较器后可以被检测出来,比较器端输出3.3V的高电平,当没接收到有用信号时,比较器端输出0V低电平。
再将这种信号输入到单片机中进行处理,很方便的能判断是否检测到有用声源信号。
比较器是由LM339构成,在运放的同向端经过10K滑线变阻器分压,进行阈值设定,反相端输入滤波后的信号,输出端则会输出3.3V或0V的方波信号。
三、电路与程序设计
1.声响模块电路设计
声响模块是由C8051F310单片机输出频率为500Hz的方波,然后从单片机引脚输出,输出的信号经过三极管后放大后,再接入到蜂鸣器。
此时蜂鸣器的输出电流为35mA左右,供电电源为5V,发声模块的功率低于200mW,符合本题的要求。
2.声音接收放大器电路设计
接收部分是用拾音器接收声音信号。
由于拾音器接收到的信号在不经过放大时信号很小,不易检测,故后级利用单管放大将接收的信号进行处理,电路中通过RC可以把集电极电流的变化转换成电压的变化送到输出端。
3.测量、数据处理电路设计
根据要求只有当接收到的信号为500Hz时,我们才能保证接收到的信号是由声源发出的。
而拾音器接收到的声音信号是任意频率的,故此处要进行滤波处理。
滤波采用的是带通滤波器,通过电容电阻的匹配,最终滤波器的中心频率为500Hz,带宽为50Hz。
拾音器接收到的信号经过带通滤波器后,能够将生源发出的信号滤出,正符合本题要求。
滤波后的信号为正弦波,但该信号不便于用单片机进行处理,故在后级加入了一级LM393比较器。
其基本功能是对两个输入电压进行比较,并根据比较结果输出高电平或低电平。
并由此来判断输入信号的大小和极性。
从滤波器中输出的信号的幅值为1V以上,故将比较器的比较端给的比较电压设定为500mV左右,这样当输出的信号是频率为500Hz的方波,幅值为3.3V,能够用单片机进行检测,效果比较满意。
4.程序设计及其流程图
4.1程序设计思想:
设坐标纸为图中的矩形ABCD。
声源在点O,拾音器分别位于矩形四角A、B、C、D。
声源到A点的距离为Da,到B点的距离为Db,到C点的距离为Dc,到D点的距离为Dd。
分别经过时间Ta,Tb,Tc,Td后,拾音器A、B、C、D接收到信号,然后可以计算出三个时间差值t1,t2,t3,声音传播速度为v。
通过下列算法后可计算出声源O的坐标值(x,y):
4.1.1定位算法一:
(1)
(2)
(3)
(4)
单片机检测到的为四个时间点算出三个时间差,上面四个式子可用时间差表示出
;(5)
;(6)
;(7)
;(8)
解出:
;
;
;
;
;
;
上式总共两个未知数四个等式,可以根据任意三个式子解出一组解,总共会有两组解。
由于测出的结果会有误差,所以将所得的两组解进行平均值求解,则结果误差会减小,准确度会进一步提高。
该算法程序比较简短,适合用单片机处理。
4.1.2定位算法二:
(1)
(2)
f1(x,y)=
=0(3)
f2(x,y)=
=0(4)
然后对(3)(4)分别对x,y求一介微分:
f1x(x,y)=
;
f1y(x,y)=
;
f2x(x,y)=
;
f2y(x,y)=
;
然后将f1(x,y),f2(x,y)进行泰勒级数展开,则可得出递推公式:
Xk+1=Xk+
;
Yk+1=Yk+
;
经过递推后可得出比较准确的O(x,y)的坐标,程序比较大,适合在PC机上运行,准确度比较高。
4.2程序流程图:
主程序流程图:
中断程序流程图:
四、测试方案与测试结果
1.测试方法与仪器
声源定位测试方法:
将声源放在坐标纸上的任意坐标,不让声源发声,记下坐标值(x0,y0)。
然后启动声源,让声源发出1s左右的声音信号,同时单片机接收信号后开始进行计算,计算出的坐标值(x1,y1)通过LCD显示频显示出来。
2.测试数据完整性
声音定位数据:
测试编号
声源坐标(x,y)
测量坐标(x,y)
1
(100,100)
(113,121)
2
(150,150)
(165,141)
3
(200,250)
(215,264)
4
(250,300)
(270,284)
5
(300,350)
(314,367)
3.测试结果分析
测试结果与实际存在一定的误差,因声速会随外界环境的不同而不同,如温度介质等。
在整个系统运算中我们所用的声速为340m/s,这样计算出来的结果与实际值之间不可避免的产生了误差,但这种误差是允许存在的,且对结果不会产生很大的影响。
经测试最终能够满足基本部分和发挥部分的要求。