滤波信号的方差

信息处理 matlab 过滤器 离散信号 协方差
2022-02-13 02:24:59

我正在使用 Matlab 代码中显示的非常简单的一阶巴特沃斯滤波器:

order = 1;
cutOff = 0.1;
[b, a] = butter(order, (2*cutOff)/SampleRate, 'high');

所以从 的 Matlab 文档中butter,不难知道传递函数为:

H(z)=b1+b2z1a1+a2z1

问题是,如果我有一个方差为 ,经过上述高通滤波器对信号它会改变吗?我该如何计算呢?过滤器是线性的吗?xvx

3个回答

您的问题(如评论中所扩展)是询问我们是否从 开始并使用过滤器对其进行过滤以获得 其中的方差是,那么的方差

x(t)=xtrue(t)+n1(t)
H(ω)
xhp(t)=h(t)x(t)=xtrue(t)+n2(t)
n1v1v2n2

这似乎不合适,因为滤波器会改变以及噪声。Hxtrue

本页查看时的问题。xtrue(t)=0, t

这里假设是白噪声。n1

他们得到它的地方是 就是在时评估的,即

rxhp(l)=v1(hh)(l)
v2l=0
v2=rxhp(0)

因此,您需要找到滤波器的脉冲响应,将其与自身进行卷积并找到它的零滞后值。

正如我上面所说,这并不能完全回答您的问题,但这可能是一个开始。

这个答案与其他答案没有根本不同;它更像是一个补充和附录。如果是零均值高斯白噪声,那么它的方差实际上是无限的;它的功率谱密度是恒定的,通常表示为如果将此噪声输入到具有脉冲响应的功率谱密度,其中的傅里叶变换。由于噪声的均值为零,因此滤波器的输出具有由n(t)Pn(f)=N0/2h(t)y(t)Py(f)=Pn(f)|H(f)|2=N02|H(f)|2H(f)h(t)

σ2=N02|H(f)|2df.

特别是,如果滤波器是理想的带宽,则其输出处的噪声方差为BN0B

我认为通常你必须将你的信号视为一个随机过程,所以你不仅有一个方差,而且你有一个完整的自相关序列σx2x(n)rx(t)=E[x(n)x(nt)]. 所以你需要考虑的是获得通过滤波器的信号输出的自相关序列。这并不难获得,我将留给您搜索如何去做,但您可能会发现搜索“Wiener-Khinchin 定理”很有用。基本上它认为,如果你用傅里叶变换变换你的自相关函数,你会得到频域中的功率谱密度,这个功率谱被滤波器的频率响应过滤,结果就是输出的功率谱,然后您可以对其进行逆变换并获得输出的自相关。rx(0)将是输出的方差。它可能会根据滤波器的形式而改变,如果它是无源滤波器(在任何频率下没有大于单位的增益),您的方差将减小,因为方差是从并且如果您正在衰减频谱的某些部分,那么您正在减少该部分的能量。无论如何,希望它有所帮助。ππ

干杯