資源簡介
對二階自回歸模型產生的信號的LMS算法與RLS算法收斂速度對比(Matlab版)
代碼片段和文件信息
close?all;?
clear;?
clc;
repeat_times=50;??????????????????????????????%重復次數,平滑誤差
iters=600;????????????????????????????????????%迭代次數
p=2;??????????????????????????????????????????%濾波器抽頭數
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%序列x(iters)由零均值,單位方差的白噪聲通過一個二階回歸方程
%x(iters)+a1x(iters-1)+a2x(iters-2)=v(iters)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
a1=-1.6;?a2=0.8;?sigma_v=1;
u=0.002;?????????????????????????????????????%LMS自適應步長
forget_factor=0.98;??????????????????????????%遺忘因子lamda
LMS_w1=zeros(repeat_timesiters);
RLS_w1=zeros(repeat_timesiters);
for?k=1:repeat_times?????
????xtemp=zeros(iters+p1);???????????????????%初始化序列,x(iters)為列向量???
????vn=normrnd(0sigma_viters+p1);??????????%零均值,單位方差的高斯白噪聲
????for?i=1:iters?????
????????xtemp(i+2)=vn(i)-a1*xtemp(i+1)-a2*xtemp(i);
????end
????x=xtemp(p+1:length(xtemp));???????????????%產生2階自回歸信號,剔除初始的前兩個零值
????x=[zeros(p1);x];
????w_e=zeros(piters);???????????????????????%初始化LMS權矢量
????W_e=zeros(piters);???????????????????????%初始化RLS權矢量?????????
????T=10*eye(p);??????????????????????????????%初始化T(n)=1/R(n)R(n)為隨機信號的自相關函數
????Pi=zeros(p1);????????????????????????????%Pi(n)=T(n-1)*x(n)
????K=zeros(p1);????????????????
評論
共有 條評論