Chang center frequency quickly

5 views (last 30 days)
Ardeal Liang
Ardeal Liang on 24 Oct 2018
Commented: Paul on 6 Nov 2018
Hi Paul,
I would like to change center frequency quickly. If I change it and then restart the object in Matlab, it runs too slow.
Can I change center frequency in real time quickly? Can the example(Receive Tone Signal Using Analog Devices AD9361/AD9364) deployed to ARM?
Thanks and Best Regards,
Ardeal
  1 Comment
Jan
Jan on 24 Oct 2018
"Change center frequency" is a very vague description, as "runs too slow" is also. Can you edit the question and add more details?

Sign in to comment.

Accepted Answer

Ardeal Liang
Ardeal Liang on 25 Oct 2018
Hi Paul,
At present, the example runs on Matlab, and send commands to ARM to talk to AD9364 by RJ45 interface.
So, the example code cannot be deployed to ARM.
Is my understanding correct?
Thanks and Best Regards,
Ardeal

More Answers (2)

Paul
Paul on 24 Oct 2018
  • It is possible to change the CenterFrequency property while the System object is locked as it is a tunable property.Give a look at this doc page comm.SDRRxAD936x System object (R18b) to see a list of tunable properties. Tunable properties can be modified without having to release the System object.
  • The Receive Tone Signal Using Analog Devices AD9361/AD9364 example you are referring to cannot be deployed on the ARM. You will have to follow these instructions Hardware-Software Co-Design if you want to deploy a model to the target. This is only available on Simulink.You should be able to create a Simulink model similar to what the example is doing. Since you are not targeting the FPGA, you can focus on the Software Interface Model.

Ardeal Liang
Ardeal Liang on 25 Oct 2018
Edited: Ardeal Liang on 25 Oct 2018
Hi Paul,
Thanks for your answer!
Here are the steps(pseudo-code) of the exeriment I wang to do:
for rf_scan = 1:10
current_center_frequency = start_freq_tx + (rf_scan - 1) * scan_interval;
sdrTransmitter.CenterFrequency = current_center_frequency;
sdrReceiver.CenterFrequency = current_center_frequency;
try
timeCounter = 0;
while timeCounter < StopTime
[data, len, lostSamps] = sdrReceiver();
if (lostSamps > 0)
warning('data lost');
end
if len > 0
% save the data to file
timeCounter = timeCounter + RadioFrameTime;
end
end
catch ME
rethrow(ME);
end
end
I want to change the center frequency without restarting tx and rx.
sdrTransmitter.CenterFrequency = current_center_frequency;
sdrTransmitter(complex(ones(1,1), ones(1,1)));
sdrReceiver.CenterFrequency = current_center_frequency;
The upper code is able to change center frequency, and take effect immediately.
tic
[data, len, lostSamps] = sdrReceiver();
toc
I use the tic and toc to count the time need to receive data by sdrReceiver. The following is time:
the time needed to establish the connection once center frequency is changed is around 7s which is a very long time!
is there anyway to shorten the time(7s)?
Thanks and Best Regards,
Ardeal
  1 Comment
Paul
Paul on 6 Nov 2018
When calling the step method, it will first setup the System object if it has not been first setup. You can give a look at the call sequence of System objects here: Summary of Call Sequence
I suggest you try to call the setup method of that System object first by doing the following:
setup(sdrReceiver)
while_loop
tic
[data, len, lostSamps] = sdrReceiver();
toc
end
This way, the first call to step should be as quick as the second since the device has been setup before.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!