image thumbnail

Phase Noise

version 1.0.0.0 (3.21 KB) by Alex Bar-Guy
Oscillator Phase Noise Model

13.7K Downloads

Updated 08 Dec 2005

No License

function Sout = add_phase_noise( Sin, Fs, phase_noise_freq, phase_noise_power )

Oscillator Phase Noise Model

INPUT:
Sin - input COMPLEX signal
Fs - sampling frequency ( in Hz ) of Sin
phase_noise_freq - frequencies at which SSB Phase Noise is defined (offset from carrier in Hz)
phase_noise_power - SSB Phase Noise power ( in dBc/Hz )

OUTPUT:
Sout - output COMPLEX phase noised signal

NOTE:
Input signal should be complex

EXAMPLE ( How to use add_phase_noise ):
Assume SSB Phase Noise is specified as follows:
-------------------------------------------------------
| Offset From Carrier | Phase Noise |
-------------------------------------------------------
| 1 kHz | -84 dBc/Hz |
| 10 kHz | -100 dBc/Hz |
| 100 kHz | -96 dBc/Hz |
| 1 MHz | -109 dBc/Hz |
| 10 MHz | -122 dBc/Hz |
-------------------------------------------------------

Assume that we have 10000 samples of complex sinusoid of frequency 3 KHz
sampled at frequency 40MHz:

Fc = 3e3; % carrier frequency
Fs = 40e6; % sampling frequency
t = 0:9999;
S = exp(j*2*pi*Fc/Fs*t); % complex sinusoid

Then, to produse phase noised signal S1 from the original signal S run follows:

Fs = 40e6;
phase_noise_freq = [ 1e3, 10e3, 100e3, 1e6, 10e6 ]; % Offset From Carrier
phase_noise_power = [ -84, -100, -96, -109, -122 ]; % Phase Noise power
S1 = add_phase_noise( S, Fs, phase_noise_freq, phase_noise_power );

Cite As

Alex Bar-Guy (2021). Phase Noise (https://www.mathworks.com/matlabcentral/fileexchange/8844-phase-noise), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R13SP1
Compatible with any release
Platform Compatibility
Windows macOS Linux
Acknowledgements

Inspired: microwae engineering

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!