From a2441e86d68bd3cefb4cac8f6a3b23bad5564bc5 Mon Sep 17 00:00:00 2001 From: Leonardo Robol Date: Wed, 3 Mar 2010 17:06:26 +0100 Subject: [PATCH] Aggiunte opzioni. --- Filtering/Splitting.py | 73 ------------------------------ Filtering/dwt | 118 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 118 insertions(+), 73 deletions(-) delete mode 100755 Filtering/Splitting.py create mode 100755 Filtering/dwt diff --git a/Filtering/Splitting.py b/Filtering/Splitting.py deleted file mode 100755 index 80168a8..0000000 --- a/Filtering/Splitting.py +++ /dev/null @@ -1,73 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# - -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(): - - def __init__(self): - - # Scelgo la filterbank da utilizzare - # filterBank = Filtering.HaarFilterBank - # filterBank = Filtering.DaubechiesFilterBank - filterBank = Filtering.StrangFilterBank - filterBank.SetDepth(8) - - samples = self.LoadSamples ("sunny.pcm") - wavelets = filterBank.Split (samples) - - # Mostro la decomposizione se l'utente l'ha chiesto - if len(sys.argv) > 1 and sys.argv[1] == "show": - self.Show (wavelets) - - - 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"): - """ - Load the samples from an audio file - """ - Output("Loading samples from %s" % filename) - samples = memmap (filename, - dtype="\033[0m\033[32;1m %s \033[0m" % string + + +class DWT(): + + def __init__(self, filename, action = 'show', filewrite = 'rebuilt.pcm', + filterbank = 'haar', depth = 4): + + # Scelgo la filterbank da utilizzare + if filterbank == 'haar': + filterBank = Filtering.HaarFilterBank + elif (filterbank == 'daubechies') or (filterbank.lower() == 'd4'): + filterBank = Filtering.DaubechiesFilterBank + elif filterbank == 'strang': + filterBank = Filtering.StrangFilterBank + else: + filterBank = Filtering.HaarFilterBank + Output ("FilterBank %s not known. Setting 'haar'" % filterbank) + + filterBank.SetDepth (int(depth)) + + samples = self.LoadSamples (filename) + wavelets = filterBank.Split (samples) + + # Mostro la decomposizione se l'utente l'ha chiesto + if action == 'show': + self.Show (wavelets) + + + if action is 'rebuild': + rebuilt = filterBank.Rebuild (wavelets) + Output ("||rebuilt - samples|| = %f" % norm(rebuilt - samples[0:len(rebuilt)])) + self.WriteSamples(rebuilt, filewrite) + + + def LoadSamples(self, filename = "sunny.pcm"): + """ + Load the samples from an audio file + """ + Output("Loading samples from %s" % filename) + samples = memmap (filename, + dtype="