<?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: 超声传感器阵列显示The defined transducer is too large or positioned outside the grid in</title>
		<link>http://www.k-wave.org/forum/topic/%e8%b6%85%e5%a3%b0%e4%bc%a0%e6%84%9f%e5%99%a8%e9%98%b5%e5%88%97%e6%98%be%e7%a4%bathe-defined-transducer-is-too-large-or-positioned-outside-the-grid-in</link>
		<description>Support for the k-Wave MATLAB toolbox</description>
		<language>en-US</language>
		<pubDate>Wed, 13 May 2026 22:54:22 +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/%e8%b6%85%e5%a3%b0%e4%bc%a0%e6%84%9f%e5%99%a8%e9%98%b5%e5%88%97%e6%98%be%e7%a4%bathe-defined-transducer-is-too-large-or-positioned-outside-the-grid-in" rel="self" type="application/rss+xml" />

		<item>
			<title>yanyan on "超声传感器阵列显示The defined transducer is too large or positioned outside the grid in"</title>
			<link>http://www.k-wave.org/forum/topic/%e8%b6%85%e5%a3%b0%e4%bc%a0%e6%84%9f%e5%99%a8%e9%98%b5%e5%88%97%e6%98%be%e7%a4%bathe-defined-transducer-is-too-large-or-positioned-outside-the-grid-in#post-9216</link>
			<pubDate>Mon, 26 May 2025 11:25:23 +0000</pubDate>
			<dc:creator>yanyan</dc:creator>
			<guid isPermaLink="false">9216@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;clear&#60;br /&#62;
dx =5e-6;  % x方向分辨率&#60;br /&#62;
dy =5e-6;  % y方向分辨率&#60;br /&#62;
PML_size=20;%设置完美匹配层&#60;br /&#62;
% 阵列参数&#60;br /&#62;
element_size = [12, 12];    % x/y方向各6网格点，z方向1点&#60;br /&#62;
element_spacing = [1, 1]; % x/y间距1点，z方向无间隔&#60;br /&#62;
array_dims = [80, 1];    % x/y各80阵元，单层&#60;br /&#62;
% 总网格数&#60;br /&#62;
Nx=array_dims(1)*(element_size(1)+element_spacing(1)) - element_spacing(1)+2*PML_size;%x方向总网格数量&#60;br /&#62;
Ny=Nx;%y方向总网格数量&#60;br /&#62;
kgrid=kWaveGrid(Nx, dx, Ny, dy);&#60;br /&#62;
%设置介质材料属性&#60;br /&#62;
sound_speed_glass = 5600;     % 玻璃声速 [m/s]&#60;br /&#62;
density_glass = 2400;         % 玻璃密度 [kg/m^3]&#60;br /&#62;
sound_speed_water = 1500;     % 水声速&#60;br /&#62;
density_water = 1000;         % 水密度&#60;br /&#62;
sound_speed_air =343;        % 空气声速&#60;br /&#62;
density_air = 1;            % 空气密度&#60;br /&#62;
medium.sound_speed = sound_speed_glass*ones(Nx,Ny);%声速初始化&#60;br /&#62;
medium.density = density_glass*ones(Nx,Ny); %密度初始化&#60;br /&#62;
reflector_y_pos = 1+(PML_size + round(1e-3 / kgrid.dy));%反射面设置为在21个，避免反射波对计算区域造成影响&#60;br /&#62;
% 定义交替层的位置&#60;br /&#62;
x_start = PML_size + 1;  %定义开始位置&#60;br /&#62;
x_end = Nx-PML_size; %定义结束位置&#60;br /&#62;
interval_num = 20;  %分成20个区域&#60;br /&#62;
interval_grid_points = floor((Nx-2*PML_size+1) / interval_num); % 计算每个区域的网格点数，并使用floor函数取整&#60;br /&#62;
remaining_points =Nx-2*PML_size - interval_num * interval_grid_points; % 剩余的网格点数&#60;br /&#62;
target_column =x_start;&#60;br /&#62;
interval_num=20;&#60;br /&#62;
i = zeros(interval_num,2); %网格单元的长度&#60;br /&#62;
for interval_idx = 0:(interval_num-1)&#60;br /&#62;
    current_x_start = x_start + interval_idx * interval_grid_points;&#60;br /&#62;
    current_x_end = current_x_start + interval_grid_points - 1;&#60;br /&#62;
    i(interval_idx+1,1)=current_x_start;&#60;br /&#62;
    i(interval_idx+1,2)=current_x_end;&#60;br /&#62;
    % 最后一层分配剩余点数&#60;br /&#62;
    if interval_idx == interval_num - 1&#60;br /&#62;
        current_x_end = current_x_end + remaining_points;&#60;br /&#62;
    end&#60;br /&#62;
    % 边界保护&#60;br /&#62;
    if current_x_end &#38;gt; x_end&#60;br /&#62;
        current_x_end = x_end;&#60;br /&#62;
    end&#60;br /&#62;
    % 交替材料设置&#60;br /&#62;
    if mod(interval_idx, 2) == 0&#60;br /&#62;
        medium.sound_speed(current_x_start:current_x_end, :, reflector_y_pos:end) = sound_speed_water;&#60;br /&#62;
        medium.density(current_x_start:current_x_end, :, reflector_y_pos:end) = density_water;&#60;br /&#62;
    else&#60;br /&#62;
        medium.sound_speed(current_x_start:current_x_end, :, reflector_y_pos:end) = sound_speed_air;&#60;br /&#62;
        medium.density(current_x_start:current_x_end, :, reflector_y_pos:end) = density_air;&#60;/p&#62;
&#60;p&#62;    end&#60;br /&#62;
end&#60;br /&#62;
imagesc(medium.sound_speed),&#60;br /&#62;
%设置换能器的位置和检测传感器的位置&#60;br /&#62;
tr.element_width = 12; % 换能器宽度所占网格数&#60;br /&#62;
tr.element_length= 1;% 换能器长度所占网格数&#60;br /&#62;
tr.element_spacing =1; % 换能器间隔所占网格数&#60;br /&#62;
tr.number_elements= 80; % 换能器数量&#60;br /&#62;
tr.radius=Inf;&#60;br /&#62;
transducer_width = tr.number_elements*tr.element_width+(tr.number_elements - 1) * tr.element_spacing;&#60;br /&#62;
tr.position = round([Nx/2 - transducer_width/2,Ny-PML_size]);&#60;br /&#62;
tr.active_elements=zeros(tr.number_elements,1);&#60;br /&#62;
tr.active_elements(1:80)=1;&#60;br /&#62;
% 定义激励超声源信号&#60;br /&#62;
%transducer.mask = transducer_mask;&#60;br /&#62;
source_strength = 1e6;          % [Pa]&#60;br /&#62;
tone_burst_freq = 10e6;        % [Hz]&#60;br /&#62;
tone_burst_cycles = 5;&#60;br /&#62;
t_end = 1e-6; % 设置仿真结束时间为10个周期&#60;br /&#62;
kgrid.makeTime(medium.sound_speed, [], t_end); % 使用kgrid的makeTime方法生成时间数组&#60;br /&#62;
% create the input signal using toneBurst&#60;br /&#62;
input_signal = toneBurst(1/kgrid.dt, tone_burst_freq, tone_burst_cycles);&#60;br /&#62;
%input_signal=(source_strength./(medium.sound_speed* medium.density)).*input_signal;&#60;br /&#62;
tr.input_signal=input_signal;&#60;br /&#62;
transducer=kWaveTransducer(kgrid, tr);&#60;br /&#62;
sensor_data= kspaceFirstOrder2D(kgrid, medium, transducer,transducer);
&#60;/p&#62;</description>
		</item>

	</channel>
</rss>
