matlab加速度转化为位移,matlab数值积分实现加速度、速度、位移的转换(时域&频域积分)... | 您所在的位置:网站首页 › MATLAB加速度转化为位移 › matlab加速度转化为位移,matlab数值积分实现加速度、速度、位移的转换(时域&频域积分)... |
对此可以用滤波的方法将大的趋势项去掉。 测试的代码如下 % 测试积分对正弦信号的作用 clc clear close all %% 原始正弦信号 ts = 0.001; fs = 1/ts; t = 0:ts:1000*ts; f = 50; dis = sin(2*pi*f*t); % 位移 vel = 2*pi*f.*cos(2*pi*f*t); % 速度 acc = -(2*pi*f).^2.*sin(2*pi*f*t); % 加速度 % 多个正弦波的测试 % f1 = 400; % dis1 = sin(2*pi*f1*t); % 位移 % vel1 = 2*pi*f1.*cos(2*pi*f1*t); % 速度 % acc1 = -(2*pi*f1).^2.*sin(2*pi*f1*t); % 加速度 % dis = dis + dis1; % vel = vel + vel1; % acc = acc + acc1; % 结:频域积分正常恢复信号,时域积分恢复加入的高频信息有误差 % 加噪声测试 acc = acc + (2*pi*f).^2*0.2*randn(size(acc)); % 结:噪声会使积分结果产生大的趋势项 figure ax(1) = subplot(311); plot(t, dis), title('位移') ax(2) = subplot(312); plot(t, vel), title('速度') ax(3) = subplot(313); plot(t, acc), title('加速度') linkaxes(ax, 'x'); % 由加速度信号积分算位移 [disint, velint] = IntFcn(acc, t, ts, 2); axes(ax(2)); hold on plot(t, velint, 'r'), legend({'原始信号', '恢复信号'}) axes(ax(1)); hold on plot(t, disint, 'r'), legend({'原始信号', '恢复信号'}) |
CopyRight 2018-2019 实验室设备网 版权所有 |