www.gusucode.com > wlan 源码程序 matlab案例代码 > wlan/CorrectCFOForVHTWaveformExample.m

    %% Estimate and Correct CFO for VHT Waveform
% Estimate the frequency offset for a VHT signal passing through a noisy,
% TGac channel. Correct for the frequency offset.
%%
% Create a VHT configuration object and create the L-LTF.
vht = wlanVHTConfig;
txltf = wlanLLTF(vht);
%%
% Set the sample rate to correspond to the default bandwidth of the VHT
% configuration object.
fs = 80e6;
%%
% Create TGac and thermal noise channel objects. Set the noise figure of
% the AWGN channel to 10 dB.
tgacChan = wlanTGacChannel('SampleRate',fs, ...
    'ChannelBandwidth',vht.ChannelBandwidth, ...
    'DelayProfile','Model-C','LargeScaleFadingEffect','Pathloss');

noise = comm.ThermalNoise('SampleRate',fs, ...
    'NoiseMethod','Noise figure', ...
    'NoiseFigure',10);
%%
% Pass the L-LTF through the noisy TGac channel.
rxltfNoNoise = tgacChan(txltf);
rxltf = noise(rxltfNoNoise);
%%
% Create a phase and frequency offset object and introduce a 25 Hz
% frequency offset.
pfoffset = comm.PhaseFrequencyOffset('SampleRate',fs,'FrequencyOffsetSource','Input port');
rxltf = pfoffset(rxltf,25);
%%
% Perform a fine estimate the frequency offset using a correlation offset
% of 0.6. Your results may differ slightly.
fOffsetEst = wlanFineCFOEstimate(rxltf,vht.ChannelBandwidth,0.6)
%%
% Correct for the estimated frequency offset.
rxltfCorr = pfoffset(rxltf,-fOffsetEst);
%%
% Estimate the frequency offset of the corrected signal.
fOffsetEstCorr = wlanFineCFOEstimate(rxltfCorr,vht.ChannelBandwidth,0.6)
%%
% The corrected signal has negligible frequency offset.