[已答复] 加速度信号积分为位移信号后失真 不知错误在哪

[复制链接]
steven19931924 发表于 2018-8-23 10:42:18
本帖最后由 steven19931924 于 2018-8-23 10:46 编辑

我在做一个机械振动信号的分析,用加速度传感器采集的振动信号 ,现在用matlab将其二次积分为位移信号时出现了问题,
这是具体的图像,上面是加速度信号,下面是积分后的位移信号,曲线明显感觉不对

我用的算法是《matlab在信号处理中的应用》中的频域积分算法,
具体如下:
sf=1000;        %采样频率
fmin=0.1;     %最小截止频率
fmax=999;     %最大截止频率
c=9800;         %单位变换系数
it=2;       %积分次数
% sx=fscanf(fid,'%s',1);       %横向坐标轴的标注
% sy1=fscanf(fid,'%s',1);       %纵向坐标轴输入单位的标注
% sy2=fscanf(fid,'%s',1);       %纵向坐标轴输出单位的标注
% fno=fscanf(fid,'%s',1);       %输出数据文件名
x=A';   %输入数据存成行向量
% status=fclose(fid);
n=length(x);
%建立时间向量
t=0:1/sf:(n-1)/sf;   
%大于并最接近n的2的幂次方为FFT的长度
nfft=2^nextpow2(n);
%FFT变换
y=fft(x,nfft);
%计算频率间隔(Hz/s)
df=sf/nfft;
%计算指定频带对应频率数组的下标
ni=round(fmin/df+1);
na=round(fmax/df+1);
%计算圆频率间隔(rad/s)
dw=2*pi*df;
%建立正的离散圆频率向量
w1=0:dw:2*pi*0.5*sf;
%建立负的离散圆频率向量
w2=-2*pi*(0.5*sf-df):dw:-dw;
%将正负圆频率向量组合成一个向量
w= [w1,w2];
%以积分次数为指数,建立圆频率变量向量
w=w.^it;
%进行积分的频域变换
a=zeros(1,nfft);
a(2:nfft-1)=y(2:nfft-1)./w(2:nfft-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);
%IFFT变换
y=ifft(a,nfft);
%取逆变换的实部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;
% %打开文件输出积分后的数据
% fid=fopen(fno,'w');
% for k=1:n
%     fprintf(fid,'%f%f\n',t(k),y(k));
% end
% status=fclose(fid);


不知道是程序哪里出了问题还是原始数据本身有问题,我所使用的数据发在附件里了,希望有大神能帮忙解惑一下,谢谢


积分结果图

积分结果图

加速度数据.xlsx

184.17 KB, 下载次数: 26

4 条回复


steven19931924 发表于 2018-8-24 09:41:45
没有人吗

halleyhit 发表于 2018-8-24 12:04:02
1.你说“曲线明显感觉不对”,有具体的证据吗?从图中并看不出不对
2.为啥要频域积分?直接微元加起来不行?如果觉得噪声大,积分后再滤波也可以的

奋斗在_VklGz 发表于 2018-9-26 17:55:45
解决这个问题了吗?朋友

奋斗在_VklGz 发表于 2018-9-26 17:57:22
我也是遇到的问题和你一样,不知道哪儿出现了问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
热门教程
站长推荐
快速回复 返回顶部 返回列表