signal-processing - 两个信号之间的相位差?

标签 signal-processing fft correlation difference phase

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

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

其他详细信息:-

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

  • 是的,4046 可以作为开关稳压器的一个很好的替代品。我正在与 (NCO/DDS) 合作,在那里我可以持续缩放/ reshape 正弦曲线。

  • 模拟滤波器的实现将非常复杂,因为我需要具有高滚降率的高阶滤波器来去除谐波,因此我选择基于 DSP 的滤波器,它很容易与 MATLAB DSP 处理器一起工作。

  • 对于 ~50 KHz (47Khz-52KHz) 系统,您建议使用什么采样率来实现 FFT 或 Goertzel 的结果,相位分辨率最好 =<0.1 度或更小,频率步长变化小至~1 到 2Hz。到 50 Hz-200Hz。

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

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

最佳答案

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

分辨率与时间常数是设计权衡,本文强调了这个问题。 http://www.mstarlabs.com/dsp/goertzel/goertzel.html

额外的

“可以获得什么样的精度?”

这取决于...您所面临的问题(即信号电平、外部噪声等)、您拥有的硬件(即 adc、处理器等)以及您如何实现解决方案(示例率、数值精度等)。如果没有完整的图片,我会猜测您可以实现什么,因为 Goertzel 方法远非易事。

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

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

更多

“基波谐波(可能很重要)”……嗯,因此需要数字滤波; 但如果采样率太低,则可能会出现混叠问题。此外,不匹配的抗锯齿滤波器可能会占用您的全部错误预算。十倍采样频率的经验法则似乎有点低,而且它更高将使滤波器设计更容易。

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

在我之前的项目中,在检测到任一载波后,我对巨大噪声中频率变化的时间很感兴趣。由于载波相位生成不稳定,相位误差永远无法量化,因此我无法比您更好地猜测您在项目条件下可能会得到什么。

关于signal-processing - 两个信号之间的相位差?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21719435/

相关文章:

javascript - WinJS 中的音频分析

python - scipy.signal.spectrogram 和 scipy.signal.stft 有什么区别?

fft - 使用 FFT 计算同一源的幅度差异

返回矩阵中的所有组合集,使得每组中没有成员与另一组高度相关

python - NumPy相关函数中索引的范围

c# - 使用 FFT 确定低频信号的幅度

python - python 中的 fft 带通滤波器

iphone - 如何在播放音乐时实现视觉频谱

c++ - 逆傅立叶变换FFT3W

python - 如何在 Python 上的 PCA 中创建相关矩阵?