コンテンツにスキップ
これは開発版のドキュメントである. 内容は次のリリースまでに変更される可能性がある. 最新のリリース版は 0.14.x を参照.

naive

src

Naive 法は, 目標音圧ベクトルに逆伝搬をかけるアルゴリズム. 反復を行わず高速だが, 焦点間の干渉補正は行われないため, 弱い音場が生成される可能性がある.

naive(
&NalgebraBackend,
&geometry,
&foci,
wavelength,
&option,
&mut phases,
&mut intensities,
)?;
引数 型 説明
geometry &Geometry デバイス配置
foci &[AmplitudeTarget] 焦点列 (位置と目標振幅)
wavelength Length 波長
option &NaiveOption 追加オプション (下記参照)
phases &mut [Vec<Phase>] 位相の出力バッファ
intensities &mut [Vec<Intensity>] 振幅の出力バッファ
NaiveOption {
constraint,
directivity,
mask,
}
フィールド 型 デフォルト
constraint IntensityConstraint Clamp(MIN, MAX)
directivity Directivity Sphere
mask TransducerMask AllEnabled
use autd3_rs::geometry::{Autd3, Geometry, TransducerMask, offset};
use autd3_rs::units::{m, mm, s};
use autd3_rs::value::Intensity;
use autd3_rs_pattern::wavelength;
use autd3_rs_pattern_holo::{
AmplitudeTarget, Directivity, IntensityConstraint, NaiveOption, NalgebraBackend, Pa, naive,
};
let geometry = Geometry::new(vec![Autd3::default()]);
let mut phases = geometry.phase_buffer();
let mut intensities = geometry.intensity_buffer();
naive(
&NalgebraBackend,
&geometry,
&[
AmplitudeTarget {
point: geometry.center() + offset(-30.0 * mm, 0.0 * mm, 150.0 * mm),
amplitude: 2.5e3 * Pa,
},
AmplitudeTarget {
point: geometry.center() + offset(30.0 * mm, 0.0 * mm, 150.0 * mm),
amplitude: 2.5e3 * Pa,
},
],
wavelength(340.0 * m / s),
&NaiveOption {
constraint: IntensityConstraint::Clamp(Intensity::MIN, Intensity::MAX),
directivity: Directivity::Sphere,
mask: TransducerMask::AllEnabled,
},
&mut phases,
&mut intensities,
)?;