MATLAB: How to interpret the parameters of the “Phase Noise” block under “RF Impairments” in the Communications Blockset

communications blocksetnoiseparameterpsdscatter

I have read the help documentation of the "Phase Noise" block and I am not sure how to interpret the "Phase Noise Level (dBc/Hz)" and the "Frequency offset (Hz)" parameters.

Best Answer

The "Phase Noise" block adds phase noise to the input signal such that the power density spectrum of the output signal satisfies the following criteria (specified via the block dialog parameters):
The power density spectrum of the output signal, after magnitude scaling such that the carrier power is 0 dB, equals X dB/Hz at a frequency offset of F Hz from the carrier frequency.
X is the "Phase Noise Level (dBc/Hz)" parameter and F is the "Frequency offset (Hz)" parameter of the "Phase Noise" block. The attached model and MATLAB file illustrate the interpretation of the block parameters. Save the attached model dBc_per_Hz_test6.mdl and the function plot_dbc_per_hz.m files in a suitable directory and open the model, by typing the following command in the MATLAB command window:
dBc_per_Hz_test6
Note that this model is compatible with Communication Blockset 3.2 (R14SP3).
1. The model has a "Constant" signal feeding into a "Phase Noise" block. This simulates phase noise being added to a carrier signal (0 Hz carrier frequency). The block parameters are set at the following values:
Phase Noise Level (dBc/Hz) = -100
Frequency offset (Hz) = 1MHz
2. The Signal from the "Phase Noise" block is then passed through a "Power Spectrum Estimate". This block returns the power spectrum of the input signal, the total power in the signal and also the scaled dBc/Hz of the signal. The "Scaled dBc/Hz" output is the power spectrum density of the input signal that has been scaled such that the carrier power is 0 dB. This is the reason it is called dBc (dB carrier). Look under the mask of the "Power Spectrum Estimate" block to see how the power spectrum is calculated (right click on the block and select "Look under mask").
3. The model is set up such that at the end of the simulation, the "plot_dbc_per_hz.m" function is called. This function plots the dBc/Hz of the "Phase Noise" block output signal. If you run the simulation, you will observe that when the simulation ends, this plot appears and you will see that the dBc/Hz will be -100 at 1MHz (from carrier frequency) (as specified in the "Phase Noise" Block).
Thus the noise added to the carrier signal is at a level of -100 dBc/Hz at a frequency offset of 1MHz from the carrier frequency.
The entire model is adequately commented for you to be able to understand the methodology to obtain the dBc/Hz of a signal. Right click on the "Power Spectrum Estimate" and select "Look under mask". You will observe the following
1. A Hann window is used to scale the input signal samples.
2. The FFT^2 of the windowed signal is computed
3. Spectral averaging is performed to obtain a time averaged power spectrum
4. The power spectrum is scaled to obtain the power spectrum in dBc. Note that the scaling assumes that the largest signal (signal frequency with largest FFT^2) is assumed to be the carrier. Double-click on the "dBc scaling" block to see the implementation of the scaling.
5. The power spectrum in dBc is frequency scaled to obtain the power spectrum density in dBc/Hz.