So I was trying to capture continuous IQ data from my USRP N200, and
this
needs to be done for about a week, but because the amount of data is
ginormous, that’s doesn’t seem feasible at all. Instead, what I’m now
thinking of doing is processing the data in gnuradio companion in real
time
and just extracting certain parameters from the processed data, for
instance, I would like to detect if there’s a signal present or not, at
what time was the signal detected, what’s the maximum amplitude of the
signal, how long did the signal last etc, and just store those pieces of
information in a file.
Are there any pre-existing blocks that I may use for this purpose? If
not,
can someone please guide me as to how to accomplish this task?
I can’t tell you how you should do this. I can tell you that you will
need
to get comfortable with tags and probably messages to achieve these
things
you want. If you haven’t already, check out the gnuradio tutorial on
programming topics to get started. They do a pretty good job explaining
it
there. http://gnuradio.org/redmine/projects/gnuradio/wiki/Guided_Tutorial_Programming_Topics
For example, suppose you only wanted to store a certain stream of data
after a preamble was detected. You could use a ‘correlate and sync -
tag’
block to adds tags at the start of your data to the stream and then feed
this into a ‘tagged file sink’ block which will only put the portion
after
the tag into the file. You want a lot more functionality then this, but
this could get you going in the right direction.
You can also use probes to bring out the data asynchronously from the
flow
which you can then process in Python. For example, you could probe at a
10
Hz rate, then have your Python script log those values to a file, or
trigger
some other event. I have an example here where it probes the signal
level
every second and logs it with GPS data:
Lou
Ali R. wrote
signal, how long did the signal last etc, and just store those pieces of
Best,
Ali
I saw from your other thread that you were channelizing and decimating,
and I
assume you are logging this to disk for extended periods. I’m doing a
similar thing here:
Although I’m not using a channelizer, only because there is no band plan
for
what I was recording. Anyway, the blocking squelch may also be useful
for
you with a file sink.
With the probing, you should be able to use that to dynamically name the
files, amongst other things.
Lou
Ali R. wrote
Hey Lou,
That’s a very interesting approach, I’ll look into your example as well.
Thank you very much!