问题:我想将C
的结果从FFTW
返回到Python
。结果存储在fftw_complex
类型中。我该怎么办?
背景:我正在与Cmake
合作,尝试通过FFTW
呼叫C
,然后将结果传递给Python
。我这样做是为了学习Cmake
的基础知识。下面我有一个函数int example_FFT(int NUM_POINTS)
,它对长度为NUM_POINTS
的序列进行FFT。序列的类型为fftw_complex
,它是一个包含实数和虚数对的结构。在我的例子中,所有实部都等于1,虚部等于0.
我可以使用Cmake
进行编译,并成功通过Python
中的test.py测试。
test.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很陌生,并为我的问题表达中的更精确而道歉。