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

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

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

  • Маска эмиссии спектра

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

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

Введение

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

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

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 функция, задавая желаемый фактор сверхдискретизации, количество пакетов, и время простоя между каждым пакетом.

osf = 3;          % 3x oversampling factor
numPackets = 20;  % Generate 20 packets
idleTime = 10e-6; % 10 microseconds idle time between packets

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

% 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, ...
    'OversamplingFactor',osf,'NumPackets',numPackets,'IdleTime',idleTime);

fs = wlanSampleRate(cfgVHT); % Baseband sampling rate of the waveform

Добавьте Impariments

Моделирование неустойчивости IQ

Неустойчивость IQ возникает, когда компонент фронтенда не уважает баланс сил или ортогональность между ветвями Q и мной. Этот пример добавляет усиление IQ и разбаланс фазы к переданной форме волны на основе флага modelIQImbalance. В приемнике оцените усиление IQ и разбаланс фазы и откорректируйте форму волны согласно схеме компенсации, заданной в [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.

Смоделируйте усилитель при помощи 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
txWaveform = nonLinearity(txWaveform);

Тепловой шум

Добавьте тепловой шум в каждую передающую антенну при помощи comm.ThermalNoise объект с шумовой фигурой 6 дБ [3].

thNoise = comm.ThermalNoise('NoiseMethod','Noise Figure','SampleRate',fs*osf,'NoiseFigure',6);
for i = 1:cfgVHT.NumTransmitAntennas
    txWaveform(:,i) = thNoise(txWaveform(:,i));
end

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

Субдискретизация и фильтрация

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

Спроектируйте фильтр передискретизации.

aStop = 40; % Stopband attenuation
ofdmInfo = wlanVHTOFDMInfo('VHT-Data',cfgVHT); % OFDM parameters
SCS = fs/ofdmInfo.FFTLength; % Subcarrier spacing
txbw = max(abs(ofdmInfo.ActiveFrequencyIndices))*2*SCS; % Occupied bandwidth
[L,M] = rat(osf);
maxLM = max([L M]);
R = (fs-txbw)/fs;
TW = 2*R/maxLM; % Transition width
b = designMultirateFIR(L,M,TW,aStop);

Передискретизируйте форму волны к основной полосе.

firinterp = dsp.FIRRateConverter(M,L,b);
rxWaveform = firinterp(txWaveform);

Обработка приемника

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

  • Обнаружьте запуск пакета

  • Извлеките поля non-HT

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

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

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

  • Откорректируйте извлеченный пакет крупной оценкой CFO

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

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

  • Измерьтесь неустойчивость IQ от канала оценивают и выполняют коррекцию на оценке канала

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

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

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

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

  • Откорректируйте компенсируемые поднесущие данных оценкой неустойчивости IQ

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

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

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

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

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

Этот пример делает два различных измерения EVM с помощью двух экземпляров comm.EVM.

  • EVM RMS на пакет, который включает усреднение 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 при помощи некоторое время цикла, который выполняет эти шаги.

  • Обнаружьте пакет путем индексации в 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
  Packet 1 at index: 25
    Measured IQ gain & phase imbalance: 0.98 dB, 0.98 deg
    Spectral flatness passed
    RMS EVM: 3.30%, -29.63dB

Figure contains an axes object. The axes object with title RMS EVM, Packet:1, Spatial Stream:1 contains an object of type line.

  Packet 2 at index: 9785
    Measured IQ gain & phase imbalance: 0.98 dB, 0.98 deg

Figure contains an axes object. The axes object with title Spectral Flatness, Packet:1 contains 3 objects of type line. These objects represent Antenna 1, Deviation limit.

    Spectral flatness passed
    RMS EVM: 3.07%, -30.24dB
  Packet 3 at index: 19545
    Measured IQ gain & phase imbalance: 0.98 dB, 0.98 deg
    Spectral flatness passed
    RMS EVM: 2.91%, -30.71dB
  Packet 4 at index: 29305
    Measured IQ gain & phase imbalance: 0.98 dB, 0.98 deg
    Spectral flatness passed
    RMS EVM: 3.04%, -30.33dB
  Packet 5 at index: 39065
    Measured IQ gain & phase imbalance: 0.98 dB, 0.98 deg
    Spectral flatness passed
    RMS EVM: 2.99%, -30.50dB
  Packet 6 at index: 48825
    Measured IQ gain & phase imbalance: 0.98 dB, 0.98 deg
    Spectral flatness passed
    RMS EVM: 2.67%, -31.49dB
  Packet 7 at index: 58585
    Measured IQ gain & phase imbalance: 0.98 dB, 0.98 deg
    Spectral flatness passed
    RMS EVM: 2.93%, -30.65dB
  Packet 8 at index: 68345
    Measured IQ gain & phase imbalance: 0.98 dB, 0.98 deg
    Spectral flatness passed
    RMS EVM: 2.81%, -31.03dB
  Packet 9 at index: 78105
    Measured IQ gain & phase imbalance: 0.98 dB, 0.98 deg
    Spectral flatness passed
    RMS EVM: 2.93%, -30.65dB
  Packet 10 at index: 87865
    Measured IQ gain & phase imbalance: 0.98 dB, 0.98 deg
    Spectral flatness passed
    RMS EVM: 2.73%, -31.28dB
  Packet 11 at index: 97625
    Measured IQ gain & phase imbalance: 0.98 dB, 0.98 deg
    Spectral flatness passed
    RMS EVM: 2.90%, -30.76dB
  Packet 12 at index: 107385
    Measured IQ gain & phase imbalance: 0.98 dB, 0.98 deg
    Spectral flatness passed
    RMS EVM: 2.94%, -30.63dB
  Packet 13 at index: 117145
    Measured IQ gain & phase imbalance: 0.98 dB, 0.98 deg
    Spectral flatness passed
    RMS EVM: 2.84%, -30.94dB
  Packet 14 at index: 126905
    Measured IQ gain & phase imbalance: 0.98 dB, 0.98 deg
    Spectral flatness passed
    RMS EVM: 2.91%, -30.73dB
  Packet 15 at index: 136665
    Measured IQ gain & phase imbalance: 0.98 dB, 0.98 deg
    Spectral flatness passed
    RMS EVM: 3.09%, -30.20dB
  Packet 16 at index: 146425
    Measured IQ gain & phase imbalance: 0.98 dB, 0.98 deg
    Spectral flatness passed
    RMS EVM: 2.60%, -31.69dB
  Packet 17 at index: 156185
    Measured IQ gain & phase imbalance: 0.98 dB, 0.98 deg
    Spectral flatness passed
    RMS EVM: 2.99%, -30.49dB
  Packet 18 at index: 165945
    Measured IQ gain & phase imbalance: 0.98 dB, 0.98 deg
    Spectral flatness passed
    RMS EVM: 3.20%, -29.90dB
  Packet 19 at index: 175705
    Measured IQ gain & phase imbalance: 0.98 dB, 0.98 deg
    Spectral flatness passed
    RMS EVM: 3.24%, -29.79dB
  Packet 20 at index: 185465
    Measured IQ gain & phase imbalance: 0.98 dB, 0.98 deg

Figure contains an axes object. The axes object with title Spectral Flatness, Packet:20 contains 3 objects of type line. These objects represent Antenna 1, Deviation limit.

    Spectral flatness passed
    RMS EVM: 3.20%, -29.91dB

Figure contains an axes object. The axes object with title RMS EVM, Packet:20, Spatial Stream:1 contains an object of type line.

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
Average EVM for 20 packets: 2.96%, -30.56dB

Передайте измерение маски эмиссии спектра

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

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

% Indices for accessing each field within the time-domain packet
ind = wlanFieldIndices(cfgVHT,'OversamplingFactor', osf);
startIdx = ind.VHTData(1); % Start of Data
endIdx = ind.VHTData(2);   % End of Data
idleNSamps = idleTime*fs*osf; % Idle time samples
perPktLength = endIdx+idleNSamps;

idx = zeros(endIdx-startIdx+1,numPackets);
for i = 1:numPackets
    % Start of packet in txWaveform, accounting for the filter delay
    pktOffset = (i-1)*perPktLength;
    % Indices of non-HT 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

Figure Spectrum Analyzer, Transmit Antenna 1 contains an axes object and other objects of type uiflowcontainer, uimenu, uitoolbar. The axes object contains 2 objects of type patch, line. These objects represent Lower Mask, Upper Mask, Transmit Antenna 1.

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

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

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

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

Связанные примеры:

Выбранная библиография

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

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

  3. Perahia, E. и Р. Стейси. Беспроводная LAN следующего поколения: 802.11n и 802.11ac. 2-й выпуск. Соединенное Королевство: Издательство Кембриджского университета, 2013.

  4. Archambault, Джерри и Шрэвэн Суринени. "IEEE 802.11 спектральные измерения с помощью вектора сигнализирует об анализаторах". Проект 27.6 (2004) RF: 38-49.

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