Modulation
Modulation
is a mechanism to control AM modulation.
The modulation is applied to the amplitude of the sound pressure.
For example, if you use Sine
with , the sound pressure amplitude is as follows, and the envelope of the positive part (or negative part) of sound pressure follows the sine wave.
Currently, Modulation
has the following restrictions.
- The buffer size is up to 32768.
- The sampling rate is , where is a non-zero 16-bit unsigned integer.
The SDK has Modulation
by default to generate several types of AM.
Modulation common API
Sampling configuration
You can get the sampling frequency with sampling_config
.
use autd3::prelude::*;
#[allow(unused_variables)]
fn main() -> Result<(), Box<dyn std::error::Error>> {
let m = autd3::modulation::Sine::new(150 * Hz);
let fs = m.sampling_config().freq(); // -> 4kHz
Ok(())
}
#include<autd3.hpp>
#include<autd3/link/nop.hpp>
int main() {
const auto m = autd3::modulation::Sine(150 * autd3::Hz);
const auto fs = m.sampling_config().freq(); // -> 4kHz
return 0; }
using AUTD3Sharp;
using AUTD3Sharp.Modulation;
using static AUTD3Sharp.Units;
var m = new Sine(150u * Hz);
var fs = m.SamplingConfig.Freq; // -> 4kHz
from pyautd3 import Hz
from pyautd3.modulation import Sine
m = Sine(150 * Hz)
fs = m.sampling_config.freq # -> 4kHz
Some Modulation
can set the sampling configuration with with_sampling_config
.
use autd3::prelude::*;
#[allow(unused_variables)]
fn main() -> Result<(), Box<dyn std::error::Error>> {
let m = autd3::modulation::Sine::new(150 * Hz)
.with_sampling_config(4000 * Hz);
Ok(())
}
#include<autd3.hpp>
#include<autd3/link/nop.hpp>
int main() {
const auto m = autd3::modulation::Sine(150 * autd3::Hz)
.with_sampling_config(4000u * autd3::Hz);
return 0; }
using AUTD3Sharp;
using AUTD3Sharp.Modulation;
using static AUTD3Sharp.Units;
var m = new Sine(150u * Hz).WithSamplingConfig(4000 * Hz);
from pyautd3 import Hz
from pyautd3.modulation import Sine
m = Sine(150 * Hz).with_sampling_config(4000 * Hz)