滑動平均濾波

2021-08-20 09:00:33 字數 2233 閱讀 3838

滑動平均濾波,視窗長度為6;

matlab視窗長度6進行濾波,輸入為512點,輸出為507點,最後幾個點未進行處理;

滑動平均後,波形中的小波動消失;

用於平滑雜訊:

matlab :code

function

t1 = huadong

( d_temp )

%untitled summary of this function goes here

% detailed explanation goes here

%author:[email protected]

t=d_temp';

% figure(1)

% plot(t,'-*')

% title('原始資料')

% hold on;

%滑動平滑濾波

l = length(t);

n=6; % 視窗

k = 0;

m =0 ;

fori = 1:l

m = m+1;

ifi+n-1 > l

break

else

forj = i:n+i-1

k = k+1;

w(k) = t(j) ;

endt1(m) = mean(w);

k = 0;

endend% plot(t1,'r-o');

% f_kb=kaibilvbo(d_temp,[1 1 1 1 1 1 ],'1');

% plot(f_kb,'y-o');

% grid

% legend('原始資料','滑動濾波之後')

end

c語言**:

void

huadong (u16 *inputsig,u16

siglen,u16

windowsize,float *outputsig)

;u16

n,l;

n=windowsize;

l=siglen;

for(i=0;i

m+=1;

if (i+n-1>=l)

break;

else

//求w的均值;

outputsig[m] =mean_array_lr(

w,0,5 );

k=-1;}}

}

ps:同上未處理最後幾個點;

function t1 = huadong( d_temp )

%untitled summary of this function goes here

% detailed explanation goes here

t=d_temp』;

% figure(1)

% plot(t,』-*』)

% title(『原始資料』)

% hold on;

%滑動平滑濾波

l = length(t);

% n=6; % 視窗大下

n=20; % 視窗大下

k = 0;

m =0 ;

t1=zeros(1,l);

for i = 1:l

m = m+1;

if i+n-1 > l

break

else

for j = i:n+i-1

k = k+1;

w(k) = t(j) ;

end

t1(m) = mean(w);

k = 0;

end

end%add last end point:

for i=l-n+2:l

t1(m)=t(i);

m=m+1;

end% plot(t1,』r-o』);

% f_kb=kaibilvbo(d_temp,[1 1 1 1 1 1 ],』1』);

% plot(f_kb,』y-o』);

% grid

% legend(『原始資料』,』滑動濾波之後』)

end

matlab實現滑動平均濾波 一

最近時間在研究濾波演算法,目的是為了更好的識別音訊資料。因為有些音訊資料裡面的雜波太多,很難識別,所以需要先對其進行過濾,才能解析識別。為此,我先在matlab上做了 採用的很多濾波演算法,最後選擇了對我這個效果最好的,滑動均值濾波。滑動平均濾波就是把連續取得的n個取樣值看成乙個佇列,佇列的長度固定...

滑動平均濾波c語言 基本C語言濾波演算法

11種軟體濾波方法的示例程式 假定從8位ad中讀取資料 如果是更高位的ad可定義資料型別為int 子程式為get ad 1 限副濾波 a值可根據實際情況調整 value為有效值,new value為當前取樣值 濾波程式返回有效的實際值 define a 10 char value char filt...

演算法學習筆記之滑動平均濾波演算法

滑動平均濾波演算法只取樣一次,將一次取樣值和過去的若干次取樣值一起求平均,得到的有效取樣值即可投入使用。如果取n個取樣值求平均,儲存區中必須開闢n個資料的暫存區。每新採集乙個資料便存入暫存區中,同時去掉乙個最老資料,儲存這n個資料始終是最新更新的資料。採用 環型佇列結構 可以方便地實現這種資料存放方...