|
From: | SangHyuk Kim |
Subject: | Re: [Discuss-gnuradio] Why add d_nbits two times at ofdm_mapper_bcv ? |
Date: | Fri, 27 May 2016 17:36:22 +0900 |
Also, that block is going away soon.
I recommend looking at the carrier allocator block instead.
M
On 05/25/2016 10:20 PM, SangHyuk Kim wrote:
> Dear all,
>
> Sorry, my source code was wrong.
>
> There is only one /d_bit_offset += d_nbits;
>
> /
> /Thanks .
> /
>
> 2016-05-26 10:38 GMT+09:00 SangHyuk Kim <address@hidden
> <mailto:address@hidden>>:
>
> Hi all,
>
> I'm tracing how OFDM modulation is done by /ofdm/benchmark_tx.py.
>
> The file, ofdm.py indicates ofdm modulation is composed of like :
>
> modulation - mapper - preamble - IFFT - CP - scale
> |- mapper - preamble -|
>
> And I have a question at ofdm_mapper_bcv.
>
> In ofdm_mapper_bcv_impl::work, I can find making symbol part :
>
> /while(..){
> /
> /if((8-d_bit_offset) >= d_nbits) {
> /
> /bits = ((1 << d_nbits)-1) & (d_msgbytes >> d_bit_offset);
> d_bit_offset += d_nbits;
> d_bit_offset += d_nbits;
> out[d_subcarrier_map[i]] = d_constellation[bits];
> /
> /}
> /
> /}
>
> /
> For example, using BPSK :
> - d_nbits = 1
> - d_msgbytes = 94 (0101 1110)
>
> 1st loop:
> - bits = (0000 0001) & (0101 1110) = 0 // takes right-most bit
> - d_bit_offset = 2
> - out[..] = d_constellation[0]
>
> 2nd loop:
> - bits = (0000 0001) & (0001 0111) = 1
> - d_bit_offset = 4
> - out[..] = d_constellation[1]
>
> 3rd & 4th same like above.
>
> In this example, it just takes odd parts of byte (0, 1, 1, 1).
>
> How can receiver deduce even part (1, 1, 0, 0) ?
>
> I don't know why /d_bit_offset += d_nbits/ double times, not an one.
>
> Is this related with two mapping & preamble blocks ? (I/Q ch?)
>
> If right, these two mapping handle even or odd part of byte
> respectively ?
>
> Thanks.
>
>
>
>
>
> _______________________________________________
> Discuss-gnuradio mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>
[Prev in Thread] | Current Thread | [Next in Thread] |