Files
openairinterface5g/openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_rps_SISO.m
T
2013-06-25 09:05:02 +00:00

108 lines
5.1 KiB
Matlab
Executable File

function [Rate_4Qam_1stRx,Rate_16Qam_1stRx,Rate_64Qam_1stRx,Rate_4Qam_2ndRx,...
Rate_16Qam_2ndRx,Rate_64Qam_2ndRx,siso_SNR_1stRx_persecond,...
siso_SNR_2ndRx_persecond,Rate_4Qam_2Rx,Rate_16Qam_2Rx,Rate_64Qam_2Rx,...
siso_SNR_2Rx_persecond,Rate_supportedQam_1stRx,Rate_supportedQam_2ndRx, Rate_supportedQam_2Rx] = calc_rps_SISO(estimates_UE)
capacity_siso_1
[x y z] = size(chcap_siso_single_stream_4Qam_1stRx);
siso_SNR_1stRx_persecond = mean(SNR_eNB_1stRx(:));
siso_SNR_2ndRx_persecond = mean(SNR_eNB_2ndRx(:));
siso_SNR_2Rx_persecond = mean(SNR_eNB_2Rx(:));
% figure
% hold on
% plot(SNR_eNB1, 'b-x');
% Following will hold the data rate of one whole Frame
Frame_DL_sum_4Qam_1stRx = zeros(1, length(estimates_UE));
Frame_DL_sum_16Qam_1stRx = zeros(1,length(estimates_UE));
Frame_DL_sum_64Qam_1stRx = zeros(1,length(estimates_UE));
Frame_DL_sum_supportedQam_1stRx = zeros(1,length(estimates_UE));
Frame_DL_sum_4Qam_2ndRx = zeros(1, length(estimates_UE));
Frame_DL_sum_16Qam_2ndRx = zeros(1,length(estimates_UE));
Frame_DL_sum_64Qam_2ndRx = zeros(1,length(estimates_UE));
Frame_DL_sum_supportedQam_2ndRx = zeros(1,length(estimates_UE));
Frame_DL_sum_4Qam_2Rx = zeros(1, length(estimates_UE));
Frame_DL_sum_16Qam_2Rx = zeros(1,length(estimates_UE));
Frame_DL_sum_64Qam_2Rx = zeros(1,length(estimates_UE));
Frame_DL_sum_supportedQam_2Rx = zeros(1,length(estimates_UE));
for i = 1:length(estimates_UE)
%following holds accumulated data rate of 200 resource elements
RS_sum_4Qam_1stRx = sum(chcap_siso_single_stream_4Qam_1stRx(1,:,i));
RS_sum_16Qam_1stRx = sum(chcap_siso_single_stream_16Qam_1stRx(1,:,i));
RS_sum_64Qam_1stRx = sum(chcap_siso_single_stream_64Qam_1stRx(1,:,i));
RS_sum_supportedQam_1stRx = sum(chcap_siso_single_stream_supportedQam_1stRx(1,:,i));
RS_sum_4Qam_2ndRx = sum(chcap_siso_single_stream_4Qam_2ndRx(1,:,i));
RS_sum_16Qam_2ndRx = sum(chcap_siso_single_stream_16Qam_2ndRx(1,:,i));
RS_sum_64Qam_2ndRx = sum(chcap_siso_single_stream_64Qam_2ndRx(1,:,i));
RS_sum_supportedQam_2ndRx = sum(chcap_siso_single_stream_supportedQam_2ndRx(1,:,i));
RS_sum_4Qam_2Rx = sum(chcap_siso_single_stream_4Qam_2Rx(1,:,i));
RS_sum_16Qam_2Rx = sum(chcap_siso_single_stream_16Qam_2Rx(1,:,i));
RS_sum_64Qam_2Rx = sum(chcap_siso_single_stream_64Qam_2Rx(1,:,i));
RS_sum_supportedQam_2Rx = sum(chcap_siso_single_stream_supportedQam_2Rx(1,:,i));
% The number of RE availiable for the DLSCH is 9 OFDM symbols * 300
% subcarriers - 300 pilots = 2400.
% since 2400/200 = 12 groups of 200 resource elements are there in one subframe, so to get
% the estimate of whole subframe we need to multiply RS_sum_XQam by 12.
Subframe_DL_sum_4Qam_1stRx = RS_sum_4Qam_1stRx * 12;
Subframe_DL_sum_16Qam_1stRx = RS_sum_16Qam_1stRx * 12;
Subframe_DL_sum_64Qam_1stRx = RS_sum_64Qam_1stRx * 12;
Subframe_DL_sum_supportedQam_1stRx = RS_sum_supportedQam_1stRx * 12;
Subframe_DL_sum_4Qam_2ndRx = RS_sum_4Qam_2ndRx * 12;
Subframe_DL_sum_16Qam_2ndRx = RS_sum_16Qam_2ndRx * 12;
Subframe_DL_sum_64Qam_2ndRx = RS_sum_64Qam_2ndRx * 12;
Subframe_DL_sum_supportedQam_2ndRx = RS_sum_supportedQam_2ndRx * 12;
Subframe_DL_sum_4Qam_2Rx = RS_sum_4Qam_2Rx * 12;
Subframe_DL_sum_16Qam_2Rx = RS_sum_16Qam_2Rx * 12;
Subframe_DL_sum_64Qam_2Rx = RS_sum_64Qam_2Rx * 12;
Subframe_DL_sum_supportedQam_2Rx = RS_sum_supportedQam_2Rx * 12;
%In LTE Confguration 3 we have 6 downlink subframes in one frame so
Frame_DL_sum_4Qam_1stRx(i) = Subframe_DL_sum_4Qam_1stRx * 6;
Frame_DL_sum_16Qam_1stRx(i) = Subframe_DL_sum_16Qam_1stRx * 6;
Frame_DL_sum_64Qam_1stRx(i) = Subframe_DL_sum_64Qam_1stRx * 6;
Frame_DL_sum_supportedQam_1stRx(i) = Subframe_DL_sum_supportedQam_1stRx * 6;
Frame_DL_sum_4Qam_2ndRx(i) = Subframe_DL_sum_4Qam_2ndRx * 6;
Frame_DL_sum_16Qam_2ndRx(i) = Subframe_DL_sum_16Qam_2ndRx * 6;
Frame_DL_sum_64Qam_2ndRx(i) = Subframe_DL_sum_64Qam_2ndRx * 6;
Frame_DL_sum_supportedQam_2ndRx(i) = Subframe_DL_sum_supportedQam_2ndRx * 6;
Frame_DL_sum_4Qam_2Rx(i) = Subframe_DL_sum_4Qam_2Rx * 6;
Frame_DL_sum_16Qam_2Rx(i) = Subframe_DL_sum_16Qam_2Rx * 6;
Frame_DL_sum_64Qam_2Rx(i) = Subframe_DL_sum_64Qam_2Rx * 6;
Frame_DL_sum_supportedQam_2Rx(i) = Subframe_DL_sum_supportedQam_2Rx * 6;
end
% add rate of all 100 frames each of 10ms length to compute data rate/sec
Rate_4Qam_1stRx = sum(Frame_DL_sum_4Qam_1stRx(:));
Rate_16Qam_1stRx = sum(Frame_DL_sum_16Qam_1stRx(:));
Rate_64Qam_1stRx = sum(Frame_DL_sum_64Qam_1stRx(:));
Rate_supportedQam_1stRx = sum(Frame_DL_sum_supportedQam_1stRx(:));
Rate_4Qam_2ndRx = sum(Frame_DL_sum_4Qam_2ndRx(:));
Rate_16Qam_2ndRx = sum(Frame_DL_sum_16Qam_2ndRx(:));
Rate_64Qam_2ndRx = sum(Frame_DL_sum_64Qam_2ndRx(:));
Rate_supportedQam_2ndRx = sum(Frame_DL_sum_supportedQam_2ndRx(:));
Rate_4Qam_2Rx = sum(Frame_DL_sum_4Qam_2Rx(:));
Rate_16Qam_2Rx = sum(Frame_DL_sum_16Qam_2Rx(:));
Rate_64Qam_2Rx = sum(Frame_DL_sum_64Qam_2Rx(:));
Rate_supportedQam_2Rx = sum(Frame_DL_sum_supportedQam_2Rx(:));