当前位置:首页检测中心基础知识 │ 如何用Matlab计算离散样本序列的各次谐波?

如何用Matlab计算离散样本序列的各次谐波?

  • 浏览次数:5971次
  • 发布时间:2013/8/17 0:22:23
  • 作者:银河电气

  离散样本序列求谐波的前提是离散样本序列为周期序列,最好是已知周期。

  取一个周期的样本,假设样本为一维矩阵X。

  在matlab的命令行输入下述命令即可:

  y=fft(x,N);    %对信号进行快速Fourier变换

  mag=abs(y)     %求得Fourier变换后的振幅

  矩阵mag的第一个数是0次谐波(直流分量),第二个数为基波(一次谐波幅值,第n+1个数就是n次谐波的幅值。

  上述运算方法存在一定的缺陷,就是一个周期(或整数个周期)样本的点数应该是2的N次幂,否则,FFT运算时,会在后面自动补零,影响频谱的真实性,改善的方法是增加样本的周期数,当样本点数足够多时,补零造成的影响可以忽略不计。

  WP4000变频功率分析仪采用DFT算法,牺牲了运算速度,但是,对运算点数没有2的N次幂的限制,提高了基波测量及频谱运算精度。

变压器空载电流波形及谐波频谱