出力音圧の制御
AUTD3では, 出力する音圧をPWMを使用して制御している. 具体的には, Duty比と出力音圧の関係は理論上以下のように表される.
Focus
などのGain
には出力強度をで制御するintensity
パラメータがある.
例えば, 以下のコードでは, この強度を最大値の約半分に設定している.
use autd3::prelude::*;
fn main() {
let x = 0.0;
let y = 0.0;
let z = 0.0;
let _ =
Focus {
pos: Point3::new(x, y, z),
option: FocusOption {
intensity: Intensity(0x80),
..Default::default()
},
};
}
#include<autd3.hpp>
int main() {
const auto x = 0.0;
const auto y = 0.0;
const auto z = 0.0;
autd3::Focus(autd3::Point3(x, y, z),
autd3::FocusOption{.intensity = autd3::Intensity(0x80)});
return 0; }
using AUTD3Sharp;
using AUTD3Sharp.Utils;
using AUTD3Sharp.Gain;
var x = 0.0f;
var y = 0.0f;
var z = 0.0f;
new Focus(
pos: new Point3(x, y, z),
option: new FocusOption
{
Intensity = new Intensity(0x80),
}
);
from pyautd3 import Intensity, Focus, FocusOption
x = 1.0
y = 0.0
z = 0.0
Focus(
pos=[x, y, z],
option=FocusOption(
intensity=Intensity(0x80),
),
)
デフォルトでは, このintensity
パラメータと出力音圧が理論上は線形に比例するように設定されている.
具体的には, 強度パラメータ () からDuty比が以下のように計算されるように設定されている.
しかし, 実際には振動子の個体差や理論値とのズレによって, 必ずしも線形に比例するとは限らないことに注意が必要である. (ただし, その場合でも強度パラメータと音圧の関係が単調増加であることは仮定して良い.) AUTD3ではそのため, この強度パラメータとDuty比の変換式を変更し, ユーザが補正することができるようにしている.
NOTE: なお, 実際の強度パラメータとしては,
Gain
等で指定する強度パラメータにModulation
による変調データ()をかけ合わせで割った値が使用される.