top of page

Creating White Noise Spectrum in MATLAB: A Comprehensive Guide

May 17, 2024

Creating a white noise spectrum can be critical to signal processing, communications, and various engineering applications. In this article, we provide a step-by-step guide on how to create white noise spectrum using MATLAB, one of the most popular programming platforms for engineers and scientists.


White Noise Spectrum Basics


White noise is a random signal with equal power across a wide frequency range, making it a fundamental component in signal processing and engineering analysis. In the frequency domain, the power density of white noise is constant, creating a flat power spectrum.


Generating White Noise


To create a white noise spectrum, you first need to generate a white noise signal. In MATLAB, this is easily achieved using the randn or wgn functions


nSamples = 1000;
whiteNoiseSignal = randn(nSamples, 1); % Create a white noise signal with 1000 samples

or


nSamples = 1000;
whiteNoiseSignal = wgn(nSamples, 1, 0); % Generate a white Gaussian noise signal with 1000 samples and 0 dBW power

Creating White Noise Spectrum


Once you have the white noise signal, the next step is to calculate its spectrum using the power spectral density (PSD) or mean squared amplitude of the frequency components. The MATLAB functions pwelch and fft are commonly used to do this.


Using pwelch:


[psd, freq] = pwelch(whiteNoiseSignal, hamming(nSamples / 4), nSamples / 8, nSamples / 4, 'twosided');

Using fft:


fftSize = nSamples / 2;
fftSignal = fft(whiteNoiseSignal, fftSize);
psd = (1 / (fftSize ^ 2)) * abs(fftSignal) .^ 2;
freq = linspace(0, 1, fftSize / 2 + 1) / 2; % Normalized frequency range

Plotting the White Noise Spectrum


Now that the PSD and frequency values are calculated, you can plot the white noise spectrum using the plot or semilogx functions in MATLAB:


figure;
plot(freq, 10 * log10(psd)); % plot in dB
xlabel('Normalized Frequency');
ylabel('Power Density (dB)');
title('White Noise Spectrum');

or


figure;
semilogx(freq, 10 * log10(psd)); % plot on a logarithmic scale in dB
xlabel('Normalized Frequency');
ylabel('Power Density (dB)');
title('White Noise Spectrum');

Conclusion


White noise spectrum is essential for many engineering and scientific applications. In this article, we have demonstrated how to create white noise spectrum in MATLAB step-by-step. Implementing these techniques will help you optimize your signal processing or communication systems, giving you results you can trust.


Please note that formatting may vary between different text editors and platforms.


bottom of page