标准偏差随直流信号幅度的变化而变化

信息处理 matlab 噪音 过滤 信噪比 统计数据
2022-02-21 04:49:43

我试图理解下面的代码。我正在抽取一个大样本,以便对标准偏差进行良好的估计。

N = 25;
h1 = ones(1, N)./N;
L = 1000000;
s = ones(1, L);
n = 0.1*randn(1, L);
x = s + n;
stdx = std(x);
y = filter(h1,1,x);
stdy = std(y);

这段代码会给我stdx = 0.1stdy = 0.02,这是预期的,因为因为我们实际上是在做一个平均过滤器。σy=σx/N

但是给信号更多的幅度 s = 10*ones(1, L);并运行上面相同的代码给了我一个stdy = 0.0344. s由于信号没有方差,这两种情况下的标准偏差不应该相同吗?

1个回答

我相信你的直觉是正确的。

您使用的滤波器是直流增益为 1 的低通滤波器。没有看到滤波操作的输出,我怀疑您看到了滤波器中初始条件的影响:从 0 到 1 在您的第一个实例比第二个实例从 0 到 10 需要更少的样本。

要对此进行测试,请尝试获取已过滤信号的中间,然后看看是什么L/2std(y(L/4:3*L/4)