Tag: fftw

如何使FFTW工作

我在使用FFTW 3.3在我的系统上工作时遇到了问题。我从fftw.org网站下载了文件,然后按照安装说明告诉我去终端输入 ./Configure make 一切似乎都没问题,但是当我尝试使用include语句在我的C代码中使用FFTW时,我得到了致命的错误 fatal error: ‘fftw3.h’ file not found 有谁知道我做错了什么? 我的IDE:Eclipse,我的系统:OSX 10.8

关于实际数据序列的FFTW

我正在读一个原始的声音文件,我正试图在它上面运行fft,目的是让PSD结束,但我在开始时遇到一个我无法理解的错误,希望在这里得到一些帮助,代码是: #include #include int main(){ char* fileName = “sound.raw”; FILE* inp = NULL; double* data = NULL; int index = 0; fftw_plan plan; fftw_complex* out; double r,i; int N = 8192; //Allocating the memory for the input data data = (double*) fftw_malloc(sizeof(double)*N); out = (fftw_complex*) fftw_malloc(sizeof(fftw_complex)*N); plan = fftw_plan_dft_r2c_1d(N,data,out,FFTW_FORWARD); // opening the file for reading […]

FFTW产生真实而不是复杂的输出

我正在使用以下代码来执行复数数组的COMPLEX IFFT(我必须得到复杂的结果): #include #include #include #include #include #include int main(void) { fftw_complex *in; fftw_complex *out; double re,im; int size; int i=0; FILE *file; fftw_plan ifft; printf(“Insert size”); if (scanf(“%d”, &size) != 1 || size < 1) return 1; in = fftw_malloc(sizeof(*in)*size); out = fftw_malloc(sizeof(*out)*size); file = fopen("numbers.txt", "r"); for (i = 0; i < size […]

使用openCV与fftw3 Visual Studio 2010的链接器错误

我在同一个项目中尝试使用openCV来实现fftw3时遇到了麻烦。 我是c / c ++的新手,非常感谢任何帮助。 以下是我使用的示例代码: #include “fftw3.h” #include int main(){ fftw_complex *in, *out; fftw_plan p; int N=8; in = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * N); out = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * N); p = fftw_plan_dft_1d(N, in, out, FFTW_FORWARD, FFTW_ESTIMATE); for(int i=0; i<N; i++){ in[i][0]=i; in[i][1]=0; } fftw_execute(p); for(int i=0; i%f\tI->%f\n”, out[i][0], out[i][1]); } system(“pause”); fftw_destroy_plan(p); fftw_free(in); fftw_free(out); […]

如果可能的话,如何进行fftw3 MPI“转置”2D变换?

考虑从复杂数组src到实数数组tgt的formsL x M(列主要设置)的2D变换。 或者,在Fortranese, complex(C_DOUBLE_COMPLEX), pointer :: src(:,:) real(8), pointer :: tgt(:,:) . 相应的指针是 type(C_PTR) :: csrc,ctgt . 我会按以下方式分配它们: ! The complex array first alloc_local = fftw_mpi_local_size_2d(M,L/2+1,MPI_COMM_WORLD,local_M,local_offset1) csrc = fftw_alloc_complex(alloc_local) call c_f_pointer(csrc, src, [L/2,local_M]) ! Now the real array alloc_local = fftw_mpi_local_size_2d(2*(L/2+1),M, & MPI_COMM_WORLD,local_L,local_offset2) ctgt = fftw_alloc_real(alloc_local) call c_f_pointer(ctgt, tgt, [M,local_L]) 现在,该计划将创建为: ! Create c–>r […]

C中对“main”的未定义引用

嗨我在使用gcc编译交流代码时遇到错误 /usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../lib64/crt1.o: In function `_start’: (.text+0x20): undefined reference to `main’ collect2: ld returned 1 exit status 我试图将fftw()函数导入SystemVerilog 。 这是我的代码 #include #include #include #include #include void fftw(double FFT_in[],int size) { double *IFFT_out; int i; fftw_complex *middle; fftw_plan fft; fftw_plan ifft; middle = (fftw_complex*) fftw_malloc(sizeof(fftw_complex)*size); IFFT_out = (double *) malloc(size*sizeof(double)); fft = fftw_plan_dft_r2c_1d(size, FFT_in, middle, FFTW_ESTIMATE); //Setup […]

CMake:/ usr / include不习惯查找fftw3.h

我正在开发一个个人项目来与CMake交叉编译Raspberry Pi。 这是我第一次使用它构建项目。 我编译的文件之一包括fftw3.h头文件。 此文件存在于/usr/include文件夹中,如以下输出所示: $ ls /usr/include/fftw3* /usr/include/fftw3.f /usr/include/fftw3.f03 /usr/include/fftw3.h /usr/include/fftw3l.f03 /usr/include/fftw3q.f03 cmake使用find_path(FFTW_FOLDER NAMES fftw3.h)成功找到该文件,即使cmake默认查看此路径,我也会在使用target_include_directories(${LIB_NAME} PUBLIC /usr/include)构建目标时显式添加该文件。 但是,当编译时,我有经典的错误消息告诉我fftw3.h 。 如果我复制文件并将其放在我的主文件夹中并在包含列表中添加我的主文件夹,则没有问题,编译工作正常。 有什么想法吗 ? 谢谢,Damien 编辑1回答@Pablo和@hikerjobs : 这是我的编译行的样子: /home/littlemonster/projects/rpi-workspace/rpi-tools/arm-bcm2708/gcc- linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf-g++ -Dmatrix_hal_EXPORTS -I/home/littlemonster/projects/rpi- workspace/lib/matrix-hal/matrix-creator-hal -fPIC -Wall -Werror – Wextra -Wdouble-promotion -std=gnu++11 -o CMakeFiles/matrix- hal.dir/matrix-creator-hal/cpp/driver/cross_correlation.cpp.o -c /home/littlemonster/projects/rpi-workspace/lib/matrix-hal/matrix- creator-hal/cpp/driver/cross_correlation.cpp In file included from /home/littlemonster/projects/rpi- workspace/lib/matrix-hal/matrix-creator- hal/cpp/driver/cross_correlation.cpp:18:0: /home/littlemonster/projects/rpi-workspace/lib/matrix-hal/matrix- creator-hal/cpp/driver/cross_correlation.h:21:19: fatal […]

FFTW高级布局 – inembed = n和inembed = NULL给出不同的结果?

我正在使用FFTW高级数据布局API处理批量2D FFT。 根据FFTW高级复杂DFT文档: 为nembed参数传递NULL等同于传递n 。 但是,当使用inembed = onembed = NULL而不是inembed = onembed = n时,我会得到不同的结果。 什么可能导致结果不匹配? 我们举个例子…… 建立 int howMany = 2; int nRows = 4; int nCols = 4; int n[2] = {nRows, nCols}; float* h_in = (float*)malloc(sizeof(float) * nRows*nCols*howMany); for(int i=0; i<(nRows*nCols*howMany); i++){ //initialize h_in to [0 1 2 3 4 …] h_in[i] = […]

为以前的OS X版本编译C程序

我写了一段使用libfftw3和libaiff外部库的C代码。 代码在我的机器上完美编译和执行,该机器具有所需的库并且运行OS X 10.9 Mavericks。 我正在使用Xcode 5.1编译我的程序,我相信我已正确链接所需的库并提供了头文件等必要的路径(一切都在我的计算机上工作)。 实际上,生成的可执行文件也可以在运行OS X Mavericks的另一台计算机上运行,​​并且还安装了所需的库。 问题 :我正在尝试使用Xcode 5.1编译我的代码以创建一个可执行文件,该可执行文件将在运行OS X 10.8(Mountain Lion)的计算机上运行,​​并且没有安装上述库。 到目前为止,我尝试过很多不同的事情: (1)首先,我将Base SDK保留为OS X 10.9,并将OS X部署目标更改为OS X 10.8并成功编译。 但是当我在运行OS X 10.8的第三台计算机上执行并且没有安装任何一个库时,我收到以下错误: dyld: lazy symbol binding failed: Symbol not found: ___sincos_stret Referenced from: /Users/ec/Desktop/Auto Designer C Program Testing/Auto Designer Expected in: /usr/lib/libSystem.B.dylib dyld: Symbol not found: ___sincos_stret Referenced from: /Users/ec/Desktop/Auto […]

用valgrind检查fftw3

在我的程序的一个步骤中,我需要卷积图像。 为此,我使用fftw3提供的function。 当我在我的程序上运行valgrind ,我得到了这个堆栈跟踪。 我的函数叫做fftw3 ,它运行fftw3的fftw_plan_dft_r2c_2d两次(一次在图像上,一次在卷积内核上。为了使它更具可读性,我删除了所有地址和进程ID。 HEAP SUMMARY: in use at exit: 62,280 bytes in 683 blocks total heap usage: 178,271 allocs, 177,588 frees, 36,617,058 bytes allocated 3,304 (24 direct, 3,280 indirect) bytes in 1 blocks are definitely lost in loss record 129 of 131 at : malloc (vg_replace_malloc.c:291) by : fftw_malloc_plain (in ./prog) by […]