As I mentioned in my earlier email, you have misunderstood the functionality
of the

gr_make_vector_source_s(vec,false)

block. It takes a vector "vec" as an argument and produces A STREAM OF
SHORTS at its output!!!
It is NOT producing a stream of vectors at its output...unless you specify
this as the third parameter,
which has nothing to do with the size of the input vector "vec" you are
using...

Please remove both stream2vector and vector2stream from your code and modify
the statement

gr_vector_source_s_sptr bit_src = gr_make_vector_source_s(in_bits,false,K );

as

gr_vector_source_s_sptr bit_src = gr_make_vector_source_s(in_bits,false);

Please see the python program test_tcm1.py in the gr-trellis/src/examples
directory to see
how the blocks are arranged...

best,
Achilleas


On Mon, Jul 19, 2010 at 4:19 PM, Raman O <[email protected]> wrote:

> Hello Achilleas,
>
>  Thanks for your response.
>  I have connected encoder block , it disappeared during editing mail by
> mistake.
>
> Input is in the form of an array of size K and vector2stream feeds encoder
> bit a time ,so i am using following syntax :
>
> gr_vector_source_s_sptr bit_src = gr_make_vector_source_s(in_bits,false,K );
>
> gr_vector_to_stream_sptr vector2stream = 
> gr_make_vector_to_stream(sizeof(short),K)
>
>
> ------------------------------------------------------------------------------------------------------------
>
> int K=100;
>   short inputbits[100]={ ....contains bits....  };
> std::vector<short> in_bits;
>
>         for (int i = 0; i <K ; i++)  { //  K - no
>  of bits
>         in_bits.push_back(inputbits[i]); // input bits
>         }
>         std::vector<float> constellation; // BPSK mapping
>
>  constellation.push_back(1);
>            constellation.push_back(-1);
>
>
>          gr_vector_source_s_sptr bit_src = 
> gr_make_vector_source_s(in_bits,false,K );
>
>          gr_vector_to_stream_sptr vector2stream= 
> gr_make_vector_to_stream(sizeof(short),K);
>
>      // encoder
>            fsm f=
>  fsm("../../../gr-trellis/src/examples/fsm_files/awgn1o2_128.fsm");
>            trellis_encoder_ss_sptr encoder = trellis_make_encoder_ss (f, 0);
>
>      // modulate
>  gr_chunks_to_symbols_sf_sptr mod = gr_make_chunks_to_symbols_sf
>  (constellation, 1);
>
>      // ----------- ideal channel -------------
>
>      // decoder
>
>      trellis_metric_type_t type= TRELLIS_EUCLIDEAN;
>      trellis_metrics_f_sptr metrics = trellis_make_metrics_f (f.O(), 1, 
> constellation, type);
>      trellis_viterbi_s_sptr viterbi =trellis_make_viterbi_s ( f,K, 0,-1);
>
>      gr_stream_to_vector_sptr stream2vector= 
> gr_make_stream_to_vector(sizeof(short), K);
>      d_dst = gr_make_vector_sink_s (K);
>
>           connect( bit_src ,   0, vector2stream,   0);
>
>      connect( vector2stream ,   0,encoder, 0);
>      connect( encoder ,   0,mod, 0);
>
>      connect(mod,   0,metrics,
>  0);
>      connect(metrics,   0, viterbi,   0);
>      connect( viterbi,   0,stream2vector,   0);
>      connect(stream2vector,   0, d_dst, 0);
>
>
>
>
> --- On *Mon, 19/7/10, Achilleas Anastasopoulos <[email protected]>* wrote:
>
>
> From: Achilleas Anastasopoulos <[email protected]>
> Subject: Re: [Discuss-gnuradio] gr-trellis : problem in using viterbi
> decoder
> To: "gnuradio mailing list" <[email protected]>, [email protected]
> Date: Monday, 19 July, 2010, 6:47 PM
>
>
>
>
> I also realized that the way you call
> gr_make_vector_source_s(in_bits,false,K );
> is incorrect.
> I think you have misunderstood what this block does.
>
> You should use:
> gr_make_vector_source_s(in_bits,false,1 );
> or simply
> gr_make_vector_source_s(in_bits,false);
> and you really don't need the vector2stream block.
>
> Achilleas
>
>
>
> ---------------------
> In your code the "encoder" block is not connected to any other block...
>
> It should be:
>
> info bits -> encoder -> modulator -> channel -> metrics -> viterbi
>
> Achilleas
>
>
>
_______________________________________________
Discuss-gnuradio mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to