例如,我以每秒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] 删除。
我来说两句