As the Title suggests, I am trying to design a Weiner Filter for getting the lower bound on my LTE channel estimation algorithm.
To give you a high level on the chain, First after generating the waveform using the LTE toolbox, it is passed through a LTE fading channel after which I add noise to the signal(AWGN).
Now at the estimation block, the pilots from the signal after demodulation are extracted and Least Square Estimation is performed on the same.
To apply the Wiener Filter now, I am auto correlating the LSE values. cross correlating the LSE values with the Perfect channel estimate obtained using the toolbox. The weights are computed using Inverse of the Toeplitz matrix of the positive lags from the auto correlated sequence. The weights are then used to filter across the LSE values.
I am not getting the results as expected. Can someone please tell me if I am doing something wrong? Please find some sample code below of the wiener filter process used.
autoCorr = xcorr(LSE.Values,x,'unbiased'); crossCorr = xcorr(LSE.Values,PerfectChannelEstimate.Values,x,'unbiased'); autoCorrFilter = autoCorr(x+1:end); crossCorrFilter = crossCorr(x+1:end); autoCorrToep = toeplitz(autoCorrFilter); Weights = autoCorrToep \ crossCorrFilter'; WienerOut = filter(Weights,1,LSE.Values);