ypp207 发表于 2010-4-6 15:52

帮忙改一下FFT频谱程序

用了一个别人求频谱的程序,有一些问题搞不懂,又没有时间钻研,就向大家请教一下!
clear
clc
clf
x0=;
T=2*pi/omiga;%omiga为系统激励频率
options = odeset('RelTol',1e-7,'AbsTol',);
=ode45('fangcheng',,x0,options,omiga);
    fs=100;   %采样频率         
%采样时间序列s
x=X(90000:end,1);         %生成信号
x=x-mean(x);      %消去直流分量
N=length(x);      %采样点数
xf=fft(x,N);
mag=abs(xf);%幅值是否应为2*abs(xf)/N
df=fs/N;          %频率分辨率Hz
%绘制双边幅值谱
f=(0:N-1)*df;    %频域序列
figure
plot(f,mag,'k');
%1.采样频率是怎么回事?和步长,系统频率omiga有什么关系,这样直接给正确吗?
2.两个幅值应该选哪一个?
3.plot(f(1:N/2),mag(1:N/2),'k');是否求单边幅值

咕噜噜 发表于 2010-4-6 17:02

1、采样频率也就是采样周期是不能随便给的,要根据你给的激励频率来给,一般间隔n个周期(可以是1,也可以是100,视情况而定)采样一次,知道omiga还不知道周期么?
2、两个幅值?啥意思?这样得到的fft结果其实并不是真正意义上的频域幅值,仅仅是一个相对值,你不能用这个数值来说明什么大小问题,而另一个幅值是啥?难道是时域的结果幅值?晕,不能混在一起
3、单边幅值

[ 本帖最后由 咕噜噜 于 2010-4-6 17:14 编辑 ]

ypp207 发表于 2010-4-6 18:15

呵呵,谢谢院长的回复!第2个问题没有表述清楚。mag=abs(xf);%幅值是否应为2*abs(xf)/N这两个哪个正确?
“这样得到的fft结果其实并不是真正意义上的频域幅值,仅仅是一个相对值,你不能用这个数值来说明什么大小问题”也就是说频谱图只是系统响应的一个判据,不能够判断系统振动的强弱??
还有一个问题是拟周期的频谱是否有可能是连续不是连续的?在混沌区域可以出现拟周期窗口?拟周期的POINCARE有几种形式?

咕噜噜 发表于 2010-4-8 16:29

刚注意到你的程序稍有点问题
2*abs(xf)/N这个是正确的
并不是说频谱图只是系统响应的一个判据,不能够判断系统振动的强弱,而是说直接采用fft所得的结果来表示振动的实际振幅是不行的,看你的频谱图是咋做的
拟周期的频谱连续不连续?是说poincare图连续不连续么?
在混沌区域可以出现拟周期窗口是说混沌区域是否可能存在拟周期振动么?(汗!没见过,不知道)

ypp207 发表于 2010-4-8 21:27

这是一个系统在Wh=0.4时的动态响应,分别给出相图、poincare、频谱、及局部分叉图(在混沌区域的一个窄小的窗口)。不知道该怎么判断。请院长和前辈们看一下。

咕噜噜 发表于 2010-4-12 10:16

从频谱图来看系统可能存在谐波(建议将频谱图坐标改动一下再画一个图,能看明白每个谐波在多大的频率位置)
相图看不出来什么,通常相图也是无法直接说明问题的,尤其是复杂的相图
分岔图做的时候是不是没有充分去掉瞬态呢?有些乱
映射的话是参数那个位置的映射啊

ypp207 发表于 2010-4-13 10:13

回复 6楼 咕噜噜 的帖子

好的,我重新画个图看看

zdeming 发表于 2010-10-31 11:37

好帖子,收藏等会再看..

kangarooli 发表于 2011-5-11 16:11

回复 2 # 咕噜噜 的帖子

这样的话,fs一般取fs=1/T就可以了吧,刚学习频谱,请指点

wxfx1988 发表于 2013-9-7 09:12

咕噜噜 发表于 2010-4-12 10:16 static/image/common/back.gif
从频谱图来看系统可能存在谐波(建议将频谱图坐标改动一下再画一个图,能看明白每个谐波在多大的频率位置)
...

很多人都说相图,庞加莱图结合功率谱来判断混沌,请问能用相图,庞加莱图结合频谱图来判断吗
页: [1]
查看完整版本: 帮忙改一下FFT频谱程序