获得 ADC 后 2 个频谱分量的相位和幅度

信息处理 有限脉冲响应 匹配过滤器
2022-02-07 05:22:28

我目前正在实施一个数字滤波器来获得 PID 控制器的输出。通过在系统输入端施加 1kHz 正弦波并读取输出信号来执行控制回路。信号被系统失真,输出信号包含 1kHz 输入正弦波的二次谐波分量。我目前正在应用 FIR 滤波器来获得基频和谐波音调的相位和幅度,但为了减少噪声,我必须使用非常高阶的 FIR(大约 1000 个抽头),这是一个非常缓慢的过程。我想知道匹配的过滤器是否是更好的方法,或者是否有其他建议。谢谢!

1个回答

为了获得已知频率的相位和幅度,我建议将每个样本乘以,其中对于基波情况, Hz(每个谐波 n)。然后可以根据存在多少噪声、与实际频率中可能的偏移误差以及过程的平稳程度进行交易,在多个样本上“累积和转储”输出。对于每累积 N 个样本,如果白色的噪声将相对于累积输出下降expjωtω2π10002πn1000N. 如果在控制回路本身中使用此测量,则确保累积时间明显短于回路响应时间会增加额外的复杂性,否则此过程将成为您可能不想要的回路滤波器的一部分!(在这种情况下,我可能会让循环过滤器负责所有过滤。)

这种“累积和转储”相当于一个移动平均滤波器后跟一个抽取器,因此 1 ms 的累积时间将非常有吸引力,因为在这种情况下,零点将全部间隔 1 KHz(方便地消除所有谐波例)!此外,这个“相关器”将具有由移动平均滤波器的 Sinc 频率响应给出的幅度对频率偏移灵敏度。

然后,使用累积和转储输出(使用 I 描述的复杂方法的 I 和 Q)相位、频率和幅度估计可以通过最小处理轻松获得,还可以进一步平均以增加测量 SNR(如果系统足够稳定),或包含在我怀疑 OP 可能正在尝试执行的校正循环中。

这是一种常见的幅度算法,用于有效地估计来自 I 和 Q 样本的幅度(如果不想或不能直接计算):http ://dspguru.com/ dsp/tricks/magnitude-estimator/ .I2+Q2

相位信息是 I,Q 样本的相位,因为我们已经通过复杂的旋转将感兴趣的信号转换为基带(因此在这种情况下,我们需要计算,这可以通过查找来完成如果允许迭代方法,则使用表或 Cordic Rotator。 ATAN2(Q,I)

注意:如果打算实现锁相环,那么这将变得更加简单,因为可以将乘法器用作相位检测器(因为乘法器的输出将与两个输入信号之间相位的余弦成正比),知道环路会将相位检测器驱动到 90° 交叉处的线性区域,在这种情况下,可以将真实的 1KHz 信号乘以测试信号。

对于有效的频率估计,请参见下图,该图显示了如何从两个连续复杂样本的简单操作中提取频率估计:

FreqI[n]Q[n1]I[n1]Q[n]

这是因为任何两个向量的复共轭相乘将是一个相位等于两个向量之间相位的向量(因此对于小角度和归一化向量,该向量的 Q 就是相位!)。这被称为用于估计相位的叉积鉴别器(并且在两个向量是时间延迟的相同信号的情况下,这将随着时间的变化而发生相位变化,即频率)。测量到的任何此类频率都是从 1KHz 的频率偏移,或选择的任何谐波。

在此处输入图像描述

下图显示了相位是如何得出的(这里的向量与上图中的相同向量不相关)。虚线显示的共轭。当两个向量相乘时,它们的大小相乘并且它们的角度相加,从而得到以红色绘制的乘积向量,我将其称为如果被归一化为 1,并且如果 (Q)的虚部将等于角度,无需进行反正切计算!V1V2V1V3V1V2V1V2V3

在此处输入图像描述