From 36d5f0610b2201846e583d116e8e02601eb4c081 Mon Sep 17 00:00:00 2001 From: Leonardo Robol Date: Sat, 13 Mar 2010 11:11:58 +0100 Subject: [PATCH] Usiamo il TeX per scrivere le etichette dei grafici. --- Filtering/Filtering.py | 15 +++++---------- Filtering/dwt | 25 ++++++++++++++++++++++--- 2 files changed, 27 insertions(+), 13 deletions(-) diff --git a/Filtering/Filtering.py b/Filtering/Filtering.py index 2247897..8a78335 100644 --- a/Filtering/Filtering.py +++ b/Filtering/Filtering.py @@ -245,14 +245,10 @@ class FilterBank(): def Split(self, samples): """ Split the samples using the filter provided - by the user. It returns an array of samples similar - to this: - - [ high, high, high , ... , high, low ] - - that contains the details and the last average. + by the user. It returns a WaveletStack that + contains the details and the last average. The original signal can be rebuilt collapsing - all these downsamples signals with the Rebuild + all these downsampled signals with the Rebuild method. """ @@ -300,15 +296,14 @@ class FilterBank(): # Sfortunatamente questo ci rovinerà tutta l'ultima parte del # segnale, ma per ora non vedo una soluzione comoda. low = roll(low, -1 * self.length) - + + # Riparo gli eventuali end effect low[:-2*self.depth*len(self.lowPassFilter.GetResponse())] = samplesStack.PopEndEffectSamples () # Riattacchiamo la coda return concatenate ((low, end)) - - DaubechiesFilterBank = FilterBank () DaubechiesFilterBank.SetFilterMatrix ( [ 0.125 * array([ 1 + sqrt(3), 3 + sqrt(3), 3 - sqrt(3), 1 - sqrt(3)]), diff --git a/Filtering/dwt b/Filtering/dwt index b6d0fd8..c515b08 100755 --- a/Filtering/dwt +++ b/Filtering/dwt @@ -60,10 +60,17 @@ LoadingLibrariesStarted() # Importing libraries import Filtering -from pylab import show, plot +from pylab import show, plot, title, xlabel, ylabel, rcParams from numpy import array, sqrt, memmap, roll from numpy.linalg import norm import time + +params = { + "text.usetex": True, + 'font.family': 'serif', +} + +rcParams.update(params) @@ -74,19 +81,27 @@ class DWT(): def __init__(self, filename, action = 'show', filewrite = 'rebuilt.wav', filterbank = 'haar', depth = 4): - + StartProgram () startingTime = time.time () self.depth = depth + + self.filterBankName = "" # Scelgo la filterbank da utilizzare if filterbank == 'haar': filterBank = Filtering.HaarFilterBank + self.filterBankName = "Haar" elif (filterbank == 'daubechies') or (filterbank.lower() == 'd4'): filterBank = Filtering.DaubechiesFilterBank + self.filterBankName = "Daubechies D4" elif filterbank == 'strang': filterBank = Filtering.StrangFilterBank + self.filterBankName = "Strang" + elif filterbank == 'leo': + filterBank = Filtering.LeoFilterBank + self.filterBankName = "Leo" else: filterBank = Filtering.HaarFilterBank Output ("FilterBank %s not known. Setting 'haar'" % filterbank) @@ -166,7 +181,6 @@ class DWT(): toPlot = int(frequency) * 60 # Stampo i low - print scale scale = int(0.5 * scale) low = wavelets.PopLowSamples() data = low[:toPlot / scale] @@ -187,6 +201,11 @@ class DWT(): plot (axes, data + offset) offset += singleOffset scale = int(0.5*scale) + + + # Set some nice text + title (r"Decomposition using %s filter bank" % self.filterBankName) + xlabel (r"time (s)") show () -- 2.1.4