discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] GNU Radio release 3.7.0 available for download


From: LD Zhang
Subject: Re: [Discuss-gnuradio] GNU Radio release 3.7.0 available for download
Date: Wed, 3 Jul 2013 12:57:57 -0700

Is it true that the blks2 is gotten rid of in 3.7? I have gotten used to some 
code that uses blks2 and some documentation. Will those online 
documentation/code examples also be updated with version 3.7?

We are getting a new USRP, should I stick with 3.6 or go to 3.7?

Thanks,

LD

-----Original Message-----
From: address@hidden [mailto:address@hidden On Behalf Of Johnathan Corgan
Sent: Wednesday, July 03, 2013 12:03 PM
To: address@hidden
Subject: [Discuss-gnuradio] GNU Radio release 3.7.0 available for download

GNU Radio release 3.7.0 is available for download:

http://gnuradio.org/releases/gnuradio/gnuradio-3.7.0.tar.gz

MD5 sum:

c2856ee14b415a64abf5dc9af0f5374c  gnuradio-3.7.0.tar.gz

This is a major new release of GNU Radio, culminating a year and a half of 
side-by-side development with the new features added to the GNU Radio
3.6 API. With the significant restructuring that was occurring as part of the 
3.7 development, at times this seemed like rebuilding a race car engine while 
still driving it.

All the appropriate bug fixes applied in the 3.6.0 - 3.6.5.1 series of releases 
were incorporated into 3.7.0 and are not re-listed here.
Otherwise, this release has all the features added to 3.6 and the new ones 
listed below that could only be done in the 3.7 API.

The GNU Radio SDR framework/runtime gained many new capabilities in 3.6, and 
our project focus now during the 3.7 development series will be to use these 
new capabilities to improve GNU Radio DSP block libraries and example 
applications.

The detailed release notes follow.


Contributors:

Ben Reynwar <address@hidden>
Gerald Baier <address@hidden> Jaroslav Škarvada <address@hidden> Jeff Long 
<address@hidden> Johnathan Corgan <address@hidden> Josh Blum <address@hidden> 
Mark Plett <address@hidden> Martin Braun <address@hidden> Michael Dickens 
<address@hidden> Nicholas Corgan <address@hidden> Nick Foster <address@hidden> 
Nick McCarthy <address@hidden> Philip Balister <address@hidden> Sreeraj 
Rajendran <address@hidden> Tim Newman <address@hidden> Tim O'Shea 
<address@hidden> Tom Rondeau <address@hidden> Volker Schroer <address@hidden>


Code Structure Changes (Johnathan Corgan, Tom Rondeau)

The GNU Radio source code was restructured and flattened. All top-level 
components now use the same structure for consistency and ease of use.
All blocks were moved out of gnuradio-core, which has been renamed to 
gnuradio-runtime. The blocks are now in their appropriate top-level components 
and reimplemented with the new 3.7 API style. The new API makes use of C++ 
namespaces and the virtual private implementation class pattern to better hide 
GNU Radio internals from user code.

Details about this can be found here:

http://gnuradio.org/redmine/projects/gnuradio/wiki/Move_3-6_to_3-7

A Google doc showing all items that were moved from one place to another in the 
new style is here:

http://ow.ly/mDpey

Blocks not listed were already in their own components. Many blocks were 
removed. All columns marked with ‘-----’ means that column is not applicable to 
that block or class. Any column (except those marked as
Remove) that are blank means that we might be able to improve upon it, which 
normally indicates using VOLK or improving documentation.

A Google doc showing the new component and Doxygen categories for all 
components is here:

http://ow.ly/mDplO


Important new features:

ControlPort (Tom Rondeau, Tim O’Shea)

ControlPort is a new interface for standardizing remote procedure calls in GNU 
Radio:

* Remote control and visualization.
* Use of ControlPort to debug without requiring extra debug streams.
* Abstracted interface, but currently using ICE (www.zeroc.com).
* No additional CPU usage while no monitoring is occurring.
* Can connect multiple remotes to same GNU Radio application.
* Can also have single ControlPort app control multiple GR apps.

Each block creates interfaces to control data members, by defining ‘get’
and ‘set’ interface to query and update values of block variables.
Preference files control the state of ControlPort in section [ControlPort] of 
gnuradio-runtime.conf.

ControlPort comes with a generic utility to allow you to see all interfaces of 
a flowgraph:

* gr-ctrlport-monitor <ip address> -p <port>

Within a flowgraph, one can also use ControlPort probes to pass vectors of data 
to a ControlPort client, including complex IQ data. One useful probe calculates 
the power spectral density of a block output for remote display.

See the ControlPort page in the GNU Radio manual for more information:

http://gnuradio.org/doc/doxygen/page_ctrlport.html


Performance Measurement Tools

Performance Counters were first built into GNU Radio in 3.6.5, but could only 
be accessed locally. Now, all Performance Counters can be exported over 
ControlPort.

Performance Counters must be compiled into GNU Radio using 
-DENABLE_PERFORMANCE_COUNTERS=True. They can be toggled on/off at runtime using 
the [PerfCounters] section in gnuradio-runtime.conf. Use option ‘export’ to 
export Performance Counters over ControlPort.

We now include a new tool to visualize the Performance Counters over 
ControlPort. This is installed as gr-perf-monitorx and requires the Python 
modules Scipy, NetworkX, and Matplotlib. Nodes of the flowgraph are represented 
as blue squares. The size of the square is proportional to the amount of time 
spent in the work function (either thread time or monotonic (wall clock) time). 
The size and depth of the shade of red of the edges is proportional to how full 
the block’s output buffer is.


QTGUI Enhancements (Tom Rondeau, Nick Foster, Ben Reynwar)

The QTGUI widgets defined in gr-qtgui have had a major overhaul in 3.7.
All plots are now split out into individual components, including:

* Time plots (amplitude versus time)
* FFT plots (or PSD) (log magnitude versus frequency)
* Waterfall plots (or spectrograms) (time versus frequency with magnitude as 
the color intensity)
* Constellation plots (imaginary (quadrature) versus real (inphase))
* Time raster plots (time vs. time)

Each plot can accept multiple connections that will overlay the signals on 
them. Zooming and unzooming are the same using the left and right mouse 
buttons. The center mouse button will pull up a context menu to allow 
manipulations of all kinds of properties of the display, such as line and 
marker styles, the size of the FFT, averaging, line transparency, etc. 
Significant work has gone into improving the performance, including the use of 
VOLK and more intelligent ways of handling the display to reduce the 
computational load.

QT defined QT Style Sheets (QSS) that allow us to specify looks, colors, and 
other properties of a display. Support for the use of QSS has been added to 
gr-qtgui to make establishing your preferences easier.

gr-qtgui/examples contains a number of examples showing how to use each type of 
plot and the QSS definition and interface.


Uninstalled imports (Ben Reynwar)

The GNU Radio source tree was updated to allow us to directly import all GNU 
Radio components in-tree before install but using the same syntax.
This change greatly reduces problems and complexity of writing Python code for 
use in both normal installations and QA code. This change will also allow us to 
automatically build the Sphinx Python manual during make.


Updated gr_filter_design (Sreeraj Rajendran)

Overhauled the current gr_filter_design to add better visualization and 
interactive tools. Installed as part of the gr-filter component now, the 
gr_filter_design tool adds many new features for visualizing filters as well as 
support for IIR filter tap design. The new tool also includes a programmatic 
API that allows a user to launch the filter design tool inline in a program, 
design the new filter, and pass back an object containing the filter taps and 
parameters. Passing a callback function allows the designer to run in a 
separate thread and every time a new filter is designed, the callback function 
can be triggered to update a filter.

Examples of using the programmatic access to gr_filter_design can be found in 
gr-filter/examples/gr_filtdes_*.


Other New Components and Features

New blocks added:

* gr::analog::fast_noise_source - pre-generates a table of random samples from 
the selected PDF and randomly samples from them. This has somewhat less entropy 
than the normal noise_source block but is significantly faster.

* gr::analog::agc3_*: Performs an initial linear gain ramp to quickly converge 
on a signal during startup and then falls back to an iterative loop similar to 
agc2.

* The agc, agc2, and agc3 blocks have been made to use a unified interface that 
now includes a default maximum gain value (set to 2^16 so that it can scale up 
even the LSB of a USRP’s device).


New gr-fec component

This new top-level component mainly functions as a placeholder for new FEC 
block implementations.  Currently contains only a couple of purpose-built FEC 
blocks.


New gr-channels component (Tim O'Shea)

This new top-level component holds current and future channel model blocks.  
The standard AWGN channel_model has moved here. In addition, there are two new 
channel models:

* fading_model - Uses configurable max Doppler shift, Rician power factor, and 
lists of the delays (in samples) and magnitudes of a power delay profile.

* selective_fading model - Basic fading model that can have a number of 
sinusoids, max Doppler shift, and Rician power factor defined for it.


volk_modtool (Nick McCarthy)

This new tool allows the creation of out-of-tree VOLK libraries. These allow 
developers or organizations to develop a set of VOLK kernels for internal use 
apart from the main libvolk provided by GNU Radio.


GnuradioConfig.cmake (Tom Rondeau, Tim O’Shea)

New GnuradioConfig.cmake and GnuradioConfigVersion.cmake cmake files are 
installed into the system under $prefix/lib/cmake/gnuradio. These files can be 
used by any other project to easily test if any GNU Radio components are 
installed and the minimum API-compatible version required.

Set GR_REQUIRED_MODULES to any of the top-level components in GNU Radio in all 
caps. Then use find_package(Gnuradio) to search for them. The second optional 
argument is the API compatible version is was built against. For example, to 
test if gnuradio-runtime, gnuradio-blocks, and gnuradio-filter are installed, 
we would use:

set(GR_REQUIRED_MODULES RUNTIME BLOCKS FILTER) find_package(Gnuradio 3.7.0)


Additional Fixes (Ben Reynwar, Tom Rondeau, Josh Blum, Nicholas Corgan)

* Added symbol output stream from constellation_receiver so we can see the 
locked constellation as well as the output bits.

* Introduced a new pfb_arb_resampler kernel class that can be used by other 
blocks. We have used this to significantly simplify the 
pfb_arb_resampler_ccf/fff blocks.

* All PFB code has new QA and fixed a few minor bugs in the calculation of some 
of the filters.

* Added more QAM support with Gray coding.

* Reworked VOLK. All kernels are now in volk/kernels/volk, made all kernels 
consistent in use of num_points, and redid any kernels that used num_bytes.

* Removed assumptions that were Linux-only to continue to support native MSVC 
builds.


Obsoleted and/or removed functionality

The following components have been removed or redone:

* gr-shd (removed)
* gruel (removed; all functionality now in gnuradio-runtime)
* gr-howto-write-a-block (functionality replaced by gr_modtool)

For more removed items, see:

http://ow.ly/mDpey


Deprecated functionality

These are items that are currently part of GNU Radio, but are planned to be 
removed in the next API release (3.8).

* gr-noaa - will be reimplemented as a stand-alone, out-of-tree project and 
supported with PyBOMBS

* gr-pager - will be reimplemented as a stand-alone, out-of-tree project and 
supported with PyBOMBS


--
Johnathan Corgan
Corgan Labs - SDR Training and Development Services http://corganlabs.com





reply via email to

[Prev in Thread] Current Thread [Next in Thread]