J'ai un signal y. Le signal obtient des valeurs de 0 à 1. Le signal est en fait dérivé du canal rouge (de RGB) de la caméra d'un smartphone, normalisé en mappant toutes les valeurs de l'espace [0,1, ... 255] à l'espace [0 - 1] en divisant par 255. J'ai un autre tableau x pour stocker les images de caméra 0,1,2,3, ... Ce que je veux faire est de convertir le signal y du domaine temporel en utilisant le domaine fréquentiel en utilisant Java. J'ai essayé d'utiliser la classe fournie here.Comment faire pour convertir le signal du domaine temporel au domaine de fréquence avec Java
Mon code est
fftsize = powtwo(y.size()); //keep samples of a size of power of 2
Float[] rp = new Float[fftsize]; //rp is real part of signal (= y)
for(int i=0; i<fftsize; i++){
rp[i]=y.get(i);
}
Float[] ip = new Float[fftsize]; //ip is the imaginary part of signal = 0
for(int i=0; i<fftsize;i++){
ip[i]=0.0f;
}
fft(rp,ip);
où
public int powtwo(int size){ //this function estimates the next power of 2 (below the given int value).
while(!(Math.sqrt((double)size)-(int)Math.sqrt((double)size) == 0)){
size--;
}
return size;
}
Je ne sais pas si je fais bien et je ne sais pas les prochaines étapes pour transformer FFT à la fréquence signal de domaine .