Skip to content

davidkleiven/gosfft

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gosfft

Build status Coverage Status Go Report Card

Simple FFT (SFFT) is a simple FFT library that is based on Gonum's FFT routine. It implements a simple interface for 1D, 2D and 3D transforms.

Examples

Below is a selection of examples whoen

Fourier transform of a square pulse

Signal 1D Fourier Transform

Fourier transform of a square

Signal 2D Fourier Transform

Fourier transform of a 3D cube

Parallelization

GOSFFT implements parallel versions of the multidimensional FFTs. In the following testcase a 2D 128 x 128 matrix is Fourier Transformed. The following results where obtained (Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz)

Number of workers Execution time per FFT
1 1.34 ms
2 0.85 ms
4 0.67 ms
8 0.45 ms

The testcase runs a similar test in 3D for 128 x 128 x 128 dataset. The timing results are shown below

Number of workers Execution time per FFT
1 280 ms
2 146 ms
4 87 ms
8 68 ms