MATLAB 开发 GPR app记录

1 基本语法问题

1.1 如何 hold on数据

 需要用 plot( axes, "on"); 实现。

MATLAB 开发 GPR app记录_第1张图片

0714 今天只完成了B-scan缩放问题。

0715,完成了B-scan相关的缩放工作

考虑通过设定每page显示的GPR 道数,以及 可以缩放2种模式。

还有小bug

MATLAB 开发 GPR app记录_第2张图片

MATLAB 开发 GPR app记录_第3张图片

1.2 数据格式问题

新的GPR都是32bit,之前的大多为16bit,差别在于读取时字节长度不同,前者为4bytes,后者为2bytes。

处理,判断字节长度,如果为32bit,则数据类型用'long', 否则用'short'

 datatype = 'long';%'uint32';   
DATA.d=fread(fid,datasize,datatype);
%datasize  :[samples per scan, A-scan number]

1.3 rd7 文件的头文件读取存在问题

rd7的rad头文件较rd3多, 在后续参数读取时报错。可以注释掉。

后面修改。

MATLAB 开发 GPR app记录_第4张图片

rd3的 rad文件

 MATLAB 开发 GPR app记录_第5张图片

 rd7的文件

  针对32bit的特点,将mala和dzt 的文件读取问题都解决。写的功能,仅测试了rd3和dzt。 rd7格式,回头处理。

1.4  界面截图

    习惯了LabVIEW的截图,这里也做了一个界面截图。看中部下方的小红点了吧

    后面做一个设置,自动将B-scan生成。

MATLAB 开发 GPR app记录_第6张图片

1.5 F-K偏移

  西南交大的熊洪强(他在科学网上开放了代码,主要做信号后处理,做的非常好!!) 对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。

MATLAB 开发 GPR app记录_第7张图片

2层模型

MATLAB 开发 GPR app记录_第8张图片

1层模型  (0 为half base)

 功能虽然简单,但为了方便使用,需要多次测试。

07/25 fk封装好

MATLAB 开发 GPR app记录_第9张图片

MATLAB 开发 GPR app记录_第10张图片  做F K 偏移前后,将原来的钢筋点还原了。

1.6 滤波器设计 0727

    参考别人的代码,滤波器设计没有调用matlab的函数,自己做的 。还没有测试。

   把陷波器测试好了,通过选择b-scan 图谱中的点来选择trace,根据fft的结果来选择陷波器频率。

   最近效率太低,

2 特殊问题

2.1 app 无法添加function 了

   原来已经添加的函数也不能用了。。

MATLAB 开发 GPR app记录_第11张图片

函数中 多了一个end,导致function功能被屏蔽

MATLAB 开发 GPR app记录_第12张图片

2.2 maltab出现很多问题,不知道原因

  比如plot 的figure图不能出来,ginput 卡住,导致滤波器无法选择截止频率。

inputdlg 也不能弹出,无法获得输入。

MATLAB 开发 GPR app记录_第13张图片

滤波器调试 花费大量的时间都是在这样的问题上。

2.3 网页中部分汉字不能显示

   各种问题被我遇到了。

--- 网页中有部分汉字不能显示,如 有。 实际上别人是可以看到的。

MATLAB 开发 GPR app记录_第14张图片

3 识别算法

3.1 卷积

     杨哲把这个功能理解和落实。我把它封装起来。

    使用过程:

1) GPR信号预处理,

2) 选择测试区域,寻找阈值。目前阈值是人工确定;

3)对预处理后的数据,使用cov进行处理,并根据阈值,判断病害位置。

卷积结果,寻找阈值。

MATLAB 开发 GPR app记录_第15张图片

有时候 不能3D可视化,

MATLAB 开发 GPR app记录_第16张图片

  识别结果, 还是很不错。MATLAB 开发 GPR app记录_第17张图片

  

你可能感兴趣的:(GPR,matlab,开发语言)