В этом примере показано, как использовать
Система object™, чтобы измерить величину вектора ошибок (EVM) симулированного передатчика IEEE® 802.15.4 [1]. IEEE 802.15.4 является основанием для технических требований ZigBee.comm.EVM
Величина вектора ошибок (EVM) является мерой различия между ссылочной формой волны, которая является безошибочным модулируемым сигналом и фактической переданной формой волны. EVM используется, чтобы определить количество точности модуляции передатчика. [1] требует, чтобы 802.15.4 передатчиков не должны иметь RMS значением EVM хуже, чем 35%.
802.15.4 систем для полосы на 868 МГц используют прямую последовательность распространила спектр (DSSS) с бинарным манипулированием сдвига фазы (BPSK), используемым в модуляции чипа и кодировании дифференциала, используемом в кодировании символа данных.
dataRate = 20e3; % Bit rate in Hz M = 2; % Modulation order (BPSK) chipValues = [1;1;1;1;0;1;0;1;1;0;0;1;0;0;0]; % Chip values for bit 0. % Chip values for 1 is the opposite.
Разделите 6.7.3 из [1], указывает, что измерения выполняются более чем 1 000 выборок меня и основополосных выходных параметров Q. Чтобы составлять задержки фильтра, мы включаем еще 1 бит в симуляцию переданных символов. Мы приняли решение сверхдискретизировать переданный сигнал четыре. Мы принимаем ОСШ 60 дБ, чтобы составлять передатчик и протестировать аппаратные недостатки.
numSymbols = 1000; % Number of symbols required for one EVM value numFrames = 100; % Number of frames nSamps = 4; % Number of samples that represents a symbol filtSpan = 8; % Filter span in symbols gain = length(chipValues); % Spreading gain (number of chips per symbol) chipRate = gain*dataRate; % Chip rate sampleRate = nSamps*chipRate; % Final sampling rate numBits = ceil((numSymbols)/gain)+1; % Number of bits required for one EVM value SNR = 60; % Simulated signal-to-noise ratio in dB
Мы можем получить модулируемые символы BPSK с простым отображением 0 к +1 и 1 к-1. Если мы также сопоставляем значения чипа, то мы можем модулировать перед преобразованием бита к чипу и использовать матричную математику, чтобы записать эффективный код MATLAB®. Технические требования ZigBee также задают импульсный формирующий фильтр как наличие повышенной формы импульса косинуса с фактором спада 1.
% Map chip values chipValues = 1 - 2*chipValues; % Design a raised cosine filter with rolloff factor 1 rctFilt = comm.RaisedCosineTransmitFilter('RolloffFactor', 1, ... 'OutputSamplesPerSymbol', nSamps, ... 'FilterSpanInSymbols', filtSpan); rcrFilt = comm.RaisedCosineReceiveFilter('RolloffFactor', 1, ... 'InputSamplesPerSymbol', nSamps, ... 'FilterSpanInSymbols', filtSpan, ... 'DecimationFactor', nSamps);
Communications Toolbox™ обеспечивает коммуникацию. EVM, чтобы вычислить RMS EVM, Максимальный EVM и процентиль Xth значения EVM. Разделите 6.7.3 из [1], задает метод расчета EVM, где средняя погрешность измеренных я и выборки Q нормированы степенью символа. Для системы BPSK степень обоих символов созвездия является тем же самым. Поэтому мы можем использовать 'Пиковую опцию нормализации' степени созвездия. Другие доступные опции нормализации, которые могут использоваться с другими стандартами системы связи, являются средней степенью созвездия и средней ссылочной степенью сигнала.
evm = comm.EVM('Normalization', 'Peak constellation power')
evm = comm.EVM with properties: Normalization: 'Peak constellation power' PeakConstellationPower: 1 ReferenceSignalSource: 'Input port' MeasurementIntervalSource: 'Input length' AveragingDimensions: 1 MaximumEVMOutputPort: false XPercentileEVMOutputPort: false
Мы сначала генерируем случайные биты данных, дифференцированно кодируем эти биты с помощью
Системный объект, и модулирует BPSK использования. Мы распространяем модулируемые символы путем использования умножения матриц с сопоставленными значениями чипа. Символы распространения затем передаются через импульсный формирующий фильтр. Объект EVM принимает, что полученные символы, ул., и ссылочные символы, c, синхронизируются и производятся на том же уровне. Мы прореживаем полученный сигнал, r, и синхронизируемся со ссылочным сигналом, c.comm.DifferentialEncoder
[1] требует, чтобы 1 000 символов использовались в одной RMS вычисление EVM. Чтобы убедиться у нас есть достаточно усреднения, мы симулируем 100 систем координат 1 000 символов и используем максимум этих 100 RMS измерения EVM как результат измерения. Мы видим, что симулированный передатчик соответствует критериям, упомянутым в разделе Error Vector Magnitude выше.
% Tx and Rx filter delays are identical and equal to half the filter span. % Total delay is equal to the sum of two filter delays, which is the filter % span of one filter. refSigDelay = rctFilt.FilterSpanInSymbols; % Simulated number of symbols in a frame simNumSymbols = numBits*gain; % Initialize peak RMS EVM peakRMSEVM = -inf; % Create a comm.DifferentialEncoder object to differentially encode data diffenc = comm.DifferentialEncoder; % Create an comm.AWGNChannel System object and set its NoiseMethod property % to 'Signal to noise ratio (SNR)' chan = comm.AWGNChannel('NoiseMethod', 'Signal to noise ratio (SNR)',... 'SNR', SNR); % Loop over bursts for p=1:numFrames % Generate random data b = randi([0 M-1], numBits, 1); % Differentially encode d = diffenc(b); % Modulate x = 1-2*d; % Convert symbols to chips (spread) c = reshape(chipValues*x', simNumSymbols, 1); % Pulse shape cUp = rctFilt(c); % Calculate and set the 'SignalPower' property of the channel object chan.SignalPower = sum(cUp.^2)/length(cUp); % Add noise r = chan(cUp); % Downsample received signal. Account for the filter delay. rd = rcrFilt(r); % Measure using the EVM System object rmsEVM = evm(complex(rd(refSigDelay+(1:numSymbols))), ... complex(c(1:numSymbols))); % Update peak RMS EVM calculation if (peakRMSEVM < rmsEVM) peakRMSEVM = rmsEVM; end end % Display results fprintf(' Worst case RMS EVM (%%): %1.2f\n', peakRMSEVM)
Worst case RMS EVM (%): 0.19
Мы показали, как использовать коммуникацию. EVM, чтобы протестировать, если передатчик ZigBee выполняет стандарт, задал значения EVM. Мы использовали грубую модель, которая только вводит аддитивный белый Гауссов шум и показала, что измеренный EVM меньше, стандарт задал 35%.
Стандарт IEEE 802.15.4, беспроводное Среднее управление доступом (MAC) и физический уровень (PHY) технические требования для беспроводных персональных сетей области с низкой ставкой, 2003.