巴特沃斯带阻IIR数字滤波器设计
IIR数字滤波器地设计与滤波MATLAB
实验四 IIR 数字滤波器的设计与滤波一、巴特沃斯模拟滤波器的设计1. 模拟滤波器的设计参数模拟滤波器的4个重要的通带、阻带参数为:p f 或Omegap :通带截止频率 s f 或Omegas :阻带截至频率p R :通带内波动(dB),即通带内所允许的最大衰减;s R :阻带内最小衰减通过以上参数就可以进行模拟滤波器的设计。
2. 巴特沃斯模拟滤波器设计1) 巴特沃斯滤波器阶数的选择:在已知设计参数p f ,s f ,p R ,s R 之后,可利用“buttord ”命令可求出所需要的滤波器的阶数和3dB 截止频率,其格式为:[N ,Omegac]=buttord[fp ,fs ,Rp ,Rs ,’s ’],其中fp ,fs ,Rp ,Rs 分别为通带截止频率、阻带起始频率、通带内波动、阻带内最小衰减。
返回值N 为滤波器的最低阶数,Wc 为3dB 截止频率。
2) 巴特沃斯滤波器系数计算:由巴特沃斯滤波器的阶数N 以及3dB 截止频率Omegac 可以计算出对应传递函数H(z)的分子分母系数,MATLAB 提供的命令如下: ● 巴特沃斯低通滤波器系数计算:[b ,a]=butter(N,Omegac),其中b 为H(z)的分子多项式系数,a 为H(z)的分母多项式系数● 巴特沃斯高通滤波器系数计算: [b ,a]=butter(N,Omegac,’High ’) ● 巴特沃斯带通滤波器系数计算:[b ,a]=butter(N ,[Omega1,Omega2]),其中[Omega1,Omega2]为通带截止频率,是2元向量,需要注意的是该函数返回的是2N 阶滤波器系数。
● 巴特沃斯带阻滤波器系数计算:[b ,a]=butter(N ,[Omega1,Omega2],’stop ’),其中[Omega1,Omega2]为通带截止频率,是2元向量,需要注意的是该函数返回的也是2N 阶滤波器系数。
二、巴特沃斯数字滤波器的设计1. 数字滤波器的设计参数滤波器的4个重要的通带、阻带参数为:p f :通带截止频率(Hz ) s f :阻带起始频率(Hz )p R :通带内波动(dB ),即通带内所允许的最大衰减; s R :阻带内最小衰减设采样速率(即奈奎斯特速率)为N f ,将上述参数中的频率参数转化为归一化频率参数:p ω:归一化通带截止频率,)2//(N p p f f =ω;s ω:归一化阻带截至频率,)2//(N s s f f =ω通过以上参数就可以进行数字滤波器的设计。
IIR数字带通巴特沃思滤波器的设计
(1)设计巴特沃斯低通滤波器的步骤:
巴特沃斯型低通逼近是常用的模拟低通滤波器设计方案,其低通滤波器幅度 平方函数的形式为:
f ()
H a ( j) 2
1
1
j jc
2N
,
其中 N 为整数,是滤波器的阶次;Ωc 为截止频率;当Ω=Ωc 时,f(Ω)=1/2,即
Ha ( jc )
subplot(222); plot(w,mag); title('模拟带通滤波器频率响应'); ylabel('|Ha(s)|'); xlabel('模拟角频率(弧度/秒)'); axis([0,XTickLimit,-0.1,1.1]); set(gca,'XTickMode','manual','XTick',[0,Omega,XTickLimit]); set(gca,'YTickMode','manual','YTick',[0,Attn,Ripple,1]); grid;
带通滤波器。
调用 impz.m 求 h(n),并求出 H(z)的 mag, db, phase, grpdelay。
保存所写.m 文件
显示 b,a,并整理成文档,以备写 报告时用
图 2 程序设计流程图
4 实验内容及程序源代码
(1)直接型转级联型函数 dir2cas.m:
function [k0,B,A]=dir2cas(b,a) %直接型转换为级联型 %---------------------------% [k0,B,A]=dir2cas(b,a); %k0 ---增益 %B --- bk 的实系数矩阵 KX3 %A --- ak 的实系数矩阵 KX3 %b --- 直接型有理多项式分子系数 %a --- 直接型有理多项式分母系数 % % compute gain coefficient k0; k0=b(1); b=b/k0;
数字信号处理实验数字巴特沃思滤波器的设计
数字信号处理实验数字巴特沃思滤波器的设计数字信号处理技术是现代通信、音频、图像等领域中不可或缺的一门技术。
数字信号处理的核心是数字滤波器设计,本文将介绍一种常用的数字滤波器——数字巴特沃斯滤波器的设计方法。
一、数字滤波器简介数字滤波器是将连续时间信号转换成离散时间信号,实现对离散时间信号的滤波处理,具有实时性好、精度高、可重复性强等优点。
数字滤波器有两种类型:有限冲激响应(FIR)滤波器和无限冲激响应(IIR)滤波器。
二、数字巴特沃斯滤波器数字巴特沃斯滤波器是一种常用的IIR滤波器,其主要特点是具有平坦的通/阻带,通/阻带边缘陡峭。
因此在实际应用中,数字巴特沃斯滤波器应用较为广泛。
数字巴特沃斯滤波器的设计方法一般包括以下步骤:确定滤波器类型、确定通/阻带的截止频率、确定滤波器的阶数、计算滤波器的系数。
1、确定滤波器类型在实际应用中,数字巴特沃斯滤波器有四种类型:低通、高通、带通和带阻滤波器,应根据实际需求选择。
2、确定通/阻带的截止频率通常情况下,固定本例中采用的是低通滤波器,需要确定的就是通带和阻带的截止频率。
对于低通滤波器,通带截止频率ωc应该比信号频率fs的一半小,阻带截止频率ωs 应该比ωc大一些,通常ωs/ωc取0.5~0.7比较好。
滤波器的阶数一般是与滤波器的性能相关的。
阶数越高,性能越好,但同时计算量也会更大。
在实际应用中,一般取4~8的阶数即可。
4、计算滤波器的系数根据上述参数计算滤波器的系数,这里介绍两种常用的方法:一种是脉冲响应不变法(Impulse Invariant Method),另一种是双线性变换法(Bilinear Transformation)。
脉冲响应不变法是一种较为简单的设计方法,但由于其数字滤波器与连续时间滤波器之间的不同,可能会引入一定程度的失真。
双线性变换法可以使二阶系统和一阶系统的增益分别为1和0dB,这是一种比较理想的设计方法。
四、实验步骤本实验采用Matlab软件进行数字滤波器的设计,具体步骤如下:1、打开Matlab软件,新建一个.m文件;2、输入需要滤波的数字信号,此处可以使用Matlab自带的signal工具箱中的一些模拟信号;4、使用filter函数实现数字滤波器对信号的滤波过程;5、通过比较信号的频谱图,评估滤波器的性能。
IIR数字滤波设计例题
例1试用MATLAB设计一巴特沃斯低通数字滤波器,要求通带截至频率Wp=30HZ,阻带截至频率为Ws=35HZ,通带衰减不大于0.5DB,阻带衰减不小于40DB,抽样频Fs=100HZ。
程序如下:fp = 30;fs = 35;Fs = 100;wp = 2*pi*fp/Fs;ws = 2*pi*fs/Fs;wp = tan(wp/2);ws = tan(ws/2); % 通带最大衰减为0.5dB,阻带最小衰减为40dB[N, wn] = buttord(wp, ws, 0.5, 40, 's'); % 模拟低通滤波器极零点[z, p, k] = buttap(N); % 由极零点获得转移函数参数[b, a] = zp2tf(z, p, k); % 由原型滤波器获得实际低通滤波器[B, A] = lp2lp(b, a, wp);[bz, az] = bilinear(B, A, .5);[h, w] = freqz(bz, az, 256, Fs);figureplot(w, abs(h))grid on运行结果:图省略例2基于Butterworth模拟滤波器原型,使用双线性状换设计数字滤波器:各参数值为:通带截止频率Omega=0.2*pi,阻带截止频率Omega=0.3*pi,通带波动值Rp=1dB,阻带波动值Rs=15dB,设Fs=4000Hz。
程序如下:wp=0.2*pi;ws=0.3*pi;Fs=4000;T=1/Fs;OmegaP=(2/T)*tan(wp/2);OmegaS=(2/T)*tan(ws/2);rp=1;rs=15;as=15;ripple=10^(-rp/20);attn=10^(-rs/20);[n,wn]=buttord(OmegaP,OmegaS,rp,rs,'s');[z,p,k]=Buttap(n);[b,a]=zp2tf(z,p,k);[bt,at]=lp2lp(b,a,wn);[b,a]=bilinear(bt,at,Fs);[db,mag,pha,grd,w]=freqz_m(b,a);%下面绘出各条曲线subplot(2,2,1);plot(w/pi,mag);title('Magnitude Frequency幅频特性');xlabel('w(/pi)');ylabel('|H(jw)|');axis([0,1,0,1.1]);set(gca,'XTickMode','manual','XTick',[0 0.2 0.3 1]);set(gca,'YTickMode','manual','YTick',[0 attn ripple 1]);grid on;subplot(2,2,2);plot(w/pi,db);title('Magnitude Frequency幅频特性(db)');xlabel('w(/pi)');ylabel('dB');axis([0,1,-30,5]);set(gca,'XTickMode','manual','XTick',[0 0.2 0.3 1]);set(gca,'YTickMode','manual','YTick',[-60 -as -rp 0]);grid on;subplot(2,2,3);plot(w/pi,pha/pi);title('Phase Frequency相频特性');xlabel('w(/pi)');ylabel('pha(/pi)');axis([0,1,-1,1]);subplot(2,2,4);plot(w/pi,grd);title('Group Delay群延时');xlabel('w(/pi)');ylabel('Sample');axis([0,1,0,15]);set(gca,'XTickMode','manual','XTick',[0 0.2 0.3 1]);grid运行结果:图省略例3设计一巴特沃斯高通数字滤波器,要求通带截止频率0.6*pi,通带衰减不大于1dB,阻带衰减15DB,抽样T=1。
实验四 IIR数字滤波器的设计2013-5-1
实验四IIR数字滤波器的设计实验涉及的MATLAB子函数impinvar功能:用脉冲响应不变法实现模拟到数字的滤波器变换。
调用格式:[bd,ad]=impinvar(b,a,Fs);将模拟滤波器系数b、a变换成数字的滤波器系数bd、ad,两者的冲激响应不变。
[bd,ad]=impinvar(b,a);采用Fs的缺省值1Hz。
1.buttord功能:确定巴特沃斯(Butterworth)滤波器的阶数和3 dB截止频率。
调用格式:[n ,wn ]=buttord(wp ,ws ,Rp ,As);计算巴特沃斯数字滤波器的阶数和3 dB 截止频率。
其中,0≤wp(或ws)≤1,其值为1时表示0.5Fs 。
Rp 为通带最大衰减指标,As 为阻带最小衰减指标。
[n ,wn ]=buttord(wp ,ws ,Rp ,As ,‘s ’);计算巴特沃斯模拟滤波器的阶数和3 dB 截止频率。
wp 、ws 可以是实际的频率值或角频率值,wn 将取相同的量纲。
Rp 为通带最大衰减指标,As 为阻带最小衰减指标。
当wp>ws 时,为高通滤波器;当wp 、ws 为二元向量时,为带通或带阻滤波器,此时wn 也为二元向量。
2.cheb1ord功能:确定切比雪夫(Chebyshev)Ⅰ型滤波器的阶数和通带截止频率。
调用格式:[n ,wn ]=cheb1ord(wp ,ws ,Rp ,As);计算切比雪夫Ⅰ型数字滤波器的阶数和通带截止频率。
其中,0≤wp(或ws)≤1,其值为1时表示0.5Fs 。
Rp 为通带最大衰减指标,As 为阻带最小衰减指标。
[n ,wn ]=cheb1ord(wp ,ws ,Rp ,As ,¢s¢);计算切比雪夫Ⅰ型模拟滤波器的阶数和通带截止频率。
wp 、ws 可以是实际的频率值或角频率值,wn 将取相同的量纲。
Rp 为通带最大衰减指标,As 为阻带最小衰减指标。
当wp>ws 时,为高通滤波器;当wp 、ws 为二元向量时,则为带通或带阻滤波器,此时wn 也为二元向量。
实验五 IIR滤波器的设计与信号滤波
实验五IIR滤波器的设计与信号滤波一、实验目的设计IIR滤波器,实现对存在加性干扰的时域离散信号进行滤波。
二、实验内容已知带加性干扰的信号用x(n)表示,x(n)=x s(n)+η(n),式中x s(n)是有用的信号,是一个0~0.2πrad的带限信号。
η(n)是一个干扰信号,其频谱分布在0.3πrad以上。
要求设计一个巴特沃斯IIR数字滤波器对信号x(n)进行滤波,将干扰η(n)滤除。
要求在x s(n) 所在的通带内滤波器幅度平坦,在0.2πrad处幅度衰减不大于1dB,在噪声所在的0.3πrad 以上的频带内滤波器幅度衰减大于等于40 dB。
三、实验步骤1. 根据题目要求确定要设计的数字滤波器的技术指标(低通滤波器指标:w p=0.2πrad ,w s=0.3πrad,αp=1dB,αs=40dB);2. 用双线性变换法频率转换公式,将上面的技术指标转换为巴特沃斯模拟滤波器的技术指标;3. 调用MATLAB函数buttord和butter,设计该模拟滤波器;4. 用双线性变换法将设计的模拟滤波器转换为数字滤波器,求出该滤波器的系统函数并画出它的直接型网络结构图;5. 画出该滤波器的幅度特性曲线;6. 根据1所确定的技术指标,调用MATLAB函数buttord和butter,直接设计数字滤波器,观察设计结果与上面用双线性变换法的设计结果是否相同。
8. 滤波仿真:调用MATLAB工具箱函数filter对下面给出的带加性干扰的信号x(n)进行滤波,观察滤波效果(绘制滤波前后信号的时域和频域波形)。
实验信号为心电图信号采样序列,人体心电图信号在测量过程中往往受到工业高频干扰,所以必须经过低通滤波处理后,才能作为判断心脏功能的有用信息。
下面给出一实际心电图信号采样序列样本x(n),其中存在高频干扰。
在实验中,以x(n)作为输入序列,滤除其中的干扰成分。
x(n):={-4, -2, 0, -4, -6, -4, -2, -4, -6, -6,-4, -4, -6, -6, -2, 6, 12, 8, 0, -16,-38, -60, -84, -90, -66, -32, -4, -2, -4, 8,12, 12, 10, 6, 6, 6, 4, 0, 0, 0,0, 0, -2, -4, 0, 0, 0, -2, -2, 0,0, -2, -2, -2, -2, 0}四、实验用MATLAB函数简介filter功能:一维数字滤波器直接Ⅱ型实现函数。
IIR数字滤波器设计原理
IIR 数字滤波器设计原理利用双线性变换设计IIR 滤波器(只介绍巴特沃斯数字低通滤波器的设计),首先要设计出满足指标要求的模拟滤波器的传递函数)(s H a ,然后由)(s H a 通过双线性变换可得所要设计的IIR 滤波器的系统函数)(z H 。
如果给定的指标为数字滤波器的指标,则首先要转换成模拟滤波器的技术指标,这里主要是边界频率s p w w 和的转换,对s p αα和指标不作变化。
边界频率的转换关系为)21tan(2w T =Ω。
接着,按照模拟低通滤波器的技术指标根据相应设计公式求出滤波器的阶数N 和dB 3截止频率c Ω;根据阶数N 查巴特沃斯归一化低通滤波器参数表,得到归一化传输函数)(p H a ;最后,将c sp Ω=代入)(p H a 去归一,得到实际的模拟滤波器传输函数)(s H a 。
之后,通过双线性变换法转换公式11112--+-=z z T s ,得到所要设计的IIR 滤波器的系统函数)(z H 。
步骤及内容1) 用双线性变换法设计一个巴特沃斯IIR 低通数字滤波器。
设计指标参数为:在通带内频率低于π2.0时,最大衰减小于dB 1;在阻带内[]ππ,3.0频率区间上,最小衰减大于dB 15。
2) 以π02.0为采样间隔,绘制出数字滤波器在频率区间[]2/,0π上的幅频响应特性曲线。
3) 程序及图形程序及实验结果如下:%%%%%%%%%%%%%%%%%%%iir_1.m%lskyp%%%%%%%%%%%%%%%%%%rp=1;rs=15;wp=.2*pi;ws=.3*pi;wap=tan(wp/2);was=tan(ws/2);[n,wn]=buttord(wap,was,rp,rs,'s');[z,p,k]=buttap(n);[bp,ap]=zp2tf(z,p,k);[bs,as]=lp2lp(bp,ap,wap);[bz,az]=bilinear(bs,as,.5);[h,f]=freqz(bz,az,256,1);plot(f,abs(h));title('双线性z 变换法获得数字低通滤波器,归一化频率轴'); xlabel('\omega/2\pi');ylabel('低通滤波器的幅频相应');grid;figure;[h,f]=freqz(bz,az,256,100);ff=2*pi*f/100;absh=abs(h);plot(ff(1:128),absh(1:128));title('双线性z 变换法获得数字低通滤波器,频率轴取[0,\pi/2]'); xlabel('\omega');ylabel('低通滤波器的幅频相应');grid on;运行结果:00.050.10.150.20.250.30.350.40.450.500.10.20.30.40.50.60.70.80.91双线性z 变换法获得数字低通滤波器,归一化频率轴ω/2π低通滤波器的幅频相应00.20.40.60.81 1.2 1.4 1.600.10.20.30.40.50.60.70.80.91双线性z 变换法获得数字低通滤波器,频率轴取[0,π/2]ω低通滤波器的幅频相应。
iir数字滤波器的设计方法
iir数字滤波器的设计方法IIR数字滤波器的设计方法IIR数字滤波器是一种常用的数字信号处理工具,用于对信号进行滤波和频率域处理。
其设计方法是基于传统的模拟滤波器设计技术,通过将连续时间滤波器转换为离散时间滤波器来实现。
本文将介绍IIR数字滤波器的设计方法和一些常见的实现技巧。
一、IIR数字滤波器的基本原理IIR数字滤波器是一种递归滤波器,其基本原理是将输入信号与滤波器的系数进行加权求和。
其输出信号不仅与当前输入值有关,还与之前的输入和输出值有关,通过不断迭代计算可以得到最终的输出结果。
二、IIR数字滤波器的设计步骤1. 确定滤波器的类型:低通滤波器、高通滤波器、带通滤波器或带阻滤波器。
2. 确定滤波器的阶数:阶数决定了滤波器的陡峭度和性能。
3. 选择滤波器的截止频率或通带范围。
4. 根据所选的滤波器类型和截止频率,设计滤波器的模拟原型。
5. 将模拟原型转换为数字滤波器。
三、IIR数字滤波器的设计方法1. 巴特沃斯滤波器设计方法:- 巴特沃斯滤波器是一种最常用的IIR数字滤波器,具有平坦的通带特性和陡峭的阻带特性。
- 设计方法为先将模拟滤波器转换为数字滤波器,然后通过对模拟滤波器进行归一化来确定截止频率。
2. 阻带衰减设计方法:- 阻带衰减设计方法是一种通过增加滤波器的阶数来提高滤波器阻带衰减特性的方法。
- 通过增加阶数,可以获得更陡峭的阻带特性,但同时也会增加计算复杂度和延迟。
3. 频率变换方法:- 频率变换方法是一种通过对滤波器的频率响应进行变换来设计滤波器的方法。
- 通过对模拟滤波器的频率响应进行变换,可以得到所需的数字滤波器。
四、IIR数字滤波器的实现技巧1. 级联结构:- 将多个一阶或二阶滤波器级联起来,可以得到更高阶的滤波器。
- 级联结构可以灵活地实现各种滤波器类型和阶数的设计。
2. 并联结构:- 将多个滤波器并联起来,可以实现更复杂的频率响应。
- 并联结构可以用于设计带通滤波器和带阻滤波器。
iir数字滤波器的设计步骤
IIR数字滤波器的设计步骤1.简介I I R(In fi ni te Im pu l se Re sp on se)数字滤波器是一种常用的数字信号处理技术,它的设计步骤可以帮助我们实现对信号的滤波和频率选择。
本文将介绍I IR数字滤波器的设计步骤。
2.设计步骤2.1确定滤波器的类型I I R数字滤波器的类型分为低通滤波器、高通滤波器、带通滤波器和带阻滤波器。
根据信号的要求,我们需确定所需滤波器的类型。
2.2确定滤波器的规格根据滤波器的应用场景和信号特性,我们需确定滤波器的通带范围、阻带范围和衰减要求。
2.3选择滤波器的原型常用的I IR数字滤波器有巴特沃斯滤波器、切比雪夫滤波器和椭圆滤波器等。
根据滤波器的需求,我们需选择适合的滤波器原型。
2.4设计滤波器的传递函数根据滤波器的规格和选定的滤波器原型,我们需计算滤波器的传递函数。
传递函数表示了输入和输出之间的关系,可以帮助我们设计滤波器的频率响应。
2.5对传递函数进行分解将滤波器的传递函数进行分解,可得到II R数字滤波器的差分方程。
通过对差分方程进行相关计算,可以得到滤波器的系数。
2.6滤波器的稳定性判断根据滤波器的差分方程,判断滤波器的稳定性。
稳定性意味着滤波器的输出不会无限增长,确保了滤波器的可靠性和准确性。
2.7选择实现方式根据滤波器的设计需求和实际应用场景,我们需选择I IR数字滤波器的实现方式。
常见的实现方式有直接I I型、级联结构和并行结构等。
2.8优化滤波器性能在设计滤波器后,我们可以对滤波器的性能进行优化。
优化包括滤波器的阶数和抗混淆能力等方面。
3.总结I I R数字滤波器的设计步骤包括确定滤波器的类型和规格、选择滤波器的原型、设计滤波器的传递函数、对传递函数进行分解、判断滤波器的稳定性、选择实现方式和优化滤波器性能等。
通过这些步骤的实施,我们可以有效地设计出满足信号处理需求的II R数字滤波器。
实验四 IIR数字滤波器设计
实验四 IIR数字滤波器设计一、实验目的1、熟悉用双线性变换法设计IIR数字滤波器的原理与方法;2、熟悉用脉冲响应不变法设计IIR数字滤波器的原理与方法。
二、实验内容1、已知低通滤波器的指标为:通带边缘频率:0.4π,Ap=0.5dB;阻带边缘频率:0.6π,As=50dB;a、采用脉冲响应不变法设计巴特沃斯,T=1.画出幅度响应和数字滤波器的脉冲响应h(n);b、b、采用脉冲响应不变法设计巴特沃斯,T=1.画出幅度响应和数字滤波器的脉冲响应h(n)。
2、用双线性变换法设计低通滤波器,满足技术指标wp=0.2π,Ap=0.25dB;ws=0.4π,As=50dB,并对方波信号进行滤波,画出滤波前后的波形图并进行简要分析3、设计一个数字高通滤波器H(z),它用在结构xa(t)A/D H(z) D/A ya(t)中,满足下列要求:a、采样速率为10kHZ;b、阻带边缘频率为1.5kHZ,衰减为40dB;c、通带边缘频率为2kHZ,衰减为3dB;d、单调的通带和阻带。
4、设计一个带阻滤波器,要求通带上下截止频率为0.8π,0.2π,通带内衰减不大于1dB,阻带起始频率为0.7π,0.4π,阻带内衰减不小于30dB。
设计巴特沃斯带阻滤波器并画出该数字高通滤波器的幅度响应和脉冲响应。
三、实验程序及解释和实验分析及图形1a、clear;close all; %清屏wp=0.4*pi;ws=0.6*pi;Ap=0.5As=50;T=1;Fs=1/T;OmegaP=wp/T;OmegaS=ws/T;[cs,ds]=afd_butt(OmegaP,OmegaS,Ap,As);[b,a]=impinvar(cs,ds,Fs);[h,w]=freqz(b,a);subplot(2,2,1);plot(w/pi,abs(h));title('幅度响应');grid;subplot(2,2,2);plot(w/pi,angle(h));title('相位响应');grid;subplot(2,2,2);plot(w/pi,angle(h));title('相位响应');grid;subplot(2,2,3);plot(w/pi,20*log(abs(h)));title('幅度响应dB');grid;n=[0:1:59];imp=[1;zeros(59,1)];y=filter(b,a,imp);subplot(2,2,4);plot(n,y);title('脉冲响应');grid;分析:因为w=Ωt,w与Ω呈线性关系,所以其相位响应图是线性的,如相位响应图所示;因为其设计的是低通滤波器,所以会把其高频部分滤掉,留下低频,从而不是特别陡峭,如脉冲响应图所示。
实验五IIR数字滤波器的设计
实验五IIR数字滤波器的设计实验五: IIR数字滤波器的设计1. 通过模拟滤波器原型设计一个butterworth模拟低通滤波器,要求通带截止频率fp=2kHz, 通带最大衰减Rp=1dB, 阻带截止频率fp=2kHz, 阻带最小衰减As=20dB,%巴特沃斯模拟滤波器fp=2000;Omgp=2*pi*fp; %输入滤波器的通带截止频率fs=5000;Omgs=2*pi*fs; %输入滤波器的阻带截止频率Rp=1;As=20; %输入滤波器的通阻带衰减指标[n,Omgc]=buttord(Omgp,Omgs,Rp,As,'s')%计算n阶模拟低通原型,得到左半平面零极点[z0,p0,k0]=buttap(n); %由滤波器阶数N求模拟滤波器原型b0=k0*real(poly(z0)) %求滤波器系数b0a0=real(poly(p0)) %求滤波器系数a0[H,Omg]=freqs(b0,a0); %求系统的频率特性subplot(2,1,1); plot(Omg*Omgc/(2*pi),abs(H)),gridaxis([0,6000,0,1.1])subplot(2,1,2); plot(Omg*Omgc/(2*pi),angle(H)),gridaxis([0,6000,-4,4])思考题:1. 结合基本原理理解每一条语句的意义2. buttord命令实现了什么功能? buttap命令实现了什么功能?2.所得出的系统的频率特性是否满足了所要求的性能指标?1计算滤波器介数n和3db截止频率,buttap(n)计算n阶巴特沃斯归一化模拟低通原型滤波器系统的零,极点和增益因子。
2满足性能指标,2. 采用双线性变换法设计一个butterworth数字低通滤波器,要求:通带截止频率wp=0.25pi, 通带最大衰减Rp=1dB, 阻带截止频率wp=0.4pi,阻带最小衰减As=15dB,滤波器采样频率Fs=100Hz.%双线性变换法设计巴特沃斯数字低通滤波器%数字滤波器指标wp=0.25*pi; %滤波器的通带截止频率ws=0.4*pi; %滤波器的阻带截止频率Rp=1;As=15; %输入滤波器的通阻带衰减指标ripple=10^(-Rp/20);Attn=10^(-As/20);%转换为模拟原型滤波器指标Fs=100;T=1/Fs;Omgp=(2/T)*tan(wp/2);Omgs=(2/T)*tan(ws/2);%模拟原型滤波器计算[n,Omgc]=buttord(Omgp,Omgs,Rp,As,'s') %计算阶数n和截止频率[z0,p0,k0]=buttap(n); %归一化切比雪夫1型原型设计ba=k0*real(poly(z0)); %求原型滤波器系数baa=real(poly(p0)); %求原型滤波器系数a[ba1,aa1]=lp2lp(ba,aa,Omgc);%变换为模拟低通滤波器%注意,以上4行求滤波器系数ba1、aa1的程序,可由下一条程序替代%[ba1,aa1]=butter(n,Omgc,'s'); %直接求模拟滤波器系数%用双线性变换法计算数字滤波器系数[bd,ad]=bilinear(ba1,aa1,Fs) %双线性变换[sos,g]=tf2sos(bd,ad) %由直接型变换为级联型%求数字系统的频率特性[H,w]=freqz(bd,ad);dbH=20*log10(abs(H)/max(abs(H))); %化为分贝值%subplot(2,2,1),plot(w/pi,abs(H));ylabel('|H|');title('幅度响应');axis([0,1,0,1.1]);set(gca,'XTickMode','manual','XTick',[0,0.25,0.4,1]);set(gca,'YTickMode','manual','YTick',[0,Attn,ripple,1]);grid subplot(2,2,2),plot(w/pi,angle(H)/pi);ylabel('\phi');title('相位响应');axis([0,1,-1,1]);set(gca,'XTickMode','manual','XTick',[0,0.25,0.4,1]);set(gca,'YTickMode','manual','YTick',[-1,0,1]);grid subplot(2,2,3),plot(w/pi,dbH);title('幅度响应(dB)'); ylabel('dB');xlabel('频率(\pi)');axis([0,1,-40,5]);set(gca,'XTickMode','manual','XTick',[0,0.25,0.4,1]);set(gca,'YTickMode','manual','YTick',[-50,-15,-1,0]);grid subplot(2,2,4),zplane(bd,ad);axis([-1.1,1.1,-1.1,1.1]);title('零极图');思考题:1. 结合基本原理理解每一条语句的意义2. 所得出的系统的频率特性是否满足了所要求的性能指标?3.根据零极点图判断系统是否为稳定系统?1.系统的频率特性满足了所要求的性能指标2.为稳定系统。
实验四 数字低通巴特沃斯滤波器的设计
实验四 数字低通巴特沃斯滤波器的设计数字滤波器的设计方法 波器H(S);进行频率变换,将其转换为高通、带通、带阻滤波器;再用脉冲响应不变法或双线性变换法从模拟滤波器转换为数字滤波器。
对单极点的N 阶H(S)用部分展开式:)-(k 1)(S S A S H KNK ∑==冲激响应不变法取H(S)的单阶极点Sk 的指数函数sF KS e作为H (Z )的极点)-(111)(-=∑=z eA z H sF ks KNK双线性变换法是用⎥⎦⎤⎢⎣⎡+-=--11112Z Z T S 代换H (S )中的S 得到H(Z),双线性变换法可完全消除频率混叠失真但存在非线性频率失真,而冲激响应不变法存在混叠失真。
在不同的设计阶段MATLAB 的信号处理工具箱都给出了相应的滤波器设计函数,这些函数代表了不同类型的逼近函数的滤波器,常用的有巴特沃斯滤指标如下:通带截止频率:WP =1000HZ, 通带最大衰减:RP=3dB 阻带截止频率:Ws =2000HZ, 阻带最小衰减:Rs=40 dB 参考程序butter1.m2. 用冲激响应不变法和双线性变换法将一模拟低通滤波器转换为数字低通滤波器并图释H(S)和H(Z),采样频率Fs =1000Hz 频率特性应包括幅频、相频特性2.理论计算模拟低通原型滤波器的阶数和极点分布,说明实验中所用的冲激响应不变法和双线性变换法的原理及其编程根据3.总结实验体会及实验中存在的问题 1.双线性变换法和冲激响应不变法比较有何优点? 巴特沃斯滤波器为例介绍设计函数的功能和用法,其它设计函数的用法类似。
(1)求最小阶数N 的函数buttord调用格式1:[N, Wn] = BUTTORD(Wp, Ws, Rp, Rs, 's') ✧ 功能:求出巴特沃斯模拟滤波器的最小阶数N 和频率参数Wn ✧ 说明:Wp, Ws,为通带截止频率和阻带截止频率如式所示;sstop s f f W π2=,为时域采样频率其中s spass p f f f W ,2π=Rp, Rs 为通带最大衰减 Apass(dB)和阻带最小衰减Astop(dB)如式)(lg 20)d ()()(lg20220p passpassf j f j j eH B eH e H A ππ-==)(lg 20)d ()()(lg20220s stopstopf j f j j eH B eH e H A ππ-== 's'对应模拟滤波器。
音频滤波中ButterWorth法IIR数字滤波器的设计
(3)MATLAB 既具有结构化的控制语句(如 for 循环,while 循环,break 语句和 if 语句),又有面向对象编程的特性。
MATLAB 主要特点: (1)语言简洁紧凑,使用方便灵活,库函数极其丰富。MATLAB 程序书写形式自由, 利用起丰富的库函数避开繁杂的子程序编程任务,压缩了一切不必要的编程工作。由于
1
辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)
库函数都由本领域的专家编写,用户不必担心函数的可靠性。可以说,用 MATLAB 进行科 技开发是站在专家的肩膀上。
3 基于MATLAB的数字滤波器设计 ........................................... 6
3.1 语音信号的采集与频谱分析 ............................................ 6 3.2 噪音信号的构建与分析 ................................................ 7 3.3 ButterWorth法IIR滤波器的设计 ........................................ 8 3.4 加噪信号滤波与频谱分析 .............................................. 9
论文成绩:
答辩成绩:
总成绩 :
指导教师签字: 年月日
目录
1 引言 ..................................................................... 1
巴特沃斯带阻数字滤波器设计matlab程序及仿真图
fs=15000;T= 1/fs;rp=1;rs=40;wp1=0.11*pi;wp2=0.81*pi;ws1=0.31*pi;ws2=0.61*pi;%数字带阻滤波器技术指标wc1=(2/T)*tan(wp1/2);%频率预畸变wc2=(2/T)*tan(wp2/2);wr1=(2/T)*tan(ws1/2);wr2=(2/T)*tan(ws2/2);w0=sqrt(wc1*wc2);B=wc2-wc1;wp=1;%归一化通带截止频率ws=wp*(wr1*B) / (w0^2-wr1^2) ; %归一化阻带截止频率[N,wc]=buttord(wp,ws,rp,rs,'s')%求滤波器阶数和3dB截止频率[Z,P,K]=buttap(N)%设计模拟低通滤波器[Md,Nd]=zp2tf(Z,P,K)%将零极点形式转换为传输函数形式[M,N]=lp2bs(Md,Nd,w0,B)%对低通滤波器进行频率变换,转换为带阻滤波器[h,w]=freqs(M,N);%模拟带阻滤波器的幅频响应plot(w/(2*pi),abs(h));grid;xlabel('频率Hz');ylabel('幅度');title('模拟带阻滤波器');[b,a]=bilinear(M,N,15000)%对模拟滤波器双线性变换figure(1);freqz(b,a);[H,W]=freqz(b,a); %绘出频率响应;axis([0,1,-100,20]);figure(2);plot(W*fs/(2*pi),abs(H));grid on;xlabel('频率/Hz');ylabel('幅值');n=0:199;t=n/fs;x=sin(2*pi*400*t)+3*sin(2*pi*3000*t)+2*sin(2*pi*5000*t);figure(3);subplot(311);plot(t,x);axis([0,0.01,-5,5]);title('输入信号');grid on;y=filter(b,a,x);subplot(312);stem(y,'.');title('输出序列');grid on;ya=y*sinc(fs*(ones(length(n),1)*t-(n/fs)'*ones(1,length(t))));subplot(313);plot(t,ya);axis([0,0.01,-3,3]);title('输出波形');grid on;t=(0:100)/fs;figure(4)fs=1.5*10000;n=(0:100)/fs;f=sin(2*pi*400*t)+3*sin(2*pi*3000*t)+2*sin(2*pi*5000*t);y=fftfilt(b,x);[H1,f1]=freqz(f,[1]);[H2,f2]=freqz(y,[1]);f1=f1/pi*fs/2;f2=f2/pi*fs/2;subplot(2,1,1);plot(f1,abs(H1));title('输入信号的频谱');subplot(2,1,2);plot(f2,abs(H2));title('输出信号的频谱');00.10.20.30.40.50.60.70.80.91-800-600-400-200Normalized Frequency (⨯π rad/sample)P h a s e (d e g r e e s )00.10.20.30.40.50.60.70.80.91-100-50Normalized Frequency (⨯π rad/sample)M a g n i t u d e (d B )1000200030004000500060007000800000.20.40.60.811.21.4频率/Hz幅值00.0010.0020.0030.0040.0050.0060.0070.0080.0090.01-505输入信号020406080100120140160180200-22输出序列0.0010.0020.0030.0040.0050.0060.0070.0080.0090.01-202输出波形01000200030004000500060007000800050100150200输入信号的频谱010002000300040005000600070008000102030输出信号的频谱N =4wc =1.7947b =0.0186 -0.0410 0.1082 -0.1355 0.1810 -0.1355 0.1082 -0.0410 0.0186a =1.0000 -0.6707 -1.3750 0.5678 1.1964 -0.2996 -0.4631 0.0496 0.0762>。
巴特沃斯阶跃阻抗低通滤波器设计
巴特沃斯阶跃阻抗低通滤波器设计引言巴特沃斯阶跃阻抗低通滤波器是一种常用于信号处理和电子电路设计中的滤波器类型。
它的设计原理是通过调整滤波器的阶数和截止频率,来实现对输入信号的频率成分进行筛选和衰减。
本文将详细介绍巴特沃斯阶跃阻抗低通滤波器的设计方法及其在实际应用中的一些注意事项。
巴特沃斯阶跃阻抗低通滤波器概述巴特沃斯阶跃阻抗低通滤波器是一种I IR(无无限冲激响应)滤波器,具有平坦的通带、陡峭的衰减特性以及相对较低的群延迟。
它广泛应用于音频处理、通信系统等领域。
巴特沃斯滤波器的设计步骤1.确定滤波器的阶数(n):阶数决定了滤波器的衰减程度和复杂度,一般取偶数值。
2.确定滤波器的截止频率(f c):截止频率即信号通过滤波器时频率衰减到原来的1/√2,是决定滤波器频率特性的关键参数。
3.计算滤波器的极点位置:根据巴特沃斯滤波器的特性方程,计算极点位置。
4.标准化滤波器:对计算得到的极点位置进行标准化处理,使得滤波器的截止频率为1。
巴特沃斯滤波器设计实例以下是一个以设计一个4阶巴特沃斯阶跃阻抗低通滤波器为例的设计过程。
步骤1:确定滤波器的阶数我们选择设计一个4阶的巴特沃斯阶跃阻抗低通滤波器。
步骤2:确定滤波器的截止频率假设我们需要将信号的截止频率设置在1k H z。
步骤3:计算滤波器的极点位置根据巴特沃斯滤波器的特性方程,我们可以计算出滤波器的极点位置。
对于一个4阶的巴特沃斯低通滤波器,其极点位置可以通过下式计算得到:p_k=-s in h(π*fc)*s in(π*(2k-1)/(2n)),k=1,2,...,n式中,f c是截止频率,n是滤波器阶数。
步骤4:标准化滤波器标准化滤波器是将计算得到的极点位置通过变换使得滤波器的截止频率为1。
标准化后的滤波器的特性方程为:H(s)=1/((s+p1)(s+p2)...(s+pn))巴特沃斯滤波器的应用注意事项-在实际设计中,应根据需要调整滤波器的阶数和截止频率,以满足对信号的频率特性要求。
iir数字滤波器实验报告
iir数字滤波器实验报告IIR数字滤波器实验报告引言:数字滤波器是数字信号处理中重要的组成部分,它可以对信号进行滤波和去噪,提取出我们所需要的信息。
在本次实验中,我们将重点研究和实验IIR数字滤波器的性能和应用。
一、IIR数字滤波器的原理IIR(Infinite Impulse Response)数字滤波器是一种递归滤波器,它的输出不仅与当前输入有关,还与之前的输入和输出有关。
IIR滤波器的结构可以由巴特沃斯、切比雪夫等滤波器设计方法得到。
与FIR(Finite Impulse Response)数字滤波器相比,IIR滤波器具有更低的计算复杂度和更好的频率响应特性。
二、IIR数字滤波器的设计在本次实验中,我们选择了巴特沃斯滤波器作为IIR滤波器的设计方法。
巴特沃斯滤波器是一种理想的低通滤波器,具有平坦的通带和陡峭的阻带。
通过选择不同的阶数和截止频率,我们可以得到不同性能的滤波器。
三、IIR数字滤波器的性能评估为了评估IIR数字滤波器的性能,我们进行了一系列实验。
首先,我们使用MATLAB软件进行了滤波器的设计和模拟。
通过绘制滤波器的频率响应曲线和幅度响应曲线,我们可以直观地了解滤波器的性能。
其次,我们使用真实的信号进行了滤波实验。
通过对比滤波前后信号的波形和频谱图,我们可以评估滤波器的去噪和频率特性。
四、IIR数字滤波器的应用IIR数字滤波器在实际应用中具有广泛的用途。
例如,语音信号处理中常用的降噪算法就是基于IIR滤波器的。
此外,IIR滤波器还可以用于信号增强、图像处理等领域。
通过调整滤波器的参数,我们可以实现不同的滤波效果,满足不同应用场景的需求。
五、实验结果与讨论在本次实验中,我们设计了一个二阶巴特沃斯低通滤波器,截止频率为1kHz。
通过MATLAB软件模拟和实际信号滤波实验,我们得到了滤波前后信号的波形和频谱图。
实验结果表明,滤波器能够有效地去除高频噪声,并保留低频信号的主要成分。
同时,滤波器的频率响应也符合设计要求,具有良好的通带和阻带特性。
巴特沃斯模拟带阻滤波
数字IIR带阻滤波器设计(基于巴特沃斯滤波法)学院:指导老师:姓名:学号:目录1、带阻滤波器的指标规范 (3)2、带阻滤波器的系数计算 (6)3、带阻滤波器的实现结构 (9)4、有效字长效应分析 (10)5、带阻滤波器的软件实现 (12)数字IIR带阻滤波器的设计(基于巴特沃斯法)1、带阻滤波器的设计规范:本设计中分别用h(t)、H a(s)、Ha(j )表示模拟滤波器的a单位脉冲相应、系统函数、频率响应函数,三者的关系如下:Ha(s) = LT[ha(t)] =⎰∞∞-)(t ha e st -dtHa(j Ω)=FT[ha(t)] =⎰∞∞-)(t ha e t j Ω-dt可以用h a (t)、H a (s)、Ha(j Ω)中任一个描述模拟滤波器,也可以用线性常系数微分方程描述模拟滤波器。
但是设计模拟滤波器时,设计指标一般由幅频相应函数|Ha(j Ω)|给出,而模拟滤波器设计就是根据设计指标,求系统函数H a (s)。
工程实际中通常用所谓的损耗函数即衰减函数A (Ω)来描述滤波器的幅频响应特性,对归一化幅频响应函数,A (Ω)定义如下:A (Ω)=-20lg|Ha(j Ω)|=-10lg|Ha(j Ω)|2 dB模拟带阻滤波器的设计指标参数有Ω1p 、Ω1s 、Ω0、Ωsu 、Ωpu 。
Ω1p 和Ωpu 分别表示带阻滤波器的通带下边界频率和通带上边界频率;Ω1s 和Ωsu 分别表示带阻滤波器的阻带下边界频率和阻带上边界频率。
δ1和δ2分别称为通带和阻带波纹幅度图1、带阻滤波器带阻滤波器的技术指标要求必须是几何对称的。
如果带阻滤波器不是几何对称的,为了使对称的带阻滤波器满足最小阻带衰减要求,在由非对称的带阻滤波器变换为对称的带阻滤波器时,保留非对称带阻滤波器的阻带截止频率调整两个通带截止频率中的一个,调整过程步骤如下:(1)计算Ω02=Ω1sΩsu(2)计算p1Ω=2puΩΩ,如果p1Ω>Ω1p,用p1Ω代替Ω1p;(3)如果p1Ω≤Ω1p ,计算puΩ=21pΩΩ,并用puΩ代替Ωpu;(4)如果A1p≠A2p,选择A P=min{ A1p, A2p}。
实验四 IIR数字滤波器设计
图I 5阶Butterworth 数字高通滤波器试验四IIR 数字滤波器的设计与MATLAB 实现一、试验目的:1、要求把握∏R 数字滤波器的设计原理、方法、步骤。
2、能够依据滤波器设计指标进行滤波器设计。
3、把握数字巴特沃斯滤波器和数字切比雪夫滤波器的设计原理和步骤。
二、试验原理:∏R 数字滤波器的设计方法:频率变换法、数字域直接设计以及计算机帮助等。
这里只介绍频率变换法。
由模拟低通滤波器到数字低通滤波器的转换,基本设计 过程:1、将数字滤波器的设计指标转换为模拟滤波器指标2、设计模拟滤波器G (S )3、将G (S )转换为数字滤波器H (Z )在低通滤波器设计基础上,可以得到数字高通、带通、带阻滤波器的设计流程如 下:1、给定数字滤波器的设计要求(高通、带通、带阻)2、转换为模拟(高通、带通、带阻)滤波器的技术指标3、转换为模拟低通滤波器的指标4、设计得到满意3步骤中要求的低通滤波器传递函数5、通过频率转换得到模拟(高通、带通、带阻)滤波器6、变换为数字(高通、带通、带阻)滤波器三、标准数字滤波器设计函数MATLAB 供应了一组标准的数字滤波器设计函数,大大简化了滤波器设计过程。
1 > butter例题1设计一个5阶Butterworth 数字高通滤波器,阻带截止频率为250Hz ,设 采样频率为IKHz.I k H J-∣H ∏ t er (5. 250/500.' high')L z, ∣>, kJ but i er(5t 250 500, , ∣∣ i glιt)f r eqz (b 1 5 I 2, I 000)50 100 150 200 250 300 350 400 450 500 Frequency (Hz) o o o o opo 1 3 in 3 3w=⅛e2 50 100 150 200 250 300 350 400 450 500 Fιequetιcy (Hz) - A ・ > A ・o o o o o o o o o 力 o o 1 -23 < 京⅛cy.⅛)φseud2、chebyl 和cheby2例题2设,十一个7阶chebyshevll型数字低通滤波器,截止频率为3000Hz,Rs=30dB,采样频率为IKHz。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.巴特沃斯带阻IIR数字滤波器设计
1.设计思路—基于冲激响应不变法的IIR数字滤波器设计
冲激响应不变法的设计原理是利用数字滤波器的单位抽样响应序列H(z)来逼近模拟滤波器的冲激响应g(t)。
按照冲激响应不变法的原理,通过模拟滤波器的系统传递函数G(s),可以直接求得数字滤波器的系统函数H(z),其转换步骤如:
(1)利用ω=ΩT(可由关系式Z=e sT推导出),将ωp, ωs转换成Ωp, Ωs ,而αp,αs不变;
(2)
求解低通模拟滤波器的传递函数G(s);
(3)将模拟滤波器的传递函数G(s)转换为数字滤波器的传递函数H(z)。
尽管通过冲激响应不变法求取数字滤波器的系统传递函数比较方便,并具有良好的时域逼特性,但若G(s)不是带限的,或是抽样频率不高,那么在H(e jω)中将发生混叠失真,数字滤波器的频率响应不能重现模拟滤波器的频率响应。
只有当模拟滤波器的频率响应在超过折叠频率后的衰减很大时,混叠失真才很小,此时采样脉冲响应不变法设计的数字滤波器才能满足设计的要求,这是冲激响应不变法的一个严重的缺点。
2.设计要求及方案
设计一带阻巴斯沃特IIR滤波器,要求如下:
带纹波为Rp=1dB,
通带上、下限角频率为0.11π、0.81π,
阻带上、下限角频率为0.31π、0.61π,
阻带最小衰减αs=40dB,采样频率f s=15000Hz
3.用MTALAB算法设计巴特沃斯带阻IIR数字滤波器
fs=15000;T=1/fs;
rp=1;rs=40;
wp1=0.11*pi;wp2=0.81*pi;ws1=0.31*pi;ws2=0.61*pi; %数字带阻滤波器技术指标
wc1=(2/T)*tan(wp1/2); %频率预畸变
wc2=(2/T)*tan(wp2/2);wr1=(2/T)*tan(ws1/2);wr2=(2/T)*tan(ws2/2);
w0=sqrt(wc1*wc2);B=wc2-wc1;
wp=1; %归一化通带截止频率
ws=wp*(wr1*B)/(w0^2-wr1^2); %归一化阻带截止频率
[N,wc]=buttord(wp,ws,rp,rs,'s'); %求滤波器阶数和3dB截止频率
[Z,P,K]=buttap(N);
[Md,Nd]=zp2tf(Z,P,K); %将零极点形式转换为传输形式[M,N]=lp2bs(Md,Nd,w0,B); %对低通滤波器进行频率变换,转换为带阻滤波器[h,w]=freqs(M,N); %模拟带阻滤波器的幅频响应
plot(w/(2*pi,abs(h)));grid; >> xlabel('频率/Hz');ylabel('幅度');title('模拟带阻滤波器');
[b,a]=bilinear(M,N,15000); %对模拟滤波器双线性变换
figure(1);
freqz(b,a);[H,W]=freqz(b,a); %绘出频率响应
axis([0,1,-100,20]);
figure(2);
plot(W*fs/(2*pi),abs(H));grid on;
xlabel('频率/Hz');ylabel('幅值');
title('数字滤波器幅频响应|H(ejOmega)| ');
仿真出的幅频响应曲线图如下图2.1所示:
图2.1:幅频响应曲线
相频特性及幅度特性曲线如下图2.2所示:
图2.2:相频特性与幅度特性曲线
fs=15000;T= 1/fs; rp=1;rs=40;
wp1=0.11*pi;wp2=0.81*pi;ws1=0.31*pi;ws2=0.61*pi;%数字带阻滤波器技术指标wc1=(2/T)*tan(wp1/2);%频率预畸变
wc2=(2/T)*tan(wp2/2);
wr1=(2/T)*tan(ws1/2);
wr2=(2/T)*tan(ws2/2);
w0=sqrt(wc1*wc2);
B=wc2-wc1;
wp=1;%归一化通带截止频率
ws=wp*(wr1*B) / (w0^2-wr1^2) %归一化阻带截止频率
[N,wc]=buttord(wp,ws,rp,rs,'s')%求滤波器阶数和3dB截止频率
[Z,P,K]=buttap(N)%设计模拟低通滤波器
[Md,Nd]=zp2tf(Z,P,K)%将零极点形式转换为传输函数形式
[M,N]=lp2bs(Md,Nd,w0,B)%对低通滤波器进行频率变换,转换为带阻滤波器[h,w]=freqs(M,N);%模拟带阻滤波器的幅频响应
plot(w/(2*pi),abs(h));grid;
xlabel('频率Hz');ylabel('幅度');title('模拟带阻滤波器');
[b,a]=bilinear(M,N,15000)%对模拟滤波器双线性变换
figure(1);
reqz(b,a);[H,W]=freqz(b,a); %绘出频率响应;
axis([0,1,-100,20]);
figure(2);
plot(W*fs/(2*pi),abs(H));grid on;
xlabel('频率/Hz');
ylabel('幅值');
n=0:199;t=n/fs;
x=sin(2*pi*400*t)+3*sin(2*pi*3000*t)+2*sin(2*pi*5000*t);
figure(3);
subplot(311);plot(t,x);axis([0,0.01,-5,5]);
title('输入信号');grid on;
y=filter(b,a,x);
subplot(312);stem(y,'.');title('输出序列');grid on;
ya=y*sinc(fs*(ones(length(n),1)*t-(n/fs)'*ones(1,length(t))));
subplot(313);plot(t,ya);axis([0,0.01,-3,3]);title('输出波形');grid on;
t=(0:100)/fs;
figure(4);
fs=1.5*10000;
n=(0:100)/fs;
f=sin(2*pi*400*t)+3*sin(2*pi*3000*t)+2*sin(2*pi*5000*t);
y=fftfilt(b,x);
[H1,f1]=freqz(f,[1]);
[H2,f2]=freqz(y,[1]);
f1=f1/pi*fs/2;
f2=f2/pi*fs/2;
subplot(2,1,1);plot(f1,abs(H1));title('输入信号的频谱'); subplot(2,1,2);plot(f2,abs(H2));title('输出信号的频谱');。