sdr-0.1.0.12: A software defined radio library

Safe HaskellNone
LanguageHaskell2010

SDR.FFT

Contents

Description

Fast FFTs using FFTW

Synopsis

Windows

hamming Source #

Arguments

:: (Floating n, Vector v n) 
=> Int

The length of the window

-> v n 

Compute a Hamming window.

hanning Source #

Arguments

:: (Floating n, Vector v n) 
=> Int

The length of the window

-> v n 

Compute a Hanning window.

blackman Source #

Arguments

:: (Floating n, Vector v n) 
=> Int

The length of the window

-> v n 

Compute a Blackman window.

FFTs

fftw' Source #

Arguments

:: Vector v (Complex Double) 
=> Int

The size of the input and output buffers

-> IO (v (Complex Double) -> IO (Vector (Complex Double))) 

Creates a function that performs a complex to complex DFT.

fftw Source #

Arguments

:: Vector v (Complex Double) 
=> Int

The size of the input and output buffers

-> IO (Pipe (v (Complex Double)) (Vector (Complex Double)) IO ()) 

Creates a Pipe that performs a complex to complex DFT.

fftwReal' Source #

Arguments

:: Vector v Double 
=> Int

The size of the input Vector

-> IO (v Double -> IO (Vector (Complex Double))) 

Creates a function that performs a real to complex DFT.

fftwReal Source #

Arguments

:: Vector v Double 
=> Int

The size of the input Vector

-> IO (Pipe (v Double) (Vector (Complex Double)) IO ()) 

Creates a pipe that performs a real to complex DFT.

fftwParallel Source #

Arguments

:: Vector v (Complex Double) 
=> Int

The number of threads to use

-> Int

The size of the input Vector

-> IO (Pipe (v (Complex Double)) (Vector (Complex Double)) IO ()) 

Creates a pipe that uses multiple threads to perform complex to complex DFTs in a pipelined fashion. Each time a buffer is consumed, it is given to a pool of threads to perform the DFT. Then, if a thread has finished performing a previous DFT, the result is yielded.