struct Signal
Source: lib.joule:21
struct SignalSource: lib.joule:21
fn new(data: Vec<f64>, sample_rate: f64) -> SelfCreate new signal from samples
Source: lib.joule:30
fn from_iter<I: IntoIterator<Item = f64>>(iter: I, sample_rate: f64) -> SelfCreate signal from iterator
Source: lib.joule:35
fn zeros(length: usize, sample_rate: f64) -> SelfCreate zero signal of given length
Source: lib.joule:43
fn ones(length: usize, sample_rate: f64) -> SelfCreate ones signal of given length
Source: lib.joule:51
fn sine(frequency: f64, duration: f64, sample_rate: f64, amplitude: f64, phase: f64) -> SelfSource: lib.joule:60
fn cosine(frequency: f64, duration: f64, sample_rate: f64, amplitude: f64, phase: f64) -> SelfSource: lib.joule:73
fn square(frequency: f64, duration: f64, sample_rate: f64, amplitude: f64, duty_cycle: f64) -> SelfSource: lib.joule:86
fn sawtooth(frequency: f64, duration: f64, sample_rate: f64, amplitude: f64) -> SelfSource: lib.joule:104
fn triangle(frequency: f64, duration: f64, sample_rate: f64, amplitude: f64) -> SelfSource: lib.joule:118
fn white_noise(duration: f64, sample_rate: f64, amplitude: f64) -> SelfSource: lib.joule:132
fn pink_noise(duration: f64, sample_rate: f64, amplitude: f64) -> SelfSource: lib.joule:148
fn chirp(Source: lib.joule:175
fn impulse(length: usize, sample_rate: f64, position: usize, amplitude: f64) -> SelfGenerate impulse
Source: lib.joule:207
fn step(length: usize, sample_rate: f64, position: usize, amplitude: f64) -> SelfGenerate step function
Source: lib.joule:216
fn len(&self) -> usizeGet signal length in samples
Source: lib.joule:225
fn is_empty(&self) -> boolCheck if signal is empty
Source: lib.joule:230
fn duration(&self) -> f64Get signal duration in seconds
Source: lib.joule:235
fn nyquist(&self) -> f64Get Nyquist frequency
Source: lib.joule:240
fn time(&self) -> Vec<f64>Get time vector
Source: lib.joule:245
fn map<F: Fn(f64) -> f64>(&self, f: F) -> SelfSource: lib.joule:253
fn map_indexed<F: Fn(usize, f64) -> f64>(&self, f: F) -> SelfSource: lib.joule:262
fn add(&self, other: &Signal) -> SelfSource: lib.joule:271
fn subtract(&self, other: &Signal) -> SelfSource: lib.joule:288
fn multiply(&self, other: &Signal) -> SelfSource: lib.joule:305
fn scale(&self, factor: f64) -> SelfSource: lib.joule:318
fn energy(&self) -> f64Compute signal energy
Source: lib.joule:326
fn power(&self) -> f64Compute signal power
Source: lib.joule:331
fn rms(&self) -> f64Compute RMS (root mean square)
Source: lib.joule:340
fn mean(&self) -> f64Compute mean
Source: lib.joule:345
fn variance(&self) -> f64Compute variance
Source: lib.joule:354
fn std_dev(&self) -> f64Compute standard deviation
Source: lib.joule:364
fn peak(&self) -> f64Find peak value
Source: lib.joule:369
fn min(&self) -> f64Find minimum value
Source: lib.joule:374
fn peak_to_peak(&self) -> f64Find peak-to-peak amplitude
Source: lib.joule:379
fn remove_dc(&self) -> SelfSource: lib.joule:385
fn normalize_peak(&self) -> SelfSource: lib.joule:395
fn normalize_rms(&self) -> SelfSource: lib.joule:406
fn clip(&self, min: f64, max: f64) -> SelfSource: lib.joule:417
fn delay(&self, samples: usize) -> SelfSource: lib.joule:426
fn advance(&self, samples: usize) -> SelfSource: lib.joule:437
fn reverse(&self) -> SelfSource: lib.joule:447
fn concatenate(&self, other: &Signal) -> SelfSource: lib.joule:456
fn segment(&self, start: usize, length: usize) -> SelfExtract segment
Source: lib.joule:466
fn zero_pad(&self, length: usize) -> SelfSource: lib.joule:477
fn pad_to_power_of_2(&self) -> SelfSource: lib.joule:492
enum ChirpMethodSource: lib.joule:500
struct ComplexSignalSource: lib.joule:515
fn new(i: Vec<f64>, q: Vec<f64>, sample_rate: f64) -> SelfCreate from I/Q data
Source: lib.joule:526
fn from_real(signal: &Signal) -> SelfCreate from real signal (Q = 0)
Source: lib.joule:532
fn from_polar(magnitude: &[f64], phase: &[f64], sample_rate: f64) -> SelfSource: lib.joule:542
fn len(&self) -> usizeGet signal length
Source: lib.joule:557
fn is_empty(&self) -> boolCheck if empty
Source: lib.joule:562
fn magnitude(&self) -> Vec<f64>Source: lib.joule:568
fn phase(&self) -> Vec<f64>Source: lib.joule:578
fn instantaneous_frequency(&self) -> Vec<f64>Source: lib.joule:588
fn conjugate(&self) -> SelfSource: lib.joule:613
fn multiply(&self, other: &ComplexSignal) -> SelfSource: lib.joule:623
fn to_real(&self) -> SignalGet real part as signal
Source: lib.joule:639
fn to_imag(&self) -> SignalGet imaginary part as signal
Source: lib.joule:647
fn to_magnitude(&self) -> SignalGet magnitude as signal
Source: lib.joule:655
fn convolve(signal: &[f64], kernel: &[f64]) -> Vec<f64>Source: lib.joule:669
fn convolve_same(signal: &[f64], kernel: &[f64]) -> Vec<f64>Source: lib.joule:688
fn convolve_valid(signal: &[f64], kernel: &[f64]) -> Vec<f64>Source: lib.joule:696
fn convolve_fft(signal: &[f64], kernel: &[f64]) -> Vec<f64>Source: lib.joule:715
fn correlate(signal: &[f64], kernel: &[f64]) -> Vec<f64>Source: lib.joule:747
fn autocorrelate(signal: &[f64]) -> Vec<f64>Source: lib.joule:754
fn correlate_normalized(signal: &[f64], template: &[f64]) -> Vec<f64>Source: lib.joule:760
fn fft(input: &[f64]) -> Vec<(f64, f64)>Source: lib.joule:789
fn ifft(input: &[(f64, f64)]) -> Vec<f64>Source: lib.joule:796
fn fft_inplace(data: &mut [(f64, f64)], inverse: bool)Source: lib.joule:803
fn test_signal_generation()Source: lib.joule:861
fn test_signal_energy()Source: lib.joule:868
fn test_convolution()Source: lib.joule:874
fn test_chirp()Source: lib.joule:886
fn test_complex_signal()Source: lib.joule:892