Electronics > RF, Microwave, Ham Radio

BPSK Transceiver with ADALM-Pluto and Matlab

(1/2) > >>

Hi everyone!

I'm currently working on implementing a BPSK transceiver with Matlab Simulink and my ADALM-Pluto.

Here is a quick summary of the specs I want for my system:

* Bit rate: 25kbps
* Carrier Frequency: 2.4GHz
* Oversampling factor: 8
* Sample Rate: Bit rate*Oversampling factor=25kbps*8=200ksps
* Frame Length: 152bits (alternating 0s and 1s)
Here is my VERY simple transmission/reception line:

My Tx/Rx channels are connected together using an SMA cable in loopack. I know that my receiver is missing symbol/frame synchronization, but I'm getting a very unexpected constellation from the receiver of my Pluto (see below). I'm sending a very simple sequence of 1s and 0s modulated by BPSK, so I'm expecting to get a constellation without any points at (0,0i) and that resembles two dots centered around the origin on the Q axis.

 Just to be safe, I checked the constellation right before my Tx, and it has the desired shape:

Here's the configuration of my Simulink blocks (bit of a crowded image, sorry!):

Any help would be greatly appreciated! I've been stuck with this issue for a few days now and I can't seem to figure it out :(
Cheers from Canada!

If you guys need any other details, let me know!


Hey all!

I went back to it this morning and got an idea. I split my transceiver module into two separate ones; one for the Tx and another for the Rx. I had the idea to try and run the models on two different computers since it could alleviate some of the computation from my desktop PC.

After doing this, I FINALLY GOT SOMETHING COHERENT! I modified my previous model to use a cosine shaping filter at the Tx/Rx and after doing some phase and frequency correction, I got the constellation below! I've gotta say, I'm suprised Simulink is so sh*t at handling this sort of operations compared to GNURadio, but I have to use Matlab for this project...

Next step is to try and figure out if my data was correctly sent over the air and if I can reconstruct it and the output :) I have actually started doing this and I'm getting a strange result. My frame uses a 13 bits Barker code for start of frame detection. At the receiver, I capture two complete frame and run a correlation between the received signal and a 13 bits Barker code. I get some peaks in the correlation result, indicating that I have detected the sequence. That being said, I get 4 peaks, instead of the expected 2 (at most!). I'll try using a longer Barker sequence to see if that helps.

Again, if you have any recommendations, please hit me up down below!

Well, everything works now!

If you ever need some info for something similar, don't hesitate to get in touch :) I was able to send a string over the air and decode it on my receiver.

Great project, what fixed the synchronization issue on the receiver?


[0] Message Index

[#] Next page

There was an error while thanking
Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod