Phase Noise

Oscillator Phase Noise Model
14.3K Downloads
Updated 8 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 (2024). 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!
Version Published Release Notes
1.0.0.0

1) Comments
2) Validation
3) Small bug in ifft normalization