Tx_ofdm.grc & rx_ofdm.grc output data

Has anyone tested successfully these two files combined?

The input data or vector source is an array of 96 elements [0-95] but
I’m
getting a strange output at the end.

The 96 + 4 elements from the crc, then another 100 values (200 total),
then
the sequence repeats.

I tried using the OFDM transmitter and receiver blocks and they work
perfectly, same input as ouput.

I began tracing the problem comparing the same log debug output files
and it
seems the “Header/Payload Demux” is causing some issues.

Here’s the output at the very end of the RX by the way (200 elements,
then
repeats):

[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13
14
15 16 17 18 19 20 21 22 23 24 25 26 27 28
29
30 31 32 33 34 35 36 37 38 39 40 41 42 43
44
45 46 47 48 49 50 51 52 53 54 55 56 57 58
59
60 61 62 63 64 65 66 67 68 69 70 71 72 73
74
75 76 77 78 79 80 81 82 83 84 85 86 87 88
89
90 91 92 93 94 95 114 115 -56 81 -26 39 -70 38
66
-106 -111 115 -124 0 32 1 1 -120 1 -63 -56 68 8
19
-120 -127 83 53 -30 -104 121 -39 -10 -103 88 -96 -72 -66
-96
9 34 -88 -118 42 10 -86 -88 -96 0 1 2 3 4
5
6 7 8 9 10 11 12 13 14 15 16 17 18 19
20
21 22 23 24 25 26 27 28 29 30 31 32 33 34
35
36 37 38 39 40 41 42 43 44 45 46 47 48 49
50
51 52 53 54 55]

Thanks in advanced.


View this message in context:
http://gnuradio.4.n7.nabble.com/tx-ofdm-grc-rx-ofdm-grc-output-data-tp44356.html
Sent from the GnuRadio mailing list archive at Nabble.com.

On Wed, Oct 23, 2013 at 06:19:00PM -0700, eontool wrote:

Has anyone tested successfully these two files combined?

The input data or vector source is an array of 96 elements [0-95] but I’m
getting a strange output at the end.

The 96 + 4 elements from the crc, then another 100 values (200 total), then
the sequence repeats.

Hi eontool,

did you change any of the other settings, or use the defaults?

The data you’re seeing is after the CRC?

I tried using the OFDM transmitter and receiver blocks and they work
perfectly, same input as ouput.

I began tracing the problem comparing the same log debug output files and it
seems the “Header/Payload Demux” is causing some issues.

Which issues are these?
Can you check the payload output of the HPD. It contains two tags: The
length of the packet in bytes (==100 in your case) (key: len_tag_key)
and the number of OFDM symbols (depends on your config, key is
frame_len_tag_key). Are these correct?

If yes, can you confirm that the stream tags were correct at the
transmitter? Can you post the argument for the vector_source?

MB


Karlsruhe Institute of Technology (KIT)
Communications Engineering Lab (CEL)

Dipl.-Ing. Martin B.
Research Associate

Kaiserstraße 12
Building 05.01
76131 Karlsruhe

Phone: +49 721 608-43790
Fax: +49 721 608-46071
www.cel.kit.edu

KIT – University of the State of Baden-Württemberg and
National Laboratory of the Helmholtz Association

Hi Martin.

I used the default settings for the parameters.

The data I’m seeing is after de CRC.

Here’s my payload output at the HPD:

Tag Debug: HPD / Payload
Input Stream: 00
Offset: 1547 Source: n/a Key: frame_len Value: 17
Offset: 1547 Source: n/a Key: packet_num Value: 182
Offset: 1547 Source: n/a Key: packet_len Value: 800
Offset: 1547 Source: n/a Key: ofdm_sync_carr_offset Value: 0
Offset: 1547 Source: n/a Key: ofdm_sync_chan_taps Value:
#
Offset: 1555 Source: n/a Key: packet_len Value: 960
Offset: 1555 Source: n/a Key: packet_len Value: 960
Offset: 1555 Source: n/a Key: packet_len Value: 960
Offset: 1555 Source: n/a Key: packet_len Value: 960
Offset: 1555 Source: n/a Key: packet_len Value: 960
Offset: 1555 Source: n/a Key: packet_len Value: 960
Offset: 1555 Source: n/a Key: packet_len Value: 960

My vector source argument is:
tagged_streams.make_lengthtags((packet_len,), (0,), length_tag_name)

Other stuff:

I changed the OFDM Frame Equalizer of the payload part:
From:
digital.ofdm_equalizer_simpledfe(fft_len, header_mod.base(),
occupied_carriers, pilot_carriers, pilot_symbols, 2).base()

To:
digital.ofdm_equalizer_simpledfe(fft_len, payload_mod.base(),
occupied_carriers, pilot_carriers, pilot_symbols, 2).base()

I added a Repack Bits block at the rx, just before the CRC, from 2 to 8
bits.

I uploaded a screenshot and the grc file here
https://drive.google.com/folderview?id=0B0wrUyWcKcmNUUtaSTlnMkpPdUE&usp=sharing
:

Any help is really appreciated, thanks!


View this message in context:
http://gnuradio.4.n7.nabble.com/tx-ofdm-grc-rx-ofdm-grc-output-data-tp44356p44367.html
Sent from the GnuRadio mailing list archive at Nabble.com.

Hi

Change the payload modulation to BPSK(Same as BPSK) and keep the bytes
repack as 1 to 8 .

It will do the trick

On Thursday, 24 October 2013 11:44 PM, eontool [email protected]
wrote:

Hi Martin.

I used the default settings for the parameters.

The data I’m seeing is after de CRC.

Here’s my payload output at the HPD:

Tag Debug: HPD / Payload
Input Stream: 00
Offset: 1547 Source: n/a Key: frame_len Value: 17
Offset: 1547 Source: n/a Key: packet_num Value: 182
Offset: 1547 Source: n/a Key: packet_len Value: 800
Offset: 1547 Source: n/a Key: ofdm_sync_carr_offset Value: 0
Offset: 1547 Source: n/a Key: ofdm_sync_chan_taps Value:
#
Offset: 1555 Source: n/a Key: packet_len Value: 960
Offset: 1555 Source: n/a Key: packet_len Value: 960
Offset: 1555 Source: n/a Key: packet_len Value: 960
Offset: 1555 Source: n/a Key: packet_len Value: 960
Offset: 1555 Source: n/a Key: packet_len Value: 960
Offset: 1555 Source: n/a Key: packet_len Value: 960
Offset: 1555 Source: n/a Key: packet_len Value: 960

My vector source argument is:
tagged_streams.make_lengthtags((packet_len,), (0,), length_tag_name)

Other stuff:

I changed the OFDM Frame Equalizer of the payload part:
From:
digital.ofdm_equalizer_simpledfe(fft_len, header_mod.base(),
occupied_carriers, pilot_carriers, pilot_symbols, 2).base()

To:
digital.ofdm_equalizer_simpledfe(fft_len, payload_mod.base(),
occupied_carriers, pilot_carriers, pilot_symbols, 2).base()

I added a Repack Bits block at the rx, just before the CRC, from 2 to 8
bits.

I uploaded a screenshot and the grc file here
https://drive.google.com/folderview?id=0B0wrUyWcKcmNUUtaSTlnMkpPdUE&usp=sharing
:

Any help is really appreciated, thanks!


View this message in context:
http://gnuradio.4.n7.nabble.com/tx-ofdm-grc-rx-ofdm-grc-output-data-tp44356p44367.html
Sent from the GnuRadio mailing list archive at Nabble.com.

Hello again.

OK, so now after changing a few things it finally works, I get the
expected
data correctly at the output.

Apparently it works automatically for BPSK Modulation on both header and
payload because the arguments on these variables are equal to “1”. But,
in
order to work for QPSK o QAM you need to add the variables to the
“header_formatter” and to the project itself.

Issues I found:

Change the “header_formatter” to:
digital.packet_header_ofdm(occupied_carriers, 1, “packet_len”,
“frame_len”,
“”, bps_header, bps_payload)

Add the corresponding variables:
bps_header = header_mod.bits_per_symbol()
bps_payload = payload_mod.bits_per_symbol()

Change the argument on the OFDM Frame Equalizer to:
digital.ofdm_equalizer_simpledfe(fft_len, payload_mod.base(),
occupied_carriers, pilot_carriers, pilot_symbols, 2).base()

Add “1” skip symbol to the Payload Serializer block.

Add a Repack block just before de CRC on the tx part.
Bits per input byte: payload_mod.bits_per_symbol()
Bits per output byte: 8

Change the GRG Block on the rx side from “generate” to “check”.

If you want QPSK for the header or QAM on the payload, try changing the
“80”
delay to “72” or “84”.

That should do it, it works for BPSK, QPSK and 16QAM. I’m uploading the
grc
file anyway.

ofdm_txrx_full.grc
http://gnuradio.4.n7.nabble.com/file/n44374/ofdm_txrx_full.grc

Thanks for the help.


View this message in context:
http://gnuradio.4.n7.nabble.com/tx-ofdm-grc-rx-ofdm-grc-output-data-tp44356p44374.html
Sent from the GnuRadio mailing list archive at Nabble.com.