aboutsummaryrefslogtreecommitdiffstats
path: root/python
diff options
context:
space:
mode:
authorpiotr <Piotr Krysik pkrysik@elka.pw.edu.pl>2014-07-20 23:52:57 +0200
committerpiotr <Piotr Krysik pkrysik@elka.pw.edu.pl>2014-07-20 23:52:57 +0200
commitd8506d68dbc26f18d790e094c0f3169efd51857e (patch)
tree21d8e2f3e5325fd2a288295895a50c32cdaabba4 /python
parent2922178ec139a7e42da1dc64c5544f413ec3034b (diff)
Changes to sch detector - it is not fully working yet
Diffstat (limited to 'python')
-rw-r--r--python/sch_detector.py48
1 files changed, 36 insertions, 12 deletions
diff --git a/python/sch_detector.py b/python/sch_detector.py
index d80d032..ca3c423 100644
--- a/python/sch_detector.py
+++ b/python/sch_detector.py
@@ -1,7 +1,7 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
-# Copyright 2014 <+YOU OR YOUR COMPANY+>.
+# Copyright 2014 Piotr Krysik pkrysik@elka.pw.edu.pl
#
# This is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -54,23 +54,36 @@ class sch_receiver():
correlation_bl[:,ii]=correlate(sch_burst_bl[:,ii],self.sync_seq_msk,'same')
correlation_bl = correlation_bl/len(self.sync_seq_msk)
- power_bl_mov_avg = uniform_filter1d(abs(correlation_bl)**2,5,mode='constant',axis=0)
+ power_bl_mov_avg = uniform_filter1d(abs(correlation_bl)**2,self.L+1,mode='constant',axis=0)
- print "correlation_bl.argmax()",argmax(abs(hstack(correlation_bl)))
- print "power_bl_mov_avg.argmax()",hstack(power_bl_mov_avg).argmax()
- print 'unravel_index(correlation_bl.argmax(), correlation_bl.shape)',unravel_index(correlation_bl.argmax(), correlation_bl.shape)
+ print "correlation_bl.argmax()",argmax(abs(correlation_bl))
+ print "power_bl_mov_avg.argmax()",(power_bl_mov_avg).argmax()
+ print 'unravel_index(correlation_bl.argmax(), correlation_bl.shape)',unravel_index(argmax(abs(correlation_bl)), correlation_bl.shape)
print 'unravel_index(power_bl_mov_avg.argmax(), power_bl_mov_avg.shape)',unravel_index(power_bl_mov_avg.argmax(), power_bl_mov_avg.shape)
+ (r_corrmax, c_corrmax)=unravel_index(argmax(abs(correlation_bl)), correlation_bl.shape)
+ (r_powmax, c_powmax)=unravel_index(power_bl_mov_avg.argmax(), power_bl_mov_avg.shape)
+
# correlation = zeros(shape(sch_burst))
# correlation = correlate(sch_burst, self.sync_seq_msk_interp,'same')/len(self.sync_seq_msk)
# print "pozycja maksimum",argmax(abs(correlation))
- plot(abs(hstack(correlation_bl))*1000)
+# plot(abs(hstack(correlation_bl))*1000)
+## hold(True)
+## plot(abs(sch_burst)*500)
+## print shape(range(0,len(sch_burst),self.OSR))
+## print shape(correlation_bl[:,0])
+# for ii in range(0,self.OSR):
+# if ii == c_powmax:
+# plot(range(ii,len(correlation_bl[:,0])*self.OSR,self.OSR),power_bl_mov_avg[:,ii]*5e6,'g.')
+# else:
+# plot(range(ii,len(correlation_bl[:,0])*self.OSR,self.OSR),power_bl_mov_avg[:,ii]*5e6,'r.')
+# show()
+# figure()
+ print 'r_powmax: ',r_powmax
+# plot(abs(correlation_bl[range(r_powmax-(self.L+1)/2+1,r_powmax+(self.L+1)/2+1), c_powmax]),'g')
# hold(True)
-# plot(abs(sch_burst)*500)
-# print shape(range(0,len(sch_burst),self.OSR))
-# print shape(correlation_bl[:,0])
- for ii in range(0,self.OSR):
- plot(range(ii,len(correlation_bl[:,0])*self.OSR,self.OSR),power_bl_mov_avg[:,ii]*5e6,'r.')
- show()
+# plot(abs(correlation_bl[range(r_corrmax-(self.L+1)/2+1,r_corrmax+(self.L+1)/2+1), c_corrmax]),'r')
+# show()
+
def receive(self, input_corr, chan_imp_resp):
pass
@@ -129,4 +142,15 @@ class sch_detector(gr.sync_block):
out[:] = in0[self.history()-1:]
return to_consume
+
+ def get_OSR(self):
+ return self.OSR
+
+ def set_OSR(self, OSR):
+ self.OSR = OSR
+ self.burst_size = int(round(156.25*self.OSR))
+ self.guard_period = int(round(8.25*self.OSR))
+ self.block_size = self.burst_size + self.guard_period
+ self.set_history(self.block_size)
+ self.sch_receiver = sch_receiver(OSR)