Qt wiki will be updated on October 12th 2023 starting at 11:30 AM (EEST) and the maintenance will last around 2-3 hours. During the maintenance the site will be unavailable.
How to use FFTW: Difference between revisions
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 | 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 | <code>LIBS += -lfftw3</code> | ||
* Step 4: Example | * Step 4: Example | ||
Line 25: | Line 25: | ||
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); |
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