打印

fft变换结果的疑惑

[复制链接]
2579|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
graby|  楼主 | 2010-10-12 20:34 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
下图是我分析50Hz正弦波的结果,在中心频率附近数组53处为50HZ信号的峰值,计算结果比真实数值要小,理论上中有53处出现大幅值,这是为什么,请教? 我使用的是12位ADC,采样为在1.024s里等间隔采样1024点,10个周波,分析频率可以到1khz,但是如果给定波形变为150Hz在中心频率附近扩散就更加厉害,请教为什么?

无标题.jpg (43.52 KB )

无标题.jpg

相关帖子

沙发
mybao| | 2010-10-12 21:52 | 只看该作者
fft的值跟实际的幅值是有区别的,fft完全是离散的方法,跟积分积出来的有差别。好像是乘以或者处以T吧,你试试,T是采样间隔。

扩散?啥意思,意思是不够陡峭?

画个图吧,观察跟直观,一堆数据看着就头大

使用特权

评论回复
板凳
graby|  楼主 | 2010-10-13 15:27 | 只看该作者
matlab 做出来 是50hz处最大周围很小 但是我实际做出来 在50HZ周围的点也挺大的,你看看数据

使用特权

评论回复
地板
wlzts110| | 2010-10-15 10:44 | 只看该作者
应该是频谱泄漏引起的,你的采样时间是1.024秒,那么fft的基准频率就是1/1.024Hz,不是50Hz的整数倍关系,产生了频谱泄漏,在50Hz出的幅度变小,出现旁瓣

使用特权

评论回复
5
graby|  楼主 | 2010-10-15 19:37 | 只看该作者
恩 有好的解决方法吗 加窗我试过了也是这样 ,因为用的是32768hz的主振所以选择了这个采样速度

使用特权

评论回复
6
wlzts110| | 2010-10-16 00:18 | 只看该作者
加窗理论上会好一点,实际情况中频谱泄漏应该避免不了吧

使用特权

评论回复
7
graby|  楼主 | 2010-10-17 20:37 | 只看该作者
是的 没办法的事情

使用特权

评论回复
8
ar_dong| | 2010-10-18 08:58 | 只看该作者
不是采样率问题
十个周期貌似太少,
你用10s的做下看看

使用特权

评论回复
9
pa2792| | 2010-10-18 09:09 | 只看该作者
不是采样率问题
十个周期貌似太少,
你用10s的做下看看
ar_dong 发表于 2010-10-18 08:58

我们的产品在DSP里10MS采样采样完成误差也不大啊。算法问题。

使用特权

评论回复
10
ar_dong| | 2010-10-18 14:50 | 只看该作者
楼主的这个设计频率扩散1hz是正常范围
多了就是算法问题
楼上的50Hz正弦波你采样10mS,能采出什么来啊

使用特权

评论回复
11
graby|  楼主 | 2010-10-25 21:29 | 只看该作者
本帖最后由 graby 于 2010-10-25 21:31 编辑

算法应该是没有问题的,你们看我的计算结果,扩散的就在+-1Hz的地方很厉害,不过9楼的说的是有问题的10ms一个周波都采样不出来的。计算就是错误的,就不是泄露了。

使用特权

评论回复
12
highgear| | 2010-10-26 02:13 | 只看该作者
没错, 是频谱泄漏。这是因为楼主使用了 1024 点, 分辨率为 1HZ, 如果实际频率(比如 50.2Hz)偏离采样频率的50Hz, 会产生旁瓣, 而且幅度会振荡。
解决方法很简单:降低分辨率. 可以使用分辨率50Hz, 即基波为50Hz, 二次谐波为100Hz, 做一个周波数据(似乎采样周期是 1ms, 一个周波20个点)的FFT/DFT; 而不是1024点的基波为1Hz, 输入波形频率为 50 次谐波。

使用特权

评论回复
13
graby|  楼主 | 2010-10-26 12:41 | 只看该作者
是可以,但是要求做到1HZ的分辨力

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

24

主题

59

帖子

0

粉丝