Tagged: gnu radio

Video Tutorial: Installing GNU-Radio on Windows 10

Over on YouTube user Petr Horký has uploaded a helpful tutorial video showing how to install GNU Radio on Windows 10. Petr goes through the steps from installing Python, pip and other dependencies like numpy and pyqt, to installing GNU Radio itself and then ensuring that the system PATH is set correctly.

GNU Radio is a block based programming language for building digital signal processing applications (e.g. demodulators/decoders). It is very useful for experimenting with more advanced SDR concepts, and there are also many RTL-SDR compatible applications built with GNU Radio as well. GNU Radio is typically run on Linux, but can also run on Windows now too, although perhaps not every program will be compatible.

How to install GNU Radio Companion on Windows 10 (pip, environment variables)

Receiving GOES Weather Satellite Images with GNURadio and XRITDecoder in Windows

Thank you to ON7NDR as well as CM2ESP for submitting and figuring out a way to get GOES 16 decoding working with RTL-SDR using the free XRITDecoder, Xrit2Pic software and GNU Radio for Windows. 

ON7NDR's story is that he wanted to be able to receive GOES 16, but not being familiar with Linux he wanted a Windows based solution. He writes that the credit to finding the solution goes to CM2ESP who has written up a tutorial (pdf) explaining how to set everything up in Windows. ON7NDR has also written a separate complimentary tutorial (docx) that explains some steps in CM2ESPs tutorial a little further and provides a few tips on choosing correct the correct version of GNU Radio. He's also provided a screenshot showing what the correct config file looks like for an RTL-SDR dongle.

We note that for Windows there is also USA-Satcom's XRITDecoder, however this is closed source software which costs $100 USD.

GOES Full Disk Image of the Earth
GOES Full Disk Image of the Earth

Demonstrating Two Channel Coherent Spatial Filtering In a GNU Radio Simulation

Over on YouTube VE6EY has uploaded a video that demonstrates spatial filtering (aka beamforming) working in a GNU Radio simulation. This is a technique that can be used with a 2-channel coherent SDR with to nullify local interference. One SDR is connected to an antenna for receiving the distant signal, and the second is connected to a noise probe that is designed to receive only the local noise source.

The demonstration is not performed with real SDRs, but with prerecorded signals, although it still shows the effectiveness of the technique. In the video VE6EY shows switch mode and powerline noise being nulled out from some AM music, and explains through a demo why phase coherence is required.

V36EY gives further information and a link to download the demo over on his blog post.

SDR Spatial Filtering Demo

The GNU Radio Signals Challenge is now Live

GNU Radio have today released their latest 'Signal Challenge'. This is an online competition that contains three digital signal processing related problems. They write:

At 1222 EST on 21 Feb 2018, we posted a new signals challenge! There are *three* different challenges hidden in this signal capture, and the solution to each is a text message. One is on the easier side, and the two others are more advanced. If you believe you have found a solution, DM the answer to @gnuradio on Twitter or e-mail [email protected]!

The first THREE people to solve each of the three challenges will be declared winners. There will be nine winners in total. One person can only win one challenge; if correct solutions are submitted for multiple challenges, the first will count as the win.

The winners will receive honor and glory, plus some awesome GNU Radio stickers!

Good luck, and Happy Hacking!

https://drive.google.com/file/d/1-bAdy_egdyb6xPA8rrvf32WgnDTSI29P/view?usp=sharing

More information and any updates can be found on their Twitter @gnuradio. Good luck to anyone participating!

GNURadioCon17 CyberSpectrum Special Meetup Now Live

Live right now is CyberSpectrum #22, currently being held at the GNU Radio Convention in San Diego. Cyberspectrum is an often monthly meetup where SDR enthusiasts come from around the world to share their work. The video will be available offline once the stream is over too. But if watched live you can use the #cyberspectrum hashtag on Twitter, or join the #cyberspectrum on Freenode IRC to discuss the presentations live.

Cyberspectrum Special: GNU Radio (San Diego)

Speakers include:

• The Phil Karn (@ka9q

Low-cost general coverage/HAM receiver for Raspberry Pi & FUNcube dongle, or other cheap SDR.

• Clayton Smith (@argilo

By day, Clayton is a security researcher at ecommerce company Shopify, and by night a GNU Radio enthusiast and amateur radio operator (VE3IRR). He’s worked on projects such as gr-dsd (digital voice), gr-qam (digital television), gr-elster (utility metering), gr-rds (radio data) and sdr-examples. Tonight he’ll tell you about his recent work on HD Radio. 

• Josh Blum (@pothosware

Interesting features in Pothos framework, how we pull in GNU Radio project, and proposed additions to the GNU Radio project. 

• Alexander Chemeris (@chemeris

The first public demo of XTRX – a tiny high-performance miniPCIe SDR for the real world. Up to 120MSPS for simultaneous 2×2 MIMO receive/transmit. 

Removing that Center Frequency DC Spike in Gnuradio the Easy Way

Recently RTL-SDR.com reader ghostop14 wrote in to us and wanted to share his GNU Radio block and tutorial that shows how to get rid of the DC spike in GNU Radio. The DC spike is the annoying spike in the middle of the spectrum that appears no matter where you tune and shows up with almost all SDRs, such as the HackRF used by ghostop14. Software programs like SDRsharp and HDSDR have algorithms in place to filter and remove the DC spike, but until now there was no block that existed for GNU Radio.

If you’re looking for the quick solution, the CorrectIQ GNU Radio block by ghostop14 is available at https://github.com/ghostop14/gr-correctiq.git. But if you want an interesting read on how ghostop14 figured out how to create the block, then he’s done a nice writeup which is available here (pdf). Some excerpts:

It’s your first time with gnuradio and you love your hackrf. You’ve played with receiver software like SDRSharp and audio piping to decode your favorite signal of choice, and now you’re ready to dig deeper and learn more about SDR. Everyone’s talked about gnuradio, so you install it and fire up your first flowgraph. You drop in an osmocom source block and set the device to hackrf, set your sample rate, frequency, and gain then connect it to a frequency sink and hit the button to generate your flowgraph. The ease with which you just built a receiver and the excitement about the possibilities is overwhelming… you can’t wait to hit play.

Then it happens. Right in the middle of your first flowgraph is this huge signal spike that you know is not the signal you want to receive, and as you change the frequency it follows you. What?!? So your first thought is you did something wrong. After all you’re new to gnuradio and you’re sure you’re making a newbie mistake. First you make sure there really isn’t a signal there. You go back to SDRSharp and there’s no spike. Then you swap out your hackrf for your airspy and rtl-sdr dongle, feed that into gnuradio, and there’s still no spike. What’s going on? Why is my favorite SDR that I want to use doing this? What you’ve stumbled on is an artifact of the way SDR radios do IQ sampling. Your first attempts at searching on the problem reveal that it’s called a DC spike and it’s going to appear in the raw IQ data and there’s nothing you can do to stop it. So you go back to your favorite search engine because you can’t be the first person to want to get rid of it and you find that folks say that you have 3 options: 1.) ignore it (yeah not happening. It’s huge and right in the middle of my spectrum!) 2.) Offset tune away from it on your center frequency (which means every flowgraph I make or download I’m going to have to custom change to actually get a clean center frequency signal to make them work. There has to be a better way!), or 3.) filter it out.

(cntd…)

I finally had a few hours to look into the problem further and spent the time to search and understand what was happening, and the math behind fixing it. Then researched how others were doing the same thing in their code. Turns out the solution is simple. Since the data represents an alternating RF signal, over time the signal average in a clean signal should be zero (I know I’m oversimplifying it). When there’s the IQ DC spike, that average isn’t zero. So the solution is to calculate a weighted average over ongoing samples and simply subtract it from each future sample. It doesn’t affect the overall quality of the filtered signal, but as long as the spike is on the center frequency, this approach very efficiently gets rid of it. And that was what I was hoping to accomplish.

The CorrectIQ block which gets rid of the DC spike in GNU Radio.
The CorrectIQ block which gets rid of the DC spike in GNU Radio.

Hak5 at Shmoocon 2017: Shock Collar Radio Roulette, GNU Radio, Sniffing IR (Terrahertz) Signals and More!

Over on YouTube the popular Hak5 channel has uploaded a video with several SDR related topics mentioned during Shmoocon 2017 conference.

One fun event talked about in the video was the Shmoocon wireless village SDR contest by Russell Handorf which involved wireless dog shock collars. These are collars usually placed on dogs, that emit a mild electric shock when a button on a wireless remote is pressed. This can help train the dog into better behaviors. Contestants were able to first make recordings of the wireless signals made by the shock collars. Then each contestant strapped a wireless shock collar to their leg and the goal was then to reverse engineer and understand the protocol as quickly as possible, then use that knowledge and a HackRF to shock the other contestants.

Another part of the video discuss GNU Radio reverse engineering with representatives from bastille.net who are wireless IoT security researchers. The video then goes on to interview Micheal Ossmann (creator if the HackRF) who talks a bit about his work in building an infrared (IR) software defined radio. Micheal explains how infrared is essentially just radio at terrahertz frequencies and that many SDR concepts can be applied by using a photodiode sensor. He mentions that there are several IR systems used these days, such as the common remote control, toys, and high bandwidth wireless IR headphones used in car entertainment systems and conferences. The hardware Micheal has created is called “Gladiolus” and is still in development.

Shmoocon 2017: Sniffing IR Signals and More! – Hak5 2120

Analyzing HF Over the Horizon Radar in GNU Radio

Over the Horizon radar is typically used at HF frequencies and is used to detect targets from hundreds to thousands of kilometers away from the radar station. On HF they are very common and can be easily heard as continuous or bursty buzzing sounds.

Over on his blog Daniel Estevez writes how he was inspired by Balint Seebers GRCon16 talk to perform his own investigations into HF OTH radar. Daniel first analyzed a recorded IQ signal of a presumed Russian radar in Audacity, and noticed that it consisted of 15 kHz wide pulses repeated at 50 Hz intervals. He then used GNU Radio and the Quadrature Demod block to FM demodulate the pulse and see how the frequency changes over time. From this he was able to determine the original transmitted radar pulse characteristics

Next he performs pulse compression, which is essentially a cross correlation of the received pulse and transmitted pulse which was determined from the characteristics found earlier. The signal being received at Daniels location is distorted, because it will arrive from multiple paths, since the signal will bounce of multiple layers of the ionosphere. With this pulse compression technique Daniel is able to determine the time of flight for the different multi-path components of the received pulse. By graphing all the results over time he was able to obtain this image illustrating relative propagation distance over time.

Check out Daniels post for the full details and his code.

Ionosphere Propagation Graph
Ionosphere Propagation Graph