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