*** empty log message ***

This commit is contained in:
Mark Borgerding 2004-04-04 22:12:40 +00:00
parent 2666b53e62
commit e9a1a4824f

14
README
View File

@ -35,13 +35,13 @@ Code definitions for 1d complex FFTs are in kiss_fft.c.
You can do other cool stuff with the extras you'll find in tools/ You can do other cool stuff with the extras you'll find in tools/
* arbitrary dimension FFTs (complex only currently, apologies to Steve DeKorte -- mebbe next time ) * arbitrary dimension complex FFTs
* real FFTs * 1-d real FFTs
* fast convolution filtering * fast convolution FIR filtering
* spectrum image creation * spectrum image creation
The core fft and most tools/ code can be compiled to use float, double The core fft and most tools/ code can be compiled to use float, double
or 16bit short samples. The default is float. or Q15 short samples. The default is float.
BACKGROUND: BACKGROUND:
@ -57,7 +57,7 @@ a well respected and highly optimized fft library. I don't want to criticize
this great library, so let's call it FFT_BRANDX. this great library, so let's call it FFT_BRANDX.
During this process, I learned: During this process, I learned:
1. FFT_BRANDX has more than 100K lines of code. The core of kiss_fft is about 500 lines (cpx 1-d). 1. FFT_BRANDX has more than 100K lines of code. The core of kiss_fft is about 500 lines (cpx 1-d).
2. It took me an embarrassingly long time to get FFT_BRANDX working. 2. It took me an embarrassingly long time to get FFT_BRANDX working.
3. A simple program using FFT_BRANDX is 522KB. A similar program using kiss_fft is 18KB. 3. A simple program using FFT_BRANDX is 522KB. A similar program using kiss_fft is 18KB.
4. FFT_BRANDX is roughly twice as fast as KISS FFT. 4. FFT_BRANDX is roughly twice as fast as KISS FFT.
@ -86,11 +86,10 @@ UNDER THE HOOD:
No scaling is done. Optimized butterflies are used for factors 2,3,4, and 5. No scaling is done. Optimized butterflies are used for factors 2,3,4, and 5.
The real optimization code only works for even length ffts. It does two half-length The real optimization code only works for even length ffts. It does two half-length
FFTs in parallel (packed into real&imag) then twiddles. FFTs in parallel (packed into real&imag), and then combines them via twiddling.
The fast convolution filtering uses the overlap-scrap method, slightly The fast convolution filtering uses the overlap-scrap method, slightly
modified to put the scrap at the tail. modified to put the scrap at the tail.
LICENSE: LICENSE:
BSD, see COPYING for details. Basically, "free to use&change, give credit where due, no guarantees" BSD, see COPYING for details. Basically, "free to use&change, give credit where due, no guarantees"
@ -105,7 +104,6 @@ TODO:
*) Make doc describing the overlap (tail) scrap fast convolution filtering in kiss_fastfir.c *) Make doc describing the overlap (tail) scrap fast convolution filtering in kiss_fastfir.c
*) Test all the ./tools/ code with fixed point (kiss_fastfir.c doesn't work, maybe others) *) Test all the ./tools/ code with fixed point (kiss_fastfir.c doesn't work, maybe others)
AUTHOR: AUTHOR:
Mark Borgerding Mark Borgerding
Mark@Borgerding.net Mark@Borgerding.net