超声声场模拟_超声全聚焦(TFM)简介

应读者要求,小编将介绍一下全聚焦TFM的基础知识。如有讲解不对的,欢迎批评指正。

全聚焦是超声检测里面的新事物。早在2005前, Caroline Holmes、Paul D. Wilcox等国外学者就开始研究了全聚焦成像,并通过实验得出了TFM相对于常规相控阵检测的优势,详细的比较结果可以参考《Post-processing of the full matrix of ultrasonic transmit–receivearray data for non-destructive evaluation》。在国内,全聚焦的研究时间稍晚一些,小编查找到的资料上显示,北航的周正干老师,早在15年(也许在此之前,也有学者在研究)之前就研究了TFM。那么TFM究竟是个什么玩意呢?它相对于相控阵,有什么特点呢?它的适用性范围呢?在此,小编叙述一下自己对全聚焦的理解,如有错误,欢迎专家批评指正。

全聚焦(total focusing method),顾名思义,就是在成像区域内每一点进行聚焦。相比相控阵聚焦(在小编的早期公众号中介绍过相控阵的几种聚焦模式),它能实现每一点的聚焦。其成像算法是一种基于全矩阵数据采集的虚拟聚焦后处理成像技术,算法精度高且灵活,逐渐成为近年来的研究热点。

因此,首先需要获得全矩阵数据,即获得成像区域(region of interest,ROI)内每一点的A扫信号,而这些A扫信号是由每个阵元单独激发,所有阵元接收回波,形成一行数据;然后步进一个阵元进行发射,所有阵元接收回波,形成第2行数据;直到最后一个阵元发射,所有阵元接收回波为止,形成第N(假定探头中含有N个阵元)行数据,最终得到N×N个A扫的信号矩阵。可以采用下图1和图2表示。而每个阵元发射的声波,形成的声场,与常规超声中单晶探头发出的声场并没有什么区别,只不过是阵元尺寸小,声束扩散角大,声波指向性不明显而已。

fb337c50ac3f78e3889ebdc8b1d38f13.png

图1阵元发射和接收

3b8d5f1775e00f0566bede86d50c1623.png

图2获得的数据矩阵

此时,还只是针对ROI内某一点得到的N²个数据,还需要对ROI区域内其余的点进行同样的数据采集(如下图3中,对P点数据采集之后,还需要对其附近的Q点,以及其它的点处进行数据采集,直到遍历整个ROI区域内的点)。因此,ROI内点数越多,采集的数据矩阵的个数越多,最终得到的影像质量越好,图像越清晰,分辨率越好,采样的数据越接近于真实的信号(类似于从模拟信号到数字信号一样,确保采样的点能代表真实的信号,并且幅值偏差满足要求,因为采样的点数越多,采集到峰值的概率越大,从某种意义上就能得到真实的信号),但是仪器处理的数据量越大;点数越少,采集的数据矩阵个数越少,影像的质量越差,图像越模糊,分辨率越差,仪器处理的数据量小。那如何确定ROI内的点数呢?

a7107d955197e7f34b1b4283e1ef68e6.png

图3 ROI区域 

在ASME BPVC V article4,mandatory appendix XI中XI-461中amplitude fidelity规定,Amplitude fidelity shall be preserved to 2 dB or less,即采样之后,重构的信号与原始信号幅值之差不超过2dB(在ISO13588标准以及国内的相控阵标准中,在检测完成时对灵敏度进行重新校验,要求的幅值偏差也是不超过2dB,好巧啊!)。即,要求采样的点数不能过少,否则采集的点对应的幅值与真实的幅值偏差将超过2dB,这一点是极其关键的(在Gekko,Mantis,Panther相控阵仪器中都有判定ROI区域内像素点是否满足要求的小工具)。可以采用下图4来理解,假定黄颜色区域代表缺陷区域,如果采样点过少,只能采集如红色圆圈代表的点;当采集点增加时,才能采集到如黑色圆圈代表的点,保证采集到真实的信号峰值。因此图像的像素点越多,意味着在确保幅值的情况下,ROI可以设置越大。或ROI区域尺寸确定之后,得到的信号幅值越接近于真实的幅值。 

4842a7bc636fc0a3672fd2f115400915.png

图 4 ROI区域内的采样点

将ROI划分成若干个小区域,对每个区域进行一次信号采集。左侧为ROI内的采样点,黑色圆圈代表采样点数多,红色圆圈代表采样点数少,黄颜色代表缺陷区域;中间为采样点数多时缺陷处获取的信号,黄颜色为缺陷的原始区域;右侧为采样点数少时缺陷处获取的信号,黄颜色为缺陷的原始区域。可以看出,采样点数不足(或在ROI区域内,像素点不足)时,得到的影像将严重畸变,不能体现真实的缺陷。

获取数据矩阵后,对数据进行处理(通常采用延时叠加)其数学表达式如下式,获得ROI区域内相应点处的信号幅值,然后对幅值进行彩色编码,获得最终的颜色。

 ddab08d363e63f4a0140322039590d77.png

下图右侧显示的是ROI区域内P点的A扫数据矩阵。

5cfad0fd18a2e415273339a62d9ca2e7.png

图5对ROI区域内P点进行数据处理

在后面的章节,我们将叙述TFM成像的优势和应用。

欢迎关注小编微信公众号。

63584c4b7106f7f46752b12c55ab2985.png

84af83214aaf0af4a8468dcb8c09559b.png

免责申明:本文只做知识的交流,仅代表小编的观点。任何人不得将其作为商业用途。

版权所有,如需转载,需注明出处!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/433051.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

post修改服务器数据源,postgresql安装及配置超详细教程

1. 安装根据业务需求选择版本,官网下载初始化数据库执行完初始化任务之后,postgresql 会自动创建和生成两个用户和一个数据库:linux 系统用户 postgres:管理数据库的系统用户;密码由于是默认生成的,需要在系…

小程序分享到朋友圈_如何给小程序添加分享朋友圈

微信公众号更新以后,推送不是按照优先来的,你们可以把我的微信公众号点击设置为星标,以便于及时的接收信息.从微信小程序官方分享朋友圈有那么几天了,今天就分享下如何给自己的小程序添加分享朋友圈代码,几行代码的事。根据官方的提示需要基础…

JS代码大全

一、验证类 1、数字验证内 1.1 整数 /^(-|\)?\d$/.test(str) 1.2 大于0的整数 (用于传来的ID的验证) /^\d$/.test(str) 1.3 负整数的验证 /^-\d$/.test(str) 2、时间类 2.1 短时间,形如 (13:04:06) function isTime(str) …

eclipse中查看mysql_eclipse中怎样查看sqlite数据库的表

string createtable(classclazz , string tablename){//实例化一个容器,用来拼接sql语句stringbuffer sbuffer new stringbuffer();//sql语句,第一个字段为_id 主键自增,这是通用的,所以直接写死sbuffer.append("create tab…

敏捷开发之Scrum扫盲篇

现在敏捷开发是越来越火了,人人都在谈敏捷,人人都在学习Scrum和XP... 为了不落后他人,于是我也开始学习Scrum,今天主要是对我最近阅读的相关资料,根据自己的理解,用自己的话来讲述Scrum中的各个环节&#x…

macos xampp mysql 命令_MAC系统XAMPP 中 MySQL命令行client配置使用

在PHP的学习过程中。MySQL预计是必定会接触的。MySQL的管理相信大家也会使用phpmyadmin:好吧。phpmyadmin的确是MySQL管理的神器,你想要的。他好多都有,在开发的过程中。对于后台数据库的设计架构帮助真的非常大。可是。在这篇文章的主角确不…

]Kinect for Windows SDK开发入门(六):骨骼追踪基础 上

原文来自:http://www.cnblogs.com/yangecnu/archive/2012/04/06/KinectSDK_Skeleton_Tracking_Part1.html Kinect产生的景深数据作用有限,要利用Kinect创建真正意义上交互,有趣和难忘的应用,还需要除了深度数据之外的其他数据。这…

Daily Scrum 10.29

时间越来越紧迫,不过大家逐渐进入了状态。虽然在有些问题上大家意见有些不同,但是最终还都是为着团队着想,很好地达成一致了。 MemberToday’s Task Tomorrow’s Task李孟 task615 测试(活动) task571 完成daily scrum 10.29撰文 task615 测试…

python中list index out of range_Python知识精解:str split()方法

描述split()函数是Python字符串函数。split() 通过指定分隔符对字符串进行切片。如果指定了整型参数num,则仅分隔num 1个子字符串(即分割num次)。使用split()函数将字符串分割后,返回的是一个列表,列表中存储着分割后…

ashx连接mysql_对C#中的web访问mysql数据库的一些知识点进行了整理归纳总结

基本对比使用方式使用场合优缺点是否需要安装需要的dll网址引用方式程序内引用程序初期确定使用MySql,前期添加引用大多数情况下使用在类文件内,多数使用于aspx,ashx等带有后置代码的类文件中可以安装,也可以直接引用dll 多数情况…

mysql -b -e_MySQL 的B+树索引.

一、B树索引概述索引是应用程序设计和开发的一个重要方面。若索引太多,应用程序的性能可能会受到影响(需维护索引的结构和数据);而索引太少,对查询性能又会产生影响。二叉树,左子树的键值总是小于根的键值,右子树的键值…

mysql卸载完环境变量还有_MySql完全卸载

这篇文章为转载本博客内容均摘自其他博客,由我整合并且将内容更改的更为详细,方便自己以后观看,也方便各位同学学习,少踩一些坑1.首先我们看一下如何卸载(1)停掉MySql在Windows的服务:开始—> 运行—> services.…

pycharm怎么编写python代码_如何设置PyCharm中的Python代码模版(推荐)

在MacOs运行的PyCharm中,执行python文件,如果不指定python文件字符编码会报错:SyntaxError: Non-ASCII character \xe6 in file /Users/yuchao/PycharmProjects/oldboy_python/python_lesson/模块与包/spam.py on line 6,but no encoding dec…

sigprocmask 阻塞进程

本系列文章由muge0913编写,转载请注明出处:http://blog.csdn.net/muge0913/article/details/7334771 1、有时候不希望在接到信号时就立即停止当前执行,去处理信号,同时也不希望忽略该信号,而是延时一段时间去调用信号处…

JavaScript中奇妙的replace

1、发现问题: 今天在读require.js源代码时,不经意读到这么一段代码: 1 //If no name, and callback is a function, then figure out if it a2 //CommonJS thing with dependencies.3 if (!deps && isFunction(callback)) {4 dep…

移除首页-重回首页

之前发布了一篇文章《订餐系统之获取淘宝外卖订单》,因为是关于淘宝外卖的,所以文中出现这个词时,都加了链接,还设置了 target_blank,就是为了让看的人方便点击,查看。后来,博客园说这个文章中含有推广链接…

Scrum之 回顾会议

Scrum中Sprint计划会议是最重要的事件,第二重要的事件就是回顾会议,因为这是团队做改进的最佳时机。如果没有回顾,就会发现团队在重犯相同的错误。在sprint的评审会议后,团队需要进行一次回顾会议,以下我将把会议主要内…

java的未检查异常有哪些_Java:检查异常与未检查异常

一、异常的介绍Throwable 是 Java 中所有错误和异常的超类。Java 虚拟机仅抛出属于此类(或其子类之一)的实例对象,或者是 throw 语句也可以抛出该对象。同样,catch 子句中的参数类型也只能是此类(或其子类之一)。处于编译时检查异常为目的,Th…

java array_Java 数组

Java 数组数组对于每一门编辑应语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同。Java语言中提供的数组是用来存储固定大小的同类型元素。你可以声明一个数组变量,如numbers[100]来代替直接声明100个独立变量number0&#xff…

idea 执行 java jar_idea打包java可执行jar包的实现步骤

1,在项目上鼠标右键 --> Open Module Settings2, Artifacts --> --> JAR --> From modules with dependencies...3, Main Class是你这个项目(脚本)的主方法,就是要运行的类,选一个4,如下图,设置 META-INF/MANIFEST.MF!!!!!切记,不能用默认的(起码我用默认的是不成…