RENEWLab  1.1.0
RENEW project
iris_py.m File Reference

Functions

Parameters to feed python (pun very intended!) serial_ids
 
obj py_obj_array (ipy,:)
 
The trigger is set only on the fist node end function sdrsync (obj, is_bs) obj.py_obj_array
 
 sync_delays (pyargs('is_bs', is_bs))
 
end function sdr_setcorr (obj) obj.py_obj_array
 
 set_corr ()
 
end function sdr_txgainctrl (obj) obj.py_obj_array
 
 tx_gain_ctrl ()
 
end function sdr_txbeacon (obj, prefix_len) % Assume Beacon only from the first Iris board in the BS array obj.py_obj_array
 
 burn_beacon (pyargs('prefix_len', prefix_len))
 
end function set_config (obj, chained_tx_rx, is_bs) if chained_tx_rx sched
 
 if (obj.n_chain > 1) sched2
 
end end end end function sdrrxsetup (obj) for ipy
 
end end function sdr_activate_rx (obj) for ipy
 
data real ()
 
 data_raw (ipy,(jf-1) *n_samp+1:jf *n_samp)
 
end function sdr_close (obj) for ipy
 
 delete (obj.py_obj_array{ipy})
 
 lts_corr_dr (:, nc)
 
id peaks: (lts_corr_sum< 0.2 lts_corr_sum)
 
 elseif (obj.n_chain > 1) &&length(lts_corr_frm >
 
obj.n_samp, obj.n_chain, obj.n_frame zeros ()
 
 data_split (:,:, nf)
 
 fprintf ('Returning frame number %d with max mean correlation=%f \n', m_idx, max_corr)
 

Variables

Author(s) pyhton object array This array decribes Iris board or a collection of Iris boards that belong to the same entity E g
 
Author(s) pyhton object array This array decribes Iris board or a collection of Iris boards that belong to the same entity E a BS py_obj_array = {}
 
 n_chain = sdr_params.n_chain
 
number of Iris boards in a chain sample_rate = sdr_params.sample_rate
 
 tx_freq = sdr_params.txfreq
 
rx_freq = sdr_params.rxfreq
 
 bw
 
 tx_gain = sdr_params.txgain
 
 rx_gain = sdr_params.rxgain
 
 n_samp = sdr_params.n_samp
 
 tdd_sched = sdr_params.tdd_sched
 
 n_zpad_samp = sdr_params.n_zpad_samp
 
end methods function obj
 
obj serial_ids = sdr_params.id
 
obj n_frame = sdr_params.n_frame
 
for ipy
 
 max_frames
 
end end end NB
 
else sched = convertStringsToChars(obj.tdd_sched(1))
 
 im = imag(data).'
 
end end Read n_frame x n_samp data function [data, len]
 
Change this to max frame ! for jf
 
end end data = obj.get_best_frame(data_raw.', n_samp)
 
 len = length(data)
 
TD LTS lts_t = ifft(lts_f, 64)
 
Add CP and a second TD LTS lts_cp = lts_t(33:end)
 
Correlation through filtering lts_corr_dr = zeros(size(data_frame))
 
 unos = ones(size(lts_t))
 
 a = 1
 
for nc
 
 v1 = filter(unos,a,abs(data_frame(:,nc)).^2)
 
normalized correlation end Sum accross antennas lts_corr_sum = sum(lts_corr_dr,2)
 
Assume peak in the first samples lts_corr_frm = reshape(lts_corr_sum, [], obj.n_frame)
 
end save my_data mat lts_corr_dr lts_corr_frm Avg corr value per frame frm_avg_corr
 
for nf
 
 end_idx = nf*obj.n_samp
 
end data_frame = reshape(data_frame,n_samp, [], obj.n_frame )
 

Function Documentation

◆ burn_beacon()

burn_beacon ( pyargs( 'prefix_len', prefix_len)  )

◆ data_raw()

data_raw ( ipy  ,
(jf-1) *n_samp+1:jf n_samp 
)

◆ data_split()

data_split ( ,
,
nf   
)

◆ delete()

delete ( obj.py_obj_array{ipy )

◆ elseif()

elseif ( obj.  n_chain,
 
) &&

◆ fprintf()

fprintf ( 'Returning frame number %d with max mean  correlation = %f \n',
m_idx  ,
max_corr   
)

◆ if()

if ( obj.  n_chain,
 
)

◆ lts_corr_dr()

lts_corr_dr ( ,
nc   
)

◆ peaks:()

id peaks: ( )
virtual

◆ py_obj_array()

obj py_obj_array ( ipy  ,
 
)

◆ python()

Parameters to feed python ( pun very intended!  )

◆ real()

data real ( )
virtual
Here is the caller graph for this function:

◆ sdr_activate_rx()

end end function sdr_activate_rx ( obj  )

◆ sdr_close()

end function sdr_close ( obj  )

◆ sdr_setcorr()

end function sdr_setcorr ( obj  )

◆ sdr_txbeacon()

end function sdr_txbeacon ( obj  ,
prefix_len   
)

◆ sdr_txgainctrl()

end function sdr_txgainctrl ( obj  )

◆ sdrrxsetup()

end end end end function sdrrxsetup ( obj  )

◆ sdrsync()

The trigger is set only on the fist node end function sdrsync ( obj  ,
is_bs   
)

◆ set_config()

end function set_config ( obj  ,
chained_tx_rx  ,
is_bs   
)

◆ set_corr()

set_corr ( )

◆ sync_delays()

sync_delays ( pyargs( 'is_bs', is_bs )

◆ tx_gain_ctrl()

tx_gain_ctrl ( )

◆ zeros()

obj.n_samp, obj.n_chain,obj.n_frame zeros ( )
virtual

Variable Documentation

◆ a

a = 1

◆ bw

bw

◆ data

Return the frame with the highest value data = obj.get_best_frame(data_raw.', n_samp)

◆ data_frame

end data_frame = reshape(data_frame,n_samp, [], obj.n_frame )

◆ end_idx

end_idx = nf*obj.n_samp

◆ frm_avg_corr

end save my_data mat lts_corr_dr lts_corr_frm Avg corr value per frame frm_avg_corr
Initial value:
= sum(lts_corr_frm,1)./obj.n_chain
% Take index of maximum corr. value
[max_corr, m_idx] = max(frm_avg_corr)

◆ function

end end function[data]
Initial value:
= sdrrx(obj, n_samp)
data_raw = zeros(obj.n_chain, obj.n_frame*n_samp)

◆ g

Author (s) pyhton object array This array decribes Iris board or a collection of Iris boards that belong to the same entity E g

◆ im

im = imag(data).'

◆ ipy

for ipy
Initial value:
=1:obj.n_chain
id_str = convertStringsToChars( obj.serial_ids(ipy))
py_obj = py.iris_py.Iris_py( pyargs('serial_id',id_str,...
'tx_freq', obj.tx_freq, 'rx_freq', obj.rx_freq,...
'tx_gain',obj.tx_gain,'rx_gain',obj.rx_gain,...
'sample_rate',obj.sample_rate, 'n_samp',...
obj.n_samp,'n_zpad_samp',obj.n_zpad_samp) )

◆ jf

Change this to max frame ! for jf
Initial value:
=1:obj.n_frame
%trigger beacon TX
trig = 1

◆ len

len = length(data)

◆ lts_corr_dr

Correlation through filtering lts_corr_dr = zeros(size(data_frame))

◆ lts_corr_frm

Assume peak in the first samples lts_corr_frm = reshape(lts_corr_sum, [], obj.n_frame)

◆ lts_corr_sum

normalized correlation end Sum accross antennas lts_corr_sum = sum(lts_corr_dr,2)

◆ lts_cp

Add CP and a second TD LTS lts_cp = lts_t(33:end)

◆ lts_t

lts_t = ifft(lts_f, 64)

◆ max_frames

max_frames

◆ n_chain

if obj n_chain = sdr_params.n_chain

◆ n_frame

obj n_frame = sdr_params.n_frame

◆ n_samp

obj n_samp = sdr_params.n_samp

◆ n_zpad_samp

This is an array obj n_zpad_samp = sdr_params.n_zpad_samp

◆ NB

end end end NB

◆ nc

for nc
Initial value:
=1:size(data_frame,2)
v0 = filter(flipud(conj(lts_t)),a,data_frame(:,nc))

◆ nf

for nf
Initial value:
= 1:obj.n_frame
strt_idx = (nf-1)*obj.n_samp +1

◆ obj

end methods function obj
Initial value:
if nargin > 0
obj.sdr_params = sdr_params

◆ py_obj_array

obj py_obj_array = {}

◆ rx_freq

obj rx_freq = sdr_params.rxfreq

◆ rx_gain

obj rx_gain = sdr_params.rxgain

◆ sample_rate

obj sample_rate = sdr_params.sample_rate

◆ sched

else sched = convertStringsToChars(obj.tdd_sched(1))

◆ serial_ids

obj serial_ids = sdr_params.id

◆ tdd_sched

obj tdd_sched = sdr_params.tdd_sched

◆ tx_freq

obj tx_freq = sdr_params.txfreq

◆ tx_gain

◆ unos

unos = ones(size(lts_t))

◆ v1

v1 = filter(unos,a,abs(data_frame(:,nc)).^2)
filter
Interpolate Zero pad then filter(same as interp or upfirdn without signal processing toolbox) tx_vec_air
iris_py
Definition: iris_py.py:1
lts_t
TD LTS lts_t
Definition: iris_py.m:246
obj
end methods function obj
Definition: iris_py.m:41
value
Take index of maximum corr value[max_corr, m_idx]
Definition: iris_py.m:278
max
abs(tx_vecs_iris max()
a
a
Definition: iris_py.m:254
data_frame
end data_frame
Definition: iris_py.m:287
nf
for nf
Definition: iris_py.m:282
py_obj
py_obj
Definition: iris_py.m:67
frm_avg_corr
end save my_data mat lts_corr_dr lts_corr_frm Avg corr value per frame frm_avg_corr
Definition: iris_py.m:276
ipy
for ipy
Definition: iris_py.m:65
v0
v0
Definition: siso_ofdm_mf_sim.m:143
data_raw
end data_raw
Definition: iris_py.m:190
n_samp
n_samp
Definition: iris_py.m:33
trig
end trig
Definition: getRxVec.m:201
lts_corr_frm
Assume peak in the first samples lts_corr_frm
Definition: iris_py.m:266
sdr_params
end obj sdr_params
Definition: iris_py.m:51
nc
for nc
Definition: iris_py.m:255
zeros
obj.n_samp, obj.n_sdrs, obj.n_frame zeros()
iris_py.beacon
int beacon
Definition: iris_py.py:38