2

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 にまったく慣れていないので、問題の定式化が正確でなかったことをお詫びします。

4

0 に答える 0