9Custom Source and Sink Blocks: Adding Your Own Hardware Interface
While GNU Radio provides most of the processing features needed for becoming familiar with discrete-time digital signal processing and efficiently analyzing signals, it sometimes happens that some specific functions are missing especially when using field programmable gate arrays (FPGA) [Estévez, 2024] and graphics processing units (GPU) [Azarian, 2024]. These can be at three different layers of integration:
- Tuning the flowgraph characteristics without accessing the in-phase/quadrature (IQ) stream. This approach was already discussed in Chapter 3 when launching a thread using the
Python Snippetwith the server running as aPython Module. - Accessing the IQ dataflow within the flowgraph for some basic signal processing that is not designed to be reused in another flowgraph: this feature is provided by the
Python Block. - Providing a new processing block distributed as source code to be compiled or used by others: this feature is provided with out-of-tree (OOT) blocks.
We have mentioned earlier in this document the highlights of software defined radio (SDR), including stability (algorithms do not drift and are reproducible from one place to another), flexibility (dynamic tuning of the processing parameters, either through remote control or automatically when observing noise as the Kalman filter does), and reconfigurability (one hardware, multiple applications). In addition to these features, current networking infrastructures ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access