주요 콘텐츠

wlanVHTLTFChannelEstimate

R2026b

Channel estimation using VHT-LTF

Description

chanEst = wlanVHTLTFChannelEstimate(demodSig,cfg) returns the channel estimate, using the demodulated VHT-LTF signal, demodSig, given the parameters specified in wlanVHTConfig object cfg.

example

chanEst = wlanVHTLTFChannelEstimate(demodSig,cbw,numSTS) returns the channel estimate for the specified channel bandwidth, cbw, and the number of space-time streams, numSTS.

[chanEst,chanEstSSPilots] = wlanVHTLTFChannelEstimate(___) returns the channel estimate at each pilot subcarrier location for each demodulated VHT-LTF symbol in addition to any input argument combination from the previous syntaxes. The function assumes that there is one space-time stream at the transmitter.

chanEst = wlanVHTLTFChannelEstimate(___,span) specifies the span of a moving-average filter used to perform frequency smoothing in addition to any argument combination from the previous syntaxes.

example

Examples

collapse all

Create a VHT format configuration object. Generate a VHT waveform based on cfg. Isolate the VHT-LTF field.

cfg = wlanVHTConfig(ChannelBandwidth="CBW20");
txSig = wlanWaveformGenerator(1,cfg);
ind = wlanFieldIndices(cfg,"VHT-LTF");

Multiply the transmitted VHT-LTF signal by 0.3 – 0.15i and pass it through an AWGN channel having a 30 dB signal-to-noise ratio. Demodulate the received signal.

rxSig = awgn(txSig*(0.3-0.15i),30);
rxSig = rxSig(ind(1):ind(2),:);
demodSig = wlanVHTDemodulate(rxSig,'VHT-LTF',cfg);

Estimate the channel response using the demodulated VHT-LTF signal.

chanEst = wlanVHTLTFChannelEstimate(demodSig,cfg);

Plot the channel estimate.

scatterplot(chanEst)
grid

Figure Scatter Plot contains an axes object. The axes object with title Scatter Plot, xlabel In-Phase, ylabel Quadrature contains a line object which displays its values using only markers.

The channel estimate matches the complex channel multiplier.

Estimate and display the channel coefficients of a 4x2 MIMO channel using the VHT-LTF.

Create a VHT format configuration object for a channel having four spatial streams and four transmit antennas. Transmit a complete VHT waveform.

cfg = wlanVHTConfig('NumTransmitAntennas',4, ...
    'NumSpaceTimeStreams',4,'MCS',5);
txWaveform = wlanWaveformGenerator([1;0;0;1;1;0],cfg);

Set the sampling rate, and then pass the transmitted waveform through a 4x2 TGac channel.

fs = 80e6;
tgacChan = wlanTGacChannel('SampleRate',fs, ...
    'NumTransmitAntennas',4,'NumReceiveAntennas',2);
rxWaveform = tgacChan(txWaveform);

Determine the VHT-LTF field indices and demodulate the VHT-LTF from the received waveform.

indVHTLTF = wlanFieldIndices(cfg,'VHT-LTF');
ltfDemodSig = wlanVHTDemodulate(rxWaveform(indVHTLTF(1):indVHTLTF(2),:),'VHT-LTF',cfg);

Generate the channel estimate by using the demodulated VHT-LTF signal. Specify a smoothing filter span of five subcarriers.

[chanEst,chanEstSSPilots] = wlanVHTLTFChannelEstimate(ltfDemodSig,cfg,5);

Plot the magnitude response of the first space-time stream for both receive antennas. Due to the random nature of the fading channel, your results may vary.

plot(abs(chanEst(:,1,1)))
hold on
plot(abs(chanEst(:,1,2)))
xlabel('Subcarrier')
ylabel('Magnitude')
legend('Receive Antenna 1','Receive Antenna 2')

Figure contains an axes object. The axes object with xlabel Subcarrier, ylabel Magnitude contains 2 objects of type line. These objects represent Receive Antenna 1, Receive Antenna 2.

Input Arguments

collapse all

Demodulated VHT-LTF signal, specified as an NST-by-NSYM-by-NR array. NST is the number of occupied subcarriers, NSYM is the number of VHT-LTF OFDM symbols, and NR is the number of receive antennas.

Data Types: single | double
Complex Number Support: Yes

Format configuration, specified as a wlanVHTConfig object.

Channel bandwidth, specified as 'CBW20', 'CBW40', 'CBW80', or 'CBW160'. If the transmission has multiple users, the same channel bandwidth applies to all users.

Data Types: char | string

Number of space-time streams in the transmission, specified as a scalar or vector.

  • For a single user, the number of space-time streams is a scalar integer from 1 to 8.

  • For multiple users, the number of space-time streams is a 1-by-NUsers vector of integers from 1 to 4, where the vector length, NUsers, is an integer from 1 to 4.

Example: [1 3 2] indicates that one space-time stream is assigned to user 1, three space-time streams are assigned to user 2, and two space-time streams are assigned to user 3.

Note

The sum of the space-time stream vector elements must not exceed eight.

Data Types: single | double

Filter span of the frequency smoothing filter, specified as a positive odd integer and expressed as a number of subcarriers. The function applies frequency smoothing only when span is greater than one. See Frequency Smoothing.

Data Types: single | double

Output Arguments

collapse all

Channel estimate between all combinations of space-time streams and receive antennas, returned as an NST-by-NSTS,total-by-NR array. NST is the number of occupied subcarriers. NSTS,total is the total number of space-time streams for all users. For the single-user case, NSTS,total = NSTS. NR is the number of receive antennas. The channel estimate includes coefficients for both the data and pilot subcarriers.

Data Types: single | double
Complex Number Support: Yes

Channel estimate at each pilot subcarrier location for each VHT-LTF symbol, returned as an NSP-by-NLTF-by-NR array. NSP is the number of pilot subcarriers, NLTF is the number of demodulated VHT-LTF OFDM symbols, and NR is the number of receive antennas. The function assumes that the pilot sequence is the same across all space-time streams at the transmitter.

Data Types: single | double
Complex Number Support: Yes

More About

collapse all

References

[1] IEEE Std 802.11-2020 (Revision of IEEE Std 802.11-2016). “Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications.” IEEE Standard for Information Technology — Telecommunications and Information Exchange between Systems — Local and Metropolitan Area Networks — Specific Requirements.

[2] IEEE Std 802.11™-2012 IEEE Standard for Information technology — Telecommunications and information exchange between systems — Local and metropolitan area networks — Specific requirements — Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications.

[3] Perahia, E., and R. Stacey. Next Generation Wireless LANs: 802.11n and 802.11ac. 2nd Edition, United Kingdom: Cambridge University Press, 2013.

Extended Capabilities

expand all

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

Version History

Introduced in R2015b

expand all


1 IEEE Std 802.11-2020 Adapted and reprinted with permission from IEEE. Copyright IEEE 2020. All rights reserved.