File Exchange

image thumbnail

fftnoise - generate noise with a specified power spectrum

version 1.0.0.0 (1.65 KB) by Aslak Grinsted
Useful helper function for Monte Carlo null-hypothesis tests and confidence interval estimation.

2 Downloads

Updated 07 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

Comments and Ratings (2)

simple, effective function

Useful and quick.

MATLAB Release Compatibility
Created with R12
Compatible with any release
Platform Compatibility
Windows macOS Linux