?? lmsrls.m
字號:
function lmsrls();
clear
samples_per_period=40;%周期采樣頻率
N=10*samples_per_period-1;%總采樣次數
signal(1)=2;
for i=2:N
signal(i)=signal(i-1);
end
%signal=sin(2*pi*0.02*[0:N-1]);%初始輸入信號
figure;%作圖1的第一子圖
subplot(2,1,1);
plot(signal);
grid;
title('不含噪聲信號');
nvar=1;%噪聲方差
noise1=nvar*randn(1,N);%噪聲信號
noise2=nvar*randn(1,N);
X1=signal+noise1;%帶加性噪聲的輸入信號
X2=signal+noise2;%帶加性噪聲的輸入信號
M=32;%濾波器長度
mu=0.0035;%迭代步長
subplot(2,1,2);%作圖1的第二子圖
plot(X1);
grid;
title('自適應濾波器含噪聲輸入');
initial_status=initlms(zeros(1,M),mu);%濾波器設初值
[Y,e,initial_status]=adaptlms(X1,signal,initial_status);%LMS自適應濾波器輸出
%b = fir1(31,0.5); % FIR system to tbe identified
%Y1 = filter(b,1,X2); % Desired signal
c1=initial_status.coeffs;
Y1=filter(c1,1,X2);
figure;%作圖2的第一子圖
subplot(2,1,1);
plot(1:N,Y,'b',1:N,signal,'k',1:N,Y1,'r');
grid;
title('lms預測信號與實際信號的比較');
%legend('預測信號,實際
error=signal-Y;%輸出誤差信號
subplot(2,1,2);%作圖2的第二子圖
plot(error);
grid;
title('lms自適應濾波器的預測誤差');
w0 = zeros(1,32); % Initial filter coefficients
P0 = 5*eye(32); % Initial input correlation matrix inverse
lam = 0.95; % Exponential memory weighting factor
S = initrls(w0,P0,lam);
[y2,e2,S2] = adaptrls(X1,signal,S);
% b = fir1(31,0.5); % FIR system to tbe identified
% Y2 = filter(b,1,X2); % Desired signal
c2=S2.coeffs;
Y2=filter(c2,1,X2) ;
figure;%作圖2的第一子圖
subplot(2,1,1);
plot(1:N,y2,'b',1:N,signal,'k',1:N,Y2,'r');
grid;
title('rls預測信號與實際信號的比較');
%legend('預測信號,實際信號');
error=signal-y2;%輸出誤差信號
subplot(2,1,2);%作圖2的第二子圖
plot(error);
grid;
title('rls自適應濾波器的預測誤差');
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -