Я пытаюсь выполнить БПФ, используя библиотеку FFTW, доступную для С++. Поскольку доступно много вариантов FFTW, я пытаюсь реализовать fft, используя метод rfftwnd (поскольку мои данные реальны).
#include<rfftw.h>
{
fftw_real a[width][2*(height/2+1)],b[width][2*(height/2+1)],c[width][height];
fftw_complex *A,*B,C[width][height/2+1];
rfftwnd_plan rp,rpin;
fftw_real scale = 1.0/(width*height);
const int H = height;
const int W= width;
rp = rfftw2d_create_plan(W,H,FFTW_REAL_TO_COMPLEX,FFTW_ESTIMATE);
rpin = rfftw2d_create_plan(width, height, FFTW_COMPLEX_TO_REAL,FFTW_ESTIMATE);
A = (fftw_complex*) &a[0][0];
B = (fftw_complex*) &b[0][0];
for(int i=0;i<width;i++)
{
for (int j=0;j<height;j++)
{
a[i][j] = la(i,j);
}
}
}
Итак, я в основном пытаюсь реализовать fft на изображении, для этого мне нужно создать планы, как это предлагается в документации FFTW. Но когда я это делаю, я получаю сообщение об ошибке
error: undefined reference to `rfftw2d_create_plan'
может кто-нибудь помочь, почему это происходит? Я что-то упустил здесь?