Module rustradio::fft_filter

source ·
Expand description

FFT filter. Like a FIR filter, but more efficient when there are many taps.

use rustradio::{Complex, Float};
use rustradio::graph::Graph;
use rustradio::fir::low_pass_complex;
use rustradio::blocks::{ConstantSource, FftFilter, NullSink};

let mut graph = Graph::new();

// Create taps for a 100kHz low pass filter with 1kHz transition
// width.
let samp_rate: Float = 1_000_000.0;
let taps = low_pass_complex(samp_rate, 100_000.0, 1000.0, &rustradio::window::WindowType::Hamming);

// Set up dummy source and sink.
let src = Box::new(ConstantSource::new(Complex::new(0.0,0.0)));

// Create and connect fft.
let fft = Box::new(FftFilter::new(src.out(), &taps));

// Set up dummy sink.
let sink = Box::new(NullSink::new(fft.out()));

§Further reading:

Structs§

  • FFT filter. Like a FIR filter, but more efficient when there are many taps.
  • FFT filter for float values.