AnyMath 文档

埃利普

椭圆滤波器的计算。

库::`工程师`

语法

函数调用

  • [参数:ba]=ellip(<参数:n>>,<参数:Rp>>,<参数:Rs>>,<参数:Wp>>) -设计数字椭圆低通滤波器 [参数:n]-具有归一化带宽边界频率的阶数 [参数:Wp]. 产生的滤波器在带宽中具有纹波大小 [参数:Rp] dB和延迟带中的衰减 [参数:Rs] dB相对于带宽中的峰值。 功能 埃利普 返回滤波器传递函数的分子和分母的系数。

  • [参数:ba]=ellip(<参数:n>>,<参数:Rp>>,<参数:Rs>>,<参数:Wp>>,<参数:ftype>>) -设计数字椭圆滤波器:低通滤波器,高通滤波器,带通滤波器或陷波滤波器,具体取决于参数的值 [参数:ftype] 和元素的数量 [参数:Wp]. 带通和陷波滤波器的设计顺序如下 2<参数:n>>.

  • z, p, k=3(_;nout=3) -设计数字椭圆滤波器并返回其零 z,波兰人 p 和增益因子 k. 此语法可以包括前面选项中的任何输入参数。

  • =ellip(,"s";[参数:nout]) -使用前面语法中的任何输入或输出参数设计模拟椭圆滤波器。 论点 [参数:nout] 显示函数将返回多少个输出参数。 如果论点是 [参数:nout] 省略,该函数将仅对两个输出参数进行计算。

争论

输入参数

# n — 过滤顺序

+ 通行证:[标量]

Details

指定为整数标量的筛选器顺序小于或等于 500. 用于带通和陷波滤波器 n 表示滤波器阶数的一半。

数据类型

漂浮64</无翻译>

# *Rp*是 带宽中波纹的大小(以dB为单位)

+ 传:[正标量]

Details

带宽中波纹的大小,以dB为单位设置为正标量。

如果值为 以线性单位表示,您可以使用公式将其转换为dB Rp .

数据类型

漂浮64</无翻译>

# Rs — 延迟带中的衰减,单位为dB

+ 传:[正标量]

Details

延迟带中的衰减相对于通带中的峰值,以dB为单位设置为正标量。

如果值为 以线性单位表示,您可以使用公式将其转换为dB Rs的 .

数据类型

漂浮64</无翻译>

# 可湿性粉剂 — 带宽限制频率

+ 通行证:[标量] | 传递:[双元向量]

Details

带宽边界频率,指定为标量或双元矢量。 带宽边界频率是滤波器幅频响应的频率。 [参数:Rp] 在dB中。 带宽中较低的频率响应纹波值 [参数:Rp] 和延迟带中的大衰减值 [参数:Rs] 它们导致带宽增加。

如果 可湿性粉剂 -一个标量,然后 *埃利普 设计具有截止频率的低通或高通滤波器 可湿性粉剂.

+ 如果 可湿性粉剂 -双元向量 [w1w2],在哪里 w1<w2 然后 埃利普 设计具有较低截止频率的带通或陷波滤波器 w1 和上边界频率 w2.

*对于数字滤波器,带宽限制频率必须在范围内 0 以前 1,在哪里 1 对应于奈奎斯特频率-采样频率的一半或 rad/倒计时。

+ 对于模拟滤波器,带宽边界频率必须以rad/s表示,并且可以取任意正值。

数据类型

漂浮64</无翻译>

# ftype — 过滤器类型

+ 通过:["低"] | 通行证:["带通"] | 通行证:["高"] | 通行证:["停止"]

Details

指定为的筛选器类型:

  • "低" -带带宽边界频率的低通滤波器 [参数:Wp]. 此值默认用于标量 [参数:Wp];

  • "高" -带带宽边界频率的高通滤波器 [参数:Wp];

  • "带通" -带通滤波器 2<参数:n>> 如果 [参数:Wp] -一个双元向量。 默认情况下,此值在以下情况下使用 [参数:Wp] 设置为双元素向量;

  • "停止" -陷波(阻塞)滤波器 2<参数:n>> 如果 [参数:Wp] -一个双元向量。

数据类型

字符串</无翻译>

名称-值输入参数

# nout — 输出参数数

+ 2 (默认情况下)| 3 | 4

Details

输出参数的数量,设置为 2, 34. 如果论点是 nout 未指定,函数默认返回两个输出参数。

输出参数

# *b,a*是 传递函数的系数

+ 字符串向量

Details

作为行向量返回的滤波器传递函数的系数。 具有指定的过滤器顺序 [参数:n] 函数返回 bar 通过计算在哪里 R=<参数:n>>+1 对于低和高通滤波器和 r=2*[参数:n]+1 用于带通和陷波滤波器。

传递函数表示为 :

*用于数字滤波器

+

*模拟滤波器

+

数据类型

漂浮64</无翻译>

# z,p,k — 零,极点和增益

+ 传递:[列向量和标量]

Details

零,极点和滤波器增益,返回为两个向量-列和标量。 具有指定的过滤顺序 [参数:n] 函数返回 zpr 通过计算在哪里 R=<参数:n>> 对于低通和高通滤波器和 r=2*<参数:n>> 用于带通和陷波滤波器。

传递函数表示为 , :

*用于数字滤波器

+

*模拟滤波器

+

数据类型

漂浮64</无翻译>

# A,B,C,D — 状态空间中滤波器的表示

+ 传递:[矩阵]

Details

滤波器在状态空间中的表示形式,作为矩阵返回。 如果 R=<参数:n>> 对于低和高通滤波器和 R=2<参数:n>> 对于带通和陷波滤波器,则 A 这是矩阵 rr, B 矩阵 r1, C 矩阵 1r,而 D11.

状态空间矩阵与状态向量相关 、入口 和出口 借助方程组:

*用于数字滤波器

+

*模拟滤波器

+

数据类型

漂浮64</无翻译>

例子:

椭圆低通滤波器

Details

让我们设计一个椭圆低通滤波器 6-带宽中有波纹的顺序 10 dB,延迟带中的衰减 50 dB和带宽截止频率 300 Hz,其对应于 0.6π 频率采样数据的rad/计数 1000 赫兹。 让我们绘制幅频和相位特性。 我们用它来过滤一个频率随机信号 1000 数数。

import EngeeDSP.Functions: ellip, freqz, randn, filter

fc = 300
fs = 1000

b, a = ellip(6,10,50,fc/(fs/2))

freqz(b,a,fs,out=:plot)

ellip 1

dataIn = randn(1000,1)
dataOut = filter(b,a,dataIn)

椭圆屏障过滤器

Details

让我们设计一个椭圆屏障滤波器 3-具有归一化边界频率的阶数 0.2π0.6π rad/倒计时,带宽中的涟漪 5 dB和延迟带中的衰减 50 分贝。 让我们绘制幅频和相位特性。 我们用它来过滤随机信号。

import EngeeDSP.Functions: ellip, freqz, randn, filter

b,a = ellip(3,5,50,[0.2 0.6],"stop")

freqz(b,a,out=:plot)

ellip 2

dataIn = randn(1000,1)
dataOut = filter(b,a,dataIn)

椭圆高通滤波器

Details

让我们设计一个椭圆高通滤波器 6-带带宽截止频率的阶数 300 Hz,用于以频率采样的数据 1000 Hz,对应于 0.6π rad/倒计时。 设置带宽中的纹波 3 dB和延迟带中的衰减 50 分贝。 将零、极点和增益转换为二阶部分。 让我们绘制幅频和相位特性。

import EngeeDSP.Functions: ellip, zp2sos

z,p,k = ellip(6,3,50,300/500,"high"; nout=3)
sos = zp2sos(z,p,k)
freqz(sos, out=:plot)

ellip 3

椭圆带通滤波器

Details

让我们设计一个椭圆带通滤波器 20-带宽较低的顺序 500 Hz和上带宽 560 赫兹。 设置带宽中的纹波 3 dB,在臂架频段的衰减 40 dB和采样率 1500 赫兹。 我们在状态空间中使用表示。 我们将状态空间中的表示转换为二阶段的形式。 让我们绘制幅频和相位特性。

import EngeeDSP.Functions: ellip, ss2sos
fs = 1500

A,B,C,D = ellip(10,3,40,[500 560]/(fs/2); nout=4)
sos = ss2sos(A,B,C,D)[1]

freqz(sos,out=:plot)

ellip 4

算法

椭圆滤波器的性能下降比巴特沃斯或切比雪夫滤波器更陡,但它们在通带和延迟带都有均匀的脉动。 一般来说,椭圆滤波器对应于指定的特性,在任何类型的滤波器中具有最低的阶数。

椭圆过滤器 埃利普 使用五步算法:

*查找模拟低通原型的极点、零点和增益。

*将极点、零点和增益转换为状态空间。

*如有必要,使用状态空间变换将低通滤波器转换为具有所需频率约束的带通、高通或陷波滤波器。

*对于数字滤波器的设计,通过双线性频率预失真转换将模拟滤波器转换为数字滤波器。 精细频率调谐允许模拟和数字滤波器具有相同的频率响应幅度 可湿性粉剂w1w2.

*必要时将状态空间滤波器转换回传递函数或零极点增益形式。

文学作品

  1. 里昂,理查德G._Understanding数字信号处理._上鞍河,NJ:普伦蒂斯霍尔,2004.