Je travaille sur une application. que c'est mesurer le mouvement d'un appareil. (direction xyz)Comment utiliser FFTW sur deviceMotion.userAcceleration.x
et maintenant je dois utiliser fftw pour filtrer les données.
Je ne sais pas comment appeler les données via fftw. hier ci-dessous est une partie de mon code en essayant d'exécuter les données X (je travaille sur chaque direction séparée afin X, Y, Z) et
// FFTW pour les données X
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]);
}
et hier est le userAcceleration:
[[weakSelf.graphViews objectAtIndex:kDeviceMotionGraphTypeUserAcceleration] addX:deviceMotion.userAcceleration.x y:deviceMotion.userAcceleration.y z:deviceMotion.userAcceleration.z];
par exemple, quand je suis en train d'écrire:
Datax = deviceMotion.userAcceleration.x;
Je reçois cette erreur:
Attribution de 'fftw_complex *' (alias '_Complex double *') de type incompatible 'double'
toute idée comment faire fonctionner fftw là-dessus?
merci pour tous les essayer
merci pour votre réponse. J'ai suivi ce que tu as dit. J'ai donc enregistré le userAcceleration.x dans un tableau, puis j'ai défini des données comme: 'data [i] [0] = array [i] [0]; La valeur souscrite n'est pas un tableau, un pointeur ou un vecteur data [i] [1] = array [0] [0]; La valeur souscrite n'est pas un tableau, un pointeur ou un vecteur mais j'obtiens cette erreur. Savez-vous comment le résoudre? désolé de stresser mais je suis nouveau avec xcode, j'espère que vous pouvez m'aider. – josef
tableau est seulement 1 dimensionnelle. Donc données [i] [0] = tableau [i] et données [i] [1] = 0.0. – Goz
Je l'ai écrit comme vous l'avez dit, mais il me donne toujours cette erreur - La valeur du sousscrit n'est pas un tableau, un pointeur ou un vecteur - et il me montre sur le second tableau de données. (Data [i]> [0] = array [i] [0]; données [i]> [1] = 0.0;) – josef