Измерения датчика 802.11ac

Этот пример показывает, как выполнить эти измерения передатчика на 802.11ac™ сигнале IEEE ®:

  • Точность модуляции

  • Спектральная эмиссионная маска

  • Плоскостность спектра

  • Синфазный и квадратурный (IQ) коэффициент усиления и разбаланса фазы

Введение

Точность модуляции передатчика, необходимая маска спектра и необходимая спектральная плоскостность для заданного строения указаны в [разделе 21.3.17 из 1]. Этот пример показывает, как выполнить эти измерения на форме волны. Этот пример также моделей, измеряет и корректирует коэффициент усиления и разбаланса фазы IQ. Сгенерируйте форму волны с помощью WLAN Toolbox™ или используйте захваченную форму волны с спектром анализатором.

Пример генерирует 20 пакетов VHT с пропускной способностью канала 80 МГц и 10 микросекундной погрешностью между пакетами. Каждый пакет содержит случайные данные и использует 256-QAM модуляцию. Чтобы уменьшить внеполосные эммиссии и удовлетворить требованиям спектральной маски, улучшайте и фильтруйте форму волны основной полосы. Добавьте коэффициент усиления и разбаланса фазы Q к отфильтрованной форме волны. Используйте модель усилителя высокой мощности (HPA), чтобы ввести внутриполосное искажение и спектральное возрождение. Выполните измерение спектральной эмиссионной маски на усиленной форме волны после моделирования усилителя высокой мощности. Понижайте и корректируйте форму волны с помощью расчетных коэффициентов усиления и разбаланса фазы. Измерьте величину вектора ошибок (EVM) поля VHT Data, чтобы определить точность модуляции. Дополнительно измерьте спектральную плоскостность. Эта схема показывает рабочий процесс, содержащийся в примере.

Пакетные

Строения IEEE 802.11ac VHT

Этот пример генерирует сигнал IEEE 802.11ac, состоящий из нескольких пакетов в формате VHT. Используйте объект строения формата VHT, wlanVHTConfig, для конфигурирования свойств передачи VHT-пакета. Этот пример конфигурирует сигнал VHT для полосы пропускания 80 МГц. Поскольку этот пример не использует пространственно-временное блочное кодирование, он может измерить точность модуляции для пространственного потока.

cfgVHT = wlanVHTConfig;            % Create packet configuration
cfgVHT.ChannelBandwidth = 'CBW80'; % 80 MHz
cfgVHT.NumTransmitAntennas = 1;    % One transmit antenna
cfgVHT.NumSpaceTimeStreams = 1;    % One space-time stream
cfgVHT.STBC = false;               % No STBC so one spatial stream
cfgVHT.MCS = 8;                    % Modulation: 256-QAM
cfgVHT.APEPLength = 3000;          % A-MPDU length pre-EOF padding in bytes

Генерация сигналов основной полосы частот

Сгенерируйте сигнал VHT для заданных бит и строения с помощью wlanWaveformGenerator функция, задающая требуемый коэффициент избыточной дискретизации, количество пакетов и время простоя между каждым пакетом.

numPackets = 20;  % Generate 20 packets
idleTime = 10e-6; % 10 microseconds idle time between packets

Создайте случайные биты для всех пакетов, data, и передайте как аргумент wlanWaveformGenerator наряду с объектом строения пакета VHT cfgVHT. Это конфигурирует генератор формы волны для синтеза формы волны VHT 802.11ac. Кроме того, сконфигурируйте генератор формы сигнала с помощью пар "имя-значение", чтобы сгенерировать несколько пакетов с заданным временем простоя между каждым пакетом.

% Create random data; PSDULength is in bytes
savedState = rng(0); % Set random state
data = randi([0 1],cfgVHT.PSDULength*8*numPackets,1);

% Generate a multi-packet waveform
txWaveform = wlanWaveformGenerator(data,cfgVHT, ...
    'NumPackets',numPackets,'IdleTime',idleTime);

% Get the sampling rate of the waveform
fs = wlanSampleRate(cfgVHT);
disp(['Baseband sampling rate: ' num2str(fs/1e6) ' Msps']);
Baseband sampling rate: 80 Msps

Избыточная дискретизация и фильтрация

Используйте спектральную фильтрацию, чтобы уменьшить внеполосные спектральные выбросы за счет неявного прямоугольного формирования импульса в модуляции OFDM и спектрального восстановления, вызванного моделью усилителя высокой мощности. Увеличьте форму волны, чтобы смоделировать эффект усилителя высокой мощности и просмотреть внеполосные спектральные выбросы. Избыточная дискретизация требует интерполяционного фильтра, чтобы удалить спектральные изображения, вызванные повышенной дискретизацией. Этот пример переизбирает форму волны с помощью интерполяционного фильтра, который действует как спектральный фильтр и позволяет форме волны удовлетворять требования к спектральной маске. Сверхвыборка и фильтрация формы волны при помощи dsp.FIRInterpolator System object(TM).

% Oversample the waveform
osf = 3;         % Oversampling factor
filterLen = 120; % Filter length
beta = 0.5;      % Design parameter for Kaiser window

% Generate filter coefficients
coeffs = osf.*firnyquist(filterLen,osf,kaiser(filterLen+1,beta));
coeffs = coeffs(1:end-1); % Remove trailing zero
interpolationFilter = dsp.FIRInterpolator(osf,'Numerator',coeffs);
txWaveform = interpolationFilter(txWaveform);

% Plot the magnitude and phase response of the filter applied after
% oversampling
h = fvtool(interpolationFilter);
h.Analysis = 'freq';           % Plot magnitude and phase responses
h.FS = osf*fs;                 % Set sampling rate
h.NormalizedFrequency = 'off'; % Plot responses against frequency

Моделирование дисбаланса Q

Дисбаланс IQ возникает, когда передний компонент не уважает баланс степени или ортогональность между I и Q ветвями. Этот пример добавляет коэффициент усиления и разбаланс фазы к переданной форме волны на основе флага modelIQImbalance. В получателе оцените коэффициент усиления и фазовый дисбаланс и исправьте сигнал по схеме компенсации, указанной в [5].

modelIQImbalance = true; % Set to true to add IQ gain and phase imbalance

if modelIQImbalance
    iqGaindB = 1; % IQ gain imbalance in dB, specify from the range [-1 1]
    iqPhaseDeg = 1; % IQ phase imbalance in degrees, specify from the range [-2 2]
    iqGainLin = db2mag(iqGaindB); % Convert gain from dB to linear value
    txWaveform = real(txWaveform) + 1i*imag(txWaveform)*iqGainLin*exp(1j*iqPhaseDeg*pi/180); % As specified in Equation-1 of [5]
end

Моделирование усилителя высокой мощности

Усилитель высокой мощности вводит нелинейное поведение в виде внутриполосного искажения и спектрального восстановления. Этот пример моделирует усилители степени с помощью модели Rapp в 802.11ac [2], которая представляет искажение AM/AM.

Моделируйте усилитель при помощи comm.MemorylessNonlinearity Объект и сконфигурируйте уменьшенные искажения путем определения отката, hpaBackoffтаким образом усилитель действует ниже своей точки насыщения. Можно увеличить откат, чтобы уменьшить EVM для более высоких значений MCS.

pSaturation = 25; % Saturation power of a power amplifier in dBm
hpaBackoff = 13; % Power amplifier backoff in dB

% Create and configure a memoryless nonlinearity to model the amplifier
nonLinearity = comm.MemorylessNonlinearity;
nonLinearity.Method = 'Rapp model';
nonLinearity.Smoothness = 3; % p parameter
nonLinearity.LinearGain = -hpaBackoff;
nonLinearity.OutputSaturationLevel = db2mag(pSaturation-30);

% Apply the model to each transmit antenna
for i=1:cfgVHT.NumTransmitAntennas
    txWaveform(:,i) = nonLinearity(txWaveform(:,i));
end

Добавьте тепловой шум к форме волны, задав 6 дБ шум приемника, рисунок [3].

NF = 6;         % Noise figure (dB)
BW = fs*osf;    % Bandwidth (Hz)
k = 1.3806e-23; % Boltzman constant (J/K)
T = 290;        % Ambient temperature (K)
noisePower = 10*log10(k*T*BW)+NF;

awgnChannel = comm.AWGNChannel('NoiseMethod','Variance', ...
    'Variance',10^(noisePower/10));
txWaveform = awgnChannel(txWaveform);

Точность модуляции (EVM), спектральная плоскостность и измерения дисбаланса Q

Повторная выборка избыточно дискретизированной формы волны в полосу базовых частот для обработки физического слоя и измерений EVM, спектральной плоскостности и дисбаланса Q. В качестве части повторной дискретизации примените фильтр сглаживания lowpass перед понижением дискретизации. Влияние lowpass фильтра видно при измерении спектральной плоскостности. Повторно отобразите форму волны в полосу модулирующих частот с помощью dsp.FIRDecimator System object(TM) с одинаковыми коэффициентами, coeffs, используется для избыточной дискретизации в разделе «Избыточная дискретизация и фильтрация».

% Resample the waveform to baseband
decimationFilter = dsp.FIRDecimator(osf,'Numerator',coeffs);
rxWaveform = decimationFilter(txWaveform);

Этот раздел обнаруживает, синхронизирует и извлекает каждый пакет в rxWaveform, затем измеряет EVM, спектральную плоскостность и дисбаланс IQ. Для каждого пакета пример выполняет следующие шаги:

  • Обнаружение начала пакета

  • Извлечение полей, отличных от HT

  • Оцените и исправьте крупное смещение частоты несущей (CFO)

  • Выполните оценку точного символа времени при помощи исправленных по частоте не-HT полей

  • Извлеките пакет из формы волны с помощью смещения синхронизации тонкого символа

  • Исправьте извлеченный пакет с помощью грубой оценки CFO

  • Извлеките L-LTF, затем оцените мелкий CFO и исправьте для всего пакета

  • Извлеките VHT-LTF и выполните оценку канала для каждого из потоков передачи

  • Измерьте дисбаланс IQ от оценки канала и выполните коррекцию от оценки канала

  • Измерьте спектральную плоскостность при помощи оценки канала

  • Извлечение и OFDM демодулируют поле данных VHT

  • Выполните оценку шума путем использования пилотных сигналов демодулированного поля данных и оценки канала с одним потоком на поднесущих пилот-сигнала

  • Фазовая коррекция и выравнивание поля данных VHT с помощью оценок канала и шума

  • Исправьте уравненные поднесущие данных с помощью оценки дисбаланса IQ

  • Для каждой несущей данные поднесущей в каждом пространственном потоке найдите ближайшую точку созвездия и измерьте EVM

Схема показывает цепь обработки:

Символы VHT-LTF включают пилот-символы, чтобы позволить отслеживать фазу, но этот пример не выполняет отслеживание фазы.

Проверьте спектральную плоскостность для каждого пакета путем измерения отклонения величины отдельных поднесущих в оценке канала от средней [1]. Постройте график этих отклонений для каждого пакета с помощью вспомогательной функции vhtTxSpectralFlatnessMeasurement. Постройте график среднего значения EVM на несущую данные поднесущую и выравниваемых символов для каждого пакета.

Демодулируйте, выравнивайте и декодируйте символы данных VHT с помощью wlanVHTDataRecover функция. Параметризируйте эту функцию, чтобы выполнить отслеживание фазы пилот-сигнала и эквализация с нулем, как требуется стандартом. Этот пример измеряет точность модуляции от уравненных символов.

Этот пример делает два различных измерения EVM, используя два образцов comm.EVM.

  • RMS EVM на пакет, который содержит усреднение EVM по поднесущим, символы OFDM и пространственные потоки.

  • RMS EVM на поднесущую по пространственному потоку для пакета. Поскольку эта конфигурация отображает пространственные потоки непосредственно на антенны, это измерение может помочь обнаружить частотно-зависимые нарушения, которые могут по-разному влиять на отдельные RF-цепи. Это измерение усредняет EVM только по символам OFDM.

% Setup EVM measurements
[EVMPerPkt,EVMPerSC] = vhtEVMSetup(cfgVHT);

Этот код конфигурирует объекты и переменные для обработки.

% Get indices for accessing each field within the time-domain packet
ind = wlanFieldIndices(cfgVHT);

rxWaveformLength = size(rxWaveform,1);
pktLength = double(ind.VHTData(2));

% Define the minimum length of data we can detect; length of the L-STF in
% samples
minPktLen = double(ind.LSTF(2)-ind.LSTF(1))+1;

% Setup the measurement plots
[hSF,hCon,hEVM] = vhtTxSetupPlots(cfgVHT);

rmsEVM = zeros(numPackets,1);
pktOffsetStore = zeros(numPackets,1);

rng(savedState); % Restore random state

Обнаружение и обработка пакетов в пределах принятой формы волны, rxWaveform при помощи цикла while, который выполняет эти шаги.

  • Обнаружение пакета путем индексации в rxWaveform со смещением выборки, searchOffset

  • Обнаружите и обработайте первый пакет в rxWaveform

  • Обнаружите и обработайте следующий пакет путем увеличения смещения индекса выборки searchOffset

  • Повторяйте, пока не будут обнаружены дальнейшие пакеты

pktNum = 0;
searchOffset = 0; % Start at first sample (no offset)
while (searchOffset+minPktLen)<=rxWaveformLength
    % Packet detect
    pktOffset = wlanPacketDetect(rxWaveform,cfgVHT.ChannelBandwidth);
    % Packet offset from start of waveform
    pktOffset = searchOffset+pktOffset;
    % If no packet detected or offset outwith bounds of waveform then stop
    if isempty(pktOffset) || (pktOffset<0) || ...
            ((pktOffset+ind.LSIG(2))>rxWaveformLength)
        break;
    end

    % Extract non-HT fields and perform coarse frequency offset correction
    % to allow for reliable symbol timing
    nonht = rxWaveform(pktOffset+(ind.LSTF(1):ind.LSIG(2)),:);
    coarsefreqOff = wlanCoarseCFOEstimate(nonht,cfgVHT.ChannelBandwidth);
    nonht = helperFrequencyOffset(nonht,fs,-coarsefreqOff);

    % Determine offset between the expected start of L-LTF and actual start
    % of L-LTF
    lltfOffset = wlanSymbolTimingEstimate(nonht,cfgVHT.ChannelBandwidth);
    % Determine packet offset
    pktOffset = pktOffset+lltfOffset;
    % If offset is without bounds of waveform skip samples and continue
    % searching within remainder of the waveform
    if (pktOffset<0) || ((pktOffset+pktLength)>rxWaveformLength)
        searchOffset = pktOffset+double(ind.LSTF(2))+1;
        continue;
    end

    % Timing synchronization complete; extract the detected packet
    rxPacket = rxWaveform(pktOffset+(1:pktLength),:);
    pktNum = pktNum+1;
    disp(['  Packet ' num2str(pktNum) ' at index: ' num2str(pktOffset+1)]);

    % Apply coarse frequency correction to the extracted packet
    rxPacket = helperFrequencyOffset(rxPacket,fs,-coarsefreqOff);

    % Perform fine frequency offset correction on the extracted packet
    lltf = rxPacket(ind.LLTF(1):ind.LLTF(2),:); % Extract L-LTF
    fineFreqOff = wlanFineCFOEstimate(lltf,cfgVHT.ChannelBandwidth);
    rxPacket = helperFrequencyOffset(rxPacket,fs,-fineFreqOff);

    % Extract VHT-LTF samples, demodulate and perform channel estimation
    vhtltf = rxPacket(ind.VHTLTF(1):ind.VHTLTF(2),:);
    vhtltfDemod = wlanVHTLTFDemodulate(vhtltf,cfgVHT);

    % Get single stream channel estimate
    chanEstSSPilots = vhtSingleStreamChannelEstimate(vhtltfDemod,cfgVHT);

    % Channel estimate
    chanEst = wlanVHTLTFChannelEstimate(vhtltfDemod,cfgVHT);

    % Perform IQ gain and phase imbalance estimation
    [gainEst,phaseEst,alphaEst,betaEst,gamma,dataRot] = ...
                                    helperIQImbalanceEstimate(chanEst,cfgVHT);
    fprintf('    Measured IQ gain & phase imbalance: %2.2f dB, %2.2f deg\n',gainEst,phaseEst);

    % Perform IQ gain and phase imbalance correction on channel
    % estimates
    chanEst = chanEst./(alphaEst + betaEst.*gamma); % As specified in Equation-29 of [5]

    % Spectral flatness measurement
    vhtTxSpectralFlatnessMeasurement(chanEst,cfgVHT,pktNum,hSF);

    % Extract VHT Data samples from the waveform
    vhtdata = rxPacket(ind.VHTData(1):ind.VHTData(2),:);

    % Estimate the noise power in VHT data field
    noiseVarVHT = vhtNoiseEstimate(vhtdata,chanEstSSPilots,cfgVHT);

    % Extract VHT Data samples and perform OFDM demodulation, equalization
    % and phase tracking
    [~,~,eqSym] = wlanVHTDataRecover(vhtdata,chanEst,noiseVarVHT,cfgVHT,...
        'EqualizationMethod','ZF','PilotPhaseTracking','PreEQ'); % Use zero forcing algorithm for equalization

    % Perform IQ gain and phase imbalance correction on VHT data
    eqSym = eqSym.*dataRot; % Carrier rotation on data subcarriers
    eqSym = ((conj(alphaEst)*eqSym)-(betaEst*conj(eqSym(end:-1:1,:,:))))/((abs(alphaEst)^2)-(abs(betaEst)^2));  % As specified in Equation-30 of [5]

    % Compute RMS EVM over all spatial streams for packet
    rmsEVM(pktNum) = EVMPerPkt(eqSym);
    fprintf('    RMS EVM: %2.2f%%, %2.2fdB\n',rmsEVM(pktNum),20*log10(rmsEVM(pktNum)/100));

    % Compute RMS EVM per subcarrier and spatial stream for the packet
    evmPerSC = EVMPerSC(eqSym); % Nst-by-1-by-Nss

    % Plot RMS EVM per subcarrier and equalized constellation
    vhtTxEVMConstellationPlots(eqSym,evmPerSC,cfgVHT,pktNum,hCon,hEVM);

    % Store the offset of each packet within the waveform
    pktOffsetStore(pktNum) = pktOffset;

    % Increment waveform offset and search remaining waveform for a packet
    searchOffset = pktOffset+pktLength+minPktLen;
end

if pktNum>0
    fprintf('Average EVM for %d packets: %2.2f%%, %2.2fdB\n', ...
        pktNum,mean(rmsEVM(1:pktNum)),20*log10(mean(rmsEVM(1:pktNum))/100));
else
    disp('No complete packet detected');
end
  Packet 1 at index: 41
    Measured IQ gain & phase imbalance: 0.98 dB, 0.96 deg
    Spectral flatness passed
    RMS EVM: 3.38%, -29.43dB
  Packet 2 at index: 9801
    Measured IQ gain & phase imbalance: 0.98 dB, 0.96 deg
    Spectral flatness passed
    RMS EVM: 3.14%, -30.05dB
  Packet 3 at index: 19561
    Measured IQ gain & phase imbalance: 0.98 dB, 0.96 deg
    Spectral flatness passed
    RMS EVM: 2.96%, -30.56dB
  Packet 4 at index: 29321
    Measured IQ gain & phase imbalance: 0.98 dB, 0.96 deg
    Spectral flatness passed
    RMS EVM: 3.09%, -30.20dB
  Packet 5 at index: 39081
    Measured IQ gain & phase imbalance: 0.98 dB, 0.96 deg
    Spectral flatness passed
    RMS EVM: 3.03%, -30.36dB
  Packet 6 at index: 48841
    Measured IQ gain & phase imbalance: 0.98 dB, 0.96 deg
    Spectral flatness passed
    RMS EVM: 2.73%, -31.27dB
  Packet 7 at index: 58601
    Measured IQ gain & phase imbalance: 0.98 dB, 0.96 deg
    Spectral flatness passed
    RMS EVM: 3.00%, -30.46dB
  Packet 8 at index: 68361
    Measured IQ gain & phase imbalance: 0.98 dB, 0.96 deg
    Spectral flatness passed
    RMS EVM: 2.89%, -30.79dB
  Packet 9 at index: 78121
    Measured IQ gain & phase imbalance: 0.98 dB, 0.96 deg
    Spectral flatness passed
    RMS EVM: 3.02%, -30.39dB
  Packet 10 at index: 87881
    Measured IQ gain & phase imbalance: 0.98 dB, 0.96 deg
    Spectral flatness passed
    RMS EVM: 2.79%, -31.09dB
  Packet 11 at index: 97641
    Measured IQ gain & phase imbalance: 0.98 dB, 0.96 deg
    Spectral flatness passed
    RMS EVM: 2.98%, -30.52dB
  Packet 12 at index: 107401
    Measured IQ gain & phase imbalance: 0.98 dB, 0.96 deg
    Spectral flatness passed
    RMS EVM: 3.00%, -30.47dB
  Packet 13 at index: 117161
    Measured IQ gain & phase imbalance: 0.98 dB, 0.96 deg
    Spectral flatness passed
    RMS EVM: 2.88%, -30.80dB
  Packet 14 at index: 126921
    Measured IQ gain & phase imbalance: 0.98 dB, 0.96 deg
    Spectral flatness passed
    RMS EVM: 2.96%, -30.59dB
  Packet 15 at index: 136681
    Measured IQ gain & phase imbalance: 0.98 dB, 0.96 deg
    Spectral flatness passed
    RMS EVM: 3.17%, -29.98dB
  Packet 16 at index: 146441
    Measured IQ gain & phase imbalance: 0.98 dB, 0.96 deg
    Spectral flatness passed
    RMS EVM: 2.69%, -31.42dB
  Packet 17 at index: 156201
    Measured IQ gain & phase imbalance: 0.98 dB, 0.96 deg
    Spectral flatness passed
    RMS EVM: 3.03%, -30.36dB
  Packet 18 at index: 165961
    Measured IQ gain & phase imbalance: 0.98 dB, 0.96 deg
    Spectral flatness passed
    RMS EVM: 3.26%, -29.75dB
  Packet 19 at index: 175721
    Measured IQ gain & phase imbalance: 0.98 dB, 0.96 deg
    Spectral flatness passed
    RMS EVM: 3.29%, -29.65dB
  Packet 20 at index: 185481
    Measured IQ gain & phase imbalance: 0.98 dB, 0.96 deg
    Spectral flatness passed
    RMS EVM: 3.27%, -29.72dB
Average EVM for 20 packets: 3.03%, -30.38dB

Измерение маски излучения спектра передачи

Этот раздел измеряет спектральную маску отфильтрованной и ослабленной формы волны после моделирования усилителя высокой мощности.

Тест спектральной маски передатчика [4] использует частотно-зависимое спектральное измерение поля VHT Data. Пример извлекает поле VHT Data каждого пакета из избыточно дискретизированной формы волны, txWaveformпри помощи начальных индексов каждого пакета в форме волны основной полосы частот. Любая задержка, введенная в цепь обработки основной полосы частот, используемую для определения индексов пакетов, должна учитываться при стробировании поля данных VHT в txWaveform. Конкатенация извлеченных полей данных VHT при подготовке к измерению.

startIdx = osf*(ind.VHTData(1)-1)+1;  % Upsampled start of VHT Data
endIdx = osf*ind.VHTData(2);          % Upsampled end of VHT Data
delay = grpdelay(decimationFilter,1); % Group delay of downsampling filter
idx = zeros(endIdx-startIdx+1,pktNum);
for i = 1:pktNum
    % Start of packet in txWaveform
    pktOffset = osf*pktOffsetStore(i)-delay;
    % Indices of VHT Data in txWaveform
    idx(:,i) = (pktOffset+(startIdx:endIdx));
end
gatedVHTData = txWaveform(idx(:),:);

Стандарт 802.11ac задает спектральную маску относительно спектральной плотности пиковой степени. Функция helperSpectralMaskTest генерирует график, который накладывает необходимую маску на измеренный PSD.

if pktNum>0
    helperSpectralMaskTest(gatedVHTData,fs,osf);
end
   Spectrum mask passed

Заключение и дальнейшие исследования

Этот пример строит графики четырех результатов: спектральная плоскостность, RMS EVM на поднесущую, уравненное созвездие и спектральная маска.

Модель усилителя высокой мощности вводит значительные внутриполосные искажения и спектральное возрождение, которые видны в результатах EVM, шумном созвездии и внеполосных выбросах на графике спектральной маски. Попробуйте увеличить откат усилителя высокой мощности и обратите внимание на улучшенные EVM, созвездия и более низкие внеполосные выбросы.

Попробуйте использовать другие значения для iqGaindB и iqPhaseDeg и обратите внимание на влияние на EVM и созвездия.

Спектральная фильтрация и понижающая дискретизация (для приведения формы волны к основной полосе частот для обработки) включают фильтрацию. Эти фильтрующие реакции влияют на спектральное измерение плоскостности. Пульсация в спектральном измерении плоскостности происходит в основном из-за понижающей дискретизации в полосу модулирующих частот. Попробуйте использовать различные фильтры или длины фильтра и отметьте влияние на спектральную плоскостность.

Избранная библиография

  1. Стандарт IEEE Std 802.11™-2016 IEEE на информационные технологии - Телекоммуникации и обмен информацией между системами - Локальные и столичные сети - Особые требования - Часть 11: Беспроводное управление доступом к среде локальной сети (MAC) и физический слой (PHY) Спецификации.

  2. Лок и Чхон. Беспроводные локальные сети P802.11 IEEE. TGac Функциональные требования и методология оценки Rev. 16. 2011-01-19.

  3. Перахия, Э. и Р. Стейси. Беспроводные LAN следующей генерации: 802.11n и 802.11ac. 2-е издание. Великобритания: Cambridge University Press, 2013.

  4. Аршамбо, Джерри и Шраван Суринени. «Спектральные измерения IEEE 802.11 с использованием анализаторов векторных сигналов». Проект РФ 27.6 (2004): 38-49.

  5. М. Джанасвами, Н. К. Чавали и С. Батабял, «Измерение параметров IQ передатчика в системах беспроводной LAN HT и VHT», 2016 Международная конференция по обработке сигналов и связи (SPCOM), Бангалор.