Skip to main content

Posts

Featured

Using the UHD Python API to control USRPs: Spectrum analyzer example

I recently discovered the UHD Python API for controlling USRPs. It is really nice, and the performance isn't too shabby, when you use numpy for signal processing. You have nearly all of the UHD C API available on Python, and some additional high level calls, such as recv_num_samples.

We're currently in the process of implementing an open source software defined ionosonde using just the UHD Python API. Stay tuned.

Here's a simple example, which implements a spectrum analyzer. We've been using this to test that our system meets the frequency licensing requirements:


#!/usr/bin/env python3
import numpy as n
import uhd
import scipy.signal as ss
import time
import matplotlib.pyplot as plt
import h5py

def acquire_spectrum(freq=12.5e6,
                     sample_rate=25e6,
                     N=250000, 
                     N_windows=10000, 
                     subdev="A:A",
                     ofname="spec.h5"):

    usrp = uhd.usrp.MultiUSRP("recv_buff…

Latest posts

SIMONe Argentina: Exploring the MLT dynamics over southern Patagonia

SIMONe Peru: After 6 months of operations.

April 16th 2020 bolide in Peru

Incoherent scatter radar measurement techniques - Part 2

Incoherent scatter radar measurement techniques - Part 1

Statistics of incoherent scatter radar signals

Windy

Polar bear and dogsledding

Transmitting a simple sine wave in gnuradio using the USRP - and measuring it's power

Towards A 21st Century Understanding of Earth's Upper Atmosphere

Oblique ionograms between Sodankylä and Longyearbyen

USRP BasicTX and LFTX - what is the maximum transmit power?

Studying the polar cap ionosphere with HF radar

One more pass of the anti-satellite debris cloud

Indian anti-satellite debris measured with the EISCAT Tromsø Radar

Exploring an ice cave

Shoveling snow under the aurora