AnyMath 文档

[医]过滤器

页面进行中。

创建巴特沃斯RF滤波器,切比雪夫RF滤波器和切比雪夫反向滤波器。

库::`工程师`

资料描述

使用功能 rffilter 来创建巴特沃斯RF滤波器、切比雪夫RF滤波器或切比雪夫反向滤波器。 RF滤波器是一个双端口电路对象,可以包含作为电路元件。 有关设计的详细信息,请参阅滤波器定义参数和设计提示

您还可以变换对象 [医]过滤器 进入梯形LC滤波器使用的功能 [医]胆囊.

语法

函数调用

  • [参数:rffiltobj]=rffilter() -创建一个双端口过滤器,其属性默认设置。

  • [参数:rffiltobj]=rffilter(Name=Value) -设置由一个或多个名称值参数指定的属性。 未指定的属性保留其默认值。

争论

名称-值输入参数

将可选参数对指定为 名称=值,在哪里 姓名 -参数的名称,以及 价值 -适当的值。

例子: rffiltobj=rffilter(FilterType="切比雪夫") 创建一个双端口切比雪夫射频滤波器。 您可以指定多个名称-值对。

# filterType — 过滤器类型

+ "巴特沃斯" (默认)| "切比雪夫" | "InverseChebyshev"

Details

指定为的筛选器类型 "巴特沃斯", "切比雪夫""InverseChebyshev".

数据类型

字符串</无翻译>

# 响应类型 — 滤波器特性类型

+ "低通" (默认情况下)| "高通" | "带通" | "乐队"

Details

滤波器特性的类型,设为 "低通", "高通", "带通""乐队". 有关详细信息,请参阅频率特性

数据类型

字符串</无翻译>

# 实施 — 过滤器实现

+ "LC Tee" (默认情况下)| "LC Pi" | "传递函数"

Details

过滤器实现,指定为 "LC Tee", "LC Pi""传递函数".

依赖关系

对于类型过滤器 "InverseChebyshev" 您只能使用实现 "传递函数".

数据类型

字符串</无翻译>

# 过滤顺序 — 过滤顺序

+ 3 (默认情况下)| 标量,标量

Details

滤波器阶数,给定为实数有限非负整数标量。 在低通或高通滤波器中,顺序确定具有集中存储器量的元素的数量。 在带通或陷波滤波器中,具有集中存储器量的元件的数量是阶数的值的两倍。

物业 过滤顺序 它在筛选器设计中的"名称-值"类型的所有参数对中具有最高优先级。 为属性使用此属性集 [参数:UseFilterOrder],只读,值 真的.
数据类型

Int64</无翻译>

# 密码及频率 — 带宽频率

+ 标量,标量 | 向量资料

Details

的带宽频率,设置如下:

*低通和高通滤波器的hz标量。 *带通或陷波滤波器的以Hz为单位的双元矢量。

默认情况下,这些值为 1e9 用于低通滤波器, 2e9 对于高通滤波器, [2e9 3e9] 对于带通滤波器和 [1e9 4e9] 为陷波滤波器。

数据类型

漂浮64</无翻译>

# StopbandFrequency — 频率 的延迟带+ 标量,标量 | 向量资料

Details

延迟带的频率,设置如下:

*低通和高通滤波器的hz标量。 *带通或陷波滤波器的以Hz为单位的双元矢量。

默认情况下,这些值为 2e9 用于低通滤波器, 1e9 对于高通滤波器, [1.5e9 3.5e9] 用于带通滤波器和 [2.1e92.9e9] 于陷波滤波器。

数据类型

漂浮64</无翻译>

# 密码学 — 带宽衰减

+ 10*log10(2) (默认情况下)| 标量,标量

Details

带宽衰减,以dB为单位指定为标量。 对于带通滤波器,该值相等地应用于带宽的两个边缘。

数据类型

漂浮64</无翻译>

# StopbandAttenuation — 延迟带中的衰减

+ 40 (默认情况下)| 标量,标量

Details

延迟带中的衰减,以dB为单位设置为标量。 对于陷波滤波器,该值相等地应用于延迟带的两个边缘。

数据类型

漂浮64</无翻译>

# Zin — 源阻抗

+ 50 (默认情况下)| 标量,标量

Details

源的阻抗,以欧姆为单位的有限标量的正实部给出。

数据类型

漂浮64</无翻译>

# Zout — 负载阻抗

+ 50 (默认情况下)| 标量,标量

Details

负载阻抗,以欧姆为单位给出有限标量的正实部。

数据类型

漂浮64</无翻译>

# 姓名 — RF筛选器对象的名称

+ "过滤器" (默认情况下)|

Details

RF滤波器对象的名称,设置为字符串。 同一架构中的两个元素不能具有相同的名称。

数据类型

字符串</无翻译>

# 数字 — 港口数目

+ 2 (默认情况下)| 标量,标量

Details

端口数,设置为正标量。

此参数是只读的。
数据类型

Int64</无翻译>

# 终端机 — 终端名称

+ ("p1+","p2+","p1-","p2-") (默认情况下)| 字符串元组

Details

指定为字符串元组的终端名称 4 元素。

此参数是只读的。

# 设计数据 — 过滤器设计数据

+ 结构

Details

有关过滤器设计的数据,指定为结构。

此参数是只读的。
数据类型

结构体</无翻译>

# UseFilterOrder — 在设计过程中使用过滤器顺序

+ 真的 (默认情况下)| 错误

Details

在设计中使用滤波器顺序,定义为 真的错误.

此参数是只读的。
数据类型

布尔</无翻译>

输出参数

# *rffiltobj*是两个— 端口筛选器对象

+ 对象

Details

包含以下属性的双端口筛选器对象:

例子:

默认射频滤波器

Details

让我们创建并查看默认RF滤波器对象的属性。

using EngeeRF

rfobj = rffilter()

println("FilterType: ", rfobj.FilterType,
        "\nResponseType: ", rfobj.ResponseType,
        "\nZin: ", rfobj.Zin,
        "\nZout: ", rfobj.Zout,
        "\nFilterOrder: ", rfobj.FilterOrder,
        "\nPassbandFrequency: ", rfobj.PassbandFrequency,
        "\nPassbandAttenuation: ", rfobj.PassbandAttenuation,
        "\nImplementation: ", rfobj.Implementation,
        "\nUseFilterOrder: ", rfobj.UseFilterOrder,
        "\nDesignData: ", rfobj.DesignData,
        "\nName: ", rfobj.Name,
        "\nTerminals: ", rfobj.Terminals,
        "\nNumPorts: ", rfobj.NumPorts)
FilterType: Butterworth
ResponseType: Lowpass
Zin: 50.0 + 0.0im
Zout: 50.0 + 0.0im
FilterOrder: 3
PassbandFrequency: 1.0e9
PassbandAttenuation: 3.010299956639812
Implementation: LC Tee
UseFilterOrder: true
DesignData: EngeeRF.RFFilterDesignData("Butterworth", "Lowpass", "lowpasstee", 3, 1.0e9, nothing, 3.010299956639812, nothing, [7.957747154594765e-9, 7.957747154594765e-9], [6.3661977236758135e-12], nothing, nothing, nothing, nothing, nothing, nothing, nothing, nothing)
Name: Filter
Terminals: ("p1+", "p2+", "p1-", "p2-")
NumPorts: 2

考虑参数的一些属性的值 [参数:设计数据].

println("FilterType: ", rfobj.DesignData.FilterType,
        "\nResponseType: ", rfobj.DesignData.ResponseType,
        "\nTopology: ", rfobj.DesignData.Topology,
        "\nFilterOrder: ", rfobj.DesignData.FilterOrder,
        "\nPassbandFrequency: ", rfobj.DesignData.PassbandFrequency,
        "\nPassbandAttenuation: ", rfobj.DesignData.PassbandAttenuation,
        "\nInductors: ", rfobj.DesignData.Inductors,
        "\nCapacitors: ", rfobj.DesignData.Capacitors)
FilterType: Butterworth
ResponseType: Lowpass
Topology: lowpasstee
FilterOrder: 3
PassbandFrequency: 1.0e9
PassbandAttenuation: 3.010299956639812
Inductors: [7.957747154594765e-9, 7.957747154594765e-9]
Capacitors: [6.3661977236758135e-12]

S-Butterworth带通滤波器参数(LC Tee实现类型)

Details

创建名称为Butterworth带通滤波器对象 BFCG_162W 与带宽频率从 950 以前 2200 兆赫,延迟带从 770 以前 3000 MHz,带宽衰减 3.0 dB和延迟带中的衰减 40 dB,使用实现类型 "LC Tee". 频率下计算滤波器的S参数 2.1 千兆赫。

using EngeeRF

rfobj = rffilter(ResponseType = "Bandpass", Implementation = "LC Tee",
                 PassbandFrequency = [950e6, 2200e6],
                 StopbandFrequency = [770e6, 3000e6],
                 PassbandAttenuation = 3, StopbandAttenuation = 40)
rfobj.Name = "BFCG_162W"

println("FilterType: ", rfobj.FilterType,
        "\nResponseType: ", rfobj.ResponseType,
        "\nImplementation: ", rfobj.Implementation,
        "\nPassbandFrequency: ", rfobj.PassbandFrequency,
        "\nStopbandFrequency: ", rfobj.StopbandFrequency,
        "\nPassbandAttenuation: ", rfobj.PassbandAttenuation,
        "\nStopbandAttenuation: ", rfobj.StopbandAttenuation,
        "\nZin: ", rfobj.Zin,
        "\nZout: ", rfobj.Zout,
        "\nFilterOrder: ", rfobj.FilterOrder,
        "\nUseFilterOrder: ", rfobj.UseFilterOrder,
        "\nDesignData: ", rfobj.DesignData,
        "\nName: ", rfobj.Name)
FilterType: Butterworth
ResponseType: Bandpass
Implementation: LC Tee
PassbandFrequency: [9.5e8, 2.2e9]
StopbandFrequency: [7.7e8, 3.0e9]
PassbandAttenuation: 3.0
StopbandAttenuation: 40.0
Zin: 50.0 + 0.0im
Zout: 50.0 + 0.0im
FilterOrder: 3
UseFilterOrder: true
DesignData: EngeeRF.RFFilterDesignData("Butterworth", "Bandpass", "bandpasstee", 3, [9.5e8, 2.2e9], [7.7e8, 3.0e9], 3.0, 40.0, [6.366197723675813e-9, 2.3797090773309714e-9, 6.366197723675813e-9], [1.903767261864777e-12, 5.0929581789406516e-12, 1.903767261864777e-12], nothing, nothing, nothing, nothing, nothing, nothing, nothing, nothing)
Name: BFCG_162W

计算频率下的S参数 2.1 千兆赫。

s = sparameters(rfobj, [2.1e9])

println("Impedance: ", s.Impedance,
        "\nNumPorts: ", s.NumPorts,
        "\nFrequencies: ", s.Frequencies,
        "\nParameters: ", s.Parameters)
Impedance: 50.0
NumPorts: 2
Frequencies: [2.1e9]
Parameters: ComplexF64[-0.5036556283329914 + 0.26286600429645146im -0.3807662021320426 - 0.7295543647649324im; -0.38076620213204276 - 0.7295543647649329im -0.5036556283330005 + 0.2628660042964558im;;;]

创建对象 [医]胆囊 基于对象 [医]过滤器. 这个对象 [医]胆囊 它可以直接用于电路,也可以用于电感和电容值的参数分析。

l = lcladder(rfobj)

println("Name: ", l.Name,
        "\nTopology: ", l.Topology,
        "\nInductances: ", l.Inductances,
        "\nCapacitances: ", l.Capacitances)
Name: BFCG_162W
Topology: bandpasstee
Inductances: Union{Nothing, Float64}[6.366197723675813e-9, 2.3797090773309714e-9, 6.366197723675813e-9]
Capacitances: Union{Nothing, Float64}[1.903767261864777e-12, 5.0929581789406516e-12, 1.903767261864777e-12]

或者,为了从滤波器设施直接访问电感器和电容器,使用:

L = rfobj.DesignData.Inductors
C = rfobj.DesignData.Capacitors

低通切比雪夫滤波器群延迟

Details

让我们创建一个具有带宽的切比雪夫低通滤波器 2 千兆赫。 让我们将过滤器顺序设置为 5,以及实施 — "LC Pi".

using EngeeRF

rfobj = rffilter(FilterType = "Chebyshev", PassbandFrequency = 2e9,
                 FilterOrder = 5, Implementation = "LC Pi")

计算滤波器在频率处的群延迟 1.9 千兆赫。

freqs = [1.9e9, 1.9e9 + 1e3]
groupdelay(rfobj, freqs)
2-element Vector{Float64}:
 1.4402890343137618e-9
 1.4402890343137618e-9

此外

LC Tee和LC Pi拓扑的设计数据

Details

对于LC Tee或Pi拓扑,该属性 [参数:设计数据] 返回电感和电容的值。 此外, [参数:设计数据] 包括与特征类型相关的其他设计参数:

*低频/高频响应:滤波器阶数、带宽频率、带宽衰减。

*带通特性:滤波器阶数、带宽频率、带宽衰减、辅助参数(Wx)。

*延迟带特性:滤波器阶数、延迟带频率、带宽衰减、辅助参数(Wx)。

为了表征延迟带,Wx是对原型低通滤波器对应于指定延迟带损耗的第一频率的校正。 对于带通特性,Wx是带宽中衰减规范的修正,不等于 3 分贝。 有关详细信息,请参阅[1]

传递函数实现的设计数据

Details

要实现传递函数,属性 [参数:设计数据] 返回分解为S参数因子的多项式系数。 这些乘法器将复共轭项分组以保持准确性。 所有S参数都有一个共同的分母存在于属性中 设计数据。分母. S11、S22和S21(S21=S12)的分子项可以使用分子中存在的因式分解多项式计算 设计数据。数字11, 设计数据。数字22设计数据。数字21 相应地。

例如,考虑频率上的默认低通滤波器 1 千兆赫。 频率上的数据S21 1 该滤波器的GHz可以如下所示:

using EngeeRF
using Polynomials

r = rffilter(Implementation = "Transfer function")
f = 1e9
s = 1im * 2π * f

num21_1 = Polynomial(reverse(r.DesignData.Numerator21[1, :]))
num21_2 = Polynomial(reverse(r.DesignData.Numerator21[2, :]))
den1 = Polynomial(reverse(r.DesignData.Denominator[1, :]))
den2 = Polynomial(reverse(r.DesignData.Denominator[2, :]))

num21 = [num21_1(s), num21_2(s)]
den = [den1(s), den2(s)]

s21_1GHz = prod(num21 ./ den)
-0.5 - 0.5im

或者,要计算示例,可以使用函数 麻雀;麻雀.

using EngeeRF

S=sparameters(r,[1e9])
S.参数[2,1]
-0.49999999999999994 - 0.49999999999999994im

此外, [参数:设计数据] 包括与特征类型相关的其他设计参数:

*低频/高频响应:滤波器阶数,带宽频率,辅助参数(分子多项式21)。

+

对于巴特沃斯滤波器,带宽频率在 3 分贝。

*带通特性:滤波器阶数、带宽频率、辅助参数(Wx,分子多项式21)。

*延迟带特性:滤波器阶数、延迟带频率、辅助参数(Wx,分子多项式21)。

为了表征延迟带,Wx是对原型低通滤波器对应于指定延迟带损耗的第一频率的校正。 对于带通特性,Wx是带宽中衰减规范的修正,不等于 3 分贝。

一些额外的设计技巧:

"低通" "高通" "带通" "乐队"

"巴特沃斯"

秩序, ,辅助参数(分子多项式21)

秩序, ,辅助参数(分子多项式21,Wx

秩序, 、辅助参数(Wx)

"切比雪夫"

秩序, ,辅助参数(分子多项式21)

秩序, 、辅助参数(分子21的第四次方,Wx)

"InverseChebyshev"

秩序, 、辅助参数(Wx)

秩序,

频率特性

Details
参数的值 [参数:FilterType] 频率响应 指定名称

"低通"

filter ce 1 cn

-带宽频率

-延迟带的频率

-带宽衰减 @

-延迟带中的衰减 @

"高通"

filter ce 2 cn

"带通"

filter ce 3 cn

-带宽频率

-延迟带的频率

-在指定带宽频率下的带宽衰减

-在延迟带的指定频率下延迟带中的衰减

"乐队"

filter ce 4 cn

filter ce 5 cn

filter ce 6 cnfilter ce 7 cn

滤波器定义参数和设计提示

Details

该表显示了正确设计每个滤波器所需的所有参数。

"低通" "高通" "带通" "乐队"

"巴特沃斯"

秩序, ,

秩序, ,

秩序, ,

秩序, ,

, , ,

, , ,

, , ,

, , ,

"切比雪夫"

秩序, ,

秩序, ,

秩序, ,

秩序, , ,

, , ,

, , ,

, , ,

, , ,

"InverseChebyshev"

秩序, , ,

秩序, , ,

秩序, , ,

秩序, ,

, , ,

, , ,

, , ,

, , ,

秩序, ,

秩序, ,

秩序, ,

此表中使用了以下名称:

  • -带宽频率;

  • -带宽中的衰减/带宽中的不均匀性;

  • -延迟带的频率;

  • -延迟带中的衰减/延迟带中的不均匀性。

带宽或延迟中的不均匀性(纹波)分别被分析为带宽或延迟中的衰减。

文学作品

  1. 迈克尔G.埃利斯,SR。,电子滤波器分析和合成,诺伍德,MA:Artech House,1994。