z527883588
发表于 2017-1-15 23:27
wanyeqing2003 发表于 2017-1-12 09:30
fft需要以2^n的点数分析。如1024,2048。
可以分段平均。
有没有可以直接进行分段FFT然后平均的函数?谢谢!
野菊
发表于 2017-1-16 08:16
z527883588 发表于 2017-1-15 23:27
有没有可以直接进行分段FFT然后平均的函数?谢谢!
直接的函数应该没有
wanyeqing2003
发表于 2017-1-16 08:56
z527883588 发表于 2017-1-15 23:27
有没有可以直接进行分段FFT然后平均的函数?谢谢!
一般数据分析软件都可以做频谱平均分析。
z527883588
发表于 2017-1-16 20:29
wanyeqing2003 发表于 2017-1-16 08:56
一般数据分析软件都可以做频谱平均分析。
在matlab中怎么实现呢?谢谢!
wanyeqing2003
发表于 2017-1-17 08:54
如果每个1024数组x(tj)做一次fft,得到fft实部Xr(fj)和虚部Xr(fj),算出频谱Sx(fj)。
然后对多组Sx(fj)取平均。
陌影
发表于 2017-1-17 13:58
z527883588 发表于 2017-1-16 20:29
在matlab中怎么实现呢?谢谢!
上面不是给程序了吗你运行了吗 自己改改
z527883588
发表于 2017-1-17 21:45
陌影 发表于 2017-1-17 13:58
上面不是给程序了吗你运行了吗 自己改改
哪一个程序?spectrogram?
陌影
发表于 2017-1-18 08:26
z527883588 发表于 2017-1-17 21:45
哪一个程序?spectrogram?
2楼的那个不是吗
hcharlie
发表于 2017-1-19 11:37
本帖最后由 hcharlie 于 2017-1-21 19:28 编辑
我在5楼说了:补零就不是原信号了,会带来误差。
糖水里加白水味道会变淡,婴儿也知道。
有人不同意。只好再证明一下。
下面两张图,下一个图时域尾端加了一个零,于是在频域图上低信号处产生明显误差。
(说明:这里的做法是将尾端一个数清零,与加一个零是有点区别,但性质是相似的,都变得不是同一个信号了!加一个零不能做FFT,要做DFT了,谁愿意做下去?)
下面我要试图解释误差产生的机理。
DFT也好,FFT也好,它实际上是反映了以这一段采样无穷反复的周期函数的频谱,而不是这个有限采样的频谱,原来的频谱图如此光滑,是得益于数列头尾衔接得光滑。
比如一个数列:100,101,。。。。。98,99;无穷重复以后,98,99后面又是100,101。。。,过渡是光滑的。
如果尾巴一个数清零,则过渡情况为98,0,100,101。。。;显然不光滑;
如果尾巴加一个零,则过渡情况为98,99,0,100,101。。。;也是不光滑;
产生误差是必然的啰!
Generation
发表于 2017-1-19 12:59
z527883588 发表于 2017-1-15 21:20
是不是分段计算FFT?
如楼上介绍感觉应该是分段计算
Generation
发表于 2017-1-19 13:00
hcharlie 发表于 2017-1-19 11:37
我在5楼说了:补零就不是原信号了,会带来误差。
糖水里加白水味道会变淡,再简单不过了。
有人不同意。 ...
这个对比就很明显了
z527883588
发表于 2017-1-21 21:29
hcharlie 发表于 2017-1-9 09:38
频率分辨率是采样时间的倒数,不能随便改变。
将你的数据分成10组,每组10000点,整1秒,做FFT(DFT)分辨 ...
有没有便捷的函数可以直接实现呢?
敷衍会致命
发表于 2017-1-22 14:10
还没有实现???
z527883588
发表于 2017-1-22 21:02
敷衍会致命 发表于 2017-1-22 14:10
还没有实现???
最近工作比较忙,没时间搞,而且我考虑分段进行FFT怎样实现重叠
敷衍会致命
发表于 2017-1-23 08:25
z527883588 发表于 2017-1-22 21:02
最近工作比较忙,没时间搞,而且我考虑分段进行FFT怎样实现重叠
恩也快过年了祝你好运