From: Nick Foster <address@hidden>
To: Gunther Ferdinand <address@hidden>
Sent: Sun, April 10, 2011 4:33:52 PM
Subject: Re: [Discuss-gnuradio] FSK and GFSK signal decoding
On Sun, 2011-04-10 at 03:49 -0700, Gunther Ferdinand wrote:
> we have an USRP1 with a WBX card and we would like to get some data
> received on 433MHz from a homemade module. It sends a data packet each
> 5 seconds. The packet is constructed like this:
> <PREAMBLE><SYNC><HEADER><DATA LENGTH><DATA><CRC>, where DATA
> represents some information collected on that module. We
> work on Windows not Linux, it much more user friendly. We don't really
> know how to start all this therefore we would appriciate any help. We
> installed UHD, GNURADIO and other needed things, but I couldn't find
> any help file with some explained examples. What could be easyer, to
> make some application (in C++, VisualBasic, etc.), to use Python or
> other solutions. Anyway when we will get data into the PC we need to
> do some math operations and display it.
>From a development perspective, you're probably best off in Linux, but
Windows and Cygwin with C++ and Python will work as well. You will
probably encounter significant difficulty trying to get Visual Basic to
work in this application.
> So, the biggest problem is that we don't really understand how we
> could get that data. We have that module that sends some packets. If
set the USRP1 through UHD to 433MHz (what other parameters should
> we set), when it will receive some RF signals it will starts to pass
> it to the application (run with python or made with other development
> softwares). The USRP will send some data (byte 1; byte 2; byte
> 3; ..... ) as many as it receives. From that data we will get out our
> DATA and check CRC, HEADER, etc.
The USRP is not going to give you bytes of user data, it's going to give
you (almost) raw samples as received from the air after downconversion
from 433MHz. As a result, it is up to you to perform the following tasks
to get your data back:
* Coarse frequency estimation
* Preamble detection
* Fine frequency synchronization
* Symbol synchronization
* Symbol slicing
Gnuradio provides blocks to help you with most of these tasks, but
you'll have to understand their basic operation
in order to use them. I
recommend a good digital communications textbook for the theory and
discussion of the above operations: I found Sklar's "Digital
Communications" to be pretty helpful.
For an example of a simple GMSK receiver, you can check out the AIS
receiver I wrote at https://www.cgran.org/wiki/AIS
. It's a pretty
simple receiver example which gives an example of how Python and C++
interact in Gnuradio, and how the various components of a complete
receiver are written in Gnuradio-land. There are other applications
doing similar things in the Gnuradio examples. gr-pager is one that
comes to mind.
> A help file would be very helpfull. Till now we have worked with
> many development softwares and with each one there were some kind of
> help files for beginners like us, to understand the basics.
> problem is that we don't really undestand how UHD works, how could we
> use it with a VisualBasic environment for example. There's any such
> kind of help file or some web pages?
The API documentation is the first place to look, along with the
examples we include in UHD. For your application, though, it sounds like
you'll want to use UHD with Gnuradio, so the Gnuradio examples are your
best bet for seeing how implementations are done in the "real world".
> Thank you very much.
> Gunther Ferdinand.
> Discuss-gnuradio mailing list