Ejemplo n.º 1
0
 def test_fir_filter_scf_002(self):
     self.generate_scf_source()
     expected_data = ((0.00824625696987 - 1.50158575707e-05j),
                      (0.0020101047121 - 0.0116540221497j),
                      (-0.0126378880814 - 0.00259830290452j),
                      (-0.00363933457993 + 0.00837504956871j),
                      (0.00107023562305 + 0.00915473792702j),
                      (0.0169738996774 + 0.00422182958573j),
                      (0.00630031805485 - 0.025423232466j),
                      (-0.0283014029264 + 0.00104465708137j),
                      (0.00890890974551 + 0.0115978596732j),
                      (-0.0142687577754 + 0.00306978379376j),
                      (0.02845691517 + 0.0331163145602j),
                      (0.0538152232766 - 0.0908300876617j),
                      (-0.0843691527843 - 0.0956566259265j),
                      (0.0476895272732 + 0.0747984498739j),
                      (0.0898786485195 + 0.082478672266j),
                      (-0.0330070182681 + 0.101965606213j),
                      (0.0574697069824 - 0.0350842289627j),
                      (-0.0770940706134 - 0.230615705252j),
                      (-0.103762261569 -
                       0.0382265634835j), (0.11808334291 + 0.104863762856j))
     src = blocks.vector_source_s(self.src_data)
     op = filter.freq_xlating_fir_filter_scf(4, self.taps, self.fc, self.fs)
     dst = blocks.vector_sink_c()
     self.tb.connect(src, op, dst)
     self.tb.run()
     result_data = dst.data()
     self.assertComplexTuplesAlmostEqual(expected_data, result_data[-20:],
                                         5)
Ejemplo n.º 2
0
 def test_fir_filter_scf_001(self):
     self.generate_scf_source()
     expected_data = (
         (-0.0330070219934 + 0.101965591311j),
         (-0.0484239049256 + 0.0872343629599j),
         (-0.0214109234512 + 0.102555386722j), (0.0484058149159 +
                                                0.0557125210762j),
         (0.0574690811336 - 0.0350844524801j), (0.0365394353867 -
                                                0.0802438184619j),
         (0.0453781634569 - 0.130992040038j), (0.00801951438189 -
                                               0.214278846979j),
         (-0.0770946145058 - 0.230616629124j), (-0.105601429939 -
                                                0.190731987357j),
         (-0.105361394584 - 0.177761554718j), (-0.131518915296 -
                                               0.136102750897j),
         (-0.103761836886 - 0.0382263250649j), (-0.0167790111154 +
                                                0.0152206514031j),
         (0.0277570039034 + 0.0300403907895j), (0.056065287441 +
                                                0.0806603953242j),
         (0.118084669113 + 0.104863211513j), (0.128281414509 +
                                              0.0677760615945j),
         (0.0748447552323 + 0.0619902014732j), (0.0512856245041 +
                                                0.0775099247694j))
     src = blocks.vector_source_s(self.src_data)
     op = filter.freq_xlating_fir_filter_scf(1, self.taps, self.fc, self.fs)
     dst = blocks.vector_sink_c()
     self.tb.connect(src, op, dst)
     self.tb.run()
     result_data = dst.data()
     self.assertComplexTuplesAlmostEqual(expected_data, result_data[-20:],
                                         5)
 def test_fir_filter_scf_002(self):
     self.generate_scf_source()
     expected_data = ((0.00824625696987-1.50158575707e-05j),
                      (0.0020101047121-0.0116540221497j),
                      (-0.0126378880814-0.00259830290452j),
                      (-0.00363933457993+0.00837504956871j),
                      (0.00107023562305+0.00915473792702j),
                      (0.0169738996774+0.00422182958573j),
                      (0.00630031805485-0.025423232466j),
                      (-0.0283014029264+0.00104465708137j),
                      (0.00890890974551+0.0115978596732j),
                      (-0.0142687577754+0.00306978379376j),
                      (0.02845691517+0.0331163145602j),
                      (0.0538152232766-0.0908300876617j),
                      (-0.0843691527843-0.0956566259265j),
                      (0.0476895272732+0.0747984498739j),
                      (0.0898786485195+0.082478672266j),
                      (-0.0330070182681+0.101965606213j),
                      (0.0574697069824-0.0350842289627j),
                      (-0.0770940706134-0.230615705252j),
                      (-0.103762261569-0.0382265634835j),
                      (0.11808334291+0.104863762856j))
     src = blocks.vector_source_s(self.src_data)
     op  = filter.freq_xlating_fir_filter_scf(4, self.taps, self.fc, self.fs)
     dst = blocks.vector_sink_c()
     self.tb.connect(src, op, dst)
     self.tb.run()
     result_data = dst.data()
     self.assertComplexTuplesAlmostEqual(expected_data, result_data[-20:], 5)
 def test_fir_filter_scf_001(self):
     self.generate_scf_source()
     expected_data = ((-0.0330070219934+0.101965591311j),
                      (-0.0484239049256+0.0872343629599j),
                      (-0.0214109234512+0.102555386722j),
                      (0.0484058149159+0.0557125210762j),
                      (0.0574690811336-0.0350844524801j),
                      (0.0365394353867-0.0802438184619j),
                      (0.0453781634569-0.130992040038j),
                      (0.00801951438189-0.214278846979j),
                      (-0.0770946145058-0.230616629124j),
                      (-0.105601429939-0.190731987357j),
                      (-0.105361394584-0.177761554718j),
                      (-0.131518915296-0.136102750897j),
                      (-0.103761836886-0.0382263250649j),
                      (-0.0167790111154+0.0152206514031j),
                      (0.0277570039034+0.0300403907895j),
                      (0.056065287441+0.0806603953242j),
                      (0.118084669113+0.104863211513j),
                      (0.128281414509+0.0677760615945j),
                      (0.0748447552323+0.0619902014732j),
                      (0.0512856245041+0.0775099247694j))
     src = blocks.vector_source_s(self.src_data)
     op  = filter.freq_xlating_fir_filter_scf(1, self.taps, self.fc, self.fs)
     dst = blocks.vector_sink_c()
     self.tb.connect(src, op, dst)
     self.tb.run()
     result_data = dst.data()
     self.assertComplexTuplesAlmostEqual(expected_data, result_data[-20:], 5)
    def test_fir_filter_scf_002(self):
        self.generate_scf_source()

        decim = 4
        lo = sig_source_c(self.fs, -self.fc, 1, len(self.src_data))
        despun = mix(lo, self.src_data)
        expected_data = fir_filter(despun, self.taps, decim)

        src = blocks.vector_source_s(self.src_data)
        op  = filter.freq_xlating_fir_filter_scf(decim, self.taps, self.fc, self.fs)
        dst = blocks.vector_sink_c()
        self.tb.connect(src, op, dst)
        self.tb.run()
        result_data = dst.data()
        self.assertComplexTuplesAlmostEqual(expected_data, result_data, 4)
    def test_fir_filter_scf_002(self):
        self.generate_scf_source()

        decim = 4
        lo = sig_source_c(self.fs, -self.fc, 1, len(self.src_data))
        despun = mix(lo, self.src_data)
        expected_data = fir_filter(despun, self.taps, decim)

        src = blocks.vector_source_s(self.src_data)
        op  = filter.freq_xlating_fir_filter_scf(decim, self.taps, self.fc, self.fs)
        dst = blocks.vector_sink_c()
        self.tb.connect(src, op, dst)
        self.tb.run()
        result_data = dst.data()
        self.assertComplexTuplesAlmostEqual(expected_data, result_data, 4)
Ejemplo n.º 7
0
if not op.nosync:
   u.set_clock_source("external", uhd.ALL_MBOARDS)
   u.set_time_source("external", uhd.ALL_MBOARDS)
#u.set_clock_source("none", uhd.ALL_MBOARDS)
#u.set_time_source("none", uhd.ALL_MBOARDS)

if op.dec > 1:
    taps = firdes.low_pass_2(1.0,
                             float(op.samplerate),
                             float(op.samplerate)/float(op.dec)/2.0,
                             0.2*(float(op.samplerate)/float(op.dec)),
                       	     80.0,
                             window=firdes.WIN_BLACKMAN_hARRIS)

    lpf0 = filter.freq_xlating_fir_filter_scf(op.dec,taps,0.0,op.samplerate)
    lpf1 = filter.freq_xlating_fir_filter_scf(op.dec,taps,0.0,op.samplerate)

if op.filesize == None:
   op.filesize=op.samplerate/op.dec

# wait until time 0.2 to 0.5 past full second, then latch.
# we have to trust NTP to be 0.2 s accurate. It might be a good idea to do a ntpdate before running
# uhdsampler.py
tt = time.time()
while tt-math.floor(tt) < 0.2 or tt-math.floor(tt) > 0.3:
    tt = time.time()
    time.sleep(0.01)
print("Latching at "+str(tt))
if not op.nosync:
   u.set_time_unknown_pps(uhd.time_spec(math.ceil(tt)+1.0))
Ejemplo n.º 8
0
if not op.nosync:
    u.set_clock_source("external", uhd.ALL_MBOARDS)
    u.set_time_source("external", uhd.ALL_MBOARDS)
#u.set_clock_source("none", uhd.ALL_MBOARDS)
#u.set_time_source("none", uhd.ALL_MBOARDS)

if op.dec > 1:
    taps = firdes.low_pass_2(1.0,
                             float(op.samplerate),
                             float(op.samplerate) / float(op.dec) / 2.0,
                             0.2 * (float(op.samplerate) / float(op.dec)),
                             80.0,
                             window=firdes.WIN_BLACKMAN_hARRIS)

    lpf0 = filter.freq_xlating_fir_filter_scf(op.dec, taps, 0.0, op.samplerate)
    lpf1 = filter.freq_xlating_fir_filter_scf(op.dec, taps, 0.0, op.samplerate)

if op.filesize == None:
    op.filesize = op.samplerate / op.dec

# wait until time 0.2 to 0.5 past full second, then latch.
# we have to trust NTP to be 0.2 s accurate. It might be a good idea to do a ntpdate before running
# uhdsampler.py
tt = time.time()
while tt - math.floor(tt) < 0.2 or tt - math.floor(tt) > 0.3:
    tt = time.time()
    time.sleep(0.01)
print("Latching at " + str(tt))
if not op.nosync:
    u.set_time_unknown_pps(uhd.time_spec(math.ceil(tt) + 1.0))