ArgMaxΒΆ

[1]:
from matplotlib.pyplot import plot
import numpy as np
from gps_helper.prn import PRN
from sk_dsp_comm import sigsys as ss
from caf_verilog.sim_helper import sim_shift
from caf_verilog.xcorr import dot_xcorr
from caf_verilog.arg_max import ArgMax
[2]:
prn = PRN(10)
fs = 625e3
Ns = fs / 125e3
prn_seq = prn.prn_seq()
prn_seq,b = ss.nrz_bits2(np.array(prn_seq), Ns)
[3]:
center = 300
corr_length = 200
ref, rec = sim_shift(prn_seq, center, corr_length, shift=25)
rr = dot_xcorr(ref, rec)
[4]:
am = ArgMax(rr, i_bits=14)
am.gen_tb()
[5]:
rr[:10]
[5]:
[(-50+0j),
 (-48+0j),
 (-46+0j),
 (-44+0j),
 (-42+0j),
 (-40+0j),
 (-30+0j),
 (-20+0j),
 (-10+0j),
 0j]
[6]:
am.x_quant[60:70]
[6]:
array([1229.+0.j,  819.+0.j,  409.+0.j,    0.+0.j, -409.+0.j, -819.+0.j,
       -491.+0.j, -164.+0.j,  164.+0.j,  491.+0.j])
[7]:
xargsum = am.gen_quantized_argsum()
xabs = abs(np.array(rr))
xargsum
[7]:
array([4.1943040e+06, 3.8651560e+06, 3.5494560e+06, 3.2472040e+06,
       2.9584000e+06, 2.6830440e+06, 1.5104410e+06, 6.7076100e+05,
       1.6728100e+05, 0.0000000e+00, 1.6728100e+05, 3.2832900e+05,
       5.4316900e+05, 8.1180100e+05, 1.1342250e+06, 1.5104410e+06,
       5.4316900e+05, 6.0516000e+04, 6.0516000e+04, 5.4316900e+05,
       1.5104410e+06, 6.7076100e+05, 1.6728100e+05, 0.0000000e+00,
       1.6728100e+05, 6.7076100e+05, 9.6628900e+05, 1.3156090e+06,
       1.7161000e+06, 2.1726760e+06, 2.6830440e+06, 2.1726760e+06,
       1.7161000e+06, 1.3156090e+06, 9.6628900e+05, 6.7076100e+05,
       8.1180100e+05, 9.6628900e+05, 1.1342250e+06, 1.3156090e+06,
       1.5104410e+06, 1.1342250e+06, 8.1180100e+05, 5.4316900e+05,
       3.2832900e+05, 1.6728100e+05, 4.2902500e+05, 8.1180100e+05,
       1.3156090e+06, 1.9376640e+06, 2.6830440e+06, 2.4211360e+06,
       2.1726760e+06, 1.9376640e+06, 1.7161000e+06, 1.5104410e+06,
       1.5104410e+06, 1.5104410e+06, 1.5104410e+06, 1.5104410e+06,
       1.5104410e+06, 6.7076100e+05, 1.6728100e+05, 0.0000000e+00,
       1.6728100e+05, 6.7076100e+05, 2.4108100e+05, 2.6896000e+04,
       2.6896000e+04, 2.4108100e+05, 6.7076100e+05, 5.2624360e+06,
       1.4197824e+07, 2.7478564e+07, 4.5118089e+07, 6.7092481e+07,
       4.5118089e+07, 2.7478564e+07, 1.4197824e+07, 5.2624360e+06,
       6.7076100e+05, 2.4108100e+05, 2.6896000e+04, 2.6896000e+04,
       2.4108100e+05, 6.7076100e+05, 1.6728100e+05, 0.0000000e+00,
       1.6728100e+05, 6.7076100e+05, 1.5104410e+06, 1.5104410e+06,
       1.5104410e+06, 1.5104410e+06, 1.5104410e+06, 1.5104410e+06,
       1.5104410e+06, 1.5104410e+06, 1.5104410e+06, 1.5104410e+06,
       1.5104410e+06, 6.7076100e+05, 1.6728100e+05, 0.0000000e+00,
       1.6728100e+05, 6.7076100e+05, 4.2902500e+05, 2.4108100e+05,
       1.0692900e+05, 2.6896000e+04, 0.0000000e+00, 6.7240000e+03,
       2.6896000e+04, 6.0516000e+04, 1.0692900e+05, 1.6728100e+05,
       2.4108100e+05, 3.2832900e+05, 4.2902500e+05, 5.4316900e+05,
       6.7076100e+05, 6.7076100e+05, 6.7076100e+05, 6.7076100e+05,
       6.7076100e+05, 6.7076100e+05, 6.0516000e+04, 1.0692900e+05,
       8.1180100e+05, 2.1726760e+06, 4.1943040e+06, 2.9584000e+06,
       1.9376640e+06, 1.1342250e+06, 5.4316900e+05, 1.6728100e+05,
       6.0516000e+04, 6.7240000e+03, 6.7240000e+03, 6.0516000e+04,
       1.6728100e+05, 6.7240000e+03, 6.0516000e+04, 3.2832900e+05,
       8.1180100e+05, 1.5104410e+06, 1.5104410e+06, 1.5104410e+06,
       1.5104410e+06, 1.5104410e+06, 1.5104410e+06, 2.4211360e+06,
       3.5494560e+06, 4.8929440e+06, 6.4465210e+06, 8.2196890e+06,
       6.0368490e+06, 4.1943040e+06, 2.6830440e+06, 1.5104410e+06,
       6.7076100e+05, 5.4316900e+05, 4.2902500e+05, 3.2832900e+05,
       2.4108100e+05, 1.6728100e+05, 5.4316900e+05, 1.1342250e+06,
       1.9376640e+06, 2.9584000e+06, 4.1943040e+06, 1.5104410e+06,
       1.6728100e+05, 1.6728100e+05, 1.5104410e+06, 4.1943040e+06,
       3.2472040e+06, 2.4211360e+06, 1.7161000e+06, 1.1342250e+06,
       6.7076100e+05, 2.6896000e+04, 2.4108100e+05, 1.3156090e+06,
       3.2472040e+06, 6.0368490e+06, 3.5494560e+06, 1.7161000e+06,
       5.4316900e+05, 2.6896000e+04, 1.6728100e+05, 6.7240000e+03,
       6.0516000e+04, 3.2832900e+05, 8.1180100e+05, 1.5104410e+06,
       1.1342250e+06, 8.1180100e+05, 5.4316900e+05, 3.2832900e+05,
       1.6728100e+05])
[8]:
plot(xargsum)
[8]:
[<matplotlib.lines.Line2D at 0x7f56621105b0>]
../_images/nb_examples_ArgMax_8_1.png
[9]:
np.argmax(xargsum)
[9]:
75
[10]:
plot(xabs)
[10]:
[<matplotlib.lines.Line2D at 0x7f566200f970>]
../_images/nb_examples_ArgMax_10_1.png