ZKX's LAB

运动参量y随时间变化,采用递推最小二乘算法估计参数matlab 用Matlab软件实现变长NLMS自适应滤波器算法

2021-04-23知识8

用Matlab软件实现变长NLMS自适应滤波器算法 clear allclose allN=10;滤波器阶数sample_N=500;采样点数A=1;信号幅度snr=10;信噪比t=1:sample_N;length_t=100;期望信号序列长度d=A*sin(2*pi*t/length_t);期望信号M=length(d);M为接收数据长度x=awgn(d,snr);经过信道(加噪声)delta=1/(10*N*(A^2));计算能够使LMS算法收敛的deltay=zeros(1,M);h=zeros(1,N);LMS滤波器系数h_normalized=zeros(1,N);归一化LMS滤波器系数y1=zeros(1,N);for n=N:M%系数调整LMS算法x1=x(n:-1:n-N+1);LMS算法y(n)=h*x1';e(n)=d(n)-y(n);h=h+delta*e(n)*x1;NLMS算法y_normalized(n)=h_normalized*x1';e_normalized(n)=d(n)-y_normalized(n);h_normalized=h_normalized+e_normalized(n)*x1/(x1*x1');enderror=e.^2;LMS算法每一步迭代的均方误差error_normalized=e_normalized.^2;NLMS算法每一步迭代的均方误差for n=N:M%利用求解得到的h,与输入信号x做卷积,得到滤波后结果x2=x(n:-1:n-N+1);y1(n)=h*x2';y2(n)=h_normalized*x2';endsubplot(411)plot(t,d);axis([1,sample_N,-2,2]);subplot(412)plot(t,x);subplot(413)plot(t,y);subplot(414)plot(t,y_normalized);figure(2)plot(t,error,'r',t,error_。

#采用递推最小二乘算法估计参数matlab#运动参量y随时间变化

随机阅读

qrcode
访问手机版