% clear all;
close all
N=200;
mmseA1=zeros(1,500);
mmseA2=zeros(1,500);
mmseA3=zeros(1,500);
mmseA4=zeros(1,500);
mmseA5=zeros(1,500);
mmseA6=zeros(1,500);
mmseA7=zeros(1,500);
mmseA8=zeros(1,500);
mmseA9=zeros(1,500);
for j=1:N;
randn('state',sum(500*clock));
xs=randn(1,500); % 输入信号序列 均值为0,方差为1
%例如,产生均值为0.6,方差为0.1的一个5*5的随机数方式如下:x = .6 + sqrt(0.1) * randn(5)
xn=0.2*randn(1,500);%均值为0,方差为0.04
% 信号滤波
W66=[0.8 0.5];
xin = xs'; % 输入信号序列
M=2; % 滤波器的阶数
W1=zeros(M,length(xn));
W2=zeros(M,length(xn));
W3=zeros(M,length(xn)); % 每一行代表一个加权参量,每一列代表-次迭代,初始为0
W4=zeros(M,length(xn)); % 每一行代表一个加权参量,每一列代表-次迭代,初始为0
W5=zeros(M,length(xn));
W6=zeros(M,length(xn)); % 每一行代表一个加权参量,每一列代表-次迭代,初始为0
W7=zeros(M,length(xn));
W8=zeros(M,length(xn)); % 每一行代表一个加权参量,每一列代表-次迭代,初始为0
W9=zeros(M,length(xn));
en1=zeros(length(xn),1);
en2=zeros(length(xn),1);
en3=zeros(length(xn),1);
en4=zeros(length(xn),1);
en5=zeros(length(xn),1);
en6=zeros(length(xn),1);
en7=zeros(length(xn),1);
en8=zeros(length(xn),1);
en9=zeros(length(xn),1);
dn=zeros(length(xn),1);
a=zeros(length(xn),1);
b=zeros(length(xn),1);
c=zeros(length(xn),1);
en1(1)=W66*xin(2:-1:1)+xn(1);
en2(1)=W66*xin(2:-1:1)+xn(1);
en3(1)=W66*xin(2:-1:1)+xn(1); % 误差序列,
en4(1)=W66*xin(2:-1:1)+xn(1); % 误差序列,
en5(1)=W66*xin(2:-1:1)+xn(1); % 误差序列,
en6(1)=W66*xin(2:-1:1)+xn(1); % 误差序列,
en7(1)=W66*xin(2:-1:1)+xn(1); % 误差序列,
en8(1)=W66*xin(2:-1:1)+xn(1); % 误差序列,
en9(1)=W66*xin(2:-1:1)+xn(1); % 误差序列,
mse1=zeros(1,length(xn));
mse2=zeros(1,length(xn));
mse3=zeros(1,length(xn));
mse4=zeros(1,length(xn));
mse5=zeros(1,length(xn));
mse6=zeros(1,length(xn));
mse7=zeros(1,length(xn));
mse8=zeros(1,length(xn));
mse9=zeros(1,length(xn));
mu1=zeros(length(xn),1);mu1(2)=0.2;
mu2=zeros(length(xn),1);mu2(2)=0.2;
mu3=zeros(length(xn),1);mu3(2)=0.2;
mu4=zeros(length(xn),1);mu4(2)=0.2;
mu5=zeros(length(xn),1);mu5(2)=0.2;
mu6=zeros(length(xn),1);mu6(2)=0.2;
mu7=zeros(length(xn),1);mu7(2)=0.2;
mu8=zeros(length(xn),1);mu8(2)=0.2;
mu9=zeros(length(xn),1);mu9(2)=0.2;
p1=zeros(length(xn),1);p1(1)=0.2;
p2=zeros(length(xn),1);p2(1)=0.2;
p3=zeros(length(xn),1);p3(1)=0.2;
p4=zeros(length(xn),1);p4(1)=0.2;
p5=zeros(length(xn),1);p5(1)=0.2;
p6=zeros(length(xn),1);p6(1)=0.2;
p7=zeros(length(xn),1);p7(1)=0.2;
p8=zeros(length(xn),1);p8(1)=0.2;
p9=zeros(length(xn),1);p9(1)=0.2;
% a1=0.003;a2=0.005;a3=0.1;a4=0.2;
% b1=0.1;b2=0.5;b3=1;b4=5;
% a1=0.003;a2=0.005;a3=0.1;a4=0.5;
%% 参数a、b
a1=0.1;a2=1;a3=10;
b1=0.3;b2=1;b3=5;
d1=2;d2=2;d3=2;d4=2;
e1=2;e2=2;e3=2;e4=2;%e大,d小则收敛快,跟踪好,稳态误差小,但抗干扰差,e的影响要大于d
% 迭代计算,收敛特性,d2=1;e1=4;抗噪声特性d2=2;e1=0.5;
for k = M:length(xn); % 第k次迭代
x = xin(k:-1:k-M+1); % 滤波器M个抽头的输入
y1 = W1(:,k).'* x;
y2 = W2(:,k).'* x;
y3 = W3(:,k).'* x; % 滤波器的输出,
y4 = W4(:,k).'* x; % 滤波器的输出,
y5 = W5(:,k).'* x; % 滤波器的输出,
y6 = W6(:,k).'* x;
y7 = W7(:,k).'* x; % 滤波器的输出,
y8 = W8(:,k).'* x; % 滤波器的输出,
y9 = W9(:,k).'* x; % 滤波器的输出,
% if k==500
% W6=[0.4 0.2];
% end
dn(k)=W66*xin(k:-1:k-M+1)+xn(k);
en1(k) = dn(k)-y1;
en2(k) = dn(k)-y2;
en3(k) = dn(k)-y3; % 第k次迭代的误差
en4(k) = dn(k)-y4; % 第k次迭代的误差
en5(k) = dn(k)-y5; % 第k次迭代的误差
en6(k) = dn(k)-y6;
en7(k) = dn(k)-y7; % 第k次迭代的误差
en8(k) = dn(k)-y8; % 第k次迭代的误差
en9(k) = dn(k)-y9; % 第k次迭代的误差
%--------------------------------------------------------------------------------
mu1(k)=a1*abs(sinh(en1(k))).*(1+abs(en1(k)+b1));
mu2(k)=a1*abs(sinh(en2(k))).*(1+abs(en2(k)+b2));
mu3(k)=a1*abs(sinh(en3(k))).*(1+abs(en3(k)+b3));
mu4(k)=a2*abs(sinh(en4(k))).*(1+abs(en4(k)+b1));
mu5(k)=a2*abs(sinh(en5(k))).*(1+abs(en5(k)+b2));
mu6(k)=a2*abs(sinh(en6(k))).*(1+abs(en6(k)+b3));
mu7(k)=a3*abs(sinh(en7(k))).*(1+abs(en7(k)+b1));
mu8(k)=a3*abs(sinh(en8(k))).*(1+abs(en8(k)+b2));
mu9(k)=a3*abs(sinh(en9(k))).*(1+abs(en9(k)+b3));
if mu1(k)>0.2
mu1(k)=0.2;
end
if mu1(k)<0
mu1(k)=0;
end
%%---------------------
if mu2(k)>0.2
mu2(k)=0.2;
end
if mu2(k)<0
mu2(k)=0;
end
%%---------------------
if mu3(k)>0.2
mu3(k)=0.2;
end
if mu3(k)<0
mu3(k)=0;
end
%%---------------------
if mu4(k)>0.2
mu4(k)=0.2;
end
if mu4(k)<0
mu4(k)=0;
end
%%---------------------
if mu5(k)>0.2
mu5(k)=0.2;
end
if mu5(k)<0
mu5(k)=0;
end
if mu5(k)>0.2
mu5(k)=0.2;
end
%%---------------------
if mu6(k)>0.2
mu6(k)=0.2;
end
if mu6(k)<0
mu6(k)=0;
end
%%---------------------
if mu7(k)>0.2
mu7(k)=0.2;
end
if mu7(k)<0
mu7(k)=0;
end
%%---------------------
if mu8(k)>0.2
mu8(k)=0.2;
end
if mu8(k)<0
mu8(k)=0;
end
%%---------------------
if mu9(k)>0.2
mu9(k)=0.2;
end
if mu9(k)<0
mu9(k)=0;
end
%%---------------------
%均方误差
mse1(k)=en1(k).^2;
mse2(k)=en2(k).^2;
mse3(k)=en3(k).^2;
mse4(k)=en4(k).^2;
mse5(k)=en5(k).^2;
mse6(k)=en6(k).^2;
mse7(k)=en7(k).^2;
mse8(k)=en8(k).^2;
mse9(k)=en9(k).^2;
% 滤波器权值计算的迭代式
W1(:,k+1)=W1(:,k)+mu1(k)*en1(k)*x;
W2(:,k+1)=W2(:,k)+mu2(k)*en2(k)*x;
W3(:,k+1)=W3(:,k)+mu3(k)*en3(k)*x;
W4(:,k+1)=W4(:,k)+mu4(k)*en4(k)*x;
W5(:,k+1)=W5(:,k)+mu5(k)*en5(k)*x;
W6(:,k+1)=W6(:,k)+mu6(k)*en6(k)*x;
W7(:,k+1)=W7(:,k)+mu7(k)*en7(k)*x;
W8(:,k+1)=W8(:,k)+mu8(k)*en8(k)*x;
W9(:,k+1)=W9(:,k)+mu9(k)*en9(k)*x;
end
mmseA1=mmseA1+mse1;
mmseA2=mmseA2+mse2;
mmseA3=mmseA3+mse3;
mmseA4=mmseA4+mse4;
mmseA5=mmseA5+mse5;
mmseA6=mmseA6+mse6;
mmseA7=mmseA7+mse7;
mmseA8=mmseA8+mse8;
mmseA9=mmseA9+mse9;
end
mmseA1=mmseA1/N;mmseA11=mean(mmseA1);
mmseA2=mmseA2/N;mmseA22=mean(mmseA2);
mmseA3=mmseA3/N;mmseA33=mean(mmseA3);
mmseA4=mmseA4/N;mmseA44=mean(mmseA4);
mmseA5=mmseA5/N;mmseA55=mean(mmseA5);
mmseA6=mmseA6/N;mmseA66=mean(mmseA6);
mmseA7=mmseA7/N;mmseA77=mean(mmseA7);
mmseA8=mmseA8/N;mmseA88=mean(mmseA8);
mmseA9=mmseA9/N;mmseA99=mean(mmseA9);
bu = 1:length(xn);
%plot(x,y1,'.k',x,y2,':g',x,y3,'r',x,y4,'-.b');
% figure;semilogy(bu,mmseA1,'-.k',bu,mmseA2,':k',
LMS-Matlab.rar_LMS 变步长_LMS步长_变步长LMS算法_变步长算法_步长
版权申诉
5星 · 超过95%的资源 34 浏览量
2022-09-23
19:19:13
上传
评论 2
收藏 6KB RAR 举报
我虽横行却不霸道
- 粉丝: 72
- 资源: 1万+
最新资源
- 筷手引流工具.apk
- 论文(最终)_20240430235101.pdf
- 基于python编写的Keras深度学习框架开发,利用卷积神经网络CNN,快速识别图片并进行分类
- 最全空间计量实证方法(空间杜宾模型和检验以及结果解释文档).txt
- 5uonly.apk
- 蓝桥杯Python组的历年真题
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 前端开发技术实验报告:内含4四实验&实验报告
- Highlight Plus v20.0.1
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
评论6