www.gusucode.com > wlan 源码程序 matlab案例代码 > wlan/DelayProfileAndFluorescentLightingEffectsExample.m
%% Delay Profile and Fluorescent Lighting Effects % This example demonstrates the impact of changing the TGac delay profile, % and it shows how fluorescent lighting affects the time response of the % channel. %% Delay Profile Effects % Create VHT configuration object. Set the sample rate to 80 % MHz. vht = wlanVHTConfig; fs = 80e6; %% % Generate random binary data and create a transmit waveform using the % configuration objects. d = randi([0 1],8*vht.PSDULength,1); txSig = wlanWaveformGenerator(d,vht); %% % Create a TGac channel object. Set the delay profile to |'Model-A'|, which % corresponds to flat fading. Disable the large-scale fading effects. tgacChan = wlanTGacChannel('SampleRate',fs, ... 'ChannelBandwidth',vht.ChannelBandwidth, ... 'DelayProfile','Model-A', ... 'LargeScaleFadingEffect','None'); %% % Pass the transmitted waveform through the TGac channel. rxSigA = tgacChan(txSig); %% % Set the delay profile to |'Model-C'|. Model-C corresponds to a multipath % channel having 14 distinct paths, with a 30 ns RMS delay spread. The % maximum delay spread is 200 ns, which corresponds to a coherence % bandwidth of 2.5 MHz. release(tgacChan) tgacChan.DelayProfile = 'Model-C'; %% % Pass the waveform through the model-C channel. rxSigC = tgacChan(txSig); %% % Create a spectrum analyzer and use it to visualize the spectrum of the % received signals. saScope = dsp.SpectrumAnalyzer('SampleRate',fs, ... 'ShowLegend',true,'ChannelNames',{'Model-A','Model-C'}, ... 'SpectralAverages',10); saScope([rxSigA rxSigC]) %% % As expected, the frequency response of the model-A signal is flat across % the 80 MHz bandwidth. Conversely, the model-C frequency response varies % because its coherence bandwidth is much smaller than the channel % bandwidth. %% Fluorescent Effects % Release the TGac channel, and set its delay profile to |'Model-D'|. % Disable the fluorescent lighting effect. release(tgacChan) tgacChan.DelayProfile = 'Model-D'; tgacChan.FluorescentEffect = false; %% % To better illustrate the Doppler effects of fluorescent lighting, change % the bandwidth and sample rate of the channel. Generate a test % waveform of all ones. tgacChan.ChannelBandwidth = 'CBW20'; fs = 20e6; tgacChan.SampleRate = fs; txSig = ones(5e5,1); %% % To ensure repeatability, set the global random number generator to a % fixed value. rng(37) %% % Pass the waveform through the TGac channel. rxSig0 = tgacChan(txSig); %% % Enable the fluorescent lighting effect. Reset the random number % generator, and pass the waveform through the channel. release(tgacChan) tgacChan.FluorescentEffect = true; rng(37) rxSig1 = tgacChan(txSig); %% % Determine the time axis and channel filter delay. t = ((1:size(rxSig0,1))'-1)/fs; fDelay = tgacChan.info.ChannelFilterDelay; %% % Plot the magnitude of the received signals while accounting for the % channel filter delay. plot(t(fDelay+1:end),[abs(rxSig0(fDelay+1:end)) abs(rxSig1(fDelay+1:end))]) xlabel('Time (s)') ylabel('Magnitude (V)') legend('Fluorescent Off','Fluorescent On','location','best') %% % Fluorescent lighting introduces a Doppler component at twice the power % line frequency (120 Hz in the U.S.). %% % Confirm that the peaks are separated by approximately 0.0083 s (inverse % of 120 Hz) by measuring distance between the second and third peaks. [~,loc] = findpeaks(abs(rxSig1(1e5:4e5))); peakTimes = loc/fs; peakSeparation = diff(peakTimes)