Documentation Center

  • Trial Software
  • Product Updates

Contents

comm.PhaseNoise System object

Package: comm

Apply phase noise to complex, baseband signal

Description

The PhaseNoise object applies phase noise to a complex, baseband signal. This phase noise has a 1/f spectral characteristic over its entire frequency range.

To apply phase noise to a complex, baseband signal:

  1. Define and set up your phase noise object. See Construction.

  2. Call step to apply phase noise to a complex, baseband signal according to the properties of comm.PhaseNoise. The behavior of step is specific to each object in the toolbox.

Construction

H = comm.PhaseNoise creates a phase noise System object™, H. This object applies phase noise with the specified level at the specified frequency offset to a complex, baseband input signal.

H = comm.PhaseNoise(Name,Value) creates a phase noise object, H, with each specified property set to the specified value. You can specify additional name-value pair arguments in any order as (Name1,Value1,...,NameN,ValueN).

H = comm.PhaseNoise(LEVEL,OFFSET,Name,Value) creates a phase noise object, H. This object has the Level property set to LEVEL, the FrequencyOffset property set to OFFSET and the other specified properties set to the specified values.

Properties

Level

Phase noise level

Specify the phase noise level in decibels relative to carrier per Hertz (dBc/Hz) at a frequency offset specified by the FrequencyOffset property. The default is [-60 -80]. This property requires a negative, real scalar or vector of data type double.

FrequencyOffset

Frequency offset

Specify the frequency offset in Hertz as a nonnegative, real scalar or increasing vector of data type double. The default is [20 200].

SampleRate

Sample rate

Specify the sample rate in Hertz as a positive, real scalar or vector of data type double. The default is 1024. The System object does not use this property when you specify Level and FrequencyOffset as scalars.

Methods

cloneCreate phase noise object with same property values
getNumInputsNumber of expected inputs to step method
getNumOutputsNumber of outputs from step method
isLockedLocked status for input attributes and nontunable properties
releaseAllow property value and input characteristics changes
stepApply phase noise to a complex, baseband signal

Examples

Add a phase noise vector and frequency offset vector to a 16-QAM signal. Then, plot the signal.

% Create 16-QAM modulator
    hMod = comm.RectangularQAMModulator(16, ...
        'NormalizationMethod','Average power', 'AveragePower',10);
% Create phase noise System object
    hPhNoise = comm.PhaseNoise('Level',[-60 -80], ...
        'FrequencyOffset',[20 200], ...
        'SampleRate',1024);
% Generate modulated symbols
    modData = step(hMod, randi([0 15], 1000, 1));
% Apply phase noise and plot the result
    y = step(hPhNoise, modData);
    scatterplot(y)

Algorithms

This object implements the algorithm, inputs, and outputs described on the Phase Noise block reference page. The object properties correspond to the block parameters, except:

  • The object respects the data types and does perform any casting other than casting the output to the input data type. The result of exp(1i phase_noise) is cast to the input data type first, before multiplying with the input signal. This order prevents the output (phase distorted) signal from being downcast to single precision if any of the properties are of data type single while the input data type is double precision.

  • This object uses the MATLAB® default random stream to generate random numbers. The block uses a random number generator based on the V5 RANDN (Ziggurat) algorithm. In addition, the block uses an initial seed, set with the Initial seed parameter to initialize the random number generator. Every time the system that contains the block runs, the block generates the same sequence of random numbers. To generate reproducible numbers using this object, reset the MATLAB default random stream using the following code.

    reset(RandStream.getGlobalStream)

    For more information, see help for RandStream.

See Also

|

Was this topic helpful?