两个信号之间的相位差?

时间:2014-02-12 05:28:59

标签: signal-processing fft correlation difference phase

我正在研究这个嵌入式项目,我必须通过计算其电压和电流波形之间的相位差并通过改变其频率使其为零来共振传感器。我(当前)和V(电压)在任何时刻都是相同的频率信号,但不是固定频率信号(47Khz - 52kHz)。我所要做的就是计算这两个信号之间的相位差。哪种方法最有效。

两个信号的FFT然后是特定组件之间的相位差 还是两个信号的互相关? 或者是另一个?哪种方法能给我最准确的结果?以什么分辨率?采样率是否会影响相位差的分辨率(可以感知的最小相位差)? 我是数字信号处理的新手,如果有任何错误,请纠正我。

其他细节: -

  • 噪音在我的系统中可能是白噪声/高斯噪声(不重要)&基本的谐波(在谐振失配情况下可能是重要的)。

  • 是的4046可以成为开关稳压器的理想选择。我正在与(NCO / DDS)合作,我可以持续扩展/重塑正弦曲线。

  • 模拟滤波器的实现将非常复杂,因为我需要具有高滚降率的高阶滤波器来消除谐波,因此我选择基于DSP的滤波器,并且它易于与MATLAB DSP处理器配合使用。 / p>

  • 您建议采用~50 KHz(47Khz-52KHz)系统获得FFT或Goertzel结果的采样率,相位分辨率优选= <0.1度或更低,频率步长将从小到小为~1至2Hz。到50 Hz-200Hz。

  • 我的频率是可变的45KHz - 55Khz ......但是我的系统会知道......知道最后一次馈送频率的相位误差是更理想的。在FFT和数字滤波之后,可以执行IFFT以获得更多无噪声样本,这些样本可用于进一步处理。所以我猜FFT会完成这两项任务......

但我想知道相位差精度原因是关键部分。

5 个答案:

答案 0 :(得分:3)

Goertzel算法http://www.embedded.com/design/configurable-systems/4024443/The-Goertzel-Algorithm是一种相当有效的音调检测方法,可将信号分解为实部和虚部。我假设您可以根据需要使用数字来获得相位差或只是极性。

分辨率与时间常数是本文突出问题的设计权衡。 http://www.mstarlabs.com/dsp/goertzel/goertzel.html

其他

“可以获得什么样的准确度”

这取决于...你所面对的是什么(即信号电平,外部噪音等),你有什么硬件(即adc,处理器等)以及你如何实现你的解决方案(采样率,数值精度等)完整的图片,我将猜测你可以实现的目标,因为Goertzel方法远非易事。

但是我认为对于具有良好信号电平和低噪声的高中项目,使用4046 PLL www.nxp.com/documents/data_sheet/HEF4046B.pdf的相位比较器(2,因为它锁定在零度)的一种更简单的方法可能会让你失望几度。

如果你有一个高Q传感器,另一个问题就是产生一个高分辨率的频率。有一种方法,但这是另一种途径。

更多

“基本的谐波(可能很重要”......因此数字滤波 但是采样率太低,并且可能存在锯齿问题。错误匹配的抗锯齿滤波器可能会占用您的整个错误预算。十倍采样频率的经验法则似乎有点低,而且它越高,它将使滤波器设计更容易。

空间窗口解决了频率问题以及更高的滚降和衰减问题,本文将对此进行介绍。 Eric Jacobsen和Richard Lyons在简化数字信号处理中的滑动频谱分析http://www.amazon.com/Streamlining-Digital-Signal-Processing-Guidebook/dp/1118278380

在检测到任何一个载波后,我之前的项目中,然后我对巨大噪声中频率变化的时间感兴趣。由于载波相位生成不一致,相位误差永远不会被量化,所以我不能猜测你的项目条件可能会得到什么。

答案 1 :(得分:2)

不要贬低芯片的答案(我赞成它!)但其他一些选择是:

  • 互相关。在我的脑海中,我不确定它和Goertzel算法之间的性能差异是什么,但两者都应该在嵌入式系统上可行。
  • 临时方法。例如,我会尝试这样的事情:带通信号以消除噪声,找到峰值并测量峰值之间的时间差。这可能会更有效率,并且,如果你做出合理的工作抛出异常值并处理环绕,应该非常强大。带通滤波器本身会改变相位,因此您必须确保对两个信号应用完全相同的滤波器。

答案 2 :(得分:1)

如果输入信噪比不是太差,可以基于zero crossing detection构建计算有效的解决方案。另外,请查看http://www.metrology.pg.gda.pl/full/2005/M&MS_2005_427.pdf,以便对相位差检测算法进行比较,包括过零检测算法。

答案 3 :(得分:0)

如果准确知道信号频率,则计算DFT的1-bin(或使用类似的复杂Goertzel块滤波器)将起作用。 (将DFT bin或Goertzel设置为该频率)。

如果频率未完全知晓,您可以尝试使用带FFTshift的FFT来插值频率幅度峰值,然后针对两个信号中的每一个插入该频率的相位。 FFT还允许您窗口化数据,如果频率不是精确的二进制中心(或恰好是Goertzel滤波器频率),这可以提高相位估计精度。不同的窗口可以改善“箱之间”的频率的相位估计精度。 Blackman-Nutall窗口将比矩形窗口更好,但可能有更好的窗口选择。

相位测量精度取决于S / N比,对两个(假设静止)信号进行采样的时间长度,以及可能使用的窗口。

答案 4 :(得分:0)

如果您有跟踪每个输入的锁相环(PLL),则可以减去相位系数(发生器组件的相位系数)以确定相位之间的偏移。这也可以抵抗噪音。