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-%28i.e.-Rec... Sent from the GnuRadio mailing list archive at Nabble.com.
on 2009-05-06 15:17
on 2009-05-06 18:11
> 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
on 2009-05-06 22:20
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/gr... -Josh
on 2009-05-07 12:45
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-%28i.e.-Rec... Sent from the GnuRadio mailing list archive at Nabble.com.
on 2009-05-07 12:48
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@example.com > http://lists.gnu.org/mailman/listinfo/discuss-gnuradio > > -- View this message in context: http://www.nabble.com/BPSK-Demodulator-%28i.e.-Rec... Sent from the GnuRadio mailing list archive at Nabble.com.
on 2009-05-07 18:53
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 <firstname.lastname@example.org> wrote: >> accompany the DPSK modulator blocks. >>>> any >>> >> > email@example.com > http://lists.gnu.org/mailman/listinfo/discuss-gnuradio > -- "Don't complain; Just work harder" - Randy Pausch Thomas S., Ph.D. Candidate Networked & Embedded Systems Laboratory (NESL) University of California, Los A. (UCLA)
on 2009-05-07 19:12
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
on 2009-05-13 20:50
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-%28i.e.-Rec... Sent from the GnuRadio mailing list archive at Nabble.com.