我必须采用50 Hz正弦波的FFT并测量到16次谐波
我的采样频率符合奈奎斯特标准:fs = 16*50*2 = 1600 Hz = 1600 samples/sec
即在50Hz的一个周期中对应于20毫秒或32个样本。
如图1所示,每个周期我将采集32个样本。
然后根据图2,我将对ADC采样电压系列x[n]
进行32点FFT,其中n
= 0到31
然后FFT算法将值X[k]
返回到k
= 0到31。
如果x[n]
是电压样本
所以我的问题在于
FFT算法X[k]
的输出,其中k = 0到31:
X[0]
=基频
X[1]
= 1 st 谐波
。
。
。
X[31]
= 31 st 谐波
是不是?
此外,如果X[1]
= 1 + j的值,则X[1]
= sqrt(2)=
1.4142。那么这个值1.4142是一次谐波的峰值吗?现在,如果我必须找到一次谐波的RMS值
是Vrms = Vm / sqrt(2)= 1?
输入信号的32个样本也应该从正弦波的过零点开始,还是可以在sin波的任何时间点开始,如图3所示?
请纠正我。
答案 0 :(得分:1)
X[0]
=基频
X[1]
= 1 st 谐波...
X[31]
= 31 st 谐波是不是?
几乎但并不完全。你不应该忘记常数项(它将所有假定的对应关系向上移动),并且任何高于奈奎斯特频率的项都是从较低频率分量中反映出来的。对应关系如下:
X[0]
是常数术语(也称为DC偏差)X[1]
是基本频率X[2]
是第一个谐波X[16]
是15 th 谐波X[17]
至X[31]
分别是X[15]
与X[1]
的复杂共轭。此外,如果
X[1] = 1 + j
的值,则X[1]
的幅度为sqrt(2)= 1.4142。那么这个值1.4142是一次谐波的峰值吗?
由于您的信号频率是FFT频率区宽度的精确倍数,因此X[1]
的幅度确实对应于相应频率分量的峰值。如前所述,X[1]
将对应于基频,而不是一次谐波。因此,示例中的1.4142值将是基频的峰值。
现在如果我必须找到一次谐波的RMS值那么它是Vrms = Vm / sqrt(2)= 1?
这确实是单个谐波的RMS与其峰值之间的关系。但是请注意不要将其用于在RMS和具有多个谐波的信号的峰值之间进行转换,因为该关系不是线性的。
输入信号的32个样本也应该从正弦波的过零点开始,还是可以在sin波的任何时间点开始,如图3所示?
您可以在周期波中的任何时间偏移处开始,但这将在FFT结果中引入相位偏移。如果您只对频率成分的大小感兴趣,那么它就不重要了。
答案 1 :(得分:1)
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:噪声尖峰可以包含宽带能量,因此“真实”FFT值将包括它们的一些效果。完全去除1个样本尖峰需要在线性滤波之外的非线性方法或使用FFT。