运用Field_II囊肿模型生成静态血管模型--MATLAB

  • 题目要求

  1. 建立人体颈总动脉超声仿真模型,并画出三维示意图
    1. 1模型几何要求:所在深度---皮下15~24 mm;

                        内径---3.5 mm;

                        管壁厚度---1mm;

                        血管长度---38mm。

               1. 2 模型回声强度要求:周围组织回声强度是血流回声强度的10倍;管壁回声强度是周                   围组织回声强度的5倍。

     2. 在38mm的成像宽度内,生成128线射频信号并成像。

  • 实验内容

        1. 通过cyst_pht.m程序建立人体颈总动脉超声仿真模型,设置合理的模型扫描范围,然后在此扫描范围内通过设置扫描回声信号的强度和模型所在位置来生成血管模型,最后画出血管的三维模型图。 

图1 血管三维模型

        2.通过观察生成图像的范围来判断血管所在位置是否符合模型预设的深度,这里血管位置应该满足在皮下15~24mm,长度为38mm.

 

图2 结果

从成像结果可以看出血管在我们所设置的范围内。

        3.通过设置换能器的发射频率、采样频率、发射孔径、焦距在z的中间来发射出超声信号,然后超声信号在接触到血管壁时会反射回声信号,该信号的回声强度是周围组织回声强度的5倍,同理超声信号在接触到血流时会反射回声信号,该信号的回声强度是周围组织回声强度的0.1倍,然后对接收到的回声信号进行采样,然后处理,最后进行成像。 

  • 方法步骤
  1. 通过更改cyst_pht.m程序来建立模型

        1.1 更改扫描范围,这个范围是血管所在的位置。相当于建立一个立方体,这个立方体是扫描范围血管在这个立方体内;

x_size = 38/1000;   %  Width of phantom [mm]
y_size = 0/1000;   %  Transverse width of phantom [mm]
z_size = 20/1000;   %  Height of phantom [mm]
z_start = 10/1000;  %  Start of phantom surface [mm];

        其中x_size = 38mm,表示血管的长度;y_size = 0mm,表示所建立的模型扫描范围的宽度是0mm;z_size = 20mm,表示扫描宽度为20mm,是成像范围;z_start = 10mm,表示皮下扫描深度,是扫描开始的位置。

    1.2 建立血管模型

 

图4 血管截面图

r1=7/2/1000;%血流
r2=9/2/1000;%血管

yc=0/1000;
zc=9.5/1000+z_start;  
inside = ( ((y-yc).^2 + (z-zc).^2) < r2^2&((y-yc).^2 + (z-zc).^2) > r1^2) ;
amp = amp .* (1-inside) + 5*amp .* inside;

        这部分代码表示建立血管壁模型,血管壁是一个圆环,所在的圆外半径为4.5mm,内半径为3.5mm,圆心所在位置为(yc,zc)。设置回声强度为5(这里我默认周围组织的回声强度为1)。

       

yc=0/1000;
zc=9.5/1000+z_start;
inside = ( ((y-yc).^2 + (z-zc).^2) <r1^2);
amp = amp .* (1-inside)+ 0.1*amp .* inside; 

这部分代码表示建立血流模型,所在的圆半径为3.5mm,圆心所在位置为(yc,zc)。设置回声强度0.1为血管壁的1/50,周围组织的1/10。

 

图5 三维效果

     2.通过field.m程序初始化。

     3.通过mk_pht.m程序进行散射体设置,由于原来的散射体数量太多造成一次扫描的时间很长,所以我改为了10000。

    4.通过sim_img.m程序进行模型扫描,这里设置扫描线数no_line=50或no_line=128;然后也可以设置换能器的间距,采样频率,中心频率,焦距(这里的焦距需要在z的中间)

      5.通过make_image.m程序进行成像,我设置的成像范围为5~35mm。

  • 实验结果

 1.no_line=50

 

图6 no_line=50

2.no_line=128

 

图7 no_line=128

        由上面结果可以得出:血管模型所在的深度和血管所在的大小满足我们的预设深度,但是最后的成像比较模糊,结果不太理想。这是我把散射体的数量更改为10000后造成的,因为在我调整焦距后没有明显的改善,说明成像不清晰不是焦距的原因;也可以增加扫描线数提高成像质量。

建模代码

%  Create a computer model of a cyst phantom. The phantom contains
%  fiven point targets and 6, 5, 4, 3, 2 mm diameter waterfilled cysts, 
%  and 6, 5, 4, 3, 2 mm diameter high scattering regions. All scatterers 
%  are situated in a box of (x,y,z)=(50,10,60) mm and the box starts 
%  30 mm from the transducer surface.
%
%  Calling: [positions, amp] = cyst_phantom (N);
%
%  Parameters:  N - Number of scatterers in the phantom
%
%  Output:      positions  - Positions of the scatterers.
%               amp        - amplitude of the scatterers.
%
%  Version 2.2, April 2, 1998 by Joergen Arendt Jensen

function [positions, amp] = cyst_phantom (N)

x_size = 38/1000;   %  Width of phantom [mm]
y_size = 0/1000;   %  Transverse width of phantom [mm]
z_size = 20/1000;   %  Height of phantom [mm]
z_start = 10/1000;  %  Start of phantom surface [mm];

%  Create the general scatterers

x = (rand (N,1)-0.5)*x_size;
y = (rand (N,1)-0.5)*y_size;
z = rand (N,1)*z_size + z_start;

%  Generate the amplitudes with a Gaussian distribution

amp=randn(N,1);

%  Make the cyst and set the amplitudes to zero inside

%  6 mm cyst
r1=7/2/1000;%血流
r2=9/2/1000;%血管

yc=0/1000;
zc=9.5/1000+z_start;
inside = ( ((y-yc).^2 + (z-zc).^2) <r1^2);
amp = amp .* (1-inside)+ 0.1*amp .* inside; 

yc=0/1000;
zc=9.5/1000+z_start;  
inside = ( ((y-yc).^2 + (z-zc).^2) < r2^2&((y-yc).^2 + (z-zc).^2) > r1^2) ;
amp = amp .* (1-inside) + 5*amp .* inside;


positions=[x y z];

 

 

 

 

 

 

  • 3
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论
以下是使用 MATLABField II 工具箱进行超声声场的仿真代码示例: ```matlab % 定义超声波源和声场参数 f0 = 6e6; % 超声波频率 fs = 100e6; % 采样频率 c = 1540; % 声速 lambda = c/f0; % 超声波波长 width = lambda/2; % 超声波源宽度 element_height = 5/1000; % 超声波源高度 kerf = 0.1/1000; % 超声波源之间的间隙 element_pitch = element_height + kerf; % 超声波源间距 N_elements = 128; % 超声波源个数 N_active_elements = 64; % 激活的超声波源个数 x = (-(N_elements-1)/2:(N_elements-1)/2) * element_pitch; % 超声波源位置 focus = [0 0 60]/1000; % 超声波源聚焦点位置 % 生成 Field II 模型 field_init(-1); set_field('c', c); set_field('fs', fs); xmit = xdc_linear_array(N_elements, element_height, width, kerf, 1, 1, focus); % 超声波源 xdc_impulse(xmit, sin(2*pi*f0*(0:1/fs:width/c))); % 超声波源激励信号 % 定义接收器位置 receive_aperture = xdc_linear_array(N_elements, element_height, width, kerf, 1, 1, focus); set_field('use_rectangles', 1); set_field('rectangle_corners', [-width/2 -width/2 width/2 width/2; 0 -N_elements*element_pitch/2 -N_elements*element_pitch/2 0; 0 0 0 0]); % 计算声场传播并绘制声压分布图 [rf, tstart] = calc_scat(xmit, receive_aperture, phantom_positions); % phantom_positions 为声场中物体的位置 figure; imagesc(x*1000, (tstart + (0:size(rf, 1)-1)/fs)*c/2*1000, abs(hilbert(rf))); colormap(gray); xlabel('Lateral distance (mm)'); ylabel('Axial distance (mm)'); title('Pressure field'); ``` 以上代码仅为示例,具体实现要根据实际需求进行调整。该代码使用 Field II 工具箱生成超声波源和接收器,计算声场传播并绘制声压分布图。其中,`calc_scat` 函数用于计算声场传播,`imagesc` 函数用于绘制声压分布图。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

不吃折耳根

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

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

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

打赏作者

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

抵扣说明:

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

余额充值