nlms演算法的計算迭代過程與lms演算法基本一致,只是lms演算法中的步長是固定的,
而在nlm演算法步長是可變的,根據輸入訊號動態的調整迭代的步長,已達到較快的和穩定的
收斂過程。
1)給定w(0);
2)計算輸出值:y(k)=w(k)tx(k)y(k)=w(k)tx(k);
3)計算估計誤差:e(k)=d(k)−y(k)e(k)=d(k)−y(k);
4)權重係數更新:w(k+1)=w(k)+
function [w,en]=nlmsfunc(mu,m,xn,dn,a)
% 輸入引數:
% mu = 步長大小 乙個極小的值
% m = 濾波器階數
% xn = 輸入訊號 列向量
% dn = 預期訊號 列向量
% a = 極小的常數
%% 輸出引數:
% w = 濾波器係數 列向量
%輸入訊號長度
itr=length(xn);
%make sure that u and d are colon vectors
w=zeros(m,itr); %this is a vertical column
en = zeros(itr,1);%列向量
w = zeros(m,1);%列向量
%nlms
for k=m:itr
uvec=xn(k:-1:k-m+1);
y= w(:,k-1).'*uvec;
en(k)=dn(k)-y;
w(:,k)=w(:,k-1)+mu/(a+uvec'*uvec)*uvec*en(k);
endw = w(:,end);
基於MPC的自適應巡航控制
關於mpc 模型 控制 網上的理論很多,簡單易懂的,複雜全面的都有。這邊我也記錄一下mpc的學習,主要是通過汽車acc的例子,這裡汽車模型只是簡單的積分器,主要目的還是mpc的乙個應用。中間的相減模組不小心被注釋掉了,不想開啟matlab重新截圖了,因為懶,直接編輯了一下,ahhh 首先分別用兩個積...
自適應中值濾波及matlab實現
常規的中值濾波器,在雜訊的密度不是很大的情況下 根據經驗,雜訊的出現的概率小於0.2 效果不錯。但是當概率出現的概率較高時,常規的中值濾波處理後,仍然具有雜訊點,並丟失了細節和邊緣,效果不是很好。在模板視窗sxy定義的濾波器區域內定義如下變數 zmin min sxy 模板視窗sxy中的最小灰度值 ...
基於inline block進行自適應列表布局
display block a.block元素會獨佔一行,多個block元素會各自新起一行。預設情況下,block元素寬度自動填滿其父元素寬度。b.block元素可以設定width,height屬性。塊級元素即使設定了寬度,仍然是獨佔一行。c.block元素可以設定margin和padding屬性。...