From 3dc4f9767b5de135fa8694ce2c5abbac82192bf5 Mon Sep 17 00:00:00 2001 From: Leonardo Robol Date: Wed, 3 Mar 2010 16:35:32 +0100 Subject: [PATCH] Risolto un problema con la convoluzione che impediva a molti filtri di funzionare. --- Filtering/Filtering.py | 9 ++++++--- Filtering/Splitting.py | 12 ++++++------ 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/Filtering/Filtering.py b/Filtering/Filtering.py index b7ad706..d02827a 100644 --- a/Filtering/Filtering.py +++ b/Filtering/Filtering.py @@ -25,8 +25,11 @@ class FIR(AbstractFilter): def __call__(self, samples): """Apply the FIR to samples""" - return convolve (self.coefficients, - samples, 'same') + # Per tronchiamo brutalmente la convoluzione, anche se + # questo vuol dire perdere dei samples finali. d'altronde + # sembra essere l'unico modo per prevere i delay. + sz = len(samples) + return convolve (self.coefficients, samples)[0:sz] def GetResponse(self): @@ -188,7 +191,7 @@ class FilterBank(): # Sfortunatamente questo ci rovinerà tutta l'ultima parte del # segnale, ma per ora non vedo una soluzione comoda. print "Rolling! Yepeee!" - low = roll(low, -1) + low = roll(low, -1 * self.length) return low diff --git a/Filtering/Splitting.py b/Filtering/Splitting.py index d017313..80168a8 100755 --- a/Filtering/Splitting.py +++ b/Filtering/Splitting.py @@ -17,8 +17,8 @@ class SplittingExample(): # Scelgo la filterbank da utilizzare # filterBank = Filtering.HaarFilterBank - filterBank = Filtering.DaubechiesFilterBank - # filterBank = Filtering.StrangFilterBank + # filterBank = Filtering.DaubechiesFilterBank + filterBank = Filtering.StrangFilterBank filterBank.SetDepth(8) samples = self.LoadSamples ("sunny.pcm") @@ -29,10 +29,10 @@ class SplittingExample(): self.Show (wavelets) - - rebuilt = filterBank.Rebuild (wavelets) - Output ("||rebuilt - samples|| = %f" % norm(rebuilt - samples[0:len(rebuilt)])) - self.WriteSamples(rebuilt, "rebuilt.pcm") + if len(sys.argv) > 1 and sys.argv[1] == "rebuild": + rebuilt = filterBank.Rebuild (wavelets) + Output ("||rebuilt - samples|| = %f" % norm(rebuilt - samples[0:len(rebuilt)])) + self.WriteSamples(rebuilt, "rebuilt.pcm") def LoadSamples(self, filename = "sunny.pcm"): -- 2.1.4