Code all parts in MATLAB. Finish all parts. Do not copy others.
%% Perfect CsI at Rx only
% ZF - throughput
txsyms = reshape(symvec, floor(Nt, length(symvec)/Nt));
noisemat = sqrt(No) * complex(randn(size(txsyms)), randn(size(txsyms)));
y = H * txsyms + noisemat;
xhatzf = ...; % apply ZF channel estimate
rxvec = xhatzf:;
[detsymvec, detbitvec] = qpskdetect(rxvec);
ser6 = sum(detsymvec ~= symvec) / (Nbits/2);
ber6 = sum(xor(detbitvec, bitvec) / Nbits;
% LMMSE - throughput
xhatlmmse = ...; % apply LMMSE channel estimate
rxvec = xhatlmmse;
[detsymvec, detbitvec] = qpskdetect(rxvec);
ser7 = sum(detsymvec ~= symvec) / (Nbits/2);
ber7 = sum(xor(detbitvec, bitvec) / Nbits;
% ZF - diversity
% do this
% LMMSE - diversity
% do this
(c) Assume perfect channel state information at the receiver. Compute the received symbols as follows:
u + xH = f
where y, u, and n are 2x1 complex vectors, x being a vector containing the 2 QPSK symbols sent simultaneously. Compute the zero-forcing (ZF) and linear minimum mean-squared error (LMMSE) estimated symbols for each transmission:
$ZF = (HHH)^(-1)HHy, iLMMSE = NE
Compute the bit error rate.
(d) Assume perfect channel state information at the transmitter and receiver. Let x be the 2x1 vector of QPSK symbols. Precode x using the right singular matrix if the SVD of H = UEVH, namely, compute = Vx. The received vector is y = H + n. Premultiply y by UH. Demodulate and compute the bit error rate.