查字典论文网 >> 基于FPGA的窗口Fourier变换在超声波传播时间检测上的应用

基于FPGA的窗口Fourier变换在超声波传播时间检测上的应用

小编:

基于FPGA的窗口Fourier变换在超声波传播时间检测上的应用

引言 1 超声波理论介绍

超声波通过超声波换能器发送后,在流体介质中传播。在经过一段传播时间后,到达接收端,并将振动信号转化为电压信号。在超声波传播过程中,信号会被一定程度衰减,并且在接收电路中还会引入噪声,这些都会对测量精度造成影响。

我们假设s(t)是发送信号,那么经过一段传播时间Td后的接收到的信号为:

r(t)=αs(t-Td)+n(t)

其中α为衰减系数,n(t)是零均值噪声。我们使用频率和相位的方法来表示为

r(t)=A(t)cos(2пfr t+φr)+ n(t)

其中fr和φr分别为谐振频率和相位偏转角,而A(t)表示信号的包络。

A(t)=A0tmexp(-t/u)

参数u由探头特性决定,而m的范围为区间(1,3)[1]。

因此,必须准确检测到接收波形的起始位置,才可以正确计算出超声波的传播时间。

2 窗口傅立叶变换介绍

要准确计算声波起始位置,则需要提取信号包络。而常用的包络提取方法是Hilbert变换[1],这种方法对噪声的抑制能力并不理想。因为超声波接收信号的频率只在探头谐振频率附近很窄的频带内,所以我们只需要对这一窄带内的信号进行分析。而对某一频率信号分析最理想的方法就是Fourier变换。传统的Fourier变换是将全部时域信号映射到频域内,再对感兴趣的频率做分析,这样时域内任何局部的变化都会引起整个频域内全局的改变。因此传统的Fourier变换只能观察到某个频率信号的特征,而不能了解这个频率是由哪段时间信号做出的贡献。

要想知道信号的局部频率成分,那么首先要将给定的信号与一个窗函数相乘,截取出期望的部分,然后再对截取部分进行Fourier变换,这种时-频兼顾的分析方法称为窗口Fourier变换,即WFT[4]。

3 传播时间的计算方法 从图1中可以看出,超声波接收信号的包络曲线只表现出40kHz窄带信号的幅值特征,而其他频带的噪声都被有效衰减掉了。这样我们在幅度包络曲线上设定一个门限值,使其小于超声波接收到信号的第一个周期的包络幅值,做为声波信号阈值。当包络值大于此阈值时,说明超声波信号已经接收到,从超声波发射点到阈值以前的时间就是超声波传播的阈值时间tTH,再通过查找此阈值位置所对应的相位就可以计算出信号起始点到阈值位置声波所传播的时间tPD。于是,超声波真正的传播时间应为tFLY=tTH-tPD。

4 实现方式

在此方法中,以单片机MCU为主控制芯片,由它发送指令来控制FPGA完成超声波信号发送,计时器记时,AD采集,Fourier计算等任务。FPGA芯片采用xilinx公司的SPATAN3E芯片。该芯片最高频率240MHz,具有20个硬件乘法器,可以同时进行10路以上的Fourier变换计算。当所有的Fourier变换算完后,FPGA将计算后的结果保留于SRAM中,再通信给MCU单片机进行包络幅值和相位角的计算,以及飞行时间的计算。系统的硬件逻辑框图如下所示:

在此平台上,既可以发挥FPGA的同步控制能力和并行运算的速度优势,又可以利用MCU的强大外围设备功能,因此可以做到速度与功能的兼顾。

5 结论

使用WFT计算超声波的包络值与传统的Hilbert变换的方法比较,可以有效降低噪声干扰,确定超声波起始波形的位置。再利用相位对计时时间进行修正,就可以准确计算出超声传播的时间。但WFT的运算量较大,因此采用FPGA的并行计算方式可以大大降低计算时间。此方案可以广泛应用于以超声波传播时间为测量基础的超声波测距,超声波风速,流量计中。

热点推荐

上一篇:苏教版生物新教材新在何处

下一篇:如何对幼儿进行德育教育论文 幼儿园关于德育教育之类的论文

优秀生活中的化学心得体会大全(19篇) 最新舞蹈教学总结报告(十三篇) 2023年年度乡镇环保工作总结汇报(优秀9篇)