首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在deviceMotion.userAccelerationx上使用FFTW

如何在deviceMotion.userAccelerationx上使用FFTW
EN

Stack Overflow用户
提问于 2014-05-18 00:51:06
回答 1查看 144关注 0票数 0

我正在开发一个应用程序。它测量一个装置的运动。(xyz方向)

现在我必须使用fftw过滤数据。

我不知道如何通过fftw调用数据。下面是我的代码的一部分,试图执行X-数据(我正在处理每个方向,所以X,Y,然后Z)

// FFTW用于X-数据

代码语言:javascript
复制
        int SIZE = 97;
        fftw_complex   *dataX, *fft_resultX;
        fftw_plan       plan_X;
        int             i ;
        dataX       = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * SIZE);
        fft_resultX  = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * SIZE);
        plan_X  = fftw_plan_dft_1d(SIZE, dataX, fft_resultX,
                                         FFTW_FORWARD, FFTW_ESTIMATE); // FFTW_MEASURE
        for( i = 0 ; i < SIZE ; i++ ) {
            dataX[i][0] = 1.0; // real
            dataX[i][1] = 0.0; // complex 
        for( i = 0 ; i < SIZE ; i++ ) {
            fprintf( stdout, "dataX[%d] = { %2.2f, %2.2f }\n",
                    i, dataX[i][0], dataX[i][1] );
        }
        
        fftw_execute( plan_X);
        
        for( i = 0 ; i < SIZE ; i++ ) {
            fprintf( stdout, "fft_resultX[%d] = { %2.2f, %2.2f }\n",
                    i, fft_resultX[i][0], fft_resultX[i][1] );
        }

这里是userAcceleration:

代码语言:javascript
复制
        [[weakSelf.graphViews objectAtIndex:kDeviceMotionGraphTypeUserAcceleration] addX:deviceMotion.userAcceleration.x y:deviceMotion.userAcceleration.y z:deviceMotion.userAcceleration.z];

例如,当我在写作时:

作者声明: dataX=;

我得到了这个错误:

从不兼容类型'fftw_complex‘分配给'_Complex double *’(又名‘_Complex double *')

知道如何让fftw在上面工作吗?

谢谢你的每一次尝试

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-18 04:53:03

您不能简单地将真实数据转换为真实的假想对。每个复数由两个双倍组成。

您需要将所有加速数据存储到一个较大的数组中(例如256个条目),其中x值被赋值给复数的实部,0被分配给虚部。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23717553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档