Commit Graph

380 Commits

Author SHA1 Message Date
Mark Borgerding
8460f1f8f5 added optimization for radix 2
### testing SNR for  1024 point FFTs
#### DOUBLE
snr_t2f = 296.29
snr_f2t = 314.48
#### FLOAT
snr_t2f = 146.48
snr_f2t = 143.03
#### SHORT
snr_t2f = -30.269
snr_f2t = -60.442

#### timing 10000 x 1024 point FFTs
#### DOUBLE
Elapsed:0:02.77 user:2.22 sys:0.13
#### FLOAT
Elapsed:0:01.65 user:1.35 sys:0.07
#### SHORT
Elapsed:0:02.44 user:2.00 sys:0.06
2003-10-14 00:38:58 +00:00
Mark Borgerding
0d6d61cfce reduced calling parameters
negligible performane impact
2003-10-11 23:07:16 +00:00
Mark Borgerding
0d44569b3b made one single malloc for all buffers
no noticable performance gain
2003-10-11 23:00:12 +00:00
Mark Borgerding
f93a0258df Simplified some inner loop calcs
'make test' output:
### testing SNR for  1024 point FFTs
#### DOUBLE
snr_t2f = 295.34
snr_f2t = 308.77
#### FLOAT
snr_t2f = 146.93
snr_f2t = 143.56
#### SHORT
snr_t2f = 54.799
snr_f2t = 24.562

#### timing 10000 x 1024 point FFTs
#### DOUBLE
Elapsed:0:10.69 user:8.71 sys:0.20
#### FLOAT
Elapsed:0:04.40 user:3.42 sys:0.11
#### SHORT
Elapsed:0:05.62 user:4.77 sys:0.04
2003-10-11 22:45:35 +00:00
Mark Borgerding
911d29d139 changed from static function that wasn't inlining very well to a macro
'make test' output:
### testing SNR for  1024 point FFTs
#### DOUBLE
snr_t2f = 295.70
snr_f2t = 308.53
#### FLOAT
snr_t2f = 146.91
snr_f2t = 143.58
#### SHORT
snr_t2f = 54.677
snr_f2t = 24.668

#### timing 10000 x 1024 point FFTs
#### DOUBLE
Elapsed:0:11.38 user:9.15 sys:0.24
#### FLOAT
Elapsed:0:04.18 user:3.39 sys:0.14
#### SHORT
Elapsed:0:06.03 user:4.75 sys:0.15
2003-10-11 22:41:17 +00:00
Mark Borgerding
11983e5056 used += on complex components
dramatic speedup -- 'make test' output:
### testing SNR for  1024 point FFTs
#### DOUBLE
snr_t2f = 295.63
snr_f2t = 307.82
#### FLOAT
snr_t2f = 146.25
snr_f2t = 143.37
#### SHORT
snr_t2f = 54.694
snr_f2t = 24.470

#### timing 10000 x 1024 point FFTs
#### DOUBLE
Elapsed:0:16.06 user:12.72 sys:0.25
#### FLOAT
Elapsed:0:04.63 user:3.79 sys:0.13
#### SHORT
Elapsed:0:05.77 user:4.56 sys:0.07
2003-10-11 22:39:40 +00:00
Mark Borgerding
043da3b65d avoid last recursive call
'make test' output:
### testing SNR for  1024 point FFTs
#### DOUBLE
snr_t2f = 295.35
snr_f2t = 308.32
#### FLOAT
snr_t2f = 146.71
snr_f2t = 143.02
#### SHORT
snr_t2f = 54.718
snr_f2t = 24.494

#### timing 10000 x 1024 point FFTs
#### DOUBLE
Elapsed:0:23.05 user:18.95 sys:0.24
#### FLOAT
Elapsed:0:06.45 user:5.17 sys:0.10
#### SHORT
Elapsed:0:05.59 user:4.72 sys:0.06
2003-10-11 14:43:13 +00:00
Mark Borgerding
7ec9402d5b Fixed point works (in the loosest sense of the word "works")
Fixed point sums are divided by 2 each stage.  This will never overflow for radix 2 ffts.
For mixed radix, it may overflow, but will usually give better SNR.

'make test' output:

### testing SNR for  1024 point FFTs
#### DOUBLE
snr_t2f = 295.30
snr_f2t = 308.25
#### FLOAT
snr_t2f = 146.92
snr_f2t = 143.25
#### SHORT
snr_t2f = 54.645
snr_f2t = 24.677

#### timing 10000 x 1024 point FFTs
#### DOUBLE
Elapsed:0:25.96 user:19.77 sys:0.22
#### FLOAT
Elapsed:0:06.62 user:5.48 sys:0.11
#### SHORT
Elapsed:0:06.01 user:4.75 sys:0.12
2003-10-11 14:34:01 +00:00
Mark Borgerding
61571342a5 uses lookup table for twiddle factors
'make test' output: (Elapsed time is inflated, realplayer was running at time)

### testing SNR for  1024 point FFTs
#### DOUBLE
snr_t2f = 295.41
snr_f2t = 307.88
#### FLOAT
snr_t2f = 144.63
snr_f2t = 143.48
#### SHORT
snr_t2f = -30.111
snr_f2t = -61.637

#### timing 10000 x 1024 point FFTs
#### DOUBLE
Elapsed:0:25.19 user:20.22 sys:0.30
#### FLOAT
Elapsed:0:07.16 user:6.00 sys:0.09
#### SHORT
Elapsed:0:05.89 user:4.66 sys:0.11
2003-10-11 13:38:37 +00:00
Mark Borgerding
30c4ee30f5 Dog slow, but does mixed radix!
'make test' output :

### testing SNR for  1024 point FFTs
#### DOUBLE
snr_t2f = 295.52
snr_f2t = 307.98
#### FLOAT
snr_t2f = 144.62
snr_f2t = 143.23
#### SHORT
snr_t2f = -31.515
snr_f2t = -60.836

#### timing 10000 x 1024 point FFTs
#### DOUBLE
Elapsed:0:44.17 user:35.11 sys:0.27
#### FLOAT
Elapsed:0:24.22 user:19.66 sys:0.16
#### SHORT
Elapsed:0:30.39 user:25.07 sys:0.09
2003-10-11 02:21:48 +00:00
Mark Borgerding
08be1d86b4 works on Fout in-place 2003-10-10 21:30:18 +00:00
Mark Borgerding
edf93e8540 closer 2003-10-10 21:24:46 +00:00
Mark Borgerding
93de2a9410 about to try to split up k into two loops 2003-10-10 21:03:50 +00:00
Mark Borgerding
66b0646c9c *** empty log message *** 2003-10-10 02:04:59 +00:00
Mark Borgerding
18e5e8e360 failed attempt -- DOES NOT WORK! 2003-10-10 02:04:42 +00:00
Mark Borgerding
a2cca1b70e working towards mixed radix 2003-10-10 00:47:17 +00:00
Mark Borgerding
1330c4b3d4 python code for prototyping 2003-10-09 20:28:41 +00:00
Mark Borgerding
502211bc6a broken
working towards mixed radix
decomposition seems to work (for 2)
indices scrambled
2003-08-16 23:40:14 +00:00
Mark Borgerding
c9ff98b2c9 pick the peak frequency from a stereo input 2003-08-14 00:48:51 +00:00
Mark Borgerding
570f23d821 *** empty log message *** 2003-08-14 00:40:01 +00:00
Mark Borgerding
4add8dbbb6 simplified testing 2003-08-13 01:54:58 +00:00
Mark Borgerding
1cd00ce9f5 simplified testing (hopefully) 2003-08-13 01:54:21 +00:00
Mark Borgerding
f906b47946 *** empty log message *** 2003-08-12 23:37:09 +00:00
Mark Borgerding
b095bec02d NFFT is configurable 2003-08-12 23:28:01 +00:00
Mark Borgerding
a962dc2681 took utility/test code out of main source file and moved down to sample_code 2003-08-10 15:39:15 +00:00
Mark Borgerding
b95e3ea18a slight restructuring, clean up 2003-08-09 14:22:30 +00:00
Mark Borgerding
db556661ed *** empty log message *** 2003-08-09 13:12:56 +00:00
Mark Borgerding
ccbc48dc63 additional features for peak picking 2003-08-09 01:03:04 +00:00
Mark Borgerding
fa03256dc2 Initial revision 2003-08-09 00:59:17 +00:00
Mark Borgerding
4a113bc191 Initial revision 2003-08-09 00:59:17 +00:00