gpt4 book ai didi

python - 具有不规则采样率的傅里叶变换

转载 作者:太空宇宙 更新时间:2023-11-03 21:12:15 24 4
gpt4 key购买 nike

例如,我以每秒 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。它没有改变。它的标准。

计算频谱的标准方法是将信号切割成时间 block 并对这些 block 进行频谱分析。与使用吉他音调器的方式完全相同。

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

因此,以这种态度,您可以过滤您感兴趣的 block -> 高于汽车的特定速度。

代码示例:

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)

简单地说:

您无法剪切纯信号中的值,但如果将信号分组为 block ,则可以剪切这些 block 并仅获取您感兴趣的部分

您当然可以只拥有一个 block - 恰好涵盖汽车达到您的速度时的时间段。但请记住,您无法将单独的信号连接在一起。 block 需要是连续的,而不是到处粘在一起

<小时/>

注意, block 越大,FFT 越准确,但时间窗口也越大。 block 越小,FFT 精度越低,但时间窗口较小 - 适合实时应用

关于python - 具有不规则采样率的傅里叶变换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54982184/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com