资源简介
本程序是仿真了一个卡尔曼滤波进行系统辨识的实验,把卡尔曼的递推过程写的很清晰,便于大家更好的理解卡尔曼滤波

代码片段和文件信息
clear all;clc;close all;
N = 10000;
h = [0.04-0.050.07-0.21-0.50.720.3600.210.030.07];
x = normrnd(011N);
d = conv(xh);
N1 = 25;
F = eye(N1);
K = eye(N1);
P = eye(N1);
W = zeros(N1N);
a = zeros(1N);
y = zeros(1N);
Q2 = 1e-4;
for n = N1:N
xn = x(n:-1:n-N1+1).‘;
a(n) = d(n) - xn.‘*W(:n-1);
Gn = K*conj(xn)/(xn.‘*K*conj(xn)+Q2);
W(:n) = W(:n-1) + Gn*a(n);
P = K - Gn*xn.‘*K;
K = P;
end
MSE = a;
J = a.*a;
for i = 1:length(a)
MSE(i) = mean(a(1:i));
end
figure(1);
subplot(221);
stem(h); title(‘未知的系统响应‘);
subplot(222);
stem(W(:N)); title(‘自适应滤波器‘)
subplot(223);
h(length(h)+1:length(W(:N))) = 0;
stem(h-W(:N).‘); title(‘h-W‘);
subplot(224);
plot(10*log10(abs(J(1:2000)))); title(‘学习曲线‘);
X0 = [x zeros(125)];
for n = 2:N
xn = X0(n+N1-1:-1:n).‘;
a(n) = d(n) - xn.‘*W(:n-1);
Gn = K*conj(xn)/(xn.‘*K*conj(xn)+Q2);
W(:n) = W(:n-1) + Gn*a(n);
P = K - Gn*xn.‘*K;
K = P;
end
MSE = a;
J = a.*a;
for i = 1:length(a)
MSE(i) = mean(a(1:i));
end
figure(2);
subplot(221);
stem(h); title(‘未知的系统响应‘);
subplot(222);
stem(W(:N)); title(‘自适应滤波器‘)
subplot(223);
h(length(h)+1:length(W(:N))) = 0;
stem(h-W(:N).‘); title(‘h-W‘);
subplot(224);
plot(10*log10(abs(J(1:2000)))); title(‘学习曲线‘);
% Q2 = exp(-(1:0.2:10));
% for i = 1:length(Q2)
% F = eye(N1);
% K = eye(N1);
% P = eye(N1);
% W = zeros(N1N);
% a = zeros(1N);
% y = zeros(1N);
% for n = N1:N
% xn = x(n:-1:n-N1+1).‘;
% a(n) = d(n) - xn.‘*W(:n-1);
% Gn = K*conj(xn)/(xn.‘*K*conj(xn)+Q2(i));
% W(:n) = W(:n-1) + Gn*a(n);
% P = K - Gn*xn.‘*K;
% K = P;
% end
% WW(i:) = W(:N).‘;
% ee(i:) = a;
% end
% MSE = ee;
% for j = 1:length(Q2)
% for i = 1:length(MSE(j:))
% MSE(ji) = mean(ee(j1:i));
% end
% end
% for n = 1:length(Q2)
% figure(3);
% subplot(221);
% stem(h); title(‘未知的系统响应‘);
% subplot(222);
% stem(WW(n:)); title(‘自适应滤波器‘)
% h(length(h)+1:length(W(:N))) = 0;
% subplot(223);
% stem(h-WW(n:)); title(‘h-W‘);
% subplot(224);
% plot(20*log10(abs(MSE(n:)))); title(‘遗忘因子对学习曲线的影响‘);
%
% end
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2394 2019-01-16 20:07 kalman_xitongbianshi.m
----------- --------- ---------- ----- ----
2394 1
- 上一篇:多普勒脉冲雷达回波仿真
- 下一篇:sharding-db按月分表分库
相关资源
- Wolfram Mathematica 矩阵初等变换函数(
- DV泵加罗茨泵独立控制系统PID.smart
- Xamarin forms 手势事件
- 200smart单按钮启停.smart
- cc2541 BLE DEMO
- 微软masm汇编编译器
- 黑苹果硬件兼容检测和查询软件
- LenovoTinkPad; Marker 5.01
- 基于xilinx FPGA的PCIe设计实战
- ManageEngine_OpManager_12.3安装手册+管理员
- SigmaPlot教程之各种柱形图的数据排列
- Crystal Impact Match!2.1.3 试用延长
- 基于MFC扩展CListCtrl子项显示图片并叠
- WINDOWS98启动盘镜像Win98.IMA
- 编程实现二维DCT变换
- CSMA/CD等动画演示加源代码
- 图像二值化
- 用FFT对信号进行频谱分析
- LzmaLib
- 一个简单的verilog编写的DMA IP CORE,和
- 硬盘秒解封
- 利用foxmail模板批量生成邮件
- ReportMachine 交叉报表 学生成绩表
- 汇编之masm6.11
- QRMaker.ocx控件
- Tone-Reservation
- QGA 量子遗传算法
- windows下制作macOS安装U盘,绝对简单好
- Bochs入门教程[操作系统第一步]
- PDSmaker 辩论赛赛制模板文件制作工具
评论
共有 条评论