I am trying to simulate OFDM for an multi-path channel. I am using it++ for simulation.
transmit_bits = randb(FrameLength); //The frame bits. 1024 coded_bits = conv_code.encode(transmit_bits); //The convolutional encoder function. modulator->modulate_bits(coded_bits, trans_symbols); //The modulator. ofdm.set_parameters(trans_symbols.size(), 100); trans_symbols = ofdm.modulate(trans_symbols); rec_symbols = channel(trans_symbols, coeff); //The TDL channel. rec_symbols = ofdm.demodulate(rec_symbols.split(trans_symbols.size())); modulator->demodulate_soft_bits(rec_symbols, 0, recived_bits); //Demodulate decoded_bits = conv_code.decode(recived_bits); //The decoder function. berc.count(transmit_bits, decoded_bits);
I am always getting an BER of around 0.5. what am i doing wrong? Also after passing through channel, the length of the ofdm symbols will increase (due to multipath), currently i am blindly removing the extra bits, Is it the wright thing to do?