EquirippleFilterKernel[{{{ωL1,ωR1},{ωL2,ωR2},…},{a1,a2,…}},n]
创建具有等波纹幅值响应的长度为 n 的有限脉冲响应(FIR)滤波器,给出具有指定左和右带边频率 {ωLi,ωRi} 和幅值 ai.
EquirippleFilterKernel[{{{ωL1,ωR1},{ωL2,ωR2},…},{a1,a2,…},{w1,…}},n]
对每个频带使用相对权值 wi.
EquirippleFilterKernel[{"type",{{{ωL1,ωR1},…},…}},n]
创建一个具有指定 "type" 的滤波器.
EquirippleFilterKernel
EquirippleFilterKernel[{{{ωL1,ωR1},{ωL2,ωR2},…},{a1,a2,…}},n]
创建具有等波纹幅值响应的长度为 n 的有限脉冲响应(FIR)滤波器,给出具有指定左和右带边频率 {ωLi,ωRi} 和幅值 ai.
EquirippleFilterKernel[{{{ωL1,ωR1},{ωL2,ωR2},…},{a1,a2,…},{w1,…}},n]
对每个频带使用相对权值 wi.
EquirippleFilterKernel[{"type",{{{ωL1,ωR1},…},…}},n]
创建一个具有指定 "type" 的滤波器.
更多信息和选项
- EquirippleFilterKernel 返回 FIR 滤波器的脉冲响应系数的长度为 n 的数值列表,该滤波器具有最小车比雪夫(minimax)误差.
- 可能的滤波器指定类型是:
-
"Multiband" 多个传输频带和抑止频带指定(默认) "Differentiator" 微分滤波器 "Hilbert" Hilbert 滤波器 - 频率应该以升序给出,满足 0≤ωL1<ωR1<ωL2<ωR2<…<ωRk≤π.
- 频带、幅值和权值列表的长度应该相同.
- 幅值应该是非负的. 通常,数值 ai=0 指定一个抑止频带,而数值 ai=1 指定一个传输频带.
- 由 EquirippleFilterKernel 返回的核 ker 可以用于 ListConvolve[ker,data] 中,以将滤波器应用于data.
- 可以给出下列选项:
-
"GridDensity" 8 频率域采样密度因子 WorkingPrecision MachinePrecision 内部计算所使用的精度
范例
打开所有单元 关闭所有单元基本范例 (1)
a = EquirippleFilterKernel[{{{0, 1}, {1.4, Pi}}, {1, 0}}, 15]Plot[Abs[ListFourierSequenceTransform[a, x]], {x, 0, Pi}]BodePlot[ListZTransform[a, z], {0, π}, SamplingPeriod -> 1, PlotLayout -> "Magnitude", ScalingFunctions -> {"Linear", Automatic}, GridLines -> Automatic, ImageSize -> Small]范围 (6)
a = EquirippleFilterKernel[{{{0, (π/2) - 0.5}, {(π/2) + 0.5, π}}, {0, 1}}, 15]BodePlot[ListZTransform[a, z], {0, π}, SamplingPeriod -> 1, PlotLayout -> "Magnitude", ScalingFunctions -> {"Linear", Automatic}, GridLines -> Automatic]a = EquirippleFilterKernel[{{{0, 1}, {1.2, 2.2}, {2.4, Pi}}, {0, 1, 0}}, 35];
BodePlot[ListZTransform[a, z], {0, π}, SamplingPeriod -> 1, PlotLayout -> "Magnitude", ScalingFunctions -> {"Linear", Automatic}, GridLines -> Automatic]a = EquirippleFilterKernel[{{{0, 0.05}, {0.1, 0.15}, {0.18, 0.25}, {0.3, 0.36}, {0.41, 0.5}} 2 π, {0., 1., 0., 1., 0.}, {10., 1., 3., 1., 20.}}, 55];BodePlot[ListZTransform[a, z], {0, π}, SamplingPeriod -> 1, PlotLayout -> "Magnitude", ScalingFunctions -> {"Linear", Automatic}, GridLines -> Automatic]a = EquirippleFilterKernel[{"Differentiator", {{0, π}}, {1}}, 22];Plot[Abs[ListFourierSequenceTransform[a, x]], {x, 0, π}, PlotRange -> {0, All}]a = EquirippleFilterKernel[{"Hilbert", {{0.1, 0.9 }π}, {1}}, 21];
Plot[Abs[ListFourierSequenceTransform[a, x]], {x, 0, Pi}, PlotRange -> {0, All}]Plot[Arg[ListFourierSequenceTransform[a, x, -10]], {x, -π, π}, PlotRange -> All]a = EquirippleFilterKernel[{{{0, (π/2) - 0.5}, {(π/2) + 0.5, π}}, {1, 0}}, 15]Plot[Abs[ListFourierSequenceTransform[a, x]], {x, 0, π}, PlotRange -> All, Epilog -> {Red, Dashed, Line[{{π / 2, 0}, {π / 2, 1}}]}]b = Table[(-1)^ia[[i]], {i, 15}]Plot[Evaluate[Abs[ListFourierSequenceTransform[#, x]]& /@ {a, b}], {x, 0, π}, PlotRange -> All, Epilog -> {Red, Dashed, Line[{{π / 2, 0}, {π / 2, 1}}]}]选项 (2)
GridDensity (1)
AbsoluteTiming[EquirippleFilterKernel[{{{0, .2}, {.25, .5}}2π, {1, 0}}, 100, "GridDensity" -> #];]& /@ {2, 16}filters = EquirippleFilterKernel[{{{0, .2}, {.25, .5}}2π, {1, 0}}, 100, "GridDensity" -> #]& /@ {2, 16};
Plot[Evaluate[20Log10[Abs[ListFourierSequenceTransform[#, x]]]], {x, 0, Pi}, PlotRange -> {-60, -120}, Exclusions -> False]& /@ filtersWorkingPrecision (1)
默认情况下使用 MachinePrecision:
h = EquirippleFilterKernel[{{{0, 1 / 3}, {2 / 3, 1}}Pi, {1, 0}}, 4]g = EquirippleFilterKernel[{{{0, 1 / 3}, {2 / 3, 1}}Pi, {1, 0}}, 4, WorkingPrecision -> 1]Plot[Evaluate[Abs[ListFourierSequenceTransform[#, ω]]& /@ {h, g}], {ω, 0, π}]EquirippleFilterKernel[{{{0, 1 / 3}, {2 / 3, 1}}Pi, {1, 0}}, 4, WorkingPrecision -> ∞]//Simplify应用 (4)
x = N@Table[Sin[(2π/256) 6 n], {n, 0, 255}];h = EquirippleFilterKernel[{"Differentiator", {{0, 0.9π}}, {1}}, 21];
y = 2Rescale[ListConvolve[h, x, 11]] - 1;ListLinePlot[{x, y}]h = EquirippleFilterKernel[{"Differentiator", {{0, 0.9π}}, {1}}, 7]r = 5ImageConvolve[[image], {h}]//Absc = 5ImageConvolve[[image], List /@ h]//AbsSqrt[r^2 + c^2]x = N@Table[Sin[(2π/256) 6 n], {n, 0, 255}];h = EquirippleFilterKernel[{"Hilbert", {{0.1, 0.9}} π, {1}}, 21];
y = ListConvolve[h, x, 11];x.y//Chopfilters = EquirippleFilterKernel[{{{0, π / # - 0.1}, {π / # + 0.1, Pi}}, {1, 0}}, 31]& /@ {2, 3, 5};Plot[Evaluate[Abs[ListFourierSequenceTransform[#, x]]& /@ filters], {x, 0, π}, PlotLegends -> {2, 3, 5}]属性和关系 (2)
比较滤波器的等波纹(蓝色)和最小方差(红色)实现的抑止频带的频率响应行为:
f1 = EquirippleFilterKernel[{{{0, 1}, {1.4, Pi}}, {1, 0}}, 35];f2 = LeastSquaresFilterKernel[{{1.2}, {1, 0}}, 35];BodePlot[Evaluate[{ListZTransform[f1, z], ListZTransform[f2, z]}], {1.4, π}, SamplingPeriod -> 1, PlotRange -> {-60, 0}, PlotLayout -> "Magnitude", ScalingFunctions -> {"Linear", Automatic}, GridLines -> Automatic]在长度为
的半带滤波器中,位置
(
为正整数)处的系数具有零值:
a = Chop[EquirippleFilterKernel[{{{0, (π/2) - 0.5}, {(π/2) + 0.5, π}}, {1, 0}}, 15], 0.0001]ListPlot[a, Axes -> {True, False}, Ticks -> False, PlotRange -> All, Filling -> 0]a = Chop[EquirippleFilterKernel[{{{0, (π/3) - 0.5}, {(π/3) + 0.5, π}}, {1, 0}}, 15], 0.0001]ListPlot[a, Axes -> {True, False}, Ticks -> False, PlotRange -> All, Filling -> 0]可能存在的问题 (4)
EquirippleFilterKernel[{{{0, 1}, {2, Pi}}, {1, 1}}, 21]EquirippleFilterKernel[{{{0, 1}, {1, Pi}}, {1, 0}}, 21]EquirippleFilterKernel[{{{1, 1.05}, {1.1, 1.2}}, {1, 0}}, 15]h = EquirippleFilterKernel[{"Hilbert", {{0.05, 0.4}}2Pi, {1}}, 31];
Plot[Abs[ListFourierSequenceTransform[h, ω]], {ω, 0, Pi}, PlotRange -> {0, All}, Exclusions -> False]h = EquirippleFilterKernel[{{{0., 0.5}, {1., 1.5}, {2.5, π}}, {0, 1, 0}}, 31];
Plot[Abs[ListFourierSequenceTransform[h, ω]], {ω, 0, Pi}, PlotRange -> {0, All}, Exclusions -> False]相关指南
文本
Wolfram Research (2012),EquirippleFilterKernel,Wolfram 语言函数,https://reference.wolfram.com/language/ref/EquirippleFilterKernel.html.
CMS
Wolfram 语言. 2012. "EquirippleFilterKernel." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/EquirippleFilterKernel.html.
APA
Wolfram 语言. (2012). EquirippleFilterKernel. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/EquirippleFilterKernel.html 年
BibTeX
@misc{reference.wolfram_2026_equiripplefilterkernel, author="Wolfram Research", title="{EquirippleFilterKernel}", year="2012", howpublished="\url{https://reference.wolfram.com/language/ref/EquirippleFilterKernel.html}", note=[Accessed: 13-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_equiripplefilterkernel, organization={Wolfram Research}, title={EquirippleFilterKernel}, year={2012}, url={https://reference.wolfram.com/language/ref/EquirippleFilterKernel.html}, note=[Accessed: 13-September-2026]}