加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

如何在python中估计(给定频率的信号功率)与时间的关系

发布时间:2020-12-20 11:17:07 所属栏目:Python 来源:网络整理
导读:我正在寻找一种估算信号功率的好方法(定期采样10 kHz)与时间仅一个频率(比如50 Hz).我可以计算频谱图,然后在目标频率上拍摄一片.这似乎效率低下,因为我只关心一个频率对时间的功率.我意识到正好一个频率的功率为零(在极限范围内),我想在目标频率附近的一个小
我正在寻找一种估算信号功率的好方法(定期采样10 kHz)与时间仅一个频率(比如50 Hz).我可以计算频谱图,然后在目标频率上拍摄一片.这似乎效率低下,因为我只关心一个频率对时间的功率.我意识到正好一个频率的功率为零(在极限范围内),我想在目标频率附近的一个小频率间隔内计算信号的功率.

我目前的“解决方案”是使用Matplotlib的mlab.specgram()函数,该函数返回一个2d数组的幂,我只是将它切片.我对此并不满意,因为我并不完全信任mab.specgram()函数,因为在不同的信号上计算频谱图需要非常不同的时间(即使它们的长度相同).

解决方法

有很多方法可以做到这一点.一种原始但有效的方法是应用带通滤波器(50Hz),从而消除所有其他信号,然后计算最后N个样本的RMS功率.

另一个是你可以做一个窗口FFT,但实际上不是FFT – 只需计算你想要的bin.窗口可以是你想要的任何东西(例如带有alpha 8的Kaiser).单个bin的DFT只是信号乘积的总和e ^(i * n * w)(其中w在采样率下为50Hz,在迭代器中为n).

可能比这更简单.这取决于你想要弹性的东西,信号移动的速度,以及你是否期望混音中的噪音或其他信号.如果你不是试图从别人的杂音中挑选出一个信号,你就不必费力了.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读