掌桥专利:专业的专利平台
掌桥专利
首页

基于STM32和小型麦克风阵列的无人机检测定位方法

文献发布时间:2023-06-19 19:30:30


基于STM32和小型麦克风阵列的无人机检测定位方法

技术领域

本发明涉及声音信号检测和定位领域,特别是一种基于STM32和小型麦克风阵列的无人机检测定位方法。

背景技术

随着无人机的价格逐步降低,使用无人机的准入门槛逐渐降低,这造成了全球范围内无人机应用混乱、监管困难的现状,致使无人机“乱飞”、“黑飞”事件频繁发生,严重影响公共安全和社会稳定。如果当时无人机携带炸弹,将会造成不可预测的严重后果。目前国内对无人机的监管主要体现在出台相关的无人机限飞政策,包括《民用航空法》、《关于民用无人机管理有关问题的暂行规定》、《通用航空飞行管制条例》等多部法规,通过法律一定程度地限制无人机滥飞的现象,同时对无人机的反制技术也成为阻止无人机“乱飞”、“黑飞”的有效手段。

在无人机检测问题中,目前主要的无人机检测方式包括雷达探测、无线电信号探测、声信号探测、图像探测以及多种手段协同探测。民用无人机通常为“低慢小无人机”,即飞行高度低、速度慢、体积小的无人机。雷达作为主流的空中目标探测手段,针对无人机目标时效果并不理想,因为低慢小无人机多采用非金属材料,几何尺寸小,飞行速度较慢,对空警戒雷达在远距离很难及时捕获目标;无线电探测技术难以探测无线电静默的无人机,在无线电信号复杂的区域探测性能较低。当无人机被墙体、建筑遮挡时,图像探测方法的精度会大大降低,这限制了它的应用。现阶段民用无人机主要为旋翼式无人机,在飞行中螺旋桨切割气流、电机转动都会发出一些噪声,这些噪声是不可能完全消除的,所以声信号探测是十分可行的无人机探测手段。

迄今为止,基于麦克风阵列的声源定位技术大致可以分为基于可控波束形成的声源定位技术、基于信号到达时间差的声源定位技术以及基于空间谱估计的声源定位技术三大类。发明一种基于双麦克风阵列的声源定位系统及其方法(申请号:202111208034.6申请日:2021-10-18),通过建立双麦克风阵列坐标轴,利用建立的双麦克风阵列坐标轴,测得方位角以及第一麦克风阵列和第二麦克风阵列之间的距离,计算不同象限位置的声源距第一麦克风阵列的距离,计算声源在双麦克风阵列坐标轴内的位置坐标,但是其对复杂环境和远距离声源定位能力较弱,不能对无人机进行高效精确的检测定位。发明一种基于双麦克风阵列的声源定位系统及其方法(申请号:202010272248.9申请日:2020-04-09),利用由n个麦克风阵元构成的麦克风阵列采集声源信号;将麦克风阵列中的某一个麦克风作为参考麦克风,求取其余麦克风与参考麦克风构成的麦克风对的互相关函数;抽取每个麦克风对互相关函数的前N个最大峰值作为真实峰值的候选量,将这若干个峰值候选量对应的波程差以不同的排列组合形式代入求解声源坐标的数学关系式中,通过利用l2范数设定目标函数,局部搜索出声源信号在直接路径下获得的声源坐标,提高实际声源信号的定位准确度,降低了多径、噪声对算法测向性能的影响,但是声源确定和远场定位能力较弱,不能适用于无人机的监测定位。

发明内容

本发明的目的在于提供一种检测定位迅速、实时性强、准确率高的无人机检测定位方法。

实现本发明能够目的的技术解决方案为:一种基于STM32和小型麦克风阵列的无人机检测定位方法,包括以下步骤:

步骤1、利用声音传感器采集声音信号;

步骤2、利用FFT算法对采集的信号进行处理;

步骤3、利用改进谐波检测算法对步骤2处理后的数据进行判断;

步骤4、如果判断为无人机信号,则利用GCC-PHAT算法进行不同阵元的时延估计;

步骤5、根据步骤4中得到的时延估计和麦克风阵元几何关系,计算三个麦克风阵列中不同的无人机坐标;

步骤6、利用步骤5中三个麦克风阵列得到的麦克风坐标,利用垂心定位算法进一步精确估计无人机的坐标。

进一步地,所述的STM32采用型号为STM32H743XIT6的芯片。

进一步地,步骤1所述的利用声音传感器采集声音信号,具体如下:

步骤1.1、将声音传感器按照预定的几何位置布置,组成麦克风阵列,连接到STM32开发板上,确定能采集到声音信号;

步骤1.2、将三组麦克风阵列按照预定的几何位置布置,组成分布式的麦克风阵列系统;

步骤1.3、使用分布式的麦克风阵列系统对无人机声音信号进行采集和检测,如果检测到无人机声音信号,则三个麦克风阵列分别对无人机进行坐标定位;

步骤1.4、三个麦克风阵列分别将结果传入总处理的STM32;

步骤1.5、使用STM32自带的ADC转换模块,将模拟电压转换成数字量存储在数组之中。

进一步地,步骤2所述的利用FFT算法对采集的信号进行处理,具体如下:

步骤2.1、采用库移植的方法,将DSP库移植到STM32上,选择库arm_cortexM7lfdp_math.lib,将库文件arm_cortexM7lfdp_math.lib加入到工程之中,然后添加DSP所需的头文件路径,保证工程的可编译;

步骤2.2、开启FPU硬件加速,进行高速的浮点数运算,对采集到的声音信号数据进行FFT运算;

当FPU_PRESENT=1且FPU_USED=1时,编译时加入启动FPU的代码,使用FPU进行简单的加减乘除,使用固件库自带的arm_math.h,根据编译控制项决定使用的函数方法,如果没有使用FPU,则调用keil的标准math.h头文件中定义的函数;如果使用了FPU,则使用固件库自带的优化函数;

为了使用STM32H7的arm_math.h,需要定义ARM_MATH_CM7;如果不使用CMSIS的库,则调用Keil自带的math.h;另外,定义控制项CC_ARM在某些数学函数中需要使用VSQRT指令,因此需要添加宏定义ARM_MATH_CM4,CC_ARM;如果使用DSP库函数的文件则需要添加#include"arm_math.h"来调用DSP库的API。

进一步地,步骤3所述的利用改进谐波检测算法对步骤2处理后的数据进行判断,具体如下:

步骤3.1、将无人机信号在0-1000Hz内的频率划分为五个特征频段,分别为[65,195]、[195,325]、[325,455]、[455,585]、[585,715];

步骤3.2、使用特征点的方法,将特征频段中最大的两个极大值的频率求平均,得到的值即为特征点的频率;

步骤3.3、如果得到信号基频中心在130Hz附近,并且每个特征频段中的特征点大约为基频的整数倍,则判定该声音信号为无人机信号。

进一步地,步骤3.3中判定该声音信号为无人机信号时,由于数据过少并且信号有波动,容易出现某个特征点不在基频整数倍附近的情况,所以在实际应用中允许有一个坏点的存在;

由于只使用了4096点采样点进行判断,在采样率为44100Hz时,每秒会进行十次判断,由于判断次数过多,如果不加以处理,会影响判断的准确性,所以取连续的五组数据进行连续判断,如果其中有三组或三组以上都符合无人机声音信号特征,则判断为有无人机信号,反之则判断为没有无人机信号。

进一步地,步骤4所述的如果判断为无人机信号,则利用GCC-PHAT算法进行不同阵元的时延估计,具体如下:

步骤4.1、如果判断为无人机信号,则将两个麦克风阵元m

设定两个麦克风阵元m

设定噪声v

R

根据上面两个公式可以得到其互相关函数如下:

因为噪声v

R

可以看出当τ=(τ

τ

步骤4.2、在基本互相关的基础上加上PHAT加权函数,减少噪声对时延估计的干扰,增加时延估计的准确性,公式为:

进一步地,步骤5所述的根据步骤4中得到的时延估计和麦克风阵元几何关系,计算三个麦克风阵列中不同的无人机坐标,具体如下:

步骤5.1、对声源距离进行估计得到:

其中R为声源到麦克风阵列的距离,c为声速,无人机声源到达麦克风m

步骤5.2、对俯仰角估计得到:

步骤5.3、得到坐标估计:

进一步地,步骤6所述的利用步骤5中三个麦克风阵列得到的麦克风坐标,利用垂心定位算法进一步精确估计无人机的坐标,具体如下:

步骤6.1、采取三组四元十字麦克风阵列M

步骤6.2、根据步骤5,三个麦克风阵列得到三组坐标(x

步骤6.3、根据垂心定位算法,通过寻找垂足D、E两点,确立直线AD、BE的方程,求得AD、BE的交点即为垂心S的坐标。

进一步地,步骤6.3所述的根据垂心定位算法,通过寻找垂足D、E两点,确立直线AD、BE的方程,求得AD、BE的交点即为垂心S的坐标,具体如下:

步骤6.3.1、直线BC的方程为:

其中

因为AD⊥BC,所以D是A到边BC最近的一个点,A到BC的距离为:

令d

则D(x

步骤6.3.2、同理可以求得E(x

步骤6.3.3、垂线AD、BE的方程为:

步骤6.3.4、求取两垂线AD、BE的交点即为ΔABC的垂心,即无人机声源S的坐标(x,y,z):

与现有技术相比,本发明的显著优势在于:(1)本发明采用分布式麦克风阵列系统的设计,使用三个麦克风阵列同时定位,然后进行数据融合,利用垂心定位算法进一步精确无人机定位坐标,增加了硬件需求,提高了定位精度;(2)采用FPU进行浮点数的运算,提高了STM32进行FFT时的速度;(3)减少了判断所需的采样点数,提出特征点的概念,减少了检测时间的同时保证了检测的准确率;(4)使用多个麦克风阵列组成了分布式麦克风阵列系统,利用垂心定位算法同时使用了三个麦克风阵列的定位结果,减少了单个麦克风阵列在定位时的误差。

附图说明

图1是本发明基于STM32和小型麦克风阵列的无人机检测定位方法的流程示意图。

图2是本发明实施例中无人机声音信号4096点采样FFT得到的频谱图。

图3是本发明实施例中添加噪声的基本互相关时延估计图。

图4是本发明实施例中添加噪声的GCC-PHAT时延估计图。

图5是本发明实施例中分布式麦克风阵列系统示意图。

具体实施方式

下面结合附图和具体实施例,对本发明做进一步的详细说明。

结合图1,本发明一种基于STM32和小型麦克风阵列的无人机检测定位方法,包括以下步骤:

步骤1、利用声音传感器采集声音信号,具体如下:

步骤1.1、将声音传感器按照预定的几何位置布置,组成麦克风阵列,连接到STM32开发板上,确定能采集到声音信号;所述的STM32采用型号为STM32H743XIT6的芯片;

步骤1.2、将三组麦克风阵列按照预定的几何位置布置,组成分布式的麦克风阵列系统;

步骤1.3、使用分布式的麦克风阵列系统对无人机声音信号进行采集和检测,如果检测到无人机声音信号,则三个麦克风阵列分别对无人机进行坐标定位;

步骤1.4、三个麦克风阵列分别将结果传入总处理的STM32;

步骤1.5、使用STM32自带的ADC转换模块,将模拟电压转换成数字量存储在数组之中。

步骤2、利用FFT算法对采集的信号进行处理,具体如下:

步骤2.1、采用库移植的方法,将DSP库移植到STM32上,选择库arm_cortexM7lfdp_math.lib,将库文件arm_cortexM7lfdp_math.lib加入到工程之中,然后添加DSP所需的头文件路径,保证工程的可编译;

步骤2.2、开启FPU硬件加速,进行高速的浮点数运算,对采集到的声音信号数据进行FFT运算;

当FPU_PRESENT=1且FPU_USED=1时,编译时加入启动FPU的代码,使用FPU进行简单的加减乘除,使用固件库自带的arm_math.h,根据编译控制项决定使用的函数方法,如果没有使用FPU,则调用keil的标准math.h头文件中定义的函数;如果使用了FPU,则使用固件库自带的优化函数;

为了使用STM32H7的arm_math.h,需要定义ARM_MATH_CM7;如果不使用CMSIS的库,则调用Keil自带的math.h;另外,定义控制项CC_ARM在某些数学函数中需要使用VSQRT指令,因此需要添加宏定义ARM_MATH_CM4,CC_ARM;如果使用DSP库函数的文件则需要添加#include"arm_math.h"来调用DSP库的API。

步骤3、利用改进谐波检测算法对步骤2处理后的数据进行判断,具体如下:

步骤3.1、将无人机信号在0-1000Hz内的频率划分为五个特征频段,分别为[65,195]、[195,325]、[325,455]、[455,585]、[585,715];

步骤3.2、使用特征点的方法,将特征频段中最大的两个极大值的频率求平均,得到的值即为特征点的频率;

步骤3.3、如果得到信号基频中心在130Hz附近,并且每个特征频段中的特征点大约为基频的整数倍,则判定该声音信号为无人机信号。

进一步地,步骤3.3中判定该声音信号为无人机信号时,由于数据过少并且信号有波动,容易出现某个特征点不在基频整数倍附近的情况,所以在实际应用中允许有一个坏点的存在;

由于只使用了4096点采样点进行判断,在采样率为44100Hz时,每秒会进行十次判断,由于判断次数过多,如果不加以处理,会影响判断的准确性,所以取连续的五组数据进行连续判断,如果其中有三组或三组以上都符合无人机声音信号特征,则判断为有无人机信号,反之则判断为没有无人机信号。

步骤4、如果判断为无人机信号,则利用GCC-PHAT算法进行不同阵元的时延估计,具体如下:

步骤4.1、如果判断为无人机信号,则将两个麦克风阵元m

设定两个麦克风阵元m

设定噪声v

R

根据上面两个公式可以得到其互相关函数如下:

因为噪声v

R

可以看出当τ=(τ

τ

步骤4.2、在基本互相关的基础上加上PHAT加权函数,减少噪声对时延估计的干扰,增加时延估计的准确性,公式为:

步骤5、根据步骤4中得到的时延估计和麦克风阵元几何关系,计算三个麦克风阵列中不同的无人机坐标,具体如下:

步骤5.1、对声源距离进行估计得到:

其中R为声源到麦克风阵列的距离,c为声速,无人机声源到达麦克风m

步骤5.2、对俯仰角估计得到:

步骤5.3、得到坐标估计:

步骤6、利用步骤5中三个麦克风阵列得到的麦克风坐标,利用垂心定位算法进一步精确估计无人机的坐标,具体如下:

步骤6.1、采取三组四元十字麦克风阵列M

步骤6.2、根据步骤5,三个麦克风阵列得到三组坐标(x

步骤6.3、根据垂心定位算法,通过寻找垂足D、E两点,确立直线AD、BE的方程,求得AD、BE的交点即为垂心S的坐标,具体如下:

步骤6.3.1、直线BC的方程为:

其中

因为AD⊥BC,所以D是A到边BC最近的一个点,A到BC的距离为:

令d

则D(x

步骤6.3.2、同理可以求得E(x

步骤6.3.3、垂线AD、BE的方程为:

步骤6.3.4、求取两垂线AD、BE的交点即为ΔABC的垂心,即无人机声源S的坐标(x,y,z):

实施例1

本实施例布置如图5所示的分布式麦克风阵列系统,对无人机信号进行检测定位。图2是无人机声音信号4096点采样FFT得到的频谱图,图3是添加噪声的基本互相关时延估计图,图4是添加噪声的GCC-PHAT时延估计图。表是无人机声源检测误差表,表2是无人机声源定位误差表。

表1

表2

从表1、表2可知,本发明一种基于STM32和小型麦克风阵列的无人机检测定位方法,使用三个麦克风阵列同时定位,然后进行数据融合,利用垂心定位算法进一步精确无人机定位坐标,增加了硬件需求,减少了单个麦克风阵列在定位时的误差,提高了检测和定位的精度。

相关技术
  • 一种基于双麦克风阵列的声源定位方法
  • 一种基于麦克风阵列的鸣笛车辆定位方法
  • 基于小型超声传感器阵列无人机的空间站气体泄漏检测定位方法
  • 基于STM32的麦克风阵列音频采集系统
技术分类

06120115938278