<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="bbPress/1.0.2" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>k-Wave User Forum &#187; Topic: B-mode image interpretation</title>
		<link>http://www.k-wave.org/forum/topic/b-mode-image-interpretation</link>
		<description>Support for the k-Wave MATLAB toolbox</description>
		<language>en-US</language>
		<pubDate>Wed, 13 May 2026 10:16:20 +0000</pubDate>
		<generator>http://bbpress.org/?v=1.0.2</generator>
		<textInput>
			<title><![CDATA[Search]]></title>
			<description><![CDATA[Search all topics from these forums.]]></description>
			<name>q</name>
			<link>http://www.k-wave.org/forum/search.php</link>
		</textInput>
		<atom:link href="http://www.k-wave.org/forum/rss/topic/b-mode-image-interpretation" rel="self" type="application/rss+xml" />

		<item>
			<title>Bradley Treeby on "B-mode image interpretation"</title>
			<link>http://www.k-wave.org/forum/topic/b-mode-image-interpretation#post-5502</link>
			<pubDate>Sun, 15 May 2016 15:45:06 +0000</pubDate>
			<dc:creator>Bradley Treeby</dc:creator>
			<guid isPermaLink="false">5502@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Hi Ola,&#60;/p&#62;
&#60;p&#62;You can turn on plotting by setting &#60;code&#62;&#38;#39;PlotSim&#38;#39;, true&#60;/code&#62; (or removing the line &#60;code&#62;&#38;#39;PlotSim&#38;#39;, false&#60;/code&#62;). As mentioned in the post you linked to, the PML will give you around 3 or 4 decimal points of accuracy, meaning the simulation will contain reflected and transmitted waves due to the computational boundaries that are ~80 dB smaller than the waves entering the PML. Note, the efficiency of the PML is much worse close to the Nyquist limit (see &#60;a href=&#34;http://www.k-wave.org/papers/2014-Robertson-IEEEIUS.pdf&#34;&#62;this paper&#60;/a&#62;).&#60;/p&#62;
&#60;p&#62;In your code above, I noticed that you have &#60;code&#62;f_max = 2.7e6;&#60;/code&#62; with 3 points per wavelength, and &#60;code&#62;tone_burst_freq = 3.5e6;&#60;/code&#62;. This means your source frequency is very close to the maximum frequency supported by the grid. I would suggest using a high number of points per wavelength (either by reducing dx or the source frequency).&#60;/p&#62;
&#60;p&#62;3 hours per scan line seems extremely long. Have you checked that your grid size has small prime factors? What hardware are you using?&#60;/p&#62;
&#60;p&#62;Brad.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>adysko on "B-mode image interpretation"</title>
			<link>http://www.k-wave.org/forum/topic/b-mode-image-interpretation#post-5498</link>
			<pubDate>Thu, 12 May 2016 21:55:00 +0000</pubDate>
			<dc:creator>adysko</dc:creator>
			<guid isPermaLink="false">5498@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;I have noticed that simulation time is indeed too short and changed that. But then the artifacts (big peaks) on the edges of my attenuation coefficient change became larger. I have also decided to not use BonA parameter.  &#60;/p&#62;
&#60;p&#62;I believe this might be caused by PML not working correctly? Could you help me with working stuff out? Thanks!&#60;/p&#62;
&#60;p&#62;It seems I might have the same problem as here: &#60;a href=&#34;http://www.k-wave.org/forum/topic/high-frequency-plane-wave-simulations-and-the-pml#post-4888&#34; rel=&#34;nofollow&#34;&#62;http://www.k-wave.org/forum/topic/high-frequency-plane-wave-simulations-and-the-pml#post-4888&#60;/a&#62;&#60;br /&#62;
but I couldn't get the right answer, since the topic seems unfinished.&#60;/p&#62;
&#60;p&#62;Best regards,&#60;br /&#62;
Ola
&#60;/p&#62;</description>
		</item>
		<item>
			<title>adysko on "B-mode image interpretation"</title>
			<link>http://www.k-wave.org/forum/topic/b-mode-image-interpretation#post-5490</link>
			<pubDate>Tue, 03 May 2016 18:29:34 +0000</pubDate>
			<dc:creator>adysko</dc:creator>
			<guid isPermaLink="false">5490@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Thanks for the reply!&#60;/p&#62;
&#60;p&#62;How can I turn plotting on?&#60;/p&#62;
&#60;p&#62;Unfortunatelly, the simulation is taking quite a long time (1 line 3h with GPU). I have changed the grid and t_array to be more tight. The artifact at the beginning of my higher attenuation area has disappeared. &#60;/p&#62;
&#60;p&#62;I am still not getting the right results in term of evaluating the attenuation coefficient from the RF data. When I'm checking medium frequency of power spectral density it seems that at the beginning of higher attenuation area there are higher frequancies, which is not as theory says.&#60;br /&#62;
Is there something I should especially thinnk about when simulating the &#34;real tissue&#34;-like data?&#60;/p&#62;
&#60;p&#62;I was thinking that maybe medium.alpha_coeff = 1 is quite high for such simulation?&#60;br /&#62;
Maybe some changes in BonA?&#60;/p&#62;
&#60;p&#62;Can you give ma any advice in what I should check?&#60;/p&#62;
&#60;p&#62;Thanks in advance!&#60;br /&#62;
Best regards!&#60;br /&#62;
Ola
&#60;/p&#62;</description>
		</item>
		<item>
			<title>Bradley Treeby on "B-mode image interpretation"</title>
			<link>http://www.k-wave.org/forum/topic/b-mode-image-interpretation#post-5485</link>
			<pubDate>Fri, 29 Apr 2016 11:08:53 +0000</pubDate>
			<dc:creator>Bradley Treeby</dc:creator>
			<guid isPermaLink="false">5485@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Hi adysko,&#60;/p&#62;
&#60;p&#62;It's hard to say exactly (the code you posted doesn't run). I would suggest turning plotting on and watch to see if anything unusual is happening. Is the simulation time long enough to capture reflections from deeper in the medium?&#60;/p&#62;
&#60;p&#62;Brad.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>adysko on "B-mode image interpretation"</title>
			<link>http://www.k-wave.org/forum/topic/b-mode-image-interpretation#post-5474</link>
			<pubDate>Tue, 19 Apr 2016 22:21:02 +0000</pubDate>
			<dc:creator>adysko</dc:creator>
			<guid isPermaLink="false">5474@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Here is simulation part of my code:&#60;/p&#62;
&#60;p&#62;%% DEFINE THE K-WAVE GRID&#60;/p&#62;
&#60;p&#62;pml_x_size = 20;            % [grid points]&#60;br /&#62;
pml_y_size = 10;            % [grid points]&#60;br /&#62;
pml_z_size = 10;            % [grid points]&#60;/p&#62;
&#60;p&#62;x_size = 60e-3;&#60;br /&#62;
y_size = 30e-3;&#60;br /&#62;
z_size = 10e-3;&#60;/p&#62;
&#60;p&#62;f_max = 2.7e6;&#60;br /&#62;
points_per_wavelength = 3;&#60;br /&#62;
c0_min = 1540; &#60;/p&#62;
&#60;p&#62;dx = c0_min/(points_per_wavelength*f_max);&#60;br /&#62;
dy = dx;&#60;br /&#62;
dz = dx;&#60;/p&#62;
&#60;p&#62;Nx = round(x_size/dx);&#60;br /&#62;
Ny = round(y_size/dy);&#60;br /&#62;
Nz = round(z_size/dz);&#60;/p&#62;
&#60;p&#62;%% DEFINE THE MEDIUM PARAMETERS&#60;/p&#62;
&#60;p&#62;% define the properties of the propagation medium&#60;br /&#62;
c0 = 1540;                  % [m/s]&#60;br /&#62;
rho0 = 1000;                % [kg/m^3]&#60;/p&#62;
&#60;p&#62;medium.alpha_coeff = 0.5*ones(kgrid.Nx, kgrid.Ny, kgrid.Nz); % [dB/(MHz^y cm)]&#60;br /&#62;
medium.alpha_coeff(round(0.5*kgrid.Nx):round(0.65*kgrid.Nx),:,:) = 1;&#60;/p&#62;
&#60;p&#62;medium.alpha_power = 1.5;&#60;br /&#62;
medium.BonA = 6;&#60;/p&#62;
&#60;p&#62;% create the time array&#60;br /&#62;
t_end = (Nx*dx)*1.9/c0;     % [s]&#60;br /&#62;
CFL = 0.2;&#60;br /&#62;
kgrid.t_array = makeTime(kgrid, c0, CFL, t_end);&#60;/p&#62;
&#60;p&#62;%% DEFINE THE INPUT SIGNAL&#60;/p&#62;
&#60;p&#62;% define properties of the input signal&#60;br /&#62;
source_strength = 1e6;    	% [Pa]&#60;br /&#62;
tone_burst_freq = 3.5e6; 	% [Hz]&#60;br /&#62;
tone_burst_cycles = 4;&#60;br /&#62;
signal_burst_freeq = 1/kgrid.dt;&#60;/p&#62;
&#60;p&#62;% create the input signal using toneBurst&#60;br /&#62;
input_signal = toneBurst(signal_burst_freeq, tone_burst_freq, tone_burst_cycles);&#60;/p&#62;
&#60;p&#62;% scale the source magnitude by the source_strength divided by the&#60;br /&#62;
% impedance (the source is assigned to the particle velocity)&#60;br /&#62;
input_signal = (source_strength./(c0*rho0)).*input_signal;&#60;/p&#62;
&#60;p&#62;%% DEFINE THE ULTRASOUND TRANSDUCER&#60;/p&#62;
&#60;p&#62;% physical properties of the transducer&#60;br /&#62;
transducer.number_elements = 36;  	% total number of transducer elements&#60;br /&#62;
transducer.element_width = 2;       % width of each element [grid points]&#60;br /&#62;
transducer.element_length = 24;  	% length of each element [grid points]&#60;br /&#62;
transducer.element_spacing = 0;  	% spacing (kerf  width) between the elements [grid points]&#60;br /&#62;
transducer.radius = inf;            % radius of curvature of the transducer [m]&#60;/p&#62;
&#60;p&#62;% calculate the width of the transducer in grid points&#60;br /&#62;
transducer_width = transducer.number_elements*transducer.element_width ...&#60;br /&#62;
    + (transducer.number_elements - 1)*transducer.element_spacing;&#60;/p&#62;
&#60;p&#62;% use this to position the transducer in the middle of the computational grid&#60;br /&#62;
transducer.position = round([1, Ny/2 - transducer_width/2, Nz/2 - transducer.element_length/2]);&#60;/p&#62;
&#60;p&#62;% properties used to derive the beamforming delays&#60;br /&#62;
transducer.sound_speed = c0;                % sound speed [m/s]&#60;br /&#62;
transducer.focus_distance = 20e-3;          % focus distance [m]&#60;br /&#62;
transducer.steering_angle = 0;              % steering angle [degrees]&#60;/p&#62;
&#60;p&#62;% apodization&#60;br /&#62;
transducer.transmit_apodization = 'Hanning';&#60;br /&#62;
transducer.receive_apodization = 'Rectangular';&#60;/p&#62;
&#60;p&#62;% define the transducer elements that are currently active&#60;br /&#62;
%number_active_elements = 32;&#60;br /&#62;
transducer.active_elements = ones(transducer.number_elements, 1);&#60;/p&#62;
&#60;p&#62;% append input signal used to drive the transducer&#60;br /&#62;
transducer.input_signal = input_signal;&#60;/p&#62;
&#60;p&#62;% create the transducer using the defined settings&#60;br /&#62;
transducer = makeTransducer(kgrid, transducer);&#60;/p&#62;
&#60;p&#62;% print out transducer properties&#60;br /&#62;
transducer.properties;&#60;br /&#62;
transducer.plot;&#60;br /&#62;
%% DEFINE THE MEDIUM PROPERTIES&#60;/p&#62;
&#60;p&#62;% define a large image size to move across&#60;br /&#62;
number_scan_lines = 9;&#60;br /&#62;
Nx_tot = Nx;&#60;br /&#62;
Ny_tot = Ny + number_scan_lines*transducer.element_width;&#60;br /&#62;
Nz_tot = Nz;&#60;/p&#62;
&#60;p&#62;% define a random distribution of scatterers for the medium&#60;br /&#62;
background_map_mean = 1;&#60;br /&#62;
background_map_std = 0.008;&#60;br /&#62;
background_map = background_map_mean + background_map_std*randn([Nx_tot, Ny_tot, Nz_tot]);&#60;/p&#62;
&#60;p&#62;% define properties&#60;br /&#62;
sound_speed_map = c0*ones(Nx_tot, Ny_tot, Nz_tot).*background_map;&#60;br /&#62;
density_map = rho0*ones(Nx_tot, Ny_tot, Nz_tot).*background_map;&#60;/p&#62;
&#60;p&#62;%% RUN THE SIMULATION&#60;/p&#62;
&#60;p&#62;% preallocate the storage&#60;br /&#62;
scan_lines = zeros(number_scan_lines, kgrid.Nt);&#60;/p&#62;
&#60;p&#62;% set the input settings&#60;br /&#62;
input_args = {...&#60;br /&#62;
    'PMLInside', false, 'PMLSize', [pml_x_size, pml_y_size, pml_z_size], ...&#60;br /&#62;
    'DataCast', DATA_CAST, 'DataRecast', true, 'PlotSim', false};&#60;/p&#62;
&#60;p&#62;if RUN_SIMULATION&#60;/p&#62;
&#60;p&#62;   % set medium position&#60;br /&#62;
   % medium_position = 1;&#60;br /&#62;
   tr_width = transducer.element_width; &#60;/p&#62;
&#60;p&#62;    for scan_line_index = 1:number_scan_lines&#60;/p&#62;
&#60;p&#62;        input_args = {'PMLInside', false, 'PMLSize', [pml_x_size, pml_y_size, pml_z_size], ...&#60;br /&#62;
        'DataCast', DATA_CAST, 'DataRecast', true, 'PlotSim', false};&#60;br /&#62;
        n = Ny;&#60;br /&#62;
        tr_wid = tr_width;&#60;/p&#62;
&#60;p&#62;        med = struct();&#60;br /&#62;
        med = medium;&#60;br /&#62;
        if (scan_line_index==1)&#60;br /&#62;
            medium_position = 1&#60;br /&#62;
        else&#60;br /&#62;
            medium_position = scan_line_index*tr_width;&#60;br /&#62;
        end&#60;br /&#62;
        disp('');&#60;br /&#62;
        disp(['Computing scan line ' num2str(scan_line_index) ' of ' num2str(number_scan_lines)]);&#60;/p&#62;
&#60;p&#62;        % load the current section of the medium&#60;br /&#62;
        med.sound_speed = sound_speed_map(:, medium_position:medium_position + n - 1, :);&#60;br /&#62;
        med.density = density_map(:, medium_position:medium_position + n - 1, :);&#60;/p&#62;
&#60;p&#62;        % run the simulation&#60;br /&#62;
        sensor_data = kspaceFirstOrder3D(kgrid, med, transducer, transducer, input_args{:});&#60;/p&#62;
&#60;p&#62;        % extract the scan line from the sensor data&#60;br /&#62;
        scan_lines(scan_line_index, :) = transducer.scan_line(sensor_data);&#60;/p&#62;
&#60;p&#62;        % update medium position&#60;br /&#62;
        %medium_position = medium_position + transducer.element_width;&#60;br /&#62;
    end&#60;/p&#62;
&#60;p&#62;    % save the scan lines to disk&#60;br /&#62;
    save example_us_bmode_scan_lines17 scan_lines;&#60;br /&#62;
else&#60;br /&#62;
    % load the scan lines from disk&#60;br /&#62;
    load example_us_bmode_scan_lines17&#60;br /&#62;
end&#60;br /&#62;
scan_lines_orig=scan_lines;
&#60;/p&#62;</description>
		</item>
		<item>
			<title>adysko on "B-mode image interpretation"</title>
			<link>http://www.k-wave.org/forum/topic/b-mode-image-interpretation#post-5473</link>
			<pubDate>Tue, 19 Apr 2016 22:15:17 +0000</pubDate>
			<dc:creator>adysko</dc:creator>
			<guid isPermaLink="false">5473@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Hi!&#60;/p&#62;
&#60;p&#62;I'm trying to simulate the ultrasound data to use it to evaluate method for estmating attenuation coefficient in tissue.&#60;br /&#62;
I used the B-mode linear transducer example, changed some parameters and got the below results (just couple of lines):&#60;/p&#62;
&#60;p&#62;&#60;a href=&#34;http://postimg.org/image/aihmcu11z/&#34; rel=&#34;nofollow&#34;&#62;http://postimg.org/image/aihmcu11z/&#60;/a&#62;&#60;/p&#62;
&#60;p&#62;Can you help me to interpret the results?&#60;/p&#62;
&#60;p&#62;The grid has 6cm in depth. Focus - 2cm. Attenutation coefficient 0,5dB/MHz and 1dB/MHz in 3-4cm&#60;/p&#62;
&#60;p&#62;I understand that at 2cm there is a brighter part, becuase of focusing. I don't understand why at 3cm there is a jump in amplitude. &#60;/p&#62;
&#60;p&#62;Thanks!&#60;br /&#62;
Ola
&#60;/p&#62;</description>
		</item>

	</channel>
</rss>
