# USRP2/Gnuradio - satellite application

**URL:** <https://www.ruby-forum.com/t/usrp2-gnuradio-satellite-application/242155>\
**Category:** GNU Radio\
**Created:** [June 1, 2015, 6:17am UTC](https://www.ruby-forum.com/t/usrp2-gnuradio-satellite-application/242155 "2015-06-01T06:17:36Z")\
**Posts on this page:** 7\
**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:** [June 1, 2015, 6:17am UTC](https://www.ruby-forum.com/t/usrp2-gnuradio-satellite-application/242155/1 "2015-06-01T06:17:36Z")

</div>

Good evening,

I will appreciate your help and guidance. since 3 weeks I’m trying to  
implement an application  
to derive the sky noise and attenuation from a beacon satellite signal.  
Using gnuardio and USRP2 (Ettus N210) I’m able to receive the and see  
the  
beacon signal at a defined frequency (FFT plot). What I need is write an  
application in python or C++ that allow to me to retrieve and plot the  
skynoise and attenuation values.  
The problem I have is when using the blocks in gnuradio how to retrieve  
the  
signal power so then I can use a math formulas to derive both  
attenuation  
and skynoise and then plot them again in new graph to show them?

I would appreciate any help from your side.

Thank you and best regards

_Abdeslam B._

---

<div class="post-metadata">

**Author:** ![Abdeslam\_B](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/97f17d/32.png) [@Abdeslam\_B](https://www.ruby-forum.com/u/Abdeslam_B)\
**Post date:** [June 1, 2015, 8:27am UTC](https://www.ruby-forum.com/t/usrp2-gnuradio-satellite-application/242155/2 "2015-06-01T08:27:52Z")

</div>

Hi Abdeslam,

I assume you already have definite formulas that define the estimator  
for these two numbers.  
Unless you can directly “click together” that estimator in GRC, you will  
most likely have to implement it.  
In many cases, doing this in Python is rather easy (especially if you  
come from a python or matlab background),  
so I’d recommend reading at least the first 3 chapters of  
[https://gnuradio.org/redmine/projects/gnuradio/wiki/Guided\_Tutorials](https://gnuradio.org/redmine/projects/gnuradio/wiki/Guided_Tutorials)

Best regards,  
Marcus

---

<div class="post-metadata">

**Author:** ![Abdeslam\_B](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/97f17d/32.png) [@Abdeslam\_B](https://www.ruby-forum.com/u/Abdeslam_B)\
**Post date:** [June 1, 2015, 8:30am UTC](https://www.ruby-forum.com/t/usrp2-gnuradio-satellite-application/242155/3 "2015-06-01T08:30:47Z")

</div>

Hi,

> The problem I have is when using the blocks in gnuradio how to retrieve the  
> signal power

You mean you want the signal power as a dBm value ?

Just won’t happen … Too many things in the chain, you’d have to  
calibrate it for a specific freq / board / gain / temp / phase of the  
moon / …

Cheers,

Sylvain

---

<div class="post-metadata">

**Author:** ![Abdeslam\_B](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/97f17d/32.png) [@Abdeslam\_B](https://www.ruby-forum.com/u/Abdeslam_B)\
**Post date:** [June 1, 2015, 10:28pm UTC](https://www.ruby-forum.com/t/usrp2-gnuradio-satellite-application/242155/4 "2015-06-01T22:28:33Z")

</div>

Hi,

@Marcus : Yes I have already the formulas ad now trying to implement in  
C++. The problem I have is I need the output from the “USRP source” as  
number for instaance and then apply formuas and again show it in time  
axis.  
I will go back again to the s first chapter maybe I miss something.  
@Sylvain : Yes that’s true from the “USRP source” I need the value as a  
dBm  
or dB. The calibration part will do it after getting the value from the  
source then I will derive the attenuation from noise within formuals. I  
already did the link budget need just now to values from the source.

Thank you and best regards  
Abdeslam

_Abdeslam B._

---

<div class="post-metadata">

**Author:** ![Abdeslam\_B](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/97f17d/32.png) [@Abdeslam\_B](https://www.ruby-forum.com/u/Abdeslam_B)\
**Post date:** [June 2, 2015, 11:23am UTC](https://www.ruby-forum.com/t/usrp2-gnuradio-satellite-application/242155/5 "2015-06-02T11:23:48Z")

</div>

Dear Abs,

you’ve asked this question on discuss-gnuradio and already got two  
answers.  
In case you’ve missed those, and to avoid that people tell you what you  
already know:

Sylvain wrote that, due to a large number of factors contributing to  
what you see as digital amplitude, you will need to calibrate yourself,  
using exactly the system you want to use to measure power:

> You mean you want the signal power as a dBm value ?
> 
> Just won’t happen … Too many things in the chain, you’d have to  
> calibrate it for a specific freq / board / gain / temp / phase of the  
> moon / …

And I explained that if you have a mathematical representation of how  
your estimator works, you might be able to write a custom estimator  
block for both of your values of interest:

> I assume you already have definite formulas that define the estimator  
> for these two numbers.  
> Unless you can directly “click together” that estimator in GRC, you  
> will most likely have to implement it.  
> In many cases, doing this in Python is rather easy (especially if you  
> come from a python or matlab background),  
> so I’d recommend reading at least the first 3 chapters of  
> [https://gnuradio.org/redmine/projects/gnuradio/wiki/Guided\_Tutorials](https://gnuradio.org/redmine/projects/gnuradio/wiki/Guided_Tutorials)

If these answers didn’t help you out, I think it would be wise to  
explain what these answers are lacking, instead of just re-posting the  
same question.

Best regards,  
Marcus

---

<div class="post-metadata">

**Author:** ![Abdeslam\_B](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/97f17d/32.png) [@Abdeslam\_B](https://www.ruby-forum.com/u/Abdeslam_B)\
**Post date:** [June 2, 2015, 3:40pm UTC](https://www.ruby-forum.com/t/usrp2-gnuradio-satellite-application/242155/6 "2015-06-02T15:40:16Z")

</div>

Dear Marcus,

I thought too differents forums I posted the same question at the same  
time.  
OK let’s continue here this is my reply :

_Hi,_

_@Marcus : Yes I have already the formulas ad now trying to implement in  
C++. The problem I have is I need the output from the “USRP source” as  
number for instaance and then apply formuas and again show it in time  
axis.  
I will go back again to the s first chapter maybe I miss something._  
_@Sylvain : Yes that’s true from the “USRP source” I need the value as a  
dBm or dB. The calibration part will do it after getting the value from  
the  
source then I will derive the attenuation from noise within formuals. I  
already did the link budget need just now to values from the source._

_Thank you and best regardsAbdeslam_

_Abdeslam B._

---

<div class="post-metadata">

**Author:** ![Abdeslam\_B](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/97f17d/32.png) [@Abdeslam\_B](https://www.ruby-forum.com/u/Abdeslam_B)\
**Post date:** [June 2, 2015, 8:00pm UTC](https://www.ruby-forum.com/t/usrp2-gnuradio-satellite-application/242155/7 "2015-06-02T20:00:55Z")

</div>

Hello,

I need to communicate with the USRP and receive data like these :

2015-06-02 02:32:29.246055 center\_freq 1000775000.0 freq 1000718750.0  
power\_db 5.59449106566 noise\_floor\_db -121.702764103  
2015-06-02 02:32:29.246138 center\_freq 1000775000.0 freq 1000725000.0  
power\_db 5.80020853614 noise\_floor\_db -121.702764103  
2015-06-02 02:32:29.246236 center\_freq 1000775000.0 freq 1000731250.0  
power\_db 6.41043187666 noise\_floor\_db -121.702764103  
2015-06-02 02:32:29.246343 center\_freq 1000775000.0 freq 1000737500.0  
power\_db 5.72799835886 noise\_floor\_db -121.702764103  
2015-06-02 02:32:29.246443 center\_freq 1000775000.0 freq 1000743750.0  
power\_db 8.61943426588 noise\_floor\_db

Regards  
Abdeslam

_Abdeslam B._

On 1 June 2015 at 22:36, Abdeslam B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)
