FPGA在实时声呐定向系统中的应用
1 引言
在实时声呐信号和语音信号处理中,常常需要使用几个通用的DSP处理器件才能达到实时处理的目的。但是在很多情况下,例如,在手持系统、水下系统等应用中,系统的功耗是有限的,这就限制了通用DSP器件的使用。一个可选择的方案是使用FPGA进行声呐信号处理。FPGA在信号处理速度、功耗方面都比通用的DSP器件更具有优势。
在本系统中,采用的是利用FPGA实现语音信号或者声呐信号定位。在声呐定位的算法中,常用的方法有基于子空间的方法(例如MUSIC)、基于空间或然性技术、到达时间差估计TDOA方法等,其中,到达时间延迟估计方法是最常用的方法,本文即采用这种方法。TDOA估计最常用的方法是广义互相关(GCC)方法,本文采用了CORDIC实现傅里叶变换后的谱分量的幅值和相角的计算,使用GCC估计声源的方向。
2 系统设计
本系统中实现的是两路传感信号的处理,这是一个最简化的结构。实际中可以采用多个传感器构成的传感阵列进行阵列信号处理,以达到更精确估计声源方向的目的。
2.1 GCC算法
设两个传感器的输入信号为s1(t)和s2(t),信号中包含了噪声、回声、以及侍估的有用信号。用GCC方法进行时延估计的方框图如图1所示。
除运算和超越函数等的计算。
设向量[x0、y0]T, 旋转角度θ后,结果为向量[xn、yn]T,它可以用下式表示
稍作变换则有:
在CORDIC算法中,旋转是采用迭代的方法实现的,每一步迭代旋转一个预定的角度αi,引入旋转方向参数后,可以得到经过n步迭代后的旋转角度:
当tanai=2-1,i=0,1,2,...,n−1时,则旋转后的坐标xi+1、yi+1和每一步旋转的角度zi+1可以分列写成
经过n(n→)步旋转后,得到:
当初始条件为x0=1, y0=0,z0=θ时,则有:
其中Kn为一常数。
这样就可以利用迭代计算同时计算出 è 的正弦、余弦函数值了。
实际上,根据该原理,通过设置不同的边界值,不仅仅可以求出正弦、余弦函数,还可以计算旋转角度、矢量幅度、极坐标与直角坐标之间的转换等。我们采用 CORDIC 算法实现从傅里叶变换后谱的实部和虚部表示到幅度、相角表示的转换。
3 FPGA 实现
一般的声呐应用系统中,需要一个传感器阵列才能准确地在三维空间中确定目标方向。本系统只用两个传感器,故只能确定声源方向在三维空间的一个双曲面上,如果将多个传感器对组成一个系统,这样通过多个双曲面相交,可以在三维空间中准确定位出声源的方向。但是,当声源和两个传感器在同一个平面上时,就可以确定方向。系统实现框图如图2所示。
相关文章
- 2022-12-09微小尺度流动应力波动尺度效应
- 2023-03-29SolidWorks在立铣刀三维建模及工程图中的应用
- 2023-09-22皮带秤控制衡器选择法剖析
- 2023-10-27小波包自适应阈值语音降噪新算法
- 2023-06-11漏磁检测的仿真和实验研究
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。