I guess I explained to less. I'm using hard symbol coding. As I read in
the documentation, I can use the trellis modulated Symbols how ever I
want to. So on the transmitter side, I do not forward the trellis
modulated symbols to a QAM modulator or something. I convert the
generated fsm symbols let's say with 2 Bits per Byte with a
unpacked_to_packed block back into a byte with all symbols use. So I
have 4 trellis coded symbols in each byte. And the so coded bytes I
forward to the ofdm_mod to transmit it.
On the receiver side, I take the packet handed over by the
ofdm_demodulator "complete usual ofdm demodulation". So if no error
occured i should get back bytes with 4 fsm hard symbols each. I take
these bytes and make a pack_to_unpack and get back the 4 bytes with one
2bit fsm symbol each. this steam of chunks is than decoded by a
hard_symbol viterbi. The principle is the same like in one of the
trellis examples with an outer coding.
it should in an error free case be the same as taking the symbols
generated by a tcm into a viterbi. the scheme is:
input(packet with leading and ending zeros to force defined
And I don't know why I doesn't work all the time.
Is there an error in my idea?
Am 09.09.2010 21:57, schrieb Veljko Pejovic:
I'm trying to implement coded OFDM as well. I think we are
following the same approach when it comes to the transmission, but I'm
afraid I do not understand your receiver. When exactly do you do OFDM
demodulation? combined_viterbi does demodulation of the BPSK, QAM, etc
signal based on the given constellation. However, OFDM decoding has to
happen before that. The tricky part is that the OFDM blocks in gnuradio
don't allow you to easily plug the combined_viterbi module. Are you
putting it between ofdm_recv and ofdm_demod in the ofdm_demod class? If
so, what about the control signal that tells you where the frame
starts, which flows on the other ofdm_recv port?
On Thu, Sep 9, 2010 at 7:10 AM, Tobias
I've got another question. I implemented an OFDM-transmission eviroment
and now I additionally added channel coding. It works fine, but when
using trellis modulator and viterbi decoder, the packeterrorrate
I realized the blockbuilding, using a message_queue counting the
incomming items and when reached a certain limit, push it into an
To realize the defined initial and final state, I added zeros at the
end of each block using the python --struct-- module. These data blocks
are converted to chunks and handed over to the trellis_modulator.
The outcoming chunks are, depending on there number of bits packt to
shorts to transmit it using the ofdm_mod block.
Obn the receiver side the recieved block is unpackt using the inverse
operation of the block after the trellis_mod und the tcm output symbols
are handed over to the combined_viterbi afterwards packt to the
original data stream. This stream is catched by a message queue as well
and packets of the original length are reconstructed.
So my question is, what did I do wrong, to get an packet error rate,
that is worse than the uncoded transmission. It seems to me, that some
times in the transmission the viterbi works fine and corrects all the
errors, but sometimes, it doesn't output any correct data.
Is there a solution to this problem?
Thanks alot for your help.
Discuss-gnuradio mailing list