Hi All, Hi Dr. Cox and Dr. Treeby,
The example "example_us_b_mode_linear_transducer",
% ...illustrates how k-Wave can be used for the simulation of
% B-mode ultrasound images (including tissue harmonic imaging) analogous to
% those produced by a modern diagnostic ultrasound scanner. It builds on
% the Defining An Ultrasound Transducer, Simulating Ultrasound Beam
% Patterns, and Using An Ultrasound Transducer As A Sensor examples.
just to use the same words of the authors :-)
The script in the RUN SIMULATION session is principally constituted by a loop on the number of scan lines (in this case 96), inside it is performed the generation of a phantom and contextually it is applied the
scan_lines method;
At the input of kspaceFirstOrder3D function we have as source and as output the same transducer object
kspaceFirstOrder3D(kgrid, medium, transducer, transducer, input_args{:});
For what concern the output we have a sensor_data matrix of nxm elements
Now my question, every one single signal received it is generated by only one active element at a time?
I understand that the simulation is performed as below.
If we have 32 active elements, the first one element release the input pulse and register the returned pulse, after this, in sequence, the second element release the input pulse and register the returned pulse, the third element release the input pulse and register the returned pulse and so on...
until all 32 signals were recorded, it is true?
I would like to change the things in way to register with all 32 elements the signal that come from only one element, and choosing from time to time which element or which group of elements will be active in input.
At the limit it could have the received signal for each combination of the elements transmitters and receivers (openings full scan), where it will sequentially for each transmitting element all the receiving elements are illuminated. That is, if I for example, an array of 32 elements, for each of them which emits a pulse, it will have 32 that receive up to cover all combinations to have a total of 1024 combinations.
I think that it will be possible to do this putting the
kspaceFirstOrder3D inside a inner loop (32 or different number_of_active_elements iterations) after defining a new object transducer ie using a transducer_input (that will change inside at the loop) as input and a transducer_output object as output,
it will be something like this:
for i=1:step:number_of_elements
transducer1.mask(i) = 1;
sensor_data = kspaceFirstOrder3D(kgrid, medium, transducer_input(i), transducer_output, input_args{:}).
end
but maybe there is a solution more smart than this mine...
How can I do it?
I hope that my questions are clear.
thanks a lot
Gg