<?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; Forum: Nonlinear Acoustics - Recent Posts</title>
		<link>https://www.k-wave.org/forum/forum/nonlinear-acoustics</link>
		<description>Support for the k-Wave MATLAB toolbox</description>
		<language>en-US</language>
		<pubDate>Sat, 08 Aug 2026 07:41:05 +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>https://www.k-wave.org/forum/search.php</link>
		</textInput>
		<atom:link href="https://www.k-wave.org/forum/rss/forum/nonlinear-acoustics" rel="self" type="application/rss+xml" />

		<item>
			<title>tripsi on "Shifted Focal point in nonlinear simulation"</title>
			<link>https://www.k-wave.org/forum/topic/shifted-focal-point-in-nonlinear-simulation#post-9251</link>
			<pubDate>Thu, 04 Jun 2026 08:34:19 +0000</pubDate>
			<dc:creator>tripsi</dc:creator>
			<guid isPermaLink="false">9251@https://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Hi,&#60;/p&#62;
&#60;p&#62;I am trying to validate my nonlinear simulation by comparing it to one of your papers. The simulation models the transducer as an arc of radius of curvature 98mm and aperture diameter of 64mm. I use a sinusoidal source pulse of 4 oscillation that is tapered by a tukey window. Its amplitude is 1.6e5Pa.&#60;br /&#62;
My simulation then produces a focal point at around 114mm. It don't understand why this happens.&#60;br /&#62;
Do you have any ideas what the problem might be?&#60;/p&#62;
&#60;p&#62;Thanks!
&#60;/p&#62;</description>
		</item>
		<item>
			<title>Bradley Treeby on "Question about influence of zero values of signal  of extractAmpPhase function"</title>
			<link>https://www.k-wave.org/forum/topic/question-about-influence-of-zero-values-of-signal-of-extractampphase-function#post-9059</link>
			<pubDate>Wed, 20 Mar 2024 20:35:02 +0000</pubDate>
			<dc:creator>Bradley Treeby</dc:creator>
			<guid isPermaLink="false">9059@https://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;The assumption of this function is that you’re sampling a periodic signal. Take a look at the “Heating By A Focused Ultrasound Transducer” example to see how you can change when to start recording (so you skip the zeros at the beginning) and how to set the sampling appropriately.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>lyz2001 on "Question about influence of zero values of signal  of extractAmpPhase function"</title>
			<link>https://www.k-wave.org/forum/topic/question-about-influence-of-zero-values-of-signal-of-extractampphase-function#post-9041</link>
			<pubDate>Tue, 20 Feb 2024 03:49:49 +0000</pubDate>
			<dc:creator>lyz2001</dc:creator>
			<guid isPermaLink="false">9041@https://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Hi everyone,&#60;br /&#62;
I found that if there are some zero values in the front of the signal, the amplitude of fft will be reduced,in the case of a single-frequency signal.&#60;br /&#62;
I want to study the propagation of the sound field of the parametric array loudspeaker. I set up sensors at each point of the axial direction,and use extractAmpPhase function to calculate the sound pressure of the difference frequency.&#60;br /&#62;
But the sensor signals which are far away from the source will have some zero values before the sound propogates there, which affects the computation of the sound pressure value of the difference frequency.&#60;br /&#62;
I have read the sourcecode of this function,and it seems that it doesn't remove the zero values at the beginning of the signal.I would like to ask if k-wave have considered this phenomenon and how to solve this problem.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>guillefix on "Understanding the derivation of the nonlinear terms"</title>
			<link>https://www.k-wave.org/forum/topic/understanding-the-derivation-of-the-nonlinear-terms#post-9005</link>
			<pubDate>Tue, 16 Jan 2024 07:59:52 +0000</pubDate>
			<dc:creator>guillefix</dc:creator>
			<guid isPermaLink="false">9005@https://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;I am trying to follow the derivation of the nonlinear terms in the wave equation used in k-wave, following the paper &#60;a href=&#34;https://pubmed.ncbi.nlm.nih.gov/22712907/&#34; rel=&#34;nofollow&#34;&#62;https://pubmed.ncbi.nlm.nih.gov/22712907/&#60;/a&#62;&#60;/p&#62;
&#60;p&#62;However, I don't understand the justification of equations (3) and (4) in that paper. I understand we are assuming that the acoustic density, pressure, etc are small. However, (3) and (4) seem to need the displacement field, and the *time since t_0, where t_0 is the time where the fluid is at equilibrium* to be small. &#60;/p&#62;
&#60;p&#62;I don't see how this assumption could hold.&#60;/p&#62;
&#60;p&#62;This doesn't seem to affect the derivation much, except for the term with displacement in the pressure-density relation. But that term matters for the eventual equation.&#60;/p&#62;
&#60;p&#62;To elaborate on my confusion:&#60;/p&#62;
&#60;p&#62;If we look at equation (4), that will only hold for very short times - surely shorter than we want to run our simulation, and therefore shorter than we want our equations to hold right??&#60;/p&#62;
&#60;p&#62;But, this is ok, for equation (5). Equation (5) would still be valid for any finite time, if we have $\del{\rho}$ rather than $\del{\rho_0}$, and the displacement was small. However, we then see that the argument in the next line that $\hat{s(t_1)} - \hat{s(t_0)} = s$ and $\hat{s(t_1)} - \hat{s(t_0)} = p$, and that would change the equaitons very significantly.&#60;/p&#62;
&#60;p&#62;So either a) For some reason, we only the equations to hold for short enough time than (4) is a good approximation, b) I am missing something about how this would extend for longer times, or c) I am missing something else??&#60;/p&#62;
&#60;p&#62;Thank you for the help!:&#38;gt;
&#60;/p&#62;</description>
		</item>
		<item>
			<title>Bradley Treeby on "High intensity focused ultrasound simualtion"</title>
			<link>https://www.k-wave.org/forum/topic/high-intensity-focused-ultrasound-simualtion#post-8958</link>
			<pubDate>Fri, 24 Nov 2023 17:38:16 +0000</pubDate>
			<dc:creator>Bradley Treeby</dc:creator>
			<guid isPermaLink="false">8958@https://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;See response &#60;a href=&#34;http://www.k-wave.org/forum/topic/wrong-pressure-of-focus-in-bowl-focused-transducer-simulation&#34;&#62;here&#60;/a&#62;.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>Arlen on "High intensity focused ultrasound simualtion"</title>
			<link>https://www.k-wave.org/forum/topic/high-intensity-focused-ultrasound-simualtion#post-8924</link>
			<pubDate>Fri, 06 Oct 2023 11:15:47 +0000</pubDate>
			<dc:creator>Arlen</dc:creator>
			<guid isPermaLink="false">8924@https://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;hi everyone，&#60;br /&#62;
   I'm doing simulation about a HIFU transducer, but I found that when I set the grids' size smaller, the pressure of focus doesn't converge. But when I set the medium linear(delete medium.BonA=7), the results show convergency. Can anyone help me to solve this problem?&#60;br /&#62;
   Here are my codes:&#60;/p&#62;
&#60;p&#62;Nx = 380;            % number of grid points in the x direction&#60;br /&#62;
Ny = 240;            % number of grid points in the y direction&#60;br /&#62;
Nz = 240;            % number of grid points in the z direction&#60;br /&#62;
dx =0.3e-3;        % grid point spacing in the x direction [m]&#60;br /&#62;
dy =0.3e-3;        % grid point spacing in the y direction [m]&#60;br /&#62;
dz =0.3e-3;        % grid point spacing in the z direction [m]&#60;br /&#62;
x_size=dx*Nx;&#60;br /&#62;
y_size=dy*Ny;&#60;br /&#62;
z_size=dz*Nz;&#60;/p&#62;
&#60;p&#62;sound_speed=1500;         % [m/s]媒介声速&#60;br /&#62;
density = 1000 ;          % [kg/m^3]媒介密度&#60;/p&#62;
&#60;p&#62;kgrid = kWaveGrid(Nx, dx, Ny, dy, Nz, dz);&#60;/p&#62;
&#60;p&#62;% define the properties of the propagation medium&#60;br /&#62;
medium.BonA=7;                             %水里的超声非线性参数&#60;br /&#62;
medium.sound_speed = sound_speed * ones(Nx, Ny, Nz);	% [m/s]&#60;br /&#62;
medium.density = density * ones(Nx, Ny, Nz);       % [kg/m^3]&#60;br /&#62;
kgrid.makeTime(medium.sound_speed,0.3,80e-6);&#60;/p&#62;
&#60;p&#62;% define a centered circular sensor&#60;br /&#62;
% define a series of Cartesian points to collect the data&#60;br /&#62;
sensor.mask = zeros(Nx, Ny, Nz);&#60;br /&#62;
sensor.mask(:, :, Nz/2) = 1;&#60;/p&#62;
&#60;p&#62;sensor.record = {'p_max'};&#60;/p&#62;
&#60;p&#62;% % input arguments&#60;br /&#62;
 input_args = {'PlotPML', true, ...&#60;br /&#62;
     'DataCast', 'single', 'CartInterp', 'linear','PlotSim',true,'PlotLayout',true,'PMLInside',true,'PMLSize',[20,20,20]};&#60;/p&#62;
&#60;p&#62;% define a time varying sinusoidal source&#60;br /&#62;
source_mag = 543.36e3;     % [Pa]&#60;br /&#62;
% create empty array&#60;br /&#62;
karray = kWaveArray('SinglePrecision',true);&#60;br /&#62;
%position = [1, Ny/2, Nz/2];&#60;br /&#62;
position = [-x_size/2+20e-3,0,0];&#60;br /&#62;
% define arc properties&#60;br /&#62;
radius    = 63.2e-3;              % [m]&#60;br /&#62;
diameter  = 64e-3;              % [m]&#60;/p&#62;
&#60;p&#62;focus_pos = [x_size/2, 0, 0];&#60;/p&#62;
&#60;p&#62;karray.addBowlElement(position, radius, diameter, focus_pos);&#60;/p&#62;
&#60;p&#62;source.p_mask = karray.getArrayBinaryMask(kgrid);&#60;br /&#62;
voxelPlot(double(source.p_mask));&#60;br /&#62;
source_freq = 1e6;&#60;br /&#62;
sig1 = source_mag * sin(2 * pi * source_freq * kgrid.t_array);&#60;br /&#62;
 % smooth the source&#60;br /&#62;
sig1 = filterTimeSeries(kgrid, medium, sig1,'PlotSignals',true,'PlotSpectrums',true);&#60;/p&#62;
&#60;p&#62;source_signal = zeros(1,length(sig1));&#60;br /&#62;
source_signal(1,1:length(sig1)) = sig1;&#60;br /&#62;
source.p = karray.getDistributedSourceSignal(kgrid, source_signal);&#60;br /&#62;
sensor_data = kspaceFirstOrder3DG(kgrid, medium, source, sensor, input_args{:});&#60;/p&#62;
&#60;p&#62;sensor_data.p_max = reshape(sensor_data.p_max, [Nx, Ny]);&#60;br /&#62;
sensor_data.p_max = reshape(sensor_data.p_max, [Nx, Ny]);&#60;/p&#62;
&#60;p&#62;figure;&#60;br /&#62;
imagesc(kgrid.x_vec, kgrid.y_vec,sensor_data.p_max);&#60;br /&#62;
xlabel('x [m]');&#60;br /&#62;
ylabel('y [m]');&#60;br /&#62;
%zlabel('z [m]');&#60;br /&#62;
title('Maximum Pressure');&#60;br /&#62;
c = colorbar;&#60;br /&#62;
c.Label.String = 'pressure()';&#60;/p&#62;
&#60;p&#62;max = sensor_data.p_max(1,1);&#60;br /&#62;
maxi = [1,1];&#60;br /&#62;
[max, maxi];&#60;br /&#62;
    for a=floor(0.3*Nx):Nx&#60;br /&#62;
        for b=1:Ny&#60;br /&#62;
            if sensor_data.p_max(a,b)&#38;gt;max&#60;br /&#62;
           max= sensor_data.p_max(a,b);&#60;br /&#62;
           maxi=[a,b];&#60;br /&#62;
            end&#60;br /&#62;
        end&#60;br /&#62;
     end&#60;/p&#62;
&#60;p&#62;focus_x = 0;&#60;br /&#62;
focusx_max = 0;&#60;br /&#62;
focusy_max = 0;&#60;br /&#62;
focus_y = 0;&#60;br /&#62;
focus_l = 0;&#60;br /&#62;
focus_r = 0;&#60;br /&#62;
focus_u = 0;&#60;br /&#62;
focus_d = 0;&#60;br /&#62;
[focus_x,focus_y];&#60;br /&#62;
for a=floor(0.3*Nx):(Nx - 1)&#60;br /&#62;
    for b=1:(Ny - 1)&#60;br /&#62;
        if sensor_data.p_max(a,b)&#38;lt;0.71*max&#38;amp;&#38;amp;sensor_data.p_max(a,b+1)&#38;gt;0.71*max&#60;br /&#62;
           %sensor_data.p_max(a,b)=0;&#60;br /&#62;
           focus_l = b+1;&#60;br /&#62;
        end&#60;br /&#62;
        if sensor_data.p_max(a,b)&#38;gt;0.71*max&#38;amp;&#38;amp;sensor_data.p_max(a,b+1)&#38;lt;0.71*max&#60;br /&#62;
           %sensor_data.p_max(a,b)=0;&#60;br /&#62;
           focus_r = b+1;&#60;br /&#62;
        end&#60;br /&#62;
         if sensor_data.p_max(a,b)&#38;lt;0.71*max&#38;amp;&#38;amp;sensor_data.p_max(a+1,b)&#38;gt;0.71*max&#60;br /&#62;
           focus_u = a+1;&#60;br /&#62;
        end&#60;br /&#62;
        if sensor_data.p_max(a,b)&#38;gt;0.71*max&#38;amp;&#38;amp;sensor_data.p_max(a+1,b)&#38;lt;0.71*max&#60;br /&#62;
           %sensor_data.p_max(a,b)=0;&#60;br /&#62;
           focus_d = a+1;&#60;br /&#62;
        end&#60;br /&#62;
    end&#60;br /&#62;
    focus_x = focus_r - focus_l;&#60;br /&#62;
    focus_y = focus_d - focus_u;&#60;br /&#62;
    if focus_x &#38;gt; focusx_max&#60;br /&#62;
        focusx_max = focus_x;&#60;br /&#62;
    end&#60;br /&#62;
    if focus_y &#38;gt; focusy_max&#60;br /&#62;
        focusy_max = focus_y;&#60;br /&#62;
    end &#60;/p&#62;
&#60;p&#62;end&#60;br /&#62;
%ONeil solution&#60;br /&#62;
% define transducer parameters&#60;br /&#62;
radius      = 63.2e-3;   % [m]&#60;br /&#62;
diameter    = 64e-3;   % [m]&#60;/p&#62;
&#60;p&#62;frequency   = 1e6;      % [Hz]&#60;br /&#62;
sound_speed = 1500;     % [m/s]&#60;br /&#62;
density     = 1000;     % [kg/m^3]&#60;br /&#62;
Z = density*sound_speed;&#60;br /&#62;
p = 543.36e3;&#60;br /&#62;
velocity    = p/Z;   % [m/s]&#60;br /&#62;
% define position vectors&#60;br /&#62;
axial_position   = 0:5e-4:150e-3;       % [m]&#60;br /&#62;
lateral_position = -15e-3:5e-4:15e-3;   % [m]&#60;br /&#62;
% evaluate pressure&#60;br /&#62;
[p_axial, p_lateral] = focusedBowlONeil(radius, diameter, velocity, ...&#60;br /&#62;
    frequency, sound_speed, density, axial_position, lateral_position);&#60;/p&#62;
&#60;p&#62;% plot&#60;br /&#62;
figure;&#60;br /&#62;
subplot(4, 1, 1);&#60;br /&#62;
plot(axial_position .* 1e3, p_axial .* 1e-6, 'k-');&#60;br /&#62;
xlabel('Axial Position [mm]');&#60;br /&#62;
ylabel('Pressure [MPa]');&#60;br /&#62;
subplot(4, 1, 2);&#60;br /&#62;
plot((0:dx:(Nx-1)*dx) .* 1e3, sensor_data.p_max(:,Ny/2).* 1e-6, 'k-');&#60;br /&#62;
xlabel('Axial Position [mm]');&#60;br /&#62;
ylabel('Pressure [MPa]');&#60;br /&#62;
subplot(4, 1, 3);&#60;br /&#62;
plot(lateral_position .* 1e3, p_lateral .* 1e-6, 'k-');&#60;br /&#62;
xlabel('Lateral Position [mm]');&#60;br /&#62;
ylabel('Pressure [MPa]');&#60;br /&#62;
subplot(4, 1, 4);&#60;br /&#62;
plot((0:dy:(Ny-1)*dy).* sensor_data.p_max(Ny/2,:) .* 1e-6, 'k-');&#60;br /&#62;
xlabel('Lateral Position [mm]');&#60;br /&#62;
ylabel('Pressure [MPa]');&#60;/p&#62;
&#60;p&#62;figure;&#60;br /&#62;
imagesc(kgrid.x_vec, kgrid.y_vec,sensor_data.p_max);&#60;br /&#62;
xlabel('x [m]');&#60;br /&#62;
ylabel('y [m]');&#60;/p&#62;
&#60;p&#62;title('Maximum Pressure');&#60;br /&#62;
c = colorbar;&#60;br /&#62;
c.Label.String = 'pressure()';
&#60;/p&#62;</description>
		</item>
		<item>
			<title>Arlen on "High intensity focused ultrasound simualtion"</title>
			<link>https://www.k-wave.org/forum/topic/high-intensity-focused-ultrasound-simualtion#post-8923</link>
			<pubDate>Fri, 06 Oct 2023 09:40:31 +0000</pubDate>
			<dc:creator>Arlen</dc:creator>
			<guid isPermaLink="false">8923@https://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;hi jackYANG,&#60;br /&#62;
   I have omes problems with the High intensity focused ultrasound simualtion, can you give some help to me?I'm a Chinese too.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>KailingYI on "What are the nonlinear terms simulated in K-Wave?"</title>
			<link>https://www.k-wave.org/forum/topic/what-are-the-nonlinear-terms-simulated-in-k-wave#post-8898</link>
			<pubDate>Sat, 19 Aug 2023 16:23:59 +0000</pubDate>
			<dc:creator>KailingYI</dc:creator>
			<guid isPermaLink="false">8898@https://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Thank you!
&#60;/p&#62;</description>
		</item>
		<item>
			<title>P.S on "problem with simulation of signal from phantom with nonlinear effect"</title>
			<link>https://www.k-wave.org/forum/topic/problem-with-simulation-of-signal-from-phantom-with-nonlinear-effect#post-8869</link>
			<pubDate>Tue, 25 Jul 2023 10:19:16 +0000</pubDate>
			<dc:creator>P.S</dc:creator>
			<guid isPermaLink="false">8869@https://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;My objective is to simulate echo from a phantom with two layers, for which I have set nonlinear parameters. However, when I reconstruct the B-mode image, I notice an unexpected line in the second layer, making the result look like it has three layers. I'm uncertain about what might be causing this issue in my code. Your assistance in resolving this matter would be greatly appreciated. Thank you.&#60;/p&#62;
&#60;p&#62;The parameters that I use are as follows:&#60;br /&#62;
c0 = 1480; % [m/s]&#60;br /&#62;
alpha_coeff0 = 0.5; % [dB/(MHz^y cm)]&#60;br /&#62;
alpha_power0 = 1.9;&#60;br /&#62;
rho0 = 1000; % [kg/m^3]&#60;br /&#62;
BonA = 6;&#60;/p&#62;
&#60;p&#62;% define properties&#60;br /&#62;
sound_speed_map = c0 * ones(Nx, Ny);%.* background_map;%;&#60;br /&#62;
density_map = rho0 * ones(Nx, Ny).* background_map;&#60;br /&#62;
alpha_coeff_map = alpha_coeff0 * ones(Nx, Ny);&#60;/p&#62;
&#60;p&#62;% make circle inclusion SoS&#60;br /&#62;
sound_speed_map(cond1,:) = 1520;&#60;/p&#62;
&#60;p&#62;% assign to the medium inputs&#60;br /&#62;
medium.sound_speed = sound_speed_map;&#60;br /&#62;
medium.density = density_map;&#60;br /&#62;
medium.BonA = 6*ones(Nx, Ny);
&#60;/p&#62;</description>
		</item>
		<item>
			<title>bencox on "What are the nonlinear terms simulated in K-Wave?"</title>
			<link>https://www.k-wave.org/forum/topic/what-are-the-nonlinear-terms-simulated-in-k-wave#post-8721</link>
			<pubDate>Wed, 08 Mar 2023 14:58:37 +0000</pubDate>
			<dc:creator>bencox</dc:creator>
			<guid isPermaLink="false">8721@https://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Hi KailingYI, &#60;/p&#62;
&#60;p&#62;The equations solved in k-Wave only differ from the Westervelt equation in the absorption term. The approximations made regarding the nonlinear term are equivalent ie, it accounts for the cumulative nonlinearity but not local nonlinearities.&#60;/p&#62;
&#60;p&#62;Hope that helps.&#60;/p&#62;
&#60;p&#62;Best wishes&#60;br /&#62;
Ben
&#60;/p&#62;</description>
		</item>
		<item>
			<title>KailingYI on "What are the nonlinear terms simulated in K-Wave?"</title>
			<link>https://www.k-wave.org/forum/topic/what-are-the-nonlinear-terms-simulated-in-k-wave#post-8691</link>
			<pubDate>Sat, 07 Jan 2023 15:31:28 +0000</pubDate>
			<dc:creator>KailingYI</dc:creator>
			<guid isPermaLink="false">8691@https://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Hi,&#60;/p&#62;
&#60;p&#62;My acoustic issue is non-linear, so I am wondering what are the non-linear terms simulated in K-Wave?&#60;/p&#62;
&#60;p&#62;According to the K-Wave user manual, it seems to solve the 1st order partial differential equation equivalent to the Westervelt equation? If not, how does it differ from the Westervelt equation?
&#60;/p&#62;</description>
		</item>
		<item>
			<title>bencox on "Back Propagation of Nonlinear waves"</title>
			<link>https://www.k-wave.org/forum/topic/back-propagation-of-nonlinear-waves#post-8608</link>
			<pubDate>Fri, 09 Sep 2022 09:48:33 +0000</pubDate>
			<dc:creator>bencox</dc:creator>
			<guid isPermaLink="false">8608@https://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Hi ahmedsallam,&#60;/p&#62;
&#60;p&#62;The harmonic generation is the frequency-domain manifestation of the wave steepening. Time-reversing the waves, ie. using time series recorded over many points covering a surface as sources and inputting them in time-reversed order, will undo the steepening and so will undo the harmonic generation. &#60;/p&#62;
&#60;p&#62;There are some time-reversal examples in k-Wave for photoacoustic sources, eg. &#60;a href=&#34;http://www.k-wave.org/documentation/example_pr_2D_tr_circular_sensor.php&#34;&#62;http://www.k-wave.org/documentation/example_pr_2D_tr_circular_sensor.php&#60;/a&#62; which could be made nonlinear by setting a value for &#60;code&#62;medium.BonA&#60;/code&#62; and making the initial pressure amplitude high enough.&#60;/p&#62;
&#60;p&#62;Best wishes&#60;br /&#62;
Ben
&#60;/p&#62;</description>
		</item>
		<item>
			<title>ahmedsallam on "Back Propagation of Nonlinear waves"</title>
			<link>https://www.k-wave.org/forum/topic/back-propagation-of-nonlinear-waves#post-8597</link>
			<pubDate>Tue, 23 Aug 2022 17:22:09 +0000</pubDate>
			<dc:creator>ahmedsallam</dc:creator>
			<guid isPermaLink="false">8597@https://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Thanks for the reply Dr. Cox,&#60;/p&#62;
&#60;p&#62;How would you go about reversing the effect of harmonic generation in terms of the K-wave environment and functions? Are there any provided examples that could be useful in this direction?  (I couldn't find any myself)&#60;/p&#62;
&#60;p&#62;Appreciate it!
&#60;/p&#62;</description>
		</item>
		<item>
			<title>bencox on "Back Propagation of Nonlinear waves"</title>
			<link>https://www.k-wave.org/forum/topic/back-propagation-of-nonlinear-waves#post-8595</link>
			<pubDate>Tue, 23 Aug 2022 16:27:17 +0000</pubDate>
			<dc:creator>bencox</dc:creator>
			<guid isPermaLink="false">8595@https://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Hi ahmedsaliam, &#60;/p&#62;
&#60;p&#62;Great question. Theoretically you can backpropagate nonlinearly steepened waves, so long as they haven't reached the point at which they have formed a shock, as then information loss occurs. In practice, the absorption needs to be considered. For purposes such as these, you can reverse the absorption to that it acts to amplify the signal, by using &#60;code&#62;medium.alpha_sign = [-1 1]&#60;/code&#62;, which puts a negative sign in front of the absorption term but leaves the dispersion alone.&#60;/p&#62;
&#60;p&#62;Best wishes&#60;br /&#62;
Ben
&#60;/p&#62;</description>
		</item>
		<item>
			<title>ahmedsallam on "Back Propagation of Nonlinear waves"</title>
			<link>https://www.k-wave.org/forum/topic/back-propagation-of-nonlinear-waves#post-8591</link>
			<pubDate>Wed, 03 Aug 2022 01:31:46 +0000</pubDate>
			<dc:creator>ahmedsallam</dc:creator>
			<guid isPermaLink="false">8591@https://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Hello,&#60;/p&#62;
&#60;p&#62;First of all thank you so much for this useful toolbox. &#60;/p&#62;
&#60;p&#62;I was wondering if k-wave has the capability to back propagate nonlinear waves for source identification and similar applications? Is it possible to reverse the harmonic generation phenomenon and end up with a single harmonic time signal at the source surface?&#60;/p&#62;
&#60;p&#62;Thanks,
&#60;/p&#62;</description>
		</item>
		<item>
			<title>bencox on "Parametric acoustic array"</title>
			<link>https://www.k-wave.org/forum/topic/parametric-acoustic-array#post-8555</link>
			<pubDate>Fri, 17 Jun 2022 15:08:24 +0000</pubDate>
			<dc:creator>bencox</dc:creator>
			<guid isPermaLink="false">8555@https://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Hi songrock,&#60;/p&#62;
&#60;p&#62;When you say the sound pressure field is not correct, what are you comparing to?&#60;/p&#62;
&#60;p&#62;Best wishes&#60;br /&#62;
Ben
&#60;/p&#62;</description>
		</item>
		<item>
			<title>songrock on "Parametric acoustic array"</title>
			<link>https://www.k-wave.org/forum/topic/parametric-acoustic-array#post-8546</link>
			<pubDate>Sat, 04 Jun 2022 03:17:08 +0000</pubDate>
			<dc:creator>songrock</dc:creator>
			<guid isPermaLink="false">8546@https://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Hi Felipe, &#60;/p&#62;
&#60;p&#62;I'm also working on the parametric acoustic array design, simulating 2D using this toolbox.&#60;br /&#62;
Now the difference frequency can be got, but the sound pressure field from the difference frequency is not correct.Could you please share some advice about how to get the difference frequncy from the simulation calculation.&#60;br /&#62;
Thanks so much.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>bencox on "Can k-wave do simulations in porous media?"</title>
			<link>https://www.k-wave.org/forum/topic/can-k-wave-do-simulations-in-porous-media#post-8510</link>
			<pubDate>Mon, 25 Apr 2022 19:21:36 +0000</pubDate>
			<dc:creator>bencox</dc:creator>
			<guid isPermaLink="false">8510@https://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Hi sgrgimire, &#60;/p&#62;
&#60;p&#62;What's wrong with the way you're doing it? Note that the air-filled case may be difficult because k-Wave converges quite slowly when there are large impedance differences. In other words, you would need to have many grid points per wavelength to get accurate reflections from the pores.&#60;/p&#62;
&#60;p&#62;Best wishes&#60;br /&#62;
Ben
&#60;/p&#62;</description>
		</item>
		<item>
			<title>sgrghimire on "Can k-wave do simulations in porous media?"</title>
			<link>https://www.k-wave.org/forum/topic/can-k-wave-do-simulations-in-porous-media#post-8482</link>
			<pubDate>Thu, 17 Mar 2022 17:12:33 +0000</pubDate>
			<dc:creator>sgrghimire</dc:creator>
			<guid isPermaLink="false">8482@https://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;The code included here doesn't have BonA but I have included the non linear parameter when doing the simulations.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>sgrghimire on "Can k-wave do simulations in porous media?"</title>
			<link>https://www.k-wave.org/forum/topic/can-k-wave-do-simulations-in-porous-media#post-8481</link>
			<pubDate>Thu, 17 Mar 2022 16:25:58 +0000</pubDate>
			<dc:creator>sgrghimire</dc:creator>
			<guid isPermaLink="false">8481@https://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;I have a simulation that imports SEM (&#60;a href=&#34;https://imgur.com/8mFivA5&#34; rel=&#34;nofollow&#34;&#62;https://imgur.com/8mFivA5&#60;/a&#62;) images of aerogels with different pore sizes, the pores may be filled with fluid or air. I want to define the region inside the pores with different values of density and sound speed. Is there a efficient way to do this?&#60;/p&#62;
&#60;p&#62;Here is my code so far!&#60;/p&#62;
&#60;p&#62;clearvars;&#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 = 5e-6; % grid point spacing in the x direction [m]&#60;br /&#62;
dy = 5e-6; % grid point spacing in the y direction [m]&#60;br /&#62;
kgrid = kWaveGrid(Nx, dx, Ny, dy);&#60;/p&#62;
&#60;p&#62;%load image&#60;br /&#62;
img1 = loadImage('x-ca-1.bmp');&#60;/p&#62;
&#60;p&#62;%resize&#60;br /&#62;
img1 = resize(img1, [Nx,Ny]);&#60;br /&#62;
img_indices1 = find(img1 ==1);&#60;/p&#62;
&#60;p&#62;% define the medium properties&#60;/p&#62;
&#60;p&#62;%Medium%&#60;br /&#62;
medium.sound_speed = 1500*ones(Nx, Ny); % [m/s]&#60;br /&#62;
medium.density = 1000 * ones(Nx, Ny);&#60;/p&#62;
&#60;p&#62;%aerogel&#60;br /&#62;
medium.sound_speed(img_indices1) = 300;&#60;br /&#62;
medium.density(img_indices1) = 500;&#60;/p&#62;
&#60;p&#62;%Define source&#60;br /&#62;
mag = 10;&#60;br /&#62;
source.p0 = mag * makeLine(Nx, Ny,[10,99],[10,101]); &#60;/p&#62;
&#60;p&#62;% define a 2D binary sensor mask in the shape of a line&#60;br /&#62;
x_offset1 = 25; % [grid points]&#60;br /&#62;
x_offset2 = 175;&#60;br /&#62;
width = 1; % [grid points]&#60;br /&#62;
sensor.mask = zeros(Nx, Ny);&#60;br /&#62;
sensor.mask(x_offset1, Ny/2 - width/2 + 1:Ny/2 + width/2) = 1;&#60;br /&#62;
sensor.mask(x_offset2, Ny/2 - width/2 + 1:Ny/2 + width/2) = 1;&#60;/p&#62;
&#60;p&#62;% define the frequency response of the sensor elements&#60;br /&#62;
center_freq = 40e6;      % [Hz]&#60;br /&#62;
bandwidth = 80;         % [%]&#60;br /&#62;
sensor.frequency_response = [center_freq, bandwidth];&#60;/p&#62;
&#60;p&#62;% set the input options&#60;br /&#62;
input_args = {'DataCast', 'gpuArray-single'};&#60;/p&#62;
&#60;p&#62;%run simulations&#60;br /&#62;
[sensor_data] = kspaceFirstOrder2D(kgrid, medium, source, sensor, input_args{:});&#60;/p&#62;
&#60;p&#62;% compute the amplitude spectra of the recorded time series&#60;br /&#62;
[f, sensor_data1] = spect(sensor_data(1,:), 1/kgrid.dt);&#60;br /&#62;
[f, sensor_data2] = spect(sensor_data(2,:), 1/kgrid.dt);&#60;/p&#62;
&#60;p&#62;% plot the amplitude spectra&#60;br /&#62;
[f_sc, scale, prefix] = scaleSI(max(f));&#60;br /&#62;
plot(f * scale, sensor_data1, 'k-',...&#60;br /&#62;
    f * scale, sensor_data2, 'r-');&#60;br /&#62;
xlabel(['Frequency [' prefix 'Hz]']);&#60;br /&#62;
ylabel('Amplitude [au]');&#60;br /&#62;
legend('sensor-1', 'sensor-2');
&#60;/p&#62;</description>
		</item>

	</channel>
</rss>
