Example #1
0
 def test_cov(self):
     NSAMP = 1024
     factor = NSAMP/float(NSAMP-1)
     fq = np.exp(1j*np.linspace(0,2*np.pi,128)); fq.shape = (-1,1)
     ts = np.exp(1j*np.linspace(0,2*np.pi,NSAMP+1)[:-1]); ts.shape = (1,-1)
     x = fq * ts
     w = np.ones_like(x)
     C = oqe.cov(x,w)
     np.testing.assert_allclose(np.diag(C), factor)
     np.testing.assert_allclose(C[0].conj(), factor*fq.flatten())
     x = np.concatenate([x,x], axis=1)
     w = np.concatenate([w,np.zeros_like(w)], axis=1)
     C = oqe.cov(x,w)
     np.testing.assert_allclose(np.diag(C), factor)
     np.testing.assert_allclose(C[0].conj(), factor*fq.flatten())
Example #2
0
 def test_cov(self):
     NSAMP = 1024
     factor = NSAMP / float(NSAMP - 1)
     fq = np.exp(1j * np.linspace(0, 2 * np.pi, 128))
     fq.shape = (-1, 1)
     ts = np.exp(1j * np.linspace(0, 2 * np.pi, NSAMP + 1)[:-1])
     ts.shape = (1, -1)
     x = fq * ts
     w = np.ones_like(x)
     C = oqe.cov(x, w)
     np.testing.assert_allclose(np.diag(C), factor)
     np.testing.assert_allclose(C[0].conj(), factor * fq.flatten())
     x = np.concatenate([x, x], axis=1)
     w = np.concatenate([w, np.zeros_like(w)], axis=1)
     C = oqe.cov(x, w)
     np.testing.assert_allclose(np.diag(C), factor)
     np.testing.assert_allclose(C[0].conj(), factor * fq.flatten())
Example #3
0
 def set_data(self, dsets, wgts=None, conj=None):
     if type(dsets.values()[0]) == dict:
         dsets,wgts = self.flatten_data(dsets), self.flatten_data(wgts)
     self.x, self.w = {}, {}
     avgx = []
     avgC = []
     for k in dsets:
         self.x[k] = dsets[k].T
         try: self.w[k] = wgts[k].T
         except(TypeError): self.w[k] = n.ones_like(self.x[k])
         try:
             if conj[k[1]]: self.x[k] = n.conj(self.x[k])
         except(TypeError,KeyError): pass
         try: 
             avgx.append(self.x[k])
             avgC.append(oqe.cov(self.x[k], self.w[k]))
         except(TypeError,KeyError): pass
     self.avgx = n.average(avgx, axis=0)
     self.avgC = n.average(avgC, axis=0)
Example #4
0
 def set_data(self, dsets, wgts=None, conj=None):
     """Set data inside of object, also computes average over bls."""
     if type(dsets.values()[0]) == dict:
         dsets, wgts = self.flatten_data(dsets), self.flatten_data(wgts)
         self.x, self.w = {}, {}
     avgx = []
     avgC = []
     for k in dsets:
         self.x[k] = dsets[k].T
         try: self.w[k] = wgts[k].T
         except(TypeError): self.w[k] = np.ones_like(self.x[k])
         print k[1]
         try:
             if conj[k[1]]: self.x[k] = np.conj(self.x[k])
         except(TypeError, KeyError): pass
         try:
             avgx.append(self.x[k])
             avgC.append(oqe.cov(self.x[k], self.w[k]))
         except(TypeError, KeyError): pass
     self.avgx = np.average(avgx, axis=0)
     self.avgC = np.average(avgC, axis=0)
Example #5
0
for mode in xrange(NCHAN):
    Q[mode] = oqe.get_Q(mode, NCHAN)

#capo.plot.waterfall(Q[53], mode='real'); plt.show()

fg_ch = np.sin(np.linspace(0,2*np.pi,NCHAN)); fg_ch.shape = (-1,1)
fg_t = np.sin(np.linspace(0,2*np.pi, 1000)); fg_t.shape = (1,-1)
fg = fg_ch * fg_t

bp = aipy.dsp.gen_window(NCHAN, 'hamming'); bp.shape = (-1,1)

x = np.random.normal(size=(NCHAN,1000)) + fg
x *= bp
wgt = np.ones_like(x)

C = oqe.cov(x, wgt)
#U,S,V = np.linalg.svd(C)
#import IPython; IPython.embed()
_C = np.linalg.inv(C)
_Cx = np.dot(_C, x)
qC = np.abs(np.fft.ifft(_Cx, axis=0)); qC = np.average(qC, axis=1)
qI = np.abs(np.fft.ifft(x, axis=0)); qI = np.average(qI, axis=1)
print _Cx.shape
#q = {}
#for mode in xrange(NCHAN):
#    print mode
#    q[mode] = _Cx.conj() * np.dot(Q[mode], _Cx)
#    print q[mode].shape

#q = np.array([q[mode] for mode in xrange(NCHAN)])
#plt.subplot(211); capo.plot.waterfall(np.fft.fftshift(qI, axes=[0]), drng=3)