function a=fir(x,N,wc);
n=0:N-1;
r=(N-1)/2;
hdn=sin(wc*(n-r))/pi./(n-r);%计算单位脉冲响应
if rem(N,2)~=0
hdn(r+1)=wc/pi;
end
wn1=boxcar(N);%矩形窗
hn1=hdn.*wn1';%加窗
Hn=newfft(hn1,N);
subplot(2,3,1);
plot(abs(Hn));
grid;
title('脉冲响应');
X=newfft(x,N);
subplot(2,3,2);
plot(abs(X));
grid;
title('测试信号');
for i=1:N
Y(i)=Hn(i)*X(i);
%Z(i)=Y(1)^(-1);
end
%y=(1/N)*newfft(Z,N);
subplot(2,3,3);
plot(abs(Y));
grid;
title('矩形窗滤波后');
wn2=hamming(N);%hamming窗
hn2=hdn.*wn2';%加窗
Hnn=newfft(hn2,N);
subplot(2,3,4);
plot(abs(Hnn));
grid;
title('脉冲响应');
for i=1:N
Yn(i)=Hnn(i)*X(i);
%Z1(i)=Y1(1)^(-1);
end
%y1=(1/N)*newfft(Z1,N);
subplot(2,3,6);
plot(abs(Yn));
grid;
title('hamming窗滤波后');