<?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: High Frequency Sensor for Photoacoustic Simulation</title>
		<link>http://www.k-wave.org/forum/topic/high-frequency-sensor-for-photoacoustic-simulation</link>
		<description>Support for the k-Wave MATLAB toolbox</description>
		<language>en-US</language>
		<pubDate>Wed, 13 May 2026 08:14:30 +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/high-frequency-sensor-for-photoacoustic-simulation" rel="self" type="application/rss+xml" />

		<item>
			<title>Mukaddim on "High Frequency Sensor for Photoacoustic Simulation"</title>
			<link>http://www.k-wave.org/forum/topic/high-frequency-sensor-for-photoacoustic-simulation#post-7625</link>
			<pubDate>Wed, 17 Jun 2020 19:30:58 +0000</pubDate>
			<dc:creator>Mukaddim</dc:creator>
			<guid isPermaLink="false">7625@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Hello Brad,&#60;/p&#62;
&#60;p&#62;Thanks for your input. I had to set higher temporal sampling frequency thus reducing dt to resolve&#60;br /&#62;
the issue. &#60;/p&#62;
&#60;p&#62;Regards,&#60;br /&#62;
Rashid
&#60;/p&#62;</description>
		</item>
		<item>
			<title>Bradley Treeby on "High Frequency Sensor for Photoacoustic Simulation"</title>
			<link>http://www.k-wave.org/forum/topic/high-frequency-sensor-for-photoacoustic-simulation#post-7604</link>
			<pubDate>Sat, 13 Jun 2020 13:05:20 +0000</pubDate>
			<dc:creator>Bradley Treeby</dc:creator>
			<guid isPermaLink="false">7604@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Hi Rashid,&#60;/p&#62;
&#60;p&#62;Quick check - if your point targets have a higher sound speed, try setting &#60;code&#62;medium.sound_speed_ref&#60;/code&#62; to the background values (it defaults to the max). You may need to decrease your CFL / dt (i.e., increase the temporal sampling) to make the simulation stable.&#60;/p&#62;
&#60;p&#62;Brad.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>Mukaddim on "High Frequency Sensor for Photoacoustic Simulation"</title>
			<link>http://www.k-wave.org/forum/topic/high-frequency-sensor-for-photoacoustic-simulation#post-7589</link>
			<pubDate>Tue, 09 Jun 2020 20:54:47 +0000</pubDate>
			<dc:creator>Mukaddim</dc:creator>
			<guid isPermaLink="false">7589@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Hello Brad,&#60;/p&#62;
&#60;p&#62;Thank you very much for looking into the code. I followed your recommendation and performed the simulation again. Specifically, I am simulating 0.1 mm point targets with initial pressure magnitude of 3 Pa. To record sensor data, a 128-element linear array with center frequency of 21 MHz and 78% fractional bandwidth is being used and I am using a sampling frequency of 84 MHz to generate Kgrid time array. &#60;/p&#62;
&#60;p&#62;When I am setting dy = dx, my point targets are getting spread out when compared to the original settings with dx ~=dy. I am sharing two results with specific simulation parameters used for you here -&#60;br /&#62;
&#60;a href=&#34;https://drive.google.com/file/d/18E2dFq0ghuBAPBehtnglR41E7i0uc8fk/view?usp=sharing&#34; rel=&#34;nofollow&#34;&#62;https://drive.google.com/file/d/18E2dFq0ghuBAPBehtnglR41E7i0uc8fk/view?usp=sharing&#60;/a&#62;&#60;br /&#62;
In both cases, Delay-and-sum beamforming algorithm is used.&#60;/p&#62;
&#60;p&#62;I would really appreciate if you look into this and help me understand the reason behind the difference. &#60;/p&#62;
&#60;p&#62;Thank you very much for your help.&#60;/p&#62;
&#60;p&#62;Regards,&#60;br /&#62;
Rashid Al Mukaddim
&#60;/p&#62;</description>
		</item>
		<item>
			<title>Bradley Treeby on "High Frequency Sensor for Photoacoustic Simulation"</title>
			<link>http://www.k-wave.org/forum/topic/high-frequency-sensor-for-photoacoustic-simulation#post-7568</link>
			<pubDate>Sat, 06 Jun 2020 18:20:31 +0000</pubDate>
			<dc:creator>Bradley Treeby</dc:creator>
			<guid isPermaLink="false">7568@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Hi Mukaddim,&#60;/p&#62;
&#60;p&#62;Your simulation has a widely different maximum supported spatial frequency in each direction (i.e., dx ~= dy). This means that the bandwidth of the source will have a very strange directional response. I would recommend setting dx = dy. Then, the maximum frequency you can simulate for a given grid is given by c_min / (2 * dx). This is the maximum supported frequency that is printed to the command line. For the time step, I would choose something with a CFL around 0.3, where dt = cfl * dx / c0. In this case, you shouldn't notice much difference if you make dt smaller (this is a good check that the simulation has converged).&#60;/p&#62;
&#60;p&#62;Hope that helps,&#60;/p&#62;
&#60;p&#62;Brad
&#60;/p&#62;</description>
		</item>
		<item>
			<title>Mukaddim on "High Frequency Sensor for Photoacoustic Simulation"</title>
			<link>http://www.k-wave.org/forum/topic/high-frequency-sensor-for-photoacoustic-simulation#post-7534</link>
			<pubDate>Fri, 29 May 2020 18:06:04 +0000</pubDate>
			<dc:creator>Mukaddim</dc:creator>
			<guid isPermaLink="false">7534@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Hello Forum,&#60;br /&#62;
I am trying to perform 2D photoacoustic simulation of point target sources in a homogeneous medium. To record sensor data, a 128-element linear array with center frequency of 21 MHz and 78% fractional bandwidth is being used. Delay-and-sum beamforming is used for image reconstruction. I have noticed that K-wave allows us to set two sampling frequencies - spatial and temporal and changing either of them changes the reconstruction results. Higher spatial and temporal frequcy seems to provide better results (image enclosed here: &#60;a href=&#34;https://drive.google.com/file/d/1hD-wVWQgKJN7id1qKPJQ0_My4JnVbg23/view?usp=sharing)&#34; rel=&#34;nofollow&#34;&#62;https://drive.google.com/file/d/1hD-wVWQgKJN7id1qKPJQ0_My4JnVbg23/view?usp=sharing)&#60;/a&#62;. Can anyone help me to understand why this is happening? I am also providing my code below. Thank you very much for the help.&#60;/p&#62;
&#60;p&#62;%% Linear Array Photoacoustic Imaging for Point Initial Source&#60;/p&#62;
&#60;p&#62;% Define Probe Properties&#60;br /&#62;
pitch = 90e-6;          % pitch&#60;br /&#62;
TransducerElem = 128;   % Number of transducer elements&#60;br /&#62;
f_cen = 21e6;           % Transducer center frequency&#60;br /&#62;
f_BW = 78;              % Transducer Bandwidth&#60;br /&#62;
imaging_aperture = pitch*TransducerElem;     % aperture length for single quadrant imaging&#60;br /&#62;
c0 = 1540;&#60;br /&#62;
lambda=c0/f_cen;        % wavelengsth [m]&#60;/p&#62;
&#60;p&#62;% Define K-space spatial grids&#60;br /&#62;
Ny = 2500;&#60;br /&#62;
% Ny = 256;&#60;br /&#62;
Nx = TransducerElem;&#60;br /&#62;
imagingdepth = 25e-3;               % [m]&#60;br /&#62;
imagingwidth = imaging_aperture;    % [m]&#60;br /&#62;
dy = imagingdepth/Ny;               % grid point spacing in the y direction [m] --&#38;gt; Simulation Depth&#60;br /&#62;
dx = imagingwidth/Nx;               % grid point spacing in the x direction [m] --&#38;gt; Aperture is placed in this direction&#60;br /&#62;
PML_size=[20,200];                  % size of the PML in grid points&#60;br /&#62;
kgrid = kWaveGrid(Nx, dx, Ny, dy);&#60;/p&#62;
&#60;p&#62;% Define Medium properties&#60;br /&#62;
medium.density = 1000;&#60;br /&#62;
medium.sound_speed = 1540;                   % [m/s]&#60;br /&#62;
% medium.alpha_coeff = 0.3;                   % [dB/(MHz^y cm)]&#60;br /&#62;
% medium.alpha_power = 1.5;&#60;br /&#62;
% medium.alpha_mode = 'no_dispersion';&#60;/p&#62;
&#60;p&#62;% Define K-wave Temporal Grid&#60;br /&#62;
f_s = 42e6*2;&#60;br /&#62;
dt = 1/f_s;                                 % 1/sampling frequency&#60;br /&#62;
dt_stability_limit = checkStability(kgrid, medium);&#60;/p&#62;
&#60;p&#62;while dt&#38;gt;dt_stability_limit&#60;br /&#62;
    f_s = f_s*2;&#60;br /&#62;
    dt = 1/f_s;&#60;br /&#62;
end&#60;br /&#62;
Nt = ceil((imagingdepth*f_s)/c0);  % time steps to simulate&#60;br /&#62;
kgrid.t_array = dt*(0:Nt);&#60;/p&#62;
&#60;p&#62;% Define K-wave sensor&#60;br /&#62;
sensor.mask = zeros(Nx, Ny);&#60;br /&#62;
sensor.mask(:,1) = 1;&#60;br /&#62;
sensor.frequency_response = [21e6,78];          % [center frequency = 21Mz with 78% fractional BW]&#60;/p&#62;
&#60;p&#62;% Define initial pressure distrbution&#60;br /&#62;
rad = 0.0001/dx;                            % radius = 0.1mm&#60;br /&#62;
mag = 3;                                    % magnitude in PA&#60;br /&#62;
x_index = [round(Nx/2-Nx/6) round(Nx/2) round(Nx/2+Nx/6)];&#60;br /&#62;
xPos = kgrid.x_vec(x_index) + kgrid.x_vec(end);              % x-location of point targets [m]&#60;br /&#62;
yPos = [8e-3 12e-3 16e-3 20e-3];                             % y-location of point targets [m]&#60;/p&#62;
&#60;p&#62;p0sum = zeros(Nx,Ny);&#60;br /&#62;
for j = 1:length(xPos)&#60;br /&#62;
    x = round(xPos(j)/dx);&#60;br /&#62;
for k=1:length(yPos)&#60;br /&#62;
    y = round(yPos(k)/dy);&#60;br /&#62;
    disc = mag*makeDisc(Nx, Ny, x, y, rad);&#60;br /&#62;
    p0 = smooth(kgrid, disc, true);&#60;br /&#62;
    p0sum = p0sum + p0;&#60;br /&#62;
end&#60;br /&#62;
end&#60;/p&#62;
&#60;p&#62;%% Run the Simualtion on GPU&#60;br /&#62;
%&#60;br /&#62;
input_args = {'PMLSize',PML_size,'PMLAlpha',4,'PlotPML',false,'PMLInside', false,'Smooth', false,'DataCast','gpuArray-single', 'PlotSim', true,'PlotLayout',false};&#60;/p&#62;
&#60;p&#62; sensorData = kspaceFirstOrder2D(kgrid, medium, ...&#60;br /&#62;
     struct('p0',p0sum), sensor, input_args{:});&#60;br /&#62;
sensorData = gather(sensorData);
&#60;/p&#62;</description>
		</item>

	</channel>
</rss>
