主要内容

firls

最小二乘线性相位FIR滤波器设计

描述

例子

b= firls (nf一个返回行向量b包含n + 1一阶系数-n冷杉过滤器。所得滤波器的频率和振幅特性与矢量所给出的特征相匹配f而且一个

例子

b= firls (nf一个w使用w对频率箱进行称重。

例子

b= firls (___ftype设计反对称(奇数)滤波器,其中ftype将滤波器指定为微分器或希尔伯特变压器。您可以使用ftype使用任何前面的输入语法。

例子

全部折叠

设计一个255阶FIR低通滤波器,其过渡区域介于 0 2 5 π 而且 0 3. π .使用fvtool显示滤波器的幅值和相位响应。

B = firls(255,[0 0.25 0.3 1],[1 1 0 0]);fvtool (b, 1“OverlayedAnalysis”“阶段”

图1:幅值响应(dB)和相位响应包含一个轴对象。标题为幅度响应(dB)和相位响应的axis对象包含一个类型为line.

理想微分器的频率响应由 D ω j ω .设计一个30阶的微分器来衰减以上的频率 0 9 π .包含的因素 π 因为频率被归一化了 π .显示滤波器的零相位响应。

B = firls(30,[0 0.9],[0 0.9*pi],“区别”);fvtool (b, 1“MagnitudeDisplay”“零”

图1:零阶段响应包含一个坐标轴对象。标题为Zero-phase Response的axes对象包含一个类型为line.

设计一个分段线性通带的24阶反对称滤波器。

F = [0 0.3 0.4 0.6 0.7 0.9];A = [0 1.0 0.0 0.0 0.5 0.5];F b = firls(24日,,希尔伯特的);

画出期望的和实际的频率响应。

[H f] = freqz (b, 1512, 2);情节(f、abs (H))i = 1:2:6, plot([F(i) F(i+1)],[A(i) A(i+1)],“r——”结束传奇(“firls设计”“理想”网格)包含('归一化频率(\times\pi rad/sample)') ylabel (“级”

图中包含一个axes对象。axis对象包含4个line类型的对象。这些物品代表了她的设计,理想。

设计一个FIR低通滤波器。通带范围为DC ~ 0 4 5 π rad /样品。阻带范围为 0 5 5 π rad/sample到奈奎斯特频率。生成三种不同的设计,在最小二乘拟合中改变条带的权重。

在第一种设计中,使阻带重量比通带重量高100倍。当阻带中的幅值响应平坦且接近于0时,使用此规范。通带波纹大约是阻带波纹的100倍。

嗨= firls(18日[0 0.45 0.55 1],[1 1 0 0],[100]);

在第二个设计中,反向权值,使通带权值是阻带权值的100倍。当通带中的幅值响应平坦且接近于1时,使用此规范。阻带波纹大约是通带波纹的100倍。

鼓风机= firls(18日[0 0.45 0.55 1],[1 1 0 0],[1]100);

在第三种设计中,给两个带子同样的重量。结果是一个滤波器在通带和阻带有类似的波纹。

B = firls(18,[0 0.45 0.55 1],[1 1 0 0],[1 1]);

可视化三个过滤器的幅度响应。

车辆hfvt = fvtool (bhi 1, 1, b, 1,“MagnitudeDisplay”“零”);传奇(hfvt'bhi: w = [1 100]''blo: w = [100 1]''b: w = [1 1]'

图1:零阶段响应包含一个坐标轴对象。标题为Zero-phase Response的axes对象包含3个类型为line的对象。这些对象表示bhi: w = [1 100], blo: w = [100 1], b: w = [1].

输入参数

全部折叠

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

归一化频率点,指定为实值向量。参数必须在[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。

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

输出参数

全部折叠

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

更多关于

全部折叠

滤镜长度和过渡宽度不兼容

如果你设计的过滤器长度和过渡宽度的乘积很大,你可能会得到这样的警告消息:矩阵近似于奇异或比例失调.下面的示例说明了这种限制。

B = firls(100,[0 0.15 0.85 1],[1 100]);
警告:矩阵接近奇异或缩放严重。结果可能不准确。RCOND = 3.056853 e-18。
fvtool (b, 1“OverlayedAnalysis”“阶段”

图1:幅值响应(dB)和相位响应包含一个轴对象。标题为幅度响应(dB)和相位响应的axis对象包含一个类型为line.

在这种情况下,是滤波系数b可能不表示所需的过滤器。你可以通过查看它的频率响应来检查滤波器。

算法

firls设计了一种线性相位FIR滤波器,使理想分段线性函数与滤波器在一组期望频带上的幅值响应之间的加权积分平方误差最小化。

参考[2]描述了背后的理论方法firls.这个函数解的是一个线性方程组,它包含一个大致大小的内积矩阵n \ 2使用MATLAB®操作符。

这些是I型(n为奇数)和第二类(n是偶数)线性相位滤波器。向量f而且一个指定滤波器的频率-振幅特性:

  • f是由频率点对组成的向量,在0到1的范围内指定,其中1对应奈奎斯特频率。频率必须按递增顺序排列。允许重复的频率点。

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

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

    点对之间频率处的期望振幅函数(fk),fk+ 1)k即使是未指定的。这些是过渡(“不在乎”)区域。

  • f而且一个长度相同。这个长度必须是偶数。

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

该函数设计I型、II型、III型和IV型线性相位滤波器。类型I和II分别是n为偶数和奇数时的默认过滤器,而希尔伯特的而且“区别”标志产生类型III (n为偶数)和IV (n为奇数)过滤器。不同类型的滤波器对其频率响应有不同的对称性和限制[1]详情)。

线性相位滤波器类型 过滤器订单 对称系数 响应H(f), f = 0 响应H(f), f = 1 (Nyquist)

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

类型III

甚至

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

没有限制

参考文献

奥本海姆,艾伦五世,罗纳德W.谢弗,约翰R.巴克。离散时间信号处理.上马鞍河,新泽西州:普伦蒂斯大厅,1999年。

[2]帕克斯,托马斯W.和C.西德尼Burrus。数字滤波器设计.霍博肯,新泽西州:约翰·威利父子,1987年,第54-83页。

扩展功能

C / c++代码生成
使用MATLAB®Coder™生成C和c++代码。

版本历史

之前介绍过的R2006a

Baidu
map