How does MATLAB downsample the output of the linear equalizer in a fractional comm.LinearEqualizer?

8 views (last 30 days)
The documentation for the comm.LinearEqualizer explains that for fractionally spaced equalizers, where the sample rate of the input to the equalizer is an integer multiple of the symbol rate, the output of the equalizer has one sample per symbol. This seems to indicate that the equalizer is performing some sort of downsampling. How does this work?
If I take the final equalizer tap weights ("weights") and convolve them with the input to the equalizer, which is called "Data":
eq = comm.LinearEqualizer;
[FFEout,~,weights] = step(eq,Data,TrainingSequence);
FIRout = conv(Data,conj(weights),'same');
I would expect the output of the convolution to be equal to an interpolated (upsampled). In other words, "FFEout" should be a downsampled version of "FIRout". However, this is not the case, as can be seen in the below plot; the signal is QPSK modulated, so the exact values for the I and Q channels are either +1 or -1.
The plot shows that the equalizer is working as expected (FFEout lines up nicely with the exact data). However, the fact that convolving the signal with the filter tap weights does not seem to correspond to the output of the equalizer has me confused, since the equalizer is just performing a convolution with optimized tap weights. Does MATLAB do something fancier than simple downsampling to obtain the output symbols from the equalizer?

Answers (1)

Sudarsanan A K
Sudarsanan A K on 2 May 2024
Hi Zachary,
The difference between MATLAB's "comm.LinearEqualizer" output ("FFEout") and the downsampled output from a direct convolution ("FIRout") on a QPSK signal can be explained by looking at some of the key aspects of how the equalizer operates:
  • Adaptive Algorithm: The "comm.LinearEqualizer" utilizes an adaptive algorithm that continuously adjusts the equalizer coefficients based on the received signal and known training symbols. This adaptive process allows the equalizer to adapt to changing channel conditions, resulting in improved equalization performance.
  • Fractionally Spaced Equalization: The equalizer operates at a rate higher than the symbol rate, employing fractionally spaced equalization. This involves interpolation and filtering techniques that align with the channel characteristics and the adaptive nature of the equalizer. It ensures accurate symbol recovery and enhances the equalization process.
  • Complex Filtering Process: The "comm.LinearEqualizer" incorporates sophisticated filtering operations, including real-time adjustments to the filters. These filters are designed to capture the signal's characteristics more effectively, leading to improved symbol detection and better equalization performance.
I hope this helps!
  1 Comment
Zachary Fritts
Zachary Fritts on 2 May 2024
Hi Sudarsanan A K, thanks for your reply. I understand that the equalizer is adaptive. However, the output of the equalizer should agree with the output of the FIR filter after the training has ceased - at this point the tap wieghts of the equalizer become constant. It is these tap weights that I am using as the tap weights in my FIR filter. My FIR filter has the same number of samples per symbol as the input to the (fractionally spaced) equalizer: both have 4 samples per symbol. A look at the reference you provided should make it clear that the equalizer is essentially an adaptive FIR filter that somehow performs downsampling. (And in case you are wondering, I have turned off the filter mode which continues to adapt the tap weights after training). Because of this, I do not think any of the factors you mentioned in your answer are sufficient to explain the differences between the FIR filter output and the equalizer output.

Sign in to comment.

Products


Release

R2022a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!