Hello

I'm supposed to create a block in GnuRadio that has 1 input and 2 or 4
outputs , it's actually a Layer mapper in MIMO processing of LTE.

I have written the constructor :

Layer_Mapper_Transmit_Diversity_cc_impl::Layer_Mapper_Transmit_Diversity_cc_impl(int
numLay,int constNum)
      : gr_block("Layer_Mapper_Transmit_Diversity_cc",
                      gr_make_io_signature(1, 1, sizeof
(float)*16/(constNum)),
                      gr_make_io_signature(2, 4, sizeof
(float)*16/(constNum*numLay)))
    {
        NumLay=numLay;   //Number of Layers
        M=constNum;   //Constellation Cardinality
    }


and the Forecast Function:

void
    Layer_Mapper_Transmit_Diversity_cc_impl::forecast (int noutput_items,
gr_vector_int &ninput_items_required)
    {
        ninput_items_required[0] = NumLay * noutput_items;
    }


In The General Work Function I wanted to create 4 outputs this way:

int
    Layer_Mapper_Transmit_Diversity_cc_impl::general_work (int
noutput_items,
                       gr_vector_int &ninput_items,
                       gr_vector_const_void_star &input_items,
                       gr_vector_void_star &output_items)
    {
        const float **in = (const float **) input_items[0];
        float **out0 = (float **) output_items[0];
        float **out1 = (float **) output_items[1];
        float **out2 = (float **) output_items[2];
        float **out3 = (float **) output_items[3];

Because the inputs and outputs are arrays so I declared them as matrices ,
does GnuRadio accept this ?
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to