Decentralized Feedback Zero Forcing Equalizer

by

 

Describes implementation of decentralized feedback zero forcing equalizer.

simDFEZF
%Author: Alex Dytso
%Date: 02/08/2013
%Description: This code is simulation of decentralized feedback zero
%forcing equalizer. This equalizer is one of the common tools used to
%combat ISI in wireless channels. 
function simDFEZF
clc, clear all
N=8;% length of transmitting sequence

display('Sent symbols')
x=(-1).^(floor(2*rand(1,N))) % creating PAM symbols





%%%%Sending Throught the Channel
g=[0.16, 0.45];% Channel Impulse response


Y=conv(g,x);

%%%% Adding Noise


SNRdB=20;
r=awgn(Y,SNRdB);


Xh = DFEZF(r,g); %applying filter with decoder

display('Received symbols')

Xh=Xh(1:end-1)
end

function Xh = DFEZF(r,g)

%Computing inverse impulse response

f=1/g(1);  %forward filter


b=g(2:end)./g(1);

bD=tf([b,0],1); % backward filter
[numb,denb]=tfdata(bD,'v');



for i=1:length(denb)
    
if denb(i)~=0 %this is done for techinical reasons dut to function filter
denb2=denb;
    
break;

else
     L=i+1;
end

end
denb2=denb(L:end);
%Forward filtering
Yf=filter(f,1,r);


%Feedback
for i=1:length(Yf)
    
    %Hard dicision decoding 
    if Yf(i)>0
        Xh(i)=1;
    else
        Xh(i)=-1;
    end
    
    
    
    Yb=filter(numb,denb2,Xh(i));
    
    if i~=length(Yf)
    Yf(i+1)=Yf(i+1)-Yb;
    end
    
end


end

Contact us