Ora la HaarFilterBank funziona.
Leonardo Robol [2010-03-03 08:40]
Ora la HaarFilterBank funziona.
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)