comm.ACPR

Adjacent Channel Power Ratio measurements

Description

The ACPR System object™ measures adjacent channel power ratio (ACPR) of an input signal.

To measure adjacent channel power:

  1. Define and set up your adjacent channel power object. See Construction.

  2. Call step to measure the adjacent channel power ratio according to the properties of comm.ACPR. The behavior of step is specific to each object in the toolbox.

Note

Starting in R2016b, instead of using the step method to perform the operation defined by the System object, you can call the object with arguments, as if it were a function. For example, y = step(obj,x) and y = obj(x) perform equivalent operations.

Construction

H = comm.ACPR creates a System object, H, that measures adjacent channel power ratio (ACPR) of an input signal.

H = comm.ACPR(Name,Value) creates object, H, with each specified property set to the specified value. You can specify additional name-value pair arguments in any order as (Name1,Value1,...,NameN,ValueN).

Properties

NormalizedFrequency

Assume normalized frequency values

Specify whether the frequency values are normalized. If you set this property to true, the object assumes that frequency values are normalized (in the [-1 1] range). The default is false. If you set this property to false, the object assumes that frequency values are measured in Hertz.

SampleRate

Sample rate of input signal

Specify the sample rate of the input signal, in samples per second, as a double-precision, positive scalar. The default is 1e6 samples per second. This property applies when you set the NormalizedFrequency property to false.

MainChannelFrequency

Main channel center frequency

Specify the main channel center frequency as a double-precision scalar. The default is 0 Hz.

When you set the NormalizedFrequency property to true, you must specify the center frequency as a normalized value between -1 and 1.

When you set the NormalizedFrequency property to false, you must specify the center frequency in Hertz. The object measures the main channel power in the bandwidth that you specify in the MainMeasurementBandwidth property. This measurement is taken at the center of the frequency that you specify in the MainMeasurementBandwidth property.

MainMeasurementBandwidth

Main channel measurement bandwidth

Specify the main channel measurement bandwidth as a double-precision, positive scalar. The default is 50e3 Hz.

When you set the NormalizedFrequency property to true, you must specify the measurement bandwidth as a normalized value between 0 and 1.

When you set the NormalizedFrequency property to false, you must specify the measurement bandwidth in Hertz. The object measures the main channel power in the bandwidth that you specify in the MainMeasurementBandwidth property. This measurement is taken at the center of the frequency that you specify in the MainChannelFrequency property.

AdjacentChannelOffset

Adjacent channel frequency offsets

Specify the adjacent channel offsets as a double-precision scalar or as a row vector comprising frequencies that define the location of adjacent channels of interest. The default is [-100e3 100e3] Hz.

When you set the NormalizedFrequency property to true, you must specify normalized frequency offset values between -1 and 1. When you set the NormalizedFrequency property to false, you must specify frequency offset values in Hertz. The offset values indicate the distance between the main channel center frequency and adjacent channel center frequencies. Positive offsets indicate adjacent channels to the right of the main channel center frequency. Negative offsets indicate adjacent channels to the left of the main channel center frequency.

AdjacentMeasurementBandwidth

Adjacent channel measurement bandwidths

Specify the measurement bandwidth for each adjacent channel. The default is the scalar, 50e3. The object assumes that each adjacent bandwidth is centered at the frequency defined by the corresponding frequency offset. You define this offset in the AdjacentChannelOffset property. Set this property to a double-precision scalar or row vector of length equal to the number of specified offsets in the AdjacentChannelOffset property.

When you set this property to a scalar, the object obtains all adjacent channel power measurements within equal measurement bandwidths. When you set the NormalizedFrequency property to true, you must specify normalized bandwidth values between 0 and 1. When you set the NormalizedFrequency property to false, you must specify the adjacent channel bandwidth values in Hertz.

MeasurementFilterSource

Source of the measurement filter

Specify the measurement filter source as one of None | Property. The default is None. When you set this property to None the object does not apply filtering to obtain ACPR measurements. When you set this property to Property, the object applies a measurement filter to the main channel before measuring the average power. Each of the adjacent channel bands also receives a measurement filter . In this case, you specify the measurement filter coefficients in the MeasurementFilter property.

MeasurementFilter

Measurement filter coefficients

Specify the measurement filter coefficients as a double-precision row vector containing the coefficients of an FIR filter in descending order of powers of z. Center the response of the filter at DC. The ACPR object automatically shifts and applies the filter response at each of the main and adjacent channel center frequencies before obtaining the average power measurements. The internal filter states persist and clear only when you call the reset method. This property applies when you set the MeasurementFilterSource property to Property. The default is 1, which is an all-pass filter that has no effect on the measurements.

SpectralEstimation

Spectral estimation control

Specify the spectral estimation control as one of Auto | Specify frequency resolution | Specify window parameters. The default is Auto.

When you set this property to Auto, the object obtains power measurements with a Welch spectral estimator with zero-percent overlap, a Hamming window, and a segment length equal to the length of the input data vector. In this setting, the spectral estimator set should achieve the maximum frequency resolution attainable with the input data length.

When you set this property to Specify frequency resolution, you specify the desired spectral frequency resolution, in normalized units or in Hertz, using the FrequencyResolution property. In this setting, the object uses the value in the FrequencyResolution property to automatically compute the size of the spectral estimator data window.

When you set this property to Specify window parameters, several spectral estimator properties become available so that you can control the Welch spectral estimation settings. These properties are: SegmentLength, OverlapPercentage, Window, and SidelobeAttenuation. Sidelobe attenuation applies only when you set the Window property to Chebyshev.

When you set this property to Specify window parameters, the FrequencyResolution property does not apply, and you control the resolution using the above properties.

SegmentLength

Segment length

Specify the segment length, in samples, for the spectral estimator as a numeric, positive, integer scalar. The default is 64. The length of the segment allows you to make tradeoffs between frequency resolution and variance in the spectral estimates. A long segment length results in better resolution. A short segment length results in more averaging and a decrease in variance. This property applies when you set the SpectralEstimation property to Specify window parameters.

OverlapPercentage

Overlap percentage

Specify the percentage of overlap between each segment in the spectral estimator as a double-precision scalar in the [0 100] interval. This property applies when you set the SpectralEstimation property to Specify window parameters. The default is 0 percent.

Window

Window function

Specify a window function for the spectral estimator as one of Bartlett | Bartlett-Hanning | Blackman | Blackman-Harris | Bohman | Chebyshev | Flat Top | Hamming | Hann | Nuttall | Parzen | Rectangular | Triangular. The default is Hamming. A Hamming window has 42.5dB of sidelobe attenuation. This attenuation may mask spectral content below this value, relative to the peak spectral content. Choosing different windows allows you to make tradeoffs between resolution and sidelobe attenuation. This property applies when you set the SpectralEstimation property to Specify window parameters.

SidelobeAttenuation

Sidelobe attenuation for Chebyshev window

Specify the sidelobe attenuation, in decibels, for the Chebyshev window function as a double-precision, nonnegative scalar. The default is 100 dB. This property applies when you set the SpectralEstimation property to Specify window parameters and the Window property to Chebyshev.

FrequencyResolution

Frequency resolution

Specify the frequency resolution of the spectral estimator as a double-precision scalar. The default is 10625 Hz.

When you set the NormalizedFrequency property to true, you must specify the frequency resolution as a normalized value between 0 and 1. When you set the NormalizedFrequency property to false, you must specify the frequency resolution in Hertz. The object uses the value in the FrequencyResolution property to calculate the size of the data window used by the spectral estimator. This property applies when you set the SpectralEstimation property to Specify frequency resolution.

FFTLength

FFT length

Specify the FFT length that the Welch spectral estimator uses as one of Next power of 2 | Same as segment length | Custom. The default is Next power of 2.

When you set this property to Custom, the CustomFFTLength property becomes available to specify the desired FFT length.

When you set this property to Next power of 2, the object sets the length of the FFT to the next power of 2. This length is greater than the spectral estimator segment length or 256, whichever is greater.

When you set this property to Same as segment length, the object sets the length of the FFT. This length equals the spectral estimator segment length or 256, whichever is greater.

CustomFFTLength

Custom FFT length

Specify the number of FFT points that the spectral estimator uses as a numeric, positive, integer scalar. This property applies when you set the FFTLength property to Custom. The default is 256.

MaxHold

Max-hold setting control

Specify the maximum hold setting. The default is false.

When you set this property to true, the object compares two vectors. One vector compared is the current estimated power spectral density vector (obtained with the current input data frame). The object checks this vector against the previous maximum-hold accumulated power spectral density vector, (obtained at the previous call to the step method). The object stores the maximum values at each frequency bin and uses them to compute average power measurements. You clear the maximum-hold spectrum by calling the reset method on the object. When you set this property to false, the object obtains power measurements using instantaneous power spectral density estimates. This property is tunable.

PowerUnits

Power units

Specify power measurement units as one of dBm | dBW | Watts. The default is dBm.

When you set this property to dBm, or dBW, the step method outputs ACPR measurements in a dBc scale (adjacent channel power referenced to main channels power). If you set this property to Watts, the step method outputs ACPR measurements in a linear scale.

MainChannelPowerOutputPort

Enable main channel power measurement output

When you set this property to true, the step method outputs the main channel power measurement. The default is false. The main channel power is the power of the input signal measured in the band that you define with the MainChannelFrequency and MainMeasurementBandwidth properties. The step method returns power measurements in the units that you specify in the PowerUnits property.

AdjacentChannelPowerOutputPort

Enable adjacent channel power measurements output

When you set this property to true, the step method outputs a vector of adjacent channel power measurements. The default is false. The adjacent channel powers correspond to the input signal's power measured in the bands that you define with the AdjacentChannelOffset and AdjacentMeasurementBandwidth properties. The step method returns power measurements in the units that you specify in the PowerUnits property.

Methods

resetReset states of ACPR measurement object
stepAdjacent Channel Power Ratio measurements
Common to All System Objects
release

Allow System object property value changes

Examples

collapse all

Generate data with an alphabet size of 16 and modulate the data

x  = randi([0 15],5000,1);
y = qammod(x,16);

Upsample the data by L = 8 using a rectangular pulse shape

L = 8;
yPulse = rectpulse(y,L);

Create an ACPR measurement object and measure the modulated signal

acpr = comm.ACPR(...
    'SampleRate', 3.84e6*8,...
    'MainChannelFrequency', 0,...
    'MainMeasurementBandwidth', 3.84e6,...
    'AdjacentChannelOffset', [-5e6 5e6],...
    'AdjacentMeasurementBandwidth', 3.84e6,...
    'MainChannelPowerOutputPort', true,...
    'AdjacentChannelPowerOutputPort', true);
[ACPR,mainChnlPwr,adjChnlPwr] = acpr(yPulse)
ACPR = 1×2

  -14.3659  -14.3681

mainChnlPwr = 38.8668
adjChnlPwr = 1×2

   24.5010   24.4988

Algorithms

Note

The following conditions must be true, otherwise power measurements fall out of the Nyquist interval.

|MainChannelFreq±MainChannelMeasBW2|<Fmax|(MainChannelFreq+AdjChannelOffset)±AdjChannelMeasBW2|<Fmax

Fmax = Fs/2 if NormalizedFrequency = false

Fmax = 1 if NormalizedFrequency = true

Extended Capabilities

Introduced in R2012a