Square

Source

矩形波状のModulation.

use autd3::prelude::*;
fn main() {
let _ = 
Square {
    freq: 150 * Hz,
    option: SquareOption {
        low: u8::MIN,
        high: u8::MAX,
        duty: 0.5,
        sampling_config: SamplingConfig::FREQ_4K,
    },
};
}
#include<autd3.hpp>
int main() {
using namespace autd3;
Square(150 * Hz, SquareOption{
                     .low = 0x00,
                     .high = 0xFF,
                     .duty = 0.5f,
                     .sampling_config = SamplingConfig::freq_4k(),
                 });
return 0; }
using AUTD3Sharp;
using AUTD3Sharp.Modulation;
using static AUTD3Sharp.Units;
new Square(
    freq: 150u * Hz,
    option: new SquareOption
    {
        Low = 0x00,
        High = 0xFF,
        Duty = 0.5f,
        SamplingConfig = SamplingConfig.Freq4K
    }
);
from pyautd3 import Hz, SamplingConfig, Square, SquareOption
Square(
    freq=150 * Hz,
    option=SquareOption(
        low=0x00,
        high=0xFF,
        duty=0.5,
        sampling_config=SamplingConfig.FREQ_4K,
    ),
)

周波数制約

Squareはデフォルトだと周波数に厳格であり, サンプリング周波数によって出力不可能な周波数が指定された場合にはエラーを返す.

その場合はサンプリング設定を変更するか, into_nearestを使用することで, 出力可能な周波数の内で最も近い周波数で変調することができる.

use autd3::prelude::*;
fn main() {
let _ = 
Square {
    freq: 150.0 * Hz,
    option: Default::default(),
}
.into_nearest();
}
#include<autd3.hpp>
int main() {
using namespace autd3;
Square(150.0f * Hz, SquareOption{}).into_nearest();
return 0; }
using AUTD3Sharp.Modulation;
using static AUTD3Sharp.Units;
new Square(freq: 150.0f * Hz, option: new SquareOption()).IntoNearest();
from pyautd3 import Hz, Square, SquareOption
Square(freq=150.0 * Hz, option=SquareOption()).into_nearest()