1. 应用背景
该软件实现对超声波离散波形的首波点的时间判断,包括波形首波的起点和首播的波峰。
该软件可用于检测基桩完整性,判定桩身缺陷的程度及位置。核心算法既可用于灌注桩和打入桩,也可用于高架桥墩的测试
2. 波形类别
一级分类 |
二级分类 |
备注 |
无法检测 |
发射波周期与采样周期不符要求 |
要求:采样率>=10 (发射波周期/采样周期) |
检测不到波形 |
||
回波强度过低,达不到可靠性要求 |
||
噪音过大,无法检测 |
||
可检测 |
返回首波起始点和峰值点坐标 |
坐标计数由1开始 |
3. 检测原理
1)信号噪声水平评估, 详见ProcessNoiseVerify函数;
2) 极值点查找;
3) 极值点位置精细化;
4) 首峰值位置判定;
5) 起始位置判定;
6) 微弱噪声下的起始位置判定。
4. 识别效果
首波判断准确率达99.5%以上,对微弱反射信号有极强的适应性。
5. 库函数接口
5.1 接口简介
定义类CWaveDetect及接口函数void CWaveDetect:: ProcessMain(int* panResult,int* panSigIn, int nLength, float* pafParas),其中panResult为输出结果, panSigIn为输入RGB图像数据, nLength为输入信号长度, pafParas为发射波周期及采样周期,单位为毫秒。
5.2 例程
int nNum,*panSig;
nNum = (int)m_arrWave.GetSize();
panSig=new int[nNum]; // 获取信号数据
for (int i=0; i
panSig[i]=m_arrWave[i];
//波形检测判断
int anResult[4]; // 保存结果
CWaveDetect clWave;
clWave.ProcessMain(anResult,panSig,nNum,m_afParas);
// 结果输出
CString strOut;
if (anResult[0]==0){ // 无法检测
if (anResult[1]==1)
strOut=_T(“发射波周期与采样周期不符要求”);
else if(anResult[1]==2)
strOut=_T(“检测不到波形”);
else if(anResult[1]==3)
strOut=_T(“回波强度过低,达不到可靠性要求”);
else if(anResult[1]==4)
strOut=_T(“噪音过大,无法检测”);
else
strOut=_T(“未知原因,无法检测”);
m_nWaveStart =1;
m_nWavePeak =1;
}
else{
strOut.Format(_T(“起点坐标-%d, 极点坐标-%d”),anResult[2],anResult[3]);
m_nWaveStart =anResult[2];
m_nWavePeak =anResult[3];
}
6. 开发者联系方式
blog: blog.csdn.net/yuntin99
qq: 1913440946