滑動平均濾波,視窗長度為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個資料始終是最新更新的資料。採用 環型佇列結構 可以方便地實現這種資料存放方...