How to do equalization when a frequency-selective channel has been created using comm.RayleighChannel

27 views (last 30 days)
In previous versions of Matlab, one could simulate a frequency-selective fading channel using the following function:
chan = rayleighchan(Ts, fD, tau, Pdb).
To do equalization, the “H” vector could be determined by,
H = fft(chan.PathGains, length(txSignal))
where “txSignal” is the transmitted signal. Note that H is a one-dimensional matrix. This H vector could then be used to do equalizations such as ZF, MMSE etc. For example,
rxSignalEq = rxSignal*conj(H)./abs(H).^2;
where rxSignal is the received signal that becomes rxSignalEq after equalization.
In new versions of Matlab, rayleighchan has been replaced by comm.RayleighChannel. Now the H matrix is to be determined using,
chan = comm.RayleighChannel;
[chanOut, PathGains] = chan(txSignal);
The variable “PathGains” can now be used to find H but for frequency-selective channels, it is no more a vector, it is a matrix having number of rows equal to the number of samples in “txSignal” and the number of columns equal to the number of paths of the frequency-selective channel. Here is my question:
Since the PathGains is now a matrix rather than a vector, how can I use it to do equalizations such as, ZF, MMSE etc.?
While replying to a Matlab user, the Matlab staffer Yue Shang gave his thoughts for a flat fading channel (please refer, https://www.mathworks.com/matlabcentral/answers/373031-how-can-i-simulate-ofdm-with-rayleigh-fading-by-using-communications-system-toolbox). To do this for frequency-selective channel, he referred the readers to go over Indoor MIMO-OFDM Communication Link using Ray Tracing example and in particular the helperIndoorRayTracingRxProcessing function. However, this example is not clear and it is not based upon comm.RayleighChannel. Moreover, it is specific to MIMO-OFDM. What if we are working on a system which is neither MIMO nor OFDM?

Answers (1)

vidyesh
vidyesh on 26 Dec 2023
Hello Imran,
It seems you are interested in performing equalization using the "PathGains" matrix obtained from the ‘chan(txSignal)’ operation.
The "PathGains" matrix is an output that represents the path gains of the channel. It is organized as a matrix with dimensions [Ns, Np], where Ns denotes the number of samples and Np is the number of discrete delay paths.
However, for equalization purposes, you may find it more convenient to work with the "AveragePathGains" property of the channel object. This property provides a vector containing the average gain for each of the discrete delay paths. If ‘chan’ is an instance of the ‘comm.RayleighChannel’ object, you can access this property as follows:
avgPathGains = chan.AveragePathGains;
For further information on the properties and their applications, I recommend reviewing the MATLAB documentation page dedicated to the `comm.RayleighChannel`:
Hope this answer helps

Categories

Find more on Propagation and Channel Models in Help Center and File Exchange

Products


Release

R2021b

Community Treasure Hunt

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

Start Hunting!