i'm trying to understand how sensor.time_reversal_boundary_data would be useful to me if i want to time reverse the data recorded at a specific sensor location and use it as a single source now that transmits this reversed data into the model (according to time reversal theory ,since i have reflective boundaries in my 2d model, the waves will now focus at a single point in the model i.e.; where they originated from (Since i m using a single source). Firstly , am i right in using sensor.time_reversal_boundary_data for my purpose of sound focusing ? secondly , i dont understand what Kspacefirstorder2D mentions about indexing boundary data for time reversal ?
k-Wave
A MATLAB toolbox for the time-domain
simulation of acoustic wave fields
time reversal
(5 posts) (3 voices)-
Posted 10 years ago #
-
If I am understanding your question right you wish to focus some arbitrary source, to a specific point in space. if my understanding is correct, 2d reconstruction will use the data received by the sensor and attempt to reconstruct the source, in this case the point.
In order to create a focal law based on your simulation you would need to create a point source emitter and simulate the forward propagation of the wave from this point. You would then place receivers at every location where a source will be present and monitor the incoming waveform. This data will then be fed backwards into the new model, where your source terms are located at the receiver locations and the input wave is the output wave in reverse.
This will yield an approximation of a field focused at the point in space. although the fact that the transmitters would now be treated as point sources in the new model will cause the model to yield a differing focal spot, meaning that this may be a very crude approximation in this case.Posted 10 years ago # -
Hi ouelletn,
You are partly right at that ! So basically i m using just a single source and a sensor . In which case i will just propagate the time reversed signal from the location where the sensor was placed and it should reconstruct my original pulse source signal at the original source point . How do i execute this using sensor.time_reversal_boundary_data ? . Simply , could i just input this reversed data as source.p now ?Posted 10 years ago # -
In both cases you will be running a forward simulation, I would suggest looking at the recording the particle velocity example. There we have 4 point sensors which each receive a differing signal velocity and pressure. These received signal would then need to be propagated in reverse from these points to approximate the original source, this would still be done using kspaceFirstOrder2D, but the signals would be reversed using matlab commands fliplr(signal) or flipud(signal). This would not make use of the time reversal code.
If you are trying to recreate a point source using another point source this will be impossible. The first point source radiates waves in all directions, meaning that in order to reconstruct it you will require point source emitters in all directions. The best you will be able to do is create a signal at that point that appears the same to a sensor at that point, ignoring spatial spread of the wave. It will not be possible to reconstruct the original source using only a single emitter.Posted 10 years ago # -
Hi Gurashish,
The only other thing to take into account in addition to what ouelletn has already said, is if you are running a forward simulation with your reversed time data assigned to
source.p
, you should also specify that this pressure is enforced as a boundary condition, rather than injected as a mass source. You can do this by setting:source.p_mode = 'dirichlet';
Brad.
Posted 10 years ago #
Reply
You must log in to post.