LeastSquaresFilterKernel[{{ω1,…,ωk-1},{a1,…,ak}},n]
使用一个使用最小二乘法设计的长度为 n 的 k 个频带的有限脉冲响应 (FIR) 滤波器,给定指定频率 ωi 和幅值 ai.
LeastSquaresFilterKernel[{"type",spec},n]
使用全滤波器指标 {"type",spec}.
LeastSquaresFilterKernel
LeastSquaresFilterKernel[{{ω1,…,ωk-1},{a1,…,ak}},n]
使用一个使用最小二乘法设计的长度为 n 的 k 个频带的有限脉冲响应 (FIR) 滤波器,给定指定频率 ωi 和幅值 ai.
LeastSquaresFilterKernel[{"type",spec},n]
使用全滤波器指标 {"type",spec}.
更多信息和选项
- LeastSquaresFilterKernel 对具有最小均方差的 FIR 滤波器的脉冲响应系数,返回长度为 n 的数值列表.
- 滤波器的脉冲响应使用离散时间傅里叶逆变换计算.
- 在 LeastSquaresFilterKernel[{"type",spec},n] 中,滤波器指标可以为下面任何之一:
-

{"Lowpass",ωc} 截止频率为 ωc 的低通滤波器 
{"Highpass",ωc} 截止频率为 ωc 的高通滤波器 
{"Bandpass",{ωc1,ωc2}} 通带从 ωc1 到 ωc2 的带通滤波器 
{"Bandpass",{{ω,q}}} 中心频率为 ω 和质量因子为 q 的带通滤波器 
{"Bandstop",{ωc1,ωc2}} 阻带从 ωc1 到 ωc2 的带阻滤波器 
{"Bandstop",{{ω,q}}} 中心频率为 ω 和质量因子为 q 的带阻滤波器 
{"Multiband",{ω1,…,ωk-1},{a1,…,ak}} 有 k 个频带的多带滤波器规范 
{"Differentiator",ωc} 截止频率为 ωc 的微分滤波器 
{"Hilbert",ωc} 截止频率为 ωc 的 Hilbert 滤波器 - 如果忽略 "type",则假定采用 "Multiband".
- 频率应该以升序给出,以满足 0≤ω1<ω2<…<ωk-1≤π.
- 幅值 a1 对应于从 0 到 ω1 的频带,而幅值 ak 对应于从 ωk-1 到 π 的频带.
- 幅值应该是非负的. 通常情况下,数值 ai=0 指定一个阻带,而数值 ai=1 指定一个通带.
- 质量因子 q 定义为
,其中
是带通或者带阻滤波器的中心频率. q 的值越大,给出的滤波器越窄. - 可将由 LeastSquaresFilterKernel 返回的核 ker 用于 ListConvolve[ker,data] 中,来对 data 进行滤波.
- 可给出以下选项:
-
WorkingPrecision MachinePrecision 内部计算使用的精度
范例
打开所有单元 关闭所有单元基本范例 (2)
a = LeastSquaresFilterKernel[{"Lowpass", 1.2}, 15]Plot[{Abs[ListFourierSequenceTransform[a, x]], Piecewise[{{1, 0 ≤ x ≤ 1.2}}]}, {x, 0, π}, PlotRange -> All, Exclusions -> False]BodePlot[ListZTransform[a, z], {0, π}, SamplingPeriod -> 1, PlotLayout -> "Magnitude", ScalingFunctions -> {"Linear", Automatic}, GridLines -> Automatic]spec = {{.5, 1, 2, 2.8}, {1, 0, 1, 0, 1}};
h = LeastSquaresFilterKernel[spec, 31]Plot[Evaluate[{Abs[ListFourierSequenceTransform[h, x]], Piecewise[{#[[1]], #[[2, 1]] ≤ x ≤ #[[2, 2]]}& /@ Thread[{spec[[2]], Partition[Sort[Join[spec[[1]], {0., N[π]}]], 2, 1]}]]}], {x, 0, π}, Exclusions -> None, PlotRange -> All]范围 (6)
a = LeastSquaresFilterKernel[{"Highpass", 1.2}, 15]Plot[{Abs[ListFourierSequenceTransform[a, x]], UnitStep[x - 1.2]}, {x, 0, π}, PlotRange -> All, Exclusions -> None]ω1 = 1.;ω2 = 2.;
a = LeastSquaresFilterKernel[{"Bandpass", {ω1, ω2}}, 15]Plot[{Abs[ListFourierSequenceTransform[a, x]], UnitBox[x - 1.5]}, {x, 0, π}, PlotRange -> All, Exclusions -> None]ω0 = Sqrt[ω1 ω2];q = ω0 / (ω2 - ω1);
a = LeastSquaresFilterKernel[{"Bandpass", {{ω0, q}}}, 15];
Plot[{Abs[ListFourierSequenceTransform[a, x]], UnitBox[x - 1.5]}, {x, 0, π}, PlotRange -> All, Exclusions -> None]ω1 = 1.;ω2 = 2.;
a = LeastSquaresFilterKernel[{"Bandstop", {ω1, ω2}}, 21]Plot[{Abs[ListFourierSequenceTransform[a, x]], 1 - UnitBox[x - 1.5]}, {x, 0, π}, PlotRange -> All, Exclusions -> None]ω0 = Sqrt[ω1 ω2];q = ω0 / (ω2 - ω1);
a = LeastSquaresFilterKernel[{"Bandstop", {{ω0, q}}}, 21];
Plot[{Abs[ListFourierSequenceTransform[a, x]], 1 - UnitBox[x - 1.5]}, {x, 0, π}, PlotRange -> All, Exclusions -> None]a = LeastSquaresFilterKernel[{"Differentiator", 2}, 21]Plot[{Abs[ListFourierSequenceTransform[a, x]], x UnitStep[2 - x]}, {x, 0, π}, PlotRange -> All, Exclusions -> None]a = LeastSquaresFilterKernel[{"Hilbert", π}, 21]Plot[Abs[ListFourierSequenceTransform[a, x]], {x, 0, π}, PlotRange -> All]Plot[Im@ListFourierSequenceTransform[a, x, -10], {x, -π, π}, PlotRange -> All]a = Chop@LeastSquaresFilterKernel[{"Lowpass", π / 2}, 15]Plot[Abs[ListFourierSequenceTransform[a, x]], {x, 0, π}, PlotRange -> All, Epilog -> {Red, Dashed, Line[{{π / 2, 0}, {π / 2, 1}}]}]b = Table[(-1)^i a[[i]], {i, 1, 15}]Plot[Evaluate[Abs[ListFourierSequenceTransform[#, x]]& /@ {a, b}], {x, 0, π}, PlotRange -> All, Epilog -> {Red, Dashed, Line[{{π / 2, 0}, {π / 2, 1}}]}]推广和延伸 (1)
n = 31;
fir = LeastSquaresFilterKernel[{"Lowpass", Pi / 2}, n];
fir2 = Array[BlackmanWindow, n, {-1 / 2, 1 / 2}] fir;BodePlot[{ListZTransform[fir, z], ListZTransform[fir2, z]}, {0, π}, SamplingPeriod -> 1, PlotLayout -> "Magnitude", GridLines -> Automatic, ScalingFunctions -> {"Linear", Automatic}]应用 (4)
创建一个截止频率为
且长度 n=15 的低通 FIR 滤波器:
n = 15;
h = LeastSquaresFilterKernel[{"Lowpass", π / 5}, n]w = Array[BlackmanWindow, n, {-1 / 2, 1 / 2}];
fir = h w;fir / Total[fir]Plot[Evaluate[20Log10[Abs@ListFourierSequenceTransform[#, ω]]& /@ {h, %}], {ω, 0, π}, PlotRange -> {5, -125}, GridLines -> Automatic]h2 = LeastSquaresFilterKernel[{"Lowpass", π / 5}, 3 n];
w2 = Array[BlackmanWindow, 3n, {-1 / 2, 1 / 2}];
fir = (h2 w2/Total[h2 w2]);
Plot[Evaluate[20Log10[Abs@ListFourierSequenceTransform[#, ω]]& /@ {h, fir}], {ω, 0, π}, PlotRange -> {5, -125}, GridLines -> Automatic]a = Mean[AudioGenerator[{"Sin", #}, 0.5, SampleRate -> 8000]& /@ {697, 1209}] + 0.05AudioGenerator["White", 0.5, SampleRate -> 8000]Periodogram[a, PlotRange -> All]创建 8000 赫兹处采样的声音的截止频率为953Hz的窗口低通滤波器内核:
fir = LeastSquaresFilterKernel[{"Lowpass", 953 2π / 8000}, 71];
ker = Array[BlackmanWindow, Length[fir], {-.5, .5}]fir;b = Audio[{ListConvolve[ker, AudioData[a][[1]], 36, 0]}, SampleRate -> 8000]Periodogram[b, PlotRange -> All]filters = LeastSquaresFilterKernel[{"Lowpass", π / #}, 31]& /@ {2, 3, 5};Plot[Evaluate[Abs[ListFourierSequenceTransform[#, x]]& /@ filters], {x, 0, π}, PlotLegends -> {2, 3, 5}]h = LeastSquaresFilterKernel[{"Differentiator", π}, 8]ImageConvolve[[image], {h}]属性和关系 (3)
LeastSquaresFilterKernel[{{1.2, 2}, {1, 0, 1}}, 31] === LeastSquaresFilterKernel[{"Multiband", {1.2, 2}, {1, 0, 1}}, 31]firs = LeastSquaresFilterKernel[{"Bandpass", {{1.0, #}}}, 33]& /@ {2 / 3, 1, 2};
BodePlot[ListZTransform[#, z]& /@ firs, {0, π}, SamplingPeriod -> 1, PlotLayout -> "Magnitude", ScalingFunctions -> {"Linear", Automatic}, GridLines -> Automatic, PlotLegends -> {"*q* = FractionBox[2, 3]", "*q* = 1", "*q* = 2"}]在长度为
的半带滤波器中,位置
处的系数是零(
是正整数):
n = 21;
a = LeastSquaresFilterKernel[{"Lowpass", (π/2)}, n]//ChopListPlot[a, AxesOrigin -> {(n + 1/2), 0}, Ticks -> None, PlotRange -> All, Filling -> 0]k = 3;
a = LeastSquaresFilterKernel[{"Lowpass", (π/k)}, 21]//ChopListPlot[a, AxesOrigin -> {(n + 1/2), 0}, Ticks -> None, PlotRange -> All, Filling -> 0]互动范例 (1)
With[{chirp = Table[Cos[200. π t + 2400. π t ^ 2], {t, 0., 2., 1 / 8000.}],
w = Array[KaiserWindow, 91, {-1 / 2, 1 / 2}]},
Manipulate[audio = Audio[ListConvolve[w * LeastSquaresFilterKernel[{Range[1, 4] π / 5, {a1, a2, a3, a4, a5}}, 91], chirp, 1, 0], SampleRate -> 8000];
Column[{Periodogram[audio, 4000, PlotRange -> {-60, 20}, ImageSize -> 240], audio}, Alignment -> Center]
, {{a1, 1}, 0.01, 10}, {{a2, 0.01}, 0.01, 10}, {{a3, 0.01}, 0.01, 10}, {{a4, 0.01}, 0.01, 10}, {{a5, 1}, 0.01, 10}, ContinuousAction -> True]]相关指南
-
▪
- 信号滤波与滤波器设计 ▪
- 信号处理
文本
Wolfram Research (2012),LeastSquaresFilterKernel,Wolfram 语言函数,https://reference.wolfram.com/language/ref/LeastSquaresFilterKernel.html (更新于 2015 年).
CMS
Wolfram 语言. 2012. "LeastSquaresFilterKernel." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2015. https://reference.wolfram.com/language/ref/LeastSquaresFilterKernel.html.
APA
Wolfram 语言. (2012). LeastSquaresFilterKernel. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/LeastSquaresFilterKernel.html 年
BibTeX
@misc{reference.wolfram_2026_leastsquaresfilterkernel, author="Wolfram Research", title="{LeastSquaresFilterKernel}", year="2015", howpublished="\url{https://reference.wolfram.com/language/ref/LeastSquaresFilterKernel.html}", note=[Accessed: 17-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_leastsquaresfilterkernel, organization={Wolfram Research}, title={LeastSquaresFilterKernel}, year={2015}, url={https://reference.wolfram.com/language/ref/LeastSquaresFilterKernel.html}, note=[Accessed: 17-June-2026]}