BPSK Demodulator (i.e. Receiver) Award/Challenge

Dear Community,

We’ve been working with USRP and Gnu Radio for various tasks in our
Cubesat
project for some time now. Recently we thought of using the set-up
(Linux
Ubuntu, USRP (1) and Gnu Radio / GRC) for receiving, decoding and
recover
data from our ground based payload. We are not flying the USRP onboard
our
satellite but want to use it for the in-field test of the ground based
payload.
Through-out the project we’ve been searching for any BPSK receiver
(anything
like: an off-the-shelve radio, add-on modules for existing radios, DIY
radio
kit or perhaps USRP and Gnu Radio). Nothing.
Yes, I have searched this forum for previous posts (I found 89 threads
on
BPSK), none of them have a solution/design.
I seriously doubt that making a regular BPSK receiver that goes
all-the-way,
i.e. recovers the transmitted data has ever been done. We haven’t found
any
trace of anything be it commercial, research or DIY.

Desperate times calls for desperate measures.
If you can make a BPSK receiver that will run in Gnu Radio (preferably
GRC
as I’m not a programmer) I will buy you a cake of your own choice from
one
of the internet cake delivery companies. If you want “1. prize details”
have
a look at our webpage with the offer:
http://www.dtusat.dtu.dk/index.php?id=112

Dead-line is 11. May 2009 - after that the conclusion is: BPSK is not an
I.R.L. thing but merely a mathematical curiosa and we’ll go for one of
the
more ordinary modulations.

Questions are off course welcome.

PS: The transmitter run at 868 MHz.

Cheers,
René Fléron

View this message in context:
http://www.nabble.com/BPSK-Demodulator-(i.e.-Receiver)-Award-Challenge-tp23404610p23404610.html
Sent from the GnuRadio mailing list archive at Nabble.com.

I seriously doubt that making a regular BPSK receiver that goes all-the-way,
i.e. recovers the transmitted data has ever been done. We haven’t found any
trace of anything be it commercial, research or DIY.

Have you looked at the examples in the ‘digital’ folder? The
benchmark_rx and benchmark_tx do DBPSK, DQPSK, and others ‘all the
way’, if you are set on BPSK you simply comment out the differential
encoder/decoder in modulator/demodulator script.

Jason

The DBPSK blocks are in GRC under DPSK, there is a drop down to choose
between DBPSK, DQPSK, D8PSK. Also, see the packet encoder/decoder to
accompany the DPSK modulator blocks.

A helpful example:
http://gnuradio.org/trac/browser/gnuradio/trunk/grc/examples/simple/dpsk_loopback.grc

-Josh

DBPSK is differential BPSK. However our transmitter sends ‘ordinary’
BPSK not
the differential version, so I cannot use the DBPSK version.

-René

Josh B.-2 wrote:

Jason U. wrote:


Discuss-gnuradio mailing list
[email protected]
Discuss-gnuradio Info Page


View this message in context:
http://www.nabble.com/BPSK-Demodulator-(i.e.-Receiver)-Award-Challenge-tp23404610p23422603.html
Sent from the GnuRadio mailing list archive at Nabble.com.

I looked and found the benchmark_rx. The version in the ‘digital’ folder
does
not have the letter combination: BPSK in it.
However the benchmark_rx in the ‘digital-bert’ folder does have BPSK in
it.
Couldn’t find DBPSK so I’m not sure if there is anything to comment out.
I tried to run the file but nothing happens, probably there’s some sort
of
error like a missing file or patch. I’ll let one of the Linux
equilibrists
look at it.

Problem still unsolved.

-René

Jason U. wrote:

encoder/decoder in modulator/demodulator script.


View this message in context:
http://www.nabble.com/BPSK-Demodulator-(i.e.-Receiver)-Award-Challenge-tp23404610p23422573.html
Sent from the GnuRadio mailing list archive at Nabble.com.

Hi Rene,

If you execute the benchmark_rx.py file with the following command:
python benchmark_rx.py --help

Then you will see that under “modulations” it says “dbpsk”. The
demodulator itself is implemented somewhere else. You can find all the
different demodulation blocks in:
gnuradio-core/src/python/gnuradio/blks2impl. Here, you will find a
file called “dbpsk.py”.

As was mentioned earlier, to make DBPSK into BPSK, just remove the
“self.diffenc”, the differential decoder, from the connect method.

Now, even with this modification, you will most likely not be able to
communicate with your satellite. You will have to know a lot of
details on the communication protocol your satellite uses, packet
framing, etc., in addition to the right hardware and daughterboards.

Note that eventually, you will have to modify your GNU Radio
installation. Thus, it is almost impossible to evade knowing how to
code and to understand the working of GNU Radio. Just searching for
“BPSK” in files won’t help you further…

Cheers,

Thomas

On Thu, May 7, 2009 at 1:46 AM, René Fléron [email protected] wrote:

accompany the DPSK modulator blocks.

any

[email protected]
Discuss-gnuradio Info Page


“Don’t complain; Just work harder” - Randy Pausch

Thomas S., Ph.D. Candidate
Networked & Embedded Systems Laboratory (NESL)
University of California, Los A. (UCLA)

Dear All,

Thanks for the many and prompt replies to my posting.
We now have a sort of BPSK demodulator, issues beyond my grasp still
remains
but tests are being conducted.
Josh gave us the first real kick forward and an off-line Gnuradio/GRC
expert
mailed us an 99,9% ready made GRC file. (Only had to fiddle with the
freq.)
So I have chosen to award both with a cake.

Thanks
René

René Fléron wrote:

(anything like: an off-the-shelve radio, add-on modules for existing
of the internet cake delivery companies. If you want “1. prize details”

Cheers,
René Fléron


View this message in context:
http://www.nabble.com/BPSK-Demodulator-(i.e.-Receiver)-Award-Challenge-tp23404610p23525388.html
Sent from the GnuRadio mailing list archive at Nabble.com.

René Fléron wrote:

I seriously doubt that making a regular BPSK receiver that goes all-the-way,
i.e. recovers the transmitted data has ever been done. We haven’t found any
trace of anything be it commercial, research or DIY.

NASA regularly uses BPSK as one of the supported client services
provided by their TDRSS relay satellites.

There is a reason most people use differential-BPSK instead of
plain BPSK. Plain BPSK is easy to generate but much more
difficult to receive and decode properly. Without any kind
of absolute phase reference between the transmitter and
receiver, there is a 180-degree phase ambiguity when
recovering a binary bitstream. This results in a bitstream
that can be either what you want, or its ones-compliment.
This requires additional processing AFTER the BPSK demodulation
to resolve the ambiguity.

One technique involves looking for a specific sync pattern
(or its compliment) in the bitstream in order to decide
if you need to invert the bitstream.

Another (better) technique is to use a form of coding (such as NRZI)
that depends on transitions rather than the absolute bit values.
This the technique we prefer.

In order to create a BPSK demodulator block, all that’s necessary
is to recover the phase of the signal. This is easily accomplished
as atan(Q/I). Note that it is very important to use a four-quadrant
form of the arctan function to demodulate correctly.

Once you have the demodulated sample stream, proceed as usual,
recovering the bitstream with an M&M clock recovery block,
followed by a bitslicer block, followed by an NRZI to NRZ decoder
block. There are examples of this in the Spacecraft Groundstation
Project in CGRAN.

@(^.^)@ Ed