⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fivepointspolyfit.m

📁 这里提供了两个消除趋势相的matlab程序 在故障诊断中 要对信号进行频谱分析 而在频谱分析前要消除趋势相 这样得到的频谱 能更好的反映故障 有利于进一步诊断
💻 M
字号:
%滑动平均法消除趋势项
clear
close all hidden
%提示用键盘输入输入数据文件名
fni=input('滑动平均法消除趋势项-输入数据文件名:','s');

fid=fopen(fni,'r');%以只读方式打开数据文件
sf=fscanf(fid,'%f',1);%读入采样频率值
l=fscanf(fid,'%d',1);%滑动阶次
m=fscanf(fid,'%d',1);%读入平滑次数
fno=fscanf(fid,'%s',1);%读入输出数据文件名
x=fscanf(fid,'%f',[1,inf]);%读入时程数据存成行向量
status=fclose(fid);%关闭数据文件

n=length(x);
t=0:1/sf:(n-1)/sf;

%生成一个全为1的行向量
b=ones(1,l);
%信号两端分别向外延伸1个数据
a=[b*x(1),x,b*x(n)];
b=a;
%按平滑次数循环进行滑动平均处理计算趋势项
for k=1:m
    for j=l+1:n-l
        b(j)=mean(a(j-1:j+1));
    end
    a=b;
end
%用输入信号x减去与平滑趋势项a
y=x(1:n)-a(1+l:n+l);
%同时绘制x y的时程曲线
plot(t,x,':',t,a(l+1:n+l),'-.');
legend('输入','输出','趋势');grid on

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -