我正在做一个项目,我从定制设计的测量系统中获取加速度计数据。测量系统是一个连接到Raspberry pi 3的加速度计,运行一个Python脚本,该脚本会采样数据并偶尔将其写入csv文件。然后将csv文件导入计算机,并在matlab中运行FFT分析。
我想从几个数据集中计算FFT结果的平均值。 这样可以确定不同数据集之间的频率和幅度是否存在任何关系。
当我在python脚本和Raspberry Pi 3中运行测量系统时,频率稳定性不能说是最好的。在python脚本中,我将采样率设置为615 hz,Pi可以部分保留该采样率,直到必须将数据写入csv文件为止。当前该脚本被设置为在缓冲区长度为615个样本时有效地写入文件,有效值为615 *4。由于此过程,当我运行csv写入时,两个样本之间的时间从1.6毫秒“漂移”到大约20毫秒。对于到目前为止我分析的大多数数据集,由matlab确定的平均采样率似乎约为600 hz。 由于python脚本中的采样率不一致,而且我运行的采样长度各不相同,因此在比较不同的数据集时,我会遇到各种大小的频点。
我尝试调查“采样率漂移”是否会导致FFT结果损坏,而没有任何重大发现。 FFT结果似乎部分还可以,但我没有任何参考可与它们进行比较。有没有人遇到过与“非连续”采样率类似的FFT案例?
当数据集的“检测到的样本频率”和样本长度略有不同时,是否有关于如何计算多个FFT平均值的建议?