@@ -0,0 +1,46 | |||||
|
1 | ''' | |||
|
No newline at end of file | ||||
|
2 | Created on Jun 5, 2014 | |||
|
No newline at end of file | ||||
|
3 | ||||
|
No newline at end of file | ||||
|
4 | @author: Yolian Amaro | |||
|
No newline at end of file | ||||
|
5 | ''' | |||
|
No newline at end of file | ||||
|
6 | ||||
|
No newline at end of file | ||||
|
7 | from sfb import * | |||
|
No newline at end of file | ||||
|
8 | ||||
|
No newline at end of file | ||||
|
9 | def idualtree(w, J, Fsf, sf): | |||
|
No newline at end of file | ||||
|
10 | ||||
|
No newline at end of file | ||||
|
11 | # Inverse Dual-tree Complex DWT | |||
|
No newline at end of file | ||||
|
12 | # | |||
|
No newline at end of file | ||||
|
13 | # USAGE: | |||
|
No newline at end of file | ||||
|
14 | # y = idualtree(w, J, Fsf, sf) | |||
|
No newline at end of file | ||||
|
15 | # INPUT: | |||
|
No newline at end of file | ||||
|
16 | # w - DWT coefficients | |||
|
No newline at end of file | ||||
|
17 | # J - number of stages | |||
|
No newline at end of file | ||||
|
18 | # Fsf - synthesis filters for the last stage | |||
|
No newline at end of file | ||||
|
19 | # sf - synthesis filters for preceeding stages | |||
|
No newline at end of file | ||||
|
20 | # OUTUT: | |||
|
No newline at end of file | ||||
|
21 | # y - output signal | |||
|
No newline at end of file | ||||
|
22 | # See dualtree | |||
|
No newline at end of file | ||||
|
23 | # | |||
|
No newline at end of file | ||||
|
24 | # WAVELET SOFTWARE AT POLYTECHNIC UNIVERSITY, BROOKLYN, NY | |||
|
No newline at end of file | ||||
|
25 | # http://taco.poly.edu/WaveletSoftware/ | |||
|
No newline at end of file | ||||
|
26 | ||||
|
No newline at end of file | ||||
|
27 | # Tree 1 | |||
|
No newline at end of file | ||||
|
28 | y1 = w[J][0]; | |||
|
No newline at end of file | ||||
|
29 | ||||
|
No newline at end of file | ||||
|
30 | for j in range (J-1, 0, -1): | |||
|
No newline at end of file | ||||
|
31 | y1 = sfb(y1, w[j][0], sf[0,0]); | |||
|
No newline at end of file | ||||
|
32 | ||||
|
No newline at end of file | ||||
|
33 | y1 = sfb(y1, w[0][0], Fsf[0,0]); | |||
|
No newline at end of file | ||||
|
34 | ||||
|
No newline at end of file | ||||
|
35 | # Tree 2 | |||
|
No newline at end of file | ||||
|
36 | y2 = w[J][1]; | |||
|
No newline at end of file | ||||
|
37 | ||||
|
No newline at end of file | ||||
|
38 | for j in range (J-1, 0, -1): | |||
|
No newline at end of file | ||||
|
39 | y2 = sfb(y2, w[j][2], sf[0,1]); | |||
|
No newline at end of file | ||||
|
40 | ||||
|
No newline at end of file | ||||
|
41 | y2 = sfb(y2, w[0][1], Fsf[0,1]); | |||
|
No newline at end of file | ||||
|
42 | ||||
|
No newline at end of file | ||||
|
43 | # normalization | |||
|
No newline at end of file | ||||
|
44 | y = (y1 + y2)/np.sqrt(2); | |||
|
No newline at end of file | ||||
|
45 | ||||
|
No newline at end of file | ||||
|
46 | return y No newline at end of file |
@@ -0,0 +1,68 | |||||
|
1 | ''' | |||
|
No newline at end of file | ||||
|
2 | Created on Jun 5, 2014 | |||
|
No newline at end of file | ||||
|
3 | ||||
|
No newline at end of file | ||||
|
4 | @author: Yolian Amaro | |||
|
No newline at end of file | ||||
|
5 | ''' | |||
|
No newline at end of file | ||||
|
6 | ||||
|
No newline at end of file | ||||
|
7 | from multirate import * | |||
|
No newline at end of file | ||||
|
8 | import numpy as np | |||
|
No newline at end of file | ||||
|
9 | from cshift import * | |||
|
No newline at end of file | ||||
|
10 | ||||
|
No newline at end of file | ||||
|
11 | def sfb(lo, hi, sf): | |||
|
No newline at end of file | ||||
|
12 | ||||
|
No newline at end of file | ||||
|
13 | # Synthesis filter bank | |||
|
No newline at end of file | ||||
|
14 | # | |||
|
No newline at end of file | ||||
|
15 | # USAGE: | |||
|
No newline at end of file | ||||
|
16 | # y = sfb(lo, hi, sf) | |||
|
No newline at end of file | ||||
|
17 | # INPUT: | |||
|
No newline at end of file | ||||
|
18 | # lo - low frqeuency input | |||
|
No newline at end of file | ||||
|
19 | # hi - high frequency input | |||
|
No newline at end of file | ||||
|
20 | # sf - synthesis filters | |||
|
No newline at end of file | ||||
|
21 | # sf(:, 1) - lowpass filter (even length) | |||
|
No newline at end of file | ||||
|
22 | # sf(:, 2) - highpass filter (even length) | |||
|
No newline at end of file | ||||
|
23 | # OUTPUT: | |||
|
No newline at end of file | ||||
|
24 | # y - output signal | |||
|
No newline at end of file | ||||
|
25 | # See also afb | |||
|
No newline at end of file | ||||
|
26 | # | |||
|
No newline at end of file | ||||
|
27 | # WAVELET SOFTWARE AT POLYTECHNIC UNIVERSITY, BROOKLYN, NY | |||
|
No newline at end of file | ||||
|
28 | # http://taco.poly.edu/WaveletSoftware/ | |||
|
No newline at end of file | ||||
|
29 | ||||
|
No newline at end of file | ||||
|
30 | N = 2*lo.size; | |||
|
No newline at end of file | ||||
|
31 | L = sf.size/2; | |||
|
No newline at end of file | ||||
|
32 | #print 'N', N | |||
|
No newline at end of file | ||||
|
33 | #print 'sf', sf | |||
|
No newline at end of file | ||||
|
34 | ||||
|
No newline at end of file | ||||
|
35 | ||||
|
No newline at end of file | ||||
|
36 | #print 'sf[:,0]', sf[:,0].shape | |||
|
No newline at end of file | ||||
|
37 | #print 'sf[:,1]', sf[:,1].shape | |||
|
No newline at end of file | ||||
|
38 | #print 'sbf hi', hi.shape | |||
|
No newline at end of file | ||||
|
39 | ||||
|
No newline at end of file | ||||
|
40 | ||||
|
No newline at end of file | ||||
|
41 | ||||
|
No newline at end of file | ||||
|
42 | # Need to change format for upfirdn funct: | |||
|
No newline at end of file | ||||
|
43 | lo = lo.T.conj() | |||
|
No newline at end of file | ||||
|
44 | lo = lo.reshape(lo.size) | |||
|
No newline at end of file | ||||
|
45 | ||||
|
No newline at end of file | ||||
|
46 | print 'sfb hi', hi | |||
|
No newline at end of file | ||||
|
47 | ||||
|
No newline at end of file | ||||
|
48 | # Need to change format for upfirdn funct: | |||
|
No newline at end of file | ||||
|
49 | hi = hi.T.conj() | |||
|
No newline at end of file | ||||
|
50 | hi = hi.reshape(hi.size) | |||
|
No newline at end of file | ||||
|
51 | ||||
|
No newline at end of file | ||||
|
52 | #hi = hi.reshape(1, hi.size) | |||
|
No newline at end of file | ||||
|
53 | ||||
|
No newline at end of file | ||||
|
54 | lo = upfirdn(lo, sf[:,0], 2, 1); | |||
|
No newline at end of file | ||||
|
55 | hi = upfirdn(hi, sf[:,1], 2, 1); | |||
|
No newline at end of file | ||||
|
56 | y = lo + hi; | |||
|
No newline at end of file | ||||
|
57 | y[0:L-1] = y[0:L-1] + y[N+ np.arange(0,L-1)]; #CHECK IF ARANGE IS CORRECT | |||
|
No newline at end of file | ||||
|
58 | y = y[0:N]; | |||
|
No newline at end of file | ||||
|
59 | ||||
|
No newline at end of file | ||||
|
60 | print 'y en sbf\n', y.shape | |||
|
No newline at end of file | ||||
|
61 | ||||
|
No newline at end of file | ||||
|
62 | y = y.reshape(1, y.size) | |||
|
No newline at end of file | ||||
|
63 | print 'y en sbf\n', y.shape | |||
|
No newline at end of file | ||||
|
64 | ||||
|
No newline at end of file | ||||
|
65 | y = cshift(y, 1-L/2); | |||
|
No newline at end of file | ||||
|
66 | ||||
|
No newline at end of file | ||||
|
67 | return y; | |||
|
No newline at end of file | ||||
|
68 | No newline at end of file |
@@ -53,7 +52,6 | |||||
53 | [ 0, -0.01122679215254] No newline at end of file |
|
52 | [ 0, -0.01122679215254] | |
54 | ]); No newline at end of file |
|
53 | ]); | |
55 |
|
54 | |||
No newline at end of file |
|
||||
56 | #print a2.shape No newline at end of file |
|
|||
57 | No newline at end of file |
|
55 | ||
58 | af = np.array([ [a1,a2] ], dtype=object) No newline at end of file |
|
56 | af = np.array([ [a1,a2] ], dtype=object) | |
59 | No newline at end of file |
|
57 |
@@ -310,11 +310,14 | |||||
310 | chi2 = np.sum((es/sigma)**2); No newline at end of file |
|
310 | chi2 = np.sum((es/sigma)**2); | |
311 | No newline at end of file |
|
311 | ||
312 |
|
312 | |||
No newline at end of file |
|
313 | # CS inversion using Iteratively Reweighted Least Squares (IRLS)------------- No newline at end of file | ||
313 | # CS inversion using irls ######################## No newline at end of file |
|
|||
314 | No newline at end of file |
|
314 | ||
315 | # (Use Nr, thetar, gnz, and Hr from MaxEnt above) No newline at end of file |
|
315 | # (Use Nr, thetar, gnz, and Hr from MaxEnt above) | |
316 |
|
316 | |||
No newline at end of file |
|
317 | Psi = deb4_basis(Nr); ###### REPLACED BY LINEs BELOW (?) | ||
317 | Psi = deb4_basis(Nr); ###### REPLACED BY LINE BELOW (?) No newline at end of file |
|
No newline at end of file | ||
|
318 | ||||
|
No newline at end of file | ||||
|
319 | print 'FINALLY!' | |||
|
No newline at end of file | ||||
|
320 | print Psi.shape No newline at end of file | |||
318 | No newline at end of file |
|
321 | ||
319 | # REMOVE THIS?-------------------------------- No newline at end of file |
|
322 | # REMOVE THIS?-------------------------------- | |
320 | #wavelet1 = pywt.Wavelet('db4') No newline at end of file |
|
323 | #wavelet1 = pywt.Wavelet('db4') |
@@ -5,7 +5,7 | |||||
5 | ''' No newline at end of file |
|
5 | ''' | |
6 | No newline at end of file |
|
6 | ||
7 | #from sp import multirate |
|
7 | #from sp import multirate | |
No newline at end of file |
|
8 | from cshift import * No newline at end of file | ||
8 | import cshift No newline at end of file |
|
|||
9 | from multirate import upfirdn No newline at end of file |
|
9 | from multirate import upfirdn | |
10 | No newline at end of file |
|
10 | ||
11 | def afb(x, af): No newline at end of file |
|
11 | def afb(x, af): |
@@ -14,7 +14,7 | |||||
14 | # y = cshift(x, m) No newline at end of file |
|
14 | # y = cshift(x, m) | |
15 | # INPUT: No newline at end of file |
|
15 | # INPUT: | |
16 | # x - N-point vector |
|
16 | # x - N-point vector | |
No newline at end of file |
|
17 | # m - amount of shift (pos=left, neg=right) No newline at end of file | ||
17 | # m - amount of shift No newline at end of file |
|
|||
18 | # OUTPUT: No newline at end of file |
|
18 | # OUTPUT: | |
19 | # y - vector x will be shifted by m samples to the left No newline at end of file |
|
19 | # y - vector x will be shifted by m samples to the left | |
20 | # No newline at end of file |
|
20 | # |
@@ -5,8 +5,10 | |||||
5 | ''' No newline at end of file |
|
5 | ''' | |
6 | No newline at end of file |
|
6 | ||
7 | import numpy as np |
|
7 | import numpy as np | |
No newline at end of file |
|
8 | from FSfarras import * | ||
8 | import FSfarras |
|
No newline at end of file | ||
No newline at end of file |
|
9 | from dualfilt1 import * | ||
9 | import dualfilt1 No newline at end of file |
|
No newline at end of file | ||
|
10 | from dualtree import * | |||
|
No newline at end of file | ||||
|
11 | from idualtree import * No newline at end of file | |||
10 | No newline at end of file |
|
12 | ||
11 | def deb4_basis(N): No newline at end of file |
|
13 | def deb4_basis(N): | |
12 | No newline at end of file |
|
14 |
@@ -5,7 +5,7 | |||||
5 | ''' No newline at end of file |
|
5 | ''' | |
6 | No newline at end of file |
|
6 | ||
7 | import numpy as np |
|
7 | import numpy as np | |
No newline at end of file |
|
8 | from afb import * No newline at end of file | ||
8 | import afb No newline at end of file |
|
|||
9 | No newline at end of file |
|
9 | ||
10 | def dualtree(x, J, Faf, af): No newline at end of file |
|
10 | def dualtree(x, J, Faf, af): | |
11 | No newline at end of file |
|
11 |
General Comments 0
You need to be logged in to leave comments.
Login now