1

I want to estimate the impulse response of the channel at the receiver. Assuming some arbitrary impulse response: h=[1 0.2 -0.4 0.0 0.6]. Once the equalizer is constructed, I get the equalizer weights in w1.

Question1) How to get back the channel estimates: Say,

x is the input to the channel,

d is the output of the channel which is the input to the equalizer,

w is the equalizer,

y is the output of the equalizer or is the equalized signal.

Ideally, y and x must be same. Then would the channel estimates be the least square solution i.e., inv(w^Tw)*w*d' or inv(w)?

Question2) Can I apply the LMS method for any source input --- Gaussian and non-Gaussian?

Below is the code for LMS equalizer

N=1000;       
% number of samples       

np = 0.01; 
% noise power is 0.01 
sp = 1; 
% signal power is 1 which implies SNR = 20dB 
h=[1  0.2 -0.4 0.0 0.6];  %unknown   impulse  response       

x = sqrt(sp).*randn(1,N); 
d = conv(x,h); 
d = d(1:N) + sqrt(np).*randn(1,N); 
w0(1) = 0; 
% initial filter weights are 0 
w1(1) = 0; 
mu = 0.005; 
% step size is fixed at 0.005 
y(1) = w0(1)*x(1); 
% iteration at “n=0” 
e(1) = d(1) - y(1); 
% separate because “x(0)” is not defined 
w0(2) = w0(1) + 2*mu*e(1)*x(1); 
w1(2) = w1(1); 

for  n=2:N       

    y(n) = w0(n)*x(n) + w1(n)*x(n-1); 
    e(n) = d(n) - y(n); 
    w0(n+1) = w0(n) + 2*mu*e(n)*x(n); 
    w1(n+1) = w1(n) + 2*mu*e(n)*x(n-1); 
end 
SKM
  • 611
  • 12
  • 27
  • See my answer to this question for the code and example of computing the channel using the solution for the LMS equalizer and also gives more detailed explanation that may help answer your question: https://dsp.stackexchange.com/questions/31318/compensating-loudspeaker-frequency-response-in-an-audio-signal – Dan Boschen Aug 28 '18 at 11:37
  • I went through your answer, thank you for the link. But certain things are not clear. Could you please clarify?(1) I don't know if your source input is assumed to be Gaussian or if LMS can be applied to non-Gaussian inputs as well. (2) If $w$ or h in your answer are the equalizer weights which are calculated assuming tx is known. But in my setting the input to the channel is unknown. (3) $c = h^{-1}$ or is it $t*pinv(r)$ is the channel estimate ? I don't quite get the notations and the method to obtain the channel coefficients. – SKM Aug 28 '18 at 19:56
  • When you say Gaussian source what exactly is Gaussian in your case? Since we are using the source to estimate the frequency response of the channel, I believe it is more important that the source be white, or at least white across the spectrum of interest. To determine the LMS solution using the approach I showed, yes two out of the three unknowns (tx, rx and channel) must be known and then you can solve for the third. If the input to the channel is unknown, and can’t be reliably estimated by decisions then I am not sure how to solve for the channel in that case. – Dan Boschen Aug 28 '18 at 20:07
  • In the bottom graphic in my link, h is the solution for the equalizer coefficients, hence the inverse of the channel. If you swap tx and rx you instead get the response for the channel itself, but again you would need to know tx and rx to solve for the channel. If you don’t know what was transmitted and the only information you have is what was received (and you can’t use that to guess what was transmitted as in a decision directed solution), then I do not know how to solve for the channel. – Dan Boschen Aug 28 '18 at 20:12
  • Thank you for the clarifications. Once I get the equalizer coefficients, then should it be possible to get the channel impulse response as well since you said that the equalizer coefficients is the inverse of the channel. So, the channel is the inverse of the equalizer coefficients? Therefore, estimated channel impulse response = equalizer output/input to the equalizer? – SKM Aug 29 '18 at 07:26
  • As @MattL explained, the typical solution for the equalizer cannot be simply inverted and be stable. I go into further details of the specifics why here https://dsp.stackexchange.com/questions/16448/non-linear-equalizer-vs-linear-equalizer/51563#51563. However, if you have the equalizer coefficients that reliably remove the channel effects and you have the received waveform prior to the equalizer, then the output of the equalizer is the transmitted sequence and from this and the received sequence you can solve for the channel (as in the first link I gave you). – Dan Boschen Aug 29 '18 at 09:38
  • Also to clarify my earlier question on Gaussian- whether a source is Gaussian and whether a source is white are two distinct characteristics: "Gaussian" refers to the distribution of the amplitude with time and "white" refers to the spectral frequency occupancy (white being all frequencies). hence why I suggested that it is more important for it to be white: if the system is linear the amplitude distribution is not a factor, but the frequency content is critical; if a frequency is not present in the tx, we can't determine the magnitude and phase of the channel at that frequency location. – Dan Boschen Aug 29 '18 at 09:52
  • I see, a lot clear now. Last 2 questions: (1)Instead of LMS solution for the channel estimates using the output of the equalizer and received signal, can I go for Least Squares or MLE? (2) Would LMS be applicable to fading FIR channel? Thanks once again. – SKM Aug 29 '18 at 15:41

1 Answers1

2

Note that what you're trying to do is equalization, as opposed to channel estimation. If we ignore the noise for the moment then, ideally, the concatenation of the equalizer and the channel (modeled as a linear system) should be a pure delay:

$$(h\star w)[n]\stackrel{!}{=}\delta[n-K]\tag{1}$$

where $h[n]$ is the channel impulse response, $w[n]$ are the coefficients of the linear equalizer, and $K$ is some delay that depends on the system design. So by using the LMS algorithm to adapt a linear equalizer you do not directly estimate the channel coefficients $h[n]$. As far as I know there is no straightforward way to reliably estimate the channel weights directly from the equalizer weights.

Regarding your second question, the LMS algorithm doesn't require the source signal to be Gaussian.

A final comment on your code: with only $2$ filter taps you won't be able to sufficiently equalize the given channel. And I would recommend to use vectors in the coefficient update, so you can use different filter lengths without changing your code.

Matt L.
  • 89,963
  • 9
  • 79
  • 179
  • thank you for your reply. But I am confused as equalizer coefficients are the inverse of the channel. LMS is estimating the source input which is the output of the equalizer. So, it should be possible to get the channel estimates. I thought $W=h^{-1}$. Blind system identification after equalization should be possible by using the equalizer output divided by the input to the equalizer. Or a least squares solution since now we know the estimated input to the channel (which is obtained from the equalizer output) and we know the output of the channel. – SKM Aug 29 '18 at 07:30
  • This is what I am not sure -- how to estimate the channel using the equalization results -- should it be a least squares solution or simply a division? – SKM Aug 29 '18 at 07:32
  • Just to check, after equalization if I use the equalized signal to obtain a set of estimated channel coeff then that should be close to the actual known channel impulse response, $h$. – SKM Aug 29 '18 at 07:59
  • @SKM: The problem is that generally $1/W(z)$ is not a causal and stable filter, so it's not straightforward to estimate the channel from the equalizer coefficients. – Matt L. Aug 29 '18 at 08:13
  • @MattL. If you reliably solve for the equalizer and have the received waveform before and after the equalizer, then you have the tx waveform before the channel (the output of the equalizer), and the rx waveform after the channel, so from that we can find the solution for the channel. Since the tx is found from the rx and equalizer coefficients, then we should be able to directly solve for the channel from the equalizer coefficients and either the waveform before or after the equalizer? – Dan Boschen Aug 29 '18 at 09:33
  • @DanBoschen: But this is based on the assumption that you can solve for the tx waveform given the equalizer weights and the rx waveform, but if the equalizer is not minimum-phase you can't invert it with a causal and stable filter. – Matt L. Aug 29 '18 at 10:02
  • @MattL.I don't mean invert it to solve, I mean use the Wiener-Hopf equations to find the channel, just as we do to find the equalizer (swap Tx and Rx and follow the same process and you get the channel as the LMS solution, since you have the Tx and Rx waveform if you have the equalizer and the Rx). This is what I described here: https://dsp.stackexchange.com/questions/31318/compensating-loudspeaker-frequency-response-in-an-audio-signal. If the equalizer is correct with sufficient span, and the channel is noise free and linear then the output of the equalizer is the Tx sequence. – Dan Boschen Aug 29 '18 at 10:08
  • So depending on SNR this will approach an LMS solution of the channel. – Dan Boschen Aug 29 '18 at 10:11
  • @DanBoschen: Right, in practice this will probably best work if the tx sequence is known, i.e., with a training sequence. What seems to remain an issue is that the OP thinks that the channel can be directly estimated/computed from the equalizer weights, and I don't think that in general there's a simple way to do that. – Matt L. Aug 29 '18 at 11:10