woaiclan 发表于 2009-5-12 18:15

新手求助!

是这样,我有一列很大的数据,大概27万,我想从其中去4096个点来分析,用y=fft(x,4096)来做,但是横坐标是点数了,怎么把横坐标改为时间呢?我知道我这个程序是错误的,我是初学,希望各位指教!
p=load('f:\学习\mlab\xiangying.txt');
sf=1024;
fmin=0;
fmax=80;
x=p(:,2);
n=4096;
t=(0:1/sf:(n-1)/sf)';
nfft=4096;
ni=round(fmin*nfft/sf+1);
na=round(fmax*nfft/sf+1);
y=fft(x,nfft);
a=zeros(1,nfft);
a(ni:na)=y(ni:na);
a(nfft-na+1:nfft-ni+1)=y(nfft-na+1:nfft-ni+1);
y=ifft(a,nfft);
y=(real(y(1:n)))';
subplot(2,1,1);
plot(t,x);
xlabel('时间(s)');
ylabel('加速度(g)');
grid on;
subplot(2,1,2);
plot(t,y);
xlabel('时间(s)');
ylabel('加速度(g)');
grid on;
我知道这样,xy向量长度是不同的,那应该怎样呢?

woaiclan 发表于 2009-5-12 18:18

没人指导,苦啊,希望热心人的指教!

songzy41 发表于 2009-5-13 09:06

从程序中看,LZ主要是把信号进行低通滤波,原始数据又较长,在这种情况下可以用低通滤波器,经滤波后xy向量长度是相同的。
页: [1]
查看完整版本: 新手求助!