Matlab QPSK exmaple for Adalm Pluto

15 views (last 30 days)
Greetings everyone!
I have encountered a problem which I have tried to solve for a long time but eventually failed.
I think that it is due to my lack of knowledge for signal processing.
I have used a single Adalm Pluto module as a Transceiver and two of them as a Receiver and a Transmitter.
I am working within Simulink under Ubuntu.
As for the learning process - I have tried to launch examples for QPSK in Communication Toolbox Simulink.
In both cases I do not see the parcel as it is described in the Receiver QPSK example. If I comment both the Pluto Tr module and Pluto Rx module and than connect QPSK transmitter with QPSK Receiver, I do see a good picture on the Constelation Diagram and I do see all messages as they should be (Hello World 000, Hello World 001 etc). When I am using Pluto modules - I am not getting anything at all, and I see garbage on the constelation diagrams (I do see that something is going on there but it looks bad).
Could anyone help me with this please?
I have tried to change Pluto Modules parameters but I did not help.

Accepted Answer

Alexey Petrenko
Alexey Petrenko on 8 Feb 2022
Finally I got a result.
Following through Kevin's advices and my own ideas I ended up having all parcels got by the receiver.
The correct way was to lower down the sampling rate withtin pluto TX and RX down to 100k samples.
Although it is totally not the end because as I understand it - I should be able to receive up to 20MHz which is by definition pluto's rf band.
  1 Comment
Kevin on 8 Feb 2022
This is great news. Good to know that finally it is working perfectly for you.
You said that lower sampling works (but not higher sampling rate). This seems to point to bandwidth of your signal. I am guessing you are sending your signal over the air. Try using cable connection and see if this problem goes away. I think it is the wireless channel causing you problem.
Have fun!!!

Sign in to comment.

More Answers (4)

Kevin on 28 Dec 2021
It can be tricky debugging hardware problem.
So let's step back and do something really simple.
Can you use the transmitter pluto to send a single tone and use the receiver pluto to receive it? Plot the received signal in time domain to make sure that the signal is not too large or too small (use the tx gain and rx gain to adjust). Also plot the received signal in frequency domain to see if you get a tone.
There are a few other things we can try. But let's do this first and see what we get.
Kevin on 13 Jan 2022
Hi Alex,
Yes, this can be something related to using just one pluto, especially (I think) changing rx center frequency will also change tx center frequency.
So let try the experiment with two Plutos.
There is also one thing we should be careful. When using one Pluto to transmit, I am assuming that you are using transmitRepeat, then you ideally the signal should not have glitch between the end of the signal and the beginning of the signal. If there is glitch, it may (or may not) cause problem to the receiver recovering the bits. This is something you need to keep in mind. But for now, assuming that this is not a problem.

Sign in to comment.

Kevin on 28 Dec 2021
I see. OK. Let's go back to your QPSK example.
Do you use a cable to connect transmitter and receiver? If not, can you try this first?
Alexey Petrenko
Alexey Petrenko on 8 Feb 2022
Dear Kevin!
Many thanks for your responses and help.
Seems that I finally got it - I have got 100% results dealing with sample rate. For some reason 400k sampling rate is big in the way that I am having the result I presented to you later. Lowering sample rate to 100k gave me 100% of parcels coming to be correct.
I will look forward to deal with it later anyway.
Thank you very much!

Sign in to comment.

Alexey Petrenko
Alexey Petrenko on 29 Dec 2021
Greetings Kevin!
I have tried the coax connection earlier but the results on const diagrams were totally the same as it was with antenna connection.
So now I am using antennas.
Also I have tried to manage rx parameters after square root block and was able to get a result :) so now I am getting a part of a parcel or a whole parcel from time to time. I have changed the timing error detection parameter within symbol synchronizer block to zero crossing now I got something like this (see pic).
Winfried Johannes
Winfried Johannes on 17 Mar 2022
hello. thanks for your help. it works now. i adjusted the clock of the adalm pluto.

Sign in to comment.

Winfried Johannes
Winfried Johannes on 17 Mar 2022
hello everybody
i have a problem to understand the matlab code of the qpsk example for adalm pluto. i have some questions and i hope you can help me:
what is the samplerate of the adc of the adalm pluto used by this example?
what is the samplerate of the data transfering over usb to the pc? what is the decimation factor of the adalm pluto?
what is the data format and the packet size of the data transfering over usb to the pc?
hopfully you can help me!
best regards

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!