0

I have a time series which is a linear combination of damped waves. The data is real.

Y(t) =SUM_w exp(- gamma t) sin(omega t)

There is no analytic form but this is a closest guess. I want to fourier analyze (FFT) such data and get the real frequencies and damping rates.

I am using matlab but any tool would be fine Thanks!

4

2 回答 2

0

首先将您的功能数字化:

t=0:dt:T; % define sampling interval dt and duration T according to your needs
Y=sum(exp(-gamma*t).*sin(omega*t));

然后做fft并绘图:

Y_f=fft(Y);
plot(abs(Y_f));
于 2013-08-22T15:26:58.817 回答
0

您的问题更适合http://math.stackexchange.com,其中 LaTeX 渲染可用于公式。相反,您必须使用例如这个小书签才能正确显示:

javascript:(function(){function%20a(a){var%20b=a.createElement('script'),c;b.src='https://c328740.ssl.cf1.rackcdn.com/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML.js',b.type='text/javascript',c='MathJax.Hub.Config({tex2jax:{inlineMath:[[\'$\',\'$\']],displayMath:[[\'\\\\[\',\'\\\\]\']],processEscapes:true}});MathJax.Hub.Startup.onload();',window.opera?b.innerHTML=c:b.text=c,a.getElementsByTagName('head')[0].appendChild(b)}function%20b(b){b.MathJax===undefined?a(b.document):b.MathJax.Hub.Queue(new%20b.Array('Typeset',b.MathJax.Hub))}var%20c=document.getElementsByTagName('iframe'),d,e;b(window);for(d=0;d<c.length;d++)e=c[d].contentWindow||c[d].contentDocument,e.document||(e=e.parentNode),b(e)})()

首先,我假设你的函数更精确地是
$\sum\limits_k e^{-\gamma_k t}\sin(\omega_k t)$ for $t>0$ 和 $0$ for $t<0$ (否则对于 $t\to-\infty$,函数将趋于无穷大)。由于阻尼函数不是周期性的,因此您不能使用傅里叶分析,而必须使用傅里叶变换,它会产生连续频率而不是离散频率的幅度。使用复数表示 $\sin(x) = \frac{e^{ix}-e^{-ix}}{2i}$,总和中的每一项都可以单独进行傅里叶变换,得到

$\frac1{2\pi}\int_0^\infty e^{-\gamma_k t}\sin(\omega_k t)e^{-i\omega t}\,dt = \frac{\omega_k}{2\ pi[(\gamma+i\omega)^2+\omega_k^2]} = \frac{\omega_k}{2\pi}\frac{(\gamma^2-\omega^2+\omega_k^2) + 2i\gamma\omega\omega_k}{[\gamma^2-\omega^2+\omega_k^2]^2+4\gamma^2\omega^2}$

由于您声明阻尼正弦只是一个猜测,因此您必须以某种方式离散这个无限积分,尽管由于阻尼,在某个足够大的时间 $t$ 的截止值应该是有序的。如果阻尼 $\gamma_k$ 对于所有加法实际上都是相同的,那么您的生活会变得更轻松:将数据乘以 $e^{+\gamma_t}$ 以获得一个周期信号,您现在可以真正对其进行 FFT。

于 2013-08-21T14:24:01.073 回答