gumengyinyin 发表于 2014-7-23 22:20

离散的加速度信号转换成位移

我用的这个帖子http://forum.vibunion.com/thread-47704-1-1.html里的程序转换的位移
怎么结果是这样,感觉只有中间一部分是正确的

gumengyinyin 发表于 2014-7-24 09:52

sf=1000;
t=0:1/sf:102.399;
v=8.33;   
FL=6*mL*wl^2*(D/2)*sin(wl*t);%轮胎的惯性力
m=5000;
x=FL/m;%悬置点下的加速度
n=length(x);

%大于并最接近n的2的幂次方为FFT长度
nfft=2^nextpow2(n);
%FFT变换
y=fft(x,nfft);
%计算频率间隔(Hz/s)
df=sf/nfft;
%计算指定频带对应频率数组的下标
fmin=0.2;
fmax=50;
c=9.88;
ni=round(fmin/df+1);
na=round(fmax/df+1);
%计算圆频率间隔(rad/s)
dw=2*pi*df;
%建立正的离散圆频率向量
% w1=0:dw:2*pi*(0.5*sf-df);
w1=0:dw:2*pi*0.5*sf;
%建立负的离散圆频率向量
% w2=2*pi*(0.5*sf-df):-dw:0;
w2=-2*pi*(0.5*sf-df):dw:-dw;

%将正负圆频率向量组合成一个向量
w=;
%以积分次数为指数,建立圆频率变量向量
it=2;
w=w.^it;
%进行积分的频域变换
a=zeros(1,nfft);
a(2:nfft-1) =y(2:nfft-1)./w(2:nfft-1);
i=sqrt(-1);
if it == 2
   y=-a; %进行二次积分的相位变换
else
   a1=imag(a); a2=real(a); y=a1-a2*i; %进行一次积分的相位变换
end
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); %IFFT变换
%取逆变换的实部n个元素并乘以单位变换系数为积分结果
y=real(y(1:n))*c;
subplot(2,1,1); plot(t,x); %xlabel(sx); ylabel(sy1); grid on; 绘制几分钱的时程曲线图形
subplot(2,1,2); plot(t,y); %xlabel(sx); ylabel(sy2); grid on; %绘制积分后的时程曲线图形

为什么位移的首位都是这样震荡的啊
页: [1]
查看完整版本: 离散的加速度信号转换成位移