From 5e25edb1b78f28bee09bd7513a80fb500bbd59c4 Mon Sep 17 00:00:00 2001 From: John Glover Date: Wed, 24 Nov 2010 23:26:43 +0000 Subject: Updated libsms to the latest version (1.15), includes some memory management improvements/simplifications but the basic API is the same. Also started updating the unit tests, which will now use the nose framework --- sms/residual.c | 126 ++++++++++++++------------------------------------------- 1 file changed, 31 insertions(+), 95 deletions(-) (limited to 'sms/residual.c') diff --git a/sms/residual.c b/sms/residual.c index a9237dc..b69a28f 100644 --- a/sms/residual.c +++ b/sms/residual.c @@ -32,109 +32,45 @@ * \param pResidual pointer to output residual waveform * \param pWindow pointer to windowing array * \return residual percentage (0 if residual was not large enough) - \todo why is residual energy percentage computed this way? should be optional and in a seperate function + \todo why is residual energy percentage computed this way? should be optional and in a seperate function */ -int sms_residual (int sizeWindow, sfloat *pSynthesis, sfloat *pOriginal, sfloat *pResidual) +int sms_residual(int sizeWindow, sfloat *pSynthesis, sfloat *pOriginal, sfloat *pResidual, sfloat *pWindow) { - static sfloat fResidualMag = 0.; + static sfloat fResidualMag = 0.; static sfloat fOriginalMag = 0.; - sfloat fScale = 1.; - sfloat fCurrentResidualMag = 0.; - sfloat fCurrentOriginalMag = 0.; - int i; - - /* get residual */ - for (i=0; i fOriginalMag) - { - fScale = fOriginalMag / fResidualMag; - for (i=0; i fOriginalMag) + { + fScale = fOriginalMag / fResidualMag; + for (i=0; i .01) - if (fCurrentResidualMag) //always compute - { -/* printf(" fCurrentResidualMag: %f, sizeWindow: %d, ratio: %f\n", */ -/* fCurrentResidualMag, sizeWindow, fCurrentResidualMag/sizeWindow ); */ - - /* get energy of original */ - for (i=0; i fOriginalMag) - { - fScale = fOriginalMag / fResidualMag; - for (i=0; i