# Guard band

**URL:** <https://www.ruby-forum.com/t/guard-band/241289>\
**Category:** GNU Radio\
**Created:** [May 22, 2014, 11:30am UTC](https://www.ruby-forum.com/t/guard-band/241289 "2014-05-22T11:30:20Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![musicdenotation](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/ea666f/32.png) [@musicdenotation](https://www.ruby-forum.com/u/musicdenotation)\
**Post date:** [May 22, 2014, 11:30am UTC](https://www.ruby-forum.com/t/guard-band/241289/1 "2014-05-22T11:30:20Z")

</div>

In ofdm transmitter , I want to add 6 subcarriers as a guard band  
between  
symbols , so that each symbol is fft + cp + guard band … How to add  
this  
guard band ? is there a block which add zeros ?  
I think I can make guard band included in CP , I can make cp longer by 6  
then multiplying symbols by a window (multipling fft and actual cp by  
ones  
& multipling last 6 subcarriers by zeros ) . Is there a window or time  
domain filter in GNU Radio ?  
Thanks.

---

<div class="post-metadata">

**Author:** ![Sara\_ChSSrif](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/7ba0ec/32.png) [@Sara\_ChSSrif](https://www.ruby-forum.com/u/Sara_ChSSrif)\
**Post date:** [May 22, 2014, 1:04pm UTC](https://www.ruby-forum.com/t/guard-band/241289/2 "2014-05-22T13:04:35Z")

</div>

-----BEGIN PGP SIGNED MESSAGE-----  
Hash: SHA1

Hi Sara,

it seems like there is some confusion between time and frequency domain.  
In an OFDM system you have subcarriers next to each other in the  
frequency domain. You will most likely add new subcarriers by putting  
non-zero values on your vector in the frequency domain. In order to  
realize a guard band you just put zeros on this vector in the  
frequency domain.  
The cyclic prefix, CP, is a guard time. It is a time domain concept.  
It provides protection between each OFDM symbol.

I hope this cleared things up a little

happy hacking  
Johannes

On 22.05.2014 11:29, Sara Chérif wrote:

> In ofdm transmitter , I want to add 6 subcarriers as a guard band  
> between symbols , so that each symbol is fft + cp + guard band ..  
> How to add this guard band ? is there a block which add zeros ? I  
> think I can make guard band included in CP , I can make cp longer  
> by 6 then multiplying symbols by a window (multipling fft and  
> actual cp by ones & multipling last 6 subcarriers by zeros ) . Is  
> there a window or time domain filter in GNU Radio ? Thanks.  
> -----BEGIN PGP SIGNATURE-----  
> Version: GnuPG v1  
> Comment: Using GnuPG with Thunderbird - [http://www.enigmail.net/](http://www.enigmail.net/)

iQIcBAEBAgAGBQJTfdjTAAoJEO7fmkDsqywM0SMP/0x4nHy1MBHi82EvA/UXH1it  
rGkNUUuXLUbdpY843KVcOeoR91mwjMCHywGiyD+3Zk3XI0gSqKrxpxXYTJxf1/ON  
G6J2ATe8fMk206mczemk5LgLTx8WnML4LLSECvf1oA5UkYAkdUoxy2e7CvhkNQBR  
FGShvMkxFi4BFWYNKopMICkHxeUD5uOpi/Y59uQ+h/xT8FAZoLh8ZnYMKh4OhJtN  
IDiS0QCYKpZEp9Y2M7h/YbFKynwcXAxV5fouKbzWzlysGULEuxa57R+Nt7s5+Ylh  
pY6kwHx0RZaoEBEB1Ak4jx97Qfawx/xVb4xbpgYH6ipqKwn8EXstS+0lh1A70rak  
AyYEAoqRizKO5AfSv3yXXs3GaA7PVi6NjsZ7kqSTimOOZ+O1FMIyQ7eKQGOChw4c  
2H2UlHCp3XH/LfVLfRUXVh9PumcyajWGwpZnd4O51Sk9UfboPNWC7PH1j6BY+cfX  
9l3JEu9oY9Wy381z53nAgIOBdG/xMj6zzHXoPSUNNzsQnwZdxDQ5GLhmpRfX5WCe  
gk2axSMSCvUedmKjvvqtvL7aaZC5qHkNgvjyxVbPHLPfzIoPDqO7AEv/7noqrSM8  
wYg3ikAFvvVXLxXuezeNkt/Cy0YMZ2mqijZmWtlY5CSUW0gDmLqwfHvkWQH3A1aM  
ArQzOreAmtzPr0ICl/Le  
=RCub  
-----END PGP SIGNATURE-----

---

<div class="post-metadata">

**Author:** ![Sara\_ChSSrif](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/7ba0ec/32.png) [@Sara\_ChSSrif](https://www.ruby-forum.com/u/Sara_ChSSrif)\
**Post date:** [May 22, 2014, 4:05pm UTC](https://www.ruby-forum.com/t/guard-band/241289/3 "2014-05-22T16:05:57Z")

</div>

On 05/22/2014 11:29 AM, Sara C. wrote:

> In ofdm transmitter , I want to add 6 subcarriers as a guard band  
> between symbols , so that each symbol is fft + cp + guard band .. How to  
> add this guard band ? is there a block which add zeros ?  
> I think I can make guard band included in CP , I can make cp longer by 6  
> then multiplying symbols by a window (multipling fft and actual cp by  
> ones & multipling last 6 subcarriers by zeros ) . Is there a window or  
> time domain filter in GNU Radio ?

See [http://gnuradio.org/doc/doxygen/page\_ofdm.html](http://gnuradio.org/doc/doxygen/page_ofdm.html), you can simply use  
those subcarriers you want. The default settings (see e.g. the OFDM  
examples) all have empty sub-carriers for this reason.

M

---

<div class="post-metadata">

**Author:** ![Sara\_ChSSrif](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/7ba0ec/32.png) [@Sara\_ChSSrif](https://www.ruby-forum.com/u/Sara_ChSSrif)\
**Post date:** [June 22, 2014, 5:20pm UTC](https://www.ruby-forum.com/t/guard-band/241289/4 "2014-06-22T17:20:41Z")

</div>

Thanks Martin & Johannes .

I send & receive real time voice packets coming from soft phone using 2  
USRPs over GSM RF channel:  
If there is a call established between the 2 end users but they are not  
speaking , then no new packets to send ?  
If there is no new packets coming , I want to send zeros instead of  
repeating the sent packets , How Can I do this ?

Thanks in advance.

2014-05-22 17:03 GMT+03:00 Martin B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

---

<div class="post-metadata">

**Author:** ![Sara\_ChSSrif](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/7ba0ec/32.png) [@Sara\_ChSSrif](https://www.ruby-forum.com/u/Sara_ChSSrif)\
**Post date:** [June 22, 2014, 6:21pm UTC](https://www.ruby-forum.com/t/guard-band/241289/5 "2014-06-22T18:21:14Z")

</div>

Sara,

> If there is a call established between the 2 end users but they are  
> not speaking , then no new packets to send ?

This is not a question for the GNU Radio mailing list, since this is a  
characteristic of the soft phone, obviously.

> If there is no new packets coming , I want to send zeros instead of  
> repeating the sent packets , How Can I do this ?

How and why would you repeat packets? There’s no mechanism for that that  
I would know of.

Ok, so to make this as short as possible, here’s my deduction on your  
question:

- you don’t know the “real world” rate at which packets are generated by  
your soft phone. If you knew, you wouldn’t be asking, because then you  
would just be padding them to match the over-the-air bit rate [0].

- knowing when to wait for a packet or when to zero-pad would require  
knowing how much voice duration was carried in one packet AND how much  
real-world time has passed. Knowing that requires knowing what kind of  
information these packets carry. My first mail regarding how to deal  
with RTP packets applies.

- you want to transfer packeted data, but you want to construct a  
continuously streaming transmitter; while this is possible[1], it’s  
certainly not really easy to implement cleanly in GNU Radio and not very  
intuitive, either. I’d recommend going for bursted transmission using  
the start-of-burst tag functionality.

Greetings,  
Marcus

[0] … which would be, information-theoretically, a bad thing to do, if  
the amount of padding was significant: compressing speech (ie. removing  
redundancy) and transmitting that at a higher bitrate just to add zeros  
to match the original bit rate is really just reducing your energy per  
bit. You’ll probably get a better transmission if you were to reduce  
your transmission symbol rate to match your soundcard’s sample rate and  
transmit uncompressed audio, and you would be avoiding all the hassle  
you’re experiencing now.  
[1] This is usually done when re-synching is expensive. A typical  
example for these kind of transceivers are wireless optical networks,  
where the medium is often occupied by a rectangle signal, unless there  
is a packet on there, which has a preamble. Using GNU Radio, detection  
of preambled packets has gotten easier, compare the modern gr-digital  
examples, and clock recovery is, if needed, possible, so there usually  
is no need to continuously occupy your carrier with zeros.
