sdr-0.1.0.3: A software defined radio library

Safe HaskellNone
LanguageHaskell2010

SDR.FFT

Contents

Description

Fast FFTs using FFTW

Synopsis

Windows

fftFixup Source

Arguments

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

The length of the Vector

-> v n 

Compute a vector of alternating 1s and 0s of the given size.

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 CDouble) 
=> Int

The size of the input and output buffers

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

Creates a Pipe that performs a complex to complex DFT.

fftwReal Source

Arguments

:: Vector v CDouble 
=> Int

The size of the input Vector

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

Creates a pipe that performs a real to complex DFT.

fftwParallel Source

Arguments

:: Vector v (Complex CDouble) 
=> Int

The number of threads to use

-> Int

The size of the input Vector

-> IO (Pipe (v (Complex CDouble)) (Vector (Complex CDouble)) 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.