最近需要使用K-伪谱法进行声场仿真,于是就在Matlab上安装了 K-wave 工具箱,准备学习一下。k-wave工具箱学习网站提供了很多官方例程帮助我们学习。
目前,我学习了第一个例子,虽然很简单,但还是想记录一下。
例1:Homogeneous Propagation Medium Example
这个例子简单的演示了二维均匀介质中压力的分布。
首先,我们在Matlab运行一下代码,可以得到两幅图像。
然后我们开始阅读代码:
创建一个计算网格,x方向128个点,y方向128个点,且x方向与y方向的网格点间距为0.1mm,那么x方向长度为12.8mm,y方向长度为12.8mm。这个计算网络,可以理解为上图中的白板,如果我赋值Nx=200,NY=100,图片将是这样:
定义了传播介质的属性,这里主要是声速、幂律吸收系数。
创建初始声压的分布。以上代码创建了两个声压点,第一个声压点振幅为5pa,圆心位置在(5mm,5mm)处,半径为0.8mm。第二个声压点振幅为3pa,圆心位置在(8mm,6mm)处,半径为0.5mm。在这里参考系原点为左上点。使用函数makeDisc创建压力分布。
定义传感器。传感器的半径为4mm,数量有50个,传感器可以记录不同时间下的该点的压力分布。使用函数makeCartCircle生成传感器阵列。
将设置好的参数放入函数kspaceFirstOrder2D函数中,即可得到传感器记录的数据。
最后通过以下代码进行绘图。