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 <tkdgur7...@gmail.com>: > 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 Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio