50 Hz 信号的 FFT

FFT of 50 hz signal

我必须对 50 Hz 的正弦波进行 FFT 并测量多达 16 次谐波。
我的采样频率符合奈奎斯特标准:fs = 16*50*2 = 1600 Hz = 1600 samples/sec 即在一个 50Hz 的周期内对应于 20 毫秒或 32 个样本。

如图1所示,我每个周期取32个样本。

然后根据图 2,我将对 ADC 采样电压系列进行 32 点 FFT x[n],其中 n = 0 到 31 然后 FFT 算法 returns 值 X[k] 其中 k = 0 到 31.

  1. x[n]为电压样本
    所以我的问题是 FFT 算法的输出 X[k],其中 k = 0 到 31:
    X[0] = 基频
    X[1] = 1st次谐波 . . .
    X[31] = 31st 谐波

    对吗?

    此外,如果 X[1] 的值 = 1 + j,则 X[1] 的大小 = sqrt(2) = 1.4142。那么这个值 1.4142 是一次谐波的峰值吗?现在,如果我必须找到一次谐波的 RMS 值,那么 会是 Vrms = Vm/sqrt(2) = 1 吗?

  2. 另外输入信号的32个采样点是从正弦波的过零点开始,还是可以从正弦波的任意时间点开始,如图3所示?

    1. 在将 50 Hz 信号的 32 个样本馈送到 FFT 算法之前还有一件事,我是否必须对这些样本进行一些数字滤波.. 为什么我问这个问题是因为假设在取第 20 和第 16 个样本时如果出现一些噪声尖峰,则进行采样,在这种情况下,它将不是真实值。如果是,那么哪种数字滤波方法最好?

请指正。

X[0] = fundamental frequency
X[1] = 1st harmonic ...
X[31] = 31st harmonic

Is it right ?

差不多,但不完全是。您不应该忘记常数项(它会将您假设的所有对应关系向上移动),并且任何高于奈奎斯特频率的项都是从较低频率分量反映出来的。对应关系如下:

  • X[0]是常数项(也称为直流偏压)
  • X[1]为基频
  • X[2]是一次谐波
  • X[16]是第15谐波
  • X[17]X[31]分别是X[15]X[1]的共轭复数。

Also if value of X[1] = 1 + j, then magnitude of X[1] is sqrt(2) = 1.4142. So is this value 1.4142 the peak value of the first harmonic ?

由于您的信号频率是 FFT 频率仓宽度的精确倍数,因此 X[1] 的幅度确实对应于相应频率分量的峰值。如前所述,X[1] 对应于基频,而不是一次谐波。因此,您示例中的 1.4142 值将是基频的峰值。

Now if I have to find RMS value of first harmonic then will it be Vrms = Vm/sqrt(2) = 1 ?

这确实是单个谐波的有效值与其峰值之间的关系。但是请注意,不要将此应用于 RMS 和具有多个谐波的信号的峰值之间的转换,因为这种关系是非线性的。

Also should the 32 samples of the input signal start from zero crossing of the sin wave, or can I start at any time place of the sin wave as shown in figure-3?

您可以在周期波中的任何时间偏移开始,但这会在 FFT 结果中引入相位偏移。如果你只对频率分量的大小感兴趣,那就无所谓了。

X[1] 和 X[31] 都包含与频率为 Fs/N 的正弦波相关的任何频谱的能量,不仅包括基波,还包括任何频谱(向上到 Fs/2),频率不是 Fs/N 的精确整数倍。例如在你的情况下,包括一个 49 赫兹的正弦波。

X[1] 和 X[31] 是复共轭,会在它们之间分配能量,并且您的基波峰值可能会根据 FFT 结果 X[1] 的幅度按 0.5 * N 缩放, FFT 的长度。比例因子也可以是 N 或 0.5 或 0.5 * sqrt(N),具体取决于您特定 FFT 的实现。

添加: 关于第 3 点:噪声尖峰可以包含宽带能量,因此 "true" FFT 值将包括它们的一些影响。完全去除 1 个样本尖峰需要线性滤波之外的非线性方法或使用 FFT。