designs a lowpass elliptic filter of order n.
EllipticFilterModel[{n,ωc}]
uses the cutoff frequency ωc.
EllipticFilterModel[{"type",spec}]
designs an elliptic filter of the specified type "type", using the spec.
EllipticFilterModel[{"type",spec},var]
expresses the model in terms of the variable var.
EllipticFilterModel
designs a lowpass elliptic filter of order n.
EllipticFilterModel[{n,ωc}]
uses the cutoff frequency ωc.
EllipticFilterModel[{"type",spec}]
designs an elliptic filter of the specified type "type", using the spec.
EllipticFilterModel[{"type",spec},var]
expresses the model in terms of the variable var.
Details
- EllipticFilterModel returns the designed filter as a TransferFunctionModel.
- EllipticFilterModel[{n,ω}] returns a lowpass filter with attenuation of
(approximately 3 dB) at frequency ω. - EllipticFilterModel[n] uses the cutoff frequency of 1.
- Filter specification {"type",spec} can be any of the following:
-

{"Lowpass",{ωp,ωs},{ap,as}} lowpass filter using passband and stopband frequencies and attenuations 
{"Highpass",{ωs,ωp},{as,ap}} highpass filter 
{"Bandpass",{ωs1,ωp1,ωp2,ωs2},{as,ap}} bandpass filter 
{"Bandstop",{ωp1,ωs1,ωs2,ωp2},{ap,as}} bandstop filter - Frequency values should be given in an ascending order.
- Values ap and as are absolute values of passband and stopband attenuations, respectively.
- Given a gain fraction
, the attenuation is
.
Examples
open all close allBasic Examples (2)
A third-order elliptic filter model with cutoff frequency at
:
tf = EllipticFilterModel[3]//ChopExpress the filter model in terms of variable
:
tf = EllipticFilterModel[3, s]//ChopBodePlot[tf, GridLines -> Automatic, PlotLayout -> "Magnitude"]A lowpass elliptic filter using the full specification:
tf = EllipticFilterModel[{"Lowpass", {1., 2.}, {1., 20.}}, s]Magnitude response of the filter showing the ideal filter characteristics:
Plot[Abs[tf[I * ω]], {ω, 0, 3}, PlotRange -> All, Epilog -> {Pink, Dashed, Line[{{0, 0.89}, {1, 0.89}, {1, 0.1}}], Line[{{2., 0.89}, {2., 0.1}, {3., 0.1}}]}]Scope (5)
A symbolic representation of an order 2 lowpass filter:
EllipticFilterModel[{2, ω}, s]//N//ChopExact computation of the model:
EllipticFilterModel[{2, 1}, s]Computation of the model with precision 24:
EllipticFilterModel[{2, N[1, 24]}, s]Create a lowpass filter model with a cutoff frequency of 10:
BodePlot[EllipticFilterModel[{2, 10.}], GridLines -> Automatic, PlotLayout -> "Magnitude"]Create a highpass elliptic filter:
BodePlot[EllipticFilterModel[{"Highpass", {1., 10.}, {20., 1.}}], {.1, 100}, GridLines -> Automatic, PlotLayout -> "Magnitude"]Create a bandpass elliptic filter:
tf = EllipticFilterModel[{"Bandpass", {0.1, 1., 10., 100.}, {20, 1}}];
BodePlot[tf, {0.1, 100}, GridLines -> Automatic, PlotLayout -> "Magnitude"]Create a bandstop elliptic filter:
tf = EllipticFilterModel[{"Bandstop", {0.1, 1., 10., 100.}, {1, 20}}];
BodePlot[tf, {0.1, 100}, GridLines -> Automatic, PlotLayout -> "Magnitude"]Applications (5)
Create a lowpass elliptic filter:
tf = EllipticFilterModel[{"Lowpass", {1., 2.}, {1, 40}}];Filter out high-frequency noise from a sinusoidal signal:
ω = 1 / 5;input = (Sin[ω t] + 1 / 2 Sin[25ω t]) UnitStep[t];
response1 = OutputResponse[tf, input, {t, 0, 100}];Elliptic filter phase shifts the response by Arg[tf[ω ]], where ω is the frequency of the input sinusoid:
Plot[{input, response1}, {t, 20, 100}]delay = Arg[tf[I ω]] / ω//First//First;
Plot[Evaluate[Flatten[{input, response1 /. t -> (t - delay)}]], {t, 20, 100}]Create a highpass elliptic filter from the lowpass prototype:
tf2 = TransferFunctionTransform[1 / #&, tf];Filter out low-frequency sinusoid from the input:
Plot[Evaluate[Flatten[{input, OutputResponse[tf2, input, {t, 0, 100}]}]], {t, 20, 100}]Design a digital lowpass filter using the elliptic approximation that satisfies the following passband and stopband frequencies and attenuations:
Subscript[ω, p] = 0.4 π;Subscript[ω, s] = 0.6π;
Subscript[a, p] = 1;Subscript[a, s] = 20;Obtain the equivalent analog frequencies assuming a sampling period of 1:
{Subscript[Ω, p] = 2 Tan[(0.4π/2)], Subscript[Ω, s] = 2 Tan[(0.6π/2)]}Compute the analog elliptic filter transfer function:
tf = EllipticFilterModel[{"Lowpass", {Subscript[Ω, p], Subscript[Ω, s]}, {Subscript[a, p], Subscript[a, s]}}, s]Convert to discrete-time model:
dtf = ToDiscreteTimeModel[tf, 1, z]//ChopBodePlot[dtf, {0.1 π, π}, PlotLayout -> "Magnitude", GridLines -> {{Subscript[ω, p], Subscript[ω, s]}, {10^-Subscript[a, p] / 20, 10^-Subscript[a, s] / 20}}, ScalingFunctions -> {"Linear", "Absolute"}, PlotRange -> All]Create a length 31 FIR approximation of the discrete-time elliptic IIR filter:
OutputResponse[dtf, KroneckerDelta[n], {n, 0, 30}]//ChopListPlot[%, PlotRange -> All, Filling -> 0]Smooth financial data using an FIR approximation of an elliptic filter:
data = Transpose[FinancialData["GE", {"Jan. 1, 2012", "Jan. 1, 2013"}]["Path"]];
fir = OutputResponse[ToDiscreteTimeModel[EllipticFilterModel[{3, 0.66}], 1], KroneckerDelta[n], {n, 0, 100}]//Chop//Flatten;
DateListPlot[{Transpose[data], Transpose[{data[[1]], -ListConvolve[fir, data[[2]], 4]}]}, PlotRange -> All, PlotLegends -> {"original", "smoothed"}]Filter an image using a lowpass elliptic filter:
h = ToDiscreteTimeModel[EllipticFilterModel[{"Lowpass", {1., 2.}, {1., 20.}}], 1];
RecurrenceFilter[h, [image]]Filter an image using a highpass elliptic filter:
h = ToDiscreteTimeModel[EllipticFilterModel[{"Highpass", {.5, 1.}, {20., 1.}}], 1];
RecurrenceFilter[h, [image]]Properties & Relations (3)
Extract the order of the elliptic filter:
SystemsModelOrder[StateSpaceModel[EllipticFilterModel[{"Highpass", {1, 1.2}, {20, 3}}]]]Extract the poles and zeros of an elliptic filter:
tf = EllipticFilterModel[7];TransferFunctionPoles[tf]//ChopTransferFunctionZeros[tf]//ChopConvert a lowpass filter to highpass:
lo = EllipticFilterModel[{3, .5}];
hi = TransferFunctionTransform[(1 / #&), lo]//ChopPlot[{Abs[lo[I w]], Abs[hi[I w]]}, {w, 0, 3}, PlotRange -> All]Related Guides
History
Text
Wolfram Research (2012), EllipticFilterModel, Wolfram Language function, https://reference.wolfram.com/language/ref/EllipticFilterModel.html.
CMS
Wolfram Language. 2012. "EllipticFilterModel." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/EllipticFilterModel.html.
APA
Wolfram Language. (2012). EllipticFilterModel. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/EllipticFilterModel.html
BibTeX
@misc{reference.wolfram_2026_ellipticfiltermodel, author="Wolfram Research", title="{EllipticFilterModel}", year="2012", howpublished="\url{https://reference.wolfram.com/language/ref/EllipticFilterModel.html}", note=[Accessed: 13-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_ellipticfiltermodel, organization={Wolfram Research}, title={EllipticFilterModel}, year={2012}, url={https://reference.wolfram.com/language/ref/EllipticFilterModel.html}, note=[Accessed: 13-June-2026]}