Fourier

Source

複数の周波数の正弦波を重ね合わせた波形を生成するModulation.

use autd3::modulation::{Fourier, FourierOption};
use autd3::prelude::*;

fn main() {
let _ = 
Fourier {
    components: vec![
        Sine {
            freq: 100 * Hz,
            option: Default::default(),
        },
        Sine {
            freq: 150 * Hz,
            option: Default::default(),
        },
    ],
    option: FourierOption {
        scale_factor: None,
        clamp: false,
        offset: 0x00,
    },
};
}
#include<autd3.hpp>
#include <autd3/modulation/fourier.hpp>

int main() {
using namespace autd3;
modulation::Fourier({Sine(100 * Hz, SineOption{}),
                     Sine(150 * Hz, SineOption{})},
                    modulation::FourierOption{
                        .scale_factor = std::nullopt,
                        .clamp = false,
                        .offset = 0x00,
                    });

return 0; }
using AUTD3Sharp.Modulation;

using static AUTD3Sharp.Units;
new Fourier(
    components: [
        new Sine(freq: 100u * Hz, option: new SineOption()),
        new Sine(freq: 150u * Hz, option: new SineOption())
    ],
    option: new FourierOption
    {
        ScaleFactor = null,
        Clamp = false,
        Offset = 0x00
    }
);
from pyautd3 import Hz, Sine, SineOption
from pyautd3.modulation import Fourier, FourierOption

Fourier(
    components=[
        Sine(freq=100 * Hz, option=SineOption()),
        Sine(freq=150 * Hz, option=SineOption()),
    ],
    option=FourierOption(
        scale_factor=None,
        clamp=False,
        offset=0x00,
    ),
)

スケールファクタと値のクランプ

Fourierの計算は, 以下の式で行われる, スケールファクタが指定されていない場合, が使用される.

clampfalseだと, 上記の式においての範囲外の値になるようなintensity, offsetが指定された場合にエラーを返す. エラーを返すのではなく, 範囲外の値をにクランプする場合は, clamptrueを指定する.

これらの値のデフォルトは上記の通りである.