commmeasure.ACPR - Create adjacent channel power measurement object
Syntax
h = commmeasure.ACPR
h = commmeasure.ACPR('PropertyName',PropertyValue,...)
Description
h = commmeasure.ACPR returns a default
adjacent channel power ratio (ACPR) object, h. You can use the ACPR
object to measure both ACPR and main and adjacent channel average
power.
h = commmeasure.ACPR('PropertyName',PropertyValue,...) returns
an ACPR object h, with property values set to PropertyValues. See
the following properties list for valid property names.
Properties
An adjacent channel power ratio measurement object has the properties
in the following table. Setting any property, except PowerUnits, resets
the ACPR object. A property that is irrelevant is
one that you can set, but its value does not affect measurements.
Similarly, you cannot display irrelevant properties using the disp method.
You can write to all properties, except for the ones explicitly noted
otherwise.
| Property | Description |
| Type | 'ACPR Measurements'. Read-only. |
| NormalizedFrequency | Normalized frequency flag. After construction, property defaults to 'True' anytime
you do not provide a value for the Fs property. The Fs property is irrelevant unless
you set NormalizedFrequency to 'False'. When you toggle NormalizedFrequency
from 'True' to 'False', Fs defaults to its last
value. It defaults to unity if you do not input an Fs value. If you set NormalizedFrequency to 'True' the value
for Fs is the normalization factor for all frequency-related
properties in the commmeasure.ACPR object. If you set NormalizedFrequency to 'False' the value
for Fs becomes the denormalization factor for all
frequency-related properties in the commmeasure.ACPR object.
|
| Fs | Sampling frequency of input data. This property holds
the input signal sampling frequency. This property is irrelevant unless you set the NormalizedFrequency
property to 'False'. Setting NormalizedFrequency to 'False', defaults Fs
to its last value. Fs defaults to unity if you do not input a value.
|
| MainChannelFrequency | Specify main channel center frequency (normalized or in Hertz).
The object measures main channel power in a specific bandwidth, centered
at the MainChannelFrequency value. Defaults to 0. |
| MainChannelMeasBW | Measurement bandwidth for main channel (normalized or
in Hertz). The ACPR object measures main channel power within
the specified MainChannelMeasBW bandwidth, centered at the main channel
frequency. When NormalizedFrequency is 'True', the value defaults
to 0.1. When NormalizedFrequency is 'False', the value defaults
to 0.1*Fs/2
|
| AdjacentChannelMeasBW | Specify a vector of adjacent channel measurement bandwidths. The ACPR object measures adjacent channel power within
the bandwidths specified in the AdjacentChannelMeasBW property. The ACPR object centers each adjacent channel at the
frequency defined by the corresponding offset specified in the AdjacentChannelOffset
property, where
 AdjacentChannelMeasBW can specify a scalar or vector
of a length that equals the number of offsets the AdjacentChannelOffset
property specifies. For scalar values, the ACPR object obtains power
measurements within equal measurement bandwidths. When NormalizedFrequency is 'True', the value defaults
to 0.1. When NormalizedFrequency is 'False', the value defaults
to 0.1*Fs/2
|
| MeasurementFilter | Specify a measurement filter. The filter must be an FIR filter, contained in a dfilt object
and its response must center at 0 Hz. The ACPR object automatically shifts and applies the
filter at each of the specified main and adjacent channel bands before
obtaining power measurements. (The power measurement still falls within
the ranges specified by the MainChannelMeasBW, and AdjacentChannelMeasBW
properties.) Anytime you set this property to an all-pass filter
(with an arbitrary gain) it has no effect on the input data. This property value defaults to an all-pass filter
with unity gain.
|
| SpectralEstimatorOption | Spectral estimator control option. Specify the spectral estimator option as either 'Default'
or 'User-defined'. When you set this property to 'Default', a default
Welch spectral estimator obtains the power spectral density measurements.
The default spectral estimator has a zero percent overlap and a Hamming
window. The FrequencyResolutionOption, and FrequencyResolution properties
control the segment length of the Welch estimator. When you set the
SpectralEstimatorOption property to 'Default' you do not have control
of the spectral estimator settings. If you set this property to 'User defined' several
properties become available for controlling the internal spectral
estimator. These properties are: SegmentLength OverlapPercentage WindowOption SidelobeAtten
The SidelobeAtten property is irrelevant unless you select 'Chebyshev'
for WindowOption.
|
| SegmentLength | Specify the segment length (in samples) for the spectral
estimator. This property is irrelevant unless you set the SpectralEstimatorOption
property to 'User defined'. The length of the segment allows you to make trade-offs
between the resolution and variance of the spectral estimator. A long
segment length results in better resolution, allowing you to control
power leakage from adjacent frequency components. A short segment
length results in more averages, therefore decreasing the variance
of the power spectral measurements. The value defaults to 64.
|
| OverlapPercentage | Specify the percentage of overlap between each segment
in the spectral estimator. This property is irrelevant unless you set SpectralEstimatorOption
property to 'User-defined'. Increasing the overlap results in more
averages, therefore decreasing the variance of the power spectral
measurements, while maintaining higher resolution. The OverlapPercentage property must be in the [0 100]
interval. The value defaults to 0.
|
| WindowOption | Specify the window type for the spectral estimator. You can use a subset of the window types found in
the Signal Processing Toolbox™ window function
with the ACPR object. Choose from the following window types: 'Bartlett' 'Bartlett-Hanning' 'Blackman' 'Blackman-Harris' 'Bohman' 'Chebyshev' 'Flat Top' 'Hamming' 'Hann' 'Nuttall 'Parzen' 'Rectangular' 'Triangular'
Choosing different windows allows you to make tradeoffs
between resolution and sidelobe attenuation. You can increase the
dynamic range of ACPR measurements using a higher sidelobe attenuation. This property is irrelevant unless you set the SpectralEstimatorOption
property to 'User defined'. Defaults to a Hamming window which has a 42.5 dB sidelobe
attenuation, which sometimes masks spectral content below the value
(relative to the peak spectral content).
|
| SidelobeAtten | Specify the sidelobe attenuation for Chebyshev windows in
decibels. This property is irrelevant unless you set the SpectralEstimatorOption
property to 'User defined', and the WindowOption property is 'Chebyshev'. The value defaults to 100 dB.
|
| FrequencyResolutionOption | Specify the frequency resolution. This property is irrelevant unless you set the SpectralEstimatorOption
property to 'Default'. When you set the SpectralEstimatorOption property
to 'Default', the specified frequency resolution automatically determines
the segment length of the internal spectral estimator. When you set the SpectralEstimatorOption property
to 'User defined', the FrequencyResolutionOption becomes irrelevant
and the SegmentLength property controls the spectral estimator segment
length. Setting the FrequencyResolutionOption property to
'Inherit from input dimensions' sets the resolution to the maximum
achievable resolution given the data length at run time. When you set the FrequencyResolutionOption property
to 'Specify via property' then the FrequencyResolution property becomes
available for specifying the frequency resolution value.
|
| FrequencyResolution | Specify the frequency resolution of the spectral estimator
(normalized or in hertz). Use the FrequencyResolution property to control the
segment length of the internal default spectral estimator. The relationship
between segment length and resolution is:
 Low resolution values yield power spectral measurements
with lower variances, but suffer from more power leakage from adjacent
frequency components. High resolution values yield power spectral
measurements with higher variances, but include less power leakage
from adjacent frequency components. This property is irrelevant unless you set the SpectralEstimatorOption
property to 'Default', and the FrequencyResolutionOption property
to 'Specify via property'. If you set the SpectralEstimatorOption property to
'User defined', FrequencyResolution becomes irrelevant and the SegmentLength
property directly controls the spectral estimator window length. When NormalizedFrequency is 'True', the value defaults
to 1.36/64. When NormalizedFrequency is 'False', the value defaults
to 1.36*(Fs/2)/64.
|
| FFTLengthOption | Specify the number of FFT points the internal spectral
estimator uses. You can choose from three options for this property: 'Specify via property' 'Next power of 2' 'Auto'
'Specify via property' makes the FFTLength property
available for specifying the FFT length. 'Next power of 2' sets FFT length to the next power
of 2 greater than the spectral estimator segment length or 256, whichever
is greater. 'Auto' sets the length of the FFT to either the spectral
estimator segment length or to 256, whichever is greater.
|
| FFTLength | Specify an FFT length for the spectral estimator. |
| MaxHold | Specify the maximum-hold control. You can choose from two options for this property: If you set to 'On', the ACPR object compares the current
power spectral density estimated vector to the previous max-hold accumulated
power spectral density vector estimation. The object obtains the current
power spectral density estimated vector using the current input data.
It obtains the previous max-hold accumulated power spectral density
vector estimation using the previous call to the run method. The maximum
values at each frequency bin are used in calculating the average power
measurements. A call to the reset method clears the max-hold spectrum. If you set to 'Off" the ACPR object obtains
measurements with instantaneous power spectral density estimates.
|
| PowerUnits | Specify power measurement units. You can choose from three options for this property: If you set this property to either 'dBm', or 'dBW',
then the unit of measure ACPR measurements dBc (adjacent channel power
referenced to the main channel power). If you set this property to linear, then ACPR measurements
appear in linear units.
|
| FrameCount | Number of processed signal frames. Read-only. Calling the 'reset'
method clears this property. |
Note
The following conditions must be true otherwise power measurements
fall out of the Nyquist interval.
 lim = Fs/2 if NormalizedFrequency = false lim = 1 if NormalizedFrequency = true |
Methods
run
Obtain a new set of ACPR power measurements from input data
column vector x.
acpr= run(h,x) returns a vector of adjacent channel power ratio
measurements, ACPR, obtained from the input data column vector, x.
[acpr, mainpow] = run(h,x) returns the measured main channel
power, mainpow.
[acpr, mainpow, adjpow] = run(h,x) returns a vector with measured
adjacent channel powers, adjpow.
Each run(h,x) call updates and saves the commmeasure.ACPR object's
frame count property, max-hold spectrum (if max-hold is on), and measurement
filter states, until the object calls the reset(h) method.
reset
Reset the ACPR object h.
reset(h) clears the max-hold spectrum (relevant if obtaining
measurements with the MaxHold property set to 'On'). Simultaneously,
it clears the FrameCount property, resets the measurement filter,
and initializes the internal spectral estimator according to the user
specifications.
disp
Display relevant ACPR object properties.
disp(h) displays relevant properties of the ACPR object h .
copy
Copy the ACPR object.
hcopy = copy(h) copy the ACPR object h and
return in hcopy. h and hcopy represent
independent but identical objects. For example, modifying the h object
does not affect hcopy object.
Algorithms
If the measurement bandwidths for the main channel and adjacent
channels differ, the object applies the following normalization factor
to compare power correctly:

Examples
% Measure ACPR of a 16-QAM signal with symbol rate of 3.84 Msps at
% -5 and +5 MHz frequency offsets. Set all measurement bandwidths
% to 3.84 MHz. Sampling frequency is set to 8 samples per symbol.
Fs = 3.84e6*8; % 8 samples per symbol
M = 16; % Alphabet size
x = randi([0 M-1],5000,1); % Message signal
hMod = modem.qammod(M); % Use 16-QAM modulation.
y = modulate(hMod,x); % Modulate the signal
yPulse = rectpulse(y,8); % Rectangular pulse shaping.
h = commmeasure.ACPR(...
'MainChannelFrequency',0,...
'MainChannelMeasBW',3.84e6, ...
'AdjacentChannelOffset',[-5e6 5e6],...
'AdjacentChannelMeasBW',3.84e6, ...
'Fs',Fs)
[ACPR mainChnlPwr adjChnlPwr] = run(h,yPulse)This example produces the following output.
h =
Type: 'ACPR Measurement'
NormalizedFrequency: 0
Fs: 30720000
MainChannelFrequency: 0
MainChannelMeasBW: 3840000
AdjacentChannelOffset: [-5000000 5000000]
AdjacentChannelMeasBW: 3840000
MeasurementFilter: [1x1 dfilt.dffir]
SpectralEstimatorOption: 'Default'
FrequencyResolutionOption: 'Inherit from input dimensions'
FFTLengthOption: 'Next power of 2'
MaxHold: 'Off'
PowerUnits: 'dBm'
FrameCount: 0
ACPR =
-14.2196 -14.2220
mainChnlPwr =
38.8652
adjChnlPwr =
24.6456 24.6432See Also
commmeasure.EVM, commmeasure.MER
References
[1] Scott, Allen and Rex Frobennius. RF Measurements
for Cellular Phones and Wireless Data Systems. Wiley &
Sons Incorporated: Hoboken, New Jersey.
 | commscope.ScatterPlot | | commmeasure.EVM |  |
How much time do you spend on testing to ensure implementation meets system-level requirements?
Learn more