%%
%参数设置
clear all
close all
a1=0.1; %AR参数
a2=-0.8;
mu=0.05; %步长
Du=1; %u(n)的方差
r0=Du; %计算R矩阵
r1=-a1/(1+a2)*Du;
r2=(-a2+a1^2/(1+a2))*Du;
Dv=r0+a1*r1+a2*r2 %计算v的方差
M=2; %滤波器的阶数
N=1000; %样本数
N1=10;
n=100;
b=[1,a1,a2];
u=zeros(1,N1+N);
d=zeros(1,N);
e1=zeros(1,N);
Ee=zeros(1,N);
W1=zeros(M,N+1);
eps1=zeros(1,N+1); %抽头权值误差
eps2=zeros(1,N+1);
%%
%100次独立试验
for i=1:n
v=sqrt(Dv)*randn(1,N1+N); %产生白噪声
u=filter(1,b,v); %用v产生u(n)
d=u(N1+1:N+N1); %产生期望
x=u(N1-M+1:N+N1);
[y0,e0,W0]=LMS(x,d,M,N,mu);
e1=e1+e0; %期望与输出之间的误差
W1=W0+W1;
Ee=Ee+e0.^2; % 均方误差
eps1=eps1-a1-W0(1,:); % w1的误差
eps2=eps2-a2-W0(2,:); % w2的误差
end
figure(2)
subplot(3,1,1);
plot(abs(fft(xcorr(e1(400:450)/n))));
grid on;
xlabel('频率');ylabel('幅度');title('f(n)的功率谱曲线');
subplot(3,1,2);
plot(abs(fft(xcorr(eps1/n))));
grid on;
xlabel('频率');ylabel('幅度');title('eps1的误差的功率谱曲线');
subplot(3,1,3);
plot(abs(fft(xcorr(eps2/n))));
grid on;
xlabel('频率');ylabel('幅度');title('eps2的误差的功率谱曲线');
%%
%R矩阵分解
R=[r0 r1;r1 r0];
[V,D]=eig(R) %计算R矩阵的特征值和特征向量
if D(1,1)<D(2,2) %比较特征值的大小
c=2;d=1;
else
c=1;d=2;
end
lamda1=D(c,c);
q1=V(:,c);
lamda2=D(d,d);
q2=V(:,d);
Q=[q1 q2]; %Q矩阵
v0=Q'*[-a1;-a2]; %小步长理论中引入的v0
%%
%计算W的理论值
v1=zeros(1,N);
v2=zeros(1,N);
Wt=zeros(M,N);
for i=1:N
v1(i)=v0(1)*(1-mu*lamda1)^i;
v2(i)=v0(2)*(1-mu*lamda2)^i;
Wt(:,i)=[-a1;-a2]-Q*[v1(i);v2(i)];
end
figure(1)
plot(Wt(1,:),'k');
grid on;
hold on;
plot(W1(1,2:N+1)./n,'r');
hold on;
plot(Wt(2,:),'b');
hold on;
plot(W1(2,2:N+1)./n,'r');
xlabel('N');ylabel('W');
legend('w1理论','w1实际','w2理论','w2实际');
%%
%计算集平均学习曲线和理论学习曲线
J=zeros(1,N);
for i=1:N %计算二阶AR过程的理论学习曲线
J(i)=Dv+mu*Dv/2*(lamda1+lamda2)+lamda1*(v0(1)^2-mu*Dv/2)*(1-mu*lamda1)^(2*i)+lamda2*(v0(2)^2-mu*Dv/2)*(1-mu*lamda2)^(2*i);
end
J1=1/n*Ee; %100次独立试验集平均
figure(3)
plot(J1,'b');
hold on;
plot(J,'r');
grid on;xlabel('N');ylabel('幅值');
LMS.rar_LMS学习曲线_自适应滤波LMS算法
版权申诉
95 浏览量
2022-09-21
00:34:03
上传
评论
收藏 2KB RAR 举报
weixin_42653672
- 粉丝: 93
- 资源: 1万+
最新资源
- 基于串口通信的光通信上位机,包括运动控制和通信协议
- 串口与以太网文件传送协议(或自定义控制协议)
- Qt开发windows系统安装教程与代码实例.txt
- QT6实现的附带文件传输协议的串口终端
- 一个串口通讯类和调用Demo 通过设置串口、设置串口自定义协议,可方便对串口发送数据与接收数据
- 华为OD模拟题及参考答案.仅供学习和模拟考试使用
- stm32f103c8t6基于modbus协议和使用串口读取温湿度
- 英雄联盟LOL金克斯4K电脑壁纸
- Microbrain道闸产品上位机,以MahApps库为基础搭建界面,集成了串口(UART)、CAN、WIFI通信,十六进制协议
- Android串口通讯, 支持发送数据回调, 支持并发处理, 自定义协议, CRC校验, 自动粘包, 自动去除冗余的干扰数据
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
评论0