Transferred from: http://blog.renren.com/share/408963653/15068964503
In fact, I feel this semester algorithm the most difficult to understand is definitely not dynamic planning Ah! It's definitely a fast Fourier transform! Only recently to understand that there are wood.
A lot of people asked me, so simply write a diary.
First clear the basic concept of it, on three points, Dft,fft, butterfly operation.
DFT (discrete Fourier transform): One of the clearest words written in the book is that the vector y= (y0,y1,...... yn-1) is a discrete Fourier transform of the coefficient vector a= (a0,a1,,......, an-1) and also writes Y=DFTN (a). To be blunt, it is to ask for n y values, but the value of n independent variable x is very special
FFT (Fast Fourier transform): This noun is good to understand, is to quickly calculate the n y value. In general we calculate n n times the polynomial value requires O (n^2) time. Now the FFT can be reduced to O (N*logn). The specific principle of one or two words are not finished ... It's too theoretical to test.
Butterfly operation: This should be the most puzzling to everyone ... He is a practical application of FFT ... Because this is the practice of things so be mastered. There is a picture in the book, although the feeling of reading does not necessarily see how to understand, but this figure still to remember. But I think it's more comfortable to write from the bottom up.
Turn around, to the left is add, to the right is minus. Remember!
Suddenly found that it is difficult to explain, first of all the song teacher courseware inside the last pit father's no answer after the class practice to take a look.
I a0,a1,a2 here ... Do not exchange order, in fact, the same, the format is different.
A= (0,1)
After fft,y= (1,-1), this is the simplest application in the book.
One more simple a= (1,0).
Y= (a).
I think the test is generally test four, the two are too simple, 8 is too complex (I have written behind)
Example
A= (1,1,0,1)
y= (3,1,-1,1) Note that the order of Y0,Y2,Y1,Y3 is calculated.
A= (0,1,2,3)
Y= (6,-2-2i,-2, -2+2i).
Notice that the rotation factor in the upper-right corner of the butterfly operation becomes the (eh!? How can you not put the formula Ah! ) W (=i) ... That's because in A0,A2 's butterfly operation we Multiply (N/2), here n=2. I can't explain it. But the number is fixed, back on the line).
Well, my last eight, it's a little complicated, I'm probably not going to test
A= (0,1,2,3,4,5,6,7).
Order of Y
Tell everyone a better way to judge whether the right, direct human flesh using O (n^2) algorithm is good, give four examples. is to bring the X value into the polynomial y=a3*x^3+a2*x^2+a1*x+a0 to figure out what the Y value is. X0=1,x1=i,x2=-1,x3=-i brought in. In this case, in fact, the investigation calculation is not entirely a pseudo-proposition ...
Remind again, Zoga right minus Oh!
Finally, what is the use of this thing, what signal learning nonsense will not say. It is the FFT with N*logn time to calculate the point value convenient point value method to calculate the coefficient of polynomial multiplication results, this reading 510 of the figure I think will be able to understand. Interpolation of God horse, back formula bar ... I don't remember, though.
Time is a little tight, feel the huge rotten, the great god if found to write the wrong message to me immediately change, the key not to fraught ...
About FFT,DFT and butterfly operation