- Dtype format can be scipy.int16, scipy.int32, scipy.float32, scipy.complex64 or whatever type you were using. Tofile format is? For complex arrays. Updated 2015-06.
- There are a few different unofficial GNU Radio binary installers that are maintained by the community: 1) Geof Nieboer's installer hosted at gcndevelopment.com. This is a binary installer for 64-bit Windows 7/8/10 that includes all dependencies for Windows, a custom python distro, commonly used SDR drivers, and several OOT blocks.
How quickly time flies. For the first six months of this year I was focused on finishing up at my job. Originally it was intended to be four months, but schedules tend to slip and schedules for large projects tend to slip a lot. Somewhere in there I put all my radio equipment in storage, as I had no real time to play.
The next two months were spent travelling roughly 17,500km across the country and back. Following that, I prepared for the transition from industry back to academia. I am now an MASc student at the University of Victoria, where I am studying SDR and other signal processing matters.
Last night I stayed up late working out a receiver for the WWV BCD time code. I have access to some good antennas an the University, so I recorded about 15 minutes of I/Q data from WWV. The basic approach is to demodulate the AM signal, filter out everything but the 100Hz subcarrier, and put this through a threshold block to create a digital signal as shown below:
Create a folder in the directory /offline called fpgaimages. This directory name is arbitrary, and is only used for reference within the following steps. Place the zip file containing the FPGA images into this directory, and decompress. Next, create the images/ folder in your UHD installation prefix. Realtime by Gnuradio. Use -n option can connect to a TCP source in Gnuradio for realtime simulation. The tcp source should be set in 'Server' mode. See tcp.grc as an example. Run gps-sdr-sim with -w option,. Cd into /mapserver, and run.
I am trying to install UHD and gnuradio on Windows. I can't find binary files for gnuradio, it looks like the link to their binary install is broken and the website.
I then tried with limited success to create a pulse-width discriminator in the GNURadio GUI. Finally I gave up and decimated the signal by a factor of 120 (48kHz down to 400Hz) before passing it through the threshold. I sent this data to a file for post-processing in Python, but there’s no reason you can’t use a message sink so that the Python program can receive and process the data online.
The approach in the Python program is to split the string of ones and zeros into a list where each item is some number of ones or some number of zeros. Then iterate through the list and divide the number of characters in each list item by 400 to get the time, creating a new list. Then iterate over this list with a simple state machine that searches for the reference marker R. After this it checks that the next eight symbols are either zero or one, and then looks for the timing mark P1. The next nine symbols are then either zero or one, and then a timing mark, and so on. Any error in the decoding process sends the state machine back to the initial state. This process creates a new list where each item only contains the bits in the time code. This list is sent to a simple display function that prints out the time.
With this basic implementation, I was able to correctly decode the time in 6 out of 14 possible minutes. The other 8 failed during the pulse-width discrimination stage due too too long or too short pulses. The discriminator has a fairly wide window that it will accept, so it could indicate that somewhere in the GNURadio processing stage some of the transitions are missed completely or extra transitions are introduced.
Here is some output from the program:
The errors indicate:
- Detection of P4 (the timing mark at 39 seconds) failed because it saw the pulse width as 0.1725s instead of 0.77s.
- Detection of the zero bit at 1 second failed because the value was zero for 0.7825s instead of (1 – 0.17 = 0.83s). The next two errors are basically the same.
- Detection of P3 (the timing mark at 29 seconds) failed because it saw the pulse width as 0.835s instead of 0.77s.
- Detection of the zero bit at 45 seconds failed because the value was zero for 2.7925 seconds.
- Detection of P1 (the timing mark at 9 seconds) failed because it saw the pulse width as 0.4725s instead of 0.77s. The last error is basically the same.
It is clear that there are some improvements to be made in the processing, but the time does get correctly decoded. Once you get some way up the learning curve, GNURadio becomes a great tool that allows you to do experiments like this quite quickly.
GNU Radio is a powerful Software Defined Radio (SDR) tool for Linux systems. However, if you are a daily Windows user and want to play with SDR, building it on Windows is a huge challenge, even in Linux. There are lot of dependencies that are specific for Linux and it is not an easy task to port to Windows. Here, you can find the binaries of GNU Radio for Windows.
The packages are built with all options enabled.
The documentation is not built. You can find it at the official page: GNU Radio Docs. The built package is the official release out of the box, without any modification.
These are the built modules:
- gr-audio (windows)
Other 3rd-party packages, modules and libraries are not provided.
No support is given. These are just builds of the official release for Windows. If you need support for the GNU Radio, please use the official mailing lists.
Gnuradio Windows Binary Editor
All the software is coded by other developers under GPL licenses and is distributed for free without any charge.
After 6 years from the previous major release 3.7, GNU Radio released the next major version: GNU Radio 3.8! There have been a lot of interesting changes. One of the most remarkable is the upgrade to Python 3 and Qt5. Both are really useful for scripting, GUI and plotting graphs in real time.
Gnuradio Windows Binary Converter
Traditionally, GNU Radio is distributed only for UNIX platforms as open source. Despite of this, it runs smoothly in Windows, although is not officially supported. There are a lot of reasons of recommending UNIX instead of Windows, but if you use Windows and want to use GNU Radio, you have to do it by yourself.
Gnu Radio Windows Binary Download
Luckily, the community of GNU Radio is amazing and some provided Windows binaries for GNU Radio 3.7.x series. I do not know what is planned, but I decided to upload a public release of the binaries of GNU Radio 3.8 for Windows.