【信号去噪】基于粒子滤波器与FBS、MAP平滑方法实现信号去噪附matlab代码

时间:2022-10-15 12:57:08

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

????个人主页:Matlab科研工作室

????个人信条:格物致知。

更多Matlab仿真内容点击????

​智能优化算法​​  ​​神经网络预测​​ ​​雷达通信 ​​ ​​无线传感器​

​信号处理​​ ​​图像处理​​ ​​路径规划​​ ​​元胞自动机​​ ​​无人机​

⛄ 内容介绍

在目前的工程信号或者是数据测试中,因为混杂着各种各样的干扰成分,所以在后续的信号分析以及处理中会出现比较大的误差或者是错误,这种情况严重影响了信号测试的质量.出于对测试信号中具有特征的信息数据进行快速并准确的提取的要求,对测试数据信号样本进行预处理有着重要的作用.在结合压力自动控制系统的基础上,使用粒子滤波器与FBS、MAP算法对测试样本进行平滑处理。

⛄ 部分代码

function [psi,delta,xmap,wstilda4,wstilda5]=mapsmoother(a,b,c,d,X20,xf,wftilda,y)

[n,T]=size(xf);

%Initialization

delta(:,1)=X20;

%Recursion

for t=2:T

    for j=1:n

        delta(j,t)=log(normpdf(y(t),my(c,xf(j,t)),d))+max(delta(:,t-1)+log(normpdf(xf(j,t),mx(a,xf(:,t-1)),b)));

        [h,psi(j,t)]=max(delta(:,t-1)+log(normpdf(xf(j,t),mx(a,xf(:,t-1)),b)));

    end

end

%Termination

[m,iter(T)]=max(delta(:,T));

xmap(T)=xf(iter(T),T);


for i=1:n

ws5(i,T)=wftilda(i,T)*weight(xmap(T),xf(:,T),1,wftilda(:,T),i,a,b);

end

wstilda5(:,T)=ws5(:,T)/sum(ws5(:,T));

%Backtracking

for t=T-1:-1:1

   iter(t)=psi(iter(t+1),t+1);

   xmap(t)=xf(iter(t),t);

   

for i=1:n

ws4(i,t)=wftilda(i,t)*weight(xmap(t+1),xf(:,t),1,wftilda(:,t),i,a,b);

ws5(i,t)=wftilda(i,t)*weight(xmap(t),xf(:,t),1,wftilda(:,t),i,a,b);

end

wstilda4(:,t)=ws4(:,t)/sum(ws4(:,t));

wstilda5(:,t)=ws5(:,t)/sum(ws5(:,t));

end

⛄ 运行结果

【信号去噪】基于粒子滤波器与FBS、MAP平滑方法实现信号去噪附matlab代码

⛄ 参考文献

[1]韩长军. 基于MATLAB的语音信号去噪方法应用[J]. 辽东学院学报:自然科学版, 2017, 24(1):6.

❤️ 关注我领取海量matlab电子书和数学建模资料
❤️部分理论引用网络文献,若有侵权联系博主删除