I recently implemented an MMSE channel equalizer, and I have read about many other types of channel estimation/compensation algorithms out there. However, one thing that is never talked about it how to estimate the number of taps in your model of the channel you are trying to estimate. How is this accomplished?

For example, in the MMSE implementation I have, I know the training sequence, and thus, and use the training sequence to minimize my error. However, what if the channel impulse response is longer than the training sequence? I would never see its effects, and thus its effects on the training sequence will not be seen. How does one then estimate the number of taps needed for channel estimation?



2 Answers 2


What you're looking for is a way to estimate the channel's delay spread. The delay spread is a measure of the effective duration of the channel's impulse response (often caused by multipath, which is useful for deciding how long your equalizing filter must be.

How you go about doing this will vary depending upon the characteristics of your system. A couple potential approaches are:

  • If you have the ability to institute a training period to your communication system, you can use a channel sounding technique to estimate the response of your channel. There are a few ways to do this: you can transmit a short, impulse-like waveform through the channel and directly measure the impulse response, or you could send a waveform with known spectral properties (such as pseudorandom white noise) and measure the frequency response at the receiver. You can then inverse-transform the frequency response to get an estimate of the channel's impulse response. Then, estimate the effective length of the response by inspection of the result. These methods of estimating the delay spread somewhat defeat the purpose of using an adaptive equalizer, but if the channel's delay spread isn't expected to change much during system operation, then it can work.

  • If your waveform has good autocorrelation properties, like a direct-sequence spread spectrum signal or an OFDM waveform with a cyclic prefix, then you can use a correlator-based approach. During the synchronization process for signals such as these, one will often use a correlator (e.g. a matched filter) to obtain accurate symbol timing by searching for peaks in the correlator's output. If there is multipath present in the channel, the correlator output will contain multiple peaks commensurate with the different paths that the signal can take through the channel. The delay spread can be estimated by measuring the duration in time between the first and last peaks.

Just like for equalizers in general, there is a lot of literature out there on methods of delay spread estimation. If you combine that search with the type of system that you're looking to implement, you are more likely to find results that work for your application.

  • $\begingroup$ Thanks Jason, Hmm, I do not have the luxury of the first point in my app, but I am using a direct-sequence spread spectrum system. In the case of an MMSE, where I have a training sequence, it seems to me that even if I know how many taps the channel is, if the delay spread is greater than my training sequence length in time, my MMSE equalizer will never equalize. (The LSE metric will have nothing to correct against). Is the only solution here to increase the training sequence length at the expense of datarate? Perhaps it must always be set to some maximal number? $\endgroup$
    – Spacey
    Commented Sep 26, 2011 at 2:52
  • $\begingroup$ Sorry for not responding earlier. If the channel's impulse response is longer than your equalizer, then yes, you will experience worse performance. Thinking about it qualitatively, if the channel has a response 1000 symbols in length, then each observed symbol is a function of the 999 before it also. How well this would work depends upon the exact shape of the response. $\endgroup$
    – Jason R
    Commented Oct 6, 2011 at 1:25
  • 1
    $\begingroup$ There are a couple reasonable alternatives to making your training sequence really long: blind equalization techniques and decision-directed equalizer structures. One example of blind equalization is the constant-modulus algorithm, which is useful for constant-envelope signals (i.e. phase- or frequency-modulated). $\endgroup$
    – Jason R
    Commented Oct 6, 2011 at 1:28
  • $\begingroup$ A decision-directed equalizer simply assumes that every symbol decision that your receiver makes is correct, feeding the result back into the adaptation process. This effectively treats all received symbols as part of a training sequence, but only works well when you have enough SNR to get a decent symbol error rate to begin with; otherwise you're feeding the adaptive filter with lots of bad information. This is also often used in a hybrid approach, where a training sequence is used for initial acquisition and decision-directed operation is used to track any time-varying channel properties. $\endgroup$
    – Jason R
    Commented Oct 6, 2011 at 1:30
  • $\begingroup$ I looked over the CMA algorithm... what exactly is the 'modulus' of a signal - it seems that this is just the envelope correct? Also, if you are dealing with only one antenna, what are the weights being multiplied against? Softbit samples of each regression vector? Thanks. $\endgroup$
    – Spacey
    Commented Oct 27, 2011 at 3:24

The length of the impulse response is typically related to the frequency resolution of the channel transfer function. As a rule of thumb: the more detail there is in the frequency response, the longer the impulse response will be.

In practice there are a few things you can do: If you have full access to a similar, you can simply measure it with a very long impulse response measurement. Than you can truncate the impulse response and see what happens to the transfer function. The truncation will create errors and this way you can dial in the impulse response length to the point where the error is still tolerable.

You can also use physical knowledge about the channel. For example an audio amplifier has only a few electronic components, all of which are specifically designed to create a flat transfer function with little phase distortion. A handful of samples is fine for that. On the other hand look at a loudspeaker in a room: the sound bounces around with multiple reflections until it finally dies off. In this case you would need many thousands of samples (not practical at all).

Many systems have bandpass or high pass characteristic: all acoustic systems are high pass because air can't transmit DC sound. Most communication systems are band pass since the information needs to stay away from the extreme edges of the band. In these case often the length of the impulse response is determined by the high pass roll off, i.e. the frequency and steepness of the high pass.

  • $\begingroup$ Thanks Hilmar, To be honest, my channel has the potential to be very long, relative to my bit duration. Multipath components affecting the, say, 1000th bit are typical. I am trying to figure out if the only solution here is to just assume my channel is always on this order, have a training sequence of that length more or less, and implement the MMSE that way. Or perhaps there is another type of equalization I can do?... $\endgroup$
    – Spacey
    Commented Sep 26, 2011 at 2:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.