📄 fir1.m
字号:
%Program:利用矩形窗设计FIR高通滤波器
%filter specification
Wp=0.6*pi;Ws=0.4*pi;Ap=1;As=45;
%determine the length of the filter
N=ceil(1.8*pi/(Wp-Ws));
N=mod(N+1,2)+N;
M=N-1;
fprintf('滤波器的阶数 M=%.0f\n',M);
%generate window
w=ones(1,N);
subplot(2,1,1);
stem(w); axis([-1 N+2 0 1.5]);
title('矩形 Window')
%cutoff frequency of ideal highpass filter
Wc=(Wp+Ws)/2;
k=0:M;
hd=-(Wc/pi)*sinc(Wc*(k-0.5*M)/pi);
hd(0.5*M+1)=hd(0.5*M+1)+1;
h=hd.*w;
omega=linspace(0,pi,512);
mag=freqz(h,[1],omega);
magdb=20*log10(abs(mag));
Ap=-20*log10(2-max(abs(mag)));
As=-20*log10(min(abs(mag)));
fprintf('阻带衰减 As=%.0f\n',As);
fprintf('通带衰减 Ap=%.0f\n',Ap);
subplot(2,1,2);
plot(omega/pi,magdb);
title('矩形窗设计的滤波器');
xlabel('Normalized frequency');
ylabel('Gain,dB');
grid;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -