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.
若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 吗?
另外输入信号的32个采样点是从正弦波的过零点开始,还是可以从正弦波的任意时间点开始,如图3所示?
- 在将 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。
我必须对 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.
若
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 吗?另外输入信号的32个采样点是从正弦波的过零点开始,还是可以从正弦波的任意时间点开始,如图3所示?
- 在将 50 Hz 信号的 32 个样本馈送到 FFT 算法之前还有一件事,我是否必须对这些样本进行一些数字滤波.. 为什么我问这个问题是因为假设在取第 20 和第 16 个样本时如果出现一些噪声尖峰,则进行采样,在这种情况下,它将不是真实值。如果是,那么哪种数字滤波方法最好?
请指正。
X[0]
= fundamental frequency
X[1]
= 1st harmonic ...
X[31]
= 31st harmonicIs 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 ofX[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。