声音延迟的分辨率与空间分辨率之间的关系
通过相关运算可以获得声音传播的延迟,近而获得声源与接收MIC之间的距离。
由于声音信号是通过离散时间采样,因此对于时间 延迟的分辨率就会受到采样时间的影响。在直线轨道上声音延迟信号分析 推文中,给出了是结果,如下图所示。可以看出时间延迟曲线呈现明显的台阶。这就是因为采样时间所引起的时间分辨率引起的。
在实际工程中,往往参与卷积的两个信号实现已知,比如在利用声音定位的时候,发送声音信号往往是事先确定好的固定的Chirp信号,每次参与计算的新的信号是接收到的回声信号。所以在上面卷积的快速算法中,对于已知信号的FFT可以事先计算好并存储,实际运算中只需要完成对新采集到信号的FFT计算,以及对乘积结果的反FFT计算。
最后需要补充一下,在利用上面公式计算的时候,还需要将两个信号通过补0,变成长度等于两个序列长度之和减一。
在下面程序中,首先简单的将两个等长序列都补零成两倍的长度。然后按照前面公式计算出卷积结果。
def procdatafft(send, rece):
sm = mean(send)
rm = mean(rece)
send = [d - sm for d in send]
rece = [d - rm for d in rece]
sendspace = zeros(len(send) * 2)
sendspace[0:len(send)] = send
recespace = zeros(len(send) * 2)
recespace[0:len(send)] = rece
cor = list((fft.ifft(fft.fft(sendspace) * conj(fft.fft(recespace)))).real)
maxpos = cor.index(max(cor))
return maxpos
使用快速计算,比直接在时域中进行卷积速度大大提高了。
通过计算获得100个采样数据相关峰值点,使用FFT需要大约:0.36秒钟;而使用普通的相关运算则需要200秒左右。
通过FFT得到的相关结果峰值位置
使用FFT计算100点相关结果只需要0.37秒
直接计算100点相关结果则需要192秒左右
零阶保持、一阶保持、理想插值分别对应的卷积信号是矩形信号、三角信号以及sin c ( t ) sin cleft( t right)sinc(t)信号等。
不同的离散时间信号重建成连续时间信号的方法
使用理想插值所获得的结果更加平滑,但计算起来相对比较复杂。但如果是从离散时间信号的傅里叶变换结果中恢复插值信号的话,则有一个非常方便的方法,那就是通过对数据的DFT结果补零,获得更长的频谱数据,再通过反离散傅里叶变换,就可以得到原来数据的理想插值结果了。具体的 原理在信号与系统课程中会进行介绍的。
由于前面在快速计算相关结果的时候,就利用了快速傅里叶变换,所以可以在最后一步进行反傅里叶变换的时候,先进行补零,然后在进行
def procdatafftinterpolation(send, rece, interptime):
sm = mean(send)
rm = mean(rece)
send = [d - sm for d in send]
rece = [d - rm for d in rece]
sendspace = zeros(len(send) * 2)
sendspace[0:len(send)] = send
recespace = zeros(len(send) * 2)
recespace[0:len(send)] = rece
fftresult = fft.fft(sendspace) * conj(fft.fft(recespace))
fftexpand = zeros(len(send) * interptime * 2, dtype=complex64)
fftexpand[0:len(send)] = fftresult[0:len(send)]
fftexpand[-len(send):] = fftresult[len(send):len(send)*2]
cor = list(fft.ifft(fftexpand).real)
maxpos = cor.index(max(cor))
return maxpos
下面给出了插值10倍之后所获得的相关峰值位置结果,对比原始计算方法,可以看到经过插值之后的结果明显平滑多了。通过插值后的结果所获得的空间分辨率就从原来的3.6厘米降低到3.6毫米了。
经过空间插值细化后10倍后的相关峰值位置计算结构
由于实验环境是在室内,存在着很多反射波的干扰,所以当距离远了之后,距离测量出现了很多的波动,它们反映了空间中的很多驻波干扰。
随着插值倍数增加,所得到延迟曲线变化
通过简单的差值就可以轻松提高测距的空间分辨率,所需要的代价就是计算时间加长了。下面图给出了插值的倍数与结果计算消耗的时间之间的关系,整体上呈现线性比例关系。
细化倍数和计算时间
室内环境反射波对于测量结果的影响
由于是在室内进行实验,麦克风所接受到的声音信号除了直接来自于声源之外,可能还包括有四周墙壁的反射信号。如果声源距离比较近,四周的反射声波强度受到衰减,对于测量结果影响较小。
下面通过控制接受麦克的不同方向,考察一下测量结果是否受到影响。
使用舵机控制MIC的方向
下面是麦克距离音箱30厘米左右,方向从左到右旋转180°,所测到得到的声音延迟时间。
不同指向对应的相关延迟结果
延迟时间对应的最大值和最小值分别是:
在10kHz的采样率下,上述时间差所对应的距离变化为:
这个3厘米的变化距离和麦克风转动过程中所引起的距离变化大体相当,说明此事四周的反射波对于测量结果影响不大。同时所使用的MIC的方向指向性并不强,可以对来自于180°方向的声波都能够很好的探测。
下面是分别将麦克在距离音箱10厘米和50厘米处重新测量不同的指向对于测距结果的影响。
在10厘米距离下麦克不同方向对应的声音延迟
在50厘米距离下麦克不同方向对应的声音延迟
上一篇:使用音响与麦克风进行声波测距离
下一篇:数字万用表判断绝缘栅场效应管的好坏
推荐阅读最新更新时间:2024-11-10 10:00
- AKD4951EG-B,AK4951EN 24 位音频编解码器评估板
- SPX-14813,基于 SGP30 的空气质量传感器 (Qwiic) 开发套件
- 智能水杯
- LTC3621HMS8E 1.2Vout、强制连续模式、1MHz 同步降压稳压器的典型应用
- 用于电池充电器的 1.8V、2.5V DC 至 DC 单路输出电源
- OP284FSZ-REEL7 缓冲网络补偿容性负载的典型应用
- 使用 NXP Semiconductors 的 ISP1105W 的参考设计
- AM30EW-4812DZ ¦12V 单路输出 DC/DC 转换器的典型应用
- 用于恒流吸收器的 NCP431A 可编程精密基准的典型应用
- LTC2992IDE 双路宽范围功率监视器的典型应用