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).

Would you like to answer one of these unanswered questions instead?