Does the WLAN Toolbox support WLAN full duplex communication?
MATLAB: Does the WLAN Toolbox support WLAN full duplex communication
WLAN Toolbox
Related Solutions
In general, it would be possible to make changes to the existing algorithms and function implementations as per the user's requirements.
1. When comparing 10 MHz 802.11p with 20 MHz 802.11a, the actual baseband waveform at the physical layer is the same, but the symbol duration is doubled (8us vs 4 us where us stands for microseconds) and the sub-carrier spacing is halved (156.25 kHz vs 312.5 kHz). Therefore, when we generate a waveform with 'CBW10', the waveform is identical to 'CBW20'. Knowledge of the actual bandwidth is used outside generation for applying impairments such as frequency offsets, and channel models.
If you want to simulate a similar scheme with VHT (double the symbol duration and half the subcarrier spacing to operate in a 10 MHz bandwidth), then you can keep working with
ChannelBandwidth = 'CBW20'
for baseband processing, and only use the true sample rate when working with impairments. Alternatively, if you wish to keep the sub-carrier spacing the same for 20 MHz and 10 MHz then you would need to modify the code to change the FFT size, mapping of data, and pilots sub-carriers etc, which is possible but not trivial.
For instance, when considering the shipped example '802.11ac Packet Error Rate Simulation for 8x8 TGac channel'
you might be interested in halving the subcarrier spacing to create a 10 MHz waveform (e.g. 156.25 kHz instead of 312.5 kHz similar to the 802.11p standard). For accomplishing this, set:
cfgVHT.ChannelBandwidth = 'CBW20';
Also, manually set sampling frequency 'fs' to '10e6'. This will use a 64-point FFT at 10 MHz when generating/demodulating the waveform and therefore simulates a subcarrier spacing of 156.25 kHz.
2) WLAN Toolbox is all open m-code, therefore, you can replace the equalizer if you wish. For example, the current equalization algorithm is visible on line 308 to 313 of wlanVHTDataRecover:
% Equalization
if cfgVHT.STBC % Only SU
[eqDataSym, dataCSI] = wlan.internal.wlanSTBCCombine(ofdmDemodData, chanEstData, numSS, eqMethod, noiseVarEst);else % Both SU and MU
[eqDataSym, dataCSI] = wlan.internal.wlanEqualize(ofdmDemodData, chanEstData(:,stsIdx,:), eqMethod, noiseVarEst);end
This could be replaced with your custom algorithm to create the equalized data symbols.
Consider this MATLAB R2018b example which demonstrates a decision directed channel estimation algorithm and receiver for 802.11p:
Hi Asmaa,
1) The OQPSK modulator provides a baseband signal, not a passband signal. The motivation behind baseband processing is speed. It is much faster to generate or simulate a signal at baseband frequencies than at 2.4 GHz. Why exactly are you looking for passband operation? If you want to do the actual transmission at 2.4 GHz with a radio, then you can simply pass the baseband signal to the transmitter block (or System object) and this transmitter will do the upconversion to 2.4 GHz for you. No need to start with a passband OQPSK signal.
2) Be aware that ZigBee and IEEE 802.15.4 use half-sine pulses. The OQSPK tools of the Communication System Toolbox upsample the input signal (as of R2016b; see doc note), and a subsequent filtering operation will probably not produce the desired result. You will be better off if you conduct a joint modulation and filtering operation in this order (e.g., with a MATLAB Function block, or with 3 blocks in Simulink):
a. Split bits to odd (I) and even (Q)
b. Filter both I & Q streams for half-sine pulses
c. Delay the even-bit stream (Q) by half a simple and make a complex waveform I + j*Q
Tasos
Best Answer