为了使用 Kay 的估计器,我应该如何预处理一个实值信号?

信息处理 分析信号 预处理 估计者
2022-01-12 00:08:16

我有 100,000 个信号样本x[n]以 20kHz 采样。该数据是来自旋转机器的振动数据,并且包含与机器旋转速度相关的重要频谱分量。

因为机器的速度会随着样本的持续时间而变化,所以使用 FFT 的峰值不会产生我正在寻找的结果。

因此,我想使用允许短期估计的Kay 估计器等估计器,但假设信号模型为:

x[n]=Aexp(jωn+θ)+z[n]

在哪里 n= 0... 99,999,A是幅度,ω是要估计的频率,θ是初始偏移量,并且z[n]是复杂的噪声。

但是,我的信号是实值的,看起来更像:

x[n]=Acos(ωn+θ)+zr[n]

在哪里zrA现在是实值。

如何将我的实值信号转换为复值信号,以便我可以使用 Kay 的估计器?

2个回答

将真实信号转换为其解析表示的工具是希尔伯特变换

假设您的信号是一些具有可变幅度的螺旋旋转在实时平面上的投影,如下图所示。

在此处输入图像描述

资源

希尔伯特变换在给定实部的情况下产生如此复杂的信号。这是一个线性变换,在频域中很容易做到。无需深入研究其数学和推导,信号的傅立叶变换虚部与真实信号乘以j(旋转 90 度)。通过实信号的对称性质,可以得到以下关系:

您所有的负频率分量都变为 0。

您的直流分量保持不变。

你所有的正频率成分加倍

例如,在 Matlab 中,您将执行以下操作:

a = rand(1,201);

hilbert_a = ifft( [ 1, 2*ones(1,100), zeros(1,100)] .* fft(a) );

或者干脆使用内置hilbert函数。

如果您想使用 Kay 估计器,您需要将感兴趣的信号转换为其“分析信号”表示。这基本上消除了原始实值信号中的冗余(例如负)频率。由于在这个过程中信号的频域表示的共轭对称性被破坏,结果是复杂的。然后,您应该能够应用您想要的技术。

其他方法也可用于频率跟踪问题。可以应用 LMS 算法来执行瞬时频率估计(Haykin,“自适应滤波器理论”,第 244-246 页)。或者,您可以使用锁相环随时间跟踪离散频谱分量。正确的解决方案取决于您的最终目标是什么以及您的信号的具体特征是什么。