卡尔曼滤波信噪比matlab代码
时间: 2024-04-23 14:20:22 浏览: 211
卡尔曼滤波MATLAB代码
卡尔曼滤波是一种常用的状态估计算法,用于从带有噪声的测量数据中估计出系统的状态。下面是一个简单的卡尔曼滤波的MATLAB代码示例:
```matlab
% 系统模型
A = 1; % 状态转移矩阵
H = 1; % 观测矩阵
Q = 0.1; % 状态噪声方差
R = 1; % 观测噪声方差
% 初始化
x = 0; % 初始状态估计
P = 1; % 初始状态协方差估计
% 测量数据
z = [1.2, 1.8, 2.4, 3.2]; % 观测数据
% 卡尔曼滤波
for i = 1:length(z)
% 预测
x_pred = A * x;
P_pred = A * P * A' + Q;
% 更新
K = P_pred * H' / (H * P_pred * H' + R);
x = x_pred + K * (z(i) - H * x_pred);
P = (eye(size(P)) - K * H) * P_pred;
% 输出结果
fprintf('第%d次观测后的状态估计值:%f\n', i, x);
end
```
这段代码实现了一个简单的一维卡尔曼滤波器,通过观测数据`z`来估计系统的状态。其中,`A`是状态转移矩阵,`H`是观测矩阵,`Q`是状态噪声方差,`R`是观测噪声方差。代码中的循环用于逐步更新状态估计值,并输出每次观测后的状态估计结果。
阅读全文