@@ -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 | 52 | [ 0, -0.01122679215254] No newline at end of file |
|
54 | 53 | ]); No newline at end of file |
|
55 | 54 | |
|
No newline at end of file | ||
|
56 | #print a2.shape No newline at end of file | |
|
57 | 55 | No newline at end of file |
|
58 | 56 | af = np.array([ [a1,a2] ], dtype=object) No newline at end of file |
|
59 | 57 | No newline at end of file |
@@ -310,11 +310,14 | |||
|
310 | 310 | chi2 = np.sum((es/sigma)**2); No newline at end of file |
|
311 | 311 | No newline at end of file |
|
312 | 312 | |
|
313 | No newline at end of file | |
|
313 | # CS inversion using irls ######################## No newline at end of file | |
|
314 | 314 | No newline at end of file |
|
315 | 315 | # (Use Nr, thetar, gnz, and Hr from MaxEnt above) No newline at end of file |
|
316 | 316 | |
|
317 | No newline at end of file | |
|
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 | 321 | No newline at end of file |
|
319 | 322 | # REMOVE THIS?-------------------------------- No newline at end of file |
|
320 | 323 | #wavelet1 = pywt.Wavelet('db4') No newline at end of file |
@@ -5,7 +5,7 | |||
|
5 | 5 | ''' No newline at end of file |
|
6 | 6 | No newline at end of file |
|
7 | 7 | #from sp import multirate |
|
8 | No newline at end of file | |
|
8 | import cshift No newline at end of file | |
|
9 | 9 | from multirate import upfirdn No newline at end of file |
|
10 | 10 | No newline at end of file |
|
11 | 11 | def afb(x, af): No newline at end of file |
@@ -14,7 +14,7 | |||
|
14 | 14 | # y = cshift(x, m) No newline at end of file |
|
15 | 15 | # INPUT: No newline at end of file |
|
16 | 16 | # x - N-point vector |
|
17 | No newline at end of file | |
|
17 | # m - amount of shift No newline at end of file | |
|
18 | 18 | # OUTPUT: No newline at end of file |
|
19 | 19 | # y - vector x will be shifted by m samples to the left No newline at end of file |
|
20 | 20 | # No newline at end of file |
@@ -5,8 +5,10 | |||
|
5 | 5 | ''' No newline at end of file |
|
6 | 6 | No newline at end of file |
|
7 | 7 | import numpy as np |
|
8 | No newline at end of file | |
|
8 | import FSfarras | |
|
No newline at end of file | ||
|
9 | No newline at end of file | |
|
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 | 12 | No newline at end of file |
|
11 | 13 | def deb4_basis(N): No newline at end of file |
|
12 | 14 | No newline at end of file |
General Comments 0
You need to be logged in to leave comments.
Login now