From e6586d21fad18d4cd4b72c8ff0f870db8ccbcbe6 Mon Sep 17 00:00:00 2001 From: Jean-Marc Valin Date: Fri, 8 Feb 2008 10:48:15 +1100 Subject: Real FFT cleanup, plus some testcases --- tests/real-fft-test.c | 176 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 176 insertions(+) create mode 100644 tests/real-fft-test.c (limited to 'tests/real-fft-test.c') diff --git a/tests/real-fft-test.c b/tests/real-fft-test.c new file mode 100644 index 0000000..532ed8d --- /dev/null +++ b/tests/real-fft-test.c @@ -0,0 +1,176 @@ +#include "kiss_fftr.h" +#include "_kiss_fft_guts.h" +#include +#include +#include +#include +#include + +static double cputime(void) +{ + struct tms t; + times(&t); + return (double)(t.tms_utime + t.tms_stime)/ sysconf(_SC_CLK_TCK) ; +} + +static +kiss_fft_scalar rand_scalar(void) +{ +#ifdef USE_SIMD + return _mm_set1_ps(rand()-RAND_MAX/2); +#else + kiss_fft_scalar s = (kiss_fft_scalar)(rand() -RAND_MAX/2); + return s/2; +#endif +} + +static +double snr_compare( kiss_fft_cpx * vec1,kiss_fft_scalar * vec2, int n) +{ + int k; + double sigpow=1e-10, noisepow=1e-10, err,snr; + + for (k=1;k