How to get the MLSEEqualizer work with IFFT and FFT blocks in the communication system?
Here is I modified it, and it's ok now: 

% Modified Code: IFFT and FFT blocks are used but the system shows worse BER results.
%   Equalize a QPSK signal transmitted through a dispersive channel using MLSE

qpskMod = comm.QPSKModulator(0,'SymbolMapping','Binary');
qpskDemod = comm.QPSKDemodulator(0,'SymbolMapping','Binary');
% Channel coefficients
chCoeffs = [.986; .845; .237; .12345+.31i]; 
N=512; % Modulated signal length
mleq = comm.MLSEEqualizer('TracebackDepth',10,...
                  'Channel',chCoeffs, 'Constellation',[1 1i -1 -1i]);
% Create an error rate calculator
ber = comm.ErrorRate;
for n = 1:10
  data= randi([0 3],N,1);

 % Modulate the data and convert it to time domain.
  modSignalx = step(qpskMod, data);
  modSignal=sqrt(N)*ifft(modSignalx);


  % Introduce channel distortion
  chanOutput = filter(chCoeffs,1,modSignal); 

  % Equalize the channel output and demodulate
  eqSignalx = step(mleq, chanOutput);
  eqSignal=(1/sqrt(N))*fft(eqSignalx);

  demodData = step(qpskDemod, eqSignal);
  % Compute BER
  a = biterr(data(n), demodData(n));

b(n)=a(1); 
end