Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2008-12-12, 20:29   #1
kmkeke
初级会员
 
注册日期: 2008-11-05
年龄: 39
帖子: 25
声望力: 17
kmkeke 正向着好的方向发展
默认 [讨论]fft分析结果疑惑?

fft不同分析点数导致幅值差别较大
同一采样率
M=fft(Y,256);
M=fft(Y,512);
M=fft(Y,1024);
采用不同的点数,应该只是分辨率不同而已啊,怎么结果用1024点明显比256点,512点小呢?
还有采用不同的采用率fs时,对于不同的采样率频率点都在一个地方,所以导致采用不同的采样率有不同的频谱结果。
如,我用一个20Hz信号,fs=1000时,刚好频谱分析中,20Hz处有峰值,但是fs=500时,频谱中10Hz处有峰值,怎么解决这个问题呢?
M=fft(Y,256);
Py=abs(M)*2/256;
f=fs*(0:128)/256;
plot(handles.axes1,f,Py(1:129));
kmkeke 当前离线   回复时引用此帖
旧 2008-12-12, 21:39   #2
guofeng0108
高级会员
 
注册日期: 2008-10-21
年龄: 40
帖子: 198
声望力: 22
guofeng0108 正向着好的方向发展guofeng0108 正向着好的方向发展
默认 回复: [讨论]fft分析结果疑惑?

.......................
回去 看看理论吧
这是对的!!!!!!!
有公式的!!!!!
模拟与数字的转换
__________________
matlab太高深了!!!!!!!:ft:
guofeng0108 当前离线   回复时引用此帖
旧 2008-12-15, 17:46   #3
kmkeke
初级会员
 
注册日期: 2008-11-05
年龄: 39
帖子: 25
声望力: 17
kmkeke 正向着好的方向发展
默认 回复: [讨论]fft分析结果疑惑?

不会吧!同一信号采用不同的采样率,而导致结果相差几倍?
fft 应该很多人在研究啊?我的信号为一正弦信号,不同的采样率,fft后频率也不一样?比如50Hz的正弦信号,fs=1000时,50Hz处有峰值,fs=500时,25Hz有峰值,fs=2000时,100Hz处有峰值。就是出现峰值处在x轴上位置不变,但是采用不同采样率,x轴刻度在变,所以导致不同采样率,出现峰值的频率点不同。
kmkeke 当前离线   回复时引用此帖
旧 2008-12-15, 20:58   #4
datuman
初级会员
 
注册日期: 2007-06-09
帖子: 6
声望力: 0
datuman 正向着好的方向发展
默认 回复: [讨论]fft分析结果疑惑?

f这项处理的不对。

频谱分析建议记住这些:

x Sampled data
m = length(x) Window length (number of samples)
fs Samples/unit time
dt = 1/fs Time increment per sample
t = (0:m-1)/fs Time range for data
y = fft(x,n) Discrete Fourier transform (DFT)
abs(y) Amplitude of the DFT
(abs(y).^2)/n Power of the DFT
fs/n Frequency increment
f = (0:n-1)*(fs/n) Frequency range
fs/2 Nyquist frequency
datuman 当前离线   回复时引用此帖
旧 2008-12-18, 15:06   #5
kmkeke
初级会员
 
注册日期: 2008-11-05
年龄: 39
帖子: 25
声望力: 17
kmkeke 正向着好的方向发展
默认 回复: [讨论]fft分析结果疑惑?

N=128 或256 或512 或1024
x=0:.001:1;
y=sin(2*pi*50*x);
M=fft(y,N);
Py=abs(M)*2/N;
f=fs*(0:N/2)/N; %fs采样率
plot(f,Py(1:N+1));
请麻烦试验一下,不同的N,fft幅值结果相差较大。
不同的fs,fft后幅值处频率值也随fs差异成倍。多谢!
请帮分析一下哪里有问题呢
kmkeke 当前离线   回复时引用此帖
旧 2008-12-19, 19:20   #6
kmkeke
初级会员
 
注册日期: 2008-11-05
年龄: 39
帖子: 25
声望力: 17
kmkeke 正向着好的方向发展
默认 回复: [讨论]fft分析结果疑惑?

怎么没人回呢?
kmkeke 当前离线   回复时引用此帖
旧 2008-12-21, 15:22   #7
datuman
初级会员
 
注册日期: 2007-06-09
帖子: 6
声望力: 0
datuman 正向着好的方向发展
默认 回复: [讨论]fft分析结果疑惑?

引用:
作者: kmkeke 查看帖子
N=128 或256 或512 或1024
x=0:.001:1;
y=sin(2*pi*50*x);
M=fft(y,N);
Py=abs(M)*2/N;
f=fs*(0:N/2)/N; %fs采样率
plot(f,Py(1:N+1));
请麻烦试验一下,不同的N,fft幅值结果相差...


你仔细看看你的x,你的x间隔是0.001,不是1/fs,导致你的f表达有问题了,实际上你是做了0.001与fs之间的抽取或者是内插了。

你把f的表达式修改一下就好了,或者把x的间隔修改为1/fs.
datuman 当前离线   回复时引用此帖
旧 2009-01-13, 23:53   #8
naoshou
游客
 
帖子: n/a
微笑 回复: [讨论]fft分析结果疑惑?

我认为是,当你用fft分析的点数不同时,其频率分辨率不同,这样你要是有10Hz信号的话,再高分辨率时,可以将两个点的幅度很好得分开,就是相邻的频率点的值是明显有不同的峰的,而当你用低分辨率时,由于其分辨能力有限,哪么原来相邻的两个频率的能量就会出现叠加,因而幅度是不一样的。
  回复时引用此帖
旧 2009-02-05, 10:33   #9
haoyuenan
初级会员
 
注册日期: 2008-12-04
年龄: 43
帖子: 9
声望力: 0
haoyuenan 正向着好的方向发展
默认 回复: [讨论]fft分析结果疑惑?

引用:
作者: datuman 查看帖子
你仔细看看你的x,你的x间隔是0.001,不是1/fs,导致你的f表达有问题了,实际上你是做了0.001与fs之间的抽取或者是内插了。

你把f的表达式修改一下就好了,或者把x的间隔修改为1/fs.
顶这位,建议楼主好好看看坛子里的一篇文章,fft的物理意义
http://www.labfans.com/t6897/
haoyuenan 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码


相似的主题
主题 主题作者 版面 回复 最后发表
如何用matlab画甘特图啊? zhouxiaoyang_scu MATLAB论坛 1 2009-10-14 09:53
[求助]图像裁剪 rain1206 MATLAB论坛 2 2009-03-23 10:24
读取图象的某一波段问题 baihualin8888 MATLAB论坛 3 2009-03-14 20:31
有哪位做过BEESSEL法数字下变频? yqgame365 MATLAB论坛 0 2008-12-07 23:53


所有时间均为北京时间。现在的时间是 06:38


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.