DifferentiatorFilter[data,ωc]
对数据数组应用截止频率为 ωc 的微分滤波器.
DifferentiatorFilter[data,ωc,n]
使用长度为 n 的滤波器核.
DifferentiatorFilter[data,ωc,n,wfun]
对滤波器核应用平滑窗 wfun.
DifferentiatorFilter
DifferentiatorFilter[data,ωc]
对数据数组应用截止频率为 ωc 的微分滤波器.
DifferentiatorFilter[data,ωc,n]
使用长度为 n 的滤波器核.
DifferentiatorFilter[data,ωc,n,wfun]
对滤波器核应用平滑窗 wfun.
更多信息和选项
- DifferentiatorFilter 是一个有限冲击响应 (FIR) 离散时间滤波器,通常用于近似采样数据的导数.
- data 可以采用以下形式:
-
list 任意维数的数值数组 tseries 暂态数据,如 TimeSeries 和 TemporalData image 任意 Image 或 Image3D 对象 audio Audio 或 Sound 对象 video Video 对象 - 当应用于图像和多维数组时,滤波器连续应用于每个维度,从第 1 层开始. 对第 i 维,DifferentiatorFilter[data,{ωc1,ωc2,…}] 使用频率 ωci.
- 截止频率为 ωc 的滤波降低了导数对信号噪声的敏感性,平滑量取决于截止频率 ωc 的值.
- 截止频率 ωc 应位于 0 和
之间. ωc 的值越小,平滑度越好. - DifferentiatorFilter[data,ωc] 使用适用于截止频率 ωc 和输入 data 的滤波器核长度和平滑窗.
- 典型的平滑窗 wfun 包括:
-
BlackmanWindow 使用 Blackman 窗平滑 DirichletWindow 不使用平滑 HammingWindow 使用 Hamming 窗平滑 {v1,v2,…} 使用值为 vi 的窗 f 通过在
和
之间采样 f 创建窗 - 可以给出以下选项:
-
Padding "Fixed" 要用的填充值 SampleRate Automatic 对输入假定的采样率 - 默认情况下,对于图像和数据,均有 SampleRate->1. 对于采样率为 r 的采样 sound 对象,使用 SampleRate->r.
- 当 SampleRate->r 时,截止频率 ωc 应位于 0 和 r×
之间.
范例
打开所有单元 关闭所有单元基本范例 (2)
范围 (10)
数据 (7)
data = BoxMatrix[5, {41}];
ListLinePlot[{data, DifferentiatorFilter[data, 1.]}, PlotRange -> All]data = Table[UnitBox[(n/7), (m/7)], {n, -7, 7}, {m, -7, 7}];
ListPlot3D[data]ListPlot3D[DifferentiatorFilter[data, 1.], PlotRange -> All]对 TimeSeries 进行滤波:
ts = TemporalData[TimeSeries, {{{0., -0.27267267057145633, -0.6672983789995302, -0.5338541947930846,
-0.6117404489279314, -0.6755527076595494, -0.02125421294486496, -0.10792797291843935,
-0.6138271235477938, -0.3248568606554575, -0.08843449054 ... 2053424, -0.49980440691873723, -0.5388679788215971,
-0.4101602764645551}}, {{0, 1., 0.01}}, 1, {"Continuous", 1}, {"Continuous", 1}, 1,
{ValueDimensions -> 1, ResamplingMethod -> {"Interpolation", InterpolationOrder -> 1}}}, False,
10.1];
filtered = DifferentiatorFilter[ts, Quantity[10, "Hertz"]];ListLinePlot[{ts, 5filtered}, PlotLegends -> {"original", "filtered"}, PlotRange -> All]a = AudioGenerator["Square"]DifferentiatorFilter[a, Quantity[15000, "Hertz"]]DifferentiatorFilter[Video["ExampleData/fish.mp4"], 3]200DifferentiatorFilter[[image], Pi]DifferentiatorFilter[{0, 0, 0, 1, 1, 1, 0, 0, 0}, Pi, 4]参数 (3)
a = \!\(\*AudioBox[""]\);DifferentiatorFilter[a, 10000 2 Pi] === DifferentiatorFilter[a, Quantity[10000*2*Pi, "Radians"/"Seconds"]] === DifferentiatorFilter[a, Quantity[10000, "Hertz"]]DifferentiatorFilter[{0., 0., 0., 0., 1., 1., 1., 1.}, Pi, 6]DifferentiatorFilter[{0., 0., 0., 0., 1., 1., 1., 1.}, Pi / 2, 6]DifferentiatorFilter[{0., 0., 0., 0., 1., 1., 1., 1.}, Pi, 6, BlackmanWindow]DifferentiatorFilter[{0., 0., 0., 0., 1., 1., 1., 1.}, Pi, 6, {1, 1, 1, 1, 1, 1}]DifferentiatorFilter[[image], {Pi / 3, Pi}, 20]//ImageAdjust选项 (4)
Padding (2)
DifferentiatorFilter[[image], Pi / 3, 21]//ImageAdjustDifferentiatorFilter[[image], Pi / 3, 21, Padding -> None]//ImageAdjustramp = Range[21] / 21. + RandomReal[.1, 21];
GraphicsRow@(ListLinePlot[{ramp, DifferentiatorFilter[ramp, Pi, 6, Padding -> #]}, ...]& /@ {"Fixed", "Periodic", 0})SampleRate (2)
DifferentiatorFilter[{0, 0, 0, 1, 1, 1, 0, 0, 0}, π / 2., 5]DifferentiatorFilter[{0, 0, 0, 1, 1, 1, 0, 0, 0}, 3 π / 2., 5, SampleRate -> 3]a = AudioGenerator[Sin[11025 2 π #^2]&];
sr = QuantityMagnitude@AudioSampleRate[a]DifferentiatorFilter[a, sr π / 2., 21]//Periodogram应用 (2)
DifferentiatorFilter[[image], Pi, 6]//ImageAdjustx = Table[TriangleWave[n / 32], {n, 0, 63}]//N;
y = DifferentiatorFilter[x, Pi, 6, Padding -> "Periodic"];GraphicsRow[{ListPlot[x, Filling -> 0, ImageSize -> Small], ListPlot[y, Filling -> 0, ImageSize -> Small]}]属性和关系 (7)
使用 LeastSquaresFilterKernel 和 Hamming 窗创建微分滤波器:
n = 5;
ω = 1.5;
win = Array[HammingWindow, n, {-1 / 2, 1 / 2}];
ker = win LeastSquaresFilterKernel[{"Differentiator", ω}, n]ListConvolve[ker, {0, 0, 0, 0, 1, 1, 1, 1}, Ceiling[n / 2], 0]与 DifferentiatorFilter 比较:
DifferentiatorFilter[{0, 0, 0, 0, 1, 1, 1, 1}, ω, n, win, Padding -> 0]h = DifferentiatorFilter[ArrayPad[{1.}, 10], Pi, 21]ListPlot[h, PlotRange -> All, Filling -> 0]Plot[Abs[ListFourierSequenceTransform[h, ω]], {ω, 0, π}]Plot[Evaluate@Abs[ListFourierSequenceTransform[DifferentiatorFilter[ArrayPad[{1.}, 10], Pi, 21, None], ω]], {ω, 0, π}]h = DifferentiatorFilter[ArrayPad[{1.}, 10], Pi, 20]ListPlot[h, PlotRange -> All, Filling -> 0]Plot[Abs[ListFourierSequenceTransform[h, ω]], {ω, 0, π}, PlotRange -> All]Plot[Evaluate@Abs[ListFourierSequenceTransform[DifferentiatorFilter[ArrayPad[{1.}, 10], Pi, 20, None], ω]], {ω, 0, π}]Manipulate[
ListLinePlot[Abs[Fourier[DifferentiatorFilter[ArrayPad[{1.}, 128], Pi, n], FourierParameters -> {1, -1}]][[ ;; 129]], ...], {{n, 21}, 3, 127, 2}]h = DifferentiatorFilter[ArrayPad[{1.}, 10], Pi / 2, 21]ListPlot[h, PlotRange -> All, Filling -> 0]Plot[Abs[ListFourierSequenceTransform[h, ω]], {ω, 0, π}]相关指南
-
▪
- 线性和非线性滤波 ▪
- 图像滤波和邻域处理 ▪
- 信号滤波与滤波器设计
文本
Wolfram Research (2012),DifferentiatorFilter,Wolfram 语言函数,https://reference.wolfram.com/language/ref/DifferentiatorFilter.html (更新于 2025 年).
CMS
Wolfram 语言. 2012. "DifferentiatorFilter." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2025. https://reference.wolfram.com/language/ref/DifferentiatorFilter.html.
APA
Wolfram 语言. (2012). DifferentiatorFilter. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/DifferentiatorFilter.html 年
BibTeX
@misc{reference.wolfram_2026_differentiatorfilter, author="Wolfram Research", title="{DifferentiatorFilter}", year="2025", howpublished="\url{https://reference.wolfram.com/language/ref/DifferentiatorFilter.html}", note=[Accessed: 16-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_differentiatorfilter, organization={Wolfram Research}, title={DifferentiatorFilter}, year={2025}, url={https://reference.wolfram.com/language/ref/DifferentiatorFilter.html}, note=[Accessed: 16-September-2026]}