On Wed, Jun 27, 2012 at 3:36 PM, Amr Youssef
[email protected] wrote:
Hi all , i have some questions :
In OFDM Modulator Block , in Mapper Sub-block , in path of :
./lib/digital_ofdm_mapper_bcv.cc
1- I saw the following comment inside the code : " Eventually, we will get
rid of the occupied_carriers concept. " , the question how you get rid of
the occupied carriers concept in the code and why ? . as i see the code
depends strongly on this concept .
That most likely referred to using some kind of a carrier map to
specify which carriers are used, which unused, and which are pilots.
The occupied_carriers is just a number that says all of these carriers
in the middle are used for data. Not very flexible.
2- Why the concept of occupied carriers is used and why filling only part
of FFT size not all of it ?
This is very common in OFDM. The side carriers are unused to allow for
roll-off in the channel filters and because OFDM’s sinc signals in
frequency have a slow rolloff in power in the adjacent channels.
Blocking off the edges makes sure the energy outside of the channel is
lower.
3-Inside the code , string carriers = “FE7F” . I have two questions here ,
the first is , when converting to bits : 1111111001111111 , why there is
two zeros at DC instead of one zero only ?
The second question is , you started with “FE7F” . Why didn’t you start
with “E7” and then pad F’s from both sides (looping) as you did later !?
The two zeros are used to make sure that there is nothing depending on
the center carriers. With just the middle one (and which one is the
middle one?), the DC offset was still too much. Also, with DC offset
correction filters, there’s a bit of a bandwidth to it. Cutting out
the center 2 was the only way to handle these problems.
The F’s are used to be more clear with what’s going on. Also, makes it
easier to change in the future.
4- Also , for the following segment of the code : diff =
(d_occupied_carriers - 4*carriers.length()) . Why you are multiplying by
four instead of eight when converting from Character Domain to Bit Domain ?
or you deal with them as HEX only ?
I really don’t remember.
4- How many OFDM Symbols exist in one packet ?
Depends on the how many bits can fit into a symbol and how long the
packet is.
5- What is the maximum packet size ?
I think it’s capped at 1500 bytes. But because we only do freq, phase,
and timing correction with the preamble, you’ll lose sync if your
packets are too long. We don’t have any tracking algorithms
implemented to keep track of changes there.
6- What is the difference between coming message and the packet . Are they
the same thing ? or Does one message contain more than one packet ?
Thanks in-advance
Amr ,
The message can contain more than 1 packet, yes.
Tom