【信号去噪】基于Sage-Husa自适应卡尔曼滤波器实现海浪磁场噪声抑制及海浪磁场噪声的产生附matlab代码

简介: 【信号去噪】基于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 运行结果

image.gif编辑

image.gif编辑

4 参考文献

[1]王福军, 丁小燕, 王前,等. 自适应强跟踪Sage-Husa卡尔曼滤波器载波环设计[J]. 电光与控制, 2019, 26(10):5.

[1]钱华明, 柏明明, 钱林琛,等. 一种海洋磁力仪海浪磁场噪声实时抑制方法:, CN107576989A[P]. 2018.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

相关文章
|
16天前
|
算法 vr&ar
基于自适应波束成形算法的matlab性能仿真,对比SG和RLS两种方法
```markdown - MATLAB2022a中比较SG与RLS自适应波束成形算法。核心程序实现阵列信号处理,强化期望信号,抑制干扰。RLS以其高效计算权重,而SG则以简单和低计算复杂度著称。[12345] [6666666666] [777777] ```
|
1月前
|
算法 调度 决策智能
基于自适应遗传算法的车间调度matlab仿真,可以任意调整工件数和机器数,输出甘特图
这是一个使用MATLAB2022a实现的自适应遗传算法解决车间调度问题的程序,能调整工件数和机器数,输出甘特图和适应度收敛曲线。程序通过编码初始化、适应度函数、遗传操作(选择、交叉、变异)及自适应机制进行优化,目标如最小化完工时间。算法在迭代过程中动态调整参数,以提升搜索效率和全局优化。
|
1月前
|
算法
基于ADM自适应增量调制算法的matlab性能仿真
该文主要探讨基于MATLAB的ADM自适应增量调制算法仿真,对比ADM与DM算法。通过图表展示调制与解调效果,核心程序包括输入输出比较及SNR分析。ADM算法根据信号斜率动态调整量化步长,以适应信号变化。在MATLAB中实现ADM涉及定义输入信号、初始化参数、执行算法逻辑及性能评估。
|
18天前
|
算法
m基于GA遗传优化的高斯白噪声信道SNR估计算法matlab仿真
**MATLAB2022a模拟展示了遗传算法在AWGN信道中估计SNR的效能。该算法利用生物进化原理全局寻优,解决通信系统中复杂环境下的SNR估计问题。核心代码执行多代选择、重组和突变操作,逐步优化SNR估计。结果以图形形式对比了真实SNR与估计值,并显示了均方根误差(RMSE),体现了算法的准确性。**
19 0
基于高通滤波器的ECG信号滤波及心率统计matlab仿真
**摘要:** 使用MATLAB2022a,实施高通滤波对ECG信号预处理,消除基线漂移,随后分析心率。系统仿真展示效果,核心代码涉及IIR HPF设计,如二阶滤波器的差分方程。通过滤波后的信号,检测R波计算RR间期,从而得到心率。滤波与R波检测是心电生理研究的关键步骤,平衡滤波性能与计算资源是设计挑战。
|
27天前
|
机器学习/深度学习 算法 语音技术
基于语音信号MFCC特征提取和GRNN神经网络的人员身份检测算法matlab仿真
**语音识别算法概览** MATLAB2022a中实现,结合MFCC与GRNN技术进行说话人身份检测。MFCC利用人耳感知特性提取语音频谱特征,GRNN作为非线性映射工具,擅长序列学习,确保高效识别。预加重、分帧、加窗、FFT、滤波器组、IDCT构成MFCC步骤,GRNN以其快速学习与鲁棒性处理不稳定数据。适用于多种领域。
|
1月前
|
资源调度 SoC
基于UKF无迹卡尔曼滤波的电池Soc估计matlab仿真
**摘要:** 使用MATLAB2022a,基于UKF的电池SOC估计仿真比较真实值,展示非线性滤波在电动车电池管理中的效用。电池电气模型描述电压、电流与SoC的非线性关系,UKF利用无迹变换处理非线性,通过预测和更新步骤实时估计SoC,优化状态估计。尽管UKF有效,但依赖准确模型参数。
|
2月前
|
数据可视化 数据库
matlab中使用VMD(变分模态分解)对信号去噪
matlab中使用VMD(变分模态分解)对信号去噪
matlab中使用VMD(变分模态分解)对信号去噪
|
2月前
|
传感器 运维 机器人
matlab实现扩展卡尔曼滤波(EKF)进行故障检测
matlab实现扩展卡尔曼滤波(EKF)进行故障检测
|
2月前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度

热门文章

最新文章