如何对保持尖峰的信号进行下采样?

问题描述 投票:0回答:1

我正在分析以200Hz采样6-8秒的信号,最重要的部分是尖峰,最大持续1秒。例如考虑地震...

我必须将信号下采样2倍。我尝试过:

from scipy import signal

signal.decimate(mysignal, 2, ftype="fir")
signal.resample_poly(mysignal, 1, 2)

我在两个功能上都得到了相同的结果:信号被重新采样,但是正负信号的尖峰减小了。

我错了功能,还是必须通过自定义FIR滤波器?

python scipy sampling downsampling
1个回答
0
投票

如果硬件支持,您可以以最高可能的频率进行采样,但是仅在达到最小幅度差异或时间差异时保存点。这样,您的实际数据点将在任一标准上进行过滤。当信号中什么都没有改变时,您便拥有了所需的采样率,并且峰值也仍然记录下来。

假设data以恒定的采样率包含您的数据:

DIVIDER = 5
THRESHOLD = 1000

i = 1
saved = []

while(i < len(data)):
    if( (i % DIVIDER == 0) || (abs(data[i] - data[i - 1]) > THRESHOLD):
        saved.append(data[i)
    i = i + 1
© www.soinside.com 2019 - 2024. All rights reserved.