fixed error measuremenet function

This commit is contained in:
Mark Borgerding 2004-04-03 00:26:30 +00:00
parent dd689e1661
commit 2de422432e

View File

@ -70,15 +70,14 @@ double snr_compare( kiss_fft_cpx * test_vec_out,kiss_fft_cpx * testbuf, int n)
{
int k;
double sigpow,noisepow,err,snr,scale=0;
kiss_fft_cpx err;
sigpow = noisepow = .000000000000000000000000000001;
for (k=0;k<n;++k) {
sigpow += test_vec_out[k].r * test_vec_out[k].i +
sigpow += test_vec_out[k].r * test_vec_out[k].r +
test_vec_out[k].i * test_vec_out[k].i;
err = test_vec_out[k].r - testbuf[k].r;
noisepow += err * err;
err = test_vec_out[k].i - testbuf[k].i;
noisepow += err * err;
C_SUB(err,test_vec_out[k],testbuf[k].r);
noisepow += err.r * err.r + err.i + err.i;
if (test_vec_out[k].r)
scale += testbuf[k].r / test_vec_out[k].r;