AnyMath 文档

[医]过滤器

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

库::`工程师`

资料描述

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

您还可以变换对象 [参数:rffiltobj] 进入梯形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

设计巴特沃斯滤波器并确定滤波器阶数

Details

让我们设计一个具有带宽频率的低通巴特沃斯滤波器 3 kHz,延迟带的频率 7 kHz,带宽中的衰减 2 dB和延迟带中的衰减 60 分贝。 让我们显示此滤波器的顺序并确定带宽频率。 3.0103 分贝。

filter参数

Fp=3e3#带宽频率,Hz
Ap=2#带宽衰减,dB
Fs=7e3#延迟带频率,Hz
As=60#延迟带中的衰减,dB

启动过滤器

using EngeeRF

r = rffilter(FilterType = "Butterworth", ResponseType = "Lowpass",
             Implementation = "Transfer function",
             PassbandFrequency = Fp, PassbandAttenuation = Ap,
             StopbandFrequency = Fs, StopbandAttenuation = As)

设计过滤器的顺序

N = r.DesignData.FilterOrder
println("Calculated filter order is $N")
Calculated filter order is 9

频率在 3.0103 分贝

F_3dB = r.DesignData.PassbandFrequency / 1e3
println("Frequency at 3.0103 dB is $F_3dB kHz")
Frequency at 3.0103 dB is 3.0907326889546485 kHz

可视化幅度响应。

frequencies = range(0, 2*Fs, length=1001)
sparams = sparameters(r, frequencies)

s21 = sparams.Parameters[2, 1, :]
s21_dB = 20 * log10.(abs.(s21))

p = plot(frequencies ./ 1e3, s21_dB,
         xlabel="Frequency (kHz)",
         ylabel="Magnitude (dB)",
         title="s21 vs. Frequency", legend = false)

rffilter 1

设计切比雪夫滤波器并确定滤波器顺序

Details

让我们设计一个带通纹波的低通切比雪夫滤波器 0.1 dB,截止频率 1 rad/s和衰减 50 频率上的dB 1.1 glad/s.让我们显示这个过滤器的顺序[1]

filter参数

Fp=1/(2π)#带宽频率,Hz
Rp=0.1#带宽中的纹波,dB
Fs=1.1/(2π)#延迟带频率,Hz
As=50#延迟带中的衰减,dB

启动过滤器

using EngeeRF

r = rffilter(FilterType = "Chebyshev", ResponseType = "Lowpass",
             Implementation = "Transfer function",
             PassbandFrequency = Fp, PassbandAttenuation = Rp,
             StopbandFrequency = Fs, StopbandAttenuation = As)

设计过滤器的顺序

N = r.DesignData.FilterOrder
println("Calculated filter order is $N")
Calculated filter order is 19

偶数阶切比雪夫滤波器的频率响应

Details

让我们设计一个偶数阶切比雪夫滤波器并绘制其频率响应。

利用传递函数实现偶数阶切比雪夫滤波器的频率响应_

让我们设计一个具有指定参数的偶数阶切比雪夫滤波器。

Fp=3e9#带宽频率,Hz
Ap=10#带宽衰减,dB
Fs=7e9#延迟带频率,Hz
As=50#延迟带中的衰减,dB

using EngeeRF

r = rffilter(FilterType = "Chebyshev", ResponseType = "Lowpass",
             Implementation = "Transfer function",
             PassbandFrequency = Fp, PassbandAttenuation = Ap,
             StopbandFrequency = Fs, StopbandAttenuation = As)

让我们绘制偶数阶切比雪夫滤波器的频率响应。

frequencies = range(0, 7.5e9, length=1001)
sparams = sparameters(r, frequencies)

s21 = sparams.Parameters[2, 1, :]
s21_dB = 20 * log10.(abs.(s21))

p = plot(frequencies ./ 1e9, s21_dB,
         xlabel="Frequency (GHz)",
         ylabel="Magnitude (dB)",
         title="s21 vs. Frequency", legend = false)

我们可视化延迟带和带宽中的衰减。

plot!(p, [0, 7.5], [-r.PassbandAttenuation, -r.PassbandAttenuation],
      linestyle=:dash,
      label="Passband Attenuation")

plot!(p, [0, 7.5], [-r.StopbandAttenuation, -r.StopbandAttenuation],
      linestyle=:dash,
      label="Stopband Attenuation")

rffilter 2

使用物业 [参数:设计数据] 来检查过滤顺序。

N = r.DesignData.FilterOrder
println("Calculated filter order is $N")
Calculated filter order is 4

此外

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(实现="传递函数")
f=1e9
s=1im*2π*f

num21_1=多项式(reverse(r.DesignData.Numerator21[1,:]))
num21_2=多项式(reverse(r.DesignData.Numerator21[2,:]))
den1=多项式(reverse(r.DesignData.分母[1,:]))
den2=多项式(reverse(r.DesignData.分母[2,:]))

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

s21_1GHz=prod(num21./书房)
-0.5 - 0.5im

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

using EngeeRF

S = sparameters(r, [1e9])
S.Parameters[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*埃利斯,高级,_电子滤波器分析与合成,诺伍德,MA:Artech House,1994.