Good day everyone

Could some please explain to me where I'm missinterpreting how to implement
a block. My block code is

import numpy as np
from gnuradio import gr

class compress_ff(gr.sync_block):
    """
    Compressing Block
    """
    def __init__(self, n, m):
    global phi
    N = n
    M = m
    phi =
np.load("/home/chad/Desktop/PROJECT/Python/Matrices/phi_mtx%(M)dx%(N)d.npy"
%{"M":M,"N":N})
        gr.sync_block.__init__(self,
            name="compress_cc",
            in_sig=[(np.float32,N)],
            out_sig=[(np.float32,M)])

    def work(self, input_items, output_items):
        in0 = input_items[0]
    print "compin0"
    print np.shape(in0)
    in0 = in0.conj().transpose()
    out = np.dot(phi,in0)
    out = out.conj().transpose()
        # <+signal processing here+>
        output_items[0][:] = out
        return len(output_items[0])

which I would expect to take in an N length vector and return an M length
vector. However my input vector, in0. Seems to be arbitarially (random
number, N) in size. The random number is a multiple of four which I presume
is due to the data type. I have matching data types so I am confuse as to
why its not creating a (1,N) vector. Any help would be greatly appreciated.
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to