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?