Fractal dimension from power density spectrum using FFT

10 次查看(过去 30 天)
I believe I am doing something wrong when computating of the power density spectrum using fft. See details of my problem below. Any hints welcomed. Thanks.
I need to compute the fractal dimension of a series. I want to use the slope of the power density spectrum to derive it. The slope of the spectrum on a log-log plot, -b, and the the fractal dimension, D, are related by D=(5-b)/2. I am computing the power density spectrum using FFT.
I am testing the approach on a serie of known fractal dimension D=1.1 (see attached csv file for the actual serie, and plot below)
I am computing the power spectrum as following:
x=myserieabsissavalue;
X=myseriesvalues;
figure; plot(x,X); % display the series
l=length(x);
xmax=max(x);
Fs=(l-1)/xmax; % sampling frequency
T=1/Fs; % sampling time interval
nfft=2^nextpow2(l);
Y = fft(X,nfft)/l;
f = Fs/2*linspace(0,1,nfft/2+1);
flo=log10(f); % log10 of the frequency
plo=log10((2*abs(Y(1:nfft/2+1))).^2)'; % log10 of the power. ^2 is there to convert from amplitude spectrum to power spectrum
ix=find(flo>=min(flo(2:end)) & flo<=min(flo(2:end))+(max(flo(2:end))-min(flo(2:end)))*0.83); % fit only a section of the spectra
fio = fit(flo(ix)',plo(ix)','poly1');
bfft = -fio.p1; % slope of the power density spectrum on log-log plot
Dfft=(5-bfft)/2; % estimated fractal dimension
I obtaining a slope of the spectrum of about -2 (b=2) and thus overestimate the fractal dimension (1.5 instead of 1.1). I will get a slope of the spectrum of about 2 for any series with fractal dimension <1.5.
I suspect I am doing something wrong when computing the power density spectrum. Any hints are welcomed.
  1 个评论
Mohammad
Mohammad 2014-3-30
Dear Benoît Valley Have you found your solution? my question is the same as your question. Thanks Mohammad mhodaei@siu.edu

请先登录,再进行评论。

回答(1 个)

Stef van Haaren
Stef van Haaren 2018-11-6
Do you have the answer?

类别

Help CenterFile Exchange 中查找有关 Fractals 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by