2017-04-20 3 views
0

dst est des résultats complexes DFT et est également le dernier résultat lorsque ce code de section a été fait.opencv DFT code source Je sais comment obtenir 2D point DFT utilisant N point complexe DFT, mais ne sais pas pourquoi il faut une autre rotation après ce processus

for(j = 2, wave++; j < n2; j += 2, wave++) 
{ 
    /* calc odd */ 
    h2_re = scale2*(dst[j+1] + t); 
    h2_im = scale2*(dst[n-j] - dst[j]); 

    /* calc even */ 
    h1_re = scale2*(dst[j] + dst[n-j]); 
    h1_im = scale2*(dst[j+1] - t); 

    /* rotate i can not understand this*/ 
    t = h2_re*wave->re - h2_im*wave->im; 
    h2_im = h2_re*wave->im + h2_im*wave->re; 
    h2_re = t; 
    t = dst[n-j-1]; 

    dst[j-1] = h1_re + h2_re; 
    dst[n-j-1] = h1_re - h2_re; 
    dst[j] = h1_im + h2_im; 
    dst[n-j] = h2_im - h1_im; 
} 

pourquoi besoin d'un autre tournant où/* tourner */

Répondre

0

Parce que le calcul FFT complexe d'abord sur échantillons impairs et pairs de la séquence d'origine, selon enter image description here

donc besoin de tripoter.

+0

merci je suis chinois et pas bon en anglais, désolé! – dahua