sine
srcsine は正弦波の振幅変調を生成する.
freq = 200 Hz (clamp = true)
sine(freq, &option, sampling_config, &mut dst)?;sine(freq, option, sampling_config, dst)Modulation.Sine(freq, option, samplingConfig, dst);| 引数 | 型 | 説明 |
|---|---|---|
freq |
Freq 等 |
変調周波数 |
option |
&SineOption |
追加オプション (下記参照) |
config |
SamplingConfig |
サンプリング設定 (Modulation 参照) |
dst |
&mut Vec<u8> |
出力バッファ |
各サンプル amplitude), オフセット offset), 位相 phase)に対して次式で与えられる.
freq は Freq (150 * Hz や 150.0 * Hz) で指定する. 150 * Hz と 150.0 * Hz は同じ周波数を表す.
SineOption
Section titled “SineOption”SineOption { amplitude, offset, phase, clamp, ..Default::default()}SineOption( amplitude, offset, phase, clamp,)new SineOption{ Amplitude = amplitude, Offset = offset, Phase = phase, Clamp = clamp,}| フィールド | 型 | デフォルト | 説明 |
|---|---|---|---|
amplitude |
u8 |
0xFF |
正弦波の振幅 |
offset |
u8 |
0x80 |
直流オフセット |
phase |
Angle |
Angle::ZERO |
位相 |
clamp |
bool |
false |
範囲外の値を [0, 255] に clamp するか |
amplitude と offset の組み合わせで波形が [0, 255] の範囲を外れる場合, clamp が false だとエラーになる.
範囲内に収まるよう値を選ぶか, clamp を true にする.
SamplingConfigの制約により, 指定した周波数が表現可能な周波数でない場合がある.
freq は周期内に整数個のサンプルで表せる周波数でなければならず, そうでない場合はエラーになる.
Example
Section titled “Example”use autd3_rs::units::{Hz, rad};use autd3_rs::value::SamplingConfig;use autd3_rs_modulation::{SineOption, modulation_buffer, sine};
let mut dst = modulation_buffer();
sine( 150 * Hz, &SineOption { amplitude: 0xFF, offset: 0x80, phase: 0.0 * rad, clamp: false, ..Default::default() }, SamplingConfig::FREQ_4K, &mut dst,)?;from autd3.units import Hz, radfrom autd3.value import SamplingConfigfrom autd3_modulation import SineOption, modulation_buffer, sine
dst = modulation_buffer()
sine( 150 * Hz, SineOption( amplitude=0xFF, offset=0x80, phase=0.0 * rad, clamp=False, ), SamplingConfig.FREQ_4K, dst,)using AUTD3;using static AUTD3.Units;
var dst = Modulation.ModulationBuffer();
Modulation.Sine( 150 * Hz, new SineOption { Amplitude = 0xFF, Offset = 0x80, Phase = 0.0f * rad, Clamp = false, }, SamplingConfig.Freq4k, dst);