Add white Gaussian noise to signal


y = awgn(x,snr)
y = awgn(x,snr,sigpower)
y = awgn(x,snr,'measured')
y = awgn(x,snr,sigpower,s)
y = awgn(x,snr,'measured',state)
y = awgn(...,powertype)


y = awgn(x,snr) adds white Gaussian noise to the vector signal x. The scalar snr specifies the signal-to-noise ratio per sample, in dB. If x is complex, awgn adds complex noise. This syntax assumes that the power of x is 0 dBW.

y = awgn(x,snr,sigpower) is the same as the syntax above, except that sigpower is the power of x in dBW.

y = awgn(x,snr,'measured') is the same as y = awgn(x,snr), except that awgn measures the power of x before adding noise.

y = awgn(x,snr,sigpower,s) uses s, which is a random stream handle, to generate random noise samples with randn. If s is an integer, then resets the state of randn to s. The latter usage is obsolete and may be removed in a future release. If you want to generate repeateable noise samples, then provide the handle of a random stream or use reset method on the default random stream.

y = awgn(x,snr,'measured',state) is the same as y = awgn(x,snr,'measured'), except that awgn first resets the state of normal random number generator randn to the integer state.

    Note:   This usage is deprecated and may be removed in a future release. Instead of state, use s, as in the previous example.

y = awgn(...,powertype) is the same as the previous syntaxes, except that the string powertype specifies the units of snr and sigpower. Choices for powertype are 'db' and 'linear'. If powertype is 'db', then snr is measured in dB and sigpower is measured in dBW. If powertype is 'linear', snr is measured as a ratio and sigpower is measured in watts.

Relationship Among SNR, Es/N0, and Eb/N0

For the relationships between SNR and other measures of the relative power of the noise, see AWGN Channel Noise Level.


The commands below add white Gaussian noise to a sawtooth signal. It then plots the original and noisy signals.

t = 0:.1:10;
x = sawtooth(t); % Create sawtooth signal.
y = awgn(x,10,'measured'); % Add white Gaussian noise.
plot(t,x,t,y) % Plot both signals.
legend('Original signal','Signal with AWGN');

The scattereyedemoscattereyedemo also illustrates the use of the awgn function.

See Also

| |

Was this topic helpful?