I am currently simulating a a highly heterogeneous media with sound speed going from 1430 to 4736. From your 2012 paper on heterogeneous wave propagation in figure 2c you examine the phase error introduced by the model based on the number of grid points. If my understanding is correct you use the reflection coefficients to compare the phase error that is introduced into the model.
I am asking as the model I am currently running has a return signal that is spread out in time, which I believe to be an accumulation of the phase error effects. I was wondering if an increase in the grid points was the best way to prevent this and how to measure the effects of such error. Note my c_ref is chosen to be the minimum of my grid based on posts in these forums, which from my understanding limits the phase error that is introduced.
thanks, Andrew Ouellette
k-Wave
A MATLAB toolbox for the time-domain
simulation of acoustic wave fields
Phase Error
(5 posts) (2 voices)-
Posted 11 years ago #
-
Hi Andrew,
There are two related but different issues. The first is the accumulation of numerical dispersion (or phase error) in a homogeneous part of the medium. In a finite difference model, numerical dispersion (where the sound speed erroneously depends on frequency) will be introduced by the finite difference discretisation of both spatial derivatives and time derivatives. If you propagate a unipolar plane wave pulse using a FDTD model, you will eventually see it start to accumulate a wiggly tail. This is due to numerical dispersion.
Using the pseudospectral time domain method, the numerical dispersion introduced by the calculation of the spatial derivatives is eliminated, but numerical dispersion is still introduced by the time discretisation. Using the k-space pseudospectral method, numerical dispersion from the time discretisation is also eliminated, provided the sound speed in the k-space operator matches the sound speed in the medium.
For a heterogeneous medium, there will inevitably be regions of the domain where the local sound speed does not match the sound speed in the k-space operator, so numerical dispersion will still be introduced. If required, this can be controlled by using a finer spatial and temporal discretisation. You could try the latter by using a smaller CFL when you define the time step.
The second issue is how accurately the propagation of waves through an interface is modelled. This is the plot shown in Fig. 2(c). This plot was generated based on the amplitude spectrum of the incident, transmitted, and reflected waves, so does not include the effects of phase errors, only amplitude errors. The greater the strength of the step in material properties, the more points per wavelength you will need to accurately model the reflection and transmission coefficients.
Depending on how many points per wavelength you are currently using, and where you are generating and recording the output signals relative to the interface (i.e., do the waves propagate a long distance through the high sound speed region?), the phase error you see in your simulations might come from either of these issues.
Hope that helps,
Brad.
Posted 11 years ago # -
Thanks Bradley, the wave is a 10 Mhz wave that propagates 12 mm in both media, or 83 and 25 wavelengths in water and copper respectively, although I'm not sure if wavelengths is as important in the heterogeneous case. the traducer is located in the water and both transmits and receives.
computationally I can simulate approximately 4 points per wavelength right now before matlab encounters cuda errors in the execution of bsxfun(@times,a,b) for an unknown reason. The use of very small time steps(~e-11) also creates a possibility of the output of the grid becoming NAN at all points. I will try to compute these on another computer and on the CPU to see if they are driver dependent. I'll let you know the results when I get them.
Posted 11 years ago # -
I managed to complete a simulation with 8 points per wavelength, so the errors in calculations appear to be randomly based on grid size and time step chosen.
At 8 points per wavelength the input signal and reflected match very well, although this is not a plane wave and thus some change is expected. Dispersion also seems negligible, although I will run the model at higher grid points to verify. Also, does the choice of a finer time step matter as much if the reference speed is chosen to be the minimum, or will this mainly affect the stability of the model?
Thanks again for your help.
AndrewPosted 11 years ago # -
Hi Andrew,
If the reference sound speed is chosen to match water, the wave will only accumulate phase errors while propagating through the copper. Using a smaller time step will reduce these errors. However, if your source and detector are both in water and you are only measuring one reflection from the interface, then the errors are likely to be due to the accuracy of the reflection. Using more points per wavelength will reduce this error.
Note, Fig. 2(c) from the JASA paper is for a 10% change in the medium properties. All three curves will be less accurate if the strength of the heterogeneity is increased.
Brad.
Posted 11 years ago #
Reply
You must log in to post.