📄 example9_13.m
字号:
%例9-13, example9_13
%利用Parks-McClellan算法设计带通滤波器
%设计条件:wp1=0.35pi;wp2=0.65pi;ws1=0.2pi;ws2=0.8pi;Rp=1dB;Ar=60dB;
wp1=0.35*pi;wp2=0.65*pi;ws1=0.2*pi;ws2=0.8*pi;Rp=1;Ar=60;
delta1=(10^(Rp/20)-1)/(10^(Rp/20)+1);
delta2=(1+delta1)*(10^(-Ar/20));
deltaH=max(delta1,delta2);
deltaL=min(delta1,delta2);
weights=[1 delta2/delta1 1];
deltaf=min((ws2-wp2)/(2*pi),(wp1-ws1)/(2*pi));
N=ceil((-20*log10(sqrt(delta1*delta2))-13)/(14.6*deltaf)+1);
N=N+1 %修正
f=[0 ws1/pi wp1/pi wp2/pi ws2/pi 1];
m=[0 0 1 1 0 0];
h=remez(N-1,f,m,weights);
[db,mag,pha,grd,w]=freqz_m(h,[1]);
delta_w=2*pi/1000;
ws1i=floor(ws1/delta_w)+1;wp1i=floor(wp1/delta_w)+1;
ws2i=floor(ws2/delta_w)+1;wp2i=floor(wp2/delta_w)+1;
Asd=-max(db(1:1:ws1i))
%画图
figure(1)
subplot(2,1,1);stem([0:1:N-1],h);
axis([0,N-1,-0.4,0.5]);title('实际脉冲响应')
xlabel('n');ylabel('h(n)');
m1=[0 0];m2=[-1 45];line(m2,m1)
subplot(2,1,2);plot(w/pi,db);
axis([0,1,-80,10]);title('幅度响应 dB')
xlabel('频率(单位:pi)');ylabel('分贝');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -