Project update 2 of 2
simpleFE can be used as a software defined radio (SDR) baseband system. It is equipped with an I+Q ADC and an I+Q DAC that runs at up to 7.5 MHz. You can build quite a few applications on top of simpleFE. Let’s start with the "hello world" of communication applications: BPSK modulation.
Suppose our message is a random sequence of bits,
first step before sending this signal to air involves mapping those to
symbols. BPSK modulation maps the bits to 1, -1, 1, -1, -1,
-1, 1, -1, etc. Then the waveform is generated using the root
raised cosine pulse shaping.
explains the details of a typical pulse shaping design. The symbol
R is set to 100 kHz.
Now we will use simpleFE to make this waveform real! But first, download and install the software, load the firmware, and boot simpleFE.
SimpleFE is now ready to interface with GNURadio. Install GNURadio,
then build and install
gr-simplefe, which is included in the source
tree. After that, run:
You will see that the simpleFE sink and source are now available.
Next, create a flow graph like this:
Set the Sample Rate to 1 MHz. This will mean that, for each symbol
period, there will be 10 samples and thus the Samples/Symbol should
set to 10. For BPSK, the number of constellation points is set to two,
and there is no difference whether or not we use differential
encoding. The raised cosine filter roll-off factor is set to
0.35. This means the bandwidth of the signal will be
50 k * 1.35.
And that’s it! You’ve turned simpleFE into a BPSK modulator.
GNURadio is both powerful and easy to use. Once you are familiar with the various processing blocks, you will be dragging, dropping, and connecting them in no time, which is quite handy for certain types of research work.
But you can also write your own code, especially if you want to:
To get started, refer to the sample code in
first, you will first need to compile libdsp:
cd libdsp mkdir build cd build cmake .. make
This will provide a block convolution engine using overlap-and-add. Next, go to
examples/bpsk and type:
You should see a waveform generated from the TX_I port:
We designed a simple Sallen-Key 500 kHz low pass filter. You can easily home brew this circuit yourself (or just use a breadboard, as it’s rather low frequency and the layout is not very important).
With this filter, the waveform now looks like:
Which is quite pretty!