Agora  1.2.0
Agora project
parse_dl_file.m File Reference

Functions

 index (1:512:frame_count)
 
 fprintf ("Average delay between rx thread and main thread: %.2f\n",... mean(pilot_recv(subset)))
 
 fprintf ("In main thread: queueing delay: %.2f, FFT of pilots done: %.2f, ZF done: %.2f, IFFT done: %.2f, total: %.2f\n",... avg_proc_start, avg_fft_duration, avg_zf_duration,... avg_ifft_duration, avg_proc_duration)
 
 fprintf ("Frame duration: %.2f, RX duration: %.5f, Processing delay: %.5f\n", avg_frame_duration, avg_rx_duration, avg_proc_duration-avg_rx_duration)
 
 fprintf ("Pilot RX duration: %.2f\n", mean(pilot_rx_duration(subset)))
 
 fprintf ("Process delay 99th: %.2f, ZF delay 99th: %.3f\n", proc_delay_99th, zf_delay_99th)
 
 fprintf ("Process delay mean: %.2f (std: %.2f), ZF delay mean: %.2f\n", avg_proc_delay, std_proc_delay, avg_zf_duration)
 
 fprintf ("DL processing duration: %.2f, std: %.2f\n", avg_proc_duration, std_proc_duration)
 
if PLOT figure (1)
 
 plot (fft_duration(1:frame_count), 'LineWidth', 2)
 
 plot (fft_time_in_function(subset), 'LineWidth', 2)
 
 plot (zf_time_in_function(subset), 'LineWidth', 2)
 
 plot (demul_time_in_function(subset), 'LineWidth', 2)
 
 plot (zf_duration(subset), 'LineWidth', 2)
 
 set (gca, 'FontSize', 18)
 
 xlabel ('Frame id')
 
 ylabel ('Duration(us)')
 
 legend ({ 'FFT in function', 'ZF in function', 'Demodulation in function', 'ZF'})
 
 figure (2)
 
 plot (frame_duration_fft(subset), 'LineWidth', 2)
 
 plot (frame_duration_zf(subset), 'LineWidth', 2)
 
 plot (frame_duration_demul(subset), 'LineWidth', 2)
 
 plot (frame_duration_rx(subset), 'LineWidth', 2)
 
 plot (frame_duration_encode(subset), 'LineWidth', 2)
 
 legend ({ 'FFT of pilots', 'ZF', 'Demodulation', 'RX', "Deocde"})
 
 figure (4)
 
 plot (process_delay(1:frame_count), 'LineWidth', 2)
 
 ylabel ('Delay(us)')
 
 title ('Processing delay') figure(5)
 
 set (h1, 'LineWidth', 2)
 
 xlabel ('Delay(us)')
 
 plot (pilot_recv(1:end) -frame_start(1:end), 'LineWidth', 2)
 
 ylabel ('Time(us)')
 
 title ('Delay between main thread and rx thread') % figure(8) = fopen('tx_result.txt')
 
 xlabel ('Time(us)')
 
 fprintf ("In emulator: TX duration %.5f\n", avg_tx_duration)
 
 figure (6)
 
 plot (frame_duration_tx(subset), 'LineWidth', 24)
 
 set (gca, 'FontSize', 24)
 
 title ('TX duration')
 
 figure (3)
 
 set (h2, 'LineWidth', 2)
 
 set (h3, 'LineWidth', 2, 'LineStyle', '--', 'Color', 'k')
 
 xlabel ('Duration(us)')
 
 legend ({sprintf('RX duration(avg:%.2f us)', avg_rx_duration),... % sprintf('Data processing duration(avg:%.2f us)', avg_proc_duration)}, 'Location', 'southeast')
 
 legend ({sprintf('RX duration(avg:%.2f us)', avg_rx_duration),... % sprintf('Data processing duration(avg:%.2f us)', avg_proc_duration),... % sprintf('TX duration in emulator(avg:%.2f us)', avg_tx_duration)}, 'Location', 'southeast')
 
 legend ({sprintf('RX duration(avg:%.2f us)', avg_rx_duration),... sprintf('Precode done(avg:%.2f us)', avg_precode_duration),... sprintf('IFFT done(avg:%.2f us)', avg_proc_duration)}, 'Location', 'southeast')
 

Variables

 function [avg_proc_duration, std_proc_duration]
 
 PLOT = 0
 
 temp = textscan(fid,"%f%f%f%f%f%f%f%f%f%f", 'HeaderLines',2)
 
 frame_start = temp{1}
 
 pilot_recv =temp{2}
 
 process_start = temp{3}
 
 all_pilot_received = temp{4}
 
 fft_processed = temp{5}
 
 zf_processed = temp{6}
 
 precode_processed = temp{7}
 
 encode_processed = temp{9}
 
 rx_processed = temp{10}
 
 ifft_processed = temp{8}
 
 zf_duration = zf_processed-fft_processed
 
 fft_duration = fft_processed
 
 ifft_duration = ifft_processed - zf_duration
 
 frame_duration_rx = rx_processed
 
 frame_duration_fft = fft_processed
 
 frame_duration_precode = precode_processed
 
 frame_duration_encode = encode_processed
 
 frame_duration_zf = zf_processed
 
 frame_duration_ifft = ifft_processed
 
 frame_duration = diff(frame_start)
 
 frame_count = length(precode_processed)
 
 pilot_rx_duration = all_pilot_received
 
 queueing_delay = process_start
 
 frame_duration_processing = max([frame_duration,frame_duration_encode(1:end-1)],[],2)
 
 index = [1:frame_count]
 
 subset = index(1200:frame_count-2)
 
 avg_frame_duration = mean(frame_duration(subset))
 
 avg_rx_duration = mean(frame_duration_rx(subset))
 
 avg_precode_duration = mean(frame_duration_precode(subset))
 
 avg_proc_duration = mean(frame_duration_ifft(subset))
 
 std_proc_duration = std(frame_duration_ifft(subset))
 
 avg_proc_start = mean(process_start(subset))
 
 avg_zf_duration = mean(zf_duration(subset))
 
 avg_fft_duration = mean(fft_duration(subset))
 
 avg_ifft_duration = mean(ifft_duration(subset))
 
 process_delay = demul_processed-rx_processed
 
 avg_proc_delay = mean(process_delay(subset))
 
 std_proc_delay = std(process_delay(subset))
 
 x_set = x_proc_delay(f_proc_delay>0.99)
 
 proc_delay_99th = x_set(1)
 
 zf_delay_99th = x_set(1)
 
 clf
 
hold on
 
 h1 = cdfplot(process_delay(subset))
 
 frame_ends =temp{1}
 
 frame_duration_tx = diff(frame_ends)
 
 avg_tx_duration = mean(frame_duration_tx(1200:length(frame_duration_tx)-1))
 
 frame_duration_rx1 = diff(frame_start)
 
 h2 =cdfplot(frame_duration_precode(subset))
 
 h3 =cdfplot(frame_duration_tx(1200:length(frame_duration_tx)-1))
 

Function Documentation

◆ figure() [1/5]

if PLOT figure ( )

◆ figure() [2/5]

figure ( )

◆ figure() [3/5]

figure ( )

◆ figure() [4/5]

figure ( )

◆ figure() [5/5]

figure ( )

◆ fprintf() [1/8]

fprintf ( "Average delay between rx thread and main thread: %.2f\n ,
...   meanpilot_recv(subset) 
)

◆ fprintf() [2/8]

fprintf ( "DL processing duration: %.  2f,
std:%.2f\n ,
avg_proc_duration  ,
std_proc_duration   
)

◆ fprintf() [3/8]

fprintf ( "Frame duration: %.  2f,
RX duration:%.  5f,
Processing delay:%.5f\n ,
avg_frame_duration  ,
avg_rx_duration  ,
avg_proc_duration avg_rx_duration 
)

◆ fprintf() [4/8]

fprintf ( "In emulator: TX duration %.5f\n ,
avg_tx_duration   
)

◆ fprintf() [5/8]

fprintf ( "In main thread: queueing delay: %.  2f,
FFT of pilots done:%.  2f,
ZF done:%.  2f,
IFFT done:%.  2f,
total:%.2f\n ,
  avg_proc_start,
avg_fft_duration  ,
avg_zf_duration  ,
  avg_ifft_duration,
avg_proc_duration   
)

◆ fprintf() [6/8]

fprintf ( "Pilot RX duration: %.2f\n ,
mean(pilot_rx_duration(subset))   
)

◆ fprintf() [7/8]

fprintf ( "Process delay 99th: %.  2f,
ZF delay 99th:%.3f\n ,
proc_delay_99th  ,
zf_delay_99th   
)

◆ fprintf() [8/8]

fprintf ( "Process delay mean: %.2f   std: %.2f,
ZF delay mean:%.2f\n ,
avg_proc_delay  ,
std_proc_delay  ,
avg_zf_duration   
)

◆ index()

index ( 1:512:frame_count  )

◆ legend() [1/5]

legend ( { 'FFT in function', 'ZF in function', 'Demodulation in function', 'ZF'}  )

◆ legend() [2/5]

legend ( { 'FFT of pilots', 'ZF', 'Demodulation', 'RX', "Deocde"}  )

◆ legend() [3/5]

legend ( {sprintf('RX duration(avg:%.2f us)', avg_rx_duration),... % sprintf('Data processing duration(avg:%.2f us)', avg_proc_duration),... % sprintf('TX duration in emulator(avg:%.2f us)', avg_tx_duration)}  ,
'Location'  ,
'southeast'   
)

◆ legend() [4/5]

legend ( {sprintf('RX duration(avg:%.2f us)', avg_rx_duration),... % sprintf('Data processing duration(avg:%.2f us)', avg_proc_duration)}  ,
'Location'  ,
'southeast'   
)

◆ legend() [5/5]

legend ( {sprintf('RX duration(avg:%.2f us)', avg_rx_duration),... sprintf('Precode done(avg:%.2f us)', avg_precode_duration),... sprintf('IFFT done(avg:%.2f us)', avg_proc_duration)}  ,
'Location'  ,
'southeast'   
)

◆ plot() [1/13]

plot ( demul_time_in_function(subset ,
'LineWidth'  ,
 
)

◆ plot() [2/13]

plot ( fft_duration(1:frame_count ,
'LineWidth'  ,
 
)

◆ plot() [3/13]

plot ( fft_time_in_function(subset ,
'LineWidth'  ,
 
)

◆ plot() [4/13]

plot ( frame_duration_demul(subset ,
'LineWidth'  ,
 
)

◆ plot() [5/13]

plot ( frame_duration_encode(subset ,
'LineWidth'  ,
 
)

◆ plot() [6/13]

plot ( frame_duration_fft(subset ,
'LineWidth'  ,
 
)

◆ plot() [7/13]

plot ( frame_duration_rx(subset ,
'LineWidth'  ,
 
)

◆ plot() [8/13]

plot ( frame_duration_tx(subset ,
'LineWidth'  ,
24   
)

◆ plot() [9/13]

plot ( frame_duration_zf(subset ,
'LineWidth'  ,
 
)

◆ plot() [10/13]

plot ( pilot_recv(1:end) -frame_start(1:end)  ,
'LineWidth'  ,
 
)

◆ plot() [11/13]

plot ( process_delay(1:frame_count ,
'LineWidth'  ,
 
)

◆ plot() [12/13]

plot ( zf_duration(subset ,
'LineWidth'  ,
 
)

◆ plot() [13/13]

plot ( zf_time_in_function(subset ,
'LineWidth'  ,
 
)

◆ set() [1/5]

set ( gca  ,
'FontSize ,
18   
)

◆ set() [2/5]

set ( gca  ,
'FontSize ,
24   
)

◆ set() [3/5]

set ( h1  ,
'LineWidth'  ,
 
)

◆ set() [4/5]

set ( h2  ,
'LineWidth'  ,
 
)

◆ set() [5/5]

set ( h3  ,
'LineWidth'  ,
,
'LineStyle'  ,
'--'  ,
'Color'  ,
'k'   
)

◆ title() [1/3]

title ( 'Delay between main thread and rx thread'  ) = fopen('tx_result.txt')

◆ title() [2/3]

title ( 'Processing delay'  )

◆ title() [3/3]

title ( 'TX duration'  )

◆ xlabel() [1/4]

xlabel ( 'Delay(us)'  )

◆ xlabel() [2/4]

xlabel ( 'Duration(us)'  )

◆ xlabel() [3/4]

xlabel ( 'Frame id )

◆ xlabel() [4/4]

xlabel ( 'Time(us)'  )

◆ ylabel() [1/3]

ylabel ( 'Delay(us)'  )

◆ ylabel() [2/3]

ylabel ( 'Duration(us)'  )

◆ ylabel() [3/3]

ylabel ( 'Time(us)'  )

Variable Documentation

◆ all_pilot_received

all_pilot_received = temp{4}

◆ avg_fft_duration

avg_fft_duration = mean(fft_duration(subset))

◆ avg_frame_duration

avg_frame_duration = mean(frame_duration(subset))

◆ avg_ifft_duration

avg_ifft_duration = mean(ifft_duration(subset))

◆ avg_precode_duration

avg_precode_duration = mean(frame_duration_precode(subset))

◆ avg_proc_delay

avg_proc_delay = mean(process_delay(subset))

◆ avg_proc_duration

avg_proc_duration = mean(frame_duration_ifft(subset))

◆ avg_proc_start

avg_proc_start = mean(process_start(subset))

◆ avg_rx_duration

avg_rx_duration = mean(frame_duration_rx(subset))

◆ avg_tx_duration

avg_tx_duration = mean(frame_duration_tx(1200:length(frame_duration_tx)-1))

◆ avg_zf_duration

avg_zf_duration = mean(zf_duration(subset))

◆ clf

clf

◆ encode_processed

encode_processed = temp{9}

◆ fft_duration

fft_duration = fft_processed

◆ fft_processed

fft_processed = temp{5}

◆ frame_count

frame_count = length(precode_processed)

◆ frame_duration

frame_duration = diff(frame_start)

◆ frame_duration_encode

frame_duration_encode = encode_processed

◆ frame_duration_fft

frame_duration_fft = fft_processed

◆ frame_duration_ifft

frame_duration_ifft = ifft_processed

◆ frame_duration_precode

frame_duration_precode = precode_processed

◆ frame_duration_processing

frame_duration_processing = max([frame_duration,frame_duration_encode(1:end-1)],[],2)

◆ frame_duration_rx

frame_duration_rx = rx_processed

◆ frame_duration_rx1

frame_duration_rx1 = diff(frame_start)

◆ frame_duration_tx

frame_duration_tx = diff(frame_ends)

◆ frame_duration_zf

frame_duration_zf = zf_processed

◆ frame_ends

frame_ends =temp{1}

◆ frame_start

frame_start = temp{1}

◆ function

Initial value:
= parse_dl_file(filename)
fid = fopen(filename)

◆ h1

h1 = cdfplot(process_delay(subset))

◆ h2

◆ h3

◆ ifft_duration

ifft_duration = ifft_processed - zf_duration

◆ ifft_processed

ifft_processed = temp{8}

◆ index

index = [1:frame_count]

◆ on

grid on

◆ pilot_recv

pilot_recv =temp{2}

◆ pilot_rx_duration

pilot_rx_duration = all_pilot_received

◆ PLOT

PLOT = 0

◆ precode_processed

precode_processed = temp{7}

◆ proc_delay_99th

proc_delay_99th = x_set(1)

◆ process_delay

process_delay = demul_processed-rx_processed

◆ process_start

process_start = temp{3}

◆ queueing_delay

queueing_delay = process_start

◆ rx_processed

rx_processed = temp{10}

◆ std_proc_delay

std_proc_delay = std(process_delay(subset))

◆ std_proc_duration

std_proc_duration = std(frame_duration_ifft(subset))

◆ subset

subset = index(1200:frame_count-2)

◆ temp

temp = textscan(fid,"%f%f%f%f%f%f%f%f%f%f", 'HeaderLines',2)

◆ x_set

x_set = x_proc_delay(f_proc_delay>0.99)

◆ zf_delay_99th

zf_delay_99th = x_set(1)

◆ zf_duration

zf_duration = zf_processed-fft_processed

◆ zf_processed

zf_processed = temp{6}
fid
fid
Definition: parsedata_detail.m:1
filename
filename
Definition: parse_all_dl.m:14