OQPSK Modulator Baseband
Modulate using OQPSK method
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
OQPSK Modulator-Demodulator Block Pair Use
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.
Single-Rate Processing with OQPSK Modulator Block
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.
Multirate Processing with OQPSK Modulator Block
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.
End-to-End Communication System Using IIR Pulses
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
In — Input data
integer column vector | bit column vector
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
Out — Output baseband waveform
column vector
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
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 — Input type
Integer
(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.
Symbol mapping — Signal constellation bit mapping
Gray
(default) | Binary
| custom 4-element numeric vector of integers with values from 0 to
3
Signal 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. |
Phase offset (rad) — Phase of zeroth point of signal constellation
0
(default) | scalar
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)}.
View Constellation — Option to plot reference constellation
button
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
Pulse shape — Filtering pulse shape
Half 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 factor
0.2
(default) | scalar
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 span (in symbols) — Filter length
10
(default) | scalar
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
.
Filter numerator — Filter numerator
[0.7071 0.7071]
(default) | row vector
FIR filter numerator, specified as a row vector.
Dependencies
This parameter is enabled when Pulse shape is Custom
.
Filter Denominator — Filter denominator
1
(default) | row vector
FIR filter denominator, specified as a row vector.
Dependencies
This parameter is enabled when Pulse shape is Custom
.
Samples per symbol — Number of samples per symbol
4
(default) | positive even integer
Number of samples per symbol, specified as a positive even integer.
Other Parameters
Rate options — Processing rate option
Enforce 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 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.
Output data type — Output data type
double
(default) | single
Select the output data type: double
or
single
.
Block Characteristics
Data Types |
|
Multidimensional Signals |
|
Variable-Size Signals |
|
More About
Modulation Delays
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. |
Pulse Shaping Filter
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.
Extended Capabilities
C/C++ Code Generation
Generate C and C++ code using Simulink® Coder™.
Version History
Introduced before R2006a
See Also
Blocks
Objects
Topics
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)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)