Hi,
I am attempting to simulate an impulse response of an acoustic channel. transmitter is omni-directional (practically a 0.5mmX0.5mmX0.5mm voxel, which a pulse pressure waveform is assigned to).
Two questions arising from a basic simulation I ran (code attached at the bottom of the post) :
1. I defined a 1 voxel pressure source and located a sensor at the same voxel (source.p_mask==sensor. mask) . I Would expect the pressure recording at the source voxel to be exactly as the source waveform assigned to source.p. In practice, pressure recording is different than source pressure.
2. When placing sensors on-axis Infront of the transmitter, the pressure waveform seems to be a time derivative of the source waveform (while expected to receive a scaled version of the source waveform). Why is that?
3. What would be the best way to evaluate the source energy?
Thanks ahead,
Benji
clear all;
Nx=128;
Ny=128;
Nz=128;
dx =0.0005; % grid point spacing in the x direction [m]
dy =0.0005; % grid point spacing in the y direction [m]
dz =0.0005; % grid point spacing in the z direction [m]
kgrid = makeGrid(Nx, dx, Ny, dy, Nz, dz);
medium.sound_speed=1500;
medium.density=1000;
[t,dt]=makeTime(kgrid,medium.sound_speed,[],2*10^(-5));
kgrid.t_array=t;
source.p_mask=zeros(Nx,Ny,Nz);
source.p_mask(15,64,64)=1;
source.p=zeros(size(t));
source.p(10)=1;
source.p=filterTimeSeries(kgrid,medium,source.p);
sensor.mask=zeros(Nx,Ny,Nz);
sensor.mask(25,40,40)=1;
sensor.record={'p','u'};
input_args = {};
filename=['C:\Users\goral\Documents\Thesis\Matlab\benji\thesis book\try3.h5'];
sensor_data=kspaceFirstOrder3D(kgrid, medium, source, sensor, input_args{:});