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.

3 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

Cite As

Aslak Grinsted (2020). 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 .

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