MATLAB Answers

802.11n Link in Simulink -- interference case scenario

4 views (last 30 days)
Answered: Shashwat Bajpai on 19 Nov 2019
Hello everyone,
First of all I am using Matlab 2019a with the latest update. I reused the Simulink example that's provided by Matlab (wlan/HTLinkModelWLANExample). However, I modified it to simulate packet error rate (PER) in case of very narrow band (VNB) GMSK-based interference (~100Hz) instead of AWGN noise (SNR is actually set to 50 dB). Based on my thorough practical measurements in the anechoic chamber, I was expecting similar results in Simulink, but I got different ones as well as different/unexplained behavior.
The two main issues in Simulink I have trouble with are:
1. Given the same SIR, the PER performance in case the VNB interference coincides with a pilot sub-carrier is better than that when it coincides with a data sub-carrier. This is contradicting with my measurements which clearly indicate the opposite.
2. Given the same SIR, some data sub-carriers (e.g. 12 -- 15) are clearly more resilient to the VNB interference compared to other data sub-carriers (e.g. 16 -- 19). This is again contradicting with my measurements which indicate that the PER performance is more or less the same regardless of which data sub-carrier is interfered with.
I would appreciate any help/suggestion/clarification. Please let me know if more clarification about the simulation/measurements is needed.
p.s. I attached the modified Simulink file.
SIR = total WiFi-signal-power to VNB-interference-power ratio
Thanks in advance.


Sign in to comment.

Answers (2)

Pujitha Narra
Pujitha Narra on 11 Sep 2019
Hi Zaher,
Can you provide the 'zdB2linVR()' function?


MHD ZAHER MAHFOUZ on 11 Sep 2019
Hi Pujitha,
Thanks for your interest.
Here it is;
function linVR=zdB2linVR(dB)
One more thing, you need to change the directory in MATLAB to
Pujitha Narra
Pujitha Narra on 13 Sep 2019
Hi again!
Can you explain the purpose of delay blocks in the module? Also, what were the expected results and what were your findings?
MHD ZAHER MAHFOUZ on 13 Sep 2019
The random delay inside the Transmitter block is just to add to the randomization. Whereas the one between the Transmitter and PER blocks is to compensate for the delay induced by the buffer/unbuffer. The latter is to convert the frame-based signal to sample-based singal and the other way back.
Regarding the second part of your question, please have a look again at issues 1 and 2 in my question. I can also add to them another issue: every runtime, the lost Wi-Fi packets exhibit a different but not random pattern (please refer to the attached images) and I cannot see any correlation in this pattern with the VNB interfering data (which is GMSK based, i.e. constant envelop).

Sign in to comment.

Shashwat Bajpai
Shashwat Bajpai on 19 Nov 2019
I believe performing smoothing on the channel estimate will lead to performance closer to your expectation. In the simulation the channel estimate does not perform any smoothing (averaging over subcarriers). Without smoothing, when a subcarrier is affected by narrowband interference the channel estimate assumes this interference is caused by the channel and treats it as a complex gain for the subcarrier, rather than an offset (which is is). When equalizing the data subcarrier, this incorrect estimate is used to scale and rotate the subcarrier. This in turn causes the decoding to fail. The reason some subcarriers are more susceptible than others is due to the properties of the noise after demodulation. Depending on the subcarrier index the phase of the equalized interference may change per symbol leading to a messy constellation, while on some there is no phase change per symbol and the constellation has a constant offset. The symbol demapper seems to deal with these cases differently, leading to different error rates.
Smoothing the channel estimate will minimize the incorrect gain and rotation applied to the subcarrier during equalization with the narrow band interference as the interference is averaged out. In WLAN Toolbox you can enable smoothing by passing the smoothing span as the third argument to the estimator: wlanHTLTFChannelEstimate(demodHTLTF,cfgHT,span);
Hope this helps!


Sign in to comment.




Community Treasure Hunt

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

Start Hunting!