Hello,
I am trying to resolve some discrepancy/ambiguity about input signal assignment using kWaveArray objects to define my transducer/array geometry.
Previously I use kWaveTransducer object passing input in m/s to be assigned to particle velocities as follows:
% create the input signal using toneBurst
input_signal = toneBurst(1/kgrid.dt, tone_burst_freq, tone_burst_cycles);
% scale the source magnitude by the source strength in m/s
input_signal = source_velocity.*input_signal;
...
transducer.input_signal = input_signal;
% create the transducer using the defined settings
transducer = kWaveTransducer(kgrid, transducer);
Now a similar geometry defined kWaveArray has a different pressure output and I assume this relates partially to my use but perhaps to implementation? Here is essentially what I tried:
karray = kWaveArray;
% adding disc elements
for col=1:N
for row=1:N
karray.addDiscElement(elem_pos, diameter, [100,0,0]);
end
end
...
% assign binary mask
source.p_mask = karray.getArrayBinaryMask(kgrid);
...
source_sig = repmat(input_signal,count,1);%for assigning to number elements count
% get distributed source signals (this automatically returns a weighted
% source signal for each grid point that forms part of the source elements)
source.p = karray.getDistributedSourceSignal(kgrid, source_sig);
Based on documentation http://www.k-wave.org/documentation/example_us_defining_transducer.php
I assume the particle velocities/grid points are assigned the input_signal in m/s on my attempt to use kWaveTransducer but here the weighting scheme reduces the values at each of the grid points?
Is there a recommended approach that assures grid points for all elements of the kWaveArray are assigned specific particle velocity time traces I would like to pass to them in source_sig or some other structure?
Thank you for the attention.
Cheers,
Vatche