我目前的“解决方案”是使用Matplotlib的mlab.specgram()函数,该函数返回一个2d数组的幂,我只是将它切片.我对此并不满意,因为我并不完全信任mab.specgram()函数,因为在不同的信号上计算频谱图需要非常不同的时间(即使它们的长度相同).
解决方法 有很多方法可以做到这一点.一种原始但有效的方法是应用带通滤波器(50Hz),从而消除所有其他信号,然后计算最后N个样本的RMS功率.另一个是你可以做一个窗口FFT,但实际上不是FFT – 只需计算你想要的bin.窗口可以是你想要的任何东西(例如带有Alpha 8的Kaiser).单个bin的DFT只是信号乘积的总和e ^(i * n * w)(其中w在采样率下为50Hz,在迭代器中为n).
可能比这更简单.这取决于你想要d性的东西,信号移动的速度,以及你是否期望混音中的噪音或其他信号.如果你不是试图从别人的杂音中挑选出一个信号,你就不必费力了.
总结以上是内存溢出为你收集整理的如何在python中估计(给定频率的信号功率)与时间的关系全部内容,希望文章能够帮你解决如何在python中估计(给定频率的信号功率)与时间的关系所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)