王济matlab在振动信号处理中的应用代码资料

上传人:w****i 文档编号:99101128 上传时间:2019-09-17 格式:DOC 页数:79 大小:58.61KB
返回 下载 相关 举报
王济matlab在振动信号处理中的应用代码资料_第1页
第1页 / 共79页
王济matlab在振动信号处理中的应用代码资料_第2页
第2页 / 共79页
王济matlab在振动信号处理中的应用代码资料_第3页
第3页 / 共79页
王济matlab在振动信号处理中的应用代码资料_第4页
第4页 / 共79页
王济matlab在振动信号处理中的应用代码资料_第5页
第5页 / 共79页
点击查看更多>>
资源描述

《王济matlab在振动信号处理中的应用代码资料》由会员分享,可在线阅读,更多相关《王济matlab在振动信号处理中的应用代码资料(79页珍藏版)》请在金锄头文库上搜索。

1、程序4-1%最小二乘法消除多项式趋势项%clear % 清除内存中所有变量和函数clc % 清除工作窗口中所显示的内容close all hidden % 关闭所有隐藏的窗口%提示用键盘输入输入数据文件名fni=input(消除多项式趋势项-输入数据文件名:,s); %以只读方式打开数据文件fid=fopen(fni,r); sf = fscanf(fid,%f,1); %读入采样频率值m = fscanf(fid,%d,1); %读入拟合多项式阶数fno = fscanf(fid,%s,1);%读入输出数据文件名x = fscanf(fid,%f,inf);%读入时程数据存成列向量%关闭数据

2、文件status=fclose(fid); %取信号数据长度 n=length(x); %建立离散时间列向量 t=(0:1/sf:(n-1)/sf); %计算趋势项的多项式待定系数向量aa=polyfit(t,x,m); %用x减去多项式系数a生成的趋势项y=x-polyval(a,t); %将分成2行1列的图形窗口的第1列设为当前绘图区域subplot(2,1,1); %绘制x对于t的时程曲线图形plot(t,x); %在图幅上添加坐标网格grid on; %将分成2行1列的图形窗口的第2列设为当前绘图区域subplot(2,1,2); %绘制y对于t的时程曲线图形 plot(t,y); %

3、在图幅上添加坐标网格grid on; %以写的方式打开文件或建立一个新文件 fid=fopen(fno,w); %进行n次循环将计算结果写到输出数据文件中 for k=1:n %每行输出两个实型数据,t为时间,y为消除趋势项后的结果 fprintf(fid,%f %fn,t(k),y(k); %循环体结束语句 end %关闭数据文件status=fclose(fid); 程序4-2%五点滑动平均法平滑处理%clearclcclose all hidden%fni=input(五点滑动平均法平滑处理-输入数据文件名:,s); fid=fopen(fni,r); sf = fscanf(fid,%

4、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/sf:(n-1)/sf); %将x赋值给a a=x; %循环m次进行平滑处理计算 for k=1:m b(1)=(3*a(1)+2*a(2)+a(3)-a(4)/5;b(2)=(4*a(1)+3*a(2)+2*a(3)+a(4)/10; for j=3:n-2 b(j)=

5、(a(j-2)+a(j-1)+a(j)+a(j+1)+a(j+2)/5; end b(n-1)=(a(n-3)+2*a(n-2)+3*a(n-1)+4*a(n)/10; b(n)=(-a(n-3)+a(n-2)+2*a(n-1)+3*a(n)/5; a=b;end%将a赋值给yy=a;%将分成2行1列的图形窗口的第1列设为当前绘图区域subplot(2,1,1); %绘制平滑前的时程曲线图形plot(t,x); %添加横向坐标轴的标注xlabel(时间 (s); %添加纵向坐标轴的标注 ylabel(加速度(g); %在图幅上添加坐标网格grid on; %将分成2行1列的图形窗口的第2列设为

6、当前绘图区域subplot(2,1,2);%绘制平滑后的时程曲线图形 plot(t,y); %添加横向坐标轴的标注xlabel(时间 (s); %添加纵向坐标轴的标注 ylabel(加速度(g); %在图幅上添加坐标网格grid on; %打开文件输出平滑后的数据fid=fopen(fno,w); for k=1:n %每行写两个实型数据,t为时间,y为平滑后的数据 fprintf(fid,%f %fn,t(k),y(k); end status=fclose(fid); 程序4-2%五点滑动平均法平滑处理%clearclcclose all hidden%fni=input(五点滑动平均法平

7、滑处理-输入数据文件名:,s); fid=fopen(fni,r); sf = 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/sf:(n-1)/sf); %将x赋值给a a=x; %循环m次进行平滑处理计算 for k=1:m b(1)=(3*a(1)+2*a(2)+a(3)-a(4)/5;

8、b(2)=(4*a(1)+3*a(2)+2*a(3)+a(4)/10; for j=3:n-2 b(j)=(a(j-2)+a(j-1)+a(j)+a(j+1)+a(j+2)/5; end b(n-1)=(a(n-3)+2*a(n-2)+3*a(n-1)+4*a(n)/10; b(n)=(-a(n-3)+a(n-2)+2*a(n-1)+3*a(n)/5; a=b;end%将a赋值给yy=a;%将分成2行1列的图形窗口的第1列设为当前绘图区域subplot(2,1,1); %绘制平滑前的时程曲线图形plot(t,x); %添加横向坐标轴的标注xlabel(时间 (s); %添加纵向坐标轴的标注 y

9、label(加速度(g); %在图幅上添加坐标网格grid on; %将分成2行1列的图形窗口的第2列设为当前绘图区域subplot(2,1,2);%绘制平滑后的时程曲线图形 plot(t,y); %添加横向坐标轴的标注xlabel(时间 (s); %添加纵向坐标轴的标注 ylabel(加速度(g); %在图幅上添加坐标网格grid on; %打开文件输出平滑后的数据fid=fopen(fno,w); for k=1:n %每行写两个实型数据,t为时间,y为平滑后的数据 fprintf(fid,%f %fn,t(k),y(k); end status=fclose(fid); 程序4-3%滑动

10、平均法消除趋势项%clearclcclose 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-

11、1)/sf); %生成一个元素全为1的行向量b=ones(1,l); %信号两端分别向外延伸l个数据 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-l:j+l); end a=b;end%用输入信号x减去与平滑趋势项ay=x(1:n)-a(l+1:n+l); %同时绘制x对于t和y对于t的时程曲线 plot(t,x,:,t,y,t,a(l+1:n+l),-.);%添加横向坐标轴的标注xlabel(时间(s); %添加纵向坐标轴的标注 ylabel(位移mm); %在图幅上添加图例legend(输入,输出,趋势); %在图幅上添加坐标网格grid o

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号