【信号去噪】基于Sage-Husa自适应卡尔曼滤波器实现海浪磁场噪声抑制及海浪磁场噪声的产生附matlab代码
1 内容介绍
一种海洋磁力仪海浪磁场噪声实时抑制方法,属于海洋地磁场探测领域.包括以下步骤:步骤一:启动海洋磁力仪,读取海洋地磁传感器的输出数据作为量测量;步骤二:建立系统状态方程和量测方程;步骤三:在t_(k1)时刻利用SageHusa自适应卡尔曼滤波器估计出t_k时刻的地磁总场值,并对系统噪声阵Q和量测噪声阵R进行更新和修正;步骤四:海洋磁力仪运行时间为M,若t_k=M,则保存数据,海洋磁力仪完成测量工作;若t_k<M,则回代Q和R更新值,返回步骤三继续估计.本发明解决了海浪磁场噪声对海洋磁力仪进行高精度海洋磁场探测时的扰动问题,即使在极端海况下也能保证海洋磁力仪具有较高的探测精度.
2 仿真代码
%%weaver模型模拟噪声 第二组磁异常数据
% sagehusa自适应卡尔曼与传统卡尔曼的对比(直观对比和残差对比)
clc;clear
Base_Value = 49600; %基值
ab_single = ([49599.47
49597.37
49598.05
49597.9
49594.27
49584.91
49569.71
49541.43
49563.28
49663.24
49676.9
49673.31
49669.99
49666.46
49658.54
49647.31
49634.22
49627.6
49622.01
49618.89
49616.64
49613.81
49613.16
49613.77
]-Base_Value)./56 + Base_Value;
N = 500; %噪声源点数
N1 = 30; %噪声叠加次数
%%%%海浪噪声配置%%%%
z = 10; %定深度
x = 10; %定x
t = linspace(0,200,N); % 采样率:f = 1/(200/500) = 2.5Hz
Noise = zeros(1,N);
F = 0.488; %地磁场强度
I = pi/4; %磁偏角
Sita = 0;
a = 100; %cm 波浪高度
g = 980; %cm/s2
sigama = 4*10^(-11); %emu 电导率
w = 10*(0.314 + 0.314*rand(1,N1)); %w 0.314~0.628 角频率
m =(w.^2)/g; %波数
Bata = (4*pi*sigama*w)./(m.^2);
C = cos(I)*cos(Sita);
S = sin(I);
A = a*m*F*(C*i + S);
%%%%%%%%%%%%% z>0时遭受叠加 %%%%%%%%%%%%%%%%%
for j = 1:1:N1
Hx = (i*Bata(j)*A(j)/4)*(2*m(j)*z-1)*exp(i*w(j)*t-i*m(j)*x-m(j)*z);
Hz = (Bata(j)*A(j)/4)*(2*m(j)*z+1)*exp(i*w(j)*t-i*m(j)*x-m(j)*z);
H11 = Hx*C + Hz*S; %总磁场强度
Noise = Noise + H11; %叠加
end
%%%%%%%%%%%理想信号配置%%%%%%%%%%%%%%%
single = Base_Value*ones(1,N);
single(1,N/2:N/2+size(ab_single)-1) = ab_single;
%%%%%%%%%%%%信号加噪%%%%%%%%%%%%%%%%%%
sum_single = 6500000*Noise/56 + single;
Z = sum_single;
% %%%%%%%%%%%%卡尔曼滤波器配置%%%%%%%%%%%%
% R = 10*std(sum_single)^2; %测量噪声
% Q = 0.025*R; %系统噪声
% p(1) = 10; %增益初值
% kalman_out(1) = Base_Value; %卡尔曼初值的选择要合理,大致落在数据区间内
%
% for j = 2:1:N
% kalman_out1(j) = kalman_out(j-1); %预测状态
% p1(j) = p(j-1) + Q; %预测估计协方差
%
% kg(j) = p1(j) / (p1(j) + R); % 最优卡尔曼增益
% kalman_out(j) = kalman_out1(j) + kg(j) * (sum_single(j) - kalman_out1(j)); %更新状态估计
% p(j) = (1 - kg(j)) * p1(j); %更新协方差估计
% end
%%%%%%%%%%%%sage-husa卡尔曼滤波器配置%%%%%%%%%%%%%
R1(1) = 0.7536; %测量噪声
Q1(1) = 0.0151; %系统噪声
P(1) = 1.5; %增益初值
q(1) = 0; %Q标准差初值
r(1) = 0; %R标准差初值
v(1) = 0;
X(1) = Base_Value; %卡尔曼初值的选择要合理,大致落在数据区间内
b = 0.95; %遗忘因子
for j = 2:1:N
d = (1-b)/(1-b^(j+1));
% kalman_out1(j) = kalman_out(j-1) + q(j-1); %预测状态
X_(j) = X(j-1) ; %预测状态 + q(j-1)
P_(j) = P(j-1) + Q1(j-1); %预测估计协方差
r(j) = (1-d)*r(j-1) + d*(Z(j)-X_(j));
% v(j) = sum_single(j)-kalman_out1(j) - r(j);
v(j) = Z(j) - X_(j);
% R(j) = (1-d)*R(j-1) + d*(v(j)*v(j) - p1(j));
R1(j) = (1-d)*R1(j-1);
K(j) = P_(j) / (P_(j) + R1(j-1)); % 最优卡尔曼增益
X(j) = X_(j) + K(j) * (Z(j) - X_(j)); %更新状态估计
P(j) = (1 - K(j)) * P_(j); %更新协方差估计
q(j) = (1-d)*q(j-1) + d*(X(j) - X(j-1));
% Q(j) = (1-d)*Q(j-1) + d*(kg(j)*kg(j)*v(j)*v(j) + p(j) - p(j-1) - 2*kg(j)*kg(j)*R(j) - 2*kg(j)*kg(j)*p1(j) + 2*p1(j)*kg(j));
Q1(j) = (1-d)*Q1(j-1);
end
% V_1 = kalman_out - single; %Kalman输出残差
% V_2 = X - single; %SageHusa输出残差
% figure(1);
% plot(t,sum_single,'g');
% hold on;
figure(2);
plot(t,R1,'g');
axis([0 200 -0.8 0.8]);
title('R');
figure(3);
plot(t,Q1,'r')
axis([0 200 -0.016 0.016]);
title('Q');
%%%%%%%%%%%%%%%%%残差数据输出到文件中%%%%%%%%%%%%%%%%%
% fid = fopen('SageHusa残差数据.txt','wt');
% fprintf(fid,'%g\n',abs(V_1(4:500)));
% fclose(fid);
%
% fid1 = fopen('常规卡尔曼残差数据.txt','wt');
% fprintf(fid1,'%g\n',abs(V_2(4:500)));
% fclose(fid1);
%
% fid2 = fopen('滤波前噪声.txt','wt');
% fprintf(fid2,'%g\n',6500000*Noise/56);
% fclose(fid2);
%
% fid3 = fopen('卡尔曼滤波后噪声.txt','wt');
% fprintf(fid3,'%g\n',V_1);
% fclose(fid3);
%
% fid4 = fopen('SageHusa滤波后噪声.txt','wt');
% fprintf(fid4,'%g\n',V_2);
% fclose(fid4);
%
% fid4 = fopen('残差时间轴.txt','wt');
% fprintf(fid4,'%g\n',t(4:500));
% fclose(fid4);
%%%%%%%%%%%%%%%%%%%%%%% END %%%%%%%%%%%%%%%%%%%%%%%%%%%
3 运行结果
4 参考文献
[1]王福军, 丁小燕, 王前,等. 自适应强跟踪Sage-Husa卡尔曼滤波器载波环设计[J]. 电光与控制, 2019, 26(10):5.
[1]钱华明, 柏明明, 钱林琛,等. 一种海洋磁力仪海浪磁场噪声实时抑制方法:, CN107576989A[P]. 2018.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
【信号去噪】基于Sage-Husa自适应卡尔曼滤波器实现海浪磁场噪声抑制及海浪磁场噪声的产生附matlab代码相关推荐
- 信号去噪,基于Sage-Husa自适应卡尔曼滤波器实现海浪磁场噪声抑制及海浪磁场噪声的产生附Matlab代码
信号去噪,基于Sage-Husa自适应卡尔曼滤波器实现海浪磁场噪声抑制及海浪磁场噪声的产生附Matlab代码 信号处理中的一个关键问题就是信号去噪.在实际应用中,很多信号可能会受到环境噪声的干扰,这些 ...
- 【故障诊断】基于粒子群和多元宇宙算法优化最大相关峭度解卷积(MCKD)实现信号处理附matlab代码
1 内容介绍 1.1研究背景及意义 制造业的发展支撑着国家经济的稳定快速发展,是人民生活幸福和国家局势 稳定的保障.发展制造业离不开科技创新.加强制造业创新.推动产业转型升级是 提升我国国际地位.实现 ...
- 【图像重建】基于布雷格曼迭代(bregman alteration)算法集合ART算法实现CT图像重建附matlab代码
1 简介 Fluorescence diffuse optical tomography (fDOT) is a noninvasive imaging technique that makes it ...
- 【回归预测】基于TPA-LSTM(时间注意力注意力机制长短期记忆神经网络)实现数据多输入单输出回归预测附matlab代码
1 内容介绍 随着当今时代科技不断地飞速发展,科技信息也在急剧增加,收集并挖掘分析这些来源多样化的科技信息,有助于推动科技的发展.而预测作为一种重要的数据研究方法,在各个行业各个领域都有着广泛的应用. ...
- 【机械】基于广义Hoek-Brown实现应变软化岩体GRC曲线及围岩位移应力塑性区绘制附matlab代码
1 内容介绍 基于岩体的强度参数随着最大塑性主应变的增加而逐渐演化这一力学行为,采用广义Hoek-Brown(H-B)强度准则,以最大塑性主应变作为应变软化参数,假设广义Hoek-Brown强度准则中 ...
- 优化算法 | 基于粒子群优化算法的Bp神经网络预测21~22赛季NBA总冠军(附MATLAB代码)
文章目录 前言 一.数据准备 二.基于PSO的Bp神经网络预测 1.粒子表达方式 2.目标函数 3.粒子速度和位置的更新 三.MATLAB代码 四.预测结果 五.代码获取方式 总结 近期你可能错过了的 ...
- 【路径规划】基于A星算法结合floyd和动态窗口法实现机器人栅格地图路径规划附matlab代码
1 简介 针对移动机器人在静态环境中的特点,为了提高路径规划效率和精度,设计了A~*算法与Floyd算法结合的路径规划.我们根据实际环境,在栅格地图的基础上,利用A~*算法进行初步路径规划,找到了一条 ...
- 【智能优化算法】基于分段权重和变异反向学习的蝴蝶优化算法求解单目标优化问题附matlab代码
1 简介 针对原始蝴蝶优化算法容易陷入局部最优解,收敛速度慢及寻优精度低等问题,提出分段权重和变异反向学习的蝴蝶优化算法.通过飞行引领策略来矫正邻域内蝴蝶的自身飞行,降低盲目飞行,增强算法跳出局部最优 ...
- 【多式联运】基于帝企鹅AFO 粒子群PSO 遗传GA算法求解不确定多式联运路径优化问题附matlab代码...
✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信.
- 基于最小二乘支持向量机(LS-SVM)进行分类、函数估计、时间序列预测和无监督学习附Matlab代码
✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信.
最新文章
- 一个简洁OKR是成功的关键因素
- python与shell校验IP地址合法性
- python简单的监控脚本-利用socket、psutil阻止远程主机运行特定程序
- postman数据保存在哪里_Postman 历史记录导出的解决方案
- java http 1.1_java11新特性HttpClient
- 作者:董诚,华中科技大学计算机科学与技术学院硕士生。
- input type=checkbox 前面有个可供打钩的小方框 HTML DOM Checkbox 对象
- Powershell创建数组
- 第二届360杯全国大学生信息安全技术大赛_几道小题解析
- html 上标下标 特殊字符等
- 大数据 数据平台方案评估
- port ‘pi_data‘ not found in module ‘dcfifo‘
- 表格一分为二html,如何在excel表中的将一个格子一分为二
- 悟空活动中台 - 基于 WebP 的图片高性能加载方案
- 【读书笔记《凤凰架构》- 构架可靠的大型分布式系统.周志明】(一)
- 彻底理解并解决服务器出现大量TIME_WAIT - 第三篇
- [DBNETLIB][ConnectionOpen (Connect()).]SQL Server 不存在或拒绝访问
- TANX英文翻译软件测试工资,ktanx-jdbc 1.0.5发布,增加自定义sql解析及部分方法修改...
- 数据分析-1.必备的三大能力
- 如何通过 Matplotlib 绘制动画及保存 GIF 图片?
热门文章
- Oracle 11.2.0.4.0 安装包校验
- Windows下运行Makefile
- wnmp php7,wnmp环境php7与其他php版本共存
- 圣诞来了 h5游戏风靡朋友圈了
- H5+CSS Low poly风格动效圣诞树分享
- lae界面开发工具入门之介绍九--lua脚本组件篇
- 阿里面试:设计一个电商平台积分兑换系统!
- 小象学院知识图谱学习笔记(一)
- [Jenkins]如何自动停止超时任务?
- 开机黑屏显示html,电脑开机黑屏只显示光标怎么办?来看看几种原因分析及解决方法!...