数字滤波器设计
FIR和IIR滤波器
与finite-duration脉冲响应数字滤波器(零或FIR滤波器)相比,都有优点和缺点infinite-duration脉冲响应(IIR)过滤器。
FIR滤波器具有以下主要优点:
FIR滤波器的主要缺点是,他们往往需要更高的过滤订单比IIR滤波器来实现一个给定水平的性能。相应地,这些过滤器的延迟通常大于同等性能IIR滤波器。
冷杉过滤器总结
线性相位滤波器
除了cfirpm
,所有的FIR滤波器设计功能设计线性相位滤波器。的滤波器系数,或“龙头”,这样的过滤器服从一个奇数还是偶数对称关系。根据这个对称,是否订单n过滤器是奇数还是偶数的线性相位滤波器(存储在长度n+ 1的向量b
)有一定的固有限制频率响应。
线性相位滤波器类型 | 过滤器订单 | 对称系数 | 反应H (f), f= 0 |
反应H (f), f= 1(奈奎斯特) |
---|---|---|---|---|
I型 |
甚至 |
即使是:
|
没有限制 |
没有限制 |
II型 |
奇怪的 |
即使是:
|
没有限制 |
H(1) |
类型III |
甚至 |
奇怪的:
|
H(0) |
H(1) |
IV型 |
奇怪的 |
奇怪的:
|
H(0) |
没有限制 |
的相位延迟和群延迟的线性相位FIR滤波器频带是平等和持续。为一个订单n线性相位滤波器群延迟n/ 2,过滤信号只是推迟了n/ 2次步骤(和它的傅里叶变换的大小比例滤波器的幅度响应)。这个属性保存在通频带信号的波形;也就是说,不存在相位失真。
的函数fir1
,的故事
,firls
,firpm
,fircls
,fircls1
所有的设计类型默认I和II线性相位FIR滤波器。rcosdesign
设计只有I型过滤器。这两个firls
和firpm
设计类型III和IV线性相位FIR滤波器希尔伯特的
或“区别”
国旗。cfirpm
可以设计任何类型的线性相位滤波器和非线性阶段过滤器。
请注意
因为II型滤波器的频率响应是零在奈奎斯特频率(高频率),fir1
没有设计II型高通滤波和bandstop过滤器。对奇值n
在这些情况下,fir1
向订单添加1并返回一个I型过滤器。
窗口的方法
考虑理想,或“砖墙”,数字低通滤波器的截止频率ω0rad / s。这个过滤器与震级小于1级的频率ω0,0级频率ω之间的大小0和π。其脉冲响应序列h(n)是
这个过滤器不是可实现自其脉冲响应是无限的和因果。创建一个finite-duration脉冲响应,截断它通过应用一个窗口。通过保留中央部分的脉冲响应截断,你得到一个线性相位滤波器。例如,长度51滤波器低通截止频率ω00.4πrad / s
b = 0.4 * sinc(0.4 *(二五25));
这里应用是一个简单的矩形窗口的窗口。Parseval定理,这是最接近理想的长度51滤波器低通滤波器,结合最小二乘意义上的。以下命令显示在FVTool滤波器的频率响应:
fvtool (b, 1)
请注意,y设在平方大小如下图所示。你可以设置通过右键单击并选择轴标签大小的平方从菜单中。
响和涟漪发生反应,特别是在频带边缘附近。这个“吉布斯效应”不消失随着滤波器长度的增加,但非矩形窗口可以减少它的大小。乘法的一个窗口在时域导致频域卷积或平滑。应用一个长度51汉明窗使用FVTool过滤器和显示结果:
b = 0.4 * sinc(0.4 *(二五25));b = b。*汉明(51)';fvtool (b, 1)
请注意,y设在平方大小如下图所示。你可以设置通过右键单击并选择轴标签大小的平方从菜单中。
用汉明窗大大减少了响了。这个改进是过渡宽度为代价(窗口的版本需要更长的时间,通带和阻带)和最优(窗口的版本不最小化集成平方误差)。
标准带冷杉滤波器设计:fir1
fir1
使用最小二乘近似计算滤波器系数,然后用一个窗口平滑脉冲响应。windows的概述及其属性,请参阅窗户。fir1
类似于IIR滤波器的设计功能是制定设计过滤器标准乐队配置:低通,带通,高通滤波和bandstop。
的语句
n = 50;Wn = 0.4;b = fir1 (n, Wn);
创建行向量b
包含订单的系数n
Hamming-windowed过滤器。这是一个低通滤波器,线性相位滤波器的截止频率Wn
。Wn
是一个数字0和1之间,1对应于奈奎斯特频率,采样频率的一半。(与其他方法Wn
对应于6 dB点。)高通滤波器,简单的添加“高”
函数的参数列表。带通或bandstop过滤器,指定Wn
作为一个双元素包含频率通带边缘的向量。附加“停止”
bandstop配置。
b = fir1 (n, n,窗口)
使用窗口中指定的列向量窗口
的设计。向量窗口
必须n + 1
元素长。如果你不指定一个窗口,fir1
适用于一个汉明窗。
Kaiser窗估计。的kaiserord
函数估计滤波器的顺序、截止频率和Kaiser窗β参数需要满足给定的一组规范。给定一个向量的频带边缘和一个相应的向量的大小,以及最大允许的涟漪,kaiserord
返回适当的输入参数fir1
函数。
多频带滤波器设计:故事
的的故事
函数还设计有窗的FIR滤波器,但任意形状的分段线性频率响应。这是形成鲜明对比fir1
,它只设计过滤器标准低通,高通,带通和bandstop配置。
的命令
n = 50;f = [0。4。5 1];m = [1 1 0 0];b =故事(n、f m);
返回行向量b
包含n + 1
订单的系数n
冷杉的过滤器frequency-magnitude特征匹配给定的向量f
和米
。f
是一个向量从0到1的频率点,1代表了奈奎斯特频率。米
是一个向量包含指定的大小反应中指定的点吗f
。(IIR对应的函数yulewalk
,设计基于任意分段线性滤波器级响应。看到IIR滤波器的设计详情)。
多频带滤波器设计与过渡
的firls
和firpm
函数提供了一个更一般的指定过滤比指定的理想的手段fir1
和的故事
功能。这些函数设计希尔伯特变压器、差异和其他过滤器与奇对称系数(类型III和IV型线性相位)。他们还让你包括过渡或“不在乎”区域的错误不是最小化,并执行乐队的依赖最小化的权重。
的firls
功能的扩展fir1
和的故事
函数,它最小化误差的平方的积分之间的实际指定的频率响应和频率响应。
的firpm
函数实现了Parks-McClellan算法,它使用雷米交换算法和切比雪夫逼近理论之间的过滤器设计符合指定的和实际的频率响应。过滤器是最优的,他们之间的最大误差最小化指定的频率响应和实际的频率响应;他们有时被称为极大极小过滤器。过滤器设计以这种方式展示equiripple行为在他们的频率响应,因此也被称为equiripple过滤器。Parks-McClellan冷杉滤波器设计算法也许是最流行和广泛使用的数字滤波器设计方法。
的语法firls
和firpm
是相同的;唯一的区别是他们的最小化方案。接下来的例子展示了如何设计过滤器firls
和firpm
反映出不同的方案。
基本配置
默认的操作方式firls
和firpm
是设计I型和II型线性相位滤波器,取决于你想要的订单是奇数还是偶数,分别。一个低通滤波器的例子与近似振幅1从0到0.4赫兹,从0.5到1.0,近似幅度0 Hz
n = 20;%过滤器订单f = [0 0.4 0.5 1];%频带边缘一个= [1 1 0 0];%振幅b = firpm (n、f);
从0.4到0.5赫兹,firpm
执行没有错误最小化;这是一个过渡带或“不在乎”地区。过渡带最小化错误更多的关心你的乐队,以牺牲速度较慢的过渡。通过这种方式,这些类型的过滤器有一个固有的权衡类似于冷杉设计窗口。
比较最小二乘equiripple滤波器设计,使用firls
创建一个类似的过滤器。类型
bb = firls (n、f);
使用FVTool和比较它们的频率响应:
fvtool (b, 1, bb, 1)
请注意,y设在平方大小如下图所示。你可以设置通过右键单击并选择轴标签大小的平方从菜单中。
过滤器的设计与firpm
展品equiripple行为。还注意到firls
过滤器有更好的响应在通带和阻带的大部分,但在乐队边缘(f
=0.4
和f
=0.5
),反应是远离理想的比firpm
过滤器。这表明firpm
过滤器的最大错误在通带和阻带是较小的,事实上,这是最小的可能带边缘配置和滤波器长度。
认为频带线在短的频率间隔。firpm
和firls
使用这个方案来表示任何过渡分段线性频率特性函数。firls
和firpm
设计低通、高通、带通和bandstop过滤器;一个带通的例子是
f = [0 0.3 0.4 0.7 0.8 1];%乐队边缘成对一个= (0 0 1 1 0 0);%带通滤波器的振幅
从技术上讲,这些f
和一个
向量定义五个乐队:
两个阻带,从0.0到0.3,从0.8到1.0
从0.4到0.7通频带
两个过渡乐队,从0.3到0.4,从0.7到0.8
高通滤波和bandstop过滤器示例
f = [0 0.7 0.8 1];%乐队边缘成对一个= (0 0 1 1);%高通滤波器幅值f = [0 0.3 0.4 0.5 0.8 1];%乐队边缘成对一个= [1 1 0 0 1 1];% Bandstop滤波器幅度
多波段带通滤波器是一个例子
f = [0 0.1 0.15 0.25 0.3 0.4 0.45 0.55 0.6 0.7 0.75 0.85 0.9 1];a = [1 1 0 0 1 1 0 0 1 1 0 0 1 1];
另一种可能性是一个过滤器,作为过渡区通带与阻带线连接;这可以帮助控制“失控”级响应宽过渡区域:
f = [0 0.4 0.42 0.48 0.5 1];一个= (1 1 0.8 - 0.2 0 0);%通频带,线性过渡,%阻带
权重向量
这两个firls
和firpm
让你或多或少地强调最小化误差在某些频段相对于别人。要做到这一点,指定一个权向量后,频率和振幅矢量。一个低通滤波器equiripple涟漪在阻带滤波器与10倍小于通频带
n = 20;%过滤器订单f = [0 0.4 0.5 1];%频带边缘一个= [1 1 0 0];%振幅10 w = [1];%权向量b = firpm (n、f, w);
法律权向量总是一半的长度f
和一个
向量;必须有一个重量/乐队。
反对称过滤器/希尔伯特变压器
当叫落后“h”
或希尔伯特的
选项,firpm
和firls
设计FIR滤波器和奇怪的对称性,即类型III(甚至顺序)或IV型(奇怪的顺序)线性相位滤波器。理想的希尔伯特变换器有反对称性财产和1在整个频率范围内的振幅。试试下面的近似希尔伯特变压器,并把它们使用FVTool:
b = firpm(21日0.05 [1],[1],“h”);%高通的希尔伯特bb = firpm(20日[0.05 - 0.95],[1],“h”);%带通希尔伯特fvtool (b, 1, bb, 1)
你可以找到一个信号的延迟希尔伯特变换x
通过这些过滤器。
fs = 1000;%采样频率t = (0:1 / fs: 2) ';%两次向量x =罪(2 *π* 300 * t);% 300 Hz正弦波信号的例子xh =过滤器(bb 1 x);%的希尔伯特变换x
分析信号对应x
复杂的信号吗x
作为它的实部和希尔伯特变换x
作为其虚部。对于这个冷杉(另一种方法希尔伯特
函数),你必须延迟x
一半的过滤器来创建分析信号:
xd = [0 (10, 1);x(1:长度(x) -10)];%延迟10个样本xa = xd + j * xh;%解析信号
这种方法不直接奇怪的过滤器的工作秩序,这需要一个noninteger延迟。在这种情况下,希尔伯特
描述的功能,希耳伯特变换估计,分析信号。另外,使用重新取样
函数由noninteger延迟信号样本的数量。
微分器
分化的信号在时域乘法相当于一个虚构的斜坡信号的傅里叶变换的功能。区分一个信号,通过一个过滤器,一个响应H(ω)=
jω。近似理想的区别(延迟)firpm
或firls
与一个' d '
或“区别”
选择:
b = firpm(21日[0,1],[0π),' d ');
III型滤波器,分化乐队应该停止的奈奎斯特频率,振幅矢量必须反映,以确保正确的斜率变化:
bb = firpm(0.9[0],[0 0.9 *π],' d ');
在' d '
模式,firpm
重量误差1 /ω的零振幅乐队最小化最大相对错误。firls
重量的误差(1 /ω)2在非零振幅的乐队' d '
模式。
下面的情节展示上述差异的大小反应。
fvtool (b, 1, bb, 1)传说(“奇怪的秩序”,“甚至秩序”,“位置”,“最佳”)
约束最小二乘滤波器设计
约束最小二乘法(CLS)数字滤波器设计功能实现的技术,使您能够设计FIR滤波器,而不需显式地定义的过渡乐队级响应。可以省略的规范过渡乐队在一些情况下是有用的。例如,它可能并不清楚这将出现一个严格定义的过渡带如果噪声和信号的信息出现在相同的频带。同样的,也许是有意义忽略过渡乐队的规范,如果他们只出现控制吉布斯现象的结果出现在滤波器的响应。看到Selesnick,朗,Burrus[2]该方法的讨论。
而不是定义通带、阻带和过渡区域,CLS方法接受一个截止频率(高通滤波、低通、带通或bandstop例),或通带和阻带边缘(多波段病例),为您指定的响应。这样,CLS隐式方法定义了过渡区域,而不是显式的。
CLS方法的关键特性是,它使您能够定义包含上、下阈值大小的最大允许脉动响应。鉴于这种约束,应用最小平方误差最小化技术的滤波器的频率范围的反应,而不是在特定的乐队。最小化误差包括任何不连续的理想地区,“砖墙”反应。一个额外的好处是,这项技术使您可以指定任意小山峰的吉布斯现象。
有两个工具箱函数实现这个设计技术。
对这些函数的调用语法细节,看到他们的描述函数参考参考。
基本的低通和高通CLS滤波器设计
CLS设计的最基本的功能,fircls1
使用这种技术来设计低通和高通FIR滤波器。作为一个例子,考虑设计一个过滤器订单61脉冲响应和截止频率为0.3(归一化)。此外,定义约束的上、下界的设计过程:
最大的通频带偏离1(通带波纹)为0.02。
最大阻带偏差从0(阻带波动)为0.008。
使用这种设计方法问题fircls1
使用下面的命令:
n = 61;我们= 0.3;dp = 0.02;ds = 0.008;h = fircls1 (n,我们,dp, ds);fvtool (h, 1)
请注意,y设在所示大小的平方。你可以设置通过右键单击并选择轴标签大小的平方从菜单中。
多波段CLS滤波器设计
fircls
使用相同的技术来设计FIR滤波器与指定的分段常数级响应。在这种情况下,您可以指定一个向量的乐队乐队振幅的边缘和一个相应的向量。此外,您可以指定为每个带波纹的最大数量。
例如,假设一个过滤器的规格要求:
从0到0.3(归一化):振幅0 -0.005 0.005上限,下限
从0.3到0.5:振幅0.5,0.51上限,下限0.49
从0.5到0.7:振幅0,最大值0.03,-0.03下界
从0.7到0.9:振幅1 0.98 1.02上限,下限
从0.9到1:振幅0 -0.05 0.05上限,下限
设计一个CLS滤波器脉冲响应的订单129符合这些规范:
n = 129;f = [0 0.3 0.5 0.7 0.9 1];一个= (0.5 0 0 1 0);= (0.005 0.51 - 0.03 1.02 - 0.05);lo = (-0.005 0.49 - -0.03 0.98 - -0.05);h = fircls (n、f, lo);fvtool (h, 1)
请注意,y设在所示大小的平方。你可以设置通过右键单击并选择轴标签大小的平方从菜单中。
加权CLS滤波器设计
加权CLS滤波器设计允许您设计低通、高通FIR滤波器的相对权重在每个频带误差最小化。的fircls1
函数允许您指定的通带和阻带边缘最小二乘加权函数,以及一个常数k
指定的阻带通带权重的比例。
例如,考虑规范,呼吁冷杉滤波器脉冲响应的顺序55和截止频率为0.3(归一化)。还假设最大允许通带波纹的0.02和0.004的最大允许阻带波动。此外,添加权重要求:
权函数的通频带边缘0.28(归一化)
0.32阻带边缘的权函数
重量误差最小化10倍的阻带和通带
使用的方法fircls1
、类型
n = 55;我们= 0.3;dp = 0.02;ds = 0.004;wp = 0.28;ws = 0.32;k = 10;dp, h = fircls1 (n, ds, wp, ws, k);fvtool (h, 1)
请注意,y设在所示大小的平方。你可以设置通过右键单击并选择轴标签大小的平方从菜单中。
Arbitrary-Response滤波器设计
的cfirpm
滤波器设计函数提供了一个工具来设计FIR滤波器具有任意复杂的反应。它不同于其他滤波器设计函数滤波器的频率响应是如何指定:它接受一个函数的名称返回过滤器在电网的频率响应计算。这种能力使cfirpm
滤波器设计的高度通用的和强大的技术。
这种设计方法可以用来产生非线性相位FIR滤波器,不对称的频率特性过滤器(复系数),或更对称的过滤器定义频率响应。
设计算法优化切比雪夫(或极小极大)错误使用扩展Remez-exchange算法的初始估计。如果这个交换方法无法获得最优滤波器,该算法切换到一个接管ascent-descent算法完成收敛到最优解。
多频带滤波器设计
考虑多频带滤波器具有以下特殊的频域特性。
乐队 |
振幅 |
优化权重 |
---|---|---|
-0.5 [1] |
(5 - 1) |
1 |
(-0.4 + 0.3) |
(2 - 2) |
10 |
(+ 0.4 + 0.8) |
(2 - 1) |
5 |
线性相位多频带滤波器可以使用预定义的频率特性设计的功能多波段
,如下所示:
b = cfirpm(38岁(1 -0.5 -0.4 0.3 0.4 - 0.8),…{多波段的,5 1 2 2 2 1},10 5 [1]);
多频带滤波器的具体情况,我们可以使用速记滤波器设计符号的语法相似firpm
:
b = cfirpm(38岁(1 -0.5 -0.4 0.3 0.4 - 0.8),…(5 1 2 2 2 1)10 5 [1]);
与firpm
向量的带边传递cfirpm
。这个向量定义的频段进行优化;请注意,有两个过渡乐队,从-0.5到-0.4,从0.3到0.4。
在这两种情况下,频率响应得到并使用线性比例绘制FVTool:
fvtool (b, 1)
注意,数据如下所示的范围(π-π)
。
多波段的滤波器响应滤波器是复杂的,预计由于不对称在频域。脉冲响应,您可以选择从FVTool工具栏,如下所示。
滤波器设计与减少延迟
考虑62 -丝锥的设计低通滤波器half-Nyquist截止。如果我们指定一个负的偏移值低通滤波器
的群时延补偿滤波器设计功能,设计显著小于获得一个标准的线性相位的设计。这个过滤器设计可以计算如下:
b = cfirpm(61年,[0 0.5 0.55 1){低通滤波器的-16});
结果级响应
fvtool (b, 1)
的y设在在大小的平方,也可以设置通过右键单击并选择轴标签大小的平方从菜单中。
滤波器的群延迟显示,偏移量减少N / 2
来N / - 18
(即。,from30.5
来14.5
)。然而现在,群延迟不再平坦的通带地区。要创建这个情节,单击群延迟响应工具栏上的按钮。
如果我们比较非线性相位滤波器的线性相位滤波器正好有14.5样品的群延迟,由此产生的过滤器订单2 * 14.5,或29。使用b = cfirpm(29日[0 0.5 0.55 1],“低通”)
,通带和阻带波动更大订单29过滤器。这些比较可以帮助您决定哪些滤波器更适合一个特定的应用程序。