<?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: Why the TR reconstruction for layered heterogeneous media has a lot of artifacts</title>
		<link>http://www.k-wave.org/forum/topic/why-the-tr-reconstruction-for-layered-heterogeneous-media-has-a-lot-of-artifacts</link>
		<description>Support for the k-Wave MATLAB toolbox</description>
		<language>en-US</language>
		<pubDate>Wed, 13 May 2026 01:52:58 +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/why-the-tr-reconstruction-for-layered-heterogeneous-media-has-a-lot-of-artifacts" rel="self" type="application/rss+xml" />

		<item>
			<title>bencox on "Why the TR reconstruction for layered heterogeneous media has a lot of artifacts"</title>
			<link>http://www.k-wave.org/forum/topic/why-the-tr-reconstruction-for-layered-heterogeneous-media-has-a-lot-of-artifacts#post-6903</link>
			<pubDate>Sat, 22 Jun 2019 21:14:06 +0000</pubDate>
			<dc:creator>bencox</dc:creator>
			<guid isPermaLink="false">6903@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Hi jhr,&#60;/p&#62;
&#60;p&#62;Do the artifacts go away if you put sensors all around the edge and record for a long time? I suspect they are limited-view artifacts made worse by the multiple-reflections within the multiple layers. There are two issues with the multiple layers. First, more energy will be prevented from reaching the sensors, and second, it is necessary to record for longer because time reversal requires that the acoustic pressure time series is measured until the acoustic pressure inside the image region has dropped to zero.&#60;/p&#62;
&#60;p&#62;Best wishes,&#60;br /&#62;
Ben
&#60;/p&#62;</description>
		</item>
		<item>
			<title>jhr on "Why the TR reconstruction for layered heterogeneous media has a lot of artifacts"</title>
			<link>http://www.k-wave.org/forum/topic/why-the-tr-reconstruction-for-layered-heterogeneous-media-has-a-lot-of-artifacts#post-6863</link>
			<pubDate>Tue, 28 May 2019 08:12:06 +0000</pubDate>
			<dc:creator>jhr</dc:creator>
			<guid isPermaLink="false">6863@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;I use TR method to reconstruct the simulated data for layered media cases. However, the results seem exist a lot of artifacts. Here is the code&#60;/p&#62;
&#60;p&#62;clearvars;&#60;/p&#62;
&#60;p&#62;% =========================================================================&#60;br /&#62;
% SIMULATION&#60;br /&#62;
% =========================================================================&#60;/p&#62;
&#60;p&#62;% create the computational grid&#60;br /&#62;
PML_size = 20;              % size of the PML in grid points&#60;br /&#62;
Nx = 256 - 2 * PML_size;    % number of grid points in the x direction&#60;br /&#62;
Ny = 256 - 2 * PML_size;    % number of grid points in the y 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*ones(Nx,Ny);&#60;br /&#62;
medium.sound_speed(Nx/2:3*Nx/4,:) = 2900;&#60;br /&#62;
medium.density = 1000*ones(Nx,Ny);&#60;br /&#62;
medium.density(Nx/2:3*Nx/4,:) = 1900;&#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 = 200;            % [grid points]&#60;br /&#62;
disc_y_pos = 140;           % [grid points]&#60;br /&#62;
disc_radius = 1;            % [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_x_pos = 200;            % [grid points]&#60;br /&#62;
disc_y_pos = 110;           % [grid points]&#60;br /&#62;
disc_radius = 1;            % [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;% smooth the initial pressure distribution and restore the magnitude&#60;br /&#62;
p0 = smooth(kgrid, disc_1 + disc_2, true);&#60;/p&#62;
&#60;p&#62;% assign to the source structure&#60;br /&#62;
source.p0 = p0;&#60;/p&#62;
&#60;p&#62;% define a binary line sensor&#60;br /&#62;
sensor.mask = zeros(Nx, Ny);&#60;br /&#62;
sensor.mask(1, :) = 1;&#60;/p&#62;
&#60;p&#62;% create the time array&#60;br /&#62;
kgrid.makeTime(medium.sound_speed);&#60;/p&#62;
&#60;p&#62;% set the input arguements: force the PML to be outside the computational&#60;br /&#62;
% grid; switch off p0 smoothing within kspaceFirstOrder2D&#60;br /&#62;
input_args = {'PMLInside', false, 'PMLSize', PML_size, 'Smooth', false, 'PlotPML', false};&#60;/p&#62;
&#60;p&#62;% run the simulation&#60;br /&#62;
sensor_data = kspaceFirstOrder2D(kgrid, medium, source, sensor, input_args{:});&#60;/p&#62;
&#60;p&#62;% reset the initial pressure&#60;br /&#62;
source.p0 = 0;&#60;/p&#62;
&#60;p&#62;% assign the time reversal data&#60;br /&#62;
sensor.time_reversal_boundary_data = sensor_data;&#60;/p&#62;
&#60;p&#62;% run the time reversal reconstruction&#60;br /&#62;
p0_recon = kspaceFirstOrder2D(kgrid, medium, source, sensor, input_args{:});&#60;/p&#62;
&#60;p&#62;% add first order compensation for only recording over a half plane&#60;br /&#62;
p0_recon = 2 * p0_recon;
&#60;/p&#62;</description>
		</item>

	</channel>
</rss>
