[医]过滤器
创建巴特沃斯RF滤波器,切比雪夫RF滤波器和切比雪夫反向滤波器。
库::`工程师`
资料描述
使用功能 rffilter 来创建巴特沃斯RF滤波器、切比雪夫RF滤波器或切比雪夫反向滤波器。 射频滤波器是一个双端口电路对象,可以包括作为一个电路元件. 有关设计的详细信息,请参阅滤波器定义参数和设计提示。
您还可以变换对象 [参数:rffiltobj] 进入梯形LC滤波器使用的功能 [医]胆囊.
语法
函数调用
-
[参数:rffiltobj]=rffilter()-创建一个双端口过滤器,其属性默认设置。
-
[参数:rffiltobj]=rffilter(Name=Value)-设置由类型的一个或多个参数指定的属性 «名称-值». 未指定的属性保留其默认值。
争论
输入参数 «名称-值»
将可选参数对指定为 名称=值,在哪里 姓名 -参数的名称,以及 价值 -适当的值。
例子: rffiltobj=rffilter(FilterType="切比雪夫") 创建一个双端口切比雪夫射频滤波器。 您可以指定多个对 «名称-值».
# filterType — 过滤器类型
+
"巴特沃斯" (默认)| "切比雪夫" | "InverseChebyshev"
Details
指定为的筛选器类型 "巴特沃斯", "切比雪夫" 或 "InverseChebyshev".
| 数据类型 |
|
# 实施 — 过滤器实现
+
"LC Tee" (默认情况下)| "LC Pi" | "传递函数"
Details
过滤器实现,指定为 "LC Tee", "LC Pi" 或 "传递函数".
依赖关系
对于类型过滤器 "InverseChebyshev" 您只能使用实现 "传递函数".
| 数据类型 |
|
# 过滤顺序 — 过滤顺序
+
3 (默认情况下)| 标量,标量
Details
滤波器阶数,给定为实数有限非负整数标量。 在低通或高通滤波器中,顺序决定了集中反应元素的数量。 在带通或陷波滤波器中,集中反应元件的数量是阶数值的两倍。
物业 过滤顺序 在所有类型参数对中具有最高优先级。 «名称-值» 在过滤器设计中。 为属性使用此属性集 [参数:UseFilterOrder],只读,值 真的.
|
| 数据类型 |
|
# 密码及频率 — 带宽频率
+
标量,标量 | 向量资料
Details
的带宽频率,设置如下:
*低通和高通滤波器的hz标量。 *带通或陷波滤波器的以Hz为单位的双元矢量。
默认情况下,这些值为 1e9 用于低通滤波器, 2e9 对于高通滤波器, [2e9 3e9] 对于带通滤波器和 [1e9 4e9] 为陷波滤波器。
| 数据类型 |
|
#
StopbandFrequency —
频率
的延迟带+
标量,标量 | 向量资料
Details
延迟带的频率,设置如下:
*低通和高通滤波器的hz标量。 *带通或陷波滤波器的以Hz为单位的双元矢量。
默认情况下,这些值为 2e9 用于低通滤波器, 1e9 对于高通滤波器, [1.5e9 3.5e9] 用于带通滤波器和 [2.1e92.9e9] 于陷波滤波器。
| 数据类型 |
|
# 密码学 — 带宽衰减
+
10*log10(2) (默认情况下)| 标量,标量
Details
带宽衰减,以dB为单位指定为标量。 对于带通滤波器,该值相等地应用于带宽的两个边缘。
| 数据类型 |
|
# StopbandAttenuation — 延迟带中的衰减
+
40 (默认情况下)| 标量,标量
Details
延迟带中的衰减,以dB为单位设置为标量。 对于陷波滤波器,该值相等地应用于延迟带的两个边缘。
| 数据类型 |
|
# UseFilterOrder — 在设计过程中使用过滤器顺序
+
真的 (默认情况下)| 错误
Details
在设计中使用滤波器顺序,定义为 真的 或 错误.
| 此参数是只读的。 |
| 数据类型 |
|
输出参数
# *rffiltobj*是两个— 端口筛选器对象
+
对象
Details
包含以下属性的双端口筛选器对象:
-
[参数:FilterType]-过滤器的类型,例如"巴特沃斯"; -
[参数:响应类型]-滤波器特性,例如"低通"; -
[参数:Zin]-源阻抗; -
[参数:Zout]-负载阻抗; -
[参数:FilterOrder]-过滤顺序; -
[参数:PassbandFrequency]-带宽频率; -
[参数:StopbandFrequency]-延迟带的频率; -
[参数:StopbandAttenuation]-延迟带中的衰减; -
[参数:PassbandAttenuation]-带宽衰减; -
[参数:实现]-过滤器实现,例如"LC Tee"; -
[参数:UseFilterOrder]-在设计中使用滤波器顺序的标志; -
[参数:设计数据]-关于过滤器设计的信息:-
过滤类型; -
响应类型; -
拓扑学; -
过滤顺序; -
密码及频率; -
停止和频繁; -
[医]密码学; -
权宜之计; -
电感器; -
电容器; -
零21; -
电线杆; -
[医]辅助性; -
数字11; -
数字21; -
数字22; -
分母; -
辅助;
-
-
[参数:名称]-过滤器的名称,例如"过滤器"; -
港口-端口名称作为字符串元组; -
[参数:终端]-字符串元组形式的终端名称; -
父节点-以整数数组形式的父架构的节点,仅在将子架构添加到父架构后才显示; -
父母路径-父架构的完整路径作为字符串,仅在将子架构添加到父架构后才显示。; -
[参数:NumPorts]-端口数。
例子:
默认射频滤波器
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)
设计切比雪夫滤波器并确定滤波器顺序
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")
使用物业 [参数:设计数据] 来检查过滤顺序。
N = r.DesignData.FilterOrder
println("Calculated filter order is $N")
Calculated filter order is 4
此外
传递函数实现的设计数据
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) |
||
|
秩序, 、辅助参数(Wx) |
秩序, |
||
频率特性
Details
参数的值 [参数:FilterType] |
频率响应 | 指定名称 |
|---|---|---|
|
-带宽频率 -延迟带的频率 -带宽衰减 -延迟带中的衰减 |
|
|
||
|
-带宽频率 -延迟带的频率 -在指定带宽频率下的带宽衰减 -在延迟带的指定频率下延迟带中的衰减 |
|
|
滤波器定义参数和设计提示
Details
该表显示了正确设计每个滤波器所需的所有参数。
"低通" |
"高通" |
"带通" |
"乐队" |
|
|---|---|---|---|---|
|
秩序, , |
秩序, , |
秩序, , |
秩序, , |
, , , |
, , , |
, , , |
, , , |
|
|
秩序, , |
秩序, , |
秩序, , |
秩序, , , |
, , , |
, , , |
, , , |
, , , |
|
|
秩序, , , |
秩序, , , |
秩序, , , |
秩序, , |
, , , |
, , , |
, , , |
, , , |
|
秩序, , |
秩序, , |
秩序, , |
此表中使用了以下名称:
-
-带宽频率;
-
-带宽中的衰减/带宽中的不均匀性;
-
-延迟带的频率;
-
-延迟带中的衰减/延迟带中的不均匀性。
| 带宽或延迟中的不均匀性(纹波)分别被分析为带宽或延迟中的衰减。 |