BTA = 0; end
Win = kaiser(N+1,BTA); h = fir1(N,Wn,Win);
disp('Numerator Coefficients are ' ); disp(h);
[g, w] = gain(h,[1]); figure(1);
plot(w/pi,g);grid; axis([0 1 -80 5]);
xlabel('\\omega /\\pi' ); ylabel('Gain in dB' ); title('Gain Response' ); w2 = 0:pi/511:pi;
Hz = freqz(h,[1],w2); figure(2);
Phase = angle(Hz);
plot(w2/pi,Phase);grid;
xlabel('\\omega /\\pi' ); ylabel('Phase (rad)' ); title('Phase Response' ); figure(3);
UPhase = unwrap(Phase); plot(w2/pi,UPhase);grid;
xlabel('\\omega /\\pi' ); ylabel('Unwrapped Phase (rad)' ); title('Unwrapped Phase Response' );
低通滤波器系数:
0.0003 0.0008 0.0003 -0.0011 -0.0017 0.0000 0.0026 0.0027 -0.0010 -0.0049 -0.0035 0.0033 0.0080 0.0034 -0.0074 -0.0119 -0.0018 0.0140 0.0161 -0.0027 -0.0241 -0.0201 0.0127 0.0406 0.0236 -0.0354 -0.0754 -0.0258 0.1214 0.2871 0.3597 0.2871 0.1214 -0.0258 -0.0754 -0.0354 0.0236 0.0406 0.0127 -0.0201 -0.0241 -0.0027 0.0161 0.0140 -0.0018 -0.0119 -0.0074 0.0034 0.0080 0.0033 -0.0035 -0.0049 -0.0010 0.0027 0.0026 0.0000 -0.0017 -0.0011 0.0003 0.0008 0.0003 增益和相位响应如下:
从图中可以看出设计的滤波器满足要求。N=60.
Q7.24 用函数kaiserord和firl重做习题Q7.23
程序: clear;
Wp = 0.31; Ws = 0.41; As = 50;
Ds = 10^(-As/20); F = [Wp Ws]; A = [1 0];
DEV = [Ds Ds];
[N,Wn,BTA,Ftype] = kaiserord(F,A,DEV); Win = kaiser(N+1,BTA); h = fir1(N,Wn,Ftype,Win);
disp('Numerator Coefficients are ' );disp(h); [g, w] = gain(h,[1]); figure(1);
plot(w/pi,g);grid; axis([0 1 -80 5]);
xlabel('\\omega /\\pi' ); ylabel('Gain in dB' ); title('Gain Response' ); w2 = 0:pi/511:pi;
Hz = freqz(h,[1],w2); figure(2);
Phase = angle(Hz);
plot(w2/pi,Phase);grid;
xlabel('\\omega /\\pi' ); ylabel('Phase (rad)' ); title('Phase Response' ); figure(3);
UPhase = unwrap(Phase); plot(w2/pi,UPhase);grid;
xlabel('\\omega /\\pi' ); ylabel('Unwrapped Phase (rad)' ); title('Unwrapped Phase Response' );
参数如下:
Wp ? 0.31; Ws ? 0.41; As ? 50 dB
增益和相位响应如下:
从图中可以看出设计的滤波器满足要求。N=59.
Q7.25 用fir2设计一个95阶有限冲激响应滤波器。
程序:
clear; N = 95;
A = [0.4 0.4 1.0 1.0 0.8 0.8]; F = [0 0.25 0.3 0.45 0.5 1.0]; h = fir2(N,F,A);
[g, w] = gain(h,[1]); figure(1);
plot(w/pi,g);grid;
xlabel('\\omega /\\pi' ); ylabel('Gain in dB' ); title('Gain Response' ); w2 = 0:pi/511:pi;
Hz = freqz(h,[1],w2); figure(2);
plot(w2/pi,abs(Hz));grid;
xlabel('\\omega /\\pi' ); ylabel('|H(e^{j\\omega})|' ); title('|H(e^{j\\omega})|' ); figure(3);
Phase = angle(Hz);
plot(w2/pi,Phase);grid;
xlabel('\\omega /\\pi' ); ylabel('Phase (rad)' ); title('Phase Response' ); figure(4);
UPhase = unwrap(Phase); plot(w2/pi,UPhase);grid;
xlabel('\\omega /\\pi' ); ylabel('Unwrapped Phase (rad)' ); title('Unwrapped Phase Response' );
幅度响应:
从幅度响应中可以看出,此滤波器满足指标。
Q7.26 使用remez设计有限冲激响应带通滤波器。
程序: clear;
F = [1200 1800 3600 4200]; A = [0 1 0];
DEV = [0.02 0.1 0.02]; Fs = 12000; Dp = 0.1; Ds = 0.02;
[N,Wn,BTA,FILTYPE] = kaiserord(F,A,DEV,Fs); F2 = 2*[0 1200 1800 3600 4200 6000]/Fs; A2 = [0 0 1 1 0 0];
wgts = max(Dp,Ds)*[1/Ds 1/Dp 1/Ds]; h = firpm(N,F2,A2,wgts);
disp('Numerator Coefficients are ' );disp(h); [g, w] = gain(h,[1]); figure(1);
plot(w/pi,g);grid; axis([0 1 -80 5]);
xlabel('\\omega /\\pi' ); ylabel('Gain in dB' ); title('Gain Response' ); w2 = 0:pi/511:pi;
Hz = freqz(h,[1],w2); figure(2);
Phase = angle(Hz);
plot(w2/pi,Phase);grid;