MPAM Demodulator Baseband
Demodulate MPAMmodulated data
Libraries:
Communications Toolbox /
Modulation /
Digital Baseband Modulation /
AM
Description
The MPAM Demodulator Baseband block demodulates a signal that was modulated using Mary pulse amplitude modulation.
Note
All values of power assume a nominal impedance of 1 ohm.
Examples
ATSC Digital Television
The vestigial sideband modulation with 8 discrete amplitude levels (8VSB) transmission subsystem of the Advanced Television Systems Committee (ATSC) digital television standard [ 1 ]. The standard describes the characteristics of the U.S. advanced television system that is designed to transmit highquality video, audio, and ancillary data within a single 6 MHz terrestrial television broadcast channel.
Ports
Input
In — MPAMmodulated signal
scalar  column vector
MPAMmodulated signal, specified as a scalar or column vector. This port is unnamed on the block.
Data Types: double
 single
 int8
 int16
 int32
 int64
 uint8
 uint16
 uint32
 uint64
 Boolean
 fixed point
Complex Number Support: Yes
Output
Out — Demodulated signal
scalar  vector
Demodulated signal, returned as a scalar or vector. The dimensions of the demodulated signal depend on the value you specify for the Output data type parameter. This port is unnamed on the block.
Parameters
To edit block parameters interactively, use the Property Inspector. From the Simulink^{®} Toolstrip, on the Simulation tab, in the Prepare gallery, select Property Inspector.
Main
Mary number — Modulation order
4
(default)  positive, even integer
Modulation order, specified as a positive, even integer. The modulation order, M, specifies the number of points in the signal constellation. The block scales the signal constellation based on how you set the Normalization method parameter.
Output type — Output type
Integer
(default)  Bit
Output type, specified as Integer
or
Bit
. When you set this parameter to
Bit
, the Mary
number parameter must be
2^{K} for some
positive integer K.
Constellation ordering — Mapping order of symbols
Binary
(default)  Gray
Mapping order of the symbols, specified as
Gray
or
Binary
. This parameter determines how the
block maps each symbol to a group of output bits or an integer.
The Constellation ordering parameter indicates how the block assigns binary words to points of the signal constellation. For more information, see IntegerValued Signals and BinaryValued Signals.
Normalization method — Scaling method for the constellation
Min. distance between
symbols
(default)  Average Power
 Peak Power
Scaling method for the constellation, specified as Min.
distance between symbols
, Average
Power
, or Peak Power
. For
more information, see IntegerValued Signals and BinaryValued Signals.
Minimum distance — Distance between two nearest constellation points
2
(default)  positive scalar
Distance between the two nearest constellation points, specified as a positive scalar.
Dependencies
This parameter appears when you set Normalization method to Min. distance
between symbols
.
Average power, referenced to 1 ohm (watts) — Average power
1
(default)  positive scalar
Average power of the symbols in the constellation in watts, specified as a positive scalar. Power values assume a nominal impedance of 1 ohm.
Dependencies
This parameter appears when you set Normalization method to Average
Power
.
Peak power, referenced to 1 ohm (watts) — Maximum power
1
(default)  positive scalar
Maximum power of the symbols in the constellation in watts, specified as a positive scalar. Power values assume a nominal impedance of 1 ohm.
Dependencies
This parameter appears when you set Normalization method to Peak
Power
.
Data Types
Output data type — Output data type
Inherit via internal
rule
(default)  Smallest unsigned integer
 double
 single
 int8
 uint8
 int16
 uint16
 int32
 uint32
 boolean
Output data type, specified as Inherit via internal
rule
, Smallest unsigned
integer
, double
,
single
, int8
,
uint8
, int16
,
uint16
, int32
,
uint32
, or
boolean
.
When you select
Inherit via internal rule
, the block inherits the data type based on an internal rule. For more information on this rule, see Inherit via Internal Rule. The output data type is the same as the input data type if the input is of typesingle
ordouble
. Otherwise, the output data type is the same as for'Smallest unsigned integer'
.When you select
'Smallest unsigned integer'
, the block sets the output data type based on the settings in the Hardware Implementation pane of the Configuration Parameters dialog box. IfASIC/FPGA
is selected in the Hardware Implementation pane, the output data type is the ideal minimum size, that is,ufix(1)
for bit outputs andufix(ceil(log2(M)))
for integer outputs. For all other selections, it is an unsigned integer with the smallest available word length large enough to fit the ideal minimum size, usually corresponding to the size of a char (for example,uint8
).For integer outputs, you can set this parameter to
Smallest unsigned integer
,int8
,uint8
,int16
,uint16
,int32
,uint32
,single
, anddouble
. For bit outputs, the options areSmallest unsigned integer
,int8
,uint8
,int16
,uint16
,int32
,uint32
,boolean
,single
, ordouble
.
For information about specifying data types, see Data Type Assistant.
Denormalization factor — Denormalization factor data type
Inherit: Same word length as
input
(default)  fixdt(1,16)
 <data type expression>
Specify the denormalization factor data type as Inherit:
Same word length as input
,
fixdt(1,16)
, or <data
type expression>
. This scaling factor is derived from
Normalization method and other parameter of
the block. The block always uses a bestprecision fraction
length.
For information about specifying data types, see Data Type Assistant.
Dependencies
This parameter applies only when the input signal is fixedpoint and the derived denormalization factor is a nonunity value (not equal to 1).
Product output — Product output data type
Inherit: Inherit via internal
rule
(default)  fixdt(1,16)
 <data type expression>
Specify the product data type as Inherit: Inherit via
internal rule
, fixdt(1,16)
,
or <data type expression>
.
When you select Inherit: Inherit via internal
rule
, the block computes the fullprecision product
word length and fraction length. For information about the
fullprecision Product output internal rule, see
Internal Rule for
Product Data Types.
The block uses rounding mode when the result of a fixedpoint calculation does not map exactly to a number representable by the data type and scaling storing the result. For more information, see Rounding Modes or Rounding Mode: Simplest (FixedPoint Designer).
For information about specifying data types, see Data Type Assistant.
Dependencies
This parameter applies only when the input is a fixedpoint signal and the derived denormalization factor is a nonunity value (not equal to 1).
Rounding mode — Rounding mode for fixedpoint operations
Wrap
(default)  Saturate
Specify the rounding mode for Product output fixedpoint operations as
Wrap
or
Saturate
. The block uses rounding mode
when the result of a fixedpoint calculation does not map exactly to a
number representable by the data type. For more information, see Rounding
Modes or Rounding Mode: Simplest (FixedPoint Designer).
Dependencies
This parameter applies for Product output only.
Saturate on integer overflow — Option to saturate on integer overflow
off
(default)  on
Select this check box to saturate on integer overflow.
Dependencies
This parameter applies for Product output only.
Sum — Sum data type
Inherit: Inherit via internal
rule
(default)  Inherit: Same as product output
 fixdt(1,16)
 <data type expression>
Specify the sum data type as Inherit: Inherit via
internal rule
, Inherit: Same as product
output
, fixdt(1,16)
, or
<data type expression>
.
When you select
Inherit: Inherit via internal rule
, the block computes the fullprecision sum word length and fraction length, based on the two inputs to the sum in the flow diagram of the fixedpoint Hard Decision Algorithm signal. The rule is the same as the fixedpoint inherit rule of the internal Accumulator data type parameter in the Sum (Simulink) block.When you select
Inherit: Same as product output
and Product output applies, the block configures the data type of the Sum parameter to be the same as the Product output data type.When you select
Inherit: Same as product output
and Product output does not apply, then the block ignores this setting and uses theInherit: Inherit via internal rule
and computed sum.
For information about specifying data types, see Data Type Assistant.
Dependencies
This parameter applies only when the input is a fixedpoint signal.
Block Characteristics
Data Types 

Multidimensional Signals 

VariableSize Signals 

^{a} Fixedpoint inputs must be signed. ^{b} When ASIC/FPGA is selected in the Hardware Implementation Pane, output is ufix(1) for bit outputs, and ufix(ceil(log2(M))) for integer outputs. 
More About
Data Type Assistant
The Data Type Assistant helps you set data attributes. To use the Data Type Assistant, click . For more information, see Specify Data Types Using Data Type Assistant (Simulink).
Algorithms
Hard Decision MPAM Demodulation
The demodulator algorithm maps received input signal constellation values to Mary integer symbol indices in the range [0, M – 1] and then maps these demodulated symbol indices to formatted output values.
The demodulator computes the integer symbol index by first scaling the real part of the received input signal by a denormalization factor derived from the normalization method and related parameters.
To translate the received signal into the approximate range of [0, 2(M – 1)] plus noise, add the denormalized value to (M – 1).
To obtain a range approximately between [0, M – 1] plus noise, rescale the resulting value via a dividebytwo (or, equivalently, a rightshift by one bit for fixedpoint operation).
Round the noisy index value to the nearest integer and clip, via saturation, to the exact range of [0 M – 1].
Finally, based on other block parameters, map the integer index to a symbol value that is formatted and cast to the selected output data type.
The following figures contain sidebyside signal flow diagrams for floatingpoint and fixedpoint algorithm operation.
The floatingpoint diagrams apply when the input signal data type is
double
orsingle
.The fixedpoint diagrams apply when the input signal is a signed fixedpoint data type.
Separate signal flows show the denormalization factor set to unity or nonunity. Setting the denormalization factor to 1 normalizes the constellation and simplifies the signal flow.
This figure shows the floatingpoint and fixedpoint demodulation signalflow diagram with a unity denormalization factor.
This figure shows the floatingpoint and fixedpoint demodulation signalflow diagram with a nonunity denormalization factor.
IntegerValued Signals and BinaryValued Signals
When you set the Output type parameter to
Integer
, the block outputs integer values in the range
[0
, (M – 1
)]. M
represents the Mary number block parameter.
When you set the Output type parameter
to Bit
, the block outputs binaryvalued
signals that represent integers. The block represents each integer
using a group of K = log_{2}(M)
bits, where K represents the number of bits per
symbol. The output vector length must be an integer multiple of K.
The Constellation ordering parameter indicates how the block assigns binary words to points of the signal constellation. For more information about the constellation, see the MPAM Modulator Baseband block.
Extended Capabilities
C/C++ Code Generation
Generate C and C++ code using Simulink® Coder™.
Version History
Introduced before R2006a
See Also
Blocks
Functions
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
 América Latina (Español)
 Canada (English)
 United States (English)
Europe
 Belgium (English)
 Denmark (English)
 Deutschland (Deutsch)
 España (Español)
 Finland (English)
 France (Français)
 Ireland (English)
 Italia (Italiano)
 Luxembourg (English)
 Netherlands (English)
 Norway (English)
 Österreich (Deutsch)
 Portugal (English)
 Sweden (English)
 Switzerland
 United Kingdom (English)