我在采样的信号其中,i = 0到n-1。我想找到信号的一阶导数:f'(t)。Δ 吨:˚F我(吨我= 我Δ 吨)
我首先想到的是通过一个中心差异来估算:
f′(ti)=f(ti+1)−f(ti−1)2Δt
但是,该信号可能会有很多高频噪声,可能会导致f'的快速波动。我猜正确的选择可能是通过与窗口函数(例如Hann)进行卷积来平滑信号,然后从差异中找到导数。
一位同事建议了一种更快的求导数平滑估计的方法:对2n个样本使用中心差,其中n >> 1:
f′(ti)=f(ti+n)−f(ti−n)2nΔt
当然,这将比首先使用窗口函数进行卷积运算具有更快的速度,但这是一个好的解决方案吗?
如果我们求和:
S=2Δt[f′(ti−n+1)+f′(ti−n+2)+..+f′(ti+n−1)]
并扩大通过与步骤中央差各衍生物:Δt
S=f(ti−n+2)−f(ti−n)+f(ti−n+3)−f(ti−n+2)+..+f(ti+n)−f(ti+n−2)
除两个以外的所有条款都被取消:
S=f(ti+n)−f(ti−n)=2nΔtf′(ti)
因此:
f′(ti)=1n[f′(ti−n+1)+f′(ti−n+2)+..+f′(ti+n−1)]
因此,取2n个样本的中心差等于先对大小为2n-2的矩形窗口进行卷积,然后取+/- 1个样本的中心差。
用矩形窗口平滑有多“不好”?
如果我们进行FFT,这将导致“振铃”,但是我们不需要进行FFT。
预先感谢您的任何回答!