Modulation using OQPSK method
Communications Toolbox / Modulation / Digital Baseband Modulation / PM
The OQPSK Modulator Baseband block modulates the input signal using the offset quadrature phase shift keying (OQPSK) method and applies pulse shape filtering to the waveform. For more information, see Pulse Shaping Filter. The output is a baseband representation of the modulated signal.
For information about delays incurred by modulator-demodulator pair processing, see Modulation Delays.
In
— Input dataInput data, specified as an integer or bit column vector.
The input signal is processed based on the setting selected for Input type.
Data Types: double
Out
— Output baseband waveformOutput baseband waveform, returned as a column vector of complex data.
Input type
— Input typeInteger
(default) | Bit
Input type, specified as Integer
or
Bit
.
When you set Input type to
Integer
, the input can be a
scalar value or column vector, the length of which is the number
of input symbols.
When you set Input type to
Bit
, the input width must be an
integer multiple of two.
The output sample period is the period of each integer or bit pair in the input divided by Samples per symbol.
Phase offset (rad)
— Phase of zeroth point of signal constellation0
(default) | scalarPhase offset from π/4, specified as a scalar in radians. The phase offset is applied to the zeroth point of the signal constellation before delay of quadrature component. After the OQPSK imaginary-component delay, the signal is normalized with unity power.
Example: Setting Phase offset (rad) to
pi/4
aligns the zeroth point of the QPSK signal
constellation point on the axes, {(1,0), (0,j), (-1,0),
(0,-j)}.
Symbol mapping
— Signal constellation bit mappingGray
(default) | Binary
| custom 4-element numeric vector of integers with values from 0 to
3Signal constellation bit mapping, specified as
Gray
, Binary
,
or a custom 4-element numeric vector of integers with values from 0 to
3.
Setting | Constellation Mapping for Integers | Constellation Mapping for Bits | Comment |
---|---|---|---|
|
|
| The signal constellation mapping is Gray-encoded. |
|
|
| The signal constellation mapping for the input integer
|
Custom 4-element numeric vector of integers with values from 0 to 3 |
|
| Elements [a b c d] must be composed of the set of values [0, 1, 2, 3] in any order. |
Pulse shape
— Filtering pulse shapeHalf sine
(default) | Normal raised cosine
| Root raised cosine
| Custom
Select the filtering pulse shape: Half
sine
, Normal raised cosine
,
Root raised cosine
, or
Custom
.
Rolloff factor
— Raised cosine filter rolloff factor0.2
(default) | scalarRaised cosine filter rolloff factor, specified as a scalar in the
range [0
, 1
].
This property is enabled when Pulse shape is Normal raised
cosine
or Root raised
cosine
.
Data Types: double
Filter span (in symbols)
— Filter length10
(default) | scalarFilter length in symbols, specified as a scalar. An ideal raised cosine filter has an infinite impulse response. However, to realize a practical implementation of this filter, the object truncates the impulse response to Filter span (in symbols) symbols.
This property is enabled when Pulse shape is Normal raised
cosine
or Root raised
cosine
.
Data Types: double
Filter numerator
— Filter numerator[0.7071 0.7071]
(default) | row vectorFilter numerator, specified as a row vector.
This parameter is enabled when Pulse shape is Custom
.
Data Types: double
Samples per symbol
— Number of samples per symbol4
(default) | positive even integerNumber of samples per symbol, specified as a positive even integer.
Data Types: double
Rate options
— Processing rate optionEnforce single-rate
processing
(default) | Allow multirate processing
Enforce single-rate processing
— Executes the model, ensuring that the input and output
signals have the same port sample time. The block implements
the rate change by making a size change at the output when
compared to the input. For integer inputs, the output width
equals Samples per symbol times the number of
symbols.
For more information, see Single-Rate Processing with OQPSK Modulator Block.
Allow multirate processing
— Executes the model, allowing the input and output
signals to have different port sample times. The output
sample time equals the symbol period divided by Samples per symbol.
For more information, see Single-Rate Processing with OQPSK Modulator Block.
Output data type
— Output data typedouble
(default) | single
Select the output data type: double
or
single
.
Data Types |
|
Multidimensional Signals |
|
Variable-Size Signals |
|
Digital modulation and demodulation blocks incur delays between their inputs and outputs that result in an offset in the arrival time of the received data. Data that enters a modulation or demodulation block at time T appears in the output at time T+delay. Take system delays into account when comparing transmitted data with received data, such as in overlaid plots or when computing error statistics. As shown here, the OQPSK modulation-demodulation delay varies depending on the pulse shaping filter, input/output data setting, and simulation configuration.
Pulse Shape | Rate Options | Treat Each Discrete Rate as a Separate Task? | Input/Output Data (*) | End-to-End Delay Incurred by an OQPSK Modulator-Demodulator Block Pair (in samples) |
---|---|---|---|---|
Half sine or
Custom | Enforce single-rate
operation | N/A | Integer | 1 |
Bit | 2 | |||
Allow multirate
processing | false (single tasking) | Integer | length(data) + 1 + 1 | |
Bit | length(data) + 2 + 2 | |||
true (multitasking) | Integer | length(data) + 1 + 2 | ||
Bit | length(data) + 2 + 4 | |||
Normal raised cosine or
Root raised cosine | Enforce single-rate
operation | N/A | Integer | Filter span (in symbols) |
Bit | 2*Filter span (in symbols) | |||
Allow multirate
processing | false (single tasking) | Integer | length(data) + Filter span (in symbols) + 1 | |
Bit | length(data) + 2*Filter span (in symbols) + 2 | |||
true (multitasking) | Integer | 2*length(data) + Filter span (in symbols) + 2 | ||
Bit | 2*length(data) + 2*Filter span (in symbols) + 4 | |||
(*) The data type parameter is Input type for modulation and Output type for demodulation. |
The OQPSK modulation scheme requires oversampling of two or greater in order to delay (or offset) the quadrature channel by 90 degrees. This oversampling is achieved through interpolation filtering implemented by pulse shaping.