sjtudly 发表于 2016-8-16 21:10

RLS 快速算法MATLAB程序


哪位前辈有RLS 快速算法的MATLAB程序分享一下吧,不胜感激!

Posion 发表于 2016-8-17 08:14

网上一搜就有:

sjtudly 发表于 2016-8-17 09:10

Posion 发表于 2016-8-17 08:14
网上一搜就有:

谢谢回复!不过这个是RLS基础算法不是快速算法

Posion 发表于 2016-8-17 11:14

sjtudly 发表于 2016-8-17 09:10
谢谢回复!不过这个是RLS基础算法不是快速算法

在这个基础上优化呗

sjtudly 发表于 2016-8-17 13:49

Posion 发表于 2016-8-17 11:14
在这个基础上优化呗

已经有很多现成的优化算法了

Posion 发表于 2016-8-17 14:30

sjtudly 发表于 2016-8-17 13:49
已经有很多现成的优化算法了

搜噶那你找到了吗

sjtudly 发表于 2016-8-18 20:38

Posion 发表于 2016-8-17 14:30
搜噶那你找到了吗

有论文,没有现成的程序,比较复杂

sovereign 发表于 2016-8-19 09:07

sjtudly 发表于 2016-8-18 20:38
有论文,没有现成的程序,比较复杂

论文好找论文里都不会把程序贴出来。。。

zhangzy 发表于 2016-8-24 13:22

找到这个程序了吗

敷衍会致命 发表于 2016-8-25 09:20

% RLS 算法
<br>randn('seed', 0) ;
<br>rand('seed', 0) ;
<br>
<br>NoOfData = 8000 ; % Set no of data points used for training
<br>Order = 32 ; % Set the adaptive filter order
<br>
<br>Lambda = 0.98 ; % Set the forgetting factor
<br>Delta = 0.001 ; % R initialized to Delta*I
<br>
<br>x = randn(NoOfData, 1) ;% Input assumed to be white
<br>h = rand(Order, 1) ; % System picked randomly
<br>d = filter(h, 1, x) ; % Generate output (desired signal)
<br>
<br>% Initialize RLS
<br>
<br>P = Delta * eye ( Order, Order ) ;
<br>w = zeros ( Order, 1 ) ;
<br>
<br>% RLS Adaptation
<br>
<br>for n = Order : NoOfData ;
<br>
<br>u = x(n:-1:n-Order+1) ;
<br>pi_ = u' * P ;
<br>k = Lambda + pi_ * u ;
<br>K = pi_'/k;
<br>e(n) = d(n) - w' * u ;
<br>w = w + K * e(n) ;
<br>PPrime = K * pi_ ;
<br>P = ( P - PPrime ) / Lambda ;
<br>w_err(n) = norm(h - w) ;
<br>
<br>end ;
<br>
<br>% Plot results
<br>
<br>figure ;
<br>plot(20*log10(abs(e))) ;
<br>title('Learning Curve') ;
<br>xlabel('Iteration Number') ;
<br>ylabel('Output Estimation Error in dB') ;
<br>
<br>figure ;
<br>semilogy(w_err) ;
<br>title('Weight Estimation Error') ;
<br>xlabel('Iteration Number') ;
<br>ylabel('Weight Error in dB') ;
<br>

页: [1]
查看完整版本: RLS 快速算法MATLAB程序