FFT计算时间序列的平均周期问题
使用FFT计算时间序列的平均周期问题时,对序列的形式有要求吗?数据的长度会对结果产生影响吗?哪位好心人懂平均周期,可以给我详细讲解下吗?另外,这个代码可以求平均周期吗?
function T_mean=period_mean_fft(data)
%该函数使用快速傅里叶变换FFT计算序列平均周期
%data:时间序列
%T_mean:返回快速傅里叶变换FFT计算出的序列平均周期
Y = fft(data); %快速FFT变换
N = length(Y); %FFT变换后数据长度
Y(1) = []; %去掉Y的第一个数据,它是data所有数据的和
power = abs(Y(1:N/2)).^2;%求功率谱
nyquist = 1/2;
freq = (1:N/2)/(N/2)*nyquist; %求频率
plot(freq,power); grid on %绘制功率谱图
xlabel('频率')
ylabel('功率')
title('功率谱图')
period = 1./freq; %计算周期
plot(period,power); grid on%绘制周期-功率谱曲线
ylabel('功率')
xlabel('周期')
title('周期—功率谱图')
= max(power); %求最高谱线所对应的下标
T_mean=period(index); %由下标求出平均周期
1. 关于序列形式的要求,这主要看你的程序编写问题了
2. 数据长度对平均周期肯定是有影响的,至于影响的大小和规律个人没有研究过,你可以尝试分析一下
3. 简单看了一下你的代码是可以计算平均周期的,但是结果是否可信,有待商榷。
4. 下面的文章应该对你的疑问有所帮助 gghhjj 发表于 2014-3-5 08:55
1. 关于序列形式的要求,这主要看你的程序编写问题了
2. 数据长度对平均周期肯定是有影响的,至于影响的大 ...
十分感谢您的答复,这篇文章我有下载。但是本人对代码的编写很不擅长,不知道您能否帮我编写下里面的代码。下面的图片就是文章里描述的方法,如能帮助,不胜感激。
原来是小飞 发表于 2014-3-5 16:23
十分感谢您的答复,这篇文章我有下载。但是本人对代码的编写很不擅长,不知道您能否帮我编写下里面的代码 ...
自己练练吧,不练永远都不擅长
除非有现成的或者及其感兴趣的
否则别人不太可能帮你写程序的
毕竟没有那么多闲人 gghhjj 发表于 2014-3-6 08:36
自己练练吧,不练永远都不擅长
除非有现成的或者及其感兴趣的
否则别人不太可能帮你写程序的
恩,说的有道理。 你好,你的问题解决了吗,我也有这样的问题{:{19}:} oneonly 发表于 2015-12-10 16:35
你好,你的问题解决了吗,我也有这样的问题
又设么样的问题建议说明清楚,感觉gghhjj回复的挺清晰了 NASA 发表于 2015-12-16 10:22
又设么样的问题建议说明清楚,感觉gghhjj回复的挺清晰了
您好,这是我算出来的功率谱图,我认为1和4有混沌现象,您看我的图对吗?(1.功率的数量级很小,频率是0-0.5Hz。2.图像横坐标没有从0开始,当然这可以后处理一下)
oneonly 发表于 2015-12-25 10:50
您好,这是我算出来的功率谱图,我认为1和4有混沌现象,您看我的图对吗?(1.功率的数量级很小,频率是0- ...
谢谢谢谢 oneonly 发表于 2015-12-25 10:50
您好,这是我算出来的功率谱图,我认为1和4有混沌现象,您看我的图对吗?(1.功率的数量级很小,频率是0- ...
单纯的看功率谱图是无法判定系统是否存在混沌的,最多只能怀疑存在 NASA 发表于 2016-3-2 20:39
单纯的看功率谱图是无法判定系统是否存在混沌的,最多只能怀疑存在
嗯嗯,为什么起点不是从零开始的呢谢谢你啦 oneonly 发表于 2016-3-3 21:06
嗯嗯,为什么起点不是从零开始的呢谢谢你啦
可能是因为存在直流量 对于混沌问题,是需要利用功率谱而不是谱图么。我的意思是,FFT出频域图,需要的是功率谱图而不是常规的频域图么? 总体而言,两种方法互相验证了系统处于混沌状态。然而,当改变策动力幅值时,得到一系列的相轨图,通过大量的仿真实验可以得到一下相轨图,分别为周期1,周期2,大周期运动以及混沌运动通过综合分析可以如下结论:v (1)策动力幅值对混沌运动有很大影响。在同一策动力频率下,随着策动力幅值的不同,动力学行为不同,表现为产生的混沌运动的相轨迹不同。v (2)系统阻尼比k对产生混沌运动的阈值有影响。v (3)从系统的相轨迹的变化分析中可以看出混沌系统的动力学行为对初始参数是极其敏感的,因此,可以利用待测周期信号使系统动力行为从混沌临界状态转变到大尺度周期状态的相轨迹的变化过程进行弱信号的检测。这正是利用Duffing系统进行微弱周期信号幅值检测的理论依据。五混沌系统检测弱信号的原理v 微弱信号的幅值小,测量时又易受传感器和测量仪器本身噪声的影响,表现出的总体现象一般是有用的被测信号被多种强信号所淹没。所以将弱信号导入混沌系统,利用混沌系统对初值的敏感性,来检测出微小幅值得存在。混沌的初值敏感性是指,只要改变混沌方程中的参数,例如策动力幅值,相轨图或者李雅普诺夫指数就有很大的变化。加入同频率的弱信号,就相当于改变了策动力的幅值了。v 利用混沌振子检测微弱信号的基本思想是:将待测信号作为混沌系统特定参数的补充而引入混沌系统,根据系统由混沌向有序的相变,判断出待测微弱信号的存在(幅值、频率、相位等)v 具体检测原理如下:首先在未加入待测信号之前调节系统的策动力f(注意在此处调节的是策动力f而不是阻尼k)使系统处于由混沌状态向大尺度周期状态过渡的临界状态,得到阈值fc。(其中阈值的获取可以通过Melnikov方法来获取)然后,加入同频率(是指和周期策动力的的频率相同)的待测信号αcos(t),v 由于Duffing混沌系统对弱周期信号的敏感性,加入弱周期信号后使系统发生相变后进入大尺度周期状态(由于该混沌系统对噪声具有免疫力,故噪声并不会影响系统的相变)。这时,再次调节策动力f使得系统再次处于混沌到大尺度周期的临界状态,得到策动力fc′。待测信号的幅值α=fc-fc′。(通过比较加入信号前后策动力幅值的大小就可以得到待测信号的幅值)(一般而言弱信号的幅值也是已知的,而且不同幅值的弱信号的李雅普诺夫指数也不同)六混沌的进一步发展空间(1)混沌振子无法检测与其策动力频率相差较大的微弱信号,(2)系统发生混沌行为时系统对参数的依赖性和混沌吸引子对噪声的免疫力使其在微弱信号检测方面具有很好的应用。这种检测方法主要以相轨迹从混沌状态向大尺度周期态的转变为检测依据。因此对系统相轨迹图模式的识别就可能存在误判以致带来误差。所以就需要一个合适的指标来表示混沌系统相轨迹的状态改变。所以采用李雅普诺夫指数来进行定量计算,从而能也可以很好地验证了相轨迹图的准确性)目前还没有很合适的指标。(3)分数维也是混沌系统的一个重要指标,是否也可以通过研究分数维来进行混沌系统的判据,来研究检测弱信号。进一步想法和发展(1)将混沌系统的策动力幅值调到混沌状态向大周期状态过度的临界阈值,此时的阈值一般是都已经算出来的,此时加入同频率的导波信号(对噪声的免疫性),根据三角函数的计算也可以看出相当于改变了此时的策动力幅值,由于系统对初始值的敏感性,系统就会发生相轨迹的改变,从而来说明有弱信号的存在。因为对噪声的免疫性,若加入的是噪声,图像只会抖了抖。另外系统对于频率与策动力频率相差很大的信号也有免疫力,也无法进行识别。(2)一般来说利用杜芬系统检测的都是和周期策动力频率相同的弱信号,此时若改变导波信号的幅值,产生的相轨迹是不同的,计算出的李雅普诺夫指数也是不同的。而且幅值改变很小,对系统的影响也特别大,这也是杜芬系统的初值敏感性。而且一般阻尼k是固定取0.5的。(3)固定一个F,或者说怎么从李雅普诺夫指数的图像来求出此时对应的李雅普诺夫指数呢。由于系统最终会趋于稳定,也就是李雅普诺夫指数也会趋于一个定值,用最后稳定的那个约数来表征李雅普诺夫指数也可以,或者利用曲线的平均值来求也可以。或者利用最小二乘法进行拟合。(4)一般来说用导波信号去识别裂纹时,是利用的已知频率的导波,一般而言,在不同的结构中利用的频率也不同,例如在板中和圆筒中都是利用的不同频率的,但是频率是已知的。波在传播过程中,传播方式有三种。其中由于外界的一些阻碍,导波信号在传播中会产生衰减,发生耗散,所以返回的波中,不确定是否有信号了。进而用混沌系统进行检测是否存在弱信号。
本帖最后由 kuzb 于 2016-11-1 13:17 编辑
oneonly 发表于 2015-12-25 10:50
您好,这是我算出来的功率谱图,我认为1和4有混沌现象,您看我的图对吗?(1.功率的数量级很小,频率是0- ...
最近我在画功率谱图,没懂这个是怎么画的,能解释下吗?是画的f与S_{xx}\left ( f \right )的关系图吗?谢谢
\
页:
[1]
2