<?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: Photoacoustic tomography reconstruction (delay and sum)</title>
		<link>http://www.k-wave.org/forum/topic/photoacoustic-tomography-reconstruction-delay-and-sum</link>
		<description>Support for the k-Wave MATLAB toolbox</description>
		<language>en-US</language>
		<pubDate>Fri, 15 May 2026 10:39:23 +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/photoacoustic-tomography-reconstruction-delay-and-sum" rel="self" type="application/rss+xml" />

		<item>
			<title>leoliu5168 on "Photoacoustic tomography reconstruction (delay and sum)"</title>
			<link>http://www.k-wave.org/forum/topic/photoacoustic-tomography-reconstruction-delay-and-sum#post-8082</link>
			<pubDate>Tue, 09 Mar 2021 19:23:27 +0000</pubDate>
			<dc:creator>leoliu5168</dc:creator>
			<guid isPermaLink="false">8082@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Hello everyone&#60;br /&#62;
I'm trying to simulate delay and sum in photoacoustic tomography. I've set the initial pressure and medium. I would like to know how to calculate time delay and reconstruct the image from sensor data. If possible, please give me some sample codes. Thanks for helping me.&#60;/p&#62;
&#60;p&#62;clearvars;&#60;br /&#62;
close all;&#60;br /&#62;
% =========================================================================&#60;br /&#62;
% SIMULATION&#60;br /&#62;
% =========================================================================&#60;/p&#62;
&#60;p&#62;% create the computational grid&#60;br /&#62;
Nx = 128;           % number of grid points in the x (row) direction&#60;br /&#62;
Ny = 128;           % number of grid points in the y (column) direction&#60;br /&#62;
dx = 0.1e-3;        % grid point spacing in the x direction [m]&#60;br /&#62;
dy = 0.1e-3;        % grid point spacing in the y direction [m]&#60;br /&#62;
kgrid = kWaveGrid(Nx, dx, Ny, dy);&#60;/p&#62;
&#60;p&#62;% define the properties of the propagation medium&#60;br /&#62;
medium.sound_speed = 1500;  % [m/s]&#60;br /&#62;
medium.alpha_coeff = 0.75;  % [dB/(MHz^y cm)]&#60;br /&#62;
medium.alpha_power = 1.5; &#60;/p&#62;
&#60;p&#62;% create initial pressure distribution using makeDisc&#60;br /&#62;
disc_magnitude = 5; % [Pa]&#60;br /&#62;
disc_x_pos = 50;    % [grid points]&#60;br /&#62;
disc_y_pos = 50;    % [grid points]&#60;br /&#62;
disc_radius = 8;    % [grid points]&#60;br /&#62;
disc_1 = disc_magnitude * makeDisc(Nx, Ny, disc_x_pos, disc_y_pos, disc_radius);&#60;/p&#62;
&#60;p&#62;disc_magnitude = 3; % [Pa]&#60;br /&#62;
disc_x_pos = 80;    % [grid points]&#60;br /&#62;
disc_y_pos = 60;    % [grid points]&#60;br /&#62;
disc_radius = 5;    % [grid points]&#60;br /&#62;
disc_2 = disc_magnitude * makeDisc(Nx, Ny, disc_x_pos, disc_y_pos, disc_radius);&#60;/p&#62;
&#60;p&#62;disc_magnitude = 1; % [Pa]&#60;br /&#62;
disc_x_pos = 50;    % [grid points]&#60;br /&#62;
disc_y_pos = 80;    % [grid points]&#60;br /&#62;
disc_radius = 3;    % [grid points]&#60;br /&#62;
disc_3 = disc_magnitude * makeDisc(Nx, Ny, disc_x_pos, disc_y_pos, disc_radius);&#60;/p&#62;
&#60;p&#62;source.p0 = disc_1 + disc_2+ disc_3;&#60;/p&#62;
&#60;p&#62;% define a centered circular sensor&#60;br /&#62;
sensor_radius = 4e-3;   % [m]&#60;br /&#62;
num_sensor_points = 50;&#60;br /&#62;
sensor.mask = makeCartCircle(sensor_radius, num_sensor_points);&#60;/p&#62;
&#60;p&#62;% run the simulation&#60;br /&#62;
sensor_data = kspaceFirstOrder2D(kgrid, medium, source, sensor);&#60;/p&#62;
&#60;p&#62;% plot the initial pressure and sensor distribution&#60;br /&#62;
figure;&#60;br /&#62;
imagesc(kgrid.y_vec * 1e3, kgrid.x_vec * 1e3, source.p0 + cart2grid(kgrid, sensor.mask), [-1, 1]);&#60;br /&#62;
colormap(getColorMap);&#60;br /&#62;
ylabel('x-position [mm]');&#60;br /&#62;
xlabel('y-position [mm]');&#60;br /&#62;
axis image;&#60;/p&#62;
&#60;p&#62;% plot the simulated sensor data&#60;br /&#62;
figure;&#60;br /&#62;
imagesc(sensor_data, [-1, 1]);&#60;br /&#62;
colormap(getColorMap);&#60;br /&#62;
ylabel('Sensor Position');&#60;br /&#62;
xlabel('Time Step');&#60;br /&#62;
colorbar;&#60;br /&#62;
title(&#34;Sensor data&#34;);
&#60;/p&#62;</description>
		</item>

	</channel>
</rss>
