<?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: Reverberations after tx signal in 2D</title>
		<link>http://www.k-wave.org/forum/topic/reverberations-after-tx-signal-in-2d</link>
		<description>Support for the k-Wave MATLAB toolbox</description>
		<language>en-US</language>
		<pubDate>Wed, 13 May 2026 00:23: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/reverberations-after-tx-signal-in-2d" rel="self" type="application/rss+xml" />

		<item>
			<title>Bradley Treeby on "Reverberations after tx signal in 2D"</title>
			<link>http://www.k-wave.org/forum/topic/reverberations-after-tx-signal-in-2d#post-8416</link>
			<pubDate>Fri, 07 Jan 2022 13:59:14 +0000</pubDate>
			<dc:creator>Bradley Treeby</dc:creator>
			<guid isPermaLink="false">8416@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;If you mean the signal arriving around 35 us, this would appear to be more than 150 dB smaller than the main signal. Likely it's the waves travelling through the perfectly matched layer (PML) and wrapping around the grid and travelling to the sensor position (this happens in all dimensions). The PML is usually good for a few decimals points (maybe 80-100 dB, depending on PML properties and incident angle).
&#60;/p&#62;</description>
		</item>
		<item>
			<title>fraserh1 on "Reverberations after tx signal in 2D"</title>
			<link>http://www.k-wave.org/forum/topic/reverberations-after-tx-signal-in-2d#post-8408</link>
			<pubDate>Thu, 06 Jan 2022 13:07:08 +0000</pubDate>
			<dc:creator>fraserh1</dc:creator>
			<guid isPermaLink="false">8408@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Hi Brad&#60;br /&#62;
Thanks for your reply.&#60;/p&#62;
&#60;p&#62;I've reviewed my original code and realised I was re-defining the tx frequency inside another script call! So now my question is regarding the frequency change.&#60;/p&#62;
&#60;p&#62;I've added my code below too which includes a dB plot for clarity.&#60;/p&#62;
&#60;p&#62;By setting &#60;code&#62;source_freq = 1e6&#60;/code&#62; with &#60;code&#62;t_end=100e-6&#60;/code&#62; and varying Nx &#38;amp; Ny from 128 to 1024, I see a small reverberation occurring after the main peak.&#60;/p&#62;
&#60;p&#62;To investigate further, I added a second tone burst and it appears that the reverberation is a smaller amplitude replica of the transmitted signal.&#60;/p&#62;
&#60;p&#62;So is this an issue with 2D simulations?&#60;/p&#62;
&#60;p&#62;Thanks for your time!&#60;/p&#62;
&#60;pre&#62;&#60;code&#62;clearvars;

% =========================================================================
% SIMULATION
% =========================================================================

% create the computational grid
Nx = 1024;           % number of grid points in the x (row) direction
Ny = 1024;           % number of grid points in the y (column) direction
dx = 50e-3/Nx;    	% grid point spacing in the x direction [m]
dy = dx;            % grid point spacing in the y direction [m]
kgrid = kWaveGrid(Nx, dx, Ny, dy);

% define the properties of the propagation medium
medium.sound_speed = 1500;  % [m/s]
medium.alpha_coeff = 0.75;  % [dB/(MHz^y cm)]
medium.alpha_power = 1.5;

% create the time array
kgrid.makeTime(medium.sound_speed);
t_end = 100e-6;
kgrid.makeTime(medium.sound_speed, [], t_end)

% define a single source point
source.p_mask = zeros(Nx, Ny);
source.p_mask(end - Nx/4, Ny/2) = 1;

% define a time varying sinusoidal source
source_freq = 1e6;   % [Hz]
source_mag = 2;         % [Pa]
source.p = source_mag * sin(2 * pi * source_freq * kgrid.t_array);

source.p = [toneBurst(1/kgrid.dt, source_freq, 8), zeros(1,100),toneBurst(1/kgrid.dt, source_freq, 3)] ;
source.p=[source.p, zeros(1,length(kgrid.t_array)-length(source.p))];

% filter the source to remove high frequencies not supported by the grid
source.p = filterTimeSeries(kgrid, medium, source.p);

% define a single sensor point
sensor.mask = zeros(Nx, Ny);
sensor.mask(Nx/4, Ny/2) = 1;

% define the acoustic parameters to record
sensor.record = {&#38;#39;p&#38;#39;, &#38;#39;p_final&#38;#39;};

% run the simulation
sensor_data = kspaceFirstOrder2DG(kgrid, medium, source, sensor);

% =========================================================================
% VISUALISATION
% =========================================================================

% plot the simulated sensor data
figure;
[t_sc, scale, prefix] = scaleSI(max(kgrid.t_array(:)));

subplot(2, 1, 1);
plot(kgrid.t_array * scale, 1-20*log(1./(sensor_data.p./max(sensor_data.p))), &#38;#39;r-&#38;#39;);
xlabel([&#38;#39;Time [&#38;#39; prefix &#38;#39;s]&#38;#39;]);
ylabel(&#38;#39;Signal Amplitude&#38;#39;);
axis tight;
title(&#38;#39;Input Pressure Signal&#38;#39;);

subplot(2, 1, 2);
plot(kgrid.t_array * scale, sensor_data.p, &#38;#39;r-&#38;#39;);
xlabel([&#38;#39;Time [&#38;#39; prefix &#38;#39;s]&#38;#39;]);
ylabel(&#38;#39;Signal Amplitude&#38;#39;);
axis tight;
title(&#38;#39;Sensor Pressure Signal&#38;#39;);&#60;/code&#62;&#60;/pre&#62;</description>
		</item>
		<item>
			<title>Bradley Treeby on "Reverberations after tx signal in 2D"</title>
			<link>http://www.k-wave.org/forum/topic/reverberations-after-tx-signal-in-2d#post-8378</link>
			<pubDate>Thu, 16 Dec 2021 11:27:18 +0000</pubDate>
			<dc:creator>Bradley Treeby</dc:creator>
			<guid isPermaLink="false">8378@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;If I swap the source in that example with the code above, increase the end time in &#60;code&#62;kgrid.makeTime&#60;/code&#62; to 100e-6, and increase the number of grid points to, e.g., 256, I don't see any reverberations, just a flat line after the signal is recorded. Could you post exactly the changes (or the whole code snippet)?
&#60;/p&#62;</description>
		</item>
		<item>
			<title>fraserh1 on "Reverberations after tx signal in 2D"</title>
			<link>http://www.k-wave.org/forum/topic/reverberations-after-tx-signal-in-2d#post-8319</link>
			<pubDate>Thu, 30 Sep 2021 10:26:53 +0000</pubDate>
			<dc:creator>fraserh1</dc:creator>
			<guid isPermaLink="false">8319@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Hi there,&#60;/p&#62;
&#60;p&#62;When replacing the continuous wave with a tone burst in the example &#34;Monopole Point Source In A Homogeneous Propagation Medium&#34;, I notice a reverberation after the sensor receives the transmitted waveform which is linked to the grid point spacing.&#60;/p&#62;
&#60;p&#62;I use a toneBurst at the default 0.25MHz and pad the ends with zeros to make equal to the length of t_array (purely so the plot works - the issue occurs even without this):&#60;br /&#62;
&#60;pre&#62;&#60;code&#62;source.p = toneBurst(1/kgrid.dt, source_freq, 8);
source.p=[source.p, zeros(1,length(kgrid.t_array)-length(source.p))];&#60;/code&#62;&#60;/pre&#62;
&#60;p&#62;When increasing Nx,Ny from 128 &#38;gt; 1024 I notice that the reverberations after the received signal increase as the number of grid points increases.&#60;/p&#62;
&#60;p&#62;Since the toneBurst is gaussian windowed, my assumption is that this isn't a source smoothing problem as in the Numerical Analysis examples.&#60;/p&#62;
&#60;p&#62;Is this issue caused by the 2D simulation not being compactly supported? &#60;/p&#62;
&#60;p&#62;I note in the &#34;Photoacoustic Waveforms in 1D, 2D and 3D Example&#34; that, for 2D, &#34;..there will always be some signal arriving at the detector from some (increasingly distant) part of the line source.&#34;&#60;/p&#62;
&#60;p&#62;I've been resisting simulating in 3D due to computation times of simulating a large (50mm x 50mm) space!&#60;/p&#62;
&#60;p&#62;Thanks for your help
&#60;/p&#62;</description>
		</item>

	</channel>
</rss>
