%用最小二乘法消除振动信号的趋势项
clear;
clc;
close all hidden;
fni=input('输入数据文件名:','s');
fid=fopen(fni,'r');
fs=fscanf(fid,'%f',1); %读入采样频率值
m=fscanf(fid,'%d',1); %读入拟合多项式阶数
fno=fscanf(fid,'%s',1); %读入输出数据文件名
x=fscanf(fid,'%f',inf); %读入时程数据
status=fclose(fid);
n=length(x);
t=(0:1/fs:(n-1)/fs);
a=polyfit(t,x,m); %计算多项式待定系数向量a
y=x-polyval(a,t); %用x减去多项式系数a生成的趋势项
subplot(2,1,1);
plot(t,x);
title('original signal');
grid on;
subplot(2,1,2);
plot(t,y);
title('redifined signal');
grid on;
fno=input('输出数据的文件名:','s');
save(fno,'t','y');