根据示波器存储的波形数据得到两列信号的相位差(MATLAB源码)

目的

示波器显示的波形如下,需要通过MATLAB处理得到这两列信号的相位差。
在这里插入图片描述

步骤

将U盘插入到示波器上,存储信号序列。在MATLAB中读取这个.CSV 信号序列文件,处理得到相位差。代码如下:

clear all
close all
%读取数据
t=xlsread('A2.CSV','A2','A1:A500');%读取时间序列
x=xlsread('A2.CSV','A2','B1:B500');%读取参考信号
x1=xlsread('A2.CSV','A2','C1:C500');%读取待测信号
subplot 211;
plot(t,x,'b-');hold on;
plot(t,x1,'r--');grid;
legend('Reference','Signal');title('Origin');

%数据归一化
m1=(max(x)+min(x))/2;
m2=(max(x1)+min(x1))/2;
x=(x-m1)/max(x);   
x1=(x1-m2)/max(x1);
subplot 212;
index=find(x==0);
plot(t,x,'b-');hold on;
plot(t,x1,'k--');grid;
hold on;
legend('Reference','Signal');title('Normalization');

num=500;  %数据数量
l=0:1:num;
x=x;
y=x1;
Ix=sum(x.^2)/num;
Iy=sum(y.^2)/num;
Ixy=sum(x.*y)/num;
c=180*acos(Ixy/(Ix*Iy)^0.5)/pi;  %计算相位差
%disp(['相位差为',num2str(c), '度']);
output = sprintf('相位差为%f度', c);
output

 

结果

在这里插入图片描述

  • 5
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值