声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1734|回复: 0

[FFT] 求助,有人帮我看看这个matlab代码做AE传感器数据的FFT合适么

[复制链接]
发表于 2011-8-11 09:28 | 显示全部楼层 |阅读模式

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

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

x
RT,关于数据的背景大概是: 导师给了我50个样本,都是从风力发电机内AE传感器采到的现场数据,50个样本随风速和功率从小到大变化而变化.每个样本持续仅1秒,采样频率5Mhz(也就是5百万个数据点),传感器的频响是100k到900khz。现在要靠这个找到发电机工作的一些规律,以便于能写出一些粗略的结论来。
我用的代码是:
clear %清除全部工作区
fn='19.3mps 0.4mps2 - 313.4kW -1800kWps 25-11-2010 05-15-06.bid.mat';%数据文件名
hmax1=0.6;  %第一列数据(第1个传感器数据)纵坐标最大值
hmax2=0.6;  %第二列数据(第2个传感器数据)纵坐标最大值
Fs = 5000000;
L = 5000000;

data=load(fn);           %读取数据文件
data1=data.ADData(:,1);  %data1:第一列数据(第1个传感器数据)
data2=data.ADData(:,2);  %data2:第二列数据(第2个传感器数据)
NFFT = 2^nextpow2(L);    % Next power of 2 from length of y
Y1 = fft(data1*4096,NFFT)/L;
Y2 = fft(data2*4096,NFFT)/L;
f = Fs/2*linspace(0,1,NFFT/2+1);

% Plot single-sided amplitude spectrum.
subplot(2,1,1); %在上半窗口绘制第一列数据(第1个传感器数据)
plot(f,2*abs(Y1(1:NFFT/2+1)))
title(fn)           %显示数据文件名
axis([0,2500000,0,hmax1])
xlabel('Frequency (Hz)')
ylabel('Amplitude')

subplot(2,1,2); %在下半窗口绘制第二列数据(第2个传感器数据)
plot(f,2*abs(Y2(1:NFFT/2+1)))
xlabel('Frequency (Hz)')
ylabel('Amplitude')
axis([0,2500000,0,hmax1])

最后出来发现,在一个非常宽的频带下各种高低频分量基本上是平摊了,而奇怪的是许多尖峰也是全频带下随处可见,这个貌似丝毫看不出啥规律来,而且数据量大,电脑跑起来费劲,我缩放个图都麻烦,请问我是不是哪里做的有些问题?比如采样长度NFFT的设置,横轴f的取值.或者?麻烦各位高人了,谢谢啦

本帖被以下淘专辑推荐:

回复
分享到:

使用道具 举报

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-5-3 22:23 , Processed in 0.115015 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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