%%%%%%%%%%%%%%%%%%%%%%%%%LS算法%%%%%%%%%%%%%%%%%%%%
%%%刘建卫
%%%2009.6.9
N=2000;
M=1000;
interval=4*pi;
n=0:interval/N:interval-interval/N;
vn=randn(1,N);
yn=(1+cos(2*pi*n*0.5)).*cos(2*n*pi*2);
xn=yn+vn;
x=[xn,zeros(1,M)];
A=[;;];
for i=1:N+M-1
for j=1:M
if i>=j
A(i,j)=x(i-j+1);
else
A(i,j)=0;
end
end
end
figure
plot(n,yn),title('原始信号波形')
grid on
figure
plot(n,x(1:N)),title('叠加噪声以后的波形')
grid on
%%%%%%%自相关算法%%%%%%%%%%%
h=zeros(1,M);
Acovariance=[;;];
for i=M:N;
for j=1:M
Acovariance(i-M+1,j)=A(i,j);
end
end
AHcovariance=Acovariance';
d=[];
for i=M:N
d(i+1-M)=x(i)-vn(i);
end
h=inv(AHcovariance*Acovariance)*AHcovariance*d';
xLSc=conv(x,h);
figure
plot(n,xLSc(1:N)),title('用自相关算法得到的滤波波形')
grid on
%%%%%%%%协方差算法%%%%%%%%%%%%%%%%%%%
hs=zeros(1,M);
Aselfcorrelation=A;
ds=zeros(1,N+M-1);
for i=1:N
ds(i)=x(i)-vn(i);
end
AHselfcorrelation=Aselfcorrelation';
hs=inv(AHselfcorrelation*Aselfcorrelation)*AHselfcorrelation*ds';
xLSs=conv(x,hs);
figure
plot(n,xLSs(1:N),'r',n,yn,'.-'),title('N=1000,M=500时的滤波波形')
grid on
legend('LS滤波以后的波形','原始信号波形')
figure
plot(n,xLSs(1:N)-yn)
grid on
title('误差信号波形')
%%%%%%%%%%%%%%%%%%后向加窗算法%%%%%%%%%%%%%%%%%%%%%%%
hba=zeros(1,M);
dba=zeros(1,N);
Abaw=[;;];
for i=M:N+M-1
for j=1:M
Abaw(i-M+1,j)=A(i,j);
end
end
AHbaw=Abaw';
for i=M:N
dba(i-M+1)=yn(i);
end
hba=inv(AHbaw*Abaw)*AHbaw*dba';
xLSba=conv(hba,x);
figure
plot(n,xLSba(1:N)),title('用后向加窗算法滤波以后的波形')
grid on
%%%%%%%%%%%前加窗算法%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
hfa=zeros(1,M);
dfa=[];
Afaw=[;;];
for i=1:N
for j=1:M
Afaw(i,j)=A(i,j);
end
end
AHfaw=Afaw';
for i=1:N
dfa(i)=yn(i);
end
hfa=inv(AHfaw*Afaw)*AHfaw*dfa';
xLSfa=conv(hfa,x);
figure
plot(n,xLSfa(1:N)),title('用前向加窗算法滤波以后的波形')
grid on
%%%%%%几种滤波方法的比较%%%%%%%%%%%%%%%%
figure
plot(n,yn,'r',n,xLSc(1:N),n,xLSs(1:N),':m',n,xLSba(1:N),'--k',n,xLSfa(1:N),'-.g'),title('几种加窗方法的比较')
grid on
legend('原始信号波形','自相关算法','协方差算法','后向加窗算法','前向加窗算法')
%%%%%%%%%%前向加窗的QR解法%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[Q,R]=qr(Afaw);
Rfa=[;;];
Qfa=[;;];
for i=1:M
for j=1:M
Rfa(i,j)=R(i,j);
end
end
for i=1:N;
for j=1:M
Qfa(i,j)=Q(i,j);
end
end
QHfa=Qfa';
zfa=QHfa*yn';
hQRfa=inv(Rfa)*zfa;
xLSQRfa=conv(hQRfa,x);
figure
plot(n,xLSQRfa(1:N)),title('用前向加窗算法QR分解法滤波以后的波形')
grid on
%%%%%%%%%%%%%%两种解法的比较%%%%%%%%%%%%%%%%%%%%%
figure
plot(n,xLSfa(1:N),'-*',n,xLSQRfa(1:N),'k'),title('两种解法的比较')
grid on
legend('常规方程算法','QR分解算法')
%%%%%%%%%%%%%%%%%the end%%%%%%%%%%%%%%%%%%
LS.rar_LS加窗算法_加窗LS_滤波协方差_滤波算法比较_相关滤波
版权申诉
121 浏览量
2022-09-14
17:35:35
上传
评论
收藏 1KB RAR 举报
weixin_42653672
- 粉丝: 94
- 资源: 1万+
最新资源
- IMG_0694.GIF
- 基于图像的三维模型重建C++源代码+文档说明(高分课程设计)
- 基于聚焦法的工件立体测量方案,根据数据进行三维重建 使用HALCON处理图像,MATLAB拟合数据+源代码+数据集+效果图
- 锄战三国村 修改:货币使用不减 v1.10(2) 原创 (中文).apk
- 基于python实现的单目双目视觉三维重建+源代码+图像图片(高分课程设计)
- 基于C+++OPENCV的全景图像拼接源码(课程设计)
- 基于Python+OpenCV对多张图片进行全景图像拼接,消除鬼影,消除裂缝+源代码+文档说明+界面截图(高分课程设计)
- 基于C++实现的全景图像拼接源码(课程设计)
- 基于SIFT特征点提取和RASIC算法实现全景图像拼接python源码+文档说明+界面截图+详细注释(95分以上课程大作业)
- 基于matlab实现眼部判别的疲劳检测系统+源代码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈