Ora la Daubechies funzionano. Chissà perchè.
Leonardo Robol [2010-03-03 10:45]
Ora la Daubechies funzionano. Chissà perchè.
diff --git a/Filtering/Filtering.py b/Filtering/Filtering.py
index 8faefac..d4df360 100644
--- a/Filtering/Filtering.py
+++ b/Filtering/Filtering.py
@@ -110,7 +110,8 @@ class FilterBank():
# Sembra che la lunghezza del filtro debba essere
# la metà del filtro lowpass, arrotondata per eccesso
- self.SetLength ( (len(lowpass) + 1)/2 )
+ self.SetLength ( int((len(lowpass) + 1)/2) )
+ print "Setting length to %d" % self.length
def SetHighPassFilter(self, highpass):
"""
@@ -186,7 +187,7 @@ class FilterBank():
# ricostruiti non disturbi la ricostruzione dei prossimi.
# Sfortunatamente questo ci rovinerà tutta l'ultima parte del
# segnale, ma per ora non vedo una soluzione comoda.
- low = roll(low, -1 * self.length)
+ low = roll(low, -1)
return low
@@ -197,7 +198,7 @@ DaubechiesFilterBank = FilterBank ()
DaubechiesFilterBank.SetFilterMatrix ( [
0.125 * array([ 1 + sqrt(3), 3 + sqrt(3), 3 - sqrt(3), 1 - sqrt(3)]),
0.125 * array([ 1 - sqrt(3),-3 + sqrt(3), 3 + sqrt(3),-1 - sqrt(3)]),
- 0.25 * array([ 1 - sqrt(3), 3 - sqrt(3), 3 - sqrt(3), 1 - sqrt(3)]),
+ 0.25 * array([ 1 - sqrt(3), 3 - sqrt(3), 3 + sqrt(3), 1 + sqrt(3)]),
0.25 * array([-1 - sqrt(3), 3 + sqrt(3),-3 + sqrt(3), 1 - sqrt(3)])
])
DaubechiesFilterBank.SetLength (3)
diff --git a/Filtering/Splitting.py b/Filtering/Splitting.py
index 1ea6063..7bedaa2 100755
--- a/Filtering/Splitting.py
+++ b/Filtering/Splitting.py
@@ -25,7 +25,9 @@ class SplittingExample():
# f0 = array([1, 1])
# f1 = array([1, -1])
- filterBank = Filtering.HaarFilterBank
+ # filterBank = Filtering.HaarFilterBank
+ filterBank = Filtering.DaubechiesFilterBank
+ # filterBank = Filtering.StrangFilterBank
filterBank.SetDepth(8)
samples = self.LoadSamples ("sunny.pcm")