# 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

If we focus on finite-duration impulse response filters and apply the MSE criterion to optimize the coefficients of the feedback and feedforward filters. The equalizer output can be expressed as: $$\begin{equation}\hat{I}_{k}=\sum_{j=-K_{1}}^{0} c_{j} v_{k-j}+\sum_{j=1}^{K_{2}} c_{j} \tilde{I}_{k-j}\end{equation}$$

where $$\hat{I}_{k}$$ is an estimate of the $$k$$ th information symbol, $$\left\{c_{j}\right\}$$ are the tap coefficients of the filter, and $$\left\{\tilde{I}_{k-1}, \ldots, \tilde{I}_{k-K_{2}}\right\}$$ are previously detected symbols. The equalizer is assumed to have ( $$K_{1}+1$$ ) taps in its feedforward section and $$K_{2}$$ in its feedback section.

The MSE criterion result in a mathematically tractable optimization of the equalizer coefficients; based on the assumption that previously detected symbols in the feedback filter are correct, the minimization of MSE: $$\begin{equation}J\left(K_{1}, K_{2}\right)=E\left|I_{k}-\hat{I}_{k}\right|^{2}\end{equation}$$ This leads to the following set of linear equations for the coefficients of the feedforward filter:

$$\begin{equation}\sum_{j=-K_{1}}^{0} \psi_{l j} c_{j}=f_{-l}^{*}, \quad l=-K_{1}, \ldots,-1,0\end{equation}$$ where $$\begin{equation}\psi_{l j}=\sum_{m=0}^{-l} f_{m}^{*} f_{m+l-j}+N_{0} \delta_{l j}, \quad l, j=-K_{1}, \ldots,-1,0\end{equation}$$

The coefficients of the feedback filter of the equalizer are given in terms of the coefficients of the feedforward section by the following expression:

$$\begin{equation}c_{k}=-\sum_{j=-K_{1}}^{0} c_{j} f_{k-j}, \quad k=1,2, \ldots, K_{2}\end{equation}$$

The values of the feedback coefficients result in complete elimination of intersymbol interference from previously detected symbols, provided that previous decisions are correct and that $$K_2 > L$$

• Can you be more detailed? The person who asks question should put minimal effort in understanding. – jithin Mar 12 '20 at 8:50
• I've updated my comment. – Abby_DSP Mar 12 '20 at 9:15