ADAPTIVE MODULATION OFDM LTE GENERAL CODE
clc;
clear all;
close all;
%assigning the variables
N = 1536;
bw = 15*10^6;
T = 1/bw;
SNR = 10:1:30;
BER_tar = 10^(-3);
% finding the target snr
M=[2 4 16 64];
for i=1:length(M)
if M(i)==2
SNR_tar(i)=((M(i)-1)*log(.5*10^(-3)))/(-1.5);
else
SNR_tar(i)=((M(i)-1)*log(5*10^(-3)))/(-1.5);
end
end
%Indoor delay
in_delay = [0 50 110 170 290 310];
N_tap = ceil(max(in_delay)*(10^(-9))/T);
c_in = zeros(1,N_tap+1);
c_tap = ceil(in_delay./50)+1;
inPwr_dB = [0 -3 -10 -18 -26 -32];%% power in dB
inPwr = 10.^(inPwr_dB/10);%% converting to linear scale
c_r = abs(((inPwr/2).*randn(1,length(inPwr)))+((inPwr/2).*randn(1,length(inPwr)))*1i);
for k=1:length(c_tap)
c_in(c_tap(k))=c_r(k);
end
hf = fft(c_in,1536);
for s=1:length(SNR)
recSNR = abs(hf.*SNR(s));
for i=1:length(recSNR)
if recSNR(i) < SNR_tar(1)
b(i) = 1;
elseif ((recSNR(i) > SNR_tar(1))&&(recSNR(i) < SNR_tar(2)))
b(i) = 2;
elseif ((recSNR(i) > SNR_tar(2))&&(recSNR(i) < SNR_tar(3)))
b(i) = 4;
else
b(i) = 8;
end
end
spec_indoor(s) = mean(b);
end
% Finding the multipath channel response
out_delay = [0 10 90 135 230 275 310 420 630 635 745 815 830 1430 1790 2075];
N_tap = ceil(max(out_delay)*(10^(-9))/T);
c_out = zeros(1,N_tap+1);
c_tap = ceil(out_delay./50)+1;
outPwr_dB = [-2.6 -8.5 -14.8 -17.5 -19.2 -18.8 -14.9 -14.9 -22.1 -10.3 -22.2 -19.2 -16 -22.9 -20.3 -27.4];
outPwr = 10.^(outPwr_dB/10);
c_r = abs(((outPwr/2).*randn(1,length(outPwr)))+((outPwr/2).*randn(1,length(outPwr)))*1i);
for k=1:length(c_tap)
c_out(c_tap(k))=c_r(k);
end
hf = fft(c_out,1536);
for s=1:length(SNR)
recSNR = abs(hf.*SNR(s));
for i=1:length(recSNR)
if recSNR(i) < SNR_tar(1)
b(i) = 1;
elseif ((recSNR(i) > SNR_tar(1))&&(recSNR(i) < SNR_tar(2)))
b(i) = 2;
elseif ((recSNR(i) > SNR_tar(2))&&(recSNR(i) < SNR_tar(3)))
b(i) = 4;
else
b(i) = 8;
end
end
spec_outdoor(s) = mean(b);
end
plot(SNR, spec_indoor,'r');
hold on;
plot(SNR, spec_outdoor,'b');
grid on;
title('Adaptive Modulation');
xlabel('SNR (db)');
ylabel('Spectral efficiency in bits/Hz');
legend('Indoor','Outdoor');
Citar como
raghav khandelwal (2024). ADAPTIVE MODULATION OFDM LTE GENERAL CODE (https://www.mathworks.com/matlabcentral/fileexchange/50847-adaptive-modulation-ofdm-lte-general-code), MATLAB Central File Exchange. Recuperado .
Compatibilidad con la versión de MATLAB
Compatibilidad con las plataformas
Windows macOS LinuxCategorías
Etiquetas
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Descubra Live Editor
Cree scripts con código, salida y texto formateado en un documento ejecutable.
Versión | Publicado | Notas de la versión | |
---|---|---|---|
1.0.0.0 | code for adaptive modulation |