# comm.CCDF

Measure complementary cumulative distribution function

## Description

The `comm.CCDF` object measures the probability that the instantaneous power of the input signal being a specified level above its average power.

To measure complementary cumulative distribution of a signal:

1. Define and set up your CCDF object. See Construction .

2. Call `step` to measure complementary cumulative distribution according to the properties of `comm.CCDF`. 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

`ccdf = comm.CCDF` creates a complementary cumulative distribution function measurement (CCDF) System object, `ccdf`, that measures the probability of a signal's instantaneous power to be a specified level above its average power.

`ccdf = comm.CCDF(Name,Value)` creates a CCDF object, `ccdf`, 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

 `NumPoints` Number of CCDF points Specify the number of CCDF points that the object calculates. This property requires a numeric, positive, integer scalar. The default is `1000`. Use this property with the `MaximumPowerLimit` property to control the size of the histogram bins. The object uses these bins to estimate CCDF curves. This controls the resolution of the curves. All input channels must have the same number of CCDF points. `MaximumPowerLimit` Maximum expected input signal power Maximum expected input signal power limit for each input channel, specified as a scalar or row vector with length equal to the number of input channels. The default is `50`. This property is expected to have the same units as the `PowerUnits` property. When you set this property to a scalar, the object assumes that the signals in all input channels have the same expected maximum power. When you set this property to a row vector, the object assumes that the i-th element of the vector is the maximum expected power for the signal at the i-th input channel. For each input channel, the object obtains CCDF results by integrating a histogram of instantaneous input signal powers. The object sets the bins of the histogram so that the last bin collects all power occurrences that are equal to, or greater than the power that you specify in this property. The object issues a warning if any input signal exceeds its specified maximum power limit. Use this property with the `NumPoints` property to control the size of the histogram bins that the object uses to estimate CCDF curves (such as control the resolution of the curves). `PowerUnits` Power units Specify the power measurement units as one of `dBm` | `dBW` | `Watts`. The default is `dBm`. The `step` method outputs power measurements in the units specified in the `PowerUnits` property. When you set this property to `dBm` or `dBW`, the `step` method outputs relative power values in a dB scale. When you set this property to `Watts`, the `step` method outputs relative power values in a linear scale. When you call the `step` method, the object assumes that the units of `MaximumPowerLimit` have the same value you specified in the `PowerUnits` property. `AveragePowerOutputPort` Enable average power measurement output When you set this property to `true`, running the object returns the running average power measurements. The default is `false`. `PeakPowerOutputPort` Enable peak power measurement output When you set this property to `true`, running the object returns the peak power measurements. The default is `false`. `PAPROutputPort` Enable PAPR measurement output When you set this property to `true`, running the object returns the peak-to-average-power measurements. The default is `false`.

## Methods

 getPercentileRelativePower Get relative power value for given percentile getProbability Get the probability for a given relative power value plot Plot CCDF curves step Measure complementary cumulative distribution function
Common to All System Objects
`release`

Allow System object property value changes

`reset`

Reset internal states of System object

## Examples

collapse all

Create a CCDF System object and specify that it output average power and peak power measurements.

```ccdf = comm.CCDF('AveragePowerOutputPort',true, ... 'PeakPowerOutputPort',true);```

Generate 16-QAM and QPSK modulated signals.

```qamTxSig = qammod(randi([0 15],20e3,1),16,'UnitAveragePower',true); qpskTxSig = pskmod(randi([0 3],20e3,1),4,pi/4);```

Pass the signals through an AWGN channel.

```qamRxSig = awgn(qamTxSig,15); qpskRxSig = awgn(qpskTxSig,15);```

Measure the CCDF of the two waveforms. Plot the CCDF using the `plot` method of `comm.CCDF`.

```[CCDFy,CCDFx,AvgPwr,PeakPwr] = ccdf([qamRxSig qpskRxSig]); plot(ccdf) legend('16-QAM','QPSK')``` 