Main Content

OQPSK Modulator Baseband

Modulate using OQPSK method

  • OQPSK Modulator Baseband block

Libraries:
Communications Toolbox / Modulation / Digital Baseband Modulation / PSK

Description

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.

Examples

expand all

This example shows the OQPSK Modulator Baseband and OQPSK Demodulator Baseband blocks connected with no channel or impairments distorting the signal between them. They are configured for frame-based processing with bit signal inputs.

Use the Open model button to open the cm_ex_oqpsk_mod_demod_pair model and run the simulation.

The model displays the constellation of the OQPSK-modulated signal and computes the bit error rate of the recovered signal. The delay of the recovered signal, as determined by the Find Delay block, is applied in the Error Rate Calculation block. For perfect data recovery, the bit error rate is zero.

This example shows the OQPSK Modulator Baseband block configured for single-rate processing using integer or bit for the input type.

Use the Open model button to open the slex_oqpskmod_framebased model.

In single-rate processing mode, the input and output signals have the same port sample time. The block implicitly implements the rate change by making a size change at the output when compared to the input. In this mode, the output of the block is an integer multiple of the Samples per symbol parameter.

  • When you set the Input type parameter 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 the Input type parameter 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 at the input divided by the Samples per symbol.

This example shows the OQPSK Modulator Baseband block configured for multirate processing using integer or bit for the input type.

Use the Open model button to open the slex_oqpskmod_samplebased model.

In multirate processing mode, the input and output signals have different port sample times. In this mode, the input to the block must be one symbol.

  • When you set the Input type parameter to Integer, the input must be a scalar value.

  • When you set Input type parameter to Bit, the input width must equal two.

The output sample time is the symbol period divided by Samples per symbol. The first output symbol is an initial condition of zero that is unrelated to the input values.

This example shows how to create an end-to-end communication system using OQPSK modulator and demodulator block using Butterworth pulses, custom pulse shape and an AWGN channel. This model also calculates the bit error rate between the transmitter and the receiver.

Use the Open model button to open the cm_ex_oqpskmoddemod_iir model.

In this communication system, to receive the IIR pulses the demodulator is in the Integrate and Dump mode. For this, set the Pulse Shape property to Custom and FilterNumerator to 1.

Ports

Input

expand all

Input 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 | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | Boolean

Output

expand all

Output baseband waveform, returned as a column vector of complex data. The Output data type parameter specifies the data type of the output signal.

Parameters

expand all

To edit block parameters interactively, use the Property Inspector. From the Simulink® Toolstrip, on the Simulation tab, in the Prepare gallery, select Property Inspector.

Modulation

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.

Signal constellation bit mapping, specified as Gray, Binary, or a custom 4-element numeric vector of integers with values from 0 to 3.

SettingConstellation Mapping for IntegersConstellation Mapping for BitsComment

Gray

Integer order Q1: 0, Q2: 1, Q3: 3, and Q4: 2

Bit order Q1: 00, Q2: 01, Q3: 11 and Q4: 10

The signal constellation mapping is Gray-encoded.

Binary

Integer order Q1: 0, Q2: 1, Q3: 2, and Q4: 3

Bit order Q1: 00, Q2: 01, Q3: 10 and Q4: 11

The signal constellation mapping for the input integer m (0 ≤ m ≤ 3) is the complex value e(j*(PhaseOffset+π/4) + j*2*π*m/4).

Custom 4-element numeric vector of integers with values from 0 to 3

Integer order Q1: a, Q2: b, Q3: c, and Q4: d

Bit order Q1: a, Q2: b, Q3: c, and Q4: d

Elements [a b c d] must be composed of the set of values [0, 1, 2, 3] in any order.

Phase 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)}.

Click View Constellation on the block mask to visualize a signal constellation for the specified block parameters. Before viewing a constellation, apply the parameter settings. For more information, see View Constellation of Modulator Block.

Note

The constellation that displays does not depict the IQ delay introduced by the OQPSK modulator.

Filtering

Select the filtering pulse shape: Half sine, Normal raised cosine, Root raised cosine, or Custom.

Raised cosine filter rolloff factor, specified as a scalar in the range [0, 1].

Dependencies

This property is enabled when Pulse shape is Normal raised cosine or Root raised cosine.

Filter 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.

Dependencies

This property is enabled when Pulse shape is Normal raised cosine or Root raised cosine.

FIR filter numerator, specified as a row vector.

Dependencies

This parameter is enabled when Pulse shape is Custom.

FIR filter denominator, specified as a row vector.

Dependencies

This parameter is enabled when Pulse shape is Custom.

Number of samples per symbol, specified as a positive even integer.

Other Parameters

  • 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 an example, 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 an example, see Multirate Processing with OQPSK Modulator Block.

Select the output data type: double or single.

Block Characteristics

Data Types

Boolean | double | integer | single

Multidimensional Signals

no

Variable-Size Signals

no

More About

expand all

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using Simulink® Coder™.

Version History

Introduced before R2006a