www.gusucode.com > wlan工具箱matlab源码程序 > wlan/wlanexamples/vhtSigRecGenerateWaveform.m

    function rxWaveform = vhtSigRecGenerateWaveform(cfgVHTTx,numRx, ...
    delayProfile,noisePower,cfo,numTxPkt,idleTime)
%vhtSigRecGenerateWaveform Featured example helper function
%
%   Generates an impaired multi-packet VHT waveform

%   Copyright 2015-2016 The MathWorks, Inc.

rngState = rng(120); % Set random state
txPSDUPerPkt = randi([0,1],8*cfgVHTTx.PSDULength,1,'int8');

% Generate multi-packet waveform with PSDU repeatedly applied. With each
% packet containing the same PSDU, this enables us to perform packet error
% checking after recovering the packets.
txWave = wlanWaveformGenerator(txPSDUPerPkt,cfgVHTTx, ...
    'NumPackets',numTxPkt,'IdleTime',idleTime);

% Pass through a TGac fading channel with leading zeros
sr = helperSampleRate(cfgVHTTx.ChannelBandwidth);
tgnChannel = wlanTGacChannel( ...
    'SampleRate',             sr, ...
    'DelayProfile',           delayProfile, ...             
    'ChannelBandwidth',       cfgVHTTx.ChannelBandwidth, ...
    'NumTransmitAntennas',    cfgVHTTx.NumTransmitAntennas, ...
    'NumReceiveAntennas',     numRx, ...
    'LargeScaleFadingEffect', 'None'); % No path loss or shadowing
chanOut = tgnChannel( ...
    [zeros(round(idleTime*sr),cfgVHTTx.NumTransmitAntennas); txWave]);

% Add carrier frequency offset
chanOut = helperFrequencyOffset(chanOut, sr, cfo);

% Add noise
awgnChannel = comm.AWGNChannel( ...
    'NoiseMethod', 'Variance', ...
    'Variance',    10^(noisePower/10));
rxWaveform = awgnChannel(chanOut);
rng(rngState); % Restore random state

end