如何计算周期信号的频率?

信息处理 matlab 离散信号 频率 周期性的 八度
2022-02-13 22:59:12

我知道有类似的主题,但在我的情况下找不到任何解决方案。我有一个加速度计传感器和一个基本的微控制器。加速度计数据通过 i2C 以阵列形式收集。我想在 700 毫秒的窗口内评估收集的数据。例如,下面有一个原始信号: 原始信号

然后我应用中值滤波器去除缺口:(我认为这有利于减少下一个过程中的峰值计数) 中位数

然后我找到了峰值: 峰值

我认为我可以评估计算频率的峰值。有没有办法找到频率?或者我可以使用这些峰值来查找频率吗?我需要一个最小的算法,因为它将在微控制器中计算。

2个回答

您应该直接进入傅立叶变换,并检测您的频率峰值,以恢复您的主频率。

如果您愿意,请在此处发表评论,并在此处在线提供一些可用数据以获取更多信息。

谢谢您的回复。我在八度音阶上尝试了fft。

在我的第一篇文章中有一系列 680 个样本。但是当我尝试在同一个示例中更改样本计数时,频率正在发生变化。我知道他们之间有关系,但我无法理解。如何缩放这些样本计数?

这里有3个例子,如下所示,

[d680, f=2,49Hz] [d512, f=7,21Hz] [d256, f=1,94Hz]

d680, f=2,49Hz 在此处输入图像描述

d512, f=7,21Hz 在此处输入图像描述

d256, f=1,94Hz 在此处输入图像描述