使用 MATLAB 求维纳滤波器的相关矩阵
信息处理
matlab
过滤器
离散信号
维纳滤波器
2022-02-21 11:16:55
1个回答
这是 MATLAB 中维纳滤波器的一个简单示例。首先,输入数据,表示为。请注意,我们只考虑在时刻个时间样本的扩展可以通过将这些向量连接在一起来合并更多时域样本以获得矩阵(即每个时刻的向量)。但是对于单时刻的情况,假设是具有一些输入均值和方差的 IID 高斯,那么这个输入向量可以在 MATLAB 中生成为:
x = sqrt(inputVariance)*randn(10, 1) + inputMean;
10来自您的问题描述。现在你有一些示例输入数据,你可以继续计算相关矩阵,因为你定义了 :
R = x*x'/size(x, 2); % size(x, 2) = # of time domain samples
由于我们的示例输入数据很容易理解(高斯),我们可以知道在相关矩阵中期望找到什么。我们生成的输入数据是不相关的,因此非对角元素应该很小,对角元素应该接近方差。在 MATLAB 中查看这些矩阵的一种有用方法是使用以下图像作为图像:
figure
imagesc(R)
但相反,您可能会看到更接近下一个数字的东西。这是因为您只采集了一个时域样本!没有足够的样本来从相关矩阵中出现统计特性。事实上,它是对真实相关矩阵的估计,您不能指望仅使用一个样本的估计器会那么好(第一个图像是按照这些步骤生成的,但x = randn(10, 100)用于生成 100 个时域样本)。
其它你可能感兴趣的问题


