Spurious when running srsRAN-srsenb using Limesdr mini

Hi everybody,

I have been testing the latest version of srsRAN (22.04.1)/srsenb using limesdr-mini (CS-LIME-05). I noticed that for prb=50 the LTE spectrum looks OK. See photos below. But, I noticed a small emission of spurious for prb=75, and significant spurious for prb=100. That’s right? Has anyone also gotten this bad result for prb=100? Below are also the settings I used in the srsenb configuration file. I´m looking foward for some reply to this. Best regards, Sindi.

#dl_earfcn = 3350
dl_earfcn = 3100
#dl_earfcn = 9310
#dl_earfcn = 9510
#tx_gain = 90
tx_gain = 68
rx_gain = 40

#device_name = auto
device_name = soapy
#device_name = bladeRF

For best performance in 2x2 MIMO and >= 15 MHz use the following device_args settings:

USRP B210: num_recv_frames=64,num_send_frames=64

And for 75 PRBs, also append “,master_clock_rate=15.36e6” to the device args

For best performance when BW<5 MHz (25 PRB), use the following device_args settings:

USRP B210: send_frame_size=512,recv_frame_size=512

#device_args = auto
#device_args = rxant=LNAH,txant=BAND1,master_clock_rate=15.36e6
#device_args = rxant=LNAH,txant=BAND1
device_args = rxant=LNAH,txant=BAND2
#device_args = rxant=LNAH,txant=BAND2,master_clock_rate=15.36e6
#device_args =
#time_adv_nsamples = auto
#time_adv_nsamples = 27
time_adv_nsamples = 70

We’ve not tested at those bandwidths and are currently focused on use with LimeSDR-USB, but I’d be interested to hear how the performance compares when using the fork of srsRAN with native LMS API integration (no SoapySDR in between). You can find details here:


Note that you will need to adjust the device_args in the provided example, to e.g. remove refclk if not using an external reference.

I’ve also moved this post to the LibreCellular category since it’s related to srsRAN and the project builds upon this, hence could be useful to others.

Hi Andrew,

First thank you very much for your reply and the information about librecellular. Bellow are the results for prb = 100 using native LMS API (figure 1) and soapy (figure 2). As you can see, there is still a little bit of spurious but much less than using soapy. I used tx_gain = 84 instead of 66. With tx_gain = 66 it is not possible to observe these spurious.
With native LMS API I noticed that the bandwidth is calibrated as 15 MHz (figure 3), unlike soapy which calibrates as 23.04 MHz (figure 4). That’s why the spurious are more attenuated and the edges of the spectrum too. But I didn’t notice any performance loss in terms of throughput using a 4G samarthphone. I must submit the implemented prototype to a specialized laboratory of our regulatory body (Anatel) in Brazil to see if these spurious are in compliance with the 3GPP specifications. If you want, I can let you know the results. Best regards, Sindi.

Figure 1: With lime

Figure 2: With SoapySDR

Figure 3. Calibrated bandwidth with native LMS API

Figure 4. Calibrated bandwidth with soapy

1 Like

Hi Sindi,

Thanks for sharing details, that is useful to know.

It may be that you would need to back off the tx_gain and make up more gain via driver/PA, in order to get the spectral performance you require. I’m not sure what typical values should be used for best performance, but @Zack may know.

With a spectrum analyser and the 3GPP specs you should be able to measure ACLR yourself and determine whether you will meet the criteria for a given base station class.