Electronics > RF, Microwave, Ham Radio
BPSK Transceiver with ADALM-Pluto and Matlab
yacinbm:
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!
yacinbm:
If you guys need any other details, let me know!
Cheers
yacinbm:
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!
Cheers
yacinbm:
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.
1design:
Great project, what fixed the synchronization issue on the receiver?
Navigation
[0] Message Index
[#] Next page
Go to full version