clear
clc
x=randn(1,100);
%x为要滤波的信号
m=5;%表示平滑滤波窗长度,这是长度为奇数的情况
%前m/2,最后m/2个点没滤波,设为原来的值就行
for i=1:length(x)-m+1
y(i+(m-1)/2)=sum(x(i:i+m-1))/m;
end
figure(1);
plot(x,'r');hold on;plot(y,'g');hold off;
这是最简单的,不知道你需要基于什么算法的平滑滤波!有重心法的,算术滑动平均的,变参数双指数平滑方法,还有用插值的方式去平滑的
matlab 有自带mvgavg函数,由于你的问题太宽泛,具体需求你可以自己看doc然后使用。