超声谐波成像中幅度调制聚焦超声引起的全场位移和应变的分析模型(Matlab代码实现)

 💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码、文章


💥1 概述

摘要
大多数疾病过程涉及受影响组织微结构的变化,这可能导致相应组织的机械性能发生变化。谐波运动成像(HMI)是一种弹性成像技术,它允许通过检测组织对谐波运动场的响应来研究组织的机械参数,该场是由振荡声辐射力产生的。HMI已在肿瘤检测和表征以及消融过程监测中得到证明。在本研究中,展示了一种分析HMI模型,并与有限元模型(FEM)进行了比较,允许在均匀线弹性材料中的任何位置快速准确地计算位移、应变和剪波速度(SWV)。对于41,940个力体素,分别为位移的绝对平均差异为1.2%,应变的绝对平均差异为0.5%,每个位移评估耗时0.22秒。收敛研究表明,如果增加力分辨率,则平均差异可以进一步降低到1.0%和0.15%,用于位移和应变的。由FEM和分析模型计算的SWV场在速度上有地区性差异,最高达0.57 m/s,绝对平均差异为0.11 ± 0.07 m/s,主要是由于非反射FEM边界条件的不完美造成的。由于近场和中间场效应,表观SWV与常用的平面波近似相比相差高达1.2 m/s。对于具有插入物的模型,最大位移幅度在插入半径为10 mm时稳定在均匀模型的10%内,而最大应变在插入半径为3 mm时反应更快,稳定在内。总之,在本文中提出了一种HMI刚度估计的分析模型。分析模型具有FEM的优点,因为不需要计算全场位移即可在单个测量点评估模型。这一优势与计算速度相结合,使得分析模型在实时成像应用中非常有用。然而,发现分析模型在组织均匀性和无限尺寸上有着限制性的假设,而FEM方法则显示出对可变几何和非均匀性质具有适应性。

📚2 运行结果

部分代码:

%% Define parameters and settings
res_force_volume = 101; % resolution force volume
res_total_volume = 61; % resolution total volume
FOV = 0.003; % radius total volume (m)
freq = 50; % driving frequency (1/s)
rho = 1000; % density matrix (kg/m^3)
v=0.49; % poisson ratio matrix 
E = 10000; % young's modulus matrix (N/m^2)
mu=E./(2.*(1+v)); % mu value matrix (N/m^2)
M = E.*(1-v)./((1+v).*(1-2.*v)); % M value matrix (N/m^2)
omg=2.*pi.*freq; % radial frequency (rad/s)
kc=sqrt(rho.*(2.*pi.*freq).^2./M); % kc value matrix (kg/(N*m^2*s^2))^(1/2)
ks=sqrt(rho.*(2.*pi.*freq).^2./mu); % ks value matrix (kg/(N*m^2*s^2))^(1/2)
BF = -10000; % force amplitude 

%% Plot figures
%% Plot simulation grid
figure
hold on
plot3(XX_force_volume(1:37:end),YY_force_volume(1:37:end),ZZ_force_volume(1:37:end),'.','Linewidth',0.1)
plot3(XX_force_volume(ForceVolumeCoos),YY_force_volume(ForceVolumeCoos),ZZ_force_volume(ForceVolumeCoos),'ro','Linewidth',2)
title('simulation grid')
xlabel('x position (m)')
ylabel('y position (m)')
zlabel('z position (m)')
legend({'overall grid','force volume grid'})
view([45 45])
axis square

%% Plot displacement fields
figure
subplot(3,1,1)
imagesc(squeeze(real(resultUx))')
axis square
title('U_x displacement')
% xlabel('x position (m)')
ylabel('z position (m)')
cb=colorbar;
ylabel(cb,'displacement (m)');
subplot(3,1,2)
imagesc(squeeze(real(resultUy))')
axis square
title('U_y displacement')
% xlabel('x position (m)')
ylabel('z position (m)')
cb=colorbar;
ylabel(cb,'displacement (m)');
subplot(3,1,3)
imagesc(squeeze(real(resultUz))')
axis square
title('U_z displacement')
xlabel('x position (m)')
ylabel('z position (m)')
cb=colorbar;
ylabel(cb,'displacement (m)');

%% Plot strain fields
figure
subplot(3,2,1)
imagesc(squeeze(real(resultEx))')
axis square
title('E_x strain')
% xlabel('x position (m)')
ylabel('z position (m)')
cb=colorbar;
ylabel(cb,'strain');
subplot(3,2,3)
imagesc(squeeze(real(resultEy))')
axis square
title('E_y strain')
% xlabel('x position (m)')
ylabel('z position (m)')
cb=colorbar;
ylabel(cb,'strain')
subplot(3,2,5)
imagesc(squeeze(real(resultEz))')
axis square
title('E_z strain')
% xlabel('x position (m)')
ylabel('z position (m)')
cb=colorbar;
ylabel(cb,'strain')
subplot(3,2,2)
imagesc(squeeze(real(resultExz))')
axis square
title('E_x_z strain')
% xlabel('x position (m)')
ylabel('z position (m)')
cb=colorbar;
ylabel(cb,'strain')
subplot(3,2,4)
imagesc(squeeze(real(resultEyz))')
axis square
title('E_y_z strain')
xlabel('x position (m)')
ylabel('z position (m)')
cb=colorbar;
ylabel(cb,'strain')

%% Plot S and P displacement fields, for near, intermediate and far fields
figure
subplot(3,2,1)
imagesc(squeeze(real(resultUz_near_S))')
axis square
title('U_z near S')
% xlabel('x position (m)')
ylabel('z position (m)')
cb=colorbar;
ylabel(cb,'displacement (m)')
subplot(3,2,3)
imagesc(squeeze(real(resultUz_intermediate_S))')
axis square
title('U_z intermediate S')
% xlabel('x position (m)')
ylabel('z position (m)')
cb=colorbar;
ylabel(cb,'displacement (m)')
subplot(3,2,5)
imagesc(squeeze(real(resultUz_far_S))')
axis square
title('U_z far S')
% xlabel('x position (m)')
ylabel('z position (m)')
cb=colorbar;
ylabel(cb,'displacement (m)')
subplot(3,2,2)
imagesc(squeeze(real(resultUz_near_P))')
axis square
title('U_z near P')
% xlabel('x position (m)')
ylabel('z position (m)')
cb=colorbar;
ylabel(cb,'displacement (m)')
subplot(3,2,4)
imagesc(squeeze(real(resultUz_intermediate_P))')
axis square
title('U_z intermediate P')
% xlabel('x position (m)')
ylabel('z position (m)')
cb=colorbar;
ylabel(cb,'displacement (m)')
subplot(3,2,6)
imagesc(squeeze(real(resultUz_far_P))')
axis square
title('U_z far P')
xlabel('x position (m)')
ylabel('z position (m)')
cb=colorbar;
ylabel(cb,'displacement (m)')

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

🌈4 Matlab代码、文章

  • 30
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荔枝科研社

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值