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


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.