|
From: | SangHyuk Kim |
Subject: | Re: [Discuss-gnuradio] Why add d_nbits two times at ofdm_mapper_bcv ? |
Date: | Thu, 26 May 2016 14:20:27 +0900 |
For example, using BPSK :while(..){In ofdm_mapper_bcv_impl::work, I can find making symbol part :And I have a question at ofdm_mapper_bcv.|- mapper - preamble -|modulation - mapper - preamble - IFFT - CP - scaleThe file, ofdm.py indicates ofdm modulation is composed of like :Hi all,I'm tracing how OFDM modulation is done by /ofdm/benchmark_tx.py.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];}}- 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.
[Prev in Thread] | Current Thread | [Next in Thread] |