SPECTRAL WHITENING

This function applies whitening to a given signal within user defined frequency band.
1.2K Downloads
Updated 3 May 2023

View License

FREQUENCY DOMAIN WHITENING OF DISCRETE TIME SIGNAL
The provided function is capable of generating a flat Fourier spectrum for a non-white signal, either across the full frequency range of 0 Hz to the Nyquist frequency, or a frequency band designated by the user. This operation typically results in the sharpening of both the signal and its associated noise.
Whitening is a commonly used technique in ambient vibration data analysis, particularly when stacking waveforms for cross-correlation. The process involves applying a Hann window to the signal, Fourier transforming it, normalizing the magnitude, and finally inverse Fourier transforming it.
Overall, this is a straightforward process that can be applied to improve the quality of signal data.
Syntax:
xnew = whitening(x, Fs, freq, []) for the full range of 0 Hz to the Nyquist frequency
xnew = whitening(x, Fs, freq, [0.1, 20]) for 0.1 Hz to 20 Hz as an example
Input:
x = input signal (x must be a row vector)
Fs = sampling rate (e.g., 200)
freq = frequency limit for whitening in Hz (e.g., freq, [ ] or freq, [0.1, 20])
Output:
xnew = spectrally whitened signal for the full range of 0 Hz to the
Nyquist frequency or within a user defined frequency band
Example: See demo.m file

Cite As

Dr. Erol Kalkan, P.E. (2026). SPECTRAL WHITENING (https://www.mathworks.com/matlabcentral/fileexchange/65345-spectral-whitening), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2017b
Compatible with any release
Platform Compatibility
Windows macOS Linux
Version Published Release Notes
1.0.0.1

A typo has been fixed in the demo.m file

1.0.0.0

updated description
Updated notes