Ejemplo n.º 1
0
def reference_filter_ccc(dec, taps, input):
    """
    compute result using conventional fir filter
    """
    tb = gr.top_block()
    #src = gr.vector_source_c(((0,) * (len(taps) - 1)) + input)
    src = gr.vector_source_c(input)
    op = filter.fir_filter_ccc(dec, taps)
    dst = gr.vector_sink_c()
    tb.connect(src, op, dst)
    tb.run()
    return dst.data()
def reference_filter_ccc(dec, taps, input):
    """
    compute result using conventional fir filter
    """
    tb = gr.top_block()
    #src = gr.vector_source_c(((0,) * (len(taps) - 1)) + input)
    src = gr.vector_source_c(input)
    op = filter.fir_filter_ccc(dec, taps)
    dst = gr.vector_sink_c()
    tb.connect(src, op, dst)
    tb.run()
    return dst.data()
Ejemplo n.º 3
0
    def test_fir_filter_ccc_002(self):
        src_data = 10*[1+1j, 2+2j, 3+3j, 4+4j]
        
        # results derived from original filter.fir_filter_ccc
        expected_data = ((7.537424837948042e-20+7.537424837948042e-20j), (9.131923434324563e-05+9.131923434324563e-05j), (0.0003317668742965907+0.0003317668742965907j), (0.0007230418268591166+0.0007230418268591166j), (0.0012087896466255188+0.0012087896466255188j), (0.0013292605290189385+0.0013292605290189385j), (0.001120875240303576+0.001120875240303576j), (0.000744672492146492+0.000744672492146492j), (0.000429437990533188+0.000429437990533188j), (2.283908543176949e-05+2.283908543176949e-05j), (-0.0002245186478830874-0.0002245186478830874j), (-0.0001157080550910905-0.0001157080550910905j), (0.00041409023106098175+0.00041409023106098175j), (0.0009017843985930085+0.0009017843985930085j), (0.0012520025484263897+0.0012520025484263897j), (0.0014116164529696107+0.0014116164529696107j), (0.001393353333696723+0.001393353333696723j), (0.000912194955162704+0.000912194955162704j), (0.00022649182938039303+0.00022649182938039303j), (-0.00031363096786662936-0.00031363096786662936j), (-0.0003966730728279799-0.0003966730728279799j), (-0.00023757052258588374-0.00023757052258588374j), (0.00021952332463115454+0.00021952332463115454j), (0.0009092430118471384+0.0009092430118471384j), (0.001662317430600524+0.001662317430600524j), (0.0019024648936465383+0.0019024648936465383j), (0.0015955769922584295+0.0015955769922584295j), (0.0009144138311967254+0.0009144138311967254j), (0.0001872836146503687+0.0001872836146503687j), (-0.000581968342885375-0.000581968342885375j), (-0.0009886166080832481-0.0009886166080832481j), (-0.0007480768254026771-0.0007480768254026771j), (0.00018211957649327815+0.00018211957649327815j), (0.0012042406015098095+0.0012042406015098095j), (0.0020200139842927456+0.0020200139842927456j), (0.0023816542234271765+0.0023816542234271765j), (0.002195809967815876+0.002195809967815876j), (0.0012113333214074373+0.0012113333214074373j), (-0.00014088614261709154-0.00014088614261709154j), (-0.0012574587017297745-0.0012574587017297745j))

        taps = filter.firdes.low_pass(1, 1, 0.1, 0.01)
        src = blocks.vector_source_c(src_data)
        op  = filter.fir_filter_ccc(1, taps)
        dst = blocks.vector_sink_c()
        self.tb.connect(src, op, dst)
        self.tb.run()
        result_data = dst.data()
        self.assertComplexTuplesAlmostEqual(expected_data, result_data, 5)
 def test_fir_filter_ccc_001(self):
     src_data = 40*[1+1j, 2+2j, 3+3j, 4+4j]
     expected_data = ((-0.5+1.5j), (-1.5+4.5j), (-3+9j), (-5+15j),
                      (-5.5+16.5j), (-6.5+19.5j), (-8+24j), (-10+30j),
                      (-10.5+31.5j), (-11.5+34.5j), (-13+39j), (-15+45j),
                      (-15.5+46.5j), (-16.5+49.5j), (-18+54j), (-20+60j),
                      (-20.5+61.5j), (-21.5+64.5j), (-23+69j), (-25+75j),
                      (-25.5+76.5j), (-26.5+79.5j), (-28+84j), (-30+90j),
                      (-30.5+91.5j), (-31.5+94.5j), (-33+99j), (-35+105j),
                      (-35.5+106.5j), (-36.5+109.5j), (-38+114j), (-40+120j),
                      (-40.5+121.5j), (-41.5+124.5j), (-43+129j), (-45+135j),
                      (-45.5+136.5j), (-46.5+139.5j), (-48+144j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j), (-50+150j))
     src = gr.vector_source_c(src_data)
     op  = filter.fir_filter_ccc(1, 20*[0.5+1j, 0.5+1j])
     dst = gr.vector_sink_c()
     self.tb.connect(src, op, dst)
     self.tb.run()
     result_data = dst.data()
     self.assertComplexTuplesAlmostEqual(expected_data, result_data, 5)
Ejemplo n.º 5
0
 def test_fir_filter_ccc_001(self):
     src_data = 40*[1+1j, 2+2j, 3+3j, 4+4j]
     expected_data = ((-0.5+1.5j), (-1.5+4.5j), (-3+9j), (-5+15j),
                      (-5.5+16.5j), (-6.5+19.5j), (-8+24j), (-10+30j),
                      (-10.5+31.5j), (-11.5+34.5j), (-13+39j), (-15+45j),
                      (-15.5+46.5j), (-16.5+49.5j), (-18+54j), (-20+60j),
                      (-20.5+61.5j), (-21.5+64.5j), (-23+69j), (-25+75j),
                      (-25.5+76.5j), (-26.5+79.5j), (-28+84j), (-30+90j),
                      (-30.5+91.5j), (-31.5+94.5j), (-33+99j), (-35+105j),
                      (-35.5+106.5j), (-36.5+109.5j), (-38+114j), (-40+120j),
                      (-40.5+121.5j), (-41.5+124.5j), (-43+129j), (-45+135j),
                      (-45.5+136.5j), (-46.5+139.5j), (-48+144j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j), (-50+150j))
     src = blocks.vector_source_c(src_data)
     op  = filter.fir_filter_ccc(1, 20*[0.5+1j, 0.5+1j])
     dst = blocks.vector_sink_c()
     self.tb.connect(src, op, dst)
     self.tb.run()
     result_data = dst.data()
     self.assertComplexTuplesAlmostEqual(expected_data, result_data, 5)
 def test_fir_filter_ccc_003(self):
     src_data = 40*[1+1j, 2+2j, 3+3j, 4+4j]
     expected_data = ((-0.5+1.5j), (-5.5+16.5j), (-10.5+31.5j),
                      (-15.5+46.5j), (-20.5+61.5j), (-25.5+76.5j),
                      (-30.5+91.5j), (-35.5+106.5j), (-40.5+121.5j),
                      (-45.5+136.5j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j))
     src = gr.vector_source_c(src_data)
     op  = filter.fir_filter_ccc(4, 20*[0.5+1j, 0.5+1j])
     dst = gr.vector_sink_c()
     self.tb.connect(src, op, dst)
     self.tb.run()
     result_data = dst.data()
     self.assertComplexTuplesAlmostEqual(expected_data, result_data, 5)
Ejemplo n.º 7
0
 def test_fir_filter_ccc_003(self):
     src_data = 40*[1+1j, 2+2j, 3+3j, 4+4j]
     expected_data = ((-0.5+1.5j), (-5.5+16.5j), (-10.5+31.5j),
                      (-15.5+46.5j), (-20.5+61.5j), (-25.5+76.5j),
                      (-30.5+91.5j), (-35.5+106.5j), (-40.5+121.5j),
                      (-45.5+136.5j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j), (-50+150j),
                      (-50+150j), (-50+150j), (-50+150j))
     src = blocks.vector_source_c(src_data)
     op  = filter.fir_filter_ccc(4, 20*[0.5+1j, 0.5+1j])
     dst = blocks.vector_sink_c()
     self.tb.connect(src, op, dst)
     self.tb.run()
     result_data = dst.data()
     self.assertComplexTuplesAlmostEqual(expected_data, result_data, 5)