# should implementing the MMSE equalizer in time domain and frequency domain give same results?

Assume we have a received signal $$r$$ explained as below:

$$r = h * x + n$$

where $$h, x ,*, n$$ denote to the multi-path channel, transmitted signal, convolution operation and AWGN, respectively.

My question, with assumption the perfect knowledge of channel $$h$$ at receiver side, Is implementing MMSE equalizer in time domain and frequency domain should give the same results?

to clarify the question more, I present below the way of MMSE equalization in time domain and in frequency domain using the above equation based on matlab:

1- MMSE equalizer in frequency domain :

r_fft = fft(r(1:length(x))); %FFT for received signal r;
chan_fft = fft(h,length(x));   %FFT of channel with same length of x
Gz = Gz = conj(chan_fft )./(chan_fft .*conj(chan_fft ) + 1./EbNo_lin); %equalizer
x_eq_f = ifft(r(1:len).*Gz);  %received equalized data


2- MMSE equalizer in time domain domain

    Lc = length(h);          %length of impulse response
La = Lc + 1;             %order of equalizer
L = Lc + La;

b = [h(1) zeros(1,La)];
a = [h  zeros(1,La)];
Clow = toeplitz(a,b);
DEN = ctranspose(Clow)*Clow + sigma_sq*eye(La+1);  %sigma_sq = var(noise)
req = [zeros(1,(L-1)/2) 1 zeros(1,(L-1)/2)];   %required response looks like delta function

NUM = ctranspose(Clow)*req';
coeff_mmse = inv(DEN)*NUM;   %MMSE equaliser coefficients

eq_sig_mmse = conv(r,coeff_mmse); %equalized receive signal

ov_all_ch = conv(h,coeff_mmse);
[C,I] = max(ov_all_ch);  %to obtain synchronization with strong multipath

x_eq_t= eq_sig_mmse(I:end)/C;  %to compensate the delay introduced by channel and equalizer


So, should the output of first case x_eq_f be equivalent into the output of second case x_eq_t ? what's the differences between two above cases? which one is better in performance?

thank you