Explaining USRP ED results

We assume:

  • Receiver noise figure doesn't change between measurement campaigns
  • ED detection threshold is directly related to SNR ratio

Noise power depends on:

  • Channel bandwidth (higher bandwidth, higher noise power assuming white noise)
  • Number of averaged samples. (more samples, lower noise power)

From these assumptions:

$P_d \propto SNR = \frac{P_s}{P_n}$

$\frac{SNR}{SNR'} = \frac{P_n'}{P_n}$

USRP settings


In [3]:
BW1 = 1e6
Ns1 = 25e3

BW2 = 2e6
Ns2 = 25e3

BW3 = 10e6
Ns3 =100e3

Relative noise powers, for different bandwidths of the antialiasing filter.

Note: USRP sets antialiasing filter to bandwidth that is the same as sampling frequency. But since we discard the imaginary part of the samples, digital bandwidth is only half of that.


In [19]:
Pn1 = 10.*log10(BW1)
print "Pn1 =", Pn1, "dB"


Pn1 = 60.0 dB

In [34]:
Pn2 = 10.*log10(BW2)
print "Pn2 = Pn1 +", Pn2 - Pn1, "dB"


Pn2 = Pn1 + 3.01029995664 dB

In [35]:
Pn3 = 10.*log10(BW3)
print "Pn3 = Pn1 +", Pn3 - Pn1, "dB"


Pn3 = Pn1 + 10.0 dB

Reduction in noise power due to averaging.


In [36]:
Pm1 = -10.*log10(Ns1)
print "Pm1 =", Pm1, "dB"


Pm1 = -43.9794000867 dB

In [37]:
Pm2 = -10.*log10(Ns2)
print "Pm2 = Pm1 +", Pm2 - Pm1, "dB"


Pm2 = Pm1 + 0.0 dB

In [38]:
Pm3 = -10.*log10(Ns3)
print "Pm2 = Pm1 +", Pm3 - Pm1, "dB"


Pm2 = Pm1 + -6.02059991328 dB

Combine both effects and compare with experiment results:


In [46]:
P1 = Pn1 + Pm1
print "P1 =", P1, "dB"

Pex1 = -116.1
print "Pex1 =", Pex1, "dB"


P1 = 16.0205999133 dB
Pex1 = -116.1 dB

In [47]:
P2 = Pn2 + Pm2
print "P2 = P1 + ", P2 - P1, "dB"

Pex2 = -113.5
print "Pex2 = Pex1 +", Pex2 - Pex1, "dB"


P2 = P1 +  3.01029995664 dB
Pex2 = Pex1 + 2.6 dB

In [48]:
P3 = Pn3 + Pm3
print "P3 = P1 + ", P3 - P1, "dB"

Pex3 = -111.6
print "Pex3 = Pex1 +", Pex3 - Pex1, "dB"


P3 = P1 +  3.97940008672 dB
Pex3 = Pex1 + 4.5 dB

Comparing with analog ED


In [49]:
BWa = 1.7e6

In [50]:
Pna = 10.*log10(BWa)

In [62]:
Pn1 = 10.*log10(BW1)
print "Pn1 = Pna + ", Pn1 - Pna, "dB"

Pexa1 = -120.5
print "Pex1 = Pexa1 +", Pex1 - Pexa1, "dB"


Pn1 = Pna +  -2.30448921378 dB
Pex1 = Pexa1 + 4.4 dB

In [63]:
Pn2 = 10.*log10(BW2)
print "Pn2 = Pna + ", Pn2 - Pna, "dB"

Pexa2 = -119.5
print "Pex2 = Pexa2 +", Pex2 - Pexa2, "dB"


Pn2 = Pna +  0.705810742857 dB
Pex2 = Pexa2 + 6.0 dB

In [64]:
Pn3 = 10.*log10(BW3)
print "Pn3 = Pna + ", Pn3 - Pna, "dB"

Pexa3 = -119.1
print "Pex3 = Pexa3 +", Pex3 - Pexa3, "dB"


Pn3 = Pna +  7.69551078622 dB
Pex3 = Pexa3 + 7.5 dB

In [ ]: