サンプリング設定について

Modulation, FociSTM/GainSTMのサンプリング設定について説明する.

サンプリング周波数はで, より大きい16-bit符号なし整数である.

また, Silencerの設定によって指定できるサンプリング周波数の最大値が決まる. 詳しくはSilencerを参照.

サンプリング設定のコンストラクタには, 分周比, または, サンプリング周波数, サンプリング周期を指定する.

use std::num::NonZeroU16;
use std::time::Duration;
use autd3::prelude::*;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let _ = 
SamplingConfig::new(NonZeroU16::new(10).unwrap());
// or
let _ = 
SamplingConfig::new(4000.0 * Hz);
// or
let _ = 
SamplingConfig::new(Duration::from_micros(250));
Ok(())
}
#include<chrono>
#include<autd3.hpp>
#include<autd3/link/nop.hpp>
int main() {
using namespace autd3;
SamplingConfig(10);
// or
SamplingConfig(4000.0f * Hz);
// or
SamplingConfig(std::chrono::microseconds(250));
return 0; }
using AUTD3Sharp;
using static AUTD3Sharp.Units;
new SamplingConfig(10);
// or
new SamplingConfig(4000f * Hz);
// or
new SamplingConfig(Duration.FromMicros(250));
from pyautd3 import Duration, Hz, SamplingConfig
SamplingConfig(10)
# or
SamplingConfig(4000.0 * Hz)
# or
SamplingConfig(Duration.from_micros(250))

サンプリング周波数制限の緩和

使用は推奨されないが, 出力可能な周波数/周期の内で最も指定した値に近い周波数/周期を使用する方法もある.

use std::time::Duration;
use autd3::prelude::*;
fn main() {
let _ = 
SamplingConfig::new(4000.0 * Hz).into_nearest();
// or
let _ = 
SamplingConfig::new(Duration::from_micros(250)).into_nearest();
}
#include<autd3.hpp>
#include<chrono>
int main() {
using namespace autd3;
const auto s =
SamplingConfig(4000.0f * Hz).into_nearest();
// or
const auto sp =
SamplingConfig(std::chrono::microseconds(250)).into_nearest();
return 0; }
using AUTD3Sharp;
using AUTD3Sharp.Modulation;
using static AUTD3Sharp.Units;
new SamplingConfig(4000.0f * Hz).IntoNearest();
// or
new SamplingConfig(Duration.FromMicros(250)).IntoNearest();
from pyautd3 import Duration, Hz, SamplingConfig
SamplingConfig(4000.0 * Hz).into_nearest()
# or
SamplingConfig(Duration.from_micros(250)).into_nearest()