必威体育Betway必威体育官网
当前位置:首页 > IT技术

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

时间:2019-09-29 22:14:30来源:IT技术作者:seo实验室小编阅读:52次「手机版」
 

相位差

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

1.理论基础

  假设输入的两个模拟信号的表达式分别为:

  μ1(t)=U1msin(ωt+θ1)

  μ2(t)=U2msin(ωt+θ2)

  从表达式中可得:两个信号的频率为ω2π,相位差为θ=θ1−θ2

  设观察时刻t=0,则以t=0为中心,以时间间隔为△tμ1(t)μ2(t)进行同时采样可得采样序列:

  ⋯μ1(−3△t),μ1(−2△t),μ1(−△t),μ1(0),μ1(△t),μ1(2△t),μ1(3△t),⋯

  ⋯μ2(−3△t),μ2(−2△t),μ2(−△t),μ2(0),μ2(△t),μ2(2△t),μ2(3△t),⋯

  结合信号的表达式我们可以得到

  μ1(0)=U1msin(θ1)(1)μ1(△t)=U1msin(ω△t+θ1)(2)μ1(−△t)=U1msin(−ω△t+θ1)(3)μ1(2△t)=U1msin(2ω△t+θ1)(4)μ1(−2△t)=U1msin(−2ω△t+θ1)(5)

由和差化积公式

  sina+sinb=2sina+B2Cosa−b2sina−sinb=2cosa+b2sina−b2

(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(2△t)+μ1(−2△t)(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(2△t)+μ1(−2△t)2μ1(0)(11)

  又由三角公式tana=1−cos2a1+cos2a−−−−−−−−−√(取正值)可得

tanθ1=μ1(△t)+μ1(−△t)μ1(△t)−μ1(−△t)2μ1(0)−μ1(2△t)−μ1(−2△t)2μ1(0)+μ1(2△t)+μ1(−2△t)−−−−−−−−−−−−−−−−−−−−−−−−−−√(12)

  令t11=μ1(△t)+μ1(−△t)μ1(△t)−μ1(−△t)t12=2μ1(0)−μ1(2△t)−μ1(−2△t)2μ1(0)+μ1(2△t)+μ1(−2△t)−−−−−−−−−−−−−−−−−−−−−−−−−−√t21=μ2(△t)+μ2(−△t)μ2(△t)−μ2(−△t)t22=2μ2(0)−μ2(2△t)−μ2(−2△t)2μ2(0)+μ2(2△t)+μ2(−2△t)−−−−−−−−−−−−−−−−−−−−−−−−−−√

  所以两个模拟信号的初始相位为

  θ1=arctan(t11t12)θ2=arctan(t21t22)

  最终我们得到两个信号的相位差为θ=∣θ1−θ2∣

2.流程图

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

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∣

  以上就是我对这篇文章的理解和实验,有不足之处还望大家多多指教。

相关阅读

分享到:

栏目导航

推荐阅读

热门阅读