问题描述
从N = 1000电压采样以1 ms的采样速率开始。我需要使用python / numpy精确找到基频的振幅和角度,该振幅和角度在45至55 Hz之间以及可能存在的任何边带。 我需要一个锁相环来做到这一点,还是可以不用它来完成?
解决方法
您的测量频率从根本上来说太低,应该超过预期事件频率的两倍!
测量:0.025s
事件范围:0.0182-0.0222s
更多信息:https://en.wikipedia.org/wiki/Nyquist%E2%80%93Shannon_sampling_theorem
, 锁相环是估计基本频率的合理方法。假设您已经预先收集了N个样本,另一种分析方法是:- 通过将点与样本相乘来应用像
np.hanning(N)
这样的窗口。 - 使用np.fft.rfft计算频谱。对于
Ts
秒的采样间隔,结果数组的第n个元素是频率n * N * Ts
的DFT系数,单位为Hz(或对于值N = 1000,Ts = 0.001,简单{{ 1}} Hz)。 - 找到峰值幅度在45到55之间的容器。峰值的位置给出了基频的频率。您可以在几个相邻的条带上插值多项式(np.polyfit)并找到其峰值以获得更精确的估计。峰的幅度和复杂相位给出了基波的幅度和相位(角度)。
- 绘制频谱幅度以寻找边带。