How do you recieve your transmission, Live-script
Show older comments
I have data that I want to send over from the TX antenna to the RX antenna. (using the Adalm-Pluto, and MATLAB live script)
This is what I have so far...
tx_symbols_QAM16 % This is where my data comes from
rx_symbols_QAM16 % This is where my recieved data should go to
% Create recieve and send objects.
recieve_object = sdrrx("Pluto", ...
"RadioID", "usb:0", ...
"CenterFrequency", Pluto_CenterFrequencyGHz *1e9, ...
"GainSource", "AGC Fast Attack", ... % Automatic gain, set for signals with rapidly changing power levels.
"BasebandSampleRate", Pluto_BaseBandSampleRateMHz *1e6, ...
"OutputDataType", "double", ...
"SamplesPerFrame", Pluto_SamplesPerFrame, ...
"EnableBurstMode", Pluto_EnableBurstMode, ...
"NumFramesInBurst", Pluto_NumFramesInBurst)
transmit_object = sdrtx("Pluto", ...
"RadioID", "usb:0", ...
"CenterFrequency", Pluto_CenterFrequencyGHz *1e9, ...
"Gain", -10, ... % [-87.75..0]dB D=-10, step=0.25dB
"BasebandSampleRate", Pluto_BaseBandSampleRateMHz *1e6)
rx_symbols_QAM16 = recieve_object(); % Start recieving
transmit_object(tx_symbols_QAM16); % Start sending
But when I run this then it first recieves and when it is done recieving it will start transmitting.
How to recieve your own transmission?
Accepted Answer
More Answers (1)
Walter Roberson
on 19 Feb 2025
1 vote
sdrtx() supports BISTLoopbackMode
11 Comments
Walter Roberson
on 20 Feb 2025
Edited: Walter Roberson
on 20 Feb 2025
You need to enable ShowAdvancedProperties https://www.mathworks.com/help/comm/plutoradio/ref/sdrtx.html#bvn84t3-1_sep_mw_0b8bd99f-bfbc-416c-81d8-76ee6c5cd2d9
Koen
on 20 Feb 2025
Walter Roberson
on 20 Feb 2025
Did you enable ShowAdvancedProperties on the receiver as well?
Koen
on 20 Feb 2025
Koen
on 17 Mar 2025
Koen
on 18 Mar 2025
Walter Roberson
on 18 Mar 2025
If you are using MS Windows, then you can use System.Diagnostics.Process to create processes that you can pipe input to and get "live" output from.
If you are using Linux, then you can go through the trouble of creating named pipes that can be read from or written to.
Koen
on 22 Mar 2025
Walter Roberson
on 22 Mar 2025
It will never be possible to get access to a workspace from a process started by !matlab or System.Diagnostics.Process, or parfor or parfeval with process pool. (parfeval() with a background pool in theory shares some of the address space, but there are restricted things you can do with the shared access.)
To transfer information to a process started with System.Diagnostics.Process, use input redirection. See for example https://www.mathworks.com/matlabcentral/answers/586706-how-to-redirect-standard-input-and-standard-output-using-net-system-diagnostics-process#answer_487475
Categories
Find more on Analog Devices ADALM1000 Support from Data Acquisition Toolbox in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

