Hello Everyone,
I'm trying to implement a coded OFDM system by using the trellis
blocks.
I used benchmark_ofdm and trellis coded modulation(gr_trellis)
provided
in the GNU Radio.
I have achieved the transmission similar to previous post on
VIterbi-OFDM
—by Tobias S.; but,I couldn’t understand his design for the
receiver.
Re: [Discuss-gnuradio] Viterbi--OFDM;
For Reception
Problem:
The channel decoding should be performed on the output of ofdm_demod
block(ofdm_frame_sink ; the last block that produces demodulated OFDM
symbols). But, the combined_ viterbi block performs the demodulation of
BPSK
or QPSK based on the signal constellation and provides appropriate
metrics
to viterbi_algorithm.
Approach:
I tried to avoid ofdm_frame sink that performs the demodulation of OFDM
symbols and passed the output of synchronized OFDM symbols(i.e., the
output
of ofdm_frame_acquistion) onto a viterbi_combined block and then
packed
into a message to check the status of crc.(All packets received are
False
).
Flowgraph Model
usrp ------> channel filter ------> symbol synchronization ---------->
FFT
-------> ofdm_frame_acquistion --------> vector to stream
------->viterbi_combined ---------> unpack to pack -------> packets to a
message sink
I have few Questions !!!
*1.How can I append viterbi_ combined block to the OFDM demodulator
blocks??
2 .Do I need to pass the trellis modulated symbols to ofdm_mod block
instead
of encoded byte stream??( I think that allows to use the demodulated
ofdm
symbols through viterbi_combined ).If so,How can I achieve it?? *
Hope you guys respond to my email. As, I have seen lot of people working
on
them.Correct me if my analysis or understanding went wrong??
Thank You.
In case if u need to look at my transmitter model and parameters
Parameters:
trellis finite state machine of rate 1/2 and 4 state (example of
awgn102_4.fsm)
Modulation(QPSK)–since the rate of convolution encoder is 1/2
Default ofdm parameters (FFT lenngth-512 , occupied tones-200)
For Transmission :
I have achieved the transmitter blocks by passing the packet
(containing
payload and CRC) into a message queue that counts the incoming items,
when
reached certain limit passes the message to a trellis encoder that is
bypassed from a unpack to pack module(for proper input stream to the
encoder).The output of trellis encoder is packed into a message and
passed
through the ofdm_mod block.
*Flow Graph Model *
packets from message source --------> pack to unpack---------->trellis
encoder --------> unpack to pack------->packets to a message sink
ofdm_mod(packets from message sink) -------> ampl--------> usrp.