fftnoise - generate noise with a specified power spectrum

Useful helper function for Monte Carlo null-hypothesis tests and confidence interval estimation.
830 Downloads
Updated 7 Jul 2011

View License

USAGE: noise=fftnoise(f[,Nseries])

INPUTS:
f: the fft of a time series (must be a column vector)
Nseries: number of noise series to generate. (default=1)

OUTPUT:
noise: surrogate series with same power spectrum as f. (each column is a surrogate).

------ Example: ------
%calculate if the trend is significantly different from zero
%(Null-hypothesis: a random process with the same power spectrum as data).

x=(1:100)';
data=smooth(randn(size(x)),15);
pdata=polyfit(x,data,1)
f=fft(data);
psur=nan(length(pdata),10000);
for ii=1:size(psur,2)
psur(:,ii)=polyfit(x,fftnoise(f),1)';
end
ptile=prctile(psur(1,:)',[2.5 97.5])
if (pdata(1)>ptile(2))|(pdata(1)<ptile(1))
disp('significant trend')
else
disp('not significant trend')
end

Cite As

Aslak Grinsted (2024). fftnoise - generate noise with a specified power spectrum (https://www.mathworks.com/matlabcentral/fileexchange/32111-fftnoise-generate-noise-with-a-specified-power-spectrum), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R12
Compatible with any release
Platform Compatibility
Windows macOS Linux
Categories
Find more on Networks in Help Center and MATLAB Answers

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