Hi Doug,
the rationale behind that is that these tags correspond to
the stream metadata coming from the USRP, which tell the
host when the tuning *operation* has taken place. Now,
you're right, it's a problem to think you're tuned
although your LO still hasn't settled, but since tunes
could also be digital-path only, using the "earliest" time
seems correct.
By the way, you might also want to try a different
approach, based on timed commands: you can set a time for
things like tune requests, thus making sure that the
tuning happens at the exact point in time you want it to
(and not influenced by the latency and load of your
general purpose PC). You can then simply "take" the right
samples without caring about tags at all, because you know
when these should occur (i.e. which numbers these should
have).
Greetings,
Marcus
PS: try turning off the DC offset correction, if you're on
the N210, for fast-tuning applications. You'll have a
bigger DC offset, but less "swinging" after each tune.
PS2: I don't know whether your overall frequency range
allows this, but as long as you tune within your
USRP/daughterboards physical bandwidth, you might just
tune digitally and avoid LO retuning:
http://files.ettus.com/manual/page_general.html#general_tuning_process
On 03/31/2015 09:54 PM,
Anderson, Douglas J. wrote:
Hi all,
I've been working on a flowgraph that controls
sweeping a USRP by retuning and then dumping samples
until catching the sample tagged with rx_freq of the
correct value.
I was confused as to why I was still getting
mountains of garbage samples (several hundred
thousand at 10MS/s) after catching the rx_freq tag,
until today I put
"assert(usrp->get_sensor("lo_locked").to_bool())"
after the block that identifies the correct rx_freq
tag, and it popped immediately.
I'm wondering about the prudence of saying a
sample is "at a certain frequency" before the LO has
had a chance to settle.
I also realize that gr-uhd folks are trying to
make the message interface more robust, and the
rx_freq tag is an awesome idea, but what I really
want to know is what is the first USABLE sample at
my requested freq. If I still have to carry around a
usrp_source pointer so that I can check the LO
state, then the tags output by the usrp_source lose
a lot of appeal.
Any chance of making rx_freq tag "the first
usable sample", or is there a good reason for the
way it works that I haven't considered?
-Doug
_______________________________________________
Discuss-gnuradio mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio