kspaceSecondOrder 模拟函数

概述

kspaceSecondOrder 模拟线性压缩波在一维、二维或三维均质声学介质中的时域传播,给定四个输入结构:kgrid、介质、声源和传感器。计算基于具有幂律吸收的介质的精确二阶 k 空间模型。在每个时间步长(由 kgrid.dt 和 kgrid.Nt 或 kgrid.t_array 定义),记录并存储由 sensor.mask 定义的位置处的压力。如果 kgrid.t_array 设置为 “auto”(自动),则该数组将通过 kWaveGrid 类的 makeTime 方法自动生成。为防止波浪缠绕,可以通过将可选输入项 "ExpandGrid "设置为 true,自动将计算域扩大 2 倍。

可以通过为 source.p0 指定一个任意数值矩阵(与计算网格大小相同)来指定初始压力分布。同样,也可以使用 source.dp0dt 指定初始压力梯度。压力将以 sensor.mask 所定义的传感器位置的时间序列数组形式返回。该数组被指定为二进制矩阵(即与计算网格大小相同的 "1 "和 "0 "矩阵),代表计算网格内将收集数据的网格点。传感器数据使用 MATLAB 的标准列式线性矩阵索引排序,记录数据的索引为 sensor_data(sensor_position,time)。也可以通过将 sensor.record 设置为 {‘p’, ‘p_final’} 来获取整个计算网格的最终压力场。在这种情况下,输出的 sensor_data 将以结构体形式返回,其输出将作为结构字段 sensor_data.p 和 sensor_data.p_final 附加到结构体中。

与一阶模拟函数 kspaceFirstOrder1D、kspaceFirstOrder2D 和 kspaceFirstOrder3D 相比,kspaceSecondOrder 只适用于同质介质,功能较少。 不过,它对于均质吸收介质是精确的,计算效率更高,并允许指定初始压力梯度。

Inputs & Outputs

详见http://www.k-wave.org/documentation/kspaceSecondOrder.php

模拟函数比较

本示例简要比较了 kspaceFirstOrder2D 和 kspaceSecondOrder 模拟函数。它以同质传播介质和使用二进制传感器掩码示例为基础。

关于 k-Wave 中使用的二阶模型的更详细讨论,请参见 Treeby, B. E. 和 Cox, B. T., “A k-space Green’s function solution for acoustic initial value problems in homogeneous media with power law absorption,” J. Acoust. 美国声学学会》,第 129 卷,第 6 期,第 3652-3660 页,2011 年。

关于建模函数

在前面的示例中,声学模拟都是使用 kspaceFirstOrder2D 进行的。该函数基于使用三个耦合一阶偏微分方程(质量守恒、动量守恒和压力密度关系)对粒子速度、声学密度和声学压力进行的顺序计算。对于均质介质,这些方程也可以合并为一个二阶声波方程,并使用格林函数方法求解。kspaceSecondOrder 函数是专门针对初值问题的格林函数求解的高效数值实现。对于均质介质,两种方法的结果相同。

与 kspaceFirstOrder2D 相比,kspaceSecondOrder 的计算效率更高,时间步长也可以任意大(因为求解是精确的)。它还允许定义初始压力和初始压力梯度(参见设置初始压力梯度示例)。 幂律吸收的编码也更加精确(请参阅 “幂律吸收建模示例”)。不

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值