How to use FFTW: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
m (Fixed <code> flags)
(Fixing incorrect chars in the instructions)
Line 13: Line 13:
* Step2: Extract and Configure it (my path: /home/jafarabadi/Documents/fftw-3.3.4)
* Step2: Extract and Configure it (my path: /home/jafarabadi/Documents/fftw-3.3.4)
<code>cd /home/jafarabadi/Documents/fftw-3.3.4
<code>cd /home/jafarabadi/Documents/fftw-3.3.4
chmod ''x configure
chmod +x configure
./configure
./configure
make
make
Line 19: Line 19:


* Step 3: Add library to project: first open [your_project_name].pro file in Qt Creator and add this line:
* Step 3: Add library to project: first open [your_project_name].pro file in Qt Creator and add this line:
<code>LIBS''= -lfftw3</code>
<code>LIBS += -lfftw3</code>


* Step 4: Example
* Step 4: Example
Line 25: Line 25:
int N;
int N;


fftw_complex *in, '''out;
// Set N to the number of complex elements in the input array
in = (fftw_complex''') fftw_malloc(sizeof(fftw_complex)'''N);
 
out = (fftw_complex''') fftw_malloc(sizeof(fftw_complex)*N);
fftw_complex *in, *out;
in = (fftw_complex *)fftw_malloc(sizeof(fftw_complex) * N);
out = (fftw_complex *)fftw_malloc(sizeof(fftw_complex) * N);
 
// Initialize 'in' with N complex entries


fftw_plan my_plan;
fftw_plan my_plan;
my_plan = fftw_plan_dft_1d(N, in, out, FFTW_FORWARD, FFTW_ESTIMATE);
my_plan = fftw_plan_dft_1d(N, in, out, FFTW_FORWARD, FFTW_ESTIMATE);
fftw_execute(my_plan);
fftw_execute(my_plan);
// Use 'out' for something


fftw_destroy_plan(my_plan);
fftw_destroy_plan(my_plan);

Revision as of 17:59, 19 February 2016

This article may require cleanup to meet the Qt Wiki's quality standards. Reason: Auto-imported from ExpressionEngine.
Please improve this article if you can. Remove the {{cleanup}} tag and add this page to Updated pages list after it's clean.

How to compute FFT using FFTW in Qt

Getting Start

Note that I do this in Ubuntu operating system, in Windows some steps are different.

  • Step1: Download FFTW ([[1]])
  • Step2: Extract and Configure it (my path: /home/jafarabadi/Documents/fftw-3.3.4)
cd /home/jafarabadi/Documents/fftw-3.3.4
chmod +x configure
./configure
make
make install
  • Step 3: Add library to project: first open [your_project_name].pro file in Qt Creator and add this line:
LIBS += -lfftw3
  • Step 4: Example
#include <fftw3.h>
int N;

// Set N to the number of complex elements in the input array

fftw_complex *in, *out;
in = (fftw_complex *)fftw_malloc(sizeof(fftw_complex) * N);
out = (fftw_complex *)fftw_malloc(sizeof(fftw_complex) * N);

// Initialize 'in' with N complex entries

fftw_plan my_plan;
my_plan = fftw_plan_dft_1d(N, in, out, FFTW_FORWARD, FFTW_ESTIMATE);
fftw_execute(my_plan);

// Use 'out' for something

fftw_destroy_plan(my_plan);
fftw_free(in);
fftw_free(out);

// A short tutorial: http://www2.math.uu.se/~figueras/fftw_tutorial/text/fftw_tutorial.pdf