LowpassFilter[data,ωc]
カットオフ周波数 ωcのローパスフィルタをデータ配列に適用する.
LowpassFilter[data,ωc,n]
長さ n のフィルタカーネルを使う.
LowpassFilter[data,ωc,n,wfun]
平滑化窓 wfun をフィルタカーネルに適用する.
LowpassFilter
LowpassFilter[data,ωc]
カットオフ周波数 ωcのローパスフィルタをデータ配列に適用する.
LowpassFilter[data,ωc,n]
長さ n のフィルタカーネルを使う.
LowpassFilter[data,ωc,n,wfun]
平滑化窓 wfun をフィルタカーネルに適用する.
詳細とオプション
- ローパスフィルタは,通常,高周波数のコンテンツをデータから減らすことによるデータの平滑化やノイズ除去に使われる.
- LowpassFilterは,窓メソッドで作られた有限インパルス応答(FIR)カーネルを持つデジタル信号をたたみ込む.
- data は次のいずれでもよい.
-
list 任意階数の数値配列 tseries TimeSeriesやTemporalData等の時間データ image 任意のImageオブジェクトまたはImage3Dオブジェクト audio AudioオブジェクトまたはSoundオブジェクト video Videoオブジェクト - カットオフ周波数が小さいとより滑らかになることが多い.カーネルが長いほど周波数がよりよく弁別できる. »
- LowpassFilter[data,ωc]はカットオフ周波数 ωcと入力 data に適したフィルタカーネル長と平滑化窓を使う.
- よく使われる平滑化窓 wfun
-
BlackmanWindow Blackman窓で平滑化する DirichletWindow 平滑化は行わない HammingWindow ハミング窓で平滑化する(デフォルト) {v1,v2,…} 値 viの窓を使う f
から
の範囲で f をサンプリングすることで窓を作る - 画像や多次元配列に適用された場合,フィルタリングはレベル1から始めて各次元に連続的に適用される.LowpassFilter[data,{ωc1,ωc2,…}]は
次元で周波数 ωci を使う. - 使用可能なオプション
-
Padding "Fixed" 使用する充填値 SampleRate Automatic 入力に想定されるサンプルレート - デフォルトで,リストと同様画像にもSampleRate->1が想定される.音声信号と時系列については,サンプルレートは入力データから抽出されるか計算されるかのいずれかである.
- SampleRatesr の場合,カットオフ周波数 ωcは 0から
まででなければならない. »
例題
すべて開く すべて閉じる例 (3)
data = Table[SquareWave[i / 100], {i, 225}] + RandomReal[{-0.1, 0.1}, 225];
GraphicsRow[ListLinePlot /@ {data, LowpassFilter[data, 0.5]}]LowpassFilter[\!\(\*AudioBox[""]\), Quantity[1000, "Hertz"]]LowpassFilter[[image], 0.5, 15]//ImageAdjustスコープ (14)
データ (9)
data = BoxMatrix[5, {41}];
ListLinePlot[{data, LowpassFilter[data, 0.5, 15]}]data = Table[UnitBox[(n/7), (m/7)], {n, -7, 7}, {m, -7, 7}];
ListPlot3D[data]LowpassFilter[data, 0.5, 15]//ListPlot3DTimeSeriesにフィルタをかける:
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 = LowpassFilter[ts, Quantity[10, "Hertz"]];ListLinePlot[{ts, filtered}, PlotLegends -> {"original data", "filtered"}]三角波のAudioオブジェクトを平滑化する:
a = AudioGenerator[{"Triangle", 440}]AudioPlot[a, PlotRange -> {{0, 0.01}, All}]低いカットオフ周波数を使ってほとんどの信号高調波を削除する:
AudioPlot[LowpassFilter[a, Quantity[500, "Hertz"]], PlotRange -> {{0, 0.01}, All}]デュアルトーン多重周波数(DTMF)信号のSoundオブジェクトにローパスフィルタをかける:
s = Sound[SampledSoundList[Table[Sin[2 π 697 t] + Sin[2 π 1209 t], {t, 0., 0.3, 1 / 8000.}], 8000]]2つのダイアルトーンの中間のカットオフ周波数,長さ99のフィルタ,Blackman窓を使う:
LowpassFilter[s, Quantity[953, "Hertz"], 99, BlackmanWindow]LowpassFilter[[image], 0.5]LowpassFilter[Video["ExampleData/fish.mp4"], .5]LowpassFilter[[image], 0.5]LowpassFilter[{0, 0, 0, 1, 1, 1, 0, 0, 0}, Pi / 2, 3]パラメータ (5)
数値カットオフ周波数は1秒あたりのラジアン単位の量として解釈される:
a = \!\(\*AudioBox[""]\);LowpassFilter[a, 2000 π] === LowpassFilter[a, Quantity[2000*Pi, "Radians"/"Seconds"]] === LowpassFilter[a, Quantity[1000, "Hertz"]]
のカットオフ周波数を使ってホワイトノイズ信号にフィルタをかける:
noise = AudioGenerator["White", 0.2];
Periodogram[noise]Periodogram[LowpassFilter[noise, Quantity[5000, "Hertz"]]]Periodogram[LowpassFilter[noise, Quantity[10000, "Hertz"]]]デフォルトで,フィルタの長さとその周波数弁別はカットオフ周波数に依存する:
noise = AudioGenerator["White", 0.2];
Periodogram[LowpassFilter[noise, Quantity[2000, "Hertz"]]]カットオフ周波数を高くすると,より短いフィルタカーネルでより広い遷移帯域となり,周波数識別は劣化する:
Periodogram[LowpassFilter[noise, Quantity[5000, "Hertz"]]]Periodogram[LowpassFilter[noise, Quantity[5000, "Hertz"], 55]]a = AudioGenerator[Sin[11025 2 π #^2]&];
Periodogram[LowpassFilter[a, Quantity[10000, "Hertz"], 33, #]& /@ {DirichletWindow, HammingWindow, BlackmanWindow}, PlotLegends -> {"Dirichlet", "Hamming", "Blackman"}]a = AudioGenerator[Sin[11025 2 π #^2]&];
n = 33;
Periodogram[MapThread[LowpassFilter[a, Quantity[10000, "Hertz"], #1, #2]&, {{n, 2n, 3n}, {DirichletWindow, HammingWindow, BlackmanWindow}}], PlotLegends -> {"Dirichlet", "Hamming", "Blackman"}]調整可能なカイザー(Kaiser)窓を使って減衰の量を変える:
Periodogram[Table[LowpassFilter[a, Quantity[10000, "Hertz"], 33, KaiserWindow[#, b]&], {b, {3, 5, 7}}], PlotLegends -> {3, 5, 7}]Periodogram[LowpassFilter[a, Quantity[10000, "Hertz"], 33, ConstantArray[1, {33}]]]LowpassFilter[[image], {.5, 1.5}]オプション (4)
Padding (2)
LowpassFilter[[image], 0.2, Padding -> #]& /@ {Automatic, None}ramp = Range[21] / 21. + RandomReal[.1, 21];
GraphicsRow@(ListLinePlot[{ramp, LowpassFilter[ramp, 0.5, Padding -> #]}, ...]& /@ {"Fixed", "Periodic", 0})SampleRate (2)
標準化されたサンプルレートの
を仮定して,長さ5のローパスハーフバンドフィルタを使う:
LowpassFilter[{0, 0, 0, 0, 0, 1, 1, 1, 1, 1}, π / 2., 5]LowpassFilter[{0, 0, 0, 0, 0, 1, 1, 1, 1, 1}, 3 π / 2., 5, SampleRate -> 3]ハーフバンドローパスフィルタを適用してレート
でサンプルされた音声にフィルタをかける:
noise = AudioGenerator["White", 0.2];
sr = QuantityMagnitude@AudioSampleRate[noise]LowpassFilter[noise, sr π / 2.]//Periodogramアプリケーション (6)
カットオフ周波数1000Hzを使って音声のノイズを削減する:
input = ExampleData[{"Audio", "Apollo11ReturnSafely"}];
Spectrogram[input]LowpassFilter[input, Quantity[1000, "Hertz"]]//SpectrogramLowpassFilterを使って音声オブジェクトがあまり不快ではなくなるようにする:
cello = \!\(\*AudioBox[""]\);LowpassFilter[cello, Quantity[800, "Hertz"]]現代の88鍵のピアノでは,55番目の鍵盤(C5)の基本周波数はおよそ523Hzである.次の音声クリップでLowpassFilterを使ってこの鍵盤の基本周波数を残し,すべてのハーモニックスを削除する:
key55 = \!\(\*AudioBox[""]\);カットオフ周波数が基本周波数(523Hz)と最初のハーモニックの1046Hzの中間の,長さ59のフィルタを使う:
f = 1.5 523;
res = LowpassFilter[key55, 2 π f, 59]Periodogram[{key55, res}, PlotRange -> All, GridLines -> All, PlotLegends -> {"original", "filtered"}, Epilog -> {Red, InfiniteLine[{{f, 0}, {f, 1}}]}]image = [image];
LowpassFilter[image, .5]LowpassFilter[[image], 2]i = [image];2i - LowpassFilter[i, .5]特性と関係 (8)
LowpassFilter[{0, 0, 0, 0, 0, 1, 1, 1, 1, 1}, 0]π 以上のカットオフ周波数を使ってオールパスフィルタを作る:
LowpassFilter[{0, 0, 0, 0, 0, 1, 1, 1, 1, 1}, π]LeastSquaresFilterKernelとハミング窓を使ってローパスフィルタを作る:
n = 5;
ω = 1.;
win = Array[HammingWindow, n, {-1 / 2, 1 / 2}];
ker = Normalize[win LeastSquaresFilterKernel[{"Lowpass", ω}, n], Total]ListConvolve[ker, {0, 0, 0, 0, 0, 1, 1, 1, 1, 1}, Ceiling[n / 2], 0]LowpassFilterの結果と比較する:
LowpassFilter[{0, 0, 0, 0, 0, 1, 1, 1, 1, 1}, ω, n, win, Padding -> 0]h = LowpassFilter[ArrayPad[{1}, 10], π / 2., 21]ListPlot[h, PlotRange -> All, Filling -> 0]Plot[Abs[ListFourierSequenceTransform[h, ω]], {ω, 0, π}]平滑化窓なしでの長さ21のハーフバンドローパスフィルタのインパルス応答:
h = LowpassFilter[ArrayPad[{1}, 10], π / 2., 21, None]ListPlot[h, PlotRange -> All, Filling -> 0]Plot[Abs[ListFourierSequenceTransform[h, ω]], {ω, 0, π}]h = LowpassFilter[ArrayPad[{1}, 10], π / 2., 20, None]ListPlot[h, PlotRange -> All, Filling -> 0]Plot[Abs[ListFourierSequenceTransform[h, ω]], {ω, 0, π}]Manipulate[
ListLinePlot[Abs[Fourier[LowpassFilter[ArrayPad[{1.}, 128], Pi / 2, n, DirichletWindow], FourierParameters -> {1, -1}]][[ ;; 129]], ...], {{n, 21}, 3, 63, 1}]インパルス応答の長さは,フィルタの帯域幅が減少するにつれて増加する:
Manipulate[ListPlot[DeleteCases[LowpassFilter[ArrayPad[{1.}, 65], ω, Padding -> 0], 0.], Filling -> 0, Axes -> {True, False}, Ticks -> None], {{ω, 1., "SubscriptBox[ω, c]"}, 0.125, 1.0}]考えられる問題 (1)
関連するガイド
-
▪
- 線形・非線形フィルタ ▪
- サウンドと音声 ▪
- 画像のフィルタリングと近傍処理 ▪
- 音声処理 ▪
- 信号処理 ▪
- 信号フィルタリングとフィルタ設計 ▪
- 科学的データ解析 ▪
- 時系列の処理 ▪
- 動画編集 ▪
- 音声計算 ▪
- 事象系列の処理 ▪
- 動画計算機能の更新履歴
テキスト
Wolfram Research (2012), LowpassFilter, Wolfram言語関数, https://reference.wolfram.com/language/ref/LowpassFilter.html (2025年に更新).
CMS
Wolfram Language. 2012. "LowpassFilter." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2025. https://reference.wolfram.com/language/ref/LowpassFilter.html.
APA
Wolfram Language. (2012). LowpassFilter. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/LowpassFilter.html
BibTeX
@misc{reference.wolfram_2026_lowpassfilter, author="Wolfram Research", title="{LowpassFilter}", year="2025", howpublished="\url{https://reference.wolfram.com/language/ref/LowpassFilter.html}", note=[Accessed: 02-November-2026]}
BibLaTeX
@online{reference.wolfram_2026_lowpassfilter, organization={Wolfram Research}, title={LowpassFilter}, year={2025}, url={https://reference.wolfram.com/language/ref/LowpassFilter.html}, note=[Accessed: 02-November-2026]}