# comm.MER System object

Package: comm

Measure modulation error ratio

## Description

The Modulation Error Ratio (MER) `MER` object measures the signal-to-noise ratio (SNR) in digital modulation applications. You can use these types of measurements to determine system performance in communications applications. For example, determining whether a DVB-T system conforms to applicable radio transmission standards requires accurate MER measurements. The block measures all outputs in decibels.

To measure modulation error ratio:

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

2. Call `step` to measure the modulation error ratio according to the properties of `comm.MER`. The behavior of `step` is specific to each object in the toolbox.

## Construction

`H = comm.MER` creates a modulation error ratio (MER) System object™, `H`. This object measures the signal-to-noise ratio (SNR) in digital modulation applications.

`H = comm.MER(Name,Value)` creates an MER 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

 `MinimumMEROutputPort` Enable minimum MER measurement output When you set this property to `true`, the `step` method outputs minimum MER measurements. The default is `false`. The `step` method outputs the minimum MER output as the minimum MER value measured in the current input frame. `XPercentileMEROutputPort` Enable X-percentile MER measurement output When you set this property to `true`, the `step` method outputs X-percentile MER measurements. The default is `false`. The X-percentile MER measurements persist. These measurements are based on all the input frames since the last reset. `XPercentileValue` X-percentile value Specify the X-percentile value (as a percentage) that the object uses to calculate the $x$th percentile of the MER measurements. The default is `95`. Set this property to a real scalar value between `0` and `100`, inclusive. This property can have a data type of double, single, or integer. This property applies when you set the `XPercentileMEROutputPort` property to `true`. The $x$-th percentile is the MER value above which $x$% of all the computed MER values lie. `SymbolCountOutputPort` Enable symbol count output When you set this property to `true`, the `step` method outputs the number of accumulated symbols that have been used to calculate the $x$-Percentile MER measurements since the last reset. The default is `false`. This property applies when you set the `XPercentileMEROutputPort` property to `true`.

## Methods

 clone Create MER measurement object with same property values getNumInputs Number of expected inputs to step method getNumOutputs Number of outputs from step method isLocked Locked status for input attributes and nontunable properties release Allow property value and input characteristics changes reset Reset states of MER measurement object step Measure modulation error ratio

## Examples

collapse all

### Measure MER of a noisy 16-QAM modulated signal

```% Create a rectangular QAM modulator and an AWGN Channel hMod = comm.RectangularQAMModulator(16); hAWGN = comm.AWGNChannel('NoiseMethod',... 'Signal to noise ratio (SNR)',... 'SNR', 20, 'SignalPower', 10); % Create an MER object, output minimum and 90-percentile MER, and symbol % count hMER = comm.MER('MinimumMEROutputPort', true, ... 'XPercentileMEROutputPort', true,'XPercentileValue', 90,... 'SymbolCountOutputPort',true); % Generate modulated symbols and add noise refsym = step(hMod, randi([0 15], 1000, 1)); rxsym = step(hAWGN, refsym); % Calculate measurements [MERdB,MinMER,PercentileMER,NumSym] = step(hMER,refsym,rxsym) ```
```MERdB = 20.1071 MinMER = 11.4248 PercentileMER = 16.5850 NumSym = 1000 ```

## Algorithms

This object implements the algorithm, inputs, and outputs described on the MER Measurement block reference page. The object properties correspond to the block parameters.