Main Content

Phase Noise

Apply receiver phase noise to complex baseband signal

  • Phase Noise block

Libraries:
Communications Toolbox / RF Impairments and Components

Description

The Phase Noise block adds phase noise to a complex signal. This block emulates impairments introduced by the local oscillator of a wireless communication transmitter or receiver. The block generates filtered phase noise according to the specified spectral mask and adds it to the input signal. For a description of the phase noise modeling, see Algorithms.

Examples

expand all

Add a phase noise vector and frequency offset vector to a 16-QAM signal. Display the constellation.

The slex_PhaseNoise16QAM model generates random data, applies 16-QAM modulation to the data, and adds phase noise to the signal. The Phase Noise block specifies a spectral mask with phase noise levels of –40 dBc/Hz at 100 Hz and –70 dBc/Hz at 200 Hz.

The constellation diagram shows a reference 16-QAM constellation and the signal samples impaired by phase noise.

This example shows the effects that spectral and phase noise have on a 100 kHz sine wave.

The slex_phasenoise model generates a 100 kHz tone by using a Sine Wave block and adds phase noise at these frequencies by using a Phase Noise block.

  • -85 dBc/Hz at a frequency offset of 1e3 Hz

  • -118 dBc/Hz at a frequency offset of 9.5e3 Hz

  • -125 dBc/Hz at a frequency offset of 19.5e3 Hz

  • -145 dBc/Hz at a frequency offset of 195e3 Hz

To analyze the spectrum and phase noise, the model includes three Spectrum Analyzer blocks configured for the dBW/Hz view:

  • Pure Tone, RBW=1 Hz — 1 Hz resolution bandwidth

  • Noisy Tone, RBW=1 Hz — 1 Hz resolution bandwidth

  • Noisy Tone, RBW=10 Hz — 10 Hz resolution bandwidth

The model also includes a subsystem to calculate the RMS phase noise. The subsystem that calculates the RMS phase noise finds the phase error between the pure and noisy sine waves, then calculates the RMS phase noise in degrees. In general, to accurately determine the phase error, the pure signal must be time aligned with the noisy signal. However, the periodicity of the sine wave in this model makes this step unnecessary.

The model displays the signal spectrum and outputs the average of the calculated phase noise. The calculated phase noise achieves the spectrum defined by the Phase Noise block.

When the model runs, it displays the signal spectrum and outputs the average of the calculated phase noise. The calculated phase noise achieves the spectrum defined by the Phase Noise block.

With the resolution bandwidth set to 1 Hz, the dBW/Hz view for the spectrum analyzer shows the tone at 0 dBW/Hz. With the resolution bandwidth set to 10 Hz, the dBW/Hz view for the spectrum analyzer shows the tone at -10 dBW/Hz. That same tone energy is now spread across 10 Hz instead of 1 Hz, so the sine wave PSD level reduces by 10 dB. With the resolution bandwidth at 10 Hz, the displayed average of the calculated phase noise still achieves the phase noise defined by the Phase Noise block.

The Spectrum Analyzer block achieves better spectral averaging with the wider resolution bandwidth. For more information, see Windows.

The calculated average phase noise is 0.37 degrees.

To explore further, you can change the Phase noise level (dBc/Hz) parameter in the Phase Noise block, rerun the model, and notice how the spectrum shape changes. With more noise, the side lobes increase in amplitude. As more phase noise is added, the 100 Hz signal becomes less distinct and the measured RMS phase noise increases.

Extended Examples

Ports

Input

expand all

Input signal, specified as an NS-by-1 numeric vector or NS-by-M numeric matrix. NS represents the number of samples and M is the number of channels.

Data Types: double | single
Complex Number Support: Yes

Output

expand all

Output signal, returned as a complex-valued signal with the same data type and size as the input 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.

Phase noise level in decibels relative to carrier per hertz (dBc/Hz), specified as a vector of negative scalars. The Phase noise level (dBc/Hz) and Frequency offset (Hz) parameters must have the same length.

Frequency offset in Hz, specified as a vector of positive increasing values. The maximum frequency offset value must be less than FS / 2, where FS represents the Sample rate (Hz) parameter value.

The Phase noise level (dBc/Hz) and Frequency offset (Hz) parameters must have the same length.

Sample rate in Hz, specified as a positive scalar greater than two times the maximum value specified by the Frequency offset (Hz) parameter.

Initial seed of noise generator, specified as a positive scalar.

This block uses the Random Source block to generate noise. The block generates random numbers using the Ziggurat method (V5 RANDN algorithm). Every time you rerun the simulation, the block reuses the same initial seed. That way, the block outputs the same signal each time you run a simulation.

Display magnitude response of filter defined by the block.

Type of simulation to run, specified as Interpreted execution or Code generation.

  • Interpreted execution — Simulate the model by using the MATLAB® interpreter. This option requires less startup time, but the speed of subsequent simulations is slower than with the Code generation option. In this mode, you can debug the source code of the block.

  • Code generation — Simulate the model by using generated C code. The first time you run a simulation, Simulink generates C code for the block. The model reuses the C code for subsequent simulations unless the model changes. This option requires additional startup time, but the speed of the subsequent simulations is faster than with the Interpreted execution option.

For more information, see Interpreted Execution vs. Code Generation (Simulink).

Block Characteristics

Data Types

double | single

Multidimensional Signals

no

Variable-Size Signals

no

Algorithms

expand all

The output signal, yk, is related to input sequence xk by yk=xkejφk, where φk is the phase noise. The phase noise is filtered Gaussian noise such that φk=f(nk), where nk is the noise sequence and f represent a filtering operation.

Diagram showing phase noise applied to input signal

To model the phase noise, define the power spectrum density (PSD) mask characteristic by specifying scalar or vector values for the frequency offset and phase noise level.

  • For a scalar frequency offset and phase noise level specification, an IIR digital filter computes the spectrum mask. The spectrum mask has a 1 / f characteristic that passes through the specified point. For more information, see IIR Digital Filter.

  • For a vector frequency offset and phase noise level specification, an FIR filter computes the spectrum mask. The spectrum mask is interpolated across log10(f). For more information, see FIR Filter.

References

[1] Kasdin, N. J. "Discrete Simulation of Colored Noise and Stochastic Processes and 1/(f^alpha); Power Law Noise Generation." The Proceedings of the IEEE® 83, no. 5 (May, 1995): 802–27.

Extended Capabilities

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

Version History

Introduced before R2006a

expand all