需要用 plot( axes, "on"); 实现。
0714 今天只完成了B-scan缩放问题。
0715,完成了B-scan相关的缩放工作
考虑通过设定每page显示的GPR 道数,以及 可以缩放2种模式。
还有小bug
新的GPR都是32bit,之前的大多为16bit,差别在于读取时字节长度不同,前者为4bytes,后者为2bytes。
处理,判断字节长度,如果为32bit,则数据类型用'long', 否则用'short'
datatype = 'long';%'uint32';
DATA.d=fread(fid,datasize,datatype);
%datasize :[samples per scan, A-scan number]
rd7的rad头文件较rd3多, 在后续参数读取时报错。可以注释掉。
后面修改。
rd3的 rad文件
rd7的文件
针对32bit的特点,将mala和dzt 的文件读取问题都解决。写的功能,仅测试了rd3和dzt。 rd7格式,回头处理。
习惯了LabVIEW的截图,这里也做了一个界面截图。看中部下方的小红点了吧
后面做一个设置,自动将B-scan生成。
西南交大的熊洪强(他在科学网上开放了代码,主要做信号后处理,做的非常好!!) 对FK函数做了优化。我在此基础上进行功能测试
其中有一个fft2 为系统的2D fft变换,但之前做ANN建模自己定义了一个fft2的函数,导致一直报错。
经过调试,程序能正常运行,但是偏移效果没有展示出来。
dz=(vmig)/2*Range/(ns-1); 这一句未理解。。。
vmig为速度,Range为总时窗,ns为A-scan点数。 这里速度为什么要除2.。。
1如果是计算dz,可以理解为 v/t/2 , 然后通过ns-1给它折算到dz上。
2 其次,做的是局部处理,如局部时段,则f-k偏移对应的时间 也不对。
个人理解为指定时间段的fk处理。。。
------------------------------------------
就是v*t/N ,t=trange/2,N为采样点。
但处理后么有效果。
找到原因了,Dr. Xiong 对 别人的代码简化了,将深度信息丢失。。。用源码来调试。。
0721 通过测试把F-K使用弄清楚了
voh 速度模型 ,第一列为 速度,第二列为厚度。 这个厚度也是估算的。 在ReflexW中就是用的时间。
第一行为 第一层的速度和厚度; 后面一行是 half base。
2层模型
1层模型 (0 为half base)
功能虽然简单,但为了方便使用,需要多次测试。
07/25 fk封装好
参考别人的代码,滤波器设计没有调用matlab的函数,自己做的 。还没有测试。
把陷波器测试好了,通过选择b-scan 图谱中的点来选择trace,根据fft的结果来选择陷波器频率。
最近效率太低,
原来已经添加的函数也不能用了。。
函数中 多了一个end,导致function功能被屏蔽
比如plot 的figure图不能出来,ginput 卡住,导致滤波器无法选择截止频率。
inputdlg 也不能弹出,无法获得输入。
滤波器调试 花费大量的时间都是在这样的问题上。
各种问题被我遇到了。
--- 网页中有部分汉字不能显示,如 有。 实际上别人是可以看到的。
杨哲把这个功能理解和落实。我把它封装起来。
使用过程:
1) GPR信号预处理,
2) 选择测试区域,寻找阈值。目前阈值是人工确定;
3)对预处理后的数据,使用cov进行处理,并根据阈值,判断病害位置。
卷积结果,寻找阈值。
有时候 不能3D可视化,