主要内容

firpm

帕克斯-麦克莱伦最优FIR滤波器设计

描述

例子

b=每分钟飞行分钟数(nf一个返回行向量b包含n+1阶系数-nFIR滤波器。产生的滤波器的频率和振幅特性与矢量给出的特性相匹配f一个

例子

b=每分钟飞行分钟数(nf一个w使用w衡量频率箱。

b=每分钟飞行分钟数(nf一个ftype使用指定的筛选器类型“ftype”

b=每分钟飞行分钟数(nf一个lgrid使用整数lgrid来控制频率栅格的密度。

b犯错]=每分钟飞行分钟数(___返回的最大纹波高度犯错.您可以将它与前面的任何输入语法一起使用。

b犯错res]=每分钟飞行分钟数(___将频率响应特性作为结构返回res

b=每分钟飞行分钟数(nffrespw返回一个FIR滤波器,其频率幅值特性与函数句柄返回的响应最接近fresp

b=每分钟飞行分钟数(nffrespwftype设计反对称(奇数)滤波器,其中ftype指定滤波器为微分器或希尔伯特变压器。如果没有指定ftype,致电fresp以确定默认对称属性。

例子

全部折叠

使用Parks-McClellan算法设计阶数为17的FIR带通滤波器。指定的标准化阻带频率为 0 3. π 0 7 π 的射频/采样和归一化通频带频率 0 4 π 0 6 π rad/sample。绘制理想和实际震级响应。

f=[0.30.40.60.71];a=[0.01.00];b=firpm(17,f,a);[h,w]=freqz(b,1512);绘图(f,a,w/pi,abs(h))图例(“理想”“firpm设计”)包含的弧度频率ω(\ / \π)', ylabel“级”

图形包含一个轴。轴包含两个类型为line的对象。这些对象表示理想的firpm设计。

设计一个通带截止频率为1500hz、阻带截止频率为2000hz的低通滤波器。请指定采样频率为8000hz。要求最大阻带振幅为0.01,最大通带误差(纹波)为0.001。使用下面的方法获取所需的滤波器阶数、归一化频带边缘、频带振幅和权重菲尔莫德

[n, fo ao w] = firpmord (2000 [1500], [1 0], [0.001 - 0.01], 8000);b = firpm (n, fo ao w);fvtool (b, 1)

图过滤器可视化工具-幅度响应(dB)包含一个轴和其他类型的uitoolbar, uimenu对象。标题为“大小响应(dB)”的轴包含一个类型为line的对象。

使用帕克斯-麦克莱伦算法创建一个50阶等波纹FIR带通滤波器,用于在1 kHz采样信号。

N = 50;Fs = 1 e3;

指定通带的频率范围在200hz到300hz之间,且通带两侧的过渡区域的宽度为50hz。

Fstop1 = 150;Fpass1 = 200;Fpass2 = 300;Fstop2 = 350;

设计滤波器,使优化拟合的低频阻带权重为3,通带权重为1,高频阻带权重为100。显示滤波器的幅度响应。

Wstop1 = 3;Wpass = 1;Wstop2 = 100;b = firpm(N,[0 Fstop1 Fpass1 Fpass2 Fstop2 Fs/2]/(Fs/2),...[0 0 1 1 0 0],[Wstop1 Wpass Wstop2]);fvtool(b,1)

图过滤器可视化工具-幅度响应(dB)包含一个轴和其他类型的uitoolbar, uimenu对象。标题为“大小响应(dB)”的轴包含一个类型为line的对象。

输入参数

全部折叠

过滤顺序,指定为实正标量。

归一化频率点,指定为实值向量。参数必须在[0,1]范围内,其中1对应于Nyquist频率。向量中的元素数总是2的倍数。频率必须是递增的。

中规定的点的期望振幅f,指定为向量。f一个必须是相同的长度。长度必须是偶数。

  • 在两个点(fk),fk+ 1)k奇数是连接点的线段(fk),一个k)和(fk+ 1),一个k+1)).

  • 在两个点(fk),fk+ 1)k即使是未指定的。这些点之间的区域是过渡区域或对特定应用程序不重要的区域。

权值用于调整每个频带的适合度,指定为实值向量。的长度w长度的一半是f一个,所以每条带子只有一个重量。

奇对称线性相位滤波器的滤波器类型(III型和IV型),指定为任意一种希尔伯特的“区别”

  • 希尔伯特的-输入输出系数b服从关系bk) = –bn+ 2 -k),k= 1,…,n+ 1。这类滤波器包括希尔伯特变压器,它在整个频带的期望振幅为1。

    例如,

    h=firpm(30,[0.10.9],[11],希尔伯特的);

    设计了长度为31的近似FIR-Hilbert变换器。

  • “区别”-对于非零振幅波段,滤波器将误差加权1倍/f因此,低频时的误差比高频时小得多。对于FIR微分器,其振幅特性与频率成正比,这些滤波器使最大相对误差(误差与期望振幅之比的最大值)最小化。

控制频率栅格的密度,该栅格大致具有(lgrid * n) / (2 * bw)频点,bw是所覆盖的总频带间隔[0,1]的分数f.增加lgrid通常会产生与等波纹滤波器更精确匹配的滤波器,但计算时间较长16是应该指定的最小值吗lgrid

频率响应,指定为函数句柄。函数从内部调用firpm使用此语法:

(dh, dw) = fresp (n, f, gf, w)

这些论据与我们的观点相似firpm

  • n为过滤顺序。

  • f是在0和1之间单调出现的归一化频带边的向量,其中1是奈奎斯特频率。

  • 女朋友是栅格点的向量,这些栅格点已通过firpm女朋友确定响应函数必须在其处评估的频率网格,并包含返回的相同数据cfirpmfgrid场的选择结构

  • w是一个实的,正权值的向量,每个频带一个,用于优化。w是可选的调用firpm;如果未指定,则在传递给之前将其设置为统一权重fresp

  • dhdw在网格中的每个频率处,分别评估所需的复频率响应和频带权重向量女朋友

输出参数

全部折叠

过滤器系数,作为长度的行向量返回n+ 1. 系数按递增顺序排列。

最大纹波高度,作为标量返回。

频率响应特性,作为结构返回。结构res具有以下字段:

res.fgrid

频率网格矢量用于滤波器的优化设计

res.des

中每个点的期望频率响应res.fgrid

res.wt

对每一点进行加权opt.fgrid

res.H

每个点的实际频率响应res.fgrid

res.error

每个点都有错误res.fgridres.des-res.H

res.iextr

指数向量res.fgrid对极值频率

res.fextr

极值频率的向量

提示

如果您的滤波器设计不能收敛,则滤波器设计可能不正确。通过检查频率响应来验证设计。

如果您的过滤器设计无法收敛,并且生成的过滤器设计不正确,请尝试以下一项或多项操作:

  • 增加过滤器顺序。

  • 通过减小阻带中的衰减和/或加宽过渡区域来放松滤波器设计。

算法

firpm利用Parks-McClellan算法设计了线性相位FIR滤波器[2]Parks-McClellan算法使用Remez交换算法和切比雪夫近似理论来设计滤波器,使期望频率响应和实际频率响应之间具有最佳拟合。滤波器在期望频率响应和实际频率响应之间的最大误差最小化的意义上是最佳的。滤波器这种方式在其频率响应中表现出等波纹行为,有时被称为等波纹滤波器。firpm由于这种等波纹性质,在脉冲响应的头部和尾部表现出不连续。

这些是第一类(n奇数)和第II类(n甚至)线性相位滤波器。向量f一个指定滤波器的频率振幅特性:

  • f为频率点对的向量,在0到1之间指定,其中1对应于奈奎斯特频率。频率必须是递增的。重复的频率点是允许的,事实上,可以用来设计一个滤波器,与那些返回的fir1fir2矩形函数(rectwin)窗户。

  • 一个是在中指定的点处包含所需振幅的向量f

    在对点之间的频率处的期望振幅函数(fk),fk+ 1)k奇数是连接点的线段(fk),一个k)和(fk+ 1),一个k+1)).

    在对点之间的频率处的期望振幅函数(fk),fk+ 1)k甚至没有具体说明。这些是过渡或“不在乎”区域。

  • f一个长度相同。此长度必须为偶数。

下图说明了f一个定义所需振幅响应的向量。

firpm对于具有偶对称和奈奎斯特频率上的非零通带的配置,总是使用偶滤波器顺序。偶滤波阶的原因是对于偶对称和奇阶的脉冲响应,Nyquist频率处的频率响应必然为0。如果你指定一个奇值nfirpm把它加1。

firpm设计类型I, II, III和IV线性相位滤波器。类型I和类型II是默认值n均匀n,而III型(n偶数)和IV型(n奇数)用希尔伯特的“区别”,分别使用ftype参数..不同类型的滤波器具有不同的对称性,并且对其频率响应有一定的限制。(参见[3]更多细节)。

线性相位滤波器类型 过滤器订单 系数对称性 响应H (f)f0 响应H (f)f1(奈奎斯特)

I型

甚至

即使是:

b k b n + 2 k k 1 ... n + 1

没有限制

没有限制

II型

奇怪的

即使是:

b k b n + 2 k k 1 ... n + 1

没有限制

H(1)0

firpm如果您试图构造在奈奎斯特频率处具有非零通带的II型滤波器,则将滤波器阶数增加1。

第三类

甚至

奇怪的:

b k b n + 2 k k 1 ... n + 1

H(0)0

H(1)0

IV型 奇怪的

奇怪的:

b k b n + 2 k k 1 ... n + 1

H(0)0

没有限制

你也可以使用firpm写一个函数来定义所需的频率响应。的预定义频响函数句柄firpm@firpmfrf,设计了一种线性相位FIR滤波器。

请注意

b=firpm(n、f、a、w)相当于b = firpm (n、f {@firpmfrf,}, w)哪里@firpmfrf预定义的频率响应函数是否处理firpm.如果愿意,您可以编写自己的响应函数。使用帮助私人/ firpmfrf看看创建函数处理为更多的信息。

参考文献

IEEE声学、语音和信号处理学会数字信号处理委员会编。数字信号处理论文选集.卷二世。纽约:IEEE出版社,1976。

IEEE声学、语音和信号处理学会数字信号处理委员会编。数字信号处理程序.纽约:IEEE出版社,1979,算法5.1。

Oppenheim, Alan V., Ronald W. Schafer, and John R. Buck。离散时间信号处理.上鞍河,NJ: Prentice Hall, 1999, p. 486。

[4] Parks, Thomas W.和C. Sidney Burrus。数字滤波器设计.纽约:约翰·威利父子公司,1987年,第83页。

[5] Rabiner, Lawrence R., James H. McClellan和Thomas W. Parks。“基于加权切比雪夫近似的FIR数字滤波器设计技术”。IEEE论文集®.第63卷第4期,1975年,第595-610页。

扩展能力

在R2006a之前引入