Hi Marcus,

My mistake, there was a bug in my code. Sorry for any inconvenience.

However I was expecting the latency to be more gaussian-like distributed,
but in my new tests I can see an obvious trend so far (see upper figure
<https://drive.google.com/open?id=1YaSrTT96aDd1kmzRjdyfvlzmQbwNvas_>).
I tried also by executing rx_samples_to_file example with minor
modifications, and also tried to increase the sampling rate, but I saw the
same trend in latency. This is not a problem for our application though.

The gain step detection algorithm is as simple as this (example output
<https://drive.google.com/open?id=1FlElDUMhPwGozVLP6RWLIbClLhRkS9dM>):

for each received radio block:

max(  ( abs(s[n]) - abs(s[n-D]) )^2  );  (with D=2 in this case)



With respect to CIC, I'm using 32 kS/s as our signal is only 1 KHz in
bandwidth. Would you recommend to increase fs anyway? What could we expect
to be the main issues (unwanted effects) if we don't?

Regards,
Brais.

El lun., 4 feb. 2019 a las 20:24, Marcus Müller (<marcus.muel...@ettus.com>)
escribió:

> Hi Brais,
>
> On Mon, 2019-02-04 at 18:34 +0100, Brais Ares via USRP-users wrote:
> > Hello,
> >
> > I'm trying to implement an AGC software in our RF application. The
> > setup is the following:
> > B200mini
> > master clock rate: 16 MSPS
> > fs = 32 KSPS
>
> Are you sure? That's a decimation of 500, 125 of which you're doing
> with a CIC. 32 kS/s is really an extremely low sampling rate for SDR
> applications, and there's little reason not to do the resampling with
> "nicer" software filters on your host PC; even the slowest Linux
> computer should have plenty CPU power to do that.
>
> A higher sampling rate would also allow a much more fine-grained
> examination of these delays. I'd ask you to examine this option.
>
> Generally, in the interest of reproducability: how are you doing that
> gain step detection, en detail?
>
> Best regards,
> Marcus
>
> > Receive samples in blocks of 32k (1 second).
> > I made a tiny program, where I change rx_gain every 1 seconds (just
> > after rx_streamer->recv() returns) adding or substracting 30 dB.
> > To find out when a change in rx_gain actually affects the received
> > samples I implemented a simple detection algorithm.
> >
> > Ignoring the non-deterministic latency, at least I would expect the
> > time between changes to be 1 seconds as well (µ = 1 seconds, with
> > some non-zero variance), the same periodicity they were invoked
> > with.
> >
> > However, this change takes on average 1.016 seconds (see figure).
> > This means for each set_rx_gain call the radio is taking longer and
> > longer to apply the change (see figure). Example:
> >
> > t = 1 s -> Recv previous block and change gain
> > t = 2 s -> Recv previous  block and change gain
> > t = 1.016 -> Change in gain detected in previous block (OK, latency
> > to change gain is around ~0.016 ms)16 µs would indeed be a pretty *gp
> > t = 3 s -> Recv previous nd change gain
> > t = 2.032 s -> Change in gain detected in previous block  (I would
> > expect ~2.016)
> > t = 4 s -> Recv previous block and change gain
> > t = 3.048 s -> Change in gain detected in previous block (I would
> > expect ~3.016)
> > (...)
> > t = 60 s -> Recv previous block and change gain
> > t = 59.96 s -> Change in gain detected in previous block (After 60th
> > call to rx_gain, latency has increased to almost 1 second!)
> >
> > Is there any rational reason why this is happening?
> > (I've tried longer periods, up to 10 seconds, with the same result).
> >
> > Regards,
> > Brais.
> >
> >
> > _______________________________________________
> > USRP-users mailing list
> > USRP-users@lists.ettus.com
> > http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
>
>
_______________________________________________
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com

Reply via email to