基于单片机算法实现对音频信号检测的研究

家电
山东工业技术
2018年11月04日 14:20

基于单片机的音频信号分析仪的设计

李金 顾军

摘 要:本文介绍了一种对音频信号检测的方法,使用单片机对检测到的信号进行滤波处理,主要采用的是递推平均滤波法,通过该方法可以使得提供给单片机所计数的信号较为稳定,降低一些不必要信号的干扰,提高了音频检测的成功率及可靠性。通过程序的检测及判断,可以触发话机的紧急通话功能,从而实现沿线扩播设备主动向地面发起紧急通话的目的。

关键词:音频检测;数字滤波;紧急通话

DOI:10.16640/j.cnki.37-1222/t.2018.14.130

1 概述

随着《国务院办公厅关于进一步加强煤矿安全生产工作的意见》(国办发[2013]99号)文件的提出加强煤矿应急救援装备的建设,各个省局也都出台了相应的政策。以安徽省为例,出台了“安徽煤矿安监局安徽省经信委关于进一步加强煤矿安全生产应急管理工作的通知”,其中就明确提出了需要建设综合调度应急指挥平台,指出煤矿必须建立覆盖井下各作业地点的应急语音广播系统,提高应急信息传递的及时性。通过对综合调度应急指挥中心的建设,使得在突发情况时可以对区域内所有能扩播的设备都发出预警指令,从而提高信息传递的及时性。

目前,在很多煤矿都完成了综合调度应急指挥平台的建设,但是在井下如果发生紧急情况时,沿线的扩播设备不能直接向地面发起紧急通话,需要跑到沿线的高级话机上才能向地面发起紧急通话。该研究提出了一种音频信号检测的方法,接入的高级话机检测到所联接的扩播设备一定操作规则的音频信号后,可以触发高级话机的紧急通话,从而实现在任何一台扩播设备上都可以通过一定的操作实现向地面的呼叫。

2 原理分析

通过在高级话机中加入音频检测电路,实时的检测沿线扩播设备的音频信号,当检测到音频信号的操作满足程序预设好的规则时,音频检测电路中的单片机I/O口控制继电器的输出,触发高级话机的紧急通话功能,从而实现扩播设备的紧急呼叫功能。

为了提高检测的稳定性及可靠性,需要对所采集到的信号进行滤波处理,只计算所需要的正确的音频信号,而杂波或干扰信号则应该滤除,如何判断信号的正确性将是该研究的一个重点。

电路的滤波一般分为模拟滤波和数字滤波,其中数字滤波器具有高精度高、高可靠性、高稳定性的特点,且具备以下特点:

(1)数字滤波器由软件程序实现,不需硬件,因此不存在阻抗匹配的问题;

(2)对于多路信号的输入通道,可以共用一个数字滤波器,降低设计成本;

(3)只需要修改程序就能方便的改变滤波的特性。

常用的数字滤波法[1]主要有以下几种:

a)限幅滤波法。对于随机干扰,限幅滤波是一种有效的方法。其工作原理为:比较相邻n和n-1时刻的两个采样值y(n)和y(n-1),根据经验确定两次采样的值所能允许的最大偏差,如果两次采样值的差值超过最大偏差范围,则认为y(n)为随机干扰,认为y(n)为非法值,应予删除,删除y(n)后用y(n-1)代替y(n);若采样值y(n)未超过所允许的最大偏差,则认为本次采样值有效。

b)中位值滤波法。中位值滤波法能有效克服偶然因素引起的波动或者由不稳定引起的误码等干扰,对于缓慢变化的被测参数用此办法能够达到有效的滤波效果,但对于快速变化的被测参数一般不宜采用中位值滤波法。其工作原理为:对某一被测参数连续采样n次(一般为奇数),然后将采样值按大小排列,取中间值为本次采样值。

c)算术平均法。该滤波法适用于对一般的具有随机干扰的信号进行滤波,信号特点是信号本身在某一数值范围附近上下波动。其工作原理是:按输入的n个采样数据,寻找一个数值Y,使得Y与各采样值之间的偏差的平方和最小。

d)递推平均滤波法。工作原理为:采用队列作为测量数据存储器,设队列的长度为n,每进行一次测量,把测量到的数据放于队尾,而抛弃原来队首的一个数据,这样在队列中始终就有n个“最新”的数据,当计算平均值时,把队列中的n个数据进行算术平均,就可得到新的算数平均值,每进行一次测量,就可得到一个新的算数平均值。

考虑到井下音频的特性,结合采样的特点,为了确保信号的可靠、稳定,在该研究中采用递推平均滤波法实现对信号的滤波处理。

3 方案设计

在实际应用中,由于高級话机所挂接的扩播设备是不确定的,为了提高该设计的通用性,在信号的输入首先做一个信号的对比,只有满足一定条件的信号才认为是有效的信号,才对该信号进行滤波处理。如下图所示:

所采样的信号从YP端输入后,通过电路的处理输入到单片机的P1.0口,同时在P1.1口取了一个模拟电量的输入,通过调节电位器,可以实现该检测电路在不同数量扩播设备情况下都可适用,通过单片机程序比较P1.0与P1.1之间的电压差,可以有效的判断出是否有音频信号的输入。如果检测到音频信号,P1.0的电压要高于P1.1的电压,从而程序判断该信号为一输入信号,即可进行计数处理。

由于该音频信号采样电路是持续对沿线音频进行采样,以检测沿线扩播设备的打点信号为例,扩播设备的打点信号一般都是以一定周期方波信号,为了计数方便,可在程序及操作上设置采集一定时间内的信号,如采集0.5秒内的打点信号作为一次计数,在该时间范围内将会采集到很多信号。为了保证信号的准确性,在程序上采用递推平均滤波法,每次检测都抛弃队首的一次信号,队尾的一次信号记录到信号数组中,加以算术平均后,进行记录的信号都不会存在太大的误差,从而保证每次给单片机程序计数信号具有较高的稳定性及准确性。

部分程序代码如下:

NValue = A[0].Value[j];

A[AD_ID].SUM = 0;

for(k=0;k

{

A[AD_ID].SUM+=A[AD_ID].Value[k];

}

A[AD_ID].AV = A[AD_ID].SUM/cynum;

AD_ID++;

if(AD_ID>1)

{

AD_ID = 0;

j++;

j%=cynum;

}

4 结束语

在实际应用中,通过在规定的时间内操作沿线扩播设备的打点或通话,程序对检测到的信号进行算术平均后,对满足条件的信号作为一次计数,当计数次数及操作的规则满足程序预设好的条件,则控制单片机的I/O进行高低电平的转换,从而控制继电器的输出,触发高级话机的紧急通话功能。比如在5秒之内,按下沿线话机的打点按键,且每次按下的时间不超过0.5秒,且间隔不高于0.5秒的一种操作即可触发继电器的输出。同时,通过单片机的程序,可以预设多种操作规则,满足井下工作人员的操作习惯,且与现有煤矿的预警指令规则不冲突,大大的提高了实用性及可靠性。目前基于该音频信号检测的话机在淮北、皖北等矿业集团的多个煤矿得到了广泛的应用,提高了井下扩播设备的应急通信能力。

参考文献:

[1]吴鉴鹰总结的单片机常用算法[DB/OL].http://bbs.elecfans.com/forum.php?mod=viewthread&tid;=434969&fromuid;=843969.

作者简介:李金(1986-),云南玉溪人,主要从事煤矿产品的研发工作。

家电之家©部分网站内容来自网络,如有侵权请联系我们,立即删除!
信号 文章 音频
你该读读这些:一周精选导览
更多内容...

TOP

More