<?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: finite sensor size</title>
		<link>http://www.k-wave.org/forum/topic/finite-sensor-size-1</link>
		<description>Support for the k-Wave MATLAB toolbox</description>
		<language>en-US</language>
		<pubDate>Tue, 12 May 2026 22:32:39 +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/finite-sensor-size-1" rel="self" type="application/rss+xml" />

		<item>
			<title>zengqw2021 on "finite sensor size"</title>
			<link>http://www.k-wave.org/forum/topic/finite-sensor-size-1#post-8743</link>
			<pubDate>Thu, 20 Apr 2023 10:14:01 +0000</pubDate>
			<dc:creator>zengqw2021</dc:creator>
			<guid isPermaLink="false">8743@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Dear all,&#60;br /&#62;
     I used kWaveArray to define A Sensor Using An Array Transducer. As for example_at_array_as_sensor.m, I got a sensor_data array of size 6748 by 1207. Now, I want to know  which grid points form part of the specified element. I find  a property named 'getElementBinaryMask' may be work.But when I run it the following way, I get an error 'Method, attribute, or field 'getElementBinaryMask' of class 'kWaveArray' not recognized.'. &#60;/p&#62;
&#60;p&#62;mask2 = karray.getElementBinaryMask(kgrid, 1);  % grid points form part of the specified element&#60;/p&#62;
&#60;p&#62;Does anyone know how to solve this problem？
&#60;/p&#62;</description>
		</item>
		<item>
			<title>zengqw2021 on "finite sensor size"</title>
			<link>http://www.k-wave.org/forum/topic/finite-sensor-size-1#post-8742</link>
			<pubDate>Thu, 20 Apr 2023 06:07:00 +0000</pubDate>
			<dc:creator>zengqw2021</dc:creator>
			<guid isPermaLink="false">8742@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;In addition, I learned that the kWaveArray class serves my purpose
&#60;/p&#62;</description>
		</item>
		<item>
			<title>zengqw2021 on "finite sensor size"</title>
			<link>http://www.k-wave.org/forum/topic/finite-sensor-size-1#post-8741</link>
			<pubDate>Wed, 19 Apr 2023 13:41:41 +0000</pubDate>
			<dc:creator>zengqw2021</dc:creator>
			<guid isPermaLink="false">8741@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Dear all,&#60;br /&#62;
    I want to simulate the process of receiving ultrasonic signals with a finite size transducer.&#60;br /&#62;
In the program below, the total number of transducers is 360, with each transducer being 10mm (amount to 101 grid points) in diameter.I used the makeMultiArc function to create so many transducers. In my expectation, the resulting sensor_data should be an array of 36360×2226. However, as the warning suggests 'WARNING: 25 arcs are overlapping', some of the receiving points must have overlapped. Is there a way for me to isolate the data received by the 360 transducers from sensor_data? Or, is there any other way to get what I want. For example, I tried a method of setting up just one transducer and rotating it 360 times by 1 degree each time, which is 360 repetitions and output the data for each calculation. This approach serves my purpose, but it takes too much time to compute.&#60;br /&#62;
    I hope someone can help me solve this problem.&#60;br /&#62;
    Dr. Zeng&#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;% load the initial pressure distribution from an image and scale&#60;br /&#62;
p0_magnitude = 2;&#60;br /&#62;
p0 = p0_magnitude * loadImage('EXAMPLE_source_two.bmp');&#60;/p&#62;
&#60;p&#62;% assign the grid size and create the computational grid&#60;br /&#62;
PML_size = 20;              % size of the PML in grid points&#60;br /&#62;
Nx = 540 - 2 * PML_size;    % number of grid points in the x direction&#60;br /&#62;
Ny = 540 - 2 * PML_size;    % number of grid points in the y direction&#60;br /&#62;
x = 50e-3;                  % total grid size [m]&#60;br /&#62;
y = 50e-3;                  % total grid size [m]&#60;br /&#62;
dx = x / Nx;                % grid point spacing in the x direction [m]&#60;br /&#62;
dy = y / Ny;                % grid point spacing in the y direction [m]&#60;br /&#62;
kgrid = kWaveGrid(Nx, dx, Ny, dy);&#60;/p&#62;
&#60;p&#62;% resize the input image to the desired number of grid points&#60;br /&#62;
p0 = resize(p0, [Nx, Ny]);&#60;/p&#62;
&#60;p&#62;% smooth the initial pressure distribution and restore the magnitude&#60;br /&#62;
p0 = smooth(p0, 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 the properties of the propagation medium&#60;br /&#62;
medium.sound_speed = 1500;  % [m/s]&#60;/p&#62;
&#60;p&#62;% create the time array&#60;br /&#62;
Ts          =  21e-9               ; % Sampling interval 50ns&#60;br /&#62;
sf          =  1/Ts                ; % Sampling frequency 50 [MHz]&#60;br /&#62;
kgrid.Nt    =  2226                ; % sampling points&#60;/p&#62;
&#60;p&#62;kgrid.t_array = (0:kgrid.Nt-1)*Ts      ;&#60;/p&#62;
&#60;p&#62;%--------------------------------------------------------------&#60;br /&#62;
num_arcs          = 360                        ; % Number of transducers&#60;br /&#62;
scanning_radius   = 23e-3                      ; % Scanning radius actual length [m]&#60;br /&#62;
trans_diameter    = 10e-3                      ; % sensor size [m]&#60;br /&#62;
diameter          = round(trans_diameter/dx)+1 ; % Transducer surface detection number, must be odd number&#60;/p&#62;
&#60;p&#62;% define element parameters&#60;br /&#62;
radius            = round(scanning_radius/dx)      ; % [grid points]&#60;br /&#62;
focus_pos         = [1, 1] * Nx/2;&#60;/p&#62;
&#60;p&#62;%-------------Location of the center of the transducer-----------&#60;br /&#62;
arc_pos           = makeCartCircle(scanning_radius, num_arcs, [1, 1] * x / 2).';&#60;br /&#62;
% convert the Cartesian arc positions to grid points&#60;br /&#62;
arc_pos           = round(arc_pos/dx);&#60;/p&#62;
&#60;p&#62;temp = makeMultiArc([Nx,Ny], arc_pos, radius, diameter, focus_pos, 'Plot', true);&#60;/p&#62;
&#60;p&#62;sensor.mask = temp;&#60;/p&#62;
&#60;p&#62;% set the input options&#60;br /&#62;
input_args = {'Smooth', false, 'PMLInside', 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;</description>
		</item>

	</channel>
</rss>
