フィルターのクリア

LimeSDR program in Matlab

15 ビュー (過去 30 日間)
Miguel Albuquerque
Miguel Albuquerque 2022 年 6 月 21 日
編集済み: Ben Cunningham 2022 年 6 月 23 日
Hey guys, thanks in advance.
I am developing a SAR passive radar in Matlab with LimeSDR. I am using jocover and RakhDamir programs to connect LimeSDR to matlab.
The code I present you, let me receive Fs*Ts samples and then when LimeSDR gets that samples it stops receiving. However, I want to receive samples continually, until I presss a button on the keypad to stop receiving on LimeSDR , and then save all the samples in a file to save in my computer. How can I do that, maybe with a while loop?
% Start the module
dev.start();
fprintf('Start of LimeSDR\n');
% Receive samples on RX0 channel
indRx = 1;
[samples, ~, samplesLength] = dev.receive(Fs*Ts,0);
bufferRx(indRx:indRx+samplesLength-1) = samples;
% Receive samples on RX1 channel
indRx1 = 1; % index of the last received sample
[samples1, ~, samplesLength1] = dev.receive(Fs*Ts,1);
bufferRx1(indRx1:indRx1+samplesLength1-1) = samples1;
pause(1)
% Cleanup and shutdown by stopping the RX stream and having MATLAB delete the handle object.
dev.stop();
clear dev;
fprintf('Stop of LimeSDR\n');

採用された回答

Ben Cunningham
Ben Cunningham 2022 年 6 月 23 日
編集済み: Ben Cunningham 2022 年 6 月 23 日
The following code will give you a while loop which can be stopped by clicking on the pop-up figure. It makes use of a global variable and a quick and dirty dialogue with a callback. Consider consulting the documentation for dialogs to make an optimised design.
global gStop % Global variable to stop while loop
gStop = false;
% Create a dialogue which when clicked calls the 'stopStream' function
stopBtn = dialog('Name', 'Click to Stop', "ButtonDownFcn",@stopStream);
drawnow
% Create while loop which runs until global gStop is true
while ~gStop
% Receive from SDR
drawnow % Gives dialog a chance to call stopStream and set the global variable
end
close(stopBtn) % Close once stopped
function stopStream(~,~,~)
% Sets global gStop to true
global gStop
gStop = true;
end
For saving to file consider using the matlab save function like:
save capturedDataFile.mat myData
For large quantities of data, and perhaps to write to a single file each while loop iteration consider using the baseband file writer.

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeManage Products についてさらに検索

製品


リリース

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by