SYSTEM SPECIFICATIONS:
1) 128 Subcarriers used
2) Guard tones in first 8 and last 7 subcarriers to keep check on adjacent channel interference
3) DC guard at subcarrier 64 to keep check on PAPR
4) 8 tap Rayleigh fading channel with exponential PDP
5) Cyclic prefix length of 16
6) BPSK modulation
7) Pilot spacing of 4 subcarriers
MATLAB CODE:
clc;
clear all;
close all;
for j=1:8
wf(1,j)=(1)./exp(j-1); %FOR EXPONENTIAL PDP
end
a=1; %BPSK MODULATION OF FIXED POWER
N=128; %NUMBER OF SUB-CARRIERS
SNRstart=-10;
SNRend=30; %DEFINITION OF SNR RANGE OVER WHICH WE SIMULATE
snr=SNRstart:SNRend;
for SNR=SNRstart:SNRend
for chnlno=1:power(10,2) %TIME VARYING CHANNEL FOR EVERY SNR
databits=rand(1,128); %DATA BITS
for i=1:length(databits)
if databits(i)<0.5
sym(i)=a;
else %MAPPING BITS TO BPSK CONSTELLATION
sym(i)=-a;
end
end
for i=1:8
sym(i)=0; %GUARD TONES
end
for i=121:128
sym(i)=0; %GUARD TONES
end
for i=9:4:117
sym(i)=a; %PILOTS WITH SPACING OF 4 SUBCARRIERS
end
sym(64)=0; %DC GUARD
pilotvector=a*ones(1,28);
X=diag(pilotvector); %REPRESENTING PILOT IN MATRIX FORM FOR EQUALIZATION ALGORITHMS
%SYMBOL SEQUENCE GENERATED WITH GUARD TONES AND PILOTS
xi=ifft(sym,128);
for i=113:128
cp(i-112)=xi(i);
end
x=horzcat(cp,xi);
%INSERTED CP. READY FOR TRANSMISSION
hi=((1/sqrt(2))*randn(8,2)); %1/sqrt(2) to make variance of each dimension 1/2
for j=1:length(hi)
hi2(1,j)=hi(j,1)+sqrt(-1)*hi(j,2);
end
h=(wf).*(hi2);
%FREQ. SELECTIVE RAYLEIGH FADING CHANNEL GENERATED WITH EXPONENTIAL PDP
chf=fft(h,128);
chfp=chf(9:4:117); %CHANNEL FREQUENCY RESPONSE AT PILOT LOCATIONS
ynn=conv(x,h);
ynnc=cconv(xi,h,128);
sigma=(1)/(sqrt(2*(power(10,(SNR/10)))));
noisei=(sigma)*randn(length(ynn),2);
for j=1:length(ynn)
noise(1,j)=noisei(j,1)+sqrt(-1)*noisei(j,2);
end
y=ynn+noise;
%SIGNAL TRANSMITTED THRU RAYLEIGH AWGN CHANNEL
for i=17:144
yhi(i-16)=y(i);
end
%CP REMOVED
yh=fft(yhi);
%DATA DEMODULATED
flag=0;
for i=9:4:117
flag=flag+1;
Yp(flag,1)=yh(i);
end
%DATA EXTRACTED FROM PILOT TONES
D=diag(a*ones(flag,1));
cefpi=(D')*(Yp); % ' STANDS FOR HERMITION. THIS CASE, D and D' ARE JUST IDENTITY MATRICES. (a=1)
cet=ifft(cefpi);
for i=17:length(cet)
cet(i)=0; % REMOVING NOISE SINCE WE KNOW THAT CP LENGTH IS ONLY 16
end
cefproc=fft(cet,28); % DFT BASED LS ESTIMATE
%TIME DOMAIN PROCESSING DONE TO SUPPRESS NOISE
Fmi=dftmtx(128);
flag=0;
for i=9:4:117
flag=flag+1;
Fmi2(flag,:)=Fmi(i,:);
end
nullingmatrx=zeros(128,8);
for i=1:8
nullingmatrx(i,i)=1;
end
Fm=Fmi2*nullingmatrx; %Modified DFT Matrix for MMSE equalizer
Hcapfdls(:,chnlno)=X\Yp; %Freq. domain LS. Same as Yp since X is identity for our choice of pilot
Hcapmmse(:,chnlno)=pinv(Fm)*Yp; %MMSE estimate.
Hcapdftmmse(:,chnlno)=pinv(Fm)*cefproc; %DFT Based MMSE.
MSEi(chnlno)=(1/length(chfp))*(sum(power((abs(cefproc-transpose(chfp))),2)));
MSEfdlsi(chnlno)=(1/length(chfp))*(sum(power((abs(Hcapfdls(:,chnlno)-transpose(chfp))),2)));
MSEmmsei(chnlno)=(1/length(h))*(sum(power((abs(Hcapmmse(:,chnlno)-transpose(h))),2)));
MSEdftmmsei(chnlno)=(1/length(h))*(sum(power((abs(Hcapdftmmse(:,chnlno)-transpose(h))),2)));
end
MSE(SNR-SNRstart+1)=(1/chnlno)*sum(MSEi);
MSEfdls(SNR-SNRstart+1)=(1/chnlno)*sum(MSEfdlsi);
MSEmmse(SNR-SNRstart+1)=(1/chnlno)*sum(MSEmmsei);
MSEdftmmse(SNR-SNRstart+1)=(1/chnlno)*sum(MSEdftmmsei);
end
figure(1);
semilogy(snr,MSEfdls,snr,MSE,snr,MSEmmse,snr,MSEdftmmse,'linewidth',1.5);
legend('LEAST SQUARES','DFT BASED LEAST SQUARES','MMSE','DFT BASED MMSE');
xlim([-5 30]);
xlabel('SNR IN dB ------>');
ylabel('MEAN SQUARE ERROR');
title('COMPARISON OF DIFFERENT CHANNEL ESTIMATION TECHNIQUES FOR CP-OFDM SYSTEMS');
grid;
MSE PLOTS:
SOME PHILOSOPHY:
1) Transmitting RF amplifier limits PAPR of the transmitted signal. The RF industry has caught up with this problem. Nevertheless, from power efficiency point of view, it makes sense to restrict the PAPR. The power amplifiers, even today, are only about 50%-60% power efficient. An easy way of limiting PAPR is to use a DC guard.
2) DFT based MMSE and DFT based LS perform better than MMSE alone and LS alone, respectively. This is expected since we suppress noise in DFT based estimates by exploiting the knowledge of channel impulse response length.
QUESTIONS:
1) I am not sure if DFT based LS will perform better than MMSE. My results say otherwise. Does anybody know for sure that MMSE performs better than DFT based LS? Any published reference that compares DFT based LS and MMSE?
No comments:
Post a Comment