evm_wlan_dsss_cck_pbcc()
Returns EVM (error vector magnitude) analysis results for WLAN DSSS/CCK/PBCC (IEEE 802.11b and IEEE 802.11g non-OFDM) voltage signals
Syntax
evm = evm_wlan_dsss_cck_pbcc(voltage{, mirrorSpectrum, start, averageType, burstsToAverage, modulationFormat, searchTime, resultLengthType, resultLength, measurementOffset, measurementInterval, chipRate, clockAdjust, equalizationFilter, filterLength, descrambleMode, referenceFilter, referenceFilterBT, output})
Arguments
| Name | Description | Range | Type | Default | Required |
|---|---|---|---|---|---|
| voltage | complex envelope WLAN DSSS/CCK/PBCC voltage signal | (-∞, ∞) | complex | yes | |
| mirrorSpectrum | specifies whether the input signal should be mirrored or not | See Notes | string | NO | no |
| start | specifies the start time for the EVM analysis | [0, max(indep(voltage))] | real | first point of the input data | no |
| averageType | specifies what type of averaging is done | See Notes | string | OFF | no |
| burstsToAverage | number of bursts over which the results will be averaged | (0, ∞) | integer | 20 | no |
| modulationFormat | modulation format | See Notes | string | "Auto Detect" | no |
| searchTime | search time | [0, max(indep(voltage))] | real | 550 µsec | no |
| resultLengthType | specifies how the result length is determined | See Notes | string | "Auto Select" | no |
| resultLength | result length in chips | [1, 108344] | integer | 2816 | no |
| measurementOffset | measurement offset in chips | (0, ∞) | integer | 22 | no |
| measurementInterval | measurement interval in chips | (0, ∞) | integer | 2794 | no |
| chipRate | chip rate in Hz | (0, ∞) | real | 11e6 Hz | no |
| clockAdjust | clock adjustment as a fraction of a chip | [-0.5, 0.5] | real | 0 | no |
| equalizationFilter | specifies whether an equalization filter is used or not | See Notes | string | OFF | no |
| filterLength | equalization filter length in chips | [3, ∞) must be odd | integer | 21 | no |
| descrambleMode | specifies how descrambling is done | See Notes | string | On | no |
| referenceFilter | specifies the reference filter to be used | See Notes | string | Gaussian | no |
| referenceFilterBT | BT value for the reference filter if a Gaussian reference filter is selected | [0.05, 100] | real | 0.3 | no |
| output | EVM analysis result to be returned | See Notes | string | Avg_EVMrms_pct | no |
Examples
evmRMS = evm_wlan_dsss_cck_pbcc(Vout[1])
where Vout is a named node in a Circuit Envelope simulation, will return the EVM rms value in percent for the voltage envelope at the fundamental frequency. The voltage data Vout[1] must contain at least one complete burst. The EVM result will be from the analysis of the first burst in the input signal.
evmPk = evm_wlan_dsss_cck_pbcc(Vout[1], , , "RMS (Video)", 10, , 300e-6, , , , , , , , , , "Gaussian", 0.5, "EVM_Pk_pct")
where Vout is a named node in a Circuit Envelope simulation, will return a vector with 10 values each representing the peak EVM in percent for the first 10 bursts in the voltage envelope at the fundamental frequency. Since searchTime is set to 300 µsec, the first 300 µsec of Vout[1] must contain at least one complete burst. In addition, since 10 bursts need to be processed, Vout[1] must contain at least 10 complete bursts. A Gaussian filter with BT=0.5 will be used as a reference filter.
AvgMagErr = evm_wlan_dsss_cck_pbcc(Vout[1], , , "RMS (Video)", 3, , 400e-6, , , 100, 500, , , , , , , , "Avg_MagErr_rms_pct")
where Vout is a named node in a Circuit Envelope simulation, will return the average (over 3 bursts) magnitude error in percent for the voltage envelope at the fundamental frequency. Since searchTime is set to 400 µsec, the first 400 µsec of Vout[1] must contain at least one complete burst. In addition, since 3 bursts need to be averaged, Vout[1] must contain at least 3 complete bursts. Only the chips 101 to 600 (measurementOffset = 100 and measurementInterval = 500) will be considered for the EVM analysis.
Defined in
Built in
See Also
Notes/Equations
Used in Circuit Envelope simulation and Data Flow simulation.
This expression can be used with input data of up to two dimensions. Only complex envelope input signals are allowed as input.
The evm_wlan_dsss_cck_pbcc() expression performs an EVM measurement for WLAN DSSS/CCK/PBCC (IEEE 802.11b and IEEE 802.11g non-OFDM) signals. Available Measurement Results for evm_wlan_dsss_cck_pbcc() displays the available measurement results.
Available Measurement Results for evm_wlan_dsss_cck_pbcc()
| Measurement Result | Description |
|---|---|
| Avg_WLAN_80211b_1000_chip_Pk_EVM_pct | average EVM in percentage as specified by the standard (section 18.4.7.8 Transmit modulation accuracy in 802.11b specification; pages 55-57) except that the EVM value is normalized |
| WLAN_80211b_1000_chip_Pk_EVM_pct | EVM in percentage as specified by the standard (section 18.4.7.8 Transmit modulation accuracy in 802.11b specification; pages 55-57) with the exception that the EVM value is normalized versus burst |
| Avg_EVMrms_pct | average EVM rms in percentage as defined in the Agilent 89600 VSA |
| EVMrms_pct | EVM rms in percentage as defined in the Agilent 89600 VSA versus burst |
| EVM_Pk_pct | peak EVM in percentage versus burst |
| EVM_Pk_chip_idx | peak EVM chip index versus burst |
| Avg_MagErr_rms_pct | average magnitude error rms in percentage |
| MagErr_rms_pct | magnitude error rms in percentage versus burst |
| MagErr_Pk_pct | peak magnitude error in percentage versus burst |
| MagErr_Pk_chip_idx | peak magnitude error chip index versus burst |
| Avg_PhaseErr_deg | average phase error in degrees |
| PhaseErr_deg | phase error in degrees versus burst |
| PhaseErr_Pk_deg | peak phase error in degrees versus burst |
| PhaseErr_Pk_chip_idx | peak phase error chip index versus burst |
| Avg_FreqError_Hz | average frequency error in Hz |
| FreqError_Hz | frequency error in Hz versus burst |
| Avg_IQ_Offset_dB | average IQ offset in dB |
| IQ_Offset_dB | IQ offset in dB versus burst |
| Avg_SyncCorrelation | average sync correlation |
| SyncCorrelation | sync correlation versus burst |
Results whose name is prefixed with " Avg"_ are averaged over the number of bursts specified by the user (if averageType is set to " RMS ( Video )"). Results whose name is not prefixed with " Avg"_ are results versus burst.
The following is a brief description of the algorithm used (the algorithm used is the same as the one used in the Agilent 89600 VSA) and a detailed description of its arguments.
Starting at the time instant specified by the start argument, a signal segment of length searchTime is acquired. This signal segment is searched in order for a complete burst to be detected. The burst search algorithm looks for both a burst on and a burst off transition. In order for the burst search algorithm to detect a burst, an idle part must exist between consecutive bursts and the bursts must be at least 15 dB above the noise floor.
If the acquired signal segment does not contain a complete burst, the algorithm will not detect any burst and the analysis that follows will most likely produce wrong results. Therefore, searchTime must be long enough to acquire at least one complete burst. Since the time instant specified by the start argument can be a little after the beginning of a burst, it is recommended that searchTime is set to a value approximately equal to 2 x burstLength, where burstLength is the duration of a burst in seconds including the duration of the idle part. If it is known that the time instant specified by the start argument is a little before the beginning of a burst, then searchTime can be set to burstLength.
After a burst is detected, synchronization is performed based on the preamble. The burst is then demodulated. Finally, the burst is analyzed to get the EVM measurement results.
If averageType is set to OFF , only one burst is detected, demodulated, and analyzed.
If averageType is set to RMS (Video) , after the first burst is analyzed the signal segment corresponding to it is discarded and new signal samples are acquired to fill in the signal buffer of length searchTime. When the buffer is full again a new burst search is performed and when a burst is detected it is demodulated and analyzed. These steps repeat until burstsToAverage bursts are processed.
If for any reason a burst is misdetected the results from its analysis are discarded. The EVM results obtained from all the successfully detected, demodulated, and analyzed bursts are averaged to give the final result.
The mirrorSpectrum argument accepts the following strings: "NO" and "YES". This argument can be used to mirror (conjugate) the input signal before any other processing is done. Mirroring the input signal is necessary if the configuration of the mixers in your system has resulted in a mirrored signal compared to the one at the input of the up-converter and if the preamble and header are short format. In this case, if mirrorSpectrum is not set to " YES " the header bits (which carry the modulation format and length information) will not be recovered correctly so the demodulation of the PSDU part of the burst will most likely fail.
The start argument sets the starting point for acquiring the signal to be processed. By default, the starting point is the beginning of the input signal (voltage argument). However, if for any reason an initial part of the input signal needs to be omitted this can be done by setting the start argument appropriately.
The averageType argument accepts the following strings: "Off" and "RMS (Video)". This argument can be used to turn on/off video averaging. If set to "Off" the EVM result returned is from the processing of only one burst. Otherwise, multiple bursts are processed and the results are averaged.
The burstsToAverage argument set the number of bursts whose results will be averaged if averageType is set to "RMS (Video)". If averageType is set to "Off" this argument is ignored.
The modulationFormat argument accepts the following strings: "Auto Detect", "Barker 1", "Barker 2", "CCK 5.5", "CCK 11", "PBCC 5.5", "PBCC 11", "PBCC 22", "PBCC 33". This argument sets the modulation format used in the PSDU part of the burst. If modulationFormat is set to "Auto Detect", the algorithm will use the information detected in the PLCP header part of the burst to automatically determine the modulation format. Otherwise, the modulation format determined from the PLCP header is ignored and the modulation format specified by the modulationFormat argument is used in the demodulation of the PSDU part of the burst.
The searchTime argument sets the duration of the signal segment that is acquired and searched in order to detect a complete burst. Recommendations on how to set this argument are given in the brief description of the algorithm used by this expression earlier in these Notes/Equations section.
The resultLengthType argument accepts the following strings: "Auto Select" and "Manual Override". The resultLengthType and resultLength arguments control how much data is acquired and demodulated.
- When resultLengthType is set to " Auto Select", the measurement result length is automatically determined from the information in the PLCP header part of the burst. In this case, the argument resultLength defines a maximum result length for the burst in symbol times; that is, if the measurement result length that is automatically detected is bigger than resultLength it will be truncated to resultLength. The maximum result length specified by the resultLength argument includes the PLCP preamble and PLCP header.
- When resultLengthType is set to " Manual Override ", the measurement result length is set to resultLength regardless of what is detected in the PLCP header part of the burst. The result length specified by the resultLength argument includes the PLCP preamble and PLCP header.
Measurement result length setting summarizes the differences between how "Auto Select" and " Manual Override " modes determine the measurement result length. The table lists the measurement result lengths actually used for " Auto Select" and " Manual Override" modes for three different values of the resultLength argument (3300, 2816 and 2200 chips). It is assumed that the input burst is 2816 symbols long.
Measurement result length setting
| resultLengthType | resultLength | Measurement Result Length Actually Used |
|---|---|---|
| Auto Select | 2200 | 2200 |
| Auto Select | 2816 | 2816 |
| Auto Select | 3300 | 2816 |
| Manual Override | 2200 | 2200 |
| Manual Override | 2816 | 2816 |
| Manual Override | 3300 | 3300 |
Note that when resultLengthType is set to " Manual Override" and resultLength=3300 (greater than the actual burst size) the algorithm will demodulate the full 3300 chips even though this is 484 chips beyond the burst width.
The measurementOffset and measurementInterval arguments can be used to isolate a specific segment of the burst for analysis. The values of measurementInterval and measurementOffset are in number of chips and are relative to the ideal starting point of the PLCP preamble portion of the burst. For a signal that uses the long PLCP format, the ideal starting point of the PLCP preamble is exactly 128 symbol times (128 x 11 chips) before the start of the SFD sync pattern. For a signal that uses the short PLCP format, the ideal starting point of the PLCP preamble is exactly 56 symbol times (56 x 11 chips) before the start of the SFD sync pattern.
The chipRate argument sets the fundamental chip rate of the signal to be analyzed. The default is 11 MHz, which matches the chip rate of 802.11b and 802.11g; however, this argument can be used when experimenting with signals that do not follow the standard specifications. A special case is the optional 802.11g 33 Mbit PBCC mode, where the chip rate of the transmitted signal starts at 11 MHz, but changes to 16.5 MHz in the middle of the burst. In this case chipRate should still be set to 11 MHz (the algorithm will automatically switch to 16.5 MHz at the appropriate place in the burst).
Although the algorithm synchronizes to the chip timing of the signal, it is possible for the synchronization to be slightly off. The clockAdjust argument allows the user to specify a timing offset which is added to the chip timing detected by the algorithm. This argument should only be used when trying to debug unusual signals.
The equalizationFilter argument accepts the following strings: "OFF" and "ON". This argument can be used to turn on/off the equalization filter. The filterLength argument sets the equalization filter length (in number of chips). Using an equalization filter can dramatically improve the EVM results since the equalizer can compensate for ISI due to the transmit filter. However, it can also compensate the distortion introduced by the DUT. If the filter used in the transmitter is Gaussian, then having the equalizer off and selecting a Gaussian reference filter might be a better option.
The descrambleMode argument accepts the following strings: "Off", "Preamble Only", "Preamble & Header Only", "On". This argument can be used to control how descrambling is done.
- "Off" does no descrambling.
- "Preamble Only" descrambles only the PLCP preamble.
- "Preamble & Header Only" descrambles only the PLCP preamble and PLCP header.
- "On" descrambles all parts of the burst.
Normally, 802.11b or 802.11g signals have all bits scrambled before transmission, so this parameter should normally be set to "On" . However, when debugging an 802.11b or 802.11g transmitter, it is sometimes helpful to disable scrambling in the transmitter, in which case you should disable descrambling in this component.
If the input signal's preamble is scrambled but you disable descrambling of the preamble (or vice versa), then the algorithm will not be able to synchronize to the signal properly. Similarly, if the input signal's header is scrambled but you disable descrambling of the header (or vice versa) then the algorithm will not be able to correctly identify the burst modulation type and burst length from the header.
The referenceFilter argument accepts the following strings: "Rectangular" and "Gaussian". This argument can be used to select a reference filter for the EVM analysis. Although, the IEEE 802.11b/g standards do not specify either a transmit filter or a receive filter, they do have a spectral mask requirement, and a transmitter must use some sort of transmit filter to meet the spectral mask. On the other hand, the description of the EVM measurement in the standard does not use any receive or measurement filter. The absence of the need to use any transmit or receive filter is partly because the standard has a very loose limit for EVM (35% peak on 1000 chips worth of data).
If the standard definition is followed when computing EVM, no measurement or reference filter should be used (referenceFilter must be set to "Rectangular"). However, what this means is that even a completely distortion-free input signal will still give non-zero EVM unless the input signal has a zero-ISI transmit filter. If a non-zero-ISI transmit filter is used and there is additional distortion added to the signal due to the DUT, then the EVM will measure the overall error due to both the transmit filter's ISI and the DUT distortion. Turning on the equalizer will remove most of the transmit filter's ISI but it can also remove some of the distortion introduced by the DUT. To get a better idea of the EVM due to the DUT distortion a reference filter that matches the transmit filter can be used. Currently, only "Rectangular" and "Gaussian" filters are available as reference filters.
The referenceFilterBT argument sets the BT (Bandwidth Time product) for the Gaussian reference filter. If referenceFilter is set to "Rectangular" this argument is ignored.
The output argument accepts the following strings (see Available Measurement Results for evm_wlan_dsss_cck_pbcc()): "Avg_WLAN_80211b_1000_chip_Pk_EVM_pct", "WLAN_80211b_1000_chip_Pk_EVM_pct", "Avg_EVMrms_pct", "EVMrms_pct", "EVM_Pk_pct", "EVM_Pk_chip_idx", "Avg_MagErr_rms_pct", "MagErr_rms_pct", "MagErr_Pk_pct", "MagErr_Pk_chip_idx". "Avg_PhaseErr_deg", "PhaseErr_deg", "PhaseErr_Pk_deg", "PhaseErr_Pk_chip_idx", "Avg_FreqError_Hz", "FreqError_Hz", "Avg_IQ_Offset_dB", "IQ_Offset_dB", "Avg_SyncCorrelation", "SyncCorrelation". This argument selects which EVM analysis result will be returned.
Relationship Between WLAN_802_11b Source Parameters and evm_wlan_dsss_cck_pbcc() Expression Arguments summarizes how some of the arguments of the evm_wlan_dsss_cck_pbcc() expression should be set based on the parameter values of the WLAN_802_11b source.
| WLAN_802_11b | evm_wlan_dsss_cck_pbcc() | Comments |
|---|---|---|
| DataRate (default is 11 Mbps) | searchTime (default is 550 µsec) | The recommended searchTime is !expmeas-05-09-01.gif! . BurstLength= tRamp+tPLCP+tPSDU+IdleInterval, where, tRamp = !expmeas-05-09-02.gif! tPLCP = !expmeas-05-09-03.gif! tPSDU = !expmeas-05-09-04.gif! |
| PreambleFormat (default is Long) | ||
| PwrRamp (default is None) | ||
| IdleInterval (default is 10 µsec) | ||
| DataLength (default is 100) | ||
| MirrorSpectrum (default is NO) | mirrorSpectrum (default is NO) | If DUT introduces spectrum mirroring, then mirrorSpectrum must be set to "NO" ("YES") when MirrorSpectrum is set to "YES" ("NO"); otherwise mirrorSpectrum must be set to the same value as MirrorSpectrum. |
| FilterType (default is Gaussian) | referenceFilter (default is Gaussian) | When FilterType is set to "Gaussian", the recommended setting of referenceFilter is "Gaussian"; otherwise, the recommended setting is "Rectangular" |
| GaussianFilter_bT (default is 0.3) | referenceFilterBT (default is 0.3) | The recommended setting of referenceFilterBT is the same value as GaussianFilter_bT. This parameter is only used when referenceFilter is set to "Gaussian". |
Privacy
Statement
|
Terms of Use
|
Legal |
Contact Us
|
© Agilent 2000-2008 ![]()