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.
% Gain
% Coefficients init. Ck for FFE and Dk for DFE
ck(7)=1;               % Last tap for FFE=1

% 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

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;

    % Coefficient adaptation
    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)];

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

  • $\begingroup$ What do "DFE" and "FFE" stand for? $\endgroup$
    – Jim Clay
    Oct 12, 2014 at 20:14
  • $\begingroup$ DFE: Decision feedback equalizer. FFE: Feed-Forward equalizer. $\endgroup$ Oct 12, 2014 at 21:25

1 Answer 1


If we focus on finite-duration impulse response filters and apply the MSE criterion to optimize the coefficients of the feedback and feedforward filters. this comes from Proakis (5th edition): Structure of decision-feedback equalizer.

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$

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.