声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2667|回复: 11

[FFT] 求证f的表达式中该用傅里叶变换长度N还是length(x)

[复制链接]
发表于 2007-6-6 13:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
若x是行实数阵列(向量);     %长度为length(x)
采样频率为Fs;

y=fft(x,N);          %N不一定等于length(x)

那么,在画频谱图时,横坐标频率的表达式为f=(0:M-1)*Fs/M;       %M取哪个数值,N还是length(x)?

现在的问题是M值该取N还是length(x)?担心出错,我现在一直都是取N=length(x)做的,但是在论坛里面看到有种说法,意思是M应该取N和length(x)中较小的那个,即取M=min(N,length(x)),想求证一下,这种说法对吗?
回复
分享到:

使用道具 举报

发表于 2007-6-6 14:05 | 显示全部楼层
用一个仿真信号试一下就清楚了
我觉得应该直接用N,FFT(x,N) 当x长度小于N的时候是在后面添0到N再做FFT的
发表于 2007-6-6 14:51 | 显示全部楼层

回复 #1 wufashengcun 的帖子

我觉得要直接用N,一般选择N是2的整数次方,N指的是采样点数,不一定都要和x的长度一致,当然N大于x程度情况要按照yangzj的办法去做
发表于 2007-6-6 15:19 | 显示全部楼层
我也同意楼上的意见,
fft(x,n)是不是就是用关n个点来做的fft?!

我原来的习惯是直接用fft(x),
这样子可以把所有的点都用上,
频率分辨率高,
后来觉得其实也不完全对,
还是跟信号频率,和采样频率有关。
在信号频率上有对应点,
算出来的幅值才更真。
这是不是就是大家所说的栏栅效应?

呵呵,是不是有些班门弄斧了,请大虾们指教。
发表于 2007-6-6 15:35 | 显示全部楼层
取N/2
发表于 2007-6-6 15:36 | 显示全部楼层

回复 #5 无水1324 的帖子

大家未必明白你的意思,在哪取?怎么取?
发表于 2007-6-6 16:07 | 显示全部楼层

回复 #4 jytan 的帖子

http://forum.vibunion.com/forum/thread-36287-1-23.html
这里面提到的问题,我也不是很明白,您现在理解他的意思了吗
发表于 2007-6-6 19:36 | 显示全部楼层
本帖最后由 wdhd 于 2016-9-6 14:30 编辑
原帖由 jytan 于 2007-6-6 15:19 发表
我也同意楼上的意见,
fft(x,n)是不是就是用关n个点来做的fft?!

我原来的习惯是直接用fft(x),
这样子可以把所有的点都用上,
频率分辨率高,
后来觉得其实也不完全对,
还是跟信号频率,和采样频率有关 ...


知道了信号的频率的话当然是设定N使得整周期采样就不会发生泄露了,但是不知道频率的时候一般来说N是越大越好,这样频率分辨率越高,而且对于多频率成分信号来说,这样能把各频率尽量拉开,减小由于泄露产生的干涉
发表于 2007-6-6 21:57 | 显示全部楼层
1, x是需要变换的信号(或者叫向量),length(x)可以求出x的长度,是一个具体的数;
2, fft(x,N)中如果N是2的整数次方,就一切ok,如果不是,程序自动用0补足;
3, 计算频率(横轴)与x没有关系,除非你用fft(x);
4, N不能大于x;
5, 采集时间长度的倒数就是分析的最低频率;
6, 一般编程序时,将length(x)用N分成几份,做出谱后平均,这样毛刺少,好看。
7, 取二者中小的说法不科学,程序有可能出错。
请明查
发表于 2007-6-7 17:41 | 显示全部楼层
谢谢楼上的解释,大家说的都很不错啊
我也来顺便提个小问题吧:
如果要仿真的哦数据不是向量而是一个矩阵时,我用fft(x(2,:),1024)这样写,就是把举证x的第二行傅立叶,因为第一列一般是对应的采样时间
问题出来了,我想画出经过傅立叶变换后的x于频率的关系图是出现错误了!plot(f,fft(x(2,:))
老提示矩阵维数不对或是超出了什么范围  我采取的频率的点数和经过傅立叶变换后的数据的点数是一样啊,都是一维的?晕
发表于 2007-6-7 18:55 | 显示全部楼层
本帖最后由 wdhd 于 2016-9-6 14:31 编辑
原帖由 tujian510 于 2007-6-7 17:41 发表
谢谢楼上的解释,大家说的都很不错啊
我也来顺便提个小问题吧:
如果要仿真的哦数据不是向量而是一个矩阵时,我用fft(x(2,:),1024)这样写,就是把举证x的第二行傅立叶,因为第一列一般是对应的采样时间
问题 ...

帖出代码来看看吧。
如果f和经x(2,:)的长度是一样的话,应该是没问题的,只是虚部会被忽略
发表于 2007-6-8 18:58 | 显示全部楼层
毫无疑问用N
:@)
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-30 12:51 , Processed in 0.061457 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表