Pre-ci test passed git-svn-id: http://svn.eurecom.fr/openair4G/trunk@4000 818b1a75-f10b-46b9-bf7c-635c3b92a50f
108 lines
5.1 KiB
Matlab
Executable File
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(:));
|
|
|
|
|
|
|
|
|