MATLAB求解振动数据的相关函数

%% 提示输入数据和相关函数
fni=input('相关函数-输入文件名:','s');
fid=fopen(fni,'r');%以只读方式打开数据文件
fs=input('请输入信号的采样频率(Hz):');%采样频率
fun=input('请输入分析内容(1-自相关,2-互相关):');
x=load(fni);
fclose(fid);%关闭数据文件
%% 相关函数求解
n=length(x(1,:));%取信号数据长度
t=0:1/fs:(n-1)/fs;
if fun==1 
    %1-自相关
    [a,lags]=xcorr(x(1,:),'none');
else
    %2-互相关
    [a,lags]=xcorr(x(1,:),x(2,:),'none');
end

%% 绘制时程曲线及相关曲线
%取正频率段的相关函数
y=a(n:2*n-1);
%绘制输入数据的时程曲线图形
subplot(2,1,1);
if fun==1
    plot(t,x(1,:),'LineWidth',2);
else
    plot(t,x(1,:),':',t,x(2,:),'LineWidth',2);
    legend('x','y');
end
grid on;
subplot(2,1,2);
plot(t,y,'LineWidth',2);
grid on;
%% 相关函数结果输出
%fno=input('请输入保存文件名称及后缀:','s');
fno= strcat(fni,'_output.csv');
fid=fopen(fno,'w');%以写的方式打开文件或建立一个新文件
for k=1:n
    fprintf(fid,'%f %f\n',t(k),y(k));
end
status=fclose(fid);  

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

半砖半砖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值