无限长单位脉冲响应IIR滤波器的设计方法MATLAB
基于matlab的IIR滤波器设计
基于Matlab 的IIR 滤波器的设计摘要:IIR(Infinite Impulse Response)数字滤波器,又名“无限脉冲响应数字滤波器”,或“递归滤波器”。
其具有无限的脉冲响应。
本文主要介绍了IIR 数字滤波器的基本概念,以及借助Matlab 设计IIR 滤波器的方法,并举例介绍。
一、IIR 数字滤波器IIR 滤波器的系统函数如式1.1所示()()()()()1.11100∑∑∑=-=-∞=-+===Nk kk Mr rr n nzb zb z n h Z X Z Y z H由于它的脉冲响应序列()n h 是无限长的,故称无限冲激响应滤波器。
IIR 和FIR 滤波器相比,优点是在满足相同性能指标要求条件下,IIR 滤波器的阶数要明显低于FIR 滤波器。
但IIR 滤波器的相位是非线性的1)IIR 滤波器经典设计IIR 滤波器设计的经典法,基于模拟滤波器变换原理,首先根据滤波器的指标技术设计出相应的模拟滤波器,然后再将设计好的模拟滤波器变换成满足给定技术指标的数字滤波器。
在Matlab 中,IIR 滤波器的经典设计法步骤如下:→ → → 其中离散化的主要任务就是把模拟滤波器变换成数字滤波器,即把模拟滤波器的系数()s H 映射成数字滤波器的系统函数()z H从模拟滤波器到数字滤波器的变换技术,最重要的有两种:冲击不变法和双线性变换法。
(1)冲击不变法设取样时间为T ,则冲击不变为()()nT n h h a =模拟频率Ω与数字频率ω之间存在的关系为eeTj j TΩ=Ω=ωωS 平面与Z 平面之间的关系为e STZ =系统函数之间的关系为模拟低通滤波器原型频率变换 模拟离散化 IIR 滤波器()∑∞-∞=⎪⎭⎫ ⎝⎛-=k a k T j s T z H H π21在给定数字低通滤波器指标ωp,ωs,Rp和A s的情况下,设计()z H 按如下步骤:① 选T,确定模拟频率T Ts s pp ωω==ΩΩ② 利用Ωp,Ωs,Rp和A s 设计模拟滤波器()S H a③ 利用部分分式展开,将()S H a写成()∑=-=N k kkaP R H S S 1④ 将模拟极点Pk变换成数字极点{}e TP k,这样得()∑=--=Nk T k Ze R P Z H k111(2)双线性变换法双线性变换是S 域与Z 域之间的最佳映射:212111211sT sT Z T S z z -+=+-=--或写成0122=+-+z s Tsz T 因此S 与Z 之间为线性关系。
基于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滤波器。
matlab 生成irr滤波器系数差分方程
让我们深入探讨一下MATLAB中产生IIR滤波器系数差分方程的方法。
IIR滤波器是一种经典的数字滤波器,它具有无限脉冲响应(Infinite Impulse Response)的特点。
在MATLAB中,产生IIR滤波器系数差分方程可以通过多种方法实现,我们将逐步介绍其中的一些方法。
1. 我们需要清楚地了解IIR滤波器的概念和特点。
IIR滤波器是一种递归滤波器,它的输出不仅依赖于当前输入,还依赖于过去的输出和输入。
这种特点使得IIR滤波器在滤波效果上具有一定的优势,在一些应用中被广泛使用。
2. 接下来,我们可以使用MATLAB中的信号处理工具箱来生成IIR滤波器系数。
通过调用相关的函数和命令,我们可以指定IIR滤波器的阶数、通带频率、阻带频率等参数,然后MATLAB会自动生成对应的滤波器系数。
3. 除了使用信号处理工具箱,我们还可以手动计算IIR滤波器的系数。
这需要我们对IIR滤波器的原理有更深入的理解,可以通过巴特沃斯滤波器、切比雪夫滤波器等经典滤波器设计方法来产生系数。
4. 产生IIR滤波器系数之后,我们需要将其转化为差分方程的形式。
在MATLAB中,可以使用tf2sos函数或者zpk2sos函数来将IIR滤波器的传输函数转换为二阶节的级联形式。
5. 我们还可以通过MATLAB中的滤波器设计工具来可视化分析IIR滤波器的频率响应、脉冲响应等特性,以便更好地理解滤波器系数和差分方程之间的关系。
MATLAB中生成IIR滤波器系数差分方程的方法有多种,可以通过信号处理工具箱的函数、手动计算、转换传输函数等途径来实现。
通过深入了解和掌握这些方法,我们能够更好地应用IIR滤波器,并对数字滤波器的原理有更深入的理解。
就我个人而言,我认为掌握MATLAB中IIR滤波器系数差分方程的生成方法对于进行数字信号处理和滤波器设计是非常重要的。
通过实际操作和不断的学习,我们可以深入理解滤波器系数和差分方程之间的联系,从而在实际应用中更灵活地调整和优化滤波器的性能。
MATLAB中的数字滤波器设计与实现
MATLAB中的数字滤波器设计与实现数字滤波器在信号处理中具有重要的作用,可用于去除噪声、滤波信号以及提取特定频率的成分。
MATLAB作为一种强大的数学软件,提供了多种数字滤波器设计和实现的工具,为工程师和科学家们提供了便捷而高效的解决方案。
本文将介绍MATLAB中数字滤波器的设计原理和实现方法,帮助读者更好地理解数字滤波器在实际应用中的重要性。
1. 数字滤波器的基本原理数字滤波器是一种能够改变信号频谱特性的系统,常用于消除噪声、去除不需要的频率成分或者提取感兴趣的信号成分。
数字滤波器分为FIR(有限长冲击响应)和IIR(无限长冲击响应)两种类型。
FIR滤波器的冲击响应为有限长序列,实现简单且稳定;IIR滤波器的冲击响应为无限长序列,具备更好的频率响应特性。
在MATLAB中,我们可以通过不同的函数和工具箱来设计这些数字滤波器。
2. FIR数字滤波器的设计与实现FIR数字滤波器的设计主要通过窗函数和频域采样进行。
MATLAB提供了一系列用于FIR滤波器设计的函数,如fir1、fir2等。
其中,fir1函数可以使用窗函数方法设计低通、高通、带通和带阻滤波器;fir2函数则可以实现自定义的频率响应。
具体设计步骤为:选择合适的窗函数、确定滤波器阶数和截止频率、生成滤波器系数。
设计完成后,可以通过filter函数将滤波器应用到目标信号上。
3. IIR数字滤波器的设计与实现IIR数字滤波器的设计方法主要有脉冲响应不变法和双线性变换法。
MATLAB提供了butter、cheby1、cheby2、ellip等函数来方便地实现IIR滤波器设计。
这些函数可以通过选择滤波器类型、阶数、截止频率等参数来生成相应的滤波器系数。
与FIR滤波器不同的是,IIR滤波器具有反馈结构,在MATLAB中可以使用filter函数来实现。
4. 数字滤波器的性能评估与优化正确评估和优化数字滤波器的性能对于滤波器的应用至关重要。
MATLAB提供了多种函数和工具箱来评估滤波器的频率响应、相位响应、时域响应等,如freqz、grpdelay、impz等。
基于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滤波器。
无限长单位脉冲响应IIR滤波器的设计
无限长单位脉冲响应IIR 滤波器的设计一.设计目的1.掌握数字滤波器的设计过程;2.了解IIR 的原理和特性;3.熟悉设计IIR 数字滤波器的原理和方法;4.学习IIR 滤波器的DSP 实现原理;5.学习使用CCS 的波形观察窗口观察输入/输出信号波形和频谱变化情况。
二.设计内容1.通过MATLAB 来设计一个低通滤波器,对它进行模拟仿真确定IIR 滤波器系数。
2.用DSP 汇编语言及C 语言进行编程,实现IIR 运算,对产生的合成信号,滤除信号中高频成分,观察滤波前后的波形变化。
三.设计原理IIR 滤波器与FIR 滤波器相比具有相位特性差的特点,但它的结构简单,运算量小,具有经济高效的特点,并且可以用较少的阶数获得很高的选择性,因此也得到了广泛的应用。
IIR 数字滤波器系统的传递函数为:H(z)= NN N N z a z a z b z b b z X z Y ----+⋯⋯+++⋯⋯++=111101)()( 它具有N 个极点和N 个零点,如果任何一个极点在单位圆外,则系统不稳定。
如果系数a j (j=1,… ,N )全部为0,则滤波器变成非递归的FIR滤波器,系统总是稳定的。
对于IIR滤波器,有系数量化敏感的缺点。
由于系统对序列施加的算法是由加法、乘法和延时的基本运算的组合,所以可以用不同结构的数字滤波器来实现而不影响系统总的传输函数。
四.MATLAB设计IIR滤波器的方法我们所用滤波器设计方法为巴特沃夫Butterworth滤波器设计和切比雪夫Chebyshev滤波器设计。
MATLAB的butter函数可以设计低通、带通、高通和带阻数字滤波器,其特征可以使通带内的幅度响应最大限度的平坦,但会损失截止频率处的下降斜度,使幅度响应衰减较慢,因此butter函数主要用于设计通带平坦的数字滤波器。
如果期望幅度响应下降斜度大,衰减快,可以使用Elliptic(椭圆)或Chebyshev(切比雪夫)滤波器。
基于MATLAB的IIR数字滤波器设计与仿真
基于MATLAB的IIR数字滤波器设计与仿真一、概述在现代数字信号处理领域中,数字滤波器扮演着至关重要的角色。
其通过对输入信号的特定频率成分进行增强或抑制,实现对信号的有效处理。
无限脉冲响应(IIR)数字滤波器因其设计灵活、实现简单且性能优良等特点,得到了广泛的应用。
本文旨在基于MATLAB平台,对IIR数字滤波器的设计与仿真进行深入研究,以期为相关领域的研究与应用提供有益的参考。
IIR数字滤波器具有无限长的单位脉冲响应,这使得其在处理信号时能够展现出优秀的性能。
与有限脉冲响应(FIR)滤波器相比,IIR滤波器在实现相同性能时所需的阶数更低,从而减少了计算复杂度和存储空间。
在需要对信号进行高效处理的场合,IIR滤波器具有显著的优势。
MATLAB作为一款功能强大的数学软件,提供了丰富的函数和工具箱,使得数字滤波器的设计与仿真变得简单而高效。
通过MATLAB,我们可以方便地实现IIR滤波器的设计、分析和优化,从而满足不同应用场景的需求。
本文将首先介绍IIR数字滤波器的基本原理和特性,然后详细阐述基于MATLAB的IIR数字滤波器的设计方法和步骤。
接着,我们将通过仿真实验验证所设计滤波器的性能,并对其结果进行分析和讨论。
本文将总结IIR数字滤波器设计与仿真的关键技术和注意事项,为相关领域的研究人员和工程师提供有益的参考和启示。
1. IIR数字滤波器概述IIR(Infinite Impulse Response)数字滤波器是数字信号处理中常用的一类滤波器,它基于差分方程实现信号的滤波处理。
与FIR (Finite Impulse Response)滤波器不同,IIR滤波器具有无限长的单位脉冲响应,这意味着其输出不仅与当前和过去的输入信号有关,还与过去的输出信号有关。
这种特性使得IIR滤波器在实现相同的滤波效果时,通常具有更低的计算复杂度,从而提高了处理效率。
IIR滤波器的设计灵活多样,可以根据不同的需求实现低通、高通、带通和带阻等多种滤波功能。
基于MATLAB的FIR和IIR数字滤波器的设计
基于MATLAB的FIR和IIR数字滤波器的设计一、本文概述随着数字信号处理技术的飞速发展,数字滤波器作为其中的核心组件,已经广泛应用于通信、音频处理、图像处理、生物医学工程等诸多领域。
在数字滤波器中,有限脉冲响应(FIR)滤波器和无限脉冲响应(IIR)滤波器是最常见的两种类型。
它们各自具有独特的优点和适用场景,因此,对这两种滤波器的深入理解和设计掌握是工程师和研究人员必备的技能。
本文旨在通过MATLAB这一强大的工程计算工具,详细介绍FIR 和IIR数字滤波器的设计原理、实现方法以及对比分析。
我们将简要回顾数字滤波器的基本概念和分类,然后重点阐述FIR和IIR滤波器的设计理论,包括窗函数法、频率采样法、最小均方误差法等多种设计方法。
接下来,我们将通过MATLAB编程实现这些设计方法,并展示如何根据实际应用需求调整滤波器参数以达到最佳性能。
本文还将对FIR和IIR滤波器进行性能对比,分析它们在不同应用场景下的优缺点,并提供一些实用的设计建议。
我们将通过几个典型的应用案例,展示如何在MATLAB中灵活应用FIR和IIR滤波器解决实际问题。
通过阅读本文,读者将能够深入理解FIR和IIR数字滤波器的设计原理和实现方法,掌握MATLAB在数字滤波器设计中的应用技巧,为未来的工程实践和研究工作打下坚实的基础。
二、FIR滤波器设计有限脉冲响应(FIR)滤波器是一种数字滤波器,其特点是其脉冲响应在有限的时间后为零。
因此,FIR滤波器是非递归的,没有反馈路径,从而保证了系统的稳定性。
在设计FIR滤波器时,我们主要关注的是滤波器的阶数、截止频率和窗函数的选择。
在MATLAB中,有多种方法可以用来设计FIR滤波器。
其中,最常用的方法是使用fir1函数,该函数可以设计一个线性相位FIR滤波器。
该函数的基本语法是b = fir1(n, Wn),其中n是滤波器的阶数,Wn是归一化截止频率,以π为单位。
该函数返回一个长度为n+1的滤波器系数向量b。
利用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`。
第5章无限长单位脉冲响应(IIR)数字滤波器的设计方法
第5章 无限长单位脉冲响应(IIR)数字滤波器的设计方法
5.2 IIR滤波器设计的特点 滤波器设计的特点
式(5-5)的系统函数又可以用极、零点表示如下:
M M
H ( z) =
∑b z
k =0 N k k =1
−k
1 − ∑ ak z − k
=A
∏ (1 − c z
k =1 N k k =1
−1
)
(1 − d k z −1 ) ∏
第5章 无限长单位脉冲响应(IIR)数字滤波器的设计方法
5.1.2 滤波器的技术指标 理想滤波器(如理想低通滤波器)是非因果的, 其单位脉冲响 应从-∞延伸到+∞, 因此,无论用递归还是非递归方法, 理想滤 波器是不能实现的, 但在概念上极为重要。 一般来说,滤波器的性能要求往往以频率响应的幅度特性的 允许误差来表征。以低通滤波器为例,如图5-2(称容限图)所 示, 频率响应有通带、 过渡带及阻带三个范围(而不是理想的 陡截止的通带、阻带两个范围)。图中δ1为通带的容限,δ2为阻 带的容限。
第5章 无限长单位脉冲响应(IIR)数字滤波器的设计方法
(2) 因果稳定的Ha(s)应能映射成因果稳定的H(z),也即S平 面的左半平面Re[s]<0必须映射到Z平面单位圆的内部|z|<1。 下面首先介绍一下常用模拟低通滤波器的特性,然后分别讨 论由模拟滤波器设计IIR数字滤波器的两种常用的变换方法:脉 冲响应不变法和双线性变换法。FIR数字滤波器的设计方法与 IIR数字滤波器设计方法明显不同,这将在下一章中介绍。
第5章 无限长单位脉冲响应(IIR)数字滤波器的设计方法
本章着重讨论第一种方法。利用模拟滤波器来设计数字滤 波器,就是从已知的模拟滤波器传递函数Ha(s)设计数字滤波器 的系统函数H(z)。因此,它归根结底是一个由S平面映射到Z平面 的变换,这个变换通常是复变函数的映射变换,这个映射变换 必须满足以下两条基本要求: (1)H(z)的频率响应要能模仿Ha(z)的频率响应,也即S平面 虚轴j 必须映射到Z平面的单位圆ejω上。
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的应用也可以推广到其他数字信号处理领域,如音频处理、图像处理等。
IIR滤波器的MATLAB设计
IIR滤波器的MATLAB设计姓名:王照义学号:12010245259班级:2010级通信工程日期:2012年12月12日摘要在现代通信系统中,由于信号中经常混有各种复杂成分,所以很多信号分析都是基于滤波器而进行的,而数字滤波器是通过数值运算实现滤波,具有处理精度高、稳定、灵活、不存在阻抗匹配问题,可以实现模拟滤波器无法实现的特殊滤波功能。
数字滤波器根据其冲激响应函数的时域特性,可分为两种,即无限长冲激响应(IIR)数字滤波器和有限长冲激响应(FIR)数字滤波器。
实现IIR滤波器的阶次较低,所用的存储单元较少,效率高,精度高,而且能够保留一些模拟滤波器的优良特性,因此应用很广。
Matlab软件以矩阵运算为基础,把计算、可视化及程序设计有机融合到交互式工作环境中,并且为数字滤波的研究和应用提供了一个直观、高效、便捷的利器。
尤其是Matlab中的信号处理工具箱使各个领域的研究人员可以直观方便地进行科学研究与工程应用。
本文首先介绍了数字滤波器的概念,分类以及设计要求。
接着利用MATLAB函数语言编程,用信号处理图形界面FDATool来设计滤波器以及Sptool界面设计的方法,并用FDATool模拟IIR 数字滤波器处理信号。
重点设计Chebyshev I型和Chebyshev II型数字低通滤波器,并介绍最优化设计。
【关键字】IIR 滤波器FDATool Sptool SimulinkMATLAB是矩阵实验室(Matrix Laboratory)之意。
除具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多.在新的版本中也加入了对C,FORTRAN,c++ ,JAVA的支持.可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用,非常的方便。
基于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。
Matlab滤波器设计--IIR滤波器的设计与仿真
matlab滤波器设计-IIR滤波器的设计与仿真1 引言在现代通信系统中,由于信号中经常混有各种复杂成分,所以很多信号的处理和分析都是基于滤波器而进行的。
但是,传统的数字滤波器的设计使用繁琐的公式计算,改变参数后需要重新计算,从而在设计滤波器尤其是高阶滤波器时工作量很大。
利用MATLAB信号处理箱(Signal Processing Toolbox)可以快速有效地实现数字滤波器的设计与仿真。
2 数字滤波器及传统设计方法数字滤波器可以理解为是一个计算程序或算法,将代表输入信号的数字时间序列转化为代表输出信号的数字时间序列,并在转化过程中,使信号按预定的形式变化。
数字滤波器有多种分类,根据数字滤波器冲激响应的时域特征,可将数字滤波器分为两种,即无限长冲激响应(IIR)滤波器和有限长冲激响应(FIR)滤波器。
IIR数字滤波器具有无限宽的冲激响应,与模拟滤波器相匹配,所以IIR滤波器的设计可以采取在模拟滤波器设计的基础上进一步变换的方法。
其设计方法主要有经典设计法、直接设计法和最大平滑滤波器设计法。
FIR数字滤波器的单位脉冲响应是有限长序列。
它的设计问题实质上是确定能满足所要求的转移序列或脉冲响应的常数问题,设计方法主要有窗函数法、频率采样法和等波纹最佳逼近法等。
在对滤波器实际设计时,整个过程的运算量是很大的。
设计阶数较高的IIR滤波器时,计算量更大,设计过程中改变参数或滤波器类型时都要重新计算。
设计完成后对已设计的滤波器的频率响应要进行校核。
要得到幅频、相频响应特性,运算量也是很大的。
平时所要设计的数字滤波器,阶数和类型并不一定是完全给定的,很多时候要根据设计要求和滤波效果不断地调整,以达到设计的最优化。
在这种情况下,滤波器设计就要进行大量复杂的运算,单纯的靠公式计算和编制简单的程序很难在短时间内完成。
利用MATLAB强大的计算功能进行计算机辅助设计,可以快速有效地设计数字滤波器,大大地简化了计算量。
基于MATLAB的IIR滤波器的设计及应用
基于MATLAB的IIR滤波器的设计及应用MATLAB是一种功能强大的工具,可以用于设计和应用数字滤波器。
本文将介绍MATLAB中基于无限脉冲响应(IIR)滤波器的设计和应用。
IIR滤波器是一种数字滤波器,它的输出是其输入信号和滤波器过去输出值的加权和。
IIR滤波器具有无限长脉冲响应,这意味着它对输入信号以前的无限多个样本都有影响。
IIR滤波器通常具有较低的计算复杂度和较小的存储需求,因此在很多应用中得到广泛使用。
在MATLAB中,可以使用`butter`、`cheby1`、`cheby2`、`ellip`等函数来设计IIR滤波器。
这些函数提供了不同类型的IIR滤波器设计方法,可以根据应用需求进行选择。
以`butter`函数为例,下面是一个设计一个低通滤波器的简单示例:```fs = 1000; % 采样率fc = 100; % 截止频率order = 4; % 阶数[b, a] = butter(order, fc/(fs/2)); % 设计低通滤波器%应用滤波器input_signal = randn(1, 1000); % 输入信号output_signal = filter(b, a, input_signal); % 输出信号```在上面的示例中,首先定义了采样率`fs`、截止频率`fc`和滤波器的阶数`order`。
然后使用`butter`函数设计了一个低通滤波器的系数`b`和`a`。
最后使用`filter`函数将滤波器应用到输入信号`input_signal`上,得到了输出信号`output_signal`。
除了设计和应用IIR滤波器,MATLAB还提供了其他函数来分析和评估滤波器的性能。
比如可以使用`freqz`函数绘制滤波器的频率响应曲线,使用`impz`函数绘制滤波器的脉冲响应曲线,使用`grpdelay`函数计算滤波器的组延迟等等。
除了设计和应用IIR滤波器,MATLAB还提供了许多其他的信号处理工具和函数,比如滤波器设计工具箱(Filter Design Toolbox)、信号处理工具箱(Signal Processing Toolbox)等,可以进一步扩展和优化滤波器设计和应用的功能。
基于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低通滤波器设计
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低通滤波器设计是一种简单而有效的方法。
matlabiir数字滤波器验步骤
matlabiir数字滤波器验步骤数字滤波器是一种用来处理数字信号的工具,它可以去除噪声、增强信号等。
数字滤波器主要有两种类型:有限脉冲响应(FIR)和无限脉冲响应(IIR)。
在这篇文章中,我将介绍一下使用MATLAB进行数字滤波器设计和验证的步骤。
步骤一:设定滤波器的规格在设计数字滤波器之前,我们需要设定滤波器的一些规格,例如滤波器类型、截止频率、通带增益、阻带衰减等。
这些规格将指导我们在后续步骤中进行滤波器设计。
步骤二:选择合适的设计方法根据滤波器类型和设计规格,我们可以选择不同的设计方法。
常用的设计方法包括窗函数法、频率采样法、最小均方误差法等。
不同的设计方法在滤波器性能和计算复杂度上有所不同,因此我们需要根据实际情况选择合适的方法。
步骤三:进行滤波器设计根据选择的设计方法,在MATLAB中使用合适的工具箱函数进行数字滤波器设计。
例如,如果我们选择了窗函数法,可以使用`fir1`函数来设计FIR滤波器。
设计方法的具体步骤和参数设置会根据具体的设计方法而有所不同,可以参考MATLAB的官方文档或相关教程进行学习。
步骤四:生成输入信号为了验证滤波器的性能,我们需要生成一个适当的输入信号。
输入信号可以是一个以时间为自变量的向量,或者是一个已有的音频文件等。
根据自己的需要,选择一个合适的输入信号进行滤波器的验证。
步骤五:应用滤波器使用设计好的滤波器对输入信号进行滤波。
在MATLAB中,可以使用`filter`函数来实现对输入信号的滤波操作。
将设计好的滤波器系数和输入信号作为参数传入`filter`函数,即可得到输出信号。
步骤六:绘制时域和频域图像为了更直观地观察滤波器的效果,我们可以绘制滤波后的信号的时域和频域图像。
在MATLAB中,使用`plot`函数可以绘制时域图像,使用`fft`函数可以进行频域变换,并结合`plot`函数绘制频域图像。
步骤七:性能评估对滤波后的信号进行性能评估,通常包括信号的频率响应、频谱形状、信噪比等。
无限长单位脉冲响应IIR滤波器的设计方法MATLAB
数字信号处理实验指导实验四、 无限长单位脉冲响应(IIR)滤波器的设计方法(一) 实验目的加深对无限冲激响应( IIR )数字滤波器的常用指标和设计过程的理解。
(二) 实验内容常用函数介绍:1、Matlab 信号处理工具箱中提供了设计巴特沃思模拟滤波器的函数buttord 、buttap 和butter ,格式如下:(1)[,](,,,,C P S P S N W buttord W W R R s ='')用于计算巴特沃思模拟低通滤波器的阶N 和3dB 截止频率Wc (即本书中的符号c Ω)。
其中,Wp 和Ws 分别是滤波器的通带截止频率p Ω和阻止截止频率s Ω,单位为rad/s ;Rp 和Rs 分别是通带最大衰减系数p α和阻带最小衰减系数s α,单位为dB 。
(2)[,,]()z p G buttap N =用于计算N 阶巴特沃思归一化(c Ω=1)模拟低通滤波器系统函数的零、极点和增益因子,返回长度为N 的向量z 和p 分别给出N 个零点和极点,G 是滤波器增益。
得到的滤波器系统函数形式如下:1212()()()()()()()()()a N a a N Q s s z s z s z H s G P s s p s p s p ---==--- 其中,k z 和k p 分别是向量z 和p 的第k 个元素。
如果要从零、极点得到系统函数的分子和分母多项式系数向量B 和A ,可以调用结构转换函数(3)[,]2(,,)B A zp tf z p G =,结构转换后系统函数的形式为111111()()()M M M a N N Nb s b s b B s H s A s a s a s a ----+++==+++ 其中,M 是向量B 的长度,N 是向量A 的长度,k k b a 和分别是向量B 和A 的第k 个元素。
(3)[,](,,,)C B A butter N W ftype s =''''用于计算巴特沃思模拟滤波器系统函数中分子和分母多项式系数向量B 和A ,其中N 和C W 分别是滤波器的阶和3dB 截止频率c Ω,返回向量B 和A 中的元素k a 和k b 分别是上面的()a H s 表示式中的分母和分子系数。
脉冲响应不变法设计IIR数字滤波器-matlab
实验三脉冲响应不变法设计IIR数字滤波器一、实验目的1.掌握利用脉冲响应不变法设计IIR数字滤波器的原理和具体方法。
2.加深理解数字滤波器与连续时间滤波器之间的技术指标转化。
3.掌握脉冲响应不变法设计IIR数字滤波器的优缺点及使用范围。
二、实验内容1.利用巴特沃思模拟滤波器,通过脉冲响应不变法设计巴特沃思数字滤波器,数字滤波器的技术指标为采样周期为T=2程序代码T=2; %设置采样周期为2fs=1/T; ﻩ%采样频率为周期倒数Wp=0.25*pi/T;Ws=0.35*pi/T;ﻩ%设置归一化通带和阻带截止频率Ap=20*log10(1/0.9);As=20*log10(1/0.18);%设置通带最大和最小衰减[N,Wc]=buttord(Wp,Ws,Ap,As,'s');ﻩ%调用butter函数确定巴特沃斯滤波器阶数[B,A]=butter(N,Wc,'s'); %调用butter函数设计巴特沃斯滤波器W=linspace(0,pi,400*pi);%指定一段频率值hf=freqs(B,A,W);%计算模拟滤波器的幅频响应subplot(2,1,1);plot(W/pi,abs(hf)/abs(hf(1)));ﻩﻩ %绘出巴特沃斯模拟滤波器的幅频特性曲线grid on;title('巴特沃斯模拟滤波器');xlabel('Frequency/Hz');ylabel('Magnitude');[D,C]=impinvar(B,A,fs);ﻩﻩ%调用脉冲响应不变法Hz=freqz(D,C,W);%返回频率响应subplot(2,1,2);plot(W/pi,abs(Hz)/abs(Hz(1))); ﻩ%绘出巴特沃斯数字低通滤波器的幅频特性曲线grid on;title('巴特沃斯数字滤波器'); xl abel('F requen cy/H z'); ylabel('Magnitude');进行试验输出图像:观察workspac e,可得模拟滤波器技术指标为N=8,Wc=0.4446。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
有源模拟带通滤波器的设计 (10)数字信号处理实验指导实验四、 无限长单位脉冲响应(IIR)滤波器的设计方法(一) 实验目的加深对无限冲激响应( IIR )数字滤波器的常用指标和设计过程的理解。
(二) 实验内容常用函数介绍:1、Matlab 信号处理工具箱中提供了设计巴特沃思模拟滤波器的函数buttord 、buttap 和butter ,格式如下:(1)[,](,,,,C P S P S N W buttord W W R R s ='')用于计算巴特沃思模拟低通滤波器的阶N 和3dB 截止频率Wc (即本书中的符号c Ω)。
其中,Wp 和Ws 分别是滤波器的通带截止频率p Ω和阻止截止频率s Ω,单位为rad/s ;Rp 和Rs 分别是通带最大衰减系数p α和阻带最小衰减系数s α,单位为dB 。
(2)[,,]()z p G buttap N =用于计算N 阶巴特沃思归一化(c Ω=1)模拟低通滤波器系统函数的零、极点和增益因子,返回长度为N 的向量z 和p 分别给出N 个零点和极点,G 是滤波器增益。
得到的滤波器系统函数形式如下:1212()()()()()()()()()a N a a N Q s s z s z s z H s G P s s p s p s p ---==--- 其中,k z 和k p 分别是向量z 和p 的第k 个元素。
如果要从零、极点得到系统函数的分子和分母多项式系数向量B 和A ,可以调用结构转换函数(3)[,]2(,,)B A zp tf z p G =,结构转换后系统函数的形式为111111()()()M M M a N N Nb s b s b B s H s A s a s a s a ----+++==+++其中,M 是向量B 的长度,N 是向量A 的长度,k k b a 和分别是向量B 和A 的第k 个元素。
(3)[,](,,,)C B A butter N W ftype s =''''用于计算巴特沃思模拟滤波器系统函数中分子和分母多项式系数向量B 和A ,其中N 和C W 分别是滤波器的阶和3dB 截止频率c Ω,返回向量B 和A 中的元素k a 和k b 分别是上面的()a H s 表示式中的分母和分子系数。
ftype 缺省时,设计低通滤波器;ftype=high 时,设计高通滤波器;ftype=stop 时,设计带阻滤波器,此时C W 为向量[1,]c cu W W ,且ftype 缺省时,设计带通滤波器,带通的频率区间为1c cu W W 〈Ω〈。
S 缺省时,设计数字滤波器。
例如:设计一个满足下列指标要求的巴特沃思模拟低通滤波器。
指标s rad dB s rad d s s p p /4,30,/2,1=Ω≥=Ω≤ααBMatlab 程序:2;4;1;30[,](,,,,[,](,,)00.0016[](p s p s C P S P S C W W R R N W buttord W W R R s B A butter N W s W H W freqs ====='')=''==; %滤波器参数; %计算滤波器的阶和3dB 截止频率; %计算滤波器系统函数分子、分母多项式系数::; %在0~6rad/s 频率范围内取1001个频率点,,,);20*log10(());(,),(//);(/)B A W W H abs H Bplot W H grid xlabel rad s ylabel dB ='''' %计算频率向量上的滤波器频率响应 %纵坐标的单位取d on %绘制幅频响应曲线频率(幅度运行结果如下:N=6Wc=2.2496B= 0 0 0 0 0 0 129.5917 A=1.0000 8.6916; 37.7720; 104.0667;191.1447 ;222.5973 ; 129.5917 即:65432129.5917()8.691637.7720104.0667191.1447222.5793129.5917a H s s s s s s s =++++++幅频响应曲线如图6.3.4所示。
2、Matlab 中设计数字滤波器的函数都是采用双线性变换法,将模拟滤波器转换为数字滤波器。
这些函数及其凋用格式如下(巴特沃思数字滤波器):(1)[,](,,,)C P S P S N W buttord W W R R =该格式用于计算巴特沃思数字滤波器的阶N 和3dB 截止频率的归一化值C W (关于π归一化)。
调用参数Wp 和Ws 分别是数字滤波器的通带截止频率和阻带截止频率的归一化值(关于π归一化),要求01p W ≤≤和01s W ≤≤,其中1表示数字频率π(对应模拟频率/2s f ,s f 为采样频率)。
p R 和s R 分别是通带最大衰减和阻带最小衰减,单位dB 。
当s p W W ≤时,设计高通滤波器;当p W 和s W 是二元向量时,设计带通(s p W W ≤)或带阻(s p W W ≥)滤波器,这时返回参数C W 也是二元向量。
(2)[,](,,)C B A butter N W ftype ='';该格式用于计算巴特沃思模拟滤波器系统函数中分子和分母多项式系数向量B 和A 。
调用参数N 和W C 分别是巴特沃思数字滤波器的阶和3dB 截止频率归一化值(关于π归一化)。
当ftype 缺省时,设计低通滤波器;当ftype=high 时,设计高通滤波器;ftype=stop 时,设计带阻滤波器,此时C W 为二元向量[1,]c cu W W ,1c W 和cu W 分别是带阻滤波器的通带3dB 下,上截止频率的归一化值(关于π归一化);C W 为向量[1,]c cu W W ,且ftype 缺省时,设计带通滤波器,带通的频率区间为1c cu W W ω〈〈。
注意设计出的带通和带阻数字滤波器是2N 阶的,这是因为带通滤波器可表示为一个N 阶低通滤波器与一个N 阶高通滤波器的级联。
由函数的返回向量B 和A 可写出数字滤波器的系统函数为:1112111121()NN N NN N b b z b z b z H z a a z a z a z ---+---+++++=++++ 其中,k k b a 和分别是向量B 和A 的第k 个元素。
例如:用双线性变换法设计巴特沃思数字低通滤波器,指标要求通带截止频率0.2p w rad π=,通带最大衰减1p dB α=;阻带截止频率0.35s w rad π=,阻带最小衰减10s dB α=解 设计步骤如下:(1)给出数字滤波器的指标。
0.2;0.35;10;P S S W W R ===(2)计算巴特沃思数字滤波器的阶N 和3dB 截止频率。
[,](,,,)C P S P S N W buttord W W R R =;(3)用双线性变换法设计巴特沃思数字低通滤波器。
[,](,)Z Z C B A butter N W =;运行结果如下:Z B =0.0335 0.1006 0.1006 0.0335Z A =1.000 -1.4245 0.8827 -1.1900设计出的数字滤波器系统函数为1231230.03350.10060.10060.0335() 1.000 1.42450.88270.1900z z z H z z z z ------+++=-+- 程序如下:0.2;0.35;10;10;[,](,,,);[,](,);P S P S C P S P S Z Z C W W R R N W buttord W W R R B A butter N W ====== %滤波器参数%计算数字滤波器的阶和3dB 截止频率%计算数字滤波器系统函数分子和分母多项 式的系数向量B 和A%省去绘图部分程序例:利用脉冲响应不变法,把系统函数为651)(2+++=s s s s H a 的模拟滤波器变换成等价的数字滤波器,采样间隔S T 1.0= 手算:2132651)(2+++=+++=s s s s s s H a 21112136065.05595.1108966.01.0112)(-------+--=---==zz z z e T z e T z H T T Matlab:B=[1,1];A=[1,5,6];T=0.1;Fs=1/T;[Bz,Az]=impinvar(B,A,Fs);%用脉冲响应不变法将模拟滤波器变换成数字滤波器运行结果:Bz=0.1000 -0.0897Az=1.000 -1.5595 0.60651、设采样周期T=250μs(采样频率f s =4kHz),用脉冲响应不变法和双线性变换法设计一个三阶巴特沃兹滤波器,其3dB边界频率为f c =1kHz。
[B,A]=butter(3,2*pi*1000,'s');[num1,den1]=impinvar(B,A,4000);[h1,w]=freqz(num1,den1);[B,A]=butter(3,2/0.00025,'s');[num2,den2]=bilinear(B,A,4000);[h2,w]=freqz(num2,den2);f=w/pi*2000;plot(f,abs(h1),'-.',f,abs(h2),'-');grid;xlabel('频率/Hz ')ylabel('幅值/dB')程序中第一个butter的边界频率2π×1000,为脉冲响应不变法原型低通滤波器的边界频率;第二个butter的边界频率2/T=2/0.00025,为双线性变换法原型低通滤波器的边界频率.图3.1给出了这两种设计方法所得到的频响,虚线为脉冲响应不变法的结果;实线为双线性变换法的结果。
脉冲响应不变法由于混叠效应,使得过渡带和阻带的衰减特性变差,并且不存在传输零点。
同时,也看到双线性变换法,在z=-1即ω=π或f=2000Hz处有一个三阶传输零点,这个三阶零点正是模拟滤波器在Ω=∞处的三阶传输零点通过映射形成的。
2、设计一数字高通滤波器,它的通带为400~500Hz,通带内容许有0.5dB 的波动,阻带内衰减在小于317Hz的频带内至少为19dB,采样频率为1,000Hz。
wc=2*1000*tan(2*pi*400/(2*1000));wt=2*1000*tan(2*pi*317/(2*1000));[N,wn]=cheb1ord(wc,wt,0.5,19,'s');[B,A]=cheby1(N,0.5,wn,'high','s');[num,den]=bilinear(B,A,1000);[h,w]=freqz(num,den);f=w/pi*500;plot(f,20*log10(abs(h)));axis([0,500,-80,10]);grid;xlabel('')ylabel('幅度/dB')图3.2给出了MATLAB计算的结果,可以看到模拟滤波器在Ω=∞处的三阶零点通过高通变换后出现在ω=0(z=1)处,这正是高通滤波器所希望得到的。