コンテンツにスキップ

SamplingConfig

SamplingConfig は Modulation や STM のサンプリング周波数を表す. サンプリング周波数は超音波周波数 (40 kHz) を整数で分周した値でなければならない.

SamplingConfig::new(NonZeroU16::new(10).unwrap());
SamplingConfig::new(4. * kHz);
SamplingConfig::new(Duration::from_micros(250));
SamplingConfig::new(Nearest(4. * kHz));
SamplingConfig::new(Nearest(Duration::from_micros(250)));

SamplingConfig::newNonZeroU16 / Freq<f32> / Duration / Nearest<Freq<f32>> / Nearest<Duration> を受け取る. 上記はいずれも 4 kHz (分周比 10) を表し, 互いに等価.

SamplingConfig は次のいずれかとして指定できる. 内部では最終的に分周比 (u16) へ変換される.

指定方法
分周比 NonZeroU16
周波数 Freq<f32>
周期 Duration

分周比 とサンプリング周波数 , サンプリング周期 の関係は次の通り.

周波数・周期で指定した場合, それが 40 kHz を割り切れない (整数の分周比にならない) とエラーになる. 割り切れない値を最も近い分周比へ丸めたいときは周波数/周期を Nearest でラップする.

よく使う定数はあらかじめ用意されている.

定数 サンプリング周波数 分周比
FREQ_40K 40 kHz 1
FREQ_4K 4 kHz 10