C質問:からFFTWまでの結果を返したいですPython。結果は type に格納されfftw_complexます。私はどのように行いますか?
背景: 私は で作業しており、 を介して呼び出し、結果を に渡そCmakeうとしています。の基本を学ぶためにこれを行います。以下に、長さ のシーケンスで FFT を実行する関数 があります。シーケンスは 型で、実数と虚数のペアを保持する構造体です。私の場合、実部はすべて 1 に等しく、虚部は 0 に等しくなります。FFTWCPythonCmakeint example_FFT(int NUM_POINTS)NUM_POINTSfftw_complex
Cmaketest.py, in を使用してコンパイルしPython、正常にテストに合格できます。
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 にまったく慣れていないので、問題の定式化が正確でなかったことをお詫びします。