← Back

Module fft

enum FftAlgorithm

Source: fft.joule:13

struct FftConfig

Source: fft.joule:30

fn default() -> Self

Source: fft.joule:40

struct FftPlan

Precomputed FFT plan for repeated transforms of same size

Source: fft.joule:50

fn new(size: usize) -> Self

Source: fft.joule:65

fn new_inverse(size: usize) -> Self

Source: fft.joule:71

fn with_config(size: usize, config: FftConfig, inverse: bool) -> Self

Source: fft.joule:77

fn size(&self) -> usize

Get the size this plan was created for

Source: fft.joule:111

fn execute(&self, input: &[Complex]) -> Vec<Complex>

Source: fft.joule:117

fn execute_inplace(&self, data: &mut [Complex])

Source: fft.joule:133

fn cooley_tukey_fft(&self, input: &[Complex]) -> Vec<Complex>

Cooley-Tukey radix-2 FFT

Source: fft.joule:148

fn cooley_tukey_inplace(&self, data: &mut [Complex])

In-place Cooley-Tukey FFT

Source: fft.joule:158

fn bluestein_fft(&self, input: &[Complex]) -> Vec<Complex>

Bluestein's algorithm for arbitrary-length FFT

Source: fft.joule:200

fn fft(input: &[Complex]) -> Vec<Complex>

Source: fft.joule:265

fn ifft(input: &[Complex]) -> Vec<Complex>

Source: fft.joule:272

fn fft_inplace(data: &mut [Complex])

Source: fft.joule:279

fn ifft_inplace(data: &mut [Complex])

Source: fft.joule:286

fn rfft(input: &[f64]) -> Vec<Complex>

Source: fft.joule:293

fn irfft(input: &[Complex], n: usize) -> Vec<f64>

Source: fft.joule:306

fn fftfreq(n: usize, sample_rate: f64) -> Vec<f64>

Source: fft.joule:325

fn rfftfreq(n: usize, sample_rate: f64) -> Vec<f64>

Source: fft.joule:340

fn fftshift<T: Clone>(input: &[T]) -> Vec<T>

Source: fft.joule:347

fn ifftshift<T: Clone>(input: &[T]) -> Vec<T>

Source: fft.joule:358

fn fft2(input: &[Vec<Complex>]) -> Vec<Vec<Complex>>

Source: fft.joule:373

fn ifft2(input: &[Vec<Complex>]) -> Vec<Vec<Complex>>

Source: fft.joule:400

fn fftshift2<T: Clone>(input: &[Vec<T>]) -> Vec<Vec<T>>

Source: fft.joule:427

struct NdArray

N-dimensional array for FFT

Source: fft.joule:453

fn new(data: Vec<Complex>, shape: Vec<usize>) -> Self

Create from flat data and shape

Source: fft.joule:461

fn get(&self, indices: &[usize]) -> Complex

Get element at index

Source: fft.joule:474

fn set(&mut self, indices: &[usize], value: Complex)

Set element at index

Source: fft.joule:483

fn fftn(input: &NdArray) -> NdArray

Source: fft.joule:494

fn fft_axis(array: &mut NdArray, axis: usize)

FFT along a specific axis

Source: fft.joule:506

enum DctType

Source: fft.joule:566

fn dct(input: &[f64], dct_type: DctType) -> Vec<f64>

Source: fft.joule:579

fn idct(input: &[f64], dct_type: DctType) -> Vec<f64>

Source: fft.joule:590

fn dct1(input: &[f64]) -> Vec<f64>

DCT-I

Source: fft.joule:600

fn dct2(input: &[f64]) -> Vec<f64>

DCT-II (the most common DCT)

Source: fft.joule:622

fn dct3(input: &[f64]) -> Vec<f64>

DCT-III (inverse of DCT-II)

Source: fft.joule:641

fn dct4(input: &[f64]) -> Vec<f64>

DCT-IV

Source: fft.joule:657

fn dct2d(input: &[Vec<f64>]) -> Vec<Vec<f64>>

Source: fft.joule:674

fn idct2d(input: &[Vec<f64>]) -> Vec<Vec<f64>>

Source: fft.joule:700

enum DstType

Source: fft.joule:730

fn dst(input: &[f64], dst_type: DstType) -> Vec<f64>

Source: fft.joule:739

enum WaveletFamily

Source: fft.joule:792

struct WaveletFilters

Wavelet filter bank

Source: fft.joule:812

fn new(wavelet: WaveletFamily) -> Self

Source: fft.joule:826

fn daubechies(n: u8) -> Self

Source: fft.joule:844

fn symlet(n: u8) -> Self

Source: fft.joule:895

fn coiflet(n: u8) -> Self

Source: fft.joule:901

struct DwtResult

Discrete Wavelet Transform result

Source: fft.joule:935

fn dwt(input: &[f64], wavelet: WaveletFamily, level: usize) -> DwtResult

Source: fft.joule:946

fn dwt_single_level(input: &[f64], filters: &WaveletFilters) -> (Vec<f64>, Vec<f64>)

Single-level DWT

Source: fft.joule:965

fn idwt(result: &DwtResult, wavelet: WaveletFamily) -> Vec<f64>

Source: fft.joule:992

fn idwt_single_level(approx: &[f64], detail: &[f64], filters: &WaveletFilters) -> Vec<f64>

Single-level IDWT

Source: fft.joule:1005

fn swt(input: &[f64], wavelet: WaveletFamily, level: usize) -> (Vec<Vec<f64>>, Vec<Vec<f64>>)

Source: fft.joule:1022

fn cwt(input: &[f64], scales: &[f64], wavelet: WaveletFamily) -> Vec<Vec<f64>>

Source: fft.joule:1055

fn wavelet_function(t: f64, wavelet: WaveletFamily) -> f64

Wavelet mother function

Source: fft.joule:1078

fn welch(

Source: fft.joule:1102

fn periodogram(input: &[f64], sample_rate: f64) -> (Vec<f64>, Vec<f64>)

Source: fft.joule:1141

fn spectrogram(

Source: fft.joule:1155

struct Spectrogram

Spectrogram result

Source: fft.joule:1196

fn to_db(&self, ref_val: f64) -> Vec<Vec<f64>>

Convert magnitude to decibels

Source: fft.joule:1211

fn to_mel(&self, num_mel_bins: usize, fmin: f64, fmax: f64) -> Vec<Vec<f64>>

Source: fft.joule:1221

fn hann_window(size: usize) -> Vec<f64>

Source: fft.joule:1250

fn hamming_window(size: usize) -> Vec<f64>

Source: fft.joule:1258

fn blackman_window(size: usize) -> Vec<f64>

Source: fft.joule:1266

fn kaiser_window(size: usize, beta: f64) -> Vec<f64>

Source: fft.joule:1277

fn gaussian_window(size: usize, sigma: f64) -> Vec<f64>

Source: fft.joule:1289

fn flattop_window(size: usize) -> Vec<f64>

Source: fft.joule:1301

fn bartlett_window(size: usize) -> Vec<f64>

Source: fft.joule:1318

fn convolve(a: &[f64], b: &[f64]) -> Vec<f64>

Source: fft.joule:1331

fn convolve_circular(a: &[f64], b: &[f64]) -> Vec<f64>

Source: fft.joule:1366

fn correlate(a: &[f64], b: &[f64]) -> Vec<f64>

Source: fft.joule:1384

fn autocorrelate(input: &[f64]) -> Vec<f64>

Source: fft.joule:1392

fn correlate_normalized(a: &[f64], b: &[f64]) -> Vec<f64>

Source: fft.joule:1398

fn hz_to_mel(hz: f64) -> f64

Source: fft.joule:1418

fn mel_to_hz(mel: f64) -> f64

Source: fft.joule:1424

fn mel_filters(

Source: fft.joule:1430

fn mfcc(

Source: fft.joule:1481

fn is_power_of_two(n: usize) -> bool

Source: fft.joule:1521

fn compute_bit_reversal(n: usize) -> Vec<usize>

Compute bit-reversal permutation

Source: fft.joule:1526

fn bessel_i0(x: f64) -> f64

Modified Bessel function I_0 (for Kaiser window)

Source: fft.joule:1534

fn hilbert(input: &[f64]) -> Vec<Complex>

Source: fft.joule:1555

fn instantaneous_frequency(analytic: &[Complex], sample_rate: f64) -> Vec<f64>

Source: fft.joule:1581

fn envelope(input: &[f64]) -> Vec<f64>

Source: fft.joule:1604

fn test_fft_ifft()

Source: fft.joule:1617

fn test_parseval()

Source: fft.joule:1632

fn test_dct_idct()

Source: fft.joule:1646

fn test_convolution()

Source: fft.joule:1657

fn test_window_functions()

Source: fft.joule:1671