不规则采样率的傅立叶变换

斯蒂芬·杰克逊

例如,我以每秒100个样本的采样率测量了一些数据

a = [1, 4, 5, 6, 7, 8, 9, 6, 3, 2, 7, 1, 6]

该数据表示汽车长时间行驶时的振动(位移),可以说我只希望以一定速度行驶时查看振动,因此在进行采样后(也许将无用的值设置为0)我得到类似

b = [1, 4, 5, 0, 0, 0, 0, 6, 3, 0, 0, 1, 6]

现在,如果我要查看该数据的傅立叶变换数据,该如何用作域和采样率?

我用

b = [1, 4, 5, 0, 0, 0, 0, 6, 3, 0, 0, 1, 6] 

以前的采样率为1/100?

还是我删除其他值

c = [1, 4, 5, 6, 3, 1, 6] 

和不同的采样率?

马丁

我认为您混淆了什么采样率。采样率由您的传感器生成。没有恒定的采样率,您将无法计算出正确的频率。歌曲和麦克风的标准采样频率为44kHz。它不会改变。它的标准。

计算频谱的标准方法是将信号切成时间块,然后对这些块进行频谱分析。与吉他的Tone调谐器完全相同。

因此,您有采样频率fs = 100hz可以说您的块将是0.5s->,这意味着您的块将具有fs*0.5s = 50值。您将对这些块而不是整个time_signal进行频谱分析

因此,以这种态度,您可以过滤对您而言有趣的块->高于特定汽车速度。

代码示例:

all_data = [1,2,8,1,2,6,4,7,8,1,3.........] 
chunks = [[1,2,8...],[4,5,7,8,],...]
>>>len(chunks[0])
50
interesting_chunks = chunks that were measured when car reached 40mph
for interesting_chunk in interesting_chunks:
    FFT = np.fft(interesting_chunk)

用简单的方法:

您无法削减纯信号中的值,但如果将信号按块分组,则可以切掉这些块并仅获取您感兴趣的那些

当然,您可以只包含一个部分-恰好涵盖了汽车达到您的速度的时间段。但是请记住,您不能将单独的信号连接在一起。块需要连续,而不是从头到尾粘在一起


请注意,块越大,FFT越准确,但是时间窗口越大。块较小,FFT精度较低,但是时间窗口较小-适用于实时应用

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章