<?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: Not seeing returning ultrasound echoes in ring array ultrasound simulation</title>
		<link>http://www.k-wave.org/forum/topic/not-seeing-returning-ultrasound-echoes-in-ring-array-ultrasound-simulation</link>
		<description>Support for the k-Wave MATLAB toolbox</description>
		<language>en-US</language>
		<pubDate>Wed, 13 May 2026 05:21:18 +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/not-seeing-returning-ultrasound-echoes-in-ring-array-ultrasound-simulation" rel="self" type="application/rss+xml" />

		<item>
			<title>Bradley Treeby on "Not seeing returning ultrasound echoes in ring array ultrasound simulation"</title>
			<link>http://www.k-wave.org/forum/topic/not-seeing-returning-ultrasound-echoes-in-ring-array-ultrasound-simulation#post-7897</link>
			<pubDate>Sun, 01 Nov 2020 20:40:51 +0000</pubDate>
			<dc:creator>Bradley Treeby</dc:creator>
			<guid isPermaLink="false">7897@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;I can't run your code (there are custom functions and datasets). Have you tried increasing the simulation time? You could also try increasing the sound speed / density contrast while you're debugging to make it easier to see the reflected signals (the current impedance contrast is very small).&#60;/p&#62;
&#60;p&#62;Brad.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>fg9716 on "Not seeing returning ultrasound echoes in ring array ultrasound simulation"</title>
			<link>http://www.k-wave.org/forum/topic/not-seeing-returning-ultrasound-echoes-in-ring-array-ultrasound-simulation#post-7872</link>
			<pubDate>Tue, 06 Oct 2020 14:40:35 +0000</pubDate>
			<dc:creator>fg9716</dc:creator>
			<guid isPermaLink="false">7872@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Hello. I am trying to run an ultrasound ring array simulation with a heterogeneous speed of sound medium and a time-varying pressure source. I can see the original transmitted signal in all sensor channels, but I am not seeing the reflection signals off of the object I have embedded in my medium. I cannot see where the mistake is. Any help would be greatly appreciated.&#60;br /&#62;
___________________________________________________________&#60;/p&#62;
&#60;p&#62;    load TransducerPositions_1024.txt&#60;br /&#62;
    TransPos=TransducerPositions_1024(1:4:end,:); %Convert 1024 element array to 256&#60;/p&#62;
&#60;p&#62;    %===================================================&#60;br /&#62;
    %   User Input&#60;br /&#62;
    %===================================================&#60;br /&#62;
    % Select the simulation type&#60;br /&#62;
    %&#60;br /&#62;
    %   1. C++ Simulation from Matlab&#60;br /&#62;
    %   2. CUDA Simulation from Matlab&#60;br /&#62;
    %   3. MATLAB simulation&#60;br /&#62;
    %&#60;br /&#62;
    SIMULATION_TYPE = 1;&#60;/p&#62;
&#60;p&#62;    SIGNAL_AMPLITUDE = 40;          % [Pa]&#60;br /&#62;
    SIGNAL_BANDWIDTH = 0.80;        % [ratio], e.g. 50% --&#38;gt; 0.50&#60;br /&#62;
    SIGNAL_CENTER_FREQUENCY = 1.5;    % [MHz]&#60;br /&#62;
    SIGNAL_SAMPLING_FREQUENCY = 12; % [MHz]&#60;/p&#62;
&#60;p&#62;    %=================================&#60;br /&#62;
    %   Computational Grid&#60;br /&#62;
    %=================================&#60;br /&#62;
    Nx = 256;                   % Number of grid points in the x direction&#60;br /&#62;
    Ny = 256;                   % Number of grid points in the y direction&#60;br /&#62;
    Nz = 30;                   % Number of grid points in the z direction&#60;br /&#62;
    dx = 1e-3;                % Grid point spacing in the x direction [m]&#60;br /&#62;
    dy = 1e-3;                % Grid point spacing in the y direction [m]&#60;br /&#62;
    dz = 1e-3;                % Grid point spacing in the z direction [m]&#60;br /&#62;
    kgrid = kWaveGrid(Nx, dx, Ny, dy, Nz, dz);&#60;/p&#62;
&#60;p&#62;    %=================================&#60;br /&#62;
    %   Medium&#60;br /&#62;
    %=================================&#60;br /&#62;
    %create cylinder embedded in medium&#60;br /&#62;
    cx=128; cy=128; cz=3;&#60;br /&#62;
    radius=50;&#60;br /&#62;
    height=25;&#60;br /&#62;
    medium.sound_speed=makeCylinder(Nx, Ny, Nz, cx, cy, cz, radius, height);&#60;/p&#62;
&#60;p&#62;    %create sphere inside cylinder inside medium&#60;br /&#62;
    cx=128; cy=128; cz=15;&#60;br /&#62;
    radius=5;&#60;br /&#62;
    medium.sound_speed=medium.sound_speed+makeSphere(Nx, Ny, Nz, cx, cy, cz, radius);&#60;/p&#62;
&#60;p&#62;    medium.sound_speed(medium.sound_speed==0)=1500; %water bath sound speed&#60;br /&#62;
    medium.sound_speed(medium.sound_speed==1)=1450; %cylinder object sound speed&#60;br /&#62;
    medium.sound_speed(medium.sound_speed==2)=1600; %sphere object sound speed&#60;/p&#62;
&#60;p&#62;    medium.density=1000*ones(Nx,Ny,Nz);&#60;/p&#62;
&#60;p&#62;    %%&#60;/p&#62;
&#60;p&#62;    % Init time array&#60;br /&#62;
    dt = 1/(SIGNAL_SAMPLING_FREQUENCY*10^6);&#60;br /&#62;
    c0_peak = max(max(max(medium.sound_speed)));&#60;br /&#62;
    CFL = (dt/dx)*c0_peak;&#60;br /&#62;
    if CFL&#38;gt;0.3&#60;br /&#62;
        disp(&#34;WARNING: CLF number is larger than 0.3, which could result in numerical errors!&#34;);&#60;br /&#62;
    end&#60;br /&#62;
    kgrid.makeTime(medium.sound_speed, CFL);&#60;/p&#62;
&#60;p&#62;%=================================&#60;br /&#62;
%   Source&#60;br /&#62;
%=================================&#60;br /&#62;
tc = gauspuls('cutoff',SIGNAL_CENTER_FREQUENCY*10^6 ...&#60;br /&#62;
                ,SIGNAL_BANDWIDTH,[],-40);&#60;br /&#62;
t = -tc : dt : tc;&#60;br /&#62;
signal = SIGNAL_AMPLITUDE*gauspuls(t,SIGNAL_CENTER_FREQUENCY*10^6,SIGNAL_BANDWIDTH);&#60;br /&#62;
p0 = zeros(size(kgrid.t_array));&#60;br /&#62;
p0(1:length(signal)) = signal;&#60;br /&#62;
source.p = p0;&#60;/p&#62;
&#60;p&#62;%=================================&#60;br /&#62;
%   Sensors&#60;br /&#62;
%=================================&#60;br /&#62;
ring.position = ceil((TransPos*1e-3./dx - 0.5));&#60;br /&#62;
ring.position(:,1) = ring.position(:,1) + Nx/2;&#60;br /&#62;
ring.position(:,2) = ring.position(:,2) + Ny/2;&#60;/p&#62;
&#60;p&#62;% define a sensor mask through the central z-plane&#60;br /&#62;
sensor.mask = zeros(Nx, Ny, Nz);&#60;br /&#62;
for idx = 1:length(ring.position)&#60;br /&#62;
    sensor.mask(ring.position(idx,1),ring.position(idx,2), ceil(Nz/2)) = 1;&#60;br /&#62;
end&#60;/p&#62;
&#60;p&#62;%===================================================&#60;br /&#62;
%   Run Simulation&#60;br /&#62;
%===================================================&#60;br /&#62;
input_args = {};&#60;/p&#62;
&#60;p&#62;            source.p_mask = zeros(Nx, Ny, Nz);&#60;br /&#62;
            source.p_mask(ring.position(eleNum,1),ring.position(eleNum,2),Nz/2) = 1; &#60;/p&#62;
&#60;p&#62;            switch SIMULATION_TYPE&#60;br /&#62;
                case 1&#60;br /&#62;
                    % Run the C++ simulation&#60;br /&#62;
                    sensor_data = kspaceFirstOrder3DC(kgrid, medium, source, sensor, input_args{:});&#60;br /&#62;
                case 2&#60;br /&#62;
                    % Run the CUDA simulation&#60;br /&#62;
                    sensor_data = kspaceFirstOrder3DG(kgrid, medium, source, sensor, input_args{:});&#60;br /&#62;
                case 3&#60;br /&#62;
                    % Run the MATLAB simulation&#60;br /&#62;
                    sensor_data = kspaceFirstOrder3D(kgrid, medium, source, sensor, input_args{:});&#60;br /&#62;
            end
&#60;/p&#62;</description>
		</item>

	</channel>
</rss>
