《数字信号处理第七章解析.pdf》由会员分享,可在线阅读,更多相关《数字信号处理第七章解析.pdf(27页珍藏版)》请在三一文库上搜索。
1、第七章数字滤波器设计 7.1 :无限冲激响应滤波器的阶数的估计 Q7.1 用 MATTAB确定一个数字无限冲激响应低通滤波器所有四种类型的最低阶数。指标如 下:40 kHz 的抽样率, ,4 kHz 的通带边界频率,8 kHz 的阻带边界频率,0.5 dB的通带波纹, 40 dB 的最小阻带衰减。评论你的结果。 答:标准通带边缘角频率Wp是: 标准阻带边缘角频率Ws是: 理想通带波纹Rp是 0.5dB 理想阻带波纹Rs 是 40dB 1. 使用这些值得到巴特沃斯低通滤波器最低阶数N=8,相应的标准通带边缘频率Wn 是 0.2469. 2. 使用这些值得到切比雪夫1 型低通滤波器最低阶数N=5,
2、相应的标准通带边缘频率Wn是 0.2000. 3/ 使用这些值得到切比雪夫2 型低通滤波器最低阶数N=5,相应的标准通带边缘频率Wn是 0.4000. 4. 使用这些值得到椭圆低通滤波器最低阶数N=8,相应的标准通带边缘频率Wn是 0.2000. 从以上结果中观察到椭圆滤波器的阶数最低,并且符合要求。 Q7.2 用 MATLAB 确定一个数字无限冲激响应高通滤波器所有四种类型的最低阶数。指 标如下 :3500Hz 的抽样率, 1050 Hz 的通带边界频率,600 Hz的阻带边界频率,1 dB 的通带波纹, 50 dB 的最小阻带衰减。评论你的结果 答:标准通带边缘角频率Wp是: 标准阻带边缘
3、角频率Ws是: 理想通带波纹Rp是 1dB 理想阻带波纹Rs 是 50dB 1. 使用这些值得到巴特沃斯高通滤波器最低阶数N=8,相应的标准通带边缘频率Wn 是 0.5646. 2. 使用这些值得到切比雪夫1 型高通滤波器最低阶数N=5,相应的标准通带边缘频率Wn是 0.6000. 3. 使用这些值得到切比雪夫2 型高通滤波器最低阶数N=5,相应的标准通带边缘频率Wn是 0.3429. 4. 使用这些值得到椭圆低通滤波器最低阶数N=4,相应的标准通带边缘频率Wn是 0.6000. 从以上结果中观察到椭圆滤波器的阶数最低,并且符合要求。 Q7.3 用 MATLAB 确定一个数字无限冲激响应带通滤
4、波器所有四种类型的最低阶数。指 标如下 :7 kHz 的抽样率 ,1.4 kHz和 2.1 kHz 的通带边界频率,1.05 kHz 和 2.45 kHz 的阻带边界频率,,0 .4 dB的通带波纹 ,50 dB 的最小阻带衰减。评论你的结果。 答:标准通带边缘角频率Wp是: 标准阻带边缘角频率Ws是: 理想通带波纹Rp是 0.4dB 理想阻带波纹Rs 是 50dB 1.使用这些值得到巴特沃斯带通滤波器最低阶数2N=18,相应的标准通带边缘频率Wn是 0.3835 0.6165. 2.使用这些值得到切比雪夫1 型带通滤波器最低阶数2N=12,相应的标准通带边缘频率Wn 是0.4000 0.60
5、00. 3.使用这些值得到切比雪夫2 型带通滤波器最低阶数2N=12,相应的标准通带边缘频率Wn 是0.3000 0.7000. 4. 使用这些值得到椭圆带通滤波器最低阶数2N=8,相应的标准通带边缘频率Wn是0.4000 0.6000. 从以上结果中观察到椭圆滤波器的阶数最低,并且符合要求。 Q7.4 用 MATLAB 确定一个数字无限冲激响应带阻滤波器所有四种类型的最低阶数。指标如 下:12 kHz的抽样率, 2.1 kHz和 4.5 kHz 的通带边界频率,2.7 kHz和 3.9 kHz的阻带边界 频率, 0.6 dB 的通带波纹 ,45 dB 的最小阻带衰减。评论你的结果。 答:标准
6、通带边缘角频率Wp是: 标准阻带边缘角频率Ws是: 理想通带波纹Rp是 0.6dB 理想阻带波纹Rs 是 45dB 1. 使用这些值得到巴特沃斯带阻滤波器最低阶数2N=18,相应的标准通带边缘频率Wn是 0.3873 0.7123. 2. 使用这些值得到切比雪夫1 型带阻滤波器最低阶数2N=10,相应的标准通带边缘频率Wn 是0.3500 0.7500. 3. 使用这些值得到切比雪夫2 型带阻滤波器最低阶数2N=10,相应的标准通带边缘频率Wn 是0.4500 0.6500. 4. 使用这些值得到椭圆带阻滤波器最低阶数2N=8,相应的标准通带边缘频率Wn是0.3500 0.7500. 从以上结
7、果中观察到椭圆滤波器的阶数最低,并且符合要求。 7.2 :无限冲激响应滤波器设计 程序 P7.1 说明巴特沃斯带阻滤波器的设计。 % 巴特沃斯带阻滤波器的设计 Ws = 0.4 0.6; Wp = 0.2 0.8; Rp = 0.4; Rs = 50; % 估计滤波器的阶数 N1, Wn1 = buttord(Wp, Ws, Rp, Rs); % 设计滤波器 num,den = butter(N1,Wn1,stop); % 显示传输函数 disp(分子系数是 );disp(num); disp(分母系数是 );disp(den); % 计算增益响应 g, w = gain(num,den);
8、% 绘制增益响应 plot(w/pi,g);grid axis(0 1 -60 5); xlabel(omega /pi); ylabel(增益, dB); title(巴特沃斯带阻滤波器的增益响应); Q7.5 通过运行程序P7. 1 来设计巴特沃兹带阻滤波器。写出所产生的传输函数的准确表达 式。滤波器的指标是什么,你的设计符合指标吗,使用MATLAB ,计算并绘制滤波器的未畸 变的相位响应及群延迟响应。 答:表达式是: 滤波器参数是: Wp1=0.2, Ws1=0.4,Ws2=0.6,Wp2=0.8, Rp=0.4dB,Rs=50dB. 设计的滤波器增益响应如下: 从图中可以总结出设计符合
9、指标。 滤波器的未畸变的相位响应及群延迟响应如下: Q7.6 修改程序P7.1 来设计符合习题Q7.1 所给指标的切比雪夫1 型低通滤波器。写出所产 生的传输函数的准确表达式。你的设计符合指标吗?使用 MATLAB, 计算并绘制滤波器的未畸 变的相位响应及群延迟响应。 答:表达式如下: 设计的滤波器增益响应如下: 从图中可以总结出设计符合指标。 滤波器的未畸变的相位响应及群延迟响应如下: Q7.7 修改程序P7.1 来设计符合习题Q7.2 所给指标的切比雪夫2 型高通滤波器。写出所产 生的传输函数的准确表达式。你的设计符合指标吗?使用 MATLAB, 计算并绘制滤波器的未畸 变的相位响应及群延
10、迟响应。 答:表达式如下: 设计的滤波器增益响应如下: 从图中可以总结出设计符合指标。 滤波器的未畸变的相位响应及群延迟响应如下: Q7.8 修改程序P7.1 来设计符合习题Q7.3 所给指标的椭圆带通滤波器。写出所产生的传输 函数的准确表达式。你的设计符合指标吗,使用MATLAB ,计算井绘制滤波器的未畸变的相 位响应及群延迟响应。 答:表达式如下: 设计的滤波器增益响应如下: 从图中可以总结出设计符合指标。 滤波器的未畸变的相位响应及群延迟响应如下: 7.3 :吉布斯现象 Q7.9 使用函数sinc编写一个MATLAB 程序,以产生截止频率在Wc= 0.4 处、长度分别为 81,61,41
11、和 21 的四个零相位低通滤波器的冲激响应系数,然后计算并画出它们的幅度响应。 使用冒号 “: ”运算符从长度为81 的滤波器的冲激响应系数中抽出较短长度滤波器的冲激响 应系数。 在每一个滤波器的截止频率两边研究频率响应的摆动行为。波纹的数量与滤波器的 长度之间有什么关系?最大波纹的高度与滤波器的长度之间有什么关系?你将怎样修改上述 程序以产生一个偶数长度的零相位低通滤波器的冲激响应系数? 答:长度为81 时幅度响应如下: 长度分别为61,41 和 21 的幅度响应如下: 从中可以观察到由于吉布斯现象产生的幅度响应的摆动行为。 波纹的数量与滤波器的长度之间的关系波纹的数量减少与长度成正比。 最
12、大波纹的高度与滤波器的长度之间的关系最大波纹的高度与长度无关。 Q7.10 使用函数sinc 编写一个MATLAB 程序,以产生一个截止频率在Wc= 0.4 处、长度为 45 的零相位高通滤波器的冲激响应系数,计算并画出其幅度响应。在每一个滤波器的截止 频率两边研究频率响应的摆动行为。你将怎样修改上述程序以产生一个偶数长度的零相位高 通滤波器的冲激响应系数? 答:长度为45 时幅度响应如下: 从中可以观察到由于吉布斯现象产生的幅度响应摆动行为。 在这种情况下你不能改变长度。原因: 这是一个零相位滤波器,这意味着它也是一个线性相 位滤波器, 因为零相是一种特殊的线性相位的子集。现在, 理想的有限
13、脉冲响应长度甚至有 对称的中点hn 。使其成了一个线性相位FIR 滤波器。二型滤波器不可能是高通滤波器, 因为必须在z=-1 处有零点,意味着w=+-。 Q7.11 编写一个MATLAB 程序,以产生长度分别为81,61,41和 21 的四个零相位微分器的冲 激响应系数,计算并画出它们的幅度响应。下面的代码段显示了怎样产生一个长度为2M+1 的微分器。 n=1:M; b=cos(pi*n)./n; num=-fliplr(b) 0 b; 对于每种情况 , 研究微分器的频率响应的摆动行为。波纹的数量与微分器的长度之间有什么 关系,最大波纹的高度与滤波器的长度之间有什么关系? 答:幅度响应分别如下
14、: 从中可以观察到由于吉布斯现象产生的幅度响应的摆动行为。 波纹的数量与微分器的长度之间的关系两者成正比。 最大波纹的高度与滤波器的长度之间的关系两者间没有关系。 Q7.12 编写一个 MA11AB 程序,以产生长度分别为81,61.41和 21 的四个离散时间希尔伯特 变换器的冲激响应系数,计算并画出它们的幅度响应。下面的代码段显示了怎样产生一个长 度为 2M十 1 的希尔伯特变换器。 n=1:M; c=sin(pi*n)./2; b=2*(c.*c)./(pi*n); num=-fliplr(b) 0 b; 对于每种情况, 研究希尔伯特变换器的频率响应的摆动行为。波纹的数量与希尔伯特变换器
15、 的长度之间有什么关系?最大波纹的高度与滤波器的长度之间有什么关系? 答:幅度响应如下: 从中可以观察到由于吉布斯现像产生的幅度响应的摆动行为。 波纹的数量与希尔伯特变换器的长度之间的关系两者成正比。 最大波纹的高度与滤波器的长度之间的关系两者无关系。 7.4 :有限冲激响应滤波器的阶数估计 Q7.13 线性相位低通FIR 滤波器的阶数估算,参数如下: p =2 kHz, s =2.5 kHz, p = 0.005, s = 0.005, FT = 10kHz 使用 kaiord 的结果为N = 46 使用 ceil 命令的目的是朝正方向最接近整数方向取整。 使用 nargin命令的目的是表明
16、函数M文件体内变量的数目。 Q7.14 (a)线性相位FIR 滤波器的阶数估算,其中采样频率改为FT = 20 kHz ,则结果为 N=91。 (b) 线性相位 FIR p = 0.002 s = 0.002 结果为 N=57。 (c) 线性相位FIR s = 2.3 kHz ,结果为N=76. 从上述结果和7.13 的对比我们可以观察到: 滤波器阶数和采样频率的关系为对于一个给定的模拟过渡带宽,采样频率的增加导致估算阶数也 相应增加,朝下一个整数取整。 其中模拟过渡带宽|Fp-Fs|和的关系: =2pi*|Fp-Fs|/FT。 因此增加FT会减小 。 滤波器阶数和通带波纹宽度的关系为估计的阶
17、数大致和log (底数为 10)成比例的扩散。 滤波器阶数和过渡带宽度的关系为在舍入的时候,阶数随着过渡带宽成比例的改变。 有两个因素增加过渡带宽来分割顺序。 Q7.15 线性相位FIR 低通滤波器阶数的估算,其中滤波器满足7.13 给的规格,使用 kaiserord的结果为N=54 正确结果: kaiserord(2000 2500,1 0,0.005 0.005,10000) 将上述结果和7.13 比较我们观察到:用凯瑟来估算阶数是较小的。因为凯瑟使用了一个不 同的近似估计。这种估计经常和FIR 设计的凯瑟窗一起用。 Q7.16 线性相位 FIR低通滤波器的阶数估算满足的规格和7.13 中
18、的一样,使用remezord 函数 的结果为 N=47. 正确结果: firpmord(2000 2500,1 0,0.005 0.005,10000) 通过和 7.13 和7.15 比较我们可以观察到:在这里, firpmord给了一个比凯尔更大比凯瑟更小 一点的结果。使用凯尔则更接近与一般情况。而使用凯瑟和firpmord则有专门的用途。 Q7.17 线性相位带通 FIR滤波器的阶数估算满足如下规格:通带边界为 1.8 和3.6kHz ,阻带边 界为 1.2kHz 到4.2kHz p = 0.01, 阻带波纹 s = 0.02,FT = 12 kHz 。 使用 kaiord 函数求得的结果
19、为:通带波纹 p= 0.1,得到的结果为:kaiord(1800 3600,1200 4200,0.1,0.02,12000),N=20。但是当 p= 0.01 时结果为:kaiord(1800 3600,1200 4200,0.01,0.02,12000),得到的 N=33 。所以答案不唯一,可以选择其中一个。 Q7.18 线性相位带通FIR滤波器的阶数估算,其中FIR滤波器的规格和7.17 一样,则使用 kaiserord的结果为同样, 它也有矛盾。 当使用 p= 0.1 时,得到的结果为: kaiserord(1200 1800 3600 4200,0 1 0,0.02 0.1 0.02
20、,12000),则 N=37. 当用 p= 0.01 时,结果为:kaiserord(1200 1800 3600 4200,0 1 0,0.02 0.01 0.02,12000),此时 N=45. 和7.17 的结果比较我们观察到通过kaiserord函数估计的阶数要更高,但如果你要设计 Kaiser 窗的话则结果更精确。 Q7.19 线性相位带通FIR滤波器的阶数估算,其中FIR滤波器的规格和7.17 一样,使用函数 remezord 。 当 取 p= 0.01 时 , 结 果 为 firpmord(1200 1800 3600 4200,0 1 0,0.02 0.1 0.02,12000
21、),此时 N=22. 而如果 p= 0.01 ,则结果为:firpmord(1200 1800 3600 4200,0 1 0,0.020.01 0.02,12000),此时 N=35.可以从中任意选择。 和7.17 和7.18 的结果比较我们可以观察到通过firpmord来估算的阶数在另外两个的中间,在 设计 Parks-McClellan时更准确。 7.5 有限冲激响应滤波器设计 Q7.20 使用 matlab 程序设计并画出线性相位FIR滤波器增益和相位反应,使用fir1如下。通 过使用函数 kaiserord.来估计滤波器阶数,输出结果为滤波器的系数。低通滤波器满足7.20 所要求的规
22、格的系数如下: 增益和相位响应如下: 从增益图像我们可以知道这个设计不能满足规格. 这个滤波器满足规格的阶数为N=66.为了 满足规格,图如下: Q7.21 汉宁窗: 布莱克曼窗: 切比雪夫窗: Q7.22 程序如下: % Program Q7_22 % Use Parks-McClellan to design a linear phase Lowpass % FIR Digital Filter meeting the design specification given % in Q7.13. % - Print out the numerator coefficients % for
23、the transfer function. % - Compute and plot the gain function. % - Compute and plot the phase response. % - Compute and plot the unwrapped phase response. % clear; % Design spec as given in Q7.13. Fp = 2*103; Fs = 2.5*103; FT = 10*103; Rp = 0.005; Rs = 0.005; % Estimate the filter order and print to
24、 console N = kaiord(Fp,Fs,Rp,Rs,FT) % Design the filter using Parks-McClellan Wp = 2*Fp/FT; % These freqs are normalized: they go Ws = 2*Fs/FT; % zero to one, not zero to pi. F = 0 Wp Ws 1; A = 1 1 0 0; h = firpm(N,F,A); % Show the Numerator Coefficients disp(Numerator Coefficients are );disp(h); %
25、Compute and plot the gain response g, w = gain(h,1); figure(1); plot(w/pi,g);grid; xlabel(omega /pi ); ylabel(Gain in dB ); title(Gain Response ); % Compute the frequency response w2 = 0:pi/511:pi; Hz = freqz(h,1,w2); % TEST: did we meet the spec? MagH = abs(Hz); T1 = 1.005*ones(1,length(w2); T2 = 0
26、.995*ones(1,length(w2); T3 = 0.005*ones(1,length(w2); figure(4); plot(w2/pi,MagH,w2/pi,T1,w2/pi,T2,w2/pi,T3);grid; % Find and plot the phase 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
27、(w2/pi,UPhase);grid; xlabel(omega /pi ); ylabel(Unwrapped Phase (rad) ); title(Unwrapped Phase Response ); 低通滤波器系数: 0.0028 -0.0022 -0.0046 -0.0006 0.0053 0.0019 -0.0073 -0.0058 0.0079 0.0106 -0.0069 -0.0170 0.0032 0.0243 0.0045 -0.0319 -0.0182 0.0390 0.0422 -0.0448 -0.0924 0.0486 0.3136 0.4501 0.313
28、6 0.0486 -0.0924 -0.0448 0.0422 0.0390 -0.0182 -0.0319 0.0045 0.0243 0.0032 -0.0170 -0.0069 0.0106 0.0079 -0.0058 -0.0073 0.0019 0.0053 -0.0006 -0.0046 -0.0022 0.0028 增益和相位响 从图中可以看出此时的滤波器不满足指标。欲满足指标,应调节N=47. Q7.23 用凯泽窗设计一个有限冲激响应低通滤波器。 程序: % Program Q7_23 % Use Kaiser window to design a linear phase
29、Lowpass % FIR Digital Filter meeting the design specification given % in Q7.23. % % It is clear from the statement of the question that Mitra % wants us to use (7.36) and (7.37) for this problem. That % isnt the greatest thing to try because kaiserord already does % exactly what we need but thats Q7
30、_24! So here goes! % - Print out the numerator coefficients % for the transfer function. % - Compute and plot the gain function. % clear; % Design spec as given in Q7.23. Wp = 0.31; Ws = 0.41; Wn = Wp + (Ws-Wp)/2; As = 50; Ds = 10(-As/20); Dp = Ds; %Kaiser window design has equal ripple in % passban
31、d and stopband. % estimate order using (7.37) if As 21 N = ceil(As-7.95)*2/(14.36*(abs(Wp-Ws)+1) else N = ceil(0.9222*2/abs(Wp-Ws)+1) end % Use (7.36) to get Beta if As 50 BTA = 0.1102*(As-8.7); elseif As = 21 BTA = 0.5842*(As-21)0.4+0.07886*(As-21); else BTA = 0; end Win = kaiser(N+1,BTA); h = fir1
32、(N,Wn,Win); % Show the Numerator Coefficients disp(Numerator Coefficients are );disp(h); % Compute and plot the gain response 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 ); % Compute the frequency response w2 = 0:pi/51
33、1:pi; Hz = freqz(h,1,w2); % Find and plot the phase 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
34、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.02
35、36 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 程序: % Use Kaiser window to design a linear phas
36、e Lowpass % FIR Digital Filter meeting the design specification given % in Q7.23. Use kaiserord and fir1. % - Print out the numerator coefficients % for the transfer function. % - Compute and plot the gain function. % clear; % Design spec as given in Q7.23. Wp = 0.31; Ws = 0.41; As = 50; Ds = 10(-As
37、/20); % Design the Filter 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); % Show the Numerator Coefficients disp(Numerator Coefficients are );disp(h); % Compute and plot the gain response g, w = gain(h,1); figure(1); plot(w/pi,g)
38、;grid; axis(0 1 -80 5); xlabel(omega /pi ); ylabel(Gain in dB ); title(Gain Response ); % Compute the frequency response w2 = 0:pi/511:pi; Hz = freqz(h,1,w2); % Find and plot the phase figure(2); Phase = angle(Hz); plot(w2/pi,Phase);grid; xlabel(omega /pi ); ylabel(Phase (rad) ); title(Phase Respons
39、e ); figure(3); UPhase = unwrap(Phase); plot(w2/pi,UPhase);grid; xlabel(omega /pi ); ylabel(Unwrapped Phase (rad) ); title(Unwrapped Phase Response ); 参数如下: 0.31; 0.41; 50 WpWsAsdB 增益和相位响应如下: 从图中可以看出设计的滤波器满足要求。N=59. Q7.25 用 fir2设计一个95 阶有限冲激响应滤波器。 程序: % Program Q7_25 % Use fir2 to design a linear pha
40、se Lowpass % FIR Digital Filter meeting the design specification given % in Q7.23. % - Compute and plot the gain function. % clear; % Design spec as given in Q7.25. 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; % Design the Filter h = fir2(N,F,A); % Compute and plot the gain resp
41、onse 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 ); % Compute the frequency response w2 = 0:pi/511:pi; Hz = freqz(h,1,w2); % Plot figure(2); plot(w2/pi,abs(Hz);grid; xlabel(omega /pi ); ylabel(|H(ejomega)| ); title(|H
42、(ejomega)| ); % Find and plot the phase 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 Respon
43、se ); 幅度响应: 从幅度响应中可以看出,此滤波器满足指标。 Q7.26 使用 remez 设计有限冲激响应带通滤波器。 程序: % Program Q7_26 % Use kaiserord and firpm to design the linear phase bandpass % FIR Digital Filter specified in Q7.17. % - Print out the numerator coefficients % for the transfer function. % - Compute and plot the gain function. % cl
44、ear; % Design spec as given in Q7.17. 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); N % firpm setup 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);
45、 % Show the Numerator Coefficients disp(Numerator Coefficients are );disp(h); % Compute and plot the gain response 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 ); % Compute the frequency response w2 = 0:pi/511:pi; Hz =
46、freqz(h,1,w2); % Find and plot the phase 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 Respo
47、nse ); 增益响应:相位响应: 从增益响应的图像中可以看出,此滤波器满足指标。N=37. Q7.27 用 remez 设计具有如下指标的有限冲激响应带通滤波器。 程序: % Program Q7_27 % Use kaiserord and firpm to design the linear phase bandpass % FIR Digital Filter specified in Q7.27. % % clear; % Design spec as given in Q7.27. Fs1 = 1500; Fp1 = 1800; Fp2 = 3000; Fs2 = 4200; Fs = 12000; Dp = 0.1; Ds = 0.02; F = Fs1 Fp1 Fp2 Fs2; A = 0 1 0; DEV = Ds Dp Ds; N,Wn,BTA,FILTYPE = kaiserord(F,A,DEV,Fs); % firpm setup ws1 = 2*Fs1/Fs; wp1 = 2*Fp1/Fs; wp2 = 2*Fp2/Fs; ws2 = 2*Fs2/Fs; F2 = 0 ws1 wp1 wp2 ws2 1; A2 = 0 0 1 1
链接地址:https://www.31doc.com/p-4954679.html