From 9f10c637bfa08ebd70bf72bef6830694131a36d2 Mon Sep 17 00:00:00 2001 From: Leonardo Robol Date: Wed, 3 Mar 2010 10:29:49 +0100 Subject: [PATCH] Cambiato il metodo Show() di SplittingExample in modo che mostri tutte le componenti delle wavelet. --- Filtering/Filtering.py | 2 +- Filtering/Splitting.py | 42 ++++++++++++++++++++++++++++-------------- 2 files changed, 29 insertions(+), 15 deletions(-) mode change 100644 => 100755 Filtering/Splitting.py diff --git a/Filtering/Filtering.py b/Filtering/Filtering.py index 33d9c00..8faefac 100644 --- a/Filtering/Filtering.py +++ b/Filtering/Filtering.py @@ -60,7 +60,7 @@ class FilterBank(): self.highPassInverseFilter = None self.lowPassInverseFilter = None - self.depth = 1 + self.depth = 2 def SetFilterMatrix(self, filter_matrix): """ diff --git a/Filtering/Splitting.py b/Filtering/Splitting.py old mode 100644 new mode 100755 index 3aef69b..1ea6063 --- a/Filtering/Splitting.py +++ b/Filtering/Splitting.py @@ -1,9 +1,15 @@ -# +#!/usr/bin/env python # -*- coding: utf-8 -*- # -import Filtering, pylab +import Filtering, pylab, sys from numpy import array, sqrt, memmap, roll +from numpy.linalg import norm + +def Output (string): + """Output with colors :)""" + print " \033[1m=>\033[0m\033[32;1m %s \033[0m" % string + class SplittingExample(): @@ -19,19 +25,22 @@ class SplittingExample(): # f0 = array([1, 1]) # f1 = array([1, -1]) - filterBank = Filtering.FilterBank () - filterBank.SetFilterMatrix ([h0,h1,f0,f1]) - filterBank.SetDepth (3) - - # filterBank = Filtering.StrangFilterBank - # filterBank.SetDepth(2) - filterBank = Filtering.HaarFilterBank filterBank.SetDepth(8) samples = self.LoadSamples ("sunny.pcm") wavelets = filterBank.Split (samples) + + # Scrivo le wavelet su file per potermele + # ascoltare. + + if len(sys.argv) > 1 and sys.argv[1] == "show": + self.Show (wavelets) + + + rebuilt = filterBank.Rebuild (wavelets) + Output ("||rebuilt - samples|| = %f" % norm(rebuilt - samples[0:len(rebuilt)])) self.WriteSamples(rebuilt, "rebuilt.pcm") @@ -39,13 +48,14 @@ class SplittingExample(): """ Load the samples from an audio file """ - print " => Loading samples from %s" % filename + Output("Loading samples from %s" % filename) samples = memmap (filename, dtype="