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');
Zitieren als
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. Abgerufen .
Kompatibilität der MATLAB-Version
Plattform-Kompatibilität
Windows macOS LinuxKategorien
Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Live Editor erkunden
Erstellen Sie Skripte mit Code, Ausgabe und formatiertem Text in einem einzigen ausführbaren Dokument.
Version | Veröffentlicht | Versionshinweise | |
---|---|---|---|
1.0.0.0 | code for adaptive modulation |