巴特沃斯低通滤波器
% 输入信号xn
% 采样频率fs
% 通带截止频率fpass
% 阻带截止频率fstop
% 通带最大衰减ap
% 阻带最小衰减as
function yn=filter_low(xn,fs,fpass,fstop,ap,as)
%巴特沃斯低通滤波器设计
fpass=fpass/(fs/2);fstop=fstop/(fs/2);
[N,wc]=buttord(fpass,fstop,ap,as);
[B1,A1]=butter(N,wc);
%计算N点傅里叶变换
N=2^(ceil(log2(length(xn))));
xk=fft(xn,N);
%进行滤波
yn=filter(B1,A1,xn);
%计算N点傅里叶变换
yk=fft(yn,N);
%由频率分辨率计算频域采样间隔
f=fs*(1:N/2)/N;
%作图xn yn的傅里叶变换
subplot(211)
plot(f,2*abs(xk(1:N/2))/fs);
subplot(212)
plot(f,2*abs(yk(1:N/2))/fs);
end