Agora  1.2.0
Agora project
simulate_performance.m File Reference

Functions

 figure (6)
 
 plot (x1, max(y1, y1_1), 'LineWidth', 2)
 
 plot (x2, max(y2, y2_1), 'LineWidth', 2)
 
 plot (x3, max(y3, y3_1), 'LineWidth', 2)
 
 set (gca, 'FontSize', 18)
 
 xlabel ('Number of ZF cores')
 
 ylabel ('Frame processing time(ms)')
 
 legend ({ 'n_{fft}=1', 'n_{fft}=2', 'n_{fft}=3'})
 
 title (sprintf('Total number of cores:%d', n))
 
 ylim ([5, 10])
 
 fprintf ("min number of cores: %d\n", n_min)
 
 disp (n_fft)
 
 disp (x) y1
 
 disp (y1) y1_1
 
 max (y1, y1_1)
 
 min_y (index)
 
 min_x (index)
 
 core_usage_fft (index)
 
 core_usage_zf (index)
 
 core_usage_demod (index)
 
 core_usage_bigstation (index)
 
end figure (7)
 
 plot (n_bigstation, min_y, 'LineWidth', 2)
 
 xlabel ('Total number of cores')
 
 title ('Minimum frame processing time')
 
 figure (38)
 
 plot (n_bigstation, min_x, 'LineWidth', 2)
 
 plot (n_bigstation, n_bigstation-n_fft-min_x, 'LineWidth', 2)
 
 plot (n_bigstation, n_fft *ones(length(n_bigstation), 1), 'LineWidth', 2)
 
 ylabel ('Number of cores')
 
 legend ({ 'n_{zf}', 'n_{demod}', 'n_{fft}'})
 
 title ('Best core assignment policy')
 
 disp (n_bigstation)
 
 disp (n_bigstation-n_fft-min_x)
 
 disp (min_x)
 
 figure (9)
 
 plot (n, y-T, 'LineWidth', 2)
 
 ylabel ('Processing delay(ms)')
 
 title ('Frame Processing delay')
 
 xlim ([14, 34])
 
 figure (19)
 
 plot (n, y, 'LineWidth', 2)
 
 ylabel ('Processing time(ms)')
 
 title ('Frame Processing time')
 
 figure (10)
 
 legend ({ 'BigStation', 'CoMP'})
 
 title ('Frame processing time comparison')
 
 figure (11)
 
 plot (n_bigstation, min_y-T, 'LineWidth', 2)
 
 ylabel ('Latency(ms)')
 
 legend ({ 'BigStation', 'AGORA'})
 
 title ('Frame processing latency comparison')
 
 figure (12)
 
 plot (n_bigstation, core_usage_fft *100, 'LineWidth', 2, 'LineStyle','--')
 
 plot (n_bigstation, core_usage_zf *100, 'LineWidth', 2, 'LineStyle','--')
 
 plot (n_bigstation, core_usage_demod *100, 'LineWidth', 2, 'LineStyle','--')
 
 plot (n_bigstation, core_usage_bigstation *100, 'LineWidth', 2)
 
 plot (n, core_usage_comp *100, 'LineWidth', 2)
 
 ylabel ('Core utilization(%)')
 
 legend ({ 'BigStation:FFT cores', 'BigStation:ZF cores', 'BigStation:Demodulation cores', 'Bigstation average', 'CoMP cores'})
 
 title ('Core utilization')
 
 figure (29)
 
 plot (n, min_y(1:length(n)) -T, 'LineWidth', 2)
 
 plot (n,(demul_done_mean-rx_done_mean)/1000, 'LineWidth', 2) set(gca
 
 legend ({ 'Simulation', 'Measurement'}) % xlim([14
 
 figure (39)
 
 plot (n, min_y(1:length(n)), 'LineWidth', 2)
 
 plot (n, demul_done_mean/1000, 'LineWidth', 2)
 
 plot (n, ones(length(n), 1) *T, 'LineWidth', 2, 'LineStyle','--')
 
 plot (n, rx_done_mean/1000, 'LineWidth', 2, 'LineStyle','--')
 
 legend ({ 'Simulation:data processing time', 'Measurement:data processing time', 'Simulation:frame duration', 'Meausurement:frame duration'})
 
 plot (x1, max(y1, y1_1) -T, 'LineWidth', 2)
 

Variables

 n = 25
 
 M = 8
 
 s = 70
 
 T = 5
 
 sp = 8
 
 T_fft = 2.904
 
 T_csi = 0.39
 
 T_demod = 23.162
 
end BigStation x1 = 9:(n-1-5)
 
 x2 = 9:(n-2-5)
 
 x3 = 9:(n-3-5)
 
 y1 = sp/s*T + T_zf./x1+T_demod./(n-1-x1)
 
 y1_1 = T+1/s*T_demod./(n-1-x1)
 
 y2 = sp/s*T + T_zf./x2+T_demod./(n-2-x2)
 
 y2_1 = T+1/s*T_demod./(n-2-x2)
 
 y3 = sp/s*T + T_zf./x3+T_demod./(n-3-x3)
 
 y3_1 = T+1/s*T_demod./(n-3-x3)
 
 clf
 
hold on
 
 min_y = []
 
 min_x = []
 
 core_usage_fft = []
 
 core_usage_zf = []
 
 core_usage_demod = []
 
 core_usage_bigstation = []
 
 index = 0
 
 n_min = (ceil(T_zf/T)+ceil(T_fft/T)+ceil(T_demod/T))
 
 n_demul_min = ceil(T_demod/T)
 
 n_zf_min = ceil(T_zf/T)
 
 n_bigstation = n_min:30
 
 n_fft = ceil(T_fft/T)
 
 x = n_zf_min:(n-n_fft-n_demul_min)
 
 y = y1
 
 core_usage_comp = (T_fft+T_csi+T_zf+T_demod)./n/T
 
 FontSize
 

Function Documentation

◆ core_usage_bigstation()

core_usage_bigstation ( index  )

◆ core_usage_demod()

core_usage_demod ( index  )

◆ core_usage_fft()

core_usage_fft ( index  )

◆ core_usage_zf()

core_usage_zf ( index  )

◆ disp() [1/6]

disp ( min_x  )

◆ disp() [2/6]

disp ( n_bigstation  )

◆ disp() [3/6]

disp ( n_bigstation-n_fft min_x)

◆ disp() [4/6]

disp ( n_fft  )

◆ disp() [5/6]

disp ( x  )

◆ disp() [6/6]

disp ( y1  )

◆ figure() [1/10]

figure ( 10  )

◆ figure() [2/10]

figure ( 11  )

◆ figure() [3/10]

figure ( 12  )

◆ figure() [4/10]

figure ( 19  )

◆ figure() [5/10]

figure ( 29  )

◆ figure() [6/10]

figure ( 38  )

◆ figure() [7/10]

figure ( 39  )

◆ figure() [8/10]

figure ( )

◆ figure() [9/10]

end figure ( )

◆ figure() [10/10]

figure ( )

◆ fprintf()

fprintf ( "min number of cores: %d\n ,
n_min   
)

◆ legend() [1/7]

legend ( { 'BigStation', 'AGORA'}  )

◆ legend() [2/7]

legend ( { 'BigStation', 'CoMP'}  )

◆ legend() [3/7]

legend ( { 'BigStation:FFT cores', 'BigStation:ZF cores', 'BigStation:Demodulation cores', 'Bigstation average', 'CoMP cores'}  )

◆ legend() [4/7]

legend ( { 'n_{fft}=1', 'n_{fft}=2', 'n_{fft}=3'}  )

◆ legend() [5/7]

legend ( { 'n_{zf}', 'n_{demod}', 'n_{fft}'}  )

◆ legend() [6/7]

legend ( { 'Simulation', 'Measurement'}  )

◆ legend() [7/7]

legend ( { 'Simulation:data processing time', 'Measurement:data processing time', 'Simulation:frame duration', 'Meausurement:frame duration'}  )

◆ max()

max ( y1  ,
y1_1   
)
Here is the caller graph for this function:

◆ min_x()

min_x ( index  )

◆ min_y()

min_y ( index  )

◆ plot() [1/22]

plot ( n  ,
core_usage_comp 100,
'LineWidth'  ,
 
)

◆ plot() [2/22]

plot ( n  ,
demul_done_mean/  1000,
'LineWidth'  ,
 
)

◆ plot() [3/22]

plot ( n  ,
min_y(1:length(n)) -  T,
'LineWidth'  ,
 
)

◆ plot() [4/22]

plot ( n  ,
min_y(1:length(n))  ,
'LineWidth'  ,
 
)

◆ plot() [5/22]

plot ( n  ,
ones(length(n), 1) *  T,
'LineWidth'  ,
,
'LineStyle'  ,
'--'   
)

◆ plot() [6/22]

plot ( n  ,
rx_done_mean/  1000,
'LineWidth'  ,
,
'LineStyle'  ,
'--'   
)

◆ plot() [7/22]

plot ( n  ,
y  ,
'LineWidth'  ,
 
)

◆ plot() [8/22]

plot ( n  ,
y T,
'LineWidth'  ,
 
)

◆ plot() [9/22]

plot ( n  ,
(demul_done_mean-rx_done_mean)/  1000,
'LineWidth'  ,
 
)

◆ plot() [10/22]

plot ( n_bigstation  ,
core_usage_bigstation 100,
'LineWidth'  ,
 
)

◆ plot() [11/22]

plot ( n_bigstation  ,
core_usage_demod 100,
'LineWidth'  ,
,
'LineStyle'  ,
'--'   
)

◆ plot() [12/22]

plot ( n_bigstation  ,
core_usage_fft 100,
'LineWidth'  ,
,
'LineStyle'  ,
'--'   
)

◆ plot() [13/22]

plot ( n_bigstation  ,
core_usage_zf 100,
'LineWidth'  ,
,
'LineStyle'  ,
'--'   
)

◆ plot() [14/22]

plot ( n_bigstation  ,
min_x  ,
'LineWidth'  ,
 
)

◆ plot() [15/22]

plot ( n_bigstation  ,
min_y  ,
'LineWidth'  ,
 
)

◆ plot() [16/22]

plot ( n_bigstation  ,
min_y T,
'LineWidth'  ,
 
)

◆ plot() [17/22]

plot ( n_bigstation  ,
n_bigstation-n_fft min_x,
'LineWidth'  ,
 
)

◆ plot() [18/22]

plot ( n_bigstation  ,
n_fft oneslength(n_bigstation), 1,
'LineWidth'  ,
 
)

◆ plot() [19/22]

plot ( x1  ,
max(y1, y1_1) -  T,
'LineWidth'  ,
 
)

◆ plot() [20/22]

plot ( x1  ,
max(y1, y1_1 ,
'LineWidth'  ,
 
)

◆ plot() [21/22]

plot ( x2  ,
max(y2, y2_1 ,
'LineWidth'  ,
 
)

◆ plot() [22/22]

plot ( x3  ,
max(y3, y3_1 ,
'LineWidth'  ,
 
)

◆ set()

set ( gca  ,
'FontSize ,
18   
)

◆ title() [1/8]

title ( 'Best core assignment policy'  )

◆ title() [2/8]

title ( 'Core utilization'  )

◆ title() [3/8]

title ( 'Frame Processing delay'  )

◆ title() [4/8]

title ( 'Frame processing latency comparison'  )

◆ title() [5/8]

title ( 'Frame processing time comparison'  )

◆ title() [6/8]

title ( 'Frame Processing time'  )

◆ title() [7/8]

title ( 'Minimum frame processing time'  )

◆ title() [8/8]

title ( sprintf( 'Total number of cores:%d', n )

◆ xlabel() [1/2]

xlabel ( 'Number of ZF cores'  )

◆ xlabel() [2/2]

xlabel ( 'Total number of cores'  )

◆ xlim()

xlim ( )
inline
Here is the call graph for this function:

◆ ylabel() [1/6]

ylabel ( 'Core utilization(%)'  )

◆ ylabel() [2/6]

ylabel ( 'Frame processing time(ms)'  )

◆ ylabel() [3/6]

ylabel ( 'Latency(ms)'  )

◆ ylabel() [4/6]

ylabel ( 'Number of cores'  )

◆ ylabel() [5/6]

ylabel ( 'Processing delay(ms)'  )

◆ ylabel() [6/6]

ylabel ( 'Processing time(ms)'  )

◆ ylim()

ylim ( )
inline
Here is the call graph for this function:

Variable Documentation

◆ clf

clf

◆ core_usage_bigstation

core_usage_bigstation = []

◆ core_usage_comp

core_usage_comp = (T_fft+T_csi+T_zf+T_demod)./n/T

◆ core_usage_demod

core_usage_demod = []

◆ core_usage_fft

core_usage_fft = []

◆ core_usage_zf

core_usage_zf = []

◆ FontSize

FontSize

◆ index

index = 0

◆ M

elseif M = 8

◆ min_x

min_x = []

◆ min_y

min_y = []

◆ n

CoMP n = 25

◆ n_bigstation

n_bigstation = n_min:30

◆ n_demul_min

n_demul_min = ceil(T_demod/T)

◆ n_fft

id n_fft = ceil(T_fft/T)

◆ n_min

n_min = (ceil(T_zf/T)+ceil(T_fft/T)+ceil(T_demod/T))

◆ n_zf_min

n_zf_min = ceil(T_zf/T)

◆ on

grid on

◆ s

s = 70

◆ sp

sp = 8

◆ T

T = 5

◆ T_csi

T_csi = 0.39

◆ T_demod

T_demod = 23.162

◆ T_fft

T_fft = 2.904

◆ x

x = n_zf_min:(n-n_fft-n_demul_min)

◆ x1

x1 = 9:(n-1-5)

◆ x2

x2 = 9:(n-2-5)

◆ x3

x3 = 9:(n-3-5)

◆ y

y = y1

◆ y1

y1 = sp/s*T + T_zf./x1+T_demod./(n-1-x1)

◆ y1_1

y1_1 = T+1/s*T_demod./(n-1-x1)

◆ y2

y2 = sp/s*T + T_zf./x2+T_demod./(n-2-x2)

◆ y2_1

y2_1 = T+1/s*T_demod./(n-2-x2)

◆ y3

y3 = sp/s*T + T_zf./x3+T_demod./(n-3-x3)

◆ y3_1

y3_1 = T+1/s*T_demod./(n-3-x3)