Ora la HaarFilterBank funziona.

Leonardo Robol [2010-03-03 08:40]
Ora la HaarFilterBank funziona.
Filename
Filtering/Filtering.py
Filtering/Splitting.py
diff --git a/Filtering/Filtering.py b/Filtering/Filtering.py
index 705de28..33d9c00 100644
--- a/Filtering/Filtering.py
+++ b/Filtering/Filtering.py
@@ -181,6 +181,11 @@ class FilterBank():
         for high in sampleArray[::-1]:
             low = self.lowPassInverseFilter (UpSample (low))
             low += self.highPassInverseFilter (UpSample (high))
+
+            # Facciamo shiftare l'array in modo che il delay dei sample
+            # 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)

         return low
@@ -200,9 +205,9 @@ DaubechiesFilterBank.SetLength (3)
 HaarFilterBank = FilterBank ()
 HaarFilterBank.SetFilterMatrix ( [
         [0.5, 0.5],
-        [0.5 ,-0.5],
+        [-0.5 ,0.5],
         [1 , 1 ],
-        [-1 , 1]
+        [1 , -1]
         ])
 HaarFilterBank.SetLength(1)

diff --git a/Filtering/Splitting.py b/Filtering/Splitting.py
index e55f28d..3aef69b 100644
--- a/Filtering/Splitting.py
+++ b/Filtering/Splitting.py
@@ -25,6 +25,9 @@ class SplittingExample():

         # filterBank = Filtering.StrangFilterBank
         # filterBank.SetDepth(2)
+
+        filterBank = Filtering.HaarFilterBank
+        filterBank.SetDepth(8)

         samples = self.LoadSamples ("sunny.pcm")
         wavelets = filterBank.Split (samples)
ViewGit