实验六 IIR滤波器的matlab实现
实验六 IIR滤波器的matlab实现.doc实验六 IIR滤波器的matlab实现.doc实验六 IIR滤波器的matlab实现
实验六IIR滤波器的matlab实现一、实验目的和任务1.理解并掌握IIR数字滤波器的机理;2. 掌握设计IIR数字滤波器的原理和方法;3. 观察IIR滤波器的频域特性。
二、实验原理1、IIR数字滤波器与FIR数字滤波器的区别1.1、单位响应IIR数字滤波器单位响应为无限脉冲序列,而FIR数字滤波器单位响应为有限的;FIR滤波器,也就是“非递归滤波器”,没有引入反馈。
这种滤波器的脉冲响应是有限的。
1.2、幅频特性IIR数字滤波器幅频特性精度很高,不是线性相位的,可以应用于对相位信息不敏感的音频信号上;FIR数字滤波器的幅频特性精度较之于IIR数字滤波器低,但是线性相位,就是不同频率分量的信号经过fir滤波器后他们的时间差不变,这是很好的性质。
1.3、实时信号处理FIR数字滤波器是有限的单位响应也有利于对数字信号的处理,便于编程,用于计算的时延也小,这对实时的信号处理很重要。
2、设计步骤:(1)、给定技术指标转换为模拟低通原型设计性能指标。
(2)、估计满足性能指标的模拟低通性能阶数和截止频率。
(3)、设计模拟低通原型。
(4)、由模拟低通原型经频率变换获得模拟低通、高通、带通或带阻滤波器。
(5)、利用脉冲响应不变法或双线性不变法,实现模拟滤波器到数字滤波器的映射。
三、IIR滤波器的设计一:IIR一阶低通滤波器clear;fi=1;fs=10;Gc2=0.9;wc=2*pi*fi/fs;omegac=tan(wc/2);alpha=(sqrt(Gc2)/sqrt(1-Gc2))*omegac;a=(1-alpha)/(1+alpha);b=(1-a)/2;w=0:pi/300:pi;Hw2=alpha^2./(alpha^2+(tan(w/2)).^2);plot(w/pi,Hw2);grid;hold on;00.10.20.30.40.50.60.70.80.9100.10.20.30.40.50.60.70.80.91二:一阶高通滤波器clear;fi=1;fs=10;Gc2=0.5;wc=2*pi*fi/fs;omegac=tan(wc/2);alpha=(sqrt(1-Gc2)/(sqrt(Gc2)))*omegac;a=(1-alpha)/(1+alpha);b=(1+a)/2;w=0:pi/300:pi;Hw2=(tan(w/2).^2)./(alpha^2+(tan(w/2)).^2);plot(w/pi,Hw2);grid;hold on;00.10.20.30.40.50.60.70.80.9100.10.20.30.40.50.60.70.80.91三:Notch 嵌波滤波器clear;Gb2=0.5;w0=0.35*pi;deltaw=0.1*pi;b=1/(1+tan(deltaw/2)*(sqrt(1-Gb2)/sqrt(Gb2)));B=[1 -2*cos(w0) 1].*b;A=[1 -2*b*cos(w0) (2*b-1)];w=0:pi/500:pi;H=freqz(B,A,w);plot(w/pi,abs(H));grid;00.10.20.30.40.50.60.70.80.9100.20.40.60.811.2四:Peak 滤波器clear;Ac=3;Gb2=10^(-Ac/10);w0=0.35*pi;deltaw=0.1*pi;b=1/(1+tan(deltaw/2)*(sqrt(Gb2)/sqrt(1-Gb2)));B=[1 0 -1].*(1-b);A=[1 -2*b*cos(w0) (2*b-1)];w=0:pi/500:pi;H=freqz(B,A,w);plot(w/pi,abs(H));grid;00.10.20.30.40.50.60.70.80.9100.10.20.30.40.50.60.70.80.91。
基于MATLAB的IIR滤波器的设计及应用
基于MATLAB的IIR滤波器的设计及应用IIR滤波器是一种无限脉冲响应滤波器,其设计和应用常常基于MATLAB进行。
在设计IIR滤波器时,首先需要确定滤波器的规格要求,例如带通或带阻滤波器、截止频率以及通带和阻带的最大衰减要求等。
设计IIR滤波器常用的方法有Butterworth、Chebyshev和Elliptic 等。
其中,Butterworth滤波器在通带区具有最平坦的幅频特性,而Chebyshev和Elliptic滤波器在通带和阻带区的幅频特性则更陡峭。
选择滤波器的类型取决于应用的具体需求。
通过MATLAB可以使用“butter”函数设计Butterworth滤波器,使用“cheby1”或“cheby2”函数设计Chebyshev滤波器,使用“ellip”函数设计Elliptic滤波器。
这些函数可以指定滤波器的类型、阶数、截止频率和衰减要求等参数。
设计得到的滤波器系数可以用于滤波器的实施。
IIR滤波器在信号处理领域有广泛的应用。
其中,带通滤波器用于从原始信号中提取感兴趣的频率成分,例如心电图中的QRS波群。
带阻滤波器则用于去除原始信号中的频率成分,例如去除电源线频率的干扰。
此外,IIR滤波器还可用于音频信号处理、图像处理等领域。
MATLAB提供了多种方法来应用IIR滤波器。
可以使用“filter”函数对信号进行滤波处理,其中需指定滤波器的系数和待滤波的信号。
另外,MATLAB还提供了“filtfilt”函数进行无相位滤波,即正向和反向滤波,从而减小滤波器的相应延迟。
总之,基于MATLAB的IIR滤波器设计和应用是信号处理领域的常见任务。
通过选择适当的滤波器类型和参数,可以实现对信号的滤波处理,满足各种应用的需求。
MATLAB提供了丰富的函数和工具,便于设计、实施和应用IIR滤波器。
信号滤波IIR实现matlab的实现
实验十一信号滤波1、对周期方波信号进行滤波% 用IIR 滤波器实现clcclearFs=1000; %随实际信号频率适当选择t=0:1/Fs:1;x=square(2*pi*10*t);%产生幅度为[-1,1]的方波% x=sawtooth(2*pi*10*t,0.5); %产生幅度为[-1,1]的三角波plot(t,x)title('矩形波')axis([0,0.4,-1.5,1.5]) %限定输出图形的坐标范围大小%求方波的频谱T=0.1; %取一个周期数据进行采样t1=0:1/Fs:(T-1/Fs);xn=square(2*pi*10*t1); %取样N=Fs*T;Xk=fft(xn,N); %算N点FFT频谱Xk=fftshift(abs(Xk));Xkl=Xk/N;figurestem(Fs/N*[0:1:N-1],Xkl)title('方波信号的频谱')[n,Wn]=buttord(10/500,80/500,3,40);% 确定butterworth滤波器的阶次,% 前两个参数如何设定?[b,a]=butter(n,Wn); %确定滤波器传递函数figurefreqs(b,a); %滤波器频率特性title('滤波器频率特性')y=filter(b,a,x); %滤波figureplot(t,y)title('矩形波通过低通滤波器后的波形')axis([0,0.4,-1.5,1.5])s=randn(1,1001); %信号叠加噪声为什么是1001点?xs=x+s;figureplot(t,xs)title('信号叠加噪声的波形')%axis([0,0.5,-2,2])N=512; %加噪音信号的频谱fx=fftshift(fft(xs,N));figuref=(-N/2:(N/2-1))*2;f=f*Fs/N;plot(f,abs(fx))title('加噪声的频谱')yl=filter(b,a,xs); %采用filter函数滤波figureplot(t,yl)%滤波后的波形title('滤波后的波形')%axis([0,0.5,-2,2])figurefxs=fftshift(fft(yl,N)); %滤波后波形的频谱f=(-N/2:(N/2-1))*2;f=f*Fs/N;plot(f,abs(fxs))title('滤波后的频谱')2、对混有噪声的音乐信号进行滤波clcclearmusic=wavread('C:\MATLAB7\toolbox\dspblks\ dspdemos\dspafsx_mono.wav');music=music'; % dspafsx_mono.wav文件地址随系统安装位置不同而异a=size(music)%利用media player观察音乐持续时间为3s,信号的采样点数为60000,可知信号的采样频率为20KHzmusic=decimate(music,2);%音乐的采样频率降低为10KHzt=0:0.0001:(3-0.0001);x=sin(2*pi*1000*t)+sin(2*pi*3000*t); %加入两个正弦信号噪声,1kHz和3kHzmx=music+x;sound(music)%用sound函数播放mono.wav音乐文件%sound(mx)figuresubplot(3,1,1),plot(t,music),title('音乐信号')subplot(3,1,2),plot(t,x),title('正弦信号')subplot(3,1,3),plot(t,mx),title('叠加正弦干扰的音乐信号')N=512; %叠加干扰后,信号的频谱Fmx=fftshift(fft(mx,N));f=-N/2:1:(N/2-1);f=f*10000/N;figureplot(f, Fmx)title('叠加干扰后,信号的频谱')[b1,a1]=butter(2,[900/5000,1100/5000],'stop');%直接II型IIR带阻滤波器[b2,a2]=butter(2,[2800/5000,3200/5000],'stop');bt=conv(b1,b2);at=conv(a1,a2);%梳状滤波器传递函数系数bt, atfigurefreqz(bt,at); % 梳状滤波器频率响应title('梳状滤波器频率响应')y2=filter(bt,at,mx);figuresubplot(3,1,1),plot(t,music),title('音乐信号')subplot(3,1,2),plot(t,mx),title('叠加正弦干扰的音乐信号')subplot(3,1,3),plot(t,y2),title('滤波后的信号')%sound(y2)N=512; %滤波后信号的频谱Fmxl=fftshift(fft(y2,N));f=-N/2:1:(N/2-1);f=f*10000/N;figureplot(f,Fmxl)title('滤波后信号的频谱')%用filtfilt函数实现零相位滤波y3=filtfilt(bt,at,mx);figuresubplot(3,1,1),plot(t,music),title('音乐信号')subplot(3,1,2),plot(t,y2),title('非零相位滤波后的信号')subplot(3,1,3),plot(t,y3),title('零相位滤波后的信号') %sound(y3)。
基于MATLAB的IIR和FIR滤波器的设计与实现要点
基于MATLAB的IIR和FIR滤波器的设计与实现要点IIR和FIR滤波器是数字信号处理中常用的滤波器设计方法,它们分别基于无限脉冲响应(IIR)和有限脉冲响应(FIR)的理论基础。
本文将对基于MATLAB的IIR和FIR滤波器的设计与实现要点进行详细的介绍。
1.滤波器设计方法IIR滤波器设计方法主要有两种:基于模拟滤波器的方法和基于离散系统的方法。
前者将模拟滤波器的传递函数转化为离散滤波器的传递函数,常用方法有:脉冲响应不变法、双线性变换法等,MATLAB中提供了相关函数实现这些方法。
后者直接根据滤波器的要求设计离散系统的传递函数,常用方法有:Butterworth、Chebyshev等,MATLAB中也提供了相应的函数实现这些方法。
2.滤波器参数的选择选择合适的滤波器参数是IIR滤波器设计中的关键步骤。
根据滤波器的型号和设定的滤波器规格,主要需要选择的参数包括:滤波器阶数、截止频率、通带和阻带的衰减等。
一般情况下,滤波器阶数越高,滤波器的性能越好,但计算量也会增加,所以需要进行权衡。
3.滤波器实现方法基于MATLAB的IIR滤波器可以通过直接的形式或级联形式实现。
直接形式直接使用传递函数的表达式计算输出样本;级联形式则将传递函数分解为多个较小的子滤波器,逐级计算输出样本,并将各级输出进行累加。
选择哪种形式取决于具体的应用需要和滤波器的阶数。
4.滤波器性能评估设计好IIR滤波器后,需要对其性能进行评估,判断滤波器是否满足要求。
主要评估指标包括:幅频响应、相频响应、群延迟等。
MATLAB提供了多种绘制频域和时域响应曲线的函数,可以用来评估IIR滤波器的性能。
1.滤波器设计方法FIR滤波器设计主要有两种方法:窗函数法和最优化法。
窗函数法是最简单的设计方法,它通过对理想滤波器的频率响应进行窗函数加权来获得滤波器的时域响应,常用的窗函数有:矩形窗、汉宁窗、布莱克曼窗等。
最优化法则通过优化其中一种准则函数,如最小二乘法、Chebyshev等,得到最优的FIR滤波器。
利用MATLAB设计IIR滤波器
利用MATLAB设计IIR滤波器IIR滤波器是一种数字滤波器,它基于无限脉冲响应(Infinite Impulse Response)的概念。
与FIR滤波器相比,IIR滤波器具有更高的灵活性和更小的计算复杂度。
MATLAB是一种强大的数学软件,它提供了丰富的信号处理工具箱,可以用于设计、分析和实现各种数字滤波器,包括IIR滤波器。
设计IIR滤波器的一种常用方法是脉冲响应不变方法(Impulse Invariance Method)。
下面将以该方法为例,介绍如何使用MATLAB设计IIR滤波器。
首先,我们将使用MATLAB的`iirdesign`函数来设计IIR滤波器。
该函数的语法如下:```matlab[b, a] = iirdesign(wp, ws, rp, rs);```其中,`wp`是通带截止频率,`ws`是阻带截止频率,`rp`是通带衰减,`rs`是阻带衰减。
`b`和`a`分别代表滤波器的分子和分母系数。
例如,我们希望设计一个低通IIR滤波器,通带截止频率为0.4π,阻带截止频率为0.6π,通带衰减为3dB,阻带衰减为40dB。
则可以使用以下代码:```matlabwp = 0.4 * pi;ws = 0.6 * pi;rp = 3;rs = 40;[b, a] = iirdesign(wp, ws, rp, rs);```设计完成后,我们可以使用MATLAB的`freqz`函数来绘制滤波器的频率响应曲线。
代码示例如下:```matlab[H, w] = freqz(b, a);mag = 20 * log10(abs(H));figure;plot(w/pi, mag);xlabel('Normalized Frequency');ylabel('Magnitude (dB)');```上述代码中,`freqz`函数返回滤波器的频率响应`H`和频率向量`w`。
IIR数字滤波器的MATLAB实现
第6章 IIR 数字滤波器的MATLAB 实现6.1 实验目的● 要求掌握IIR 数字滤波器的设计原理、设计方法和设计步骤; ● 能根据给定的滤波器指标进行滤波器设计;● 掌握数字巴特沃斯滤波器、数字切比雪夫滤波器的设计原理和步骤;6.2 实验原理及实例分析6.2.1 IIR 数字滤波器的传递函数及特点设IIR 滤波器的输入序列为x(n),则IIR 滤波器的输入序列x(n)与输出序列y(n)之间的关系可以用下面的方程式表示:)()()(1j n x a i n x b n y Nj j M i i -+-=∑∑==其中,j a 和i b 是滤波器的系数,其中j a 中至少有一个非零。
与之相对应的差分方程为:NN M M z a z a z b z b b z X z Y Z H ------++==....1....)()()(11110由传递函数可以发现无限常单位冲激响应滤波器有如下特点: (1) 单位冲激响应h(n)是无限长的。
(2) 系统传递函数H(z)在有限z 平面上有极点存在。
(3) 结构上存在着输出到输入的反馈,也就是结构上是递归型的。
6.2.2 IIR 数字滤波器的设计与实现IIR 数字滤波器的设计有多种方法,如频率变换法、数字域直接设计以及计算辅助设计等。
下面只介绍频率变换设计法。
首先考虑由模拟低通滤波器到数字低通滤波器的转换,其基本的设计过程如下:(1) 将数字滤波器的技术指标转换为模拟滤波器的技术指标; (2) 设计模拟滤波器G(S);(3) 将G(S)转换成数字滤波器H(Z);在低通滤波器的设计基础上,可以得到数字高通、带通、带阻滤波器的设计流程如下:(1)给定数字滤波器的设计要求(高通、带阻、带通);(2)转换为模拟(高通、带阻、带通)滤波器的技术指标;(3)转换为模拟低通滤波器的指标;(4)设计得到满足第三步要求的低通滤波器传递函数;(5)通过频率转换得到模拟(高通、带阻、带通)滤波器;(6)变换为数字(高通、带阻、带通)滤波器。
matlab iir低通滤波器设计
I. 简介Matlab是一种非常常用的科学计算软件,它广泛用于信号处理、图像处理、控制系统等领域。
在信号处理中,IIR(Infinite Impulse Response)滤波器是一种常见的数字滤波器,常被用于模拟滤波、数字滤波等应用中。
这篇文章将介绍如何使用Matlab进行IIR低通滤波器的设计。
II. 什么是IIR低通滤波器1. IIR滤波器IIR滤波器是一种数字滤波器,其特点是其单位脉冲响应是无限长的。
它通常具有较为复杂的频率响应特性,且具有较小的阶数,能够更好地逼近某些复杂的频率响应曲线。
IIR滤波器分为低通滤波器、高通滤波器、带通滤波器和带阻滤波器等。
2. 低通滤波器低通滤波器是一种常见的滤波器,其特点是只允许低频信号通过,而抑制高频信号。
在信号处理中,低通滤波器常被用于去除高频噪声、提取低频信号等应用中。
III. Matlab中的IIR低通滤波器设计1. 使用Matlab进行IIR低通滤波器设计Matlab提供了丰富的信号处理工具箱,包括了数字滤波器设计工具。
在Matlab中,可以使用函数butter、cheby1、cheby2、ellip等来设计IIR低通滤波器。
2. 设计步骤设计IIR低通滤波器的一般步骤如下:a. 确定通带和阻带的频率范围b. 选择滤波器的通带和阻带的最大允许衰减c. 选择滤波器的类型(Butterworth、Chebyshev等)以及阶数d. 使用Matlab中相应的函数设计滤波器e. 对设计的滤波器进行频率响应分析IV. 实例分析以下是一个在Matlab中设计IIR低通滤波器的简单实例:设计IIR低通滤波器fs = 1000; 采样频率fpass = 100; 通带截止频率fstop = 200; 阻带截止频率apass = 1; 通带最大允许衰减astop = 80; 阻带最小要求衰减[num, den] = butter(4, fpass/(fs/2), 'low');freqz(num, den, 512, fs); 绘制滤波器频率响应曲线V. 结论使用Matlab进行IIR低通滤波器设计是一种简单而有效的方法。
iir数字滤波器的设计matlab
iir数字滤波器的设计matlab摘要:1.IIR数字滤波器简介2.MATLAB在IIR数字滤波器设计中的应用3.设计实例与分析4.结论正文:一、IIR数字滤波器简介IIR(无限脉冲响应)数字滤波器是数字信号处理中的重要组成部分,其设计方法与模拟滤波器设计密切相关。
在设计IIR数字滤波器时,需要确定采样间隔或采样频率,将数字滤波器的指标转化为模拟滤波器的指标,然后根据模拟滤波器的指标设计模拟滤波器。
最后,通过冲激响应不变法和双线性变换法,将模拟滤波器的冲激响应转化为数字滤波器的冲激响应。
二、MATLAB在IIR数字滤波器设计中的应用MATLAB以其强大的计算和仿真能力,在数字滤波器设计中得到了广泛的应用。
设计师可以利用MATLAB的函数和工具箱,方便地实现IIR数字滤波器的设计、仿真和分析。
三、设计实例与分析以下是一个基于MATLAB的IIR数字滤波器设计实例:1.确定设计指标:通带截止频率为1kHz,阻带截止频率为2kHz,通带波纹小于1dB,阻带衰减大于40dB。
2.利用MATLAB的函数,如freqz、butter等,设计模拟低通滤波器。
3.将模拟滤波器的参数转化为数字滤波器的参数,如采样频率、阶数等。
4.利用MATLAB的函数,如impulse、bode等,对数字滤波器进行仿真和分析。
四、结论通过以上实例,可以看出MATLAB在IIR数字滤波器设计中的重要作用。
它不仅提供了方便的设计工具,还能实时地展示滤波器的性能,大大提高了设计效率和精度。
此外,IIR数字滤波器的设计方法和MATLAB的应用也可以推广到其他数字信号处理领域,如音频处理、图像处理等。
matlab冲激响应不变法设计iir低通滤波器
一、引言Matlab是一款功能强大的工程仿真软件,多用于信号处理,通信系统,控制系统等方面的研究和应用。
在Matlab中,设计IIR(Infinite Impulse Response)滤波器是很常见的任务,其中冲激响应不变法是一种常用的设计方法,特别是针对所需的低通滤波器。
本文将介绍在Matlab中如何利用冲激响应不变法设计IIR低通滤波器。
二、IIR滤波器简介IIR滤波器是指其冲激响应具有无限长度的滤波器。
与FIR(Finite Impulse Response)滤波器相比,IIR滤波器具有更窄的过渡带和更陡峭的截止带,同时能够用更少的参数来达到相似的性能。
在数字信号处理中,IIR滤波器常常用于对信号进行滤波和增强。
三、冲激响应不变法的基本原理冲激响应不变法是一种通用的IIR滤波器设计方法,其基本原理是将所需的模拟滤波器(一般为巴特沃斯或切比雪夫滤波器)的冲激响应与仿真采样进行一一映射,从而得到对应的数字IIR滤波器的参数。
这样设计得到的数字IIR滤波器的频率响应与模拟滤波器的频率响应基本一致。
四、Matlab中的冲激响应不变法设计IIR滤波器在Matlab中,利用signal processing toolbox中的iirdesign函数可以很方便地实现冲激响应不变法设计IIR滤波器。
下面是一个使用iirdesign函数设计低通滤波器并绘制其频率响应的示例代码:```matlabFs = 1000; 采样频率Fpass = 100; 通带截止频率Fstop = 150; 阻带截止频率Apass = 1; 通带最大衰减Astop = 60; 阻带最小衰减designmethod = 'butter'; 巴特沃斯滤波器[b, a] = iirdesign(Fpass/(Fs/2), Fstop/(Fs/2), Apass, Astop, designmethod);freqz(b, a, 1024, Fs); 绘制滤波器频率响应```上述代码中,首先定义了采样频率Fs,通带和阻带的截止频率Fpass 和Fstop,以及通带最大衰减Apass和阻带最小衰减Astop。
iir数字滤波器的设计matlab
iir数字滤波器的设计matlabIIR数字滤波器的设计(Matlab)数字滤波器是一种用于信号处理的重要工具,可以对信号进行滤波、去噪和频率分析等操作。
其中,IIR(Infinite Impulse Response)数字滤波器是一种常见的数字滤波器,具有无限冲激响应的特点。
本文将介绍如何使用Matlab设计IIR数字滤波器。
首先,我们需要明确设计IIR数字滤波器的目标。
通常,设计IIR数字滤波器的目标是在满足一定的频率响应要求的前提下,使得滤波器的阶数尽可能低。
这样可以减少计算量和延迟,提高滤波器的实时性。
在Matlab中,可以使用`designfilt`函数来设计IIR数字滤波器。
该函数提供了多种设计方法和滤波器类型的选择。
常见的设计方法有巴特沃斯(Butterworth)、切比雪夫(Chebyshev)和椭圆(Elliptic)等。
这些方法在满足不同的频率响应要求和阶数限制方面有所不同。
以巴特沃斯滤波器为例,我们可以使用以下代码来设计一个低通滤波器:```matlabfs = 1000; % 采样频率fc = 100; % 截止频率order = 4; % 阶数[b, a] = butter(order, fc/(fs/2), 'low'); % 设计低通滤波器freqz(b, a); % 绘制滤波器的频率响应曲线```在上述代码中,`fs`表示采样频率,`fc`表示截止频率,`order`表示滤波器的阶数。
`b`和`a`分别是滤波器的分子和分母系数。
`butter`函数根据给定的阶数、截止频率和滤波器类型来设计滤波器。
设计完成后,我们可以使用`freqz`函数来绘制滤波器的频率响应曲线。
该函数可以显示滤波器的幅度响应和相位响应。
通过观察频率响应曲线,我们可以了解滤波器的频率特性,以及是否满足设计要求。
除了低通滤波器,我们还可以设计高通、带通和带阻滤波器。
例如,以下代码可以设计一个带通滤波器:```matlabfs = 1000; % 采样频率f1 = 100; % 通带下限频率f2 = 200; % 通带上限频率order = 4; % 阶数[b, a] = butter(order, [f1/(fs/2), f2/(fs/2)], 'bandpass'); % 设计带通滤波器freqz(b, a); % 绘制滤波器的频率响应曲线```在上述代码中,`f1`和`f2`分别表示带通滤波器的通带下限频率和通带上限频率。
基于MATLAB的IIR滤波器的设计
基于MATLAB的IIR滤波器的设计一、引言数字滤波是数字信号处理中的重要部分,它用于从输入信号中去除噪声、抑制干扰、改变频谱等。
IIR滤波器(Infinite Impulse Response,无限冲激响应滤波器)是一种数字滤波器,其特点是具有无限长度的冲激响应。
本文将介绍基于MATLAB的IIR滤波器的设计方法及实现。
二、IIR滤波器的基本原理IIR滤波器根据其传递函数的特性可分为低通、高通、带通和带阻滤波器。
其传递函数一般由差分方程表示,即y(n) = b(0)x(n) + b(1)x(n-1) + ... + b(nb)x(n-nb) - a(1)y(n-1) - ... - a(na)y(n-na)其中,y(n)为输出信号,x(n)为输入信号,b(k)和a(k)为滤波器的系数。
根据滤波器的类型和具体设计要求,可以通过选择适当的系数来设计出满足要求的IIR滤波器。
在MATLAB中,可以利用信号处理工具箱中的函数来实现IIR滤波器的设计。
以下是一种基于MATLAB的IIR滤波器设计流程:1.确定滤波器的类型和设计要求。
根据具体应用场景,选择滤波器的类型(低通、高通、带通或带阻),并确定滤波器的截止频率、通带增益、阻带增益等设计要求。
2. 利用信号处理工具箱中的函数进行滤波器设计。
MATLAB提供了多种函数来设计IIR滤波器,其中常用的有butter、cheby1、cheby2、ellip等。
这些函数可以根据设计要求自动生成滤波器的系数。
3. 通过查看滤波器的幅频响应、冲激响应、相位响应等来评估滤波器的性能。
MATLAB提供了freqz、impz、grpdelay等函数来实现对IIR滤波器性能的评估。
4. 利用设计好的滤波器对输入信号进行滤波。
可以利用filter函数对输入信号进行滤波处理,得到输出信号。
四、实例演示下面通过一个实际的例子来展示如何利用MATLAB设计和实现IIR滤波器。
例:设计一个低通IIR滤波器,截止频率为2kHz,阻带增益为40dB。
IIR数字滤波器的MATLAB实现
实验六IIR数字滤波器的MATLAB实现1.忽略2.低通,采样频率为1Hz,通带临界频率f p =0.2Hz,通带内衰减小于1dB(αp=1);阻带临界频率f s=0.3Hz,阻带内衰减大于25dB(αs=25)。
设计一个数字滤波器满足以上参数。
% Matlab使用归一化的频率参数(临界频率除以采样频率的1/2)。
%这样临界频率参数的取值范围在0和1之间,1代表Fs/2(用角频率表示的时候对应π)程序如下:FS=1 ;[n,Wn]=buttord(0.2/(FS/2),0.3/( FS /2),1,25);[b,a]=butter(n,Wn);freqz(b,a,512, FS);运行结果为:3.低通,采样频率为1Hz,通带临界频率f p =0.2Hz,通带内衰减小于1dB(αp=1);阻带临界频率f s=0.3Hz,阻带内衰减大于25dB(αs=25)。
设计一个数字滤波器满足以上参数。
程序如下:FS=1 ;[n,Wn]=buttord(0.2*2*pi,0.3*2*pi,1,25,'s'); %临界频率采用角频率表示[b,a]=butter(n,Wn,'s');%freqs(b,a) %设计模拟的[bz,az]=impinvar(b,a,FS); %映射为数字的freqz(bz,az,512,FS)4.基于chebyshev1型模拟滤波器原型使用冲激不变转换方法设计数字滤波器,要求具有下面的参数指标:通带截止频率:π2.0=Ωp 通带波动值:dB R p 1=阻带截止频率:π3.0=Ωs 阻带波动值:dB A s 15=程序 如下:FS=10;T=1/FS;fp=0.2;fs=0.3;wp=fp/FS*2*pi;ws=fs/FS*2*pi;OmegaP=2*FS*tan(wp/2);OmegaS=2*FS*tan(ws/2);[n,Wn]=cheb1ord(OmegaP,OmegaS,1,15,'s')[b,a]=cheby1(n,1,Wn,'high','s');freqs(b,a) %设计模拟的[bz,az]=bilinear(b,a,FS); %映射为数字的freqz(bz,az,512,FS)bz,az5.一个椭圆数字滤波器的设计,要求采用双线性变换方法,指标参数如下:通带截止频率:π2.0=Ωp 通带波动值:dB R p 5.1=阻带截止频率:π3.0=Ωs 阻带波动值:dB A s 20=程序 如下:FS=1%通带、阻带截止频率Fl=0.2;Fh=0.3;%频率预畸wp=(Fl/FS)*2*pi; %临界频率采用角频率表示ws=(Fh/FS)*2*pi; %临界频率采用角频率表示OmegaP=2*FS*tan(wp/2);OmegaS=2*FS*tan(ws/2);[n,Wn]=buttord(OmegaP,OmegaS,1.5,20,'s');[b,a]=butter(n,Wn,'s');%freqs(b,a) %设计模拟的[bz,az]=bilinear(b,a,FS); %映射为数字的freqz(bz,az,512,FS,'whole')。
IIR滤波器的MATLAB实现
2、IIR 滤波器的MATLAB 实现2.1 IIR 滤波器的设计方法及原理IIR 数字滤波器是一种离散时间系统,其系统函数为:)()(1)(10z x z y z a zb Z H N k kk Mk kk =-=∑∑=-=- 假设M ≤N ,当M >N 时,系统函数可以看作一个IIR 的子系统和一个(M-N)的FIR 子系统的级联。
IIR 数字滤波器的设计实际上是求解滤波器的系数k a 和k b ,它是数学上的一种逼近问题,即在规定意义上(通常采用最小均方误差准则)去逼近系统的特性。
如果在S 平面上去逼近,就得到模拟滤波器;如果在z 平面上去逼近,就得到数字滤波器。
2.1.1 用脉冲相应不变法设计IIR 数字滤波器利用模拟滤波器来设计数字滤波器,也就是使数字滤波器能模仿模拟滤波器的特性,这种模仿可以从不同的角度出发。
脉冲响应不变法是从滤波器的脉冲响应出发,使数字滤波器的单位脉冲响应序列h(n)模仿模拟滤波器的冲激响应ha(t),即将ha(t)进行等间隔采样,使h(n)正好等于ha(t)的采样值,满足 )()(nT h n h a =式中,T 是采样周期。
如果令Ha(s)是ha(t)的拉普拉斯变换,H(z)为h(n)的Z 变换,利用采样序列的Z 变换与模拟信号的拉普拉斯变换的关系得(1-1)则可看出,脉冲响应不变法将模拟滤波器的S 平面变换成数字滤波器的Z 平面,这个从s 到z 的变换z =e sT 是从S 平面变换到Z 平面的标准变换关系式。
⎪⎭⎫ ⎝⎛-=Ω-=∑∑∞-∞=∞-∞==k T j s X T jk s X T z X k a s k a e z sTπ21)(1)(图1-1脉冲响应不变法的映射关系由(1-1)式,数字滤波器的频率响应和模拟滤波器的频率响应间的关系为(1-2)这就是说,数字滤波器的频率响应是模拟滤波器频率响应的周期延拓。
正如采样定理所讨论的,只有当模拟滤波器的频率响应是限带的,且带限于折叠频率以内时,即(1-3)才能使数字滤波器的频率响应在折叠频率以内重现模拟滤波器的频率响应,而不产生混叠失真,即|ω|<π (1-4) 但是,任何一个实际的模拟滤波器频率响应都不是严格限带的,变换后就会产生周期延拓分量的频谱交叠,即产生频率响应的混叠失真,如图7-4所示。
IIR数字滤波器的MATLAB实现
IIR 数字滤波器的MATLAB 实现一、实验目的:1、要求掌握IIR 数字滤波器的设计原理、设计方法和设计步骤;2、能根据给定的滤波器指标进行滤波器设计;3、掌握数字巴特沃斯滤波器、数字切比雪夫滤波器的设计原理和步骤;二、实验原理:1 IIR 数字滤波器的传递函数及特点设IIR 滤波器的输入序列为x(n),则IIR 滤波器的输入序列x(n)与输出序列y(n)之间的关系可以用下面的方程式表示: 其中,ja 和ib 是滤波器的系数,其中ja 中至少有一个非零。
与之相对应的差分方程为:2 IIR 数字滤波器的设计与实现IIR 数字滤波器的设计,主要采用间接法,即:首先设计出低通模拟滤波器H(S);进行频率变换,将其转换为高通、带通、带阻滤波器;再用脉冲响应不变法或双线性变换法从模拟滤波器转换为数字滤波器。
对单极点的N 阶H(S)用部分展开式:冲激响应不变法取H(S)的单阶极点Sk 的指数函数sF KS e 作为H (Z )的极点双线性变换法是用⎥⎦⎤⎢⎣⎡+-=--11112Z Z T S 代换H (S )中的S 得到H(Z),双线性变换法可完全消除频率混叠失真但存在非线性频率失真,而冲激响应不变法存在混叠失真。
在不同的设计阶段MATLAB 的信号处理工具箱都给出了相应的滤波器设计函数,这些函数代表了不同类型的逼近函数的滤波器,常用的有巴特沃斯滤波器、切比雪夫滤波器、椭圆滤波器类型。
MATLAB 工具箱中的函数。
三、实验内容与步骤:1、基于chebyshev1型模拟滤波器原型使用冲激响应不变法设计数字滤波器,要求具有下面的参数指标:通带截止频率:0.1pπΩ=通带波动值:2pR dB=阻带截止频率:0.4sπΩ=阻带波动值:18sA dB=程序原代码如下:clear;close all;wp=0.1*pi;ws=0.4*pi;Rp=2;As=18;%参数T=1;Rip=10^(-Rp/20);Atn=10^(-As/20);[N,OmgC]=cheb1ord(wp*T,ws*T,Rp,As,'s');[cs,ds]=cheby1(N, Rp, OmgC,'s');[b,a]=impinvar(cs,ds,T);[db,mag,pha,grd,w]=freqz_m(b,a);subplot(2,2,1);plot(w/pi,mag);title('幅频特性');xlabel('w(/pi)');ylabel('|H(jw)|');axis([0,1,0,1.1]);set(gca,'XTickMode','manual','XTick',[0 0.1 0.4 0.5 1]); set(gca,'YTickMode','manual','YTick',[0 Atn Rip 1]);grid subplot(2,2,2);plot(w/pi,db);title('幅频特性(db)');xlabel('w(/pi)');ylabel('dB');axis([0,1,-40,5]);set(gca,'XTickMode','manual','XTick',[0 0.1 0.4 0.5 1]); set(gca,'YTickMode','manual','YTick',[-40 -As -Rp 0]);grid subplot(2,2,3);plot(w/pi,pha/pi);title('相频特性');xlabel('w(/pi)');ylabel('pha(/pi)');axis([0,1,-1,1]);set(gca,'XTickMode','manual','XTick',[0 0.1 0.4 0.5 1]);gridsubplot(2,2,4);plot(w/pi,grd);title('群延时');xlabel('w(/pi)');ylabel('Sample'); axis([0,1,0,12]);set(gca,'XTickMode','manual','XTick',[0 0.1 0.4 0.5 1]);grid %所使用的M 文件函数function [db,mag,pha,grd,w]=freqz_m(b,a)%滤波器的幅值响应(相对、绝对)、相位响应及群延迟 [H,w]=freqz(b,a,500); %500点的复频响应 mag=abs(H); %绝对幅值响应 db=20*log10(mag/max(mag)); %相对幅值响应 pha=angle(H); %相位响应 grd=grpdelay(b,a,w); %群延迟响应 实验图:2、(1) 用双线性变换法设计一个巴特沃斯低通IIR 数字滤波器。
基于MATLAB的IIR滤波器的设计
基于MATLAB的IIR滤波器的设计IIR (Infinite Impulse Response) 滤波器是一种数字滤波器,由其无限长的冲激响应函数所定义。
MATLAB中提供了强大而灵活的工具来设计和实现IIR滤波器。
在本文中,我们将探讨基于MATLAB的IIR滤波器设计的原理、步骤以及一些常见的应用实例。
IIR滤波器设计的原理:IIR滤波器设计的基本原理是将滤波器的传递函数表示为分子多项式和分母多项式的比值。
分母多项式是滤波器的极点,分子多项式是滤波器的零点。
通过选择合适的极点和零点,可以实现不同的滤波特性,如低通滤波、高通滤波、带通滤波等。
MATLAB中的IIR滤波器设计步骤:1.确定所需滤波器的规格:确定滤波器的类型(低通、高通、带通等),截止频率,衰减等级等。
2. 设计滤波器的理想传递函数:根据滤波器的规格,使用MATLAB中的相应函数(例如,butter、cheby1、cheby2等)设计滤波器的理想传递函数。
3. 转换理想传递函数为一阶和二阶部分:使用MATLAB中的函数(例如,tf2sos、zpk2sos等)将理想传递函数转换为一阶和二阶部分。
4.选择滤波器的实现方式:根据设计要求,选择IIR滤波器的直接形式、传输形式或级联形式等实现方式。
5. 将设计好的IIR滤波器进行实现:使用MATLAB中的函数(例如,filter、dfilt)来实现设计好的IIR滤波器。
IIR滤波器设计的应用实例:1.语音信号处理:IIR滤波器在语音信号处理中广泛应用,可以提取语音信号中的特定频率成分,如去除噪声、语音增强等。
2.图像处理:IIR滤波器可用于图像处理中的边缘检测、平滑处理、锐化处理等。
3.生物医学信号处理:IIR滤波器在生物医学信号处理中常用于心电图(ECG)滤波、脑电图(EEG)滤波等。
4.控制系统:IIR滤波器可以用于控制系统中的数模转换、滤波、模拟信号转数字信号等。
总结:MATLAB提供了强大而灵活的工具来设计和实现IIR滤波器。
基于matlab的iir数字滤波器的设计
基于matlab的iir数字滤波器的设计数字滤波器是数字信号处理中的重要组成部分,IIR数字滤波器是其中常用的一种类型,它采用了反馈结构,具有延迟时间较短和可调节性强等优点。
本文将介绍如何基于MATLAB实现IIR数字滤波器的设计方法。
1. 设计参数的确定在设计IIR数字滤波器之前,首先需要确定一些参数,如滤波器的类型、截止频率和阶数等。
通常来说,可以先根据系统需求选择滤波器的类型和截止频率,在此基础上再确定阶数和滤波器的反馈结构。
2. 滤波器的设计步骤在MATLAB软件中设计IIR数字滤波器主要包括以下步骤:(1) 调用MATLAB中的“fdtool”函数,打开滤波器设计工具界面。
(2) 在滤波器设计工具界面中,选择所需要的滤波器类型和截止频率等参数。
(3) 根据选择的参数计算出滤波器的系数,并在界面上显示出来。
(4) 在设计完成后,可以通过MATLAB中的“filter”函数对输入信号进行滤波处理。
3. 采用反馈结构设计IIR数字滤波器在滤波器系数计算完毕后,MATLAB会默认生成IIR数字滤波器的直接形式,但是直接形式计算量大,延迟时间也较长,因此可以采用反馈结构来优化滤波器性能。
反馈结构可以通过MATLAB的“tf2sos”函数计算得到,它会返回一组二阶滤波器的系数和反馈系数,这些系数可以直接用于滤波器的设计中,从而实现滤波器性能的优化。
4. 滤波器性能评价在设计完成后,需要对IIR数字滤波器的性能进行评价。
MATLAB提供了“freqz”函数,可以绘制滤波器的幅频特性曲线和相频特性曲线,从而了解滤波器的增益和相位响应情况。
同时,还可以通过MATLAB中的“fvtool”函数,绘制滤波器的频率响应、瞬态响应和群延迟等特性曲线,从而更全面地了解滤波器的性能。
总之,基于MATLAB的IIR数字滤波器设计方法不仅可以方便地实现滤波器的设计,还可以通过滤波器性能评价来优化滤波器的性能。
因此,在数字信号处理中广泛应用,是一种非常实用和有效的技术手段。
IIR数字滤波器的MATLAB实现
IIR 数字滤波器的MATLAB 实现一、实验目的:1、要求掌握IIR 数字滤波器的设计原理、设计方法和设计步骤;2、能根据给定的滤波器指标进行滤波器设计;3、掌握数字巴特沃斯滤波器、数字切比雪夫滤波器的设计原理和步骤;二、实验原理:1 IIR 数字滤波器的传递函数及特点设IIR 滤波器的输入序列为x(n),则IIR 滤波器的输入序列x(n)与输出序列y(n)之间的关系可以用下面的方程式表示: 其中,ja 和ib 是滤波器的系数,其中ja 中至少有一个非零。
与之相对应的差分方程为:2 IIR 数字滤波器的设计与实现IIR 数字滤波器的设计,主要采用间接法,即:首先设计出低通模拟滤波器H(S);进行频率变换,将其转换为高通、带通、带阻滤波器;再用脉冲响应不变法或双线性变换法从模拟滤波器转换为数字滤波器。
对单极点的N 阶H(S)用部分展开式:冲激响应不变法取H(S)的单阶极点Sk 的指数函数sF KS e 作为H (Z )的极点双线性变换法是用⎥⎦⎤⎢⎣⎡+-=--11112Z Z T S 代换H (S )中的S 得到H(Z),双线性变换法可完全消除频率混叠失真但存在非线性频率失真,而冲激响应不变法存在混叠失真。
在不同的设计阶段MATLAB 的信号处理工具箱都给出了相应的滤波器设计函数,这些函数代表了不同类型的逼近函数的滤波器,常用的有巴特沃斯滤波器、切比雪夫滤波器、椭圆滤波器类型。
MATLAB 工具箱中的函数。
三、实验内容与步骤:1、基于chebyshev1型模拟滤波器原型使用冲激响应不变法设计数字滤波器,要求具有下面的参数指标:通带截止频率:0.1pπΩ=通带波动值:2pR dB=阻带截止频率:0.4sπΩ=阻带波动值:18sA dB=程序原代码如下:clear;close all;wp=0.1*pi;ws=0.4*pi;Rp=2;As=18;%参数T=1;Rip=10^(-Rp/20);Atn=10^(-As/20);[N,OmgC]=cheb1ord(wp*T,ws*T,Rp,As,'s');[cs,ds]=cheby1(N, Rp, OmgC,'s');[b,a]=impinvar(cs,ds,T);[db,mag,pha,grd,w]=freqz_m(b,a);subplot(2,2,1);plot(w/pi,mag);title('幅频特性');xlabel('w(/pi)');ylabel('|H(jw)|');axis([0,1,0,1.1]);set(gca,'XTickMode','manual','XTick',[0 0.1 0.4 0.5 1]); set(gca,'YTickMode','manual','YTick',[0 Atn Rip 1]);grid subplot(2,2,2);plot(w/pi,db);title('幅频特性(db)');xlabel('w(/pi)');ylabel('dB');axis([0,1,-40,5]);set(gca,'XTickMode','manual','XTick',[0 0.1 0.4 0.5 1]); set(gca,'YTickMode','manual','YTick',[-40 -As -Rp 0]);grid subplot(2,2,3);plot(w/pi,pha/pi);title('相频特性');xlabel('w(/pi)');ylabel('pha(/pi)');axis([0,1,-1,1]);set(gca,'XTickMode','manual','XTick',[0 0.1 0.4 0.5 1]);gridsubplot(2,2,4);plot(w/pi,grd);title('群延时');xlabel('w(/pi)');ylabel('Sample'); axis([0,1,0,12]);set(gca,'XTickMode','manual','XTick',[0 0.1 0.4 0.5 1]);grid %所使用的M 文件函数function [db,mag,pha,grd,w]=freqz_m(b,a)%滤波器的幅值响应(相对、绝对)、相位响应及群延迟 [H,w]=freqz(b,a,500); %500点的复频响应 mag=abs(H); %绝对幅值响应 db=20*log10(mag/max(mag)); %相对幅值响应 pha=angle(H); %相位响应 grd=grpdelay(b,a,w); %群延迟响应 实验图:标参数为:在通带内频率低于0.2π时,最大衰减小于1dB ,在阻带内[0.3,]ππ频率区间上,最小衰减大于15dB 。
IIR数字滤波器及其matlab软件实现解析
实验四IIR数字滤波器设计及软件实现一、实验指导1.实验目的(1)熟悉用双线性变换法设计IIR数字滤波器的原理与方法;(2)学会调用MATLAB信号处理工具箱中滤波器设计函数(或滤波器设计分析工具fdatool)设计各种IIR数字滤波器,学会根据滤波需求确定滤波器指标参数。
(3)掌握IIR数字滤波器的MATLAB实现方法。
(3)通过观察滤波器输入输出信号的时域波形及其频谱,建立数字滤波的概念。
2.实验原理设计IIR数字滤波器一般采用间接法(脉冲响应不变法和双线性变换法),应用最广泛的是双线性变换法。
基本设计过程是:①先将给定的数字滤波器的指标转换成过渡模拟滤波器的指标;②设计过渡模拟滤波器;③将过渡模拟滤波器系统函数转换成数字滤波器的系统函数。
MATLAB信号处理工具箱中的各种IIR数字滤波器设计函数都是采用双线性变换法。
第六章介绍的滤波器设计函数butter、cheby1 、cheby2 和ellip可以分别被调用来直接设计巴特沃斯、切比雪夫1、切比雪夫2和椭圆模拟和数字滤波器。
本实验要求读者调用如上函数直接设计IIR数字滤波器。
本实验的数字滤波器的MATLAB实现是指调用MATLAB信号处理工具箱函数filter对给定的输入信号x(n)进行滤波,得到滤波后的输出信号y(n)。
3. 实验内容及步骤(1)调用信号产生函数mstg产生由三路抑制载波调幅信号相加构成的复合信号st,该函数还会自动绘图显示st的时域波形和幅频特性曲线,如图10.4.1所示。
由图可见,三路信号时域混叠无法在时域分离。
但频域是分离的,所以可以通过滤波的方法在频域分离,这就是本实验的目的。
图10.4.1 三路调幅信号st的时域波形和幅频特性曲线(2)要求将st中三路调幅信号分离,通过观察st的幅频特性曲线,分别确定可以分离st 中三路抑制载波单频调幅信号的三个滤波器(低通滤波器、带通滤波器、高通滤波器)的通带截止频率和阻带截止频率。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验六IIR滤波器的matlab实现
一、实验目的和任务
1.理解并掌握IIR数字滤波器的机理;
2. 掌握设计IIR数字滤波器的原理和方法;
3. 观察IIR滤波器的频域特性。
二、实验原理
1、IIR数字滤波器与FIR数字滤波器的区别
1.1、单位响应
IIR数字滤波器单位响应为无限脉冲序列,而FIR数字滤波器单位响应为有限的;FIR滤波器,也就是“非递归滤波器”,没有引入反馈。
这种滤波器的脉冲响应是有限的。
1.2、幅频特性
IIR数字滤波器幅频特性精度很高,不是线性相位的,可以应用于对相位信息不敏感的音频信号上;FIR数字滤波器的幅频特性精度较之于IIR数字滤波器低,但是线性相位,就是不同频率分量的信号经过fir滤波器后他们的时间差不变,这是很好的性质。
1.3、实时信号处理
FIR数字滤波器是有限的单位响应也有利于对数字信号的处理,便于编程,用于计算的时延也小,这对实时的信号处理很重要。
2、设计步骤:
(1)、给定技术指标转换为模拟低通原型设计性能指标。
(2)、估计满足性能指标的模拟低通性能阶数和截止频率。
(3)、设计模拟低通原型。
(4)、由模拟低通原型经频率变换获得模拟低通、高通、带通或带阻滤波器。
(5)、利用脉冲响应不变法或双线性不变法,实现模拟滤波器到数字滤波器的映射。
三、IIR滤波器的设计
参考实例一:IIR一阶低通滤波器
clear;
fi=1;fs=10;Gc2=0.9;
wc=2*pi*fi/fs;
omegac=tan(wc/2);
alpha=(sqrt(Gc2)/sqrt(1-Gc2))*omegac;
a=(1-alpha)/(1+alpha);
b=(1-a)/2;
w=0:pi/300:pi;
Hw2=alpha^2./(alpha^2+(tan(w/2)).^2);
plot(w/pi,Hw2);
grid;
hold on;
参考实例二:一阶高通滤波器
clear;
fi=1;fs=10;Gc2=0.5;
wc=2*pi*fi/fs;
omegac=tan(wc/2);
alpha=(sqrt(1-Gc2)/(sqrt(Gc2)))*omegac;
a=(1-alpha)/(1+alpha);
b=(1+a)/2;
w=0:pi/300:pi;
Hw2=(tan(w/2).^2)./(alpha^2+(tan(w/2)).^2); plot(w/pi,Hw2);
grid;
hold on;
参考实例三:Notch 嵌波滤波器
clear;
Gb2=0.5;
w0=0.35*pi;
deltaw=0.1*pi;
b=1/(1+tan(deltaw/2)*(sqrt(1-Gb2)/sqrt(Gb2))); B=[1 -2*cos(w0) 1].*b;
A=[1 -2*b*cos(w0) (2*b-1)];
w=0:pi/500:pi;
H=freqz(B,A,w);
plot(w/pi,abs(H));
grid;
参考实例四:Peak 滤波器
clear;
Ac=3;
Gb2=10^(-Ac/10);
w0=0.35*pi;
deltaw=0.1*pi;
b=1/(1+tan(deltaw/2)*(sqrt(Gb2)/sqrt(1-Gb2))); B=[1 0 -1].*(1-b);
A=[1 -2*b*cos(w0) (2*b-1)];
w=0:pi/500:pi;
H=freqz(B,A,w);
plot(w/pi,abs(H));
grid;。