我有25毫秒相等间隔的样本数组我想确定基本频谱

问题描述

从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个样本,另一种分析方法是:
  1. 通过将点与样本相乘来应用像np.hanning(N)这样的窗口。
  2. 使用np.fft.rfft计算频谱。对于Ts秒的采样间隔,结果数组的第n个元素是频率n * N * Ts的DFT系数,单位为Hz(或对于值N = 1000,Ts = 0.001,简单{{ 1}} Hz)。
  3. 找到峰值幅度在45到55之间的容器。峰值的位置给出了基频的频率。您可以在几个相邻的条带上插值多项式(np.polyfit)并找到其峰值以获得更精确的估计。峰的幅度和复杂相位给出了基波的幅度和相位(角度)。
  4. 绘制频谱幅度以寻找边带。