求助,有人帮我看看这个matlab代码做AE传感器数据的FFT合适么
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()
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()
最后出来发现,在一个非常宽的频带下各种高低频分量基本上是平摊了,而奇怪的是许多尖峰也是全频带下随处可见,这个貌似丝毫看不出啥规律来,而且数据量大,电脑跑起来费劲,我缩放个图都麻烦,请问我是不是哪里做的有些问题?比如采样长度NFFT的设置,横轴f的取值.或者?麻烦各位高人了,谢谢啦
页:
[1]