diff --git a/grc/crfa_vector_cutter.xml b/grc/crfa_vector_cutter.xml index c28dda9..3442ade 100644 --- a/grc/crfa_vector_cutter.xml +++ b/grc/crfa_vector_cutter.xml @@ -4,13 +4,42 @@ crfa_vector_cutter [crfa] import crfa - crfa.vector_cutter($insize, $outsize, $cutpoint) + crfa.vector_cutter($insize, $outsize, $cutpoint,$pad_out) set_cutpoint($cutpoint); + + + padded output + pad_out + False + enum + part + + + insize insize @@ -41,4 +70,12 @@ complex $outsize + + out_padded + complex + $insize + #if $pad_out() == 'True' then 'False' else 'True'# + + #if $pad_out() == 'True' then 'False' else 'True'# + diff --git a/python/vector_cutter.py b/python/vector_cutter.py index 6c77c0f..7813748 100644 --- a/python/vector_cutter.py +++ b/python/vector_cutter.py @@ -27,18 +27,25 @@ class vector_cutter(gr.sync_block): """ docstring for block vector_cutter """ - def __init__(self, insize=2048,outsize=1024,cutpoint=512): - gr.sync_block.__init__(self, + def __init__(self, insize=2048,outsize=1024,cutpoint=512,pad_out=False): + if pad_out: + gr.sync_block.__init__(self, + name="vector_cutter", + in_sig=[(np.complex64,insize)], + out_sig=[(np.complex64,outsize),(np.complex64,insize)]) + else: + gr.sync_block.__init__(self, name="vector_cutter", in_sig=[(np.complex64,insize)], out_sig=[(np.complex64,outsize)]) - self.cutpoint=cutpoint self.insize=insize self.outsize=outsize + print(pad_out) + self.pad_out=pad_out def set_cutpoint(self, cutpoint=None): - print("cutpoint set to %i"%cutpoint) + #print("cutpoint set to %i"%cutpoint) if cutpoint is not None: if isinstance(cutpoint, float) or isinstance(cutpoint, int): self.cutpoint=cutpoint @@ -47,10 +54,22 @@ class vector_cutter(gr.sync_block): def work(self, input_items, output_items): in0 = input_items[0] out = output_items[0] + if self.pad_out: + out_padded = output_items[1] # <+signal processing here+> #out[:] = in0[512:1536] + cutpoint=self.cutpoint + attenuation=1e-2#40db (power) for i,in_vec in enumerate(in0): - out[i]=in_vec[self.cutpoint:self.cutpoint+self.outsize] + if 0<=cutpoint