# k-Wave: A MATLAB toolbox for the time-domain simulation of acoustic wave fields
[![License: LGPL v3](https://img.shields.io/badge/License-LGPL_v3-blue.svg)](LICENSE.txt) [![View k-Wave on File Exchange](https://www.mathworks.com/matlabcentral/images/matlab-file-exchange.svg)](https://uk.mathworks.com/matlabcentral/fileexchange/120178-k-wave)
## Overview
k-Wave is an open source MATLAB toolbox designed for the time-domain simulation of propagating acoustic waves in 1D, 2D, or 3D [1]. The toolbox has a wide range of functionality, but at its heart is an advanced numerical model that can account for both linear and nonlinear wave propagation, an arbitrary distribution of heterogeneous material parameters, and power law acoustic absorption.
The numerical model is based on the solution of three coupled first-order partial differential equations which are equivalent to a generalised form of the Westervelt equation [2]. The equations are solved using a k-space pseudospectral method, where spatial gradients are calculated using a Fourier collocation scheme, and temporal gradients are calculated using a k-space corrected finite-difference scheme. The temporal scheme is exact in the limit of linear wave propagation in a homogeneous and lossless medium, and significantly reduces numerical dispersion in the more general case.
Power law acoustic absorption is accounted for using a linear integro-differential operator based on the fractional Laplacian [3]. A split-field perfectly matched layer (PML) is used to absorb the waves at the edges of the computational domain. The main advantage of the numerical model used in k-Wave compared to models based on finite-difference time domain (FDTD) schemes is that fewer spatial and temporal grid points are needed for accurate simulations. This means the models run faster and use less memory. A detailed description of the model is given in the k-Wave User Manual and the references below.
1. B. E. Treeby and B. T. Cox, "k-Wave: MATLAB toolbox for the simulation and reconstruction of photoacoustic wave-fields," _J. Biomed. Opt._, vol. 15, no. 2, p. 021314, 2010. [https://doi.org/10.1117/1.3360308](https://doi.org/10.1117/1.3360308)
2. B. E. Treeby, J. Jaros, A. P. Rendell, and B. T. Cox, "Modeling nonlinear ultrasound propagation in heterogeneous media with power law absorption using a k-space pseudospectral method," _J. Acoust. Soc. Am._, vol. 131, no. 6, pp. 4324-4336, 2012. [https://doi.org/10.1121/1.4712021](https://doi.org/10.1121/1.4712021)
3. B. E. Treeby and B. T. Cox, "Modeling power law absorption and dispersion for acoustic propagation using the fractional Laplacian," _J. Acoust. Soc. Am._, vol. 127, no. 5, pp. 2741-2748, 2010. [https://doi.org/10.1121/1.3377056](https://doi.org/10.1121/1.3377056)
## Installation Instructions
### MATLAB Add-On Explorer
The k-Wave toolbox can be installed directly from the MATLAB Add-On Explorer. Select `Add-Ons` and search for `k-Wave`, then select `Add`, `Add to MATLAB`.
### Direct Download
If you downloaded the k-Wave Toolbox from GitHub or the the k-Wave website, the k-Wave toolbox is installed by adding the `k-Wave` folder to the MATLAB path.
To update the path interactively, use the `Set Path` dialog box which is accessed by typing `pathtool` at the MATLAB command line. This dialog box can also be accessed using the `Set Path` button on the ribbon bar. Once the dialog box is open, the toolbox is installed by clicking `Add Folder`, selecting the k-Wave toolbox folder, and clicking `Save`. The toolbox can be uninstalled in the same fashion.
For Linux users, using the `Set Path` dialog box requires write access to `pathdef.m`. This file can be found under `<matlabroot>/toolbox/local`. To find where MATLAB is installed, type `matlabroot` at the MATLAB command line.
To update the path programmatically, add the line
```matlab
addpath('<pathname>/k-Wave');
```
to the `startup.m` file, where `<pathname>` is replaced with the location of the toolbox, and the slashes should be in the direction native to your operating system. If no `startup.m` file exists, create one, and save it in the MATLAB startup directory.
## Using The C++ Codes
Accelerated versions of the simulation functions written in C++/CUDA are also available. These are not included in the MATLAB toolbox. To use the C++/CUDA codes, the appropriate binaries (and library files if using Windows) should be downloaded from [k-wave.org/download.php](http://www.k-wave.org/download.php) and placed in the `k-Wave/binaries` folder of the toolbox. To find where k-Wave is installed, type `which(getkWavePath)` or `cd(getkWavePath)`.
## Documentation And Examples
After installation, you should see the k-Wave help files in the MATLAB help browser by selecting **k-Wave Toolbox** from the list of **Supplemental Software** on the contents page. If you can't see **k-Wave Toolbox** in the contents list of the MATLAB help browser, try typing `help k-Wave` at the command prompt to see if the toolbox has been installed correctly.
After installation, to make the k-Wave documentation searchable from within the MATLAB help browser, run
```matlab
builddocsearchdb(getkWavePath('helpfiles'));
```
Note, the created database file will only work with the version of MATLAB used to create it.
## Getting Started
Regardless of your intended application for the k-Wave Toolbox, the easiest way to get started is to work through the **Initial Value Problems** examples in the MATLAB help browser, in particular the **Homogeneous Propagation Medium** example. This gives a step-by-step introduction to the way the simulation functions within k-Wave work. Each of the examples comes with an accompanying m-file which can be opened or run from within the help file.
There is additional information on the functions and algorithms used in k-Wave in the k-Wave Manual (this can be downloaded from [k-wave.org/documentation.php](http://www.k-wave.org/documentation.php)). The manual includes a general introduction to the governing equations and numerical methods used in the main simulation functions in k-Wave. It also provides a basic overview of the software architecture and a number of canonical examples. The manual has a different emphasis to the MATLAB documentation, thus it can be beneficial when starting with k-Wave to read both in parallel.
## Getting Help
If you have any feedback or comments, or wish to report bugs, obtain help, or request new features, please visit the k-Wave forum at [k-wave.org/forum](http://www.k-wave.org/forum).
## License
The k-Wave toolbox is distributed by the copyright owners under the terms of the GNU Lesser General Public License (LGPL) which is a set of additional permissions added to the GNU General Public License (GPL). The full text of both licenses is included with the toolbox in the folder 'license'.
The licence places copyleft restrictions on the k-Wave toolbox. Essentially, anyone can use the software for any purpose (commercial or non-commercial), the source code for the toolbox is freely available, and anyone can redistribute the software (in its original form or modified) as long as the distributed product comes with the full source code and is also licensed under the LGPL. You can make private modified versions of the toolbox without any obligation to divulge the modifications so long as the modified software is not distributed to anyone else. The copyleft restrictions only apply directly to the toolbox, but not to other (non-derivative) software that simply links to or uses the toolbox.
k-Wave is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details (http://www.gnu.org/licenses/lgpl.html).
If you find the toolbox useful for your academic work, please consider citing one or more of the following papers:
1. Overview
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。
资源推荐
资源详情
资源评论
收起资源包目录
毕业设计&课设-用于声波场时域模拟的MATLAB工具箱.zip (739个子文件)
EXAMPLE_source_two.bmp 32KB
kwavehelpstyle.css 3KB
example_tvsp_snells_law_eq_01.gif 759B
example_tvsp_snells_law_eq_02.gif 743B
more_arrows.gif 121B
k-wave_release_notes.html 43KB
kspaceFirstOrder3D.html 41KB
kspaceFirstOrder2D.html 40KB
pstdElastic3D.html 38KB
pstdElastic2D.html 33KB
kspaceFirstOrder1D.html 32KB
kspaceFirstOrderAS.html 30KB
k-wave_function_ref_cat.html 27KB
kWaveArray.html 22KB
kWaveDiffusion.html 17KB
example_cpp_running_simulations.html 17KB
example_us_defining_transducer.html 15KB
kWaveTransducer.html 15KB
example_us_bmode_linear_transducer.html 15KB
example_pr_2D_tr_time_variant_filtering.html 12KB
example_ivp_homogeneous_medium.html 11KB
attenComp.html 11KB
kWaveGrid.html 11KB
example_tvsp_equivalent_source_holography.html 11KB
example_ivp_3D_simulation.html 11KB
example_pr_2D_fft_line_sensor.html 11KB
example_na_optimising_performance.html 11KB
kspaceSecondOrder.html 10KB
example_at_piston_and_bowl_transducers.html 10KB
example_at_array_as_source.html 10KB
calculateMassSourceCW.html 9KB
acousticFieldPropagator.html 9KB
calculateMassSource.html 9KB
angularSpectrum.html 9KB
example_tvsp_slit_diffraction.html 8KB
example_us_beam_patterns.html 8KB
example_diff_homogeneous_medium_diffusion.html 8KB
k-wave_examples.html 8KB
example_na_controlling_the_pml.html 8KB
example_ivp_photoacoustic_waveforms.html 8KB
example_ewp_layered_medium.html 8KB
k-wave_function_ref_alph.html 8KB
example_ivp_recording_particle_velocity.html 8KB
example_sd_sensor_directivity_2D.html 8KB
kspaceFirstOrder3DC.html 7KB
example_ivp_axisymmetric_simulation.html 7KB
example_pr_2D_tr_absorption_compensation.html 7KB
example_cpp_io_in_parts.html 7KB
example_na_filtering.html 7KB
example_pr_2D_tr_iterative.html 7KB
example_pr_2D_adjoint.html 7KB
angularSpectrumCW.html 7KB
example_pr_2D_tr_bandlimited_sensors.html 7KB
example_ivp_comparison_modelling_functions.html 7KB
example_tvsp_transducer_field_patterns.html 7KB
example_diff_homogeneous_medium_source.html 7KB
example_tvsp_homogeneous_medium_monopole.html 7KB
kspaceLineRecon.html 7KB
kspacePlaneRecon.html 6KB
example_ivp_1D_simulation.html 6KB
filterTimeSeries.html 6KB
spect.html 6KB
getWin.html 6KB
example_tvsp_angular_spectrum.html 6KB
example_pr_2D_tr_line_sensor.html 6KB
vesselFilter.html 6KB
makeMultiBowl.html 6KB
makeBowl.html 6KB
example_sd_directional_array_elements.html 6KB
example_sd_directivity_modelling_2D.html 6KB
example_at_array_as_sensor.html 6KB
example_diff_focused_ultrasound_heating.html 6KB
example_at_linear_array_transducer.html 6KB
example_pr_2D_tr_circular_sensor.html 6KB
offGridPoints.html 6KB
example_sd_directivity_modelling_3D.html 5KB
example_ivp_saving_movie_files.html 5KB
example_na_modelling_absorption.html 5KB
applyFilter.html 5KB
example_ivp_binary_sensor_mask.html 5KB
toneBurst.html 5KB
overlayPlot.html 5KB
example_na_source_smoothing.html 5KB
k-wave_getting_started.html 5KB
focusedBowlONeil.html 5KB
example_pr_2D_tr_autofocus.html 5KB
makeMultiArc.html 5KB
example_pr_3D_tr_spherical_sensor.html 5KB
example_pr_3D_fft_planar_sensor.html 5KB
example_ivp_opposing_corners_sensor_mask.html 5KB
example_ewp_plane_wave_absorption.html 5KB
example_ewp_shear_wave_snells_law.html 5KB
example_tvsp_3D_simulation.html 4KB
makeSphericalSection.html 4KB
example_us_transducer_as_sensor.html 4KB
example_pr_2D_tr_directional_sensors.html 4KB
acousticFieldPropagatorC.html 4KB
example_tvsp_acoustic_field_propagator.html 4KB
example_sd_focussed_detector_3D.html 4KB
example_na_modelling_nonlinearity.html 4KB
共 739 条
- 1
- 2
- 3
- 4
- 5
- 6
- 8
资源评论
毕业小助手
- 粉丝: 2764
- 资源: 5583
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 齿轮盖自动组装sw18可编辑全套技术资料100%好用.zip
- comsol辐射不对称BIC 远场赝极化物理表征
- 基于SpringBoot+vue的高校学科竞赛平台.zip
- 毕业设计python医用耗材网上申领系统(源代码+全套毕业文档).zip
- comsol仿真径向偏振光,角向偏振光
- 5.词汇中英文对照表Journey+to+the+West+266页.pdf
- 导套自动供料机sw18可编辑全套技术资料100%好用.zip
- 基于SpringBoot+mybatis的足球青训俱乐部管理后台系统.zip
- 图片生成视频-PixVerseV3.5
- 自动驾驶实时轨迹规划,2022 ICRA 的一个文章复现(顶级机器人会议),参考文档 采用速度路径解耦的方式,linux系统ros,提供场景和源马171(apollo路径规划,autoware路径规
- 大枣烘干机sw16可编辑全套技术资料100%好用.zip
- 14mΩ、1200V耐压 碳化硅MOSFET TO247-4封装
- Python自动化安装
- TESSY 测试 + polySpace 使用教程
- Matlab Simulink:两级式光伏并网系统(光伏板+boost变器+LCL逆变器+电网) 组成部分及功能: 1.主电路:由光伏板+boost变器+LCL逆变器+电网组成,电网电压相电压有效值2
- 307.基于SpringBoot的图书管理系统.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功