python 电压 谐波_用python计算thd

尽管这是一个长时间的沉默,但对于任何像我这样遇到这篇文章的人来说:OP方法有几个问题。在

1)FFT返回的量值包括0频点的幅值,因此,如果信号中存在任何直流偏压,那么假设max(abs_data)是与基频相对应的幅值是不正确的。这是个问题thd = 100*sq_harmonics**0.5 / max(abs_data)

作为一个快速的解决方案,与0频率相关的振幅可以忽略不计。在

2)下半部分的abs_数据应该抛出,它是第一部分的“镜像”反映。这是由于傅里叶变换的性质。在

这两个问题都可以通过更改函数的输入来解决,即通过替换print thd(abs_yf)

与print( thd(abs_yf[1:int(len(abs_yf)/2) ]) )

其中我们更改了输入,不包括第一个或最后一个N/2个元素。在

结果仍然不理想,因为窗口需要正好是前面提到的答案的整数个周期。使用带偏移量的纯正弦曲线进行测试并调整窗口,结果表明该方法工作良好,但如果窗口出现严重错误,则会严重失败。在t0=0

tf = 0.02 # integer number of cycles

dt = 1e-4

offset = 0.5

N = int((tf-t0)/dt)

time = np.linspace(0.0,tf,N ) #;

commandSigFreq = 100

Amplitude = 2

waveOfSin = Amplitude*np.sin(2.0*pi*commandSigFreq*time) + offset

abs_yf = np.abs(fft

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值