我有一个25毫秒等间隔的样本阵列。我想确定基波的频谱

2024-06-16 13:51:48 发布

您现在位置:Python中文网/ 问答频道 /正文

假设N=1000个电压采样,采样率为1ms。我需要用python/numpy精确地找到基波的振幅和角度,在45到55赫兹之间,以及可能存在的任何边带。 我需要一个锁相环来实现这一点,还是可以不用锁相环来实现


Tags: numpy角度电压振幅边带锁相环基波
2条回答

您的测量频率基本上太低,应该是预期事件频率的两倍以上

测量值:0.025s
事件范围:0.0182-0.0222s

更多信息:https://en.wikipedia.org/wiki/Nyquist%E2%80%93Shannon_sampling_theorem

锁相环是估计基波频率等的合理方法。假设您预先采集了N个样本,另一种分析方法是:

  1. 应用一个窗口,如np.hanning(N),将其逐点乘以样本
  2. np.fft.rfft计算光谱。对于Ts秒的采样间隔,结果数组的第N个元素是频率n * N * Ts的DFT系数,单位为Hz(或对于值N=1000,Ts=0.001,简单nHz)
  3. 找到峰值大小在45和55之间的箱子。峰值的位置给出了基波的频率。您可以在几个相邻的容器上插值多项式(np.polyfit),并找到其峰值以获得更精确的估计。峰值的幅值和复相位给出基波的振幅和相位(角度)
  4. 绘制光谱的大小以查找边带

相关问题 更多 >