Difference between revisions of "How to use FFTW"
From Qt Wiki
m (Fixed <code> flags) |
|||
(3 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | + | [[Category:HowTo]] | |
+ | == Getting Started == | ||
− | + | '''Note that this is done on an Ubuntu operating system, on Windows some steps are different.''' | |
− | + | * '''Step 1''': Download FFTW from http://www.fftw.org/download.html | |
− | + | * '''Step 2''': Extract and Configure it (my path: /home/jafarabadi/Documents/fftw-3.3.4) | |
− | + | <pre> | |
+ | cd /home/jafarabadi/Documents/fftw-3.3.4 | ||
+ | ./configure | ||
+ | make | ||
+ | make install | ||
+ | </pre> | ||
+ | |||
+ | * Alternatively install fftw through your package manager (e.g. pacman -Sy fftw) | ||
− | * | + | * '''Step 3''': Add library to project: first open [your_project_name].pro file in Qt Creator and add this line: |
− | + | <pre> | |
− | < | + | LIBS += -lfftw3 |
− | + | </pre> | |
− | |||
− | |||
− | |||
− | * Step | + | * '''Step 4''': Example |
− | |||
− | + | <code> | |
− | <code>#include <fftw3.h> | + | #include <fftw3.h> |
int N; | int N; | ||
− | fftw_complex *in, | + | // Set N to the number of complex elements in the input array |
− | in = (fftw_complex | + | |
− | out = (fftw_complex | + | 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); | ||
Line 37: | Line 47: | ||
fftw_free(out); | fftw_free(out); | ||
− | // A short tutorial: http://www2.math.uu.se/~figueras/ | + | // A short tutorial: |
+ | // http://www2.math.uu.se/~figueras/Other/text/fftw_tutorial.pdf | ||
+ | </code> |
Latest revision as of 07:58, 10 March 2017
Getting Started
Note that this is done on an Ubuntu operating system, on Windows some steps are different.
- Step 1: Download FFTW from http://www.fftw.org/download.html
- Step 2: Extract and Configure it (my path: /home/jafarabadi/Documents/fftw-3.3.4)
cd /home/jafarabadi/Documents/fftw-3.3.4 ./configure make make install
- Alternatively install fftw through your package manager (e.g. pacman -Sy fftw)
- 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/Other/text/fftw_tutorial.pdf