[Discuss-gnuradio] More Options for Working with Sample Data Sets

2017-09-28 Thread Ghost Op
I've been updating a number of modules following up on the GRCon
working sessions around working with large and sample data sets.

Yesterday I pushed another update to the new gr-sql module on github
that incorporates HackRF and rtlsdr 8-bit streams to either convert
with the command-line or directly play in a gnuradio flowgraph by
transparently handling the conversion (for those working with either
of those two SDR's).

While gr-sql is meant to help extract portions of signals out of a
very large sample stream, the other half of the issue for testing
could be to combine individual signal isolated sample recordings into
a more complex "real-world" signal for analysis, say for determining
if an algorithm could distinguish individual signals in an overlapping
environment by combining two prerecorded signals in a manner that you
control.

To that end, I updated the gr-filerepeater module with more control
over playback.  You can now add a delay before starting playback of a
signal (would output zero's until the delay is hit), as well as have
it transition back to outputting zero's after playback without
stopping the flowgraph.  This way you could say "for signal two, start
injecting after 3 seconds, and when it finishes just output zeros as
if the signal was gone but allow the rest of the flowgraph to
continue".

___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] New GR-SQL Module

2017-09-24 Thread Ghost Op
Hi everyone,

Back from GRCon2017 (one of the best conferences I've been to) and had
some time for some more module development.  During the conference in
one of the working sessions there was a suggestion for a module that
would allow you to query really large IQ files with a SQL-like syntax.

Made sense, 500 GB file but you only want a minute or two of the
sample rather than having to go through the whole thing.  So I put one
together and posted up on github
(https://github.com/ghostop14/gr-sql).

Basic to start.  Has a command-line tool called grsql (the readme has
some examples) to extract portions to a new file, and a flowgraph
block to play excerpt directly.

Basic syntax:

Get the total time length of a file:
grsql "select TIMELENGTH FROM '/tmp/myrecording_593MHz_6.2MSPS.raw'
ASDATATYPE complex SAMPLERATE 6.2M"

Extracting data from 45.2 seconds to 80 seconds into the save to a new file:
grsql "SELECT * FROM '/tmp/myrecording_593MHz_6.2MSPS.raw' ASDATATYPE
complex SAMPLERATE 6.2M STARTTIME 45.2 ENDTIME 80.0 SAVEAS
'/tmp/extracted.raw'"

In the flowgraph block, saveas doesn't apply but you can play specific
time ranges back directly from the flowgraph without needing to
extract from the file (if you're looking for a signal in the
recording).

If you're working on some blind analysis, if you extract a sample to a
new file, you may want to use the gr-filerepeater block up on my
github too.  It'll let you put delays between replays so that any
blocks looking for signal continuity won't get too "confused" by going
directly from the end of a sample immediately to the first sample
creating a weird signal discontinuity as it "jumps".  gr-filerepeater
will let it go "quiet" for a specified period of time so the blocks
can settle before trying to decode / demod again.

Anyway it's alpha/beta but it works.  If you run into any bugs or are
working with some big files and want any particular features, drop me
a note.  If all looks pretty solid and there's interest I can set up a
pull to integrate it into pybombs for an easier install.

Mike

___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] GNURadio/Module builds and std=C++11

2017-06-20 Thread Ghost Op
Hi everyone,

I've run into this on every Ubuntu 16.04 box I've installed gnuradio
and OOT modules on and Google doesn't seem to have a nice clean answer
(the search answer is always add a compile flag) so I figured I'd ask
the group.

When I build modules (gr-osmosdr in particular with libfreesrp support
I run into this) on a fresh Ubuntu 16.04.2 LTS install, I run into a
warning like this: "warning: non-static data member initializers only
available with -std=c++11 or -std=gnu++11".  Depending on the code it
may produce errors on some lines preventing compilation.

I know what causes it, the compiler is defaulting to something earlier
than the  c++11 standard (like C++99) with the Ubuntu repo gcc version
(5.4) installed, so some of the syntax in the code is causing the
warning.  I can modify the CMake and add this to it "set
(CMAKE_CXX_STANDARD 11)" and it builds after that, but my guess is
that this builds on everyone else's Ubuntu without these modifications
or the setting would be standard in the CMake files.  What I'd really
like to do is tell the compiler to default to -std=C++11 even if it's
not explicitly provided as a compile flag, but again if everyone were
running into it I think it would have been fixed another way.

If I do the same build on a standard debian build with gcc 6.3 it
builds clean so it's definitely a default standard issue for compilers
on Ubuntu 16.04.

Does anyone have any insight/suggestions?

Thanks!

___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] Major OpenCL Updates

2017-05-06 Thread Ghost Op
Hi everyone.  A number of you have asked me to keep you informed of
any major updates on the OpenCL gr-clenabled project and the past
couple of weeks have been pretty active.  There's now a version up in
the repo with a significant number of updates and all blocks have been
validated (at least in their basic modes).

So here's the major updates:

Validation flowgraphs - Almost all test flowgraphs have been posted in
the examples directory.  You can run the comparisons on your own
hardware for comparison.  This is important on older cards that don't
support double precision (you can check with the included clview
command-line tool).

Signal Source Block  - A discrepancy in the output was due to an
OpenCL issue.  Turns out single/float precision wasn't producing
accurate enough numbers.  This block now uses double precision if the
hardware supports it (most new hardware will) for an even cleaner
signal than the native block (no secondary nodes).

Quad Demod - Same single/double trig discrepancy due to precision
which was corrected.

Filters - A lot of work this week has been spent on filter validation
(hence the few emails about TD vs. FD from yesterday)
 - Both FIR and FFT implementations are now implemented and
producing correct output
 - A generic tap-based block was added for more flexibility
 - A test-clfilter command-line tool was added to test performance
given a number of taps across OpenCL FIR, GNURadio FIR, OpenCL FFT,
and GNURadio FFT so you can pick the best performing filter given your
implementation.

Costas Loop - A Costas Loop was added, however the performance on a
GPU kernel is horrible.  Because of the sequential calculations, it
couldn't be SIMD parallel processed so it was written as an OpenCL
task-based kernel.  This means it just runs single-threaded on a
single core, which is why the performance is so bad.  However if
anyone has an OpenCL-capable FPGA card like an Altera I'd love to see
the result of running the included test-clenabled timing tool and see
how the Costas Loop performs.  I just don't have access to one.

Performance - Code was added to detect if the hardware supports Fused
Multiply/Add functionality for added kernel performance.  If it's
available it's used.

OpenCL Setup Instructions - For those that may not have OpenCL set up,
I added some installation guides in the setup_help directory for
Ubuntu and Debian with step-by-steps on getting it up and running.
I've taken both of those processes on several systems and been up and
running pretty quickly.  I also pulled some of the important points
into the main page's README, since in my experience that's generally
all I look through too.

Study - Based on the filter updates, the filter section in the study
in the docs directory was completely rewritten.  The report was noted
as updated.

I think that's the biggest updates for now.  As always let me know if
anyone runs into any issues.

___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] What value is in in[noutput_items+1]?

2017-05-01 Thread Ghost Op
I was looking back over the Quadrature Demod code and I happened to
notice something unusual.  The call to the Volk multiply conjugate
routine appears to use in[noutput_items+1] on the last calculation.

Here's the call:
volk_32fc_x2_multiply_conjugate_32fc(&tmp[0], &in[1], &in[0], noutput_items);

It obviously works correctly, and the buffer's bigger than
noutput_items so it doesn't seem to cause a memory access issue.

So my question is: when volk uses the memory at in[noutput_items+1]
what value is it using?  Is it using a zeroed byte, something from a
history buffer, or whatever happened to be there?

Would anyone have any insight?

Thanks!

___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] How to tell Flowgraph to Stop in Work()?

2017-04-28 Thread Ghost Op
I'm working on a module in C++ and when a condition happens I want my
work function to signal to the flowgraph to stop.

I saw some references for python to self._top_block but does anyone
have a suggestion on how to do it in C++?

Thanks!

___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] PFB Clock Recovery Block (#1)

2017-04-28 Thread Ghost Op
Thanks Marucs for pointing it out.  Hadn't noticed.  Will do.


Hey Ghost,

um, could you please not take the list into CC when replying to github
issue discussions? It's pretty confusing.

Best regards,

Marcus

___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] CorrectIQ 2.0

2017-04-28 Thread Ghost Op
Hi everyone, been a busy week on OOT modules.  While working on some
other signal decodes I made a number of enhancements in the CorrectIQ
OOT module.  First, doing some testing I was seeing inconsistencies in
the plotted waveforms due to inheriting from "block" instead of
sync_block so that was fixed across all the modules.

There's also 2 new blocks in the group.  One that does an auto-sense
on the offset at the given frequency and gain then switches to to a
straight DC offset mode to prevent any sense of "filtering" being
applied to the signal due to the averaging.  (Thanks to Ron Economos
for turning me on to this technique!)  If you adjust frequency or gain
upstream the block will automatically recalibrate and you can
configure the recalibration time.  You can let it calibrate without
the antenna connected and settle then connect it or just do it with
the live input.

The other block is a manual offset block.  It's just a glorified
"complex Add Const" but it makes it a bit straightforward in the
flowgraph to follow by calling out the offsets in the GUI.

I also added a new example GRC with all of the blocks that can be used
to do comparisons.

Enjoy!

___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] OpenCL/gr-clenabled Update

2017-04-27 Thread Ghost Op
Hi everyone, I just pushed a number of updates/fixes to github for the
OpenCL gr-clenabled project.  While working on a different OOT block I
found some variations between blocks using gr::block and
gr::sync_block so now the OpenCL blocks are using the correct base
types.

There was also a compile issue I noticed testing on Ubuntu where the
compiler wasn't picking up the C++11 standard as the default causing
compilation to fail (worked fine on my debian so I hadn't run into
it).  So now the makefiles make sure the compiler knows what version
to use.

I'm also going to put up some NVIDIA/OpenCL notes for a few different
platforms to help folks get up and running faster.  The biggest gotcha
seems to be needing to install the OpenCL dev kit to get cl.hpp to
show up and then either linking or copying it into /usr/include/CL/.
Hopefully the notes will save folks some headaches and hours googling.

Also don't forget that gr-clenabled comes with 2 command-line tools.
'test-clenabled' can be used to time the blocks on your hardware and
you can vary the sample sizes if you want to test out some sizes I
didn't include in the study.  There's also a test-clkernel tool if you
want to write your own kernels.  It'll do the same performance
measurements so you can see how your code performs.

Thanks!

___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] OpenCL FPGA Recommendation?

2017-04-25 Thread Ghost Op
Hi everyone!  I'm working on expanding the OpenCL modules for GNURadio
and I want to test them with some FPGA's that support OpenCL.  There's
a few from Xilinx and Altera it looks like, but the ones I've seen are
a bit pricey.

Does anyone know of an OpenCL-capable FPGA card for under $1,000 for
some testing?

___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] ATSC Decode Issues

2017-04-19 Thread Ghost Op
Hi all,

I'm having an issue getting ATSC to decode and I was hoping someone
who has done it successfully may have some pointers.

Here's the scenario Basic SDR antenna connected to an LNA4ALL
feeding into an Airspy sampling at 10 MSPS using the attached
flowgraph.  I get a TS file and don't get any atsc_fs_checker error
warnings while capturing, however the TS file doesn't decode with vlc,
ffmpeg, or tsreport.  All messages indicate it can't find the codec in
the stream which would explain why it can't decode the packets.

I've double-checked the local channel frequency (on HDTV ch 34 with a
center freq of 593 MHz).  The raw signal looks good as does the
waterfall for an ATSC signal.  I've tried capturing with and without
the initial low-pass filter in the attached flowgraph, I've tried
using a HackRF at 6.2 MSPS instead of the Airspy at 10 MSPS, tried a
true HDTV antenna (although it's 75 Ohm), and horizontal and vertical
polarizations on the standard SDR antenna to get the cleanest
frequency plot with the best visual SNR.

I get there can be some bad packets in any data stream, but for the
life of me I can't figure out if there's no errors coming from the
decoder and it's decoding successfullly (i.e. producing data with no
warnings) why the stream isn't readable.

Anyone have any suggestions?

Thanks!


hdtv_airspy_receiveV2.2.grc
Description: Binary data
___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio