Code covered by the BSD License

# Capacity Maximization in Multiuser OFDMA system

### Hamid Ramezani (view profile)

The complete project of OFDMA system. It tries to maximize the network capacity.

Paper_ChannelStateInfo.m
```% People can use the results and the codes freely if they refer to this job.
% http://ens.ewi.tudelft.nl/~ramezani/Errata01.pdf
% These Matlab codes are provided by Hamid Ramezani.
% Ver01 - 08-Dec-2011

%% bulding channel coefficients for each user
% generation of complex noise for building channel coefficient for each
% tap and each user according to channel profile delay
chan.h = 1/sqrt(2) .* repmat(sqrt(chan.PDP),1,users.N) .* ...
( randn(chan.L,users.N) + sqrt(-1)*randn(chan.L,users.N));
% channel coefficients in frequency domain
chan.H = zeros(ofdm.N,users.N);
for k = 1 : users.N
chan.H(1:ofdm.N,k) = chan.F(:,1:chan.L) * chan.h(1:chan.L,k);
end

% building MMSE estimated channel coefficients
% here, the estimated channel coeffcients are modeled H^ = H + e
% the e is considered as a complex normal noise with the variance of
% chan.Est.SigmaMMSE according to the reference paper

chan.HhatMMSE = chan.H + ...
1/sqrt(2) .* sqrt(chan.Est.SigmaMMSE) .* ...
(randn(ofdm.N,users.N)+sqrt(-1)*randn(ofdm.N,users.N));

% normalization of variance for MMSE channel estimation according to
% reference [8]
chan.HhatMMSE =  sqrt(1-chan.Est.SigmaMMSE)./sqrt(1+chan.Est.SigmaMMSE) .* ...
chan.HhatMMSE;

%       chan.HhatMMSE =  sqrt(1-chan.Est.SigmaMMSE) * chan.H;
%       chan.H        =  chan.HhatMMSE + ...
%           sqrt(chan.Est.SigmaMMSE/2)*(randn(ofdm.N,users.N)+sqrt(-1)*randn(ofdm.N,users.N));

% building LSE estimation channel coefficients
% for further analysis
chan.HhatLSE = [];
% extracting channel response at data positions
chan.Hdata        = chan.H(ofdm.Is,:);
chan.HhatMMSEdata = chan.HhatMMSE(ofdm.Is,:);
chan.HhatLSEdata  = [];
```