离散样本序列求谐波的前提是离散样本序列为周期序列,最好是已知周期。
取一个周期的样本,假设样本为一维矩阵X。
在matlab的命令行输入下述命令即可:
y=fft(x,N); %对信号进行快速Fourier变换
mag=abs(y) %求得Fourier变换后的振幅
矩阵mag的第一个数是0次谐波(直流分量),第二个数为基波(一次谐波幅值,第n+1个数就是n次谐波的幅值。
上述运算方法存在一定的缺陷,就是一个周期(或整数个周期)样本的点数应该是2的N次幂,否则,FFT运算时,会在后面自动补零,影响频谱的真实性,改善的方法是增加样本的周期数,当样本点数足够多时,补零造成的影响可以忽略不计。
WP4000变频功率分析仪采用DFT算法,牺牲了运算速度,但是,对运算点数没有2的N次幂的限制,提高了基波测量及频谱运算精度。