# Tx\_ofdm

**URL:** <https://www.ruby-forum.com/t/tx-ofdm/241305>\
**Category:** GNU Radio\
**Created:** [May 22, 2014, 7:33pm UTC](https://www.ruby-forum.com/t/tx-ofdm/241305 "2014-05-22T19:33:18Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Detlef\_R](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/58f4c7/32.png) [@Detlef\_R](https://www.ruby-forum.com/u/Detlef_R)\
**Post date:** [May 22, 2014, 7:33pm UTC](https://www.ruby-forum.com/t/tx-ofdm/241305/1 "2014-05-22T19:33:18Z")

</div>

Hi everyone:  
I have already understand most part of the  
tx\_ofdm.grc.But the some digital i can’t calculate accurately.  
1.stream\_to\_tagged\_stream: Packet length=96 bytes.?  
2.And ofdm\_carrier\_allocator:FFT\_length=64(but 48  
occupied carrier+4 pilot carriers!=64)?  
Thank you in advance.Thank you.  
Best regards

---

<div class="post-metadata">

**Author:** ![xianda](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/x/b38774/32.png) [@xianda](https://www.ruby-forum.com/u/xianda)\
**Post date:** [May 22, 2014, 10:14pm UTC](https://www.ruby-forum.com/t/tx-ofdm/241305/2 "2014-05-22T22:14:22Z")

</div>

IIRC, the tx and rx files are just a very general implementation of the  
OFDM  
model.

Here’s my understanding:

- Packet length refers to the data necessary to produce n symbols (48  
data  
carriers, 2 symbols = 96).
- The number of total carriers in the systems equals the FFT length.  
In this case, 48 data carriers and 4 pilots, 52 total and the rest are  
set  
to 0.

I hope im sure about this, if anyone is able to confirm this just to be  
precise.

[http://gnuradio.org/doc/doxygen/page\_ofdm.html](http://gnuradio.org/doc/doxygen/page_ofdm.html)  
[http://gnuradio.org/doc/doxygen/page\_packet\_data.html](http://gnuradio.org/doc/doxygen/page_packet_data.html)

–  
View this message in context:  
[http://gnuradio.4.n7.nabble.com/tx-ofdm-tp48430p48432.html](http://gnuradio.4.n7.nabble.com/tx-ofdm-tp48430p48432.html)  
Sent from the GnuRadio mailing list archive at [Nabble.com](http://Nabble.com).

---

<div class="post-metadata">

**Author:** ![xianda](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/x/b38774/32.png) [@xianda](https://www.ruby-forum.com/u/xianda)\
**Post date:** [May 22, 2014, 10:35pm UTC](https://www.ruby-forum.com/t/tx-ofdm/241305/3 "2014-05-22T22:35:19Z")

</div>

On 05/22/2014 10:12 PM, eontool wrote:

> IIRC, the tx and rx files are just a very general implementation of the OFDM  
> model.
> 
> Here’s my understanding:
> 
> - Packet length refers to the data necessary to produce n symbols (48 data  
> carriers, 2 symbols = 96).

Er, no. This is the number of bytes per packet. It’s 96 because we add 4  
bytes for CRC, and then the packet number is a round value.

At 100 bytes per packet, the payload is 800 bits. With BPSK, that would  
be 17 OFDM symbols (plus 1 OFDM symbol for header, and 2 for preamble).

You can set whatever here, but remember that the stock equalizers don’t  
do a good job on long packets. Also, the length can vary per packet.

> - The number of total carriers in the systems equals the FFT length.  
> In this case, 48 data carriers and 4 pilots, 52 total and the rest are set  
> to 0.

This is correct (compare 802.11a standard).

M

---

<div class="post-metadata">

**Author:** ![xianda](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/x/b38774/32.png) [@xianda](https://www.ruby-forum.com/u/xianda)\
**Post date:** [May 23, 2014, 2:47am UTC](https://www.ruby-forum.com/t/tx-ofdm/241305/4 "2014-05-23T02:47:23Z")

</div>

Hi:  
Thank you so much.  
1.But from “chunks to symbols” I see you use the bpsk and qpsk  
both.Right?What is the relationship between 800 bits and 17  
symbols?Namely,how to calculate the 17 symbols?  
17\*64=1088.Can you explain?  
2.I have looked at your ppt about the ofdm.You say now have two  
version ofdm.Can you give me some links to them?Or some advices?Thank  
you.  
Best regards

---

<div class="post-metadata">

**Author:** ![xianda](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/x/b38774/32.png) [@xianda](https://www.ruby-forum.com/u/xianda)\
**Post date:** [May 23, 2014, 10:42am UTC](https://www.ruby-forum.com/t/tx-ofdm/241305/5 "2014-05-23T10:42:32Z")

</div>

On 05/23/2014 02:29 AM, xianda wrote:

> Hi:  
> Thank you so much.  
> 1.But from “chunks to symbols” I see you use the bpsk and qpsk  
> both.Right?What is the relationship between 800 bits and 17 symbols?Namely,how to  
> calculate the 17 symbols?  
> 17\*64=1088.Can you explain?

1 OFDM symbol @ BPSK == 48 bits in this configuration.  
ceil(800/48) == 17.

> ```
> 2.I have looked at your ppt about the ofdm.You say now have two version 
> 
> ```

ofdm.Can you give me some links to them?Or some advices?Thank you.

They’re both in the tree. If you start working off of rx\_ofdm an tx\_ofdm  
you’re already using the new stuff; no need to worry about this.

M

---

<div class="post-metadata">

**Author:** ![xianda](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/x/b38774/32.png) [@xianda](https://www.ruby-forum.com/u/xianda)\
**Post date:** [May 23, 2014, 11:35am UTC](https://www.ruby-forum.com/t/tx-ofdm/241305/6 "2014-05-23T11:35:42Z")

</div>

Hi Martin:  
Thank you for your reply.  
But,  
1.I see the virual Source(Stream ID:Payload Bits)-\>Chunks  
to Symbols(Symbol Table(-0.707…))(modulate:qpsk)?When I input 800 bits  
to the Packet Header Generator,then chunks to symbols.How many symbols  
generate in this way?When I input 800 bits to the Repack Bits,then  
chunks to symbols.How many symbols generate in this way?Thank you very  
much.  
2.I also see another ofdm in the old version of  
gnuradio.And the module structure is attached.And the connect code in  
python:  
self.connect((self,0), self.chan\_filt) #  
filter the input channel  
self.connect((self,0), self.ofdm\_sync) # into  
the synchronization alg.  
self.connect((self.ofdm\_sync,0), self.nco, (self.sigmix,1)) # use  
sync freq. offset output to derotate input signal  
self.connect((self,0), (self.sigmix,0)) #  
signal to be derotated  
self.connect(self.sigmix, (self.sampler,0)) #  
sample off timing signal detected in sync alg  
self.connect((self.ofdm\_sync,1), (self.sampler,1)) #  
timing signal to sample at

```
  self.connect((self.sampler,0), self.fft_demod) # send 

```

derotated sampled signal to FFT  
self.connect((self.sampler,1), (self.ofdm\_null,0)) # send  
timing signal to decoder  
self.connect(self.fft\_demod, (self.ofdm\_null,1)) # send  
freq-domain samples to decoder

```
  self.connect(self.fft_demod, (self.ofdm_frame_acq,0)) # find 

```

frame start and equalize signal  
self.connect((self.sampler,1), (self.ofdm\_frame\_acq,1)) # send  
timing signal to signal frame start  
self.connect((self.ofdm\_frame\_acq,0), (self,0)) #  
finished with fine/coarse freq correction,  
self.connect((self.ofdm\_frame\_acq,1), (self,1)) #  
frame and symbol timing, and equalization  
And someone tell me the new version of gnuradio is just expand to the  
old version.Can you tell me how much parts adjust?And the main code of  
gnuradio is in gnuradio/gr-digital/examples/ofdm?And whether other code  
needed?Where are they?  
3.And i use two usrps to run the tx\_ofdm.grc and  
rx\_ofdm.grc.The adjust code I also attached. But in the transmit,so many  
U U U display.Why?And in the receive part,I also encouter problem.Can  
you help me explain it?  
Thank you very much.I see the ofdm part many days.And the  
3 questions I encounter.Thank you.Sorry for my poor English if you can’t  
understand.Thank you in advance.Thank you for your patience.  
Best regards

---

<div class="post-metadata">

**Author:** ![xianda](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/x/b38774/32.png) [@xianda](https://www.ruby-forum.com/u/xianda)\
**Post date:** [May 23, 2014, 12:09pm UTC](https://www.ruby-forum.com/t/tx-ofdm/241305/7 "2014-05-23T12:09:02Z")

</div>

On 05/23/2014 11:33 AM, xianda wrote:

> Hi Martin:  
> Thank you for your reply.  
> But,  
> 1.I see the virual Source(Stream ID:Payload Bits)-\>Chunks  
> to Symbols(Symbol Table(-0.707…))(modulate:qpsk)?When I input 800 bits  
> to the Packet Header Generator,then chunks to symbols.How many symbols  
> generate in this way?When I input 800 bits to the Repack Bits,then  
> chunks to symbols.How many symbols generate in this way?Thank you very much.

I’m pretty sure I’ve answered all of these questions already.

> ```
> 2.I also see another ofdm in the old version of
> 
> ```
> 
> gnuradio.And the module structure is attached.And the connect code in  
> python:

Just ignore that. The new stuff is a complete rewrite.

> ```
> 3.And i use two usrps to run the tx_ofdm.grc and
> 
> ```
> 
> rx\_ofdm.grc.The adjust code I also attached. But in the transmit,so many  
> U U U display.Why?And in the receive part,I also encouter problem.Can  
> you help me explain it?

Your computer is too slow.

M
