rls.m
来自「数字信号处理Matlab演示文件,其中各个文件加放置了不同的matlab子文件」· M 代码 · 共 28 行
M
28 行
function [err_norm, err_sq] = rls(input, output, N, hopt)
% RLS adaptive filter for fig8_12.m
% input : input signal
% output : output signal
% N : no. of taps
% hopt : optimum set of weights
% err_norm: normalised error of weights
% err_sq : squared estimation error
%
% July 97
NN = max ( size (input));
h = zeros(size(hopt));
init = 100.0;
rinv = diag( ones(size(hopt)) * init );
for ii = 1:NN-N+1,
x = input(ii:ii+N-1)';
yhat = h*x;
e = output(ii+N-1)-yhat;
err_sq(ii+N-1) = e^2;
c = rinv*x;
rinv = rinv - c*c'/( 1+ c'*x);
h = h + (rinv*x*e)';
herr = hopt-fliplr(h);
err_norm(ii+N-1) = (herr*herr');
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?