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

square

src

square は矩形波の振幅変調を生成する. 指定周波数 freqhighlow の 2 値を切り替える.

freq = 200 Hz
square(freq, &option, &mut dst)?;
引数 説明
freq Freq<u32> 変調周波数
option &SquareOption 追加オプション (下記参照)
dst &mut Vec<u8> 出力バッファ

freq の指定方法は sine と同じ.

SquareOption {
low,
high,
duty,
sampling_config,
}
フィールド デフォルト 説明
low u8 u8::MIN 低レベルの振幅
high u8 u8::MAX 高レベルの振幅
duty f32 0.5 1 周期に占める high の割合
sampling_config SamplingConfig SamplingConfig::FREQ_4K サンプリング設定

1 周期のうち duty の割合が high, 残りが low になる.

duty の範囲外だとエラーになる. duty にすると常に low, にすると常に high になる.

use autd3_rs::units::Hz;
use autd3_rs::value::SamplingConfig;
use autd3_rs_modulation::{SquareOption, square};
let mut dst = Vec::new();
square(
150 * Hz,
&SquareOption {
low: u8::MIN,
high: u8::MAX,
duty: 0.5,
sampling_config: SamplingConfig::FREQ_4K,
},
&mut dst,
)?;