如何用Matlab實現自適應濾波器!!!

2021-10-11 20:50:48 字數 2445 閱讀 2988

直接上**吧,原理一大堆,自行了解即可!這是lms即自適應濾波器的matlab**。

function

[yn,

w,en]

=lms

(xt,dn,

m,mu)

itr =

length

(xt)

; en =

zeros

(itr,1)

;% 誤差序列,

en(k)表示第k次迭代時預期輸出與實際輸入的誤差w=

zeros(m

,itr)

;% 每一行代表乙個加權參量,每一列代表-次迭代,初始為0

% 迭代計算

for k =

m:itr % 第k次迭代

x =xt(k:-1

:k-m+1

);% 濾波器m個抽頭的輸入

y =w(

:,k-1)

.' * x ;

% 濾波器的輸出

en(k)=

dn(k)

- y ;

% 第k次迭代的誤差

% 濾波器權值計算的迭代式

w(:,k)=w(

:,k-1)

+2*mu*

en(k)

*x;end

% 求最優時濾波器的輸出序列 r如果沒有yn返回引數可以不要下面的

yn = inf *

ones

(size

(xt));

% inf 是無窮大的意思

for k =m:

length

(xt)

x =xt(k:-1

:k-m+1

);yn(k)=w

(:,end)

.'* x;

%用最後得到的最佳估計得到輸出

end

end

close  all

% 週期訊號的產生 t=0

:999

;xs=5*

square

(0.03

*t,50);

figure;

subplot(2

,1,1

);plot

(t,xs)

;grid;

ylabel

('幅值');

title(''

);% 雜訊訊號的產生t=0

:999

;xn=

randn(1

,1000);

subplot(2

,1,2

);plot

(t,xn)

;grid;

ylabel

('幅值');

xlabel

('時間');

title(''

);% 訊號濾波

xt = xs+xn;

xt = xt.';

% 輸入訊號序列

dn = xn.' ;

% 預期結果序列m=

20;% 濾波器的階數

rho_max =

max(

eig(xt*xt.'));

% 輸入訊號相關矩陣的最大特徵值

mu =(1

/rho_max)

% 收斂因子 0

< mu <

1/rho

[yn,

w,en]

=lms

(xt,dn,

m,mu);y

=xt-yn;

% 繪製濾波器輸入訊號

figure;

subplot(2

,1,1

);plot

(t,xt)

;grid;

ylabel

('幅值');

xlabel

('時間');

title(''

);% 繪製自適應濾波器輸出訊號

subplot(2

,1,2

);plot

(t,yn)

;grid;

ylabel

('幅值');

xlabel

('時間');

title(''

);% 繪製自適應濾波器輸出訊號,預期輸出訊號和兩者的誤差

figure

plot

(t,xs,

'g',t,y,

'y',t,

y-xs.

','r')

;grid;

legend

('預期輸出'

,'自適應濾波器輸出'

,'誤差');

ylabel

('幅值');

xlabel

('時間');

title(''

);

自適應中值濾波及matlab實現

常規的中值濾波器,在雜訊的密度不是很大的情況下 根據經驗,雜訊的出現的概率小於0.2 效果不錯。但是當概率出現的概率較高時,常規的中值濾波處理後,仍然具有雜訊點,並丟失了細節和邊緣,效果不是很好。在模板視窗sxy定義的濾波器區域內定義如下變數 zmin min sxy 模板視窗sxy中的最小灰度值 ...

如何實現寬高自適應

我們在進行網頁布局時經常要定義元素的寬和高。但很多時候我們希望元素的大小能夠根據視窗或子元素自動調整,實現這一過程就是寬高自適應。元素自適應在網頁布局中非常重要,它能夠使網頁顯示更靈活,可以適應在不同裝置 不同視窗和不同解析度下顯示。當塊狀元素不寫寬度的時候,預設的寬度是100 即相對于父元素的寬度...

基於matlab的自適應NLMS演算法實現

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 ...