问题:我想C
从FFTW
to返回结果Python
。结果存储在类型中fftw_complex
。我该怎么办?
背景:我正在使用Cmake
,试图通过调用FFTW
然后C
将结果传递给Python
。我这样做是为了学习Cmake
. 下面我有一个函数 ,int example_FFT(int NUM_POINTS)
它对长度为 的序列进行 FFT NUM_POINTS
。该序列的类型为fftw_complex
,它是一个包含实数和虚数对的结构。在我的情况下,所有实部都等于 1,虚部等于 0。
我可以编译Cmake
并成功通过测试 test.py, in Python
。
测试.py:
import pytest
from example import ffi, lib
def test_transform_ones():
NUM_POINTS = int(4);
assert lib.example_FFT(NUM_POINTS) == 4.0
c代码:
int example_FFT(int NUM_POINTS) {
fftw_complex signal[NUM_POINTS];
fftw_complex result[NUM_POINTS];
fftw_plan plan = fftw_plan_dft_1d(NUM_POINTS,
signal,
result,
FFTW_FORWARD,
FFTW_ESTIMATE);
generate_signal(signal);//Set all real values to one. Imag to 0.
fftw_execute(plan);
fftw_destroy_plan(plan);
return result[0][0];
}
我对 C 语言很陌生,并为我的问题表述不够精确而道歉。