模拟信号求解相位差(2)

  本文基于《正弦量频率相位测量的新方法——高金峰》所提出的方法。此方法对上篇博客中所提的方法进行了改进,计算精度有所提升,但是对于被测信号进行了限制,具体见下文分析

1.理论基础

  假设输入的两个模拟信号的表达式分别为:
   μ1(t)=U1msin(ωt+θ1)
   μ2(t)=U2msin(ωt+θ2)
  从表达式中可得:两个信号的频率为 ω2π ,相位差为 θ=θ1θ2
  设观察时刻 t=0 ,则以 t=0 为中心,以时间间隔为 t μ1(t) μ2(t) 进行同时采样可得采样序列:
   μ1(3t),μ1(2t),μ1(t),μ1(0),μ1(t),μ1(2t),μ1(3t),
   μ2(3t),μ2(2t),μ2(t),μ2(0),μ2(t),μ2(2t),μ2(3t),
  结合信号的表达式我们可以得到
   μ1(0)=U1msin(θ1)(1)μ1(t)=U1msin(ωt+θ1)(2)μ1(t)=U1msin(ωt+θ1)(3)μ1(2t)=U1msin(2ωt+θ1)(4)μ1(2t)=U1msin(2ωt+θ1)(5)
由和差化积公式
   sina+sinb=2sina+b2cosab2sinasinb=2cosa+b2sinab2
(2)+(3) 可得
   2U1msinθ1cos(ωt)=μ1(t)+μ1(t)(6)
(2)(3) 可得
   2U1mcosθ1sin(ωt)=μ1(t)μ1(t)(7)
(4)+(5) 可得
   2U1msinθ1cos(2ωt)=μ1(2t)+μ1(2t)(8)
(1) (6)cos(ωt)=μ1(t)+μ1(t)2μ1(0)ω=arccos(μ1(t)+μ1(t)2μ1(0))/t(9)
  这样当 μ1(0)0 时,我们就可以通过三个采样点的数值计算出模拟信号的角频率 ω
  当 μ1(0)0 μ1(t)μ1(t)0 时,由 (6)(7)
   tanθ1tan(ωt)=μ1(t)+μ1(t)μ1(t)μ1(t)tanθ1=μ1(t)+μ1(t)μ1(t)μ1(t)tan(ωt)(10)
  由 (1) (8)cos(ωt)=μ1(2t)+μ1(2t)2μ1(0)(11)
  又由三角公式 tana=1cos2a1+cos2a (取正值)可得
tanθ1=μ1(t)+μ1(t)μ1(t)μ1(t)2μ1(0)μ1(2t)μ1(2t)2μ1(0)+μ1(2t)+μ1(2t)(12)
  令 t11=μ1(t)+μ1(t)μ1(t)μ1(t)t12=2μ1(0)μ1(2t)μ1(2t)2μ1(0)+μ1(2t)+μ1(2t)t21=μ2(t)+μ2(t)μ2(t)μ2(t)t22=2μ2(0)μ2(2t)μ2(2t)2μ2(0)+μ2(2t)+μ2(2t)
  所以两个模拟信号的初始相位为
   θ1=arctan(t11t12)θ2=arctan(t21t22)
  最终我们得到两个信号的相位差为 θ=θ1θ2

2.流程图

Created with Raphaël 2.1.0 开始 对两路信号进行A/D 获得采样序列 采样序列中 两两的间隔是否过小? 改变采样时间间隔 两个中心点的值是否为0? 计算t11、t12、t21、t22 计算两个模拟信号的初始相位 计算角频率 计算相位差 输出相位差和角频率 结束 yes no yes no

3.MATLAB仿真实现

clear all;

F=1;%被采样信号频率1Hz                                                                       
Ts=0.1;%采样间隔

%对下列信号进行处理
u1=inline('2*sin(2*pi*t)');
u2=inline('3*sin(2*pi*t+pi/3)');

n=-2:2;
nTs=n*Ts;%采样序列
f1=u1(F*nTs);
f2=u2(F*nTs);

if(f1(3)==0)
    angle1=0;
else
    t11=(f1(4)+f1(2))/(f1(4)-f1(2));
    t12=sqrt((2*f1(3)-f1(5)-f1(1))/(2*f1(3)+f1(5)+f1(1)));
    angle1=atan(t11*t12);%信号1的相位                                                                                              
    w=(f1(2)+f1(4))/(2*f1(3));
end

if(f2(3)==0)
    angle2=0;
else
    t21=(f2(4)+f2(2))/(f2(4)-f2(2));
    t22=sqrt((2*f2(3)-f2(5)-f2(1))/(2*f2(3)+f2(5)+f2(1)));
    angle2=atan(t21*t22);%信号2的相位                                                                                                  
    w=(f2(2)+f2(4))/(2*f2(3));
end

angle=abs(angle1-angle2)%两个信号的相位差                                                   

W=acos(w)/Ts;%求出角速度W                                                           
F=W/(2*pi)%求出模拟信号的频率                                                                 
T=1/F;%求出周期                                                                     

4.思考

4.1对于信号的要求

  从实现原理中我们可以看出,此方法对于初始相位为0的模拟信号无法进行求解,我用自己的理解已将此部分的解决方法放到代码中,但正确性还待验证。

4.2异步采样

  此方法的前提是对于两路信号采样的时间相同,即同步采样。而现实情况中实现理想情况的同步采样是较难实现的。文中给出了校验的方法。在频率 ω 确定的形况下,只要选定一个信号的 t=0 的位置,另一路信号 t=0 的位置就可以由第一路信号 t=0 的位置确定。若两路信号的采集时间相差 t2 ,且第二路信号 t=0 的采集点在第一路采集点之后,则计算两路信号相位差的公式由 θ=θ1θ2 变为 θ=θ1θ2+ωt2
  以上就是我对这篇文章的理解和实验,有不足之处还望大家多多指教。

  • 4
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值