<?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: heterogeneous medium wave propagation</title>
		<link>http://www.k-wave.org/forum/topic/heterogeneous-medium-wave-propagation</link>
		<description>Support for the k-Wave MATLAB toolbox</description>
		<language>en-US</language>
		<pubDate>Tue, 12 May 2026 23:35:20 +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/heterogeneous-medium-wave-propagation" rel="self" type="application/rss+xml" />

		<item>
			<title>bencox on "heterogeneous medium wave propagation"</title>
			<link>http://www.k-wave.org/forum/topic/heterogeneous-medium-wave-propagation#post-722</link>
			<pubDate>Wed, 05 Sep 2012 11:34:34 +0000</pubDate>
			<dc:creator>bencox</dc:creator>
			<guid isPermaLink="false">722@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Hi Eun,&#60;/p&#62;
&#60;p&#62;Instead of the &#60;code&#62;source.p&#60;/code&#62; that you are using, maybe try something like this tone burst:&#60;/p&#62;
&#60;pre&#62;&#60;code&#62;% define a tone burst
sampling_freq = 1/dt;   % [Hz]
tone_burst_freq = 2e5;  % [Hz]
tone_burst_cycles = 3;
source.p = 10*toneBurst(sampling_freq, tone_burst_freq, tone_burst_cycles);&#60;/code&#62;&#60;/pre&#62;
&#60;p&#62;Also, if you want to see both the source and sensor positions during the simulation, define the display mask as &#60;/p&#62;
&#60;p&#62;&#60;code&#62;display_mask = source.p_mask + sensor.mask;&#60;/code&#62;&#60;/p&#62;
&#60;p&#62;then add it to the input options for kspaceFirstOrder2D:&#60;/p&#62;
&#60;p&#62;&#60;code&#62;sensor_data = kspaceFirstOrder2D(kgrid,...       .....,&#38;#39;DisplayMask&#38;#39;,display_mask);&#60;/code&#62;&#60;/p&#62;
&#60;p&#62;Hope that helps.&#60;/p&#62;
&#60;p&#62;Ben
&#60;/p&#62;</description>
		</item>
		<item>
			<title>sheun on "heterogeneous medium wave propagation"</title>
			<link>http://www.k-wave.org/forum/topic/heterogeneous-medium-wave-propagation#post-718</link>
			<pubDate>Tue, 04 Sep 2012 03:00:57 +0000</pubDate>
			<dc:creator>sheun</dc:creator>
			<guid isPermaLink="false">718@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;hi, my name is Eun.&#60;br /&#62;
I've been getting a lot of help from this tool to study acoustics. I am also quiet new to this tool and matlab. I really appreciate if you could provide help.&#60;br /&#62;
I have a few questions. I have the medium set up (2D) so that upper region is water and the lower region is silicon, and there is a void(0.18mm) inside the silicon.&#60;br /&#62;
&#60;a href=&#34;http://imageshack.us/photo/my-images/684/simlayout.jpg/&#34; rel=&#34;nofollow&#34;&#62;http://imageshack.us/photo/my-images/684/simlayout.jpg/&#60;/a&#62;&#60;br /&#62;
and I have the curved shape source and point sensor at the same point in order to capture the signal reflected from the front wall of the silicon and from the void.&#60;/p&#62;
&#60;p&#62;I originally intended to use sine wave with ultasonic frequency, but it created a lot of scattering in the whole medium, and it was really hard to tell from measured data the signal reflected from void. So I used the impulse instead of continuous wave to eliminate this issue, but still there are unwanted signal in the measured data.&#60;/p&#62;
&#60;p&#62;Is there anyway to capture the signal reflected only from the front-wall of the silicon and from the void?&#60;/p&#62;
&#60;p&#62;here is the code I used and please feel free to run it to see what I am talking about.&#60;/p&#62;
&#60;p&#62;again, I would greatly appreciate any help you could give.&#60;/p&#62;
&#60;p&#62;clear all;&#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;
Nx = 200;           % number of grid points in the x (row) direction&#60;br /&#62;
Ny = 200;           % number of grid points in the y (column) direction&#60;br /&#62;
dx = 0.1e-2;        % grid point spacing in the x direction [m]&#60;br /&#62;
dy = 0.1e-2;        % grid point spacing in the y direction [m]&#60;br /&#62;
kgrid = makeGrid(Nx, dx, Ny, dy);&#60;/p&#62;
&#60;p&#62;% time array&#60;br /&#62;
dt = 1.5e-7;                      % [s]&#60;br /&#62;
dt2 = 1e-6 ;                    % [s]&#60;br /&#62;
t_end = 150e-6;                 % [s]&#60;br /&#62;
kgrid.t_array = 0:dt:t_end;&#60;br /&#62;
time2 = 0:dt:1*dt;&#60;br /&#62;
% computation settings&#60;br /&#62;
input_args = {'PMLInside', false};&#60;/p&#62;
&#60;p&#62;% define the properties of the propagation medium&#60;br /&#62;
medium.sound_speed = 1007*ones(Nx, Ny);         % [m/s]&#60;br /&#62;
medium.sound_speed(1:round(Nx/4), :) = 1480;    % [m/s]&#60;br /&#62;
medium.density = 1134*ones(Nx, Ny);             % [kg/m^3]&#60;br /&#62;
medium.density(1:round(Nx/4), :) = 1000;       % [kg/m^3]&#60;br /&#62;
medium.alpha_coeff = 3.6252*ones(Nx,Ny);&#60;br /&#62;
medium.alpha_coeff(1:round(Nx/4), :)= 0.0022;&#60;br /&#62;
medium.alpha_power = 1.5;&#60;br /&#62;
%medium.BonA = 6;&#60;/p&#62;
&#60;p&#62;% Void Parameters&#60;/p&#62;
&#60;p&#62;void_size = 0.18;&#60;br /&#62;
void_depth = 30;%%%%%%%&#60;br /&#62;
object = makeDisc(kgrid.Nx, kgrid.Ny, kgrid.Nx/4+void_depth, kgrid.Ny/2, void_size);&#60;br /&#62;
medium.sound_speed(object==1) = 350 ;&#60;br /&#62;
medium.density(object ==1) =1.2;&#60;/p&#62;
&#60;p&#62;%create initial pressure distribution using makeDisc&#60;/p&#62;
&#60;p&#62;arc_radius = 12 ;&#60;br /&#62;
arc_height = 4 ;&#60;br /&#62;
x_pos = Nx/4-23; %%%%%%%%%%&#60;br /&#62;
y_pos = Ny/2;&#60;br /&#62;
arc = makeCircle(Nx,Ny,x_pos,y_pos, arc_radius);&#60;br /&#62;
arc(x_pos - arc_radius+arc_height:end, :) = 0;&#60;br /&#62;
%imagesc(arc);&#60;br /&#62;
%axis image;&#60;/p&#62;
&#60;p&#62;disc_magnitude = 20; % [au]&#60;br /&#62;
%disc_x_pos = Nx/4-30;    % [grid points]&#60;br /&#62;
%disc_y_pos = Ny/2;    % [grid points]&#60;br /&#62;
%disc_radius = 2;    % [grid points]&#60;br /&#62;
source_freq = 3.5e6;       % [Hz]&#60;/p&#62;
&#60;p&#62;source.p_mask = arc;&#60;br /&#62;
%source.p_mask = makeDisc(Nx, Ny, disc_x_pos, disc_y_pos, disc_radius);&#60;/p&#62;
&#60;p&#62;source.p = disc_magnitude%*sin(2*pi*source_freq*kgrid.t_array);&#60;/p&#62;
&#60;p&#62;display_mask = source.p_mask;&#60;/p&#62;
&#60;p&#62;% define a point sensor&#60;br /&#62;
source_sensor_distance = 35; %%%%%%%%%%&#60;br /&#62;
sensor.mask = zeros(Nx, Ny);&#60;br /&#62;
sensor.mask(Nx/4 - source_sensor_distance, Ny/2) = 1;&#60;br /&#62;
display_mask = sensor.mask;&#60;/p&#62;
&#60;p&#62;% run the simulation with optional inputs for plotting the simulation&#60;br /&#62;
% layout in addition to removing the PML from the display&#60;br /&#62;
sensor_data = kspaceFirstOrder2D(kgrid, medium, source, sensor, 'PlotLayout', true, 'PlotPML', false, input_args{:});&#60;/p&#62;
&#60;p&#62;% =========================================================================&#60;br /&#62;
% VISUALISATION&#60;br /&#62;
% =========================================================================&#60;/p&#62;
&#60;p&#62;% plot the simulated sensor data&#60;br /&#62;
figure;&#60;br /&#62;
imagesc(sensor_data, [-1, 1]);&#60;br /&#62;
colormap(getColorMap);&#60;br /&#62;
ylabel('Signal received by sensor');&#60;br /&#62;
xlabel('Time Step');&#60;br /&#62;
colorbar;&#60;br /&#62;
figure;&#60;br /&#62;
[t_sc, t_scale, t_prefix] = scaleSI(t_end);&#60;br /&#62;
plot(kgrid.t_array*t_scale, sensor_data./max(abs(sensor_data)), 'r-');&#60;br /&#62;
xlabel(['Time [' t_prefix 's]']);&#60;br /&#62;
ylabel('Recorded Pressure [Normalized]');&#60;br /&#62;
legend('2D plane wave');&#60;br /&#62;
dataeun = sensor_data./max(abs(sensor_data));
&#60;/p&#62;</description>
		</item>

	</channel>
</rss>
