AnsweredAssumed Answered

Discontinuities in between data transfers

Question asked by s.kannan on Nov 9, 2017
Latest reply on Nov 9, 2017 by ACozma

I'm trying to stream the data through libiio in Matlab to my ad9364 mounted on picozed sdr1x1. Here is my matlab code:

clear;
clc;
clear all;
s = iio_sys_obj_matlab; % Constructor
s.ip_address = '192.168.10.211';
s.dev_name = 'ad9364';
s.in_ch_no = 2;
s.out_ch_no = 2;
s.in_ch_size = 1e6;
s.out_ch_size = 1e6;

s = s.setupImpl();

input = cell(1, s.in_ch_no + length(s.iio_dev_cfg.cfg_ch));
Fs = 30.72e6;
Fc = 0.5e6;
t = 1/Fs:1/Fs:s.in_ch_size/Fs;

input{s.in_ch_no+1} = 2.4e9;
input{s.in_ch_no+2} = 30.72e6;
input{s.in_ch_no+3} = 18.0e6;
input{s.in_ch_no+4} = 'slow_attack';
input{s.in_ch_no+5} = 0;

input{s.in_ch_no+6} = 2.4e9;
input{s.in_ch_no+7} = 30.72e6;
input{s.in_ch_no+8} = 18.0e6;

output = cell(1, s.out_ch_no + length(s.iio_dev_cfg.mon_ch));

initial_phase = 0;
final_out1=[];
for i = 1:10
for j=1:s.in_ch_no
input{j} = sin(2*pi*Fc*t+(j-1)*pi/2 + initial_phase)*1024;
end
initial_phase = initial_phase + 2*pi*Fc*length(t)+(j-1)*pi/2 ;
output = stepImpl(s, input);
out = cell2mat(output(1)) + 1i*cell2mat(output(2));
final_out1 = [final_out1;out];
rssi1 = output{s.out_ch_no+1};
end

 

So It is sending data frame by frame with 1e6 samples in each frames. If I plot the real part of my output waveform, I'm witnessing the disturbances at the beginning of each frame. If I want to stream data live and continuously, what should I do?

And will it take this much time (here 4e6 sample time) to settle?

Outcomes