声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 13261|回复: 20

[综合讨论] 有一组数据,用FFT作频谱分析,并画出幅频特性、相频特性曲线

[复制链接]
发表于 2010-6-23 17:31 | 显示全部楼层 |阅读模式

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

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

x
示波器记录了一组数据,有2500个,想用matlab的FFT进行频谱分析,并画出幅频特性、相频特性曲线。
第一次接触matlab,希望各位老师同学帮忙。

示波器记录的波形

示波器记录的波形

新建文本文档.txt

36.01 KB, 下载次数: 77

示波器记录的数据

回复
分享到:

使用道具 举报

发表于 2010-6-23 20:51 | 显示全部楼层
养成好习惯, 先请动手搜一下!:loveliness:
 楼主| 发表于 2010-6-23 22:03 | 显示全部楼层
搜了,在各个论坛蹲两天了,楼上的帮帮我。。。
发表于 2010-6-23 22:47 | 显示全部楼层
看看这里有没有你要问的问题--信号处理专栏话题索引
http://forum.vibunion.com/forum/thread-49413-1-1.html
 楼主| 发表于 2010-6-25 11:02 | 显示全部楼层
楼上的,帮我看看我写的这程序对不对?
clear
x=xlsread('D:\sensor.xls');    %数据我放在excel里了,只取了2048个
N=length(x); fs=25000; t=(0:N-1)/fs;
y=fft(x); F=y(1:N/2+1); f=fs*(0:N/2)/N;
subplot(311); plot(t,x); subplot(312);plot(f,abs(F))
subplot(313);plot(f,phase(F)*180/pi)
谢谢改正!

做出来的图,总觉得它们的纵坐标有问题

[ 本帖最后由 ChaChing 于 2010-6-25 21:14 编辑 ]
发表于 2010-6-26 23:23 | 显示全部楼层
有什么问题?
 楼主| 发表于 2010-6-30 16:20 | 显示全部楼层
第一图是用origin软件,进行快速傅里叶变化得到的图,第二图是用matlab进行FFT变换得到的图,两幅图的纵坐标不一样,是不是上面编写的matlab程序有问题?
还有一个问题就是:matlab的FFT能处理这个衰减振荡信号吗?
无标题.jpg
无标题1.jpg
发表于 2010-6-30 17:27 | 显示全部楼层
个人水平专业有限, 仅几点意见参考下!
1.仅取2048点是前2048点, 还是后2048点
2.幅值改为F=y(1:N/2+1)*2/N;
3.origin软件所用参数相同吗?
4.基本上, 个人以为fft不适宜处理这个衰减振荡信号, 但不同工具的结果应不至于相差太大
 楼主| 发表于 2010-6-30 20:54 | 显示全部楼层
取的是前2048个点,幅值改为F=y(1:N/2+1)/N会不会好点?
相频特性的纵坐标还是不对,不是在-180~180内变化,需要怎么在程序中修改?
把plot(f,phase(F)*180/pi)   改成  plot(f,angle(F)*180/pi) 好像对了,楼上的帮我分析下对吗?

[ 本帖最后由 ChaChing 于 2010-7-1 00:52 编辑 ]
发表于 2010-7-1 01:03 | 显示全部楼层
个人知道的幅值是F=y(1:N/2+1)*2/N;
在-180~180内变化, 的确应该使用angle

个人水平专业有限, 看看高手们的帖
[原创]关于FFT结果为什么要除以N (5F)
http://forum.vibunion.com/forum/viewthread.php?tid=23665
FFT求频谱和相位的问题
http://forum.vibunion.com/forum/viewthread.php?tid=52269
 楼主| 发表于 2010-7-1 17:07 | 显示全部楼层
本帖最后由 ChaChing 于 2010-9-4 22:32 编辑

我把程序改成:
clear
x=xlsread('D:\sensor.xls');    %数据我放在excel里了,只取了前2048个
N=length(x); fs=25000; t=(0:N-1)/fs;
y=fft(x); F=y(1:N/2+1)*2/N; f=fs*(0:N/2)/N;
subplot(311); plot(t,x);
subplot(312); plot(f,abs(F))
subplot(313); plot(f,angle(F)*180/pi)
好像对了,谢谢楼上的ChaChing这几天的帮助,受益匪浅。

评分

1

查看全部评分

发表于 2010-7-2 00:01 | 显示全部楼层
这个个人懂的不多, 没帮什么忙, 共同学习吧!
发表于 2010-9-4 10:24 | 显示全部楼层
LZ还在不,我也有一组时域衰减数据,要画出幅频曲线,你能把你的代码给我注释下吗,有些看不懂,谢谢
发表于 2010-9-8 20:36 | 显示全部楼层
顶,支持,学习学习
发表于 2010-9-8 20:36 | 显示全部楼层
,还不错

点评

请善用编辑功能!  发表于 2010-9-9 13:48
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-12-24 00:49 , Processed in 0.149106 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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