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