SDR receiver

Some interesting links on digital signal processing and software defined radio:

Hardware

The FPGA configuration consists of eight identical digital down-converters (DDC). Their structure is shown in the following diagram:

SDR receiver

The I/Q data rate is configurable and four settings are available: 48, 96, 192 kSPS.

The tunable frequency range covers from 0 Hz to 490 MHz.

The projects/sdr_receiver directory contains two Tcl files: block_design.tcl, rx.tcl. The code in these files instantiates, configures and interconnects all the needed IP cores.

The projects/sdr_receiver/filters directory contains the source code of the R scripts used to calculate the coefficients of the FIR filters.

Software

The projects/sdr_receiver/server directory contains the source code of the TCP server (sdr-receiver.c) that receives control commands and transmits the I/Q data streams to the SDR programs.

The SDR SMEM repository contains the source code of the TCP client (tcp_smem.lpr), ExtIO plug-in (extio_smem.lpr) and other programs and plug-ins. The following diagram shows an example of how these programs and plug-ins can be used:

SDR SMEM

The tcp_smem program runs on a computer. It receives the I/Q data streams over the network and transfers them to other programs and plugins via shared memory.

Antenna

I use simple indoor antennas made from a single loop of non-coaxial wire. Their approximate scheme is shown in the following diagrams:

Antenna

Getting started

Running CW Skimmer Server and Reverse Beacon Network Aggregator

Building from source

The installation of the development machine is described at this link.

The structure of the source code and of the development chain is described at this link.

Setting up the Vitis and Vivado environment:

source /opt/Xilinx/Vitis/2023.1/settings64.sh

Cloning the source code repository:

git clone https://github.com/pavel-demin/red-pitaya-notes
cd red-pitaya-notes

Building sdr_receiver.bit:

make NAME=sdr_receiver bit

Building SD card image zip file:

source helpers/build-all.sh