How does MATLAB downsample the output of the linear equalizer in a fractional comm.LinearEqualizer?
6 views (last 30 days)
Show older comments
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?
1 Comment
Answers (1)
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!
See Also
Categories
Find more on Multirate Signal Processing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!