Publisher review:Phase Noise - Oscillator Phase Noise Model function Sout = add_phase_noise( Sin, Fs, phase_noise_freq, phase_noise_power )Oscillator Phase Noise ModelINPUT:Sin - input COMPLEX signalFs - sampling frequency ( in Hz ) of Sinphase_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 signalNOTE:Input signal should be complexEXAMPLE ( 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 frequencyFs = 40e6; % sampling frequencyt = 0:9999;S = exp(j*2*pi*Fc/Fs*t); % complex sinusoidThen, 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 Carrierphase_noise_power = [ -84, -100, -96, -109, -122 ]; % Phase Noise powerS1 = add_phase_noise( S, Fs, phase_noise_freq, phase_noise_power );
Phase Noise is a Matlab script for Communication Tools scripts design by Alex Bar-Guy.
It runs on following operating system: Windows / Linux / Mac OS / BSD / Solaris.
Operating system:Windows / Linux / Mac OS / BSD / Solaris