# DFE for QPSK in MATLAB

I need to do a DFE for QPSK simulation in MATLAB. The system consists of a QPSK signal transmitted with power = 1 which is then pulse shaped with a square raised-cosine filter. Add AWGN and a filter receptor with ISI = [0.25 1 0.25].

Summarizing and clarifying, the sequence is:

QPSK signal -> Upsample -> Rcosine -> AWGN -> ISI [0.25 1 0.25] -> Downsample -> DFE -> BER counting.

I have coded the algorithm, with guidance from Dig. Comm. Lee-M., but I am thinking about problems with the Feed-Forward filter. The objetive is to obtain a signal with NO ISI, and the correct BER for a given SNR.

The code is:

% DFE.
tapsffe=7;
tapsdfe=8;
% Gain
betaf=0.0001;
betab=0.0001;
% Coefficients init. Ck for FFE and Dk for DFE
ck=zeros(1,tapsffe);
ck(7)=1;               % Last tap for FFE=1
dk=zeros(1,tapsdfe);

% Signal to filtering
rk=zeros(1,tapsffe);  % Signal to filter in FFE
ak=zeros(1,tapsdfe);  % Signal to filter in DFE

% Filtered signal, and correspondings error
n=length(s6);
s7=zeros(1,n);
e7=zeros(1,n);

for k=1:n

rk = [s6(k), rk(1:tapsffe-1)]; % FILTERING in FFE

% Output from Feed-Forward and FeedBack
ykf = sum(rk.*ck);
ykd = sum(ak.*dk);
yk = ykf-ykd;

% Slicer for QPSK. sqrt(2) for POWER = 1.
dec = (-1*(real(yk)<0)+1*(real(yk)>=0) + 1i*(-1*(imag(yk)<0)+1*(imag(yk)>=0)))/sqrt(2);

% Obtained value for filter ecualized signal
s7(k) = dec;

% Error:
error = dec-yk;
e7(k) = error;

ck = ck - betaf*error*conj(rk);
dk = dk + betab*error*conj(ak);

% FILTERING for Feedback filter with SLICER decisions
ak = [dec, ak(1:tapsdfe-1)];
end


Apparently I have problems with the FFE, because I do not see ck taps to accommodate to the inverse of the channel response with ISI. I have little doubt of its coefficients adaptation. Signal for BETA, and adaptation for ck with the corresponding rk, or the fliplr coefficient...

• What do "DFE" and "FFE" stand for? – Jim Clay Oct 12 '14 at 20:14
• DFE: Decision feedback equalizer. FFE: Feed-Forward equalizer. – eduardo.sufan Oct 12 '14 at 21:25

## protected by jojek♦Jul 13 '15 at 15:54

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).