creates a lowpass Chebyshev type 2 filter of order n.
Chebyshev2FilterModel[{n,ωc}]
uses the cutoff frequency ωc.
Chebyshev2FilterModel[{"type",spec}]
uses the full filter specification {"type",spec}.
Chebyshev2FilterModel[{"type",spec},var]
expresses the model in terms of the variable var.
Chebyshev2FilterModel
creates a lowpass Chebyshev type 2 filter of order n.
Chebyshev2FilterModel[{n,ωc}]
uses the cutoff frequency ωc.
Chebyshev2FilterModel[{"type",spec}]
uses the full filter specification {"type",spec}.
Chebyshev2FilterModel[{"type",spec},var]
expresses the model in terms of the variable var.
Details
- Chebyshev2FilterModel returns the filter as a TransferFunctionModel.
- Chebyshev2FilterModel[{n,ω}] returns a lowpass filter with attenuation of
(approximately 3 dB) at frequency ω. - Chebyshev2FilterModel[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 respectively absolute values of passband and stopband attenuations.
- Given a gain fraction
, the attenuation is
.
Examples
open all close allBasic Examples (2)
A third-order Chebyshev type 2 filter model:
tf = Chebyshev2FilterModel[3]Express the filter model in terms of variable
:
tf = Chebyshev2FilterModel[3, s]Bode plot of the modeled filter:
BodePlot[tf, GridLines -> Automatic, PlotLayout -> "Magnitude"]A lowpass Chebyshev type 2 filter using the full specification:
tf = Chebyshev2FilterModel[{"Lowpass", {1., 2.}, {1., 20.}}, s]//ChopMagnitude 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:
Chebyshev2FilterModel[{2, ω}, s]//N//ChopExact computation of the model:
Chebyshev2FilterModel[{2, 1}, s]Computation of the model with precision 24:
Chebyshev2FilterModel[{2, N[1, 24]}, s]Create a highpass Chebyshev type 2 filter:
BodePlot[Chebyshev2FilterModel[{"Highpass", {1., 2.}, {20., 1.}}], GridLines -> Automatic, PlotLayout -> "Magnitude"]Create a bandpass Chebyshev type 2 filter:
BodePlot[Chebyshev2FilterModel[{"Bandpass", {1., 10., 100., 1000.}, {20., 1.}}], GridLines -> Automatic, PlotLayout -> "Magnitude"]Create a bandstop Chebyshev type 2 filter:
BodePlot[Chebyshev2FilterModel[{"Bandstop", {1., 10., 100., 1000.}, {1, 20}}], GridLines -> Automatic, PlotLayout -> "Magnitude"]Applications (5)
Create a lowpass Chebyshev type 2 filter:
tf = Chebyshev2FilterModel[{"Lowpass", {1., 2.}, {1, 40}}, s];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}];Chebyshev type 2 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 Chebyshev type 2 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 Chebyshev 2 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 Chebyshev 1 transfer function:
tf = Chebyshev2FilterModel[{"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 21 FIR approximation of the discrete-time Chebyshev 2 IIR filter:
OutputResponse[dtf, KroneckerDelta[n], {n, 0, 20}]//ChopListPlot[%, PlotRange -> All, Filling -> 0]Smooth financial data using an FIR approximation of a Chebyshev filter:
data = Transpose[FinancialData["GE", {"Jan. 1, 2012", "Jan. 1, 2013"}]["Path"]];
fir = OutputResponse[ToDiscreteTimeModel[Chebyshev2FilterModel[{3, 0.5}], 1], KroneckerDelta[n], {n, 0, 40}]//Chop//Flatten;
DateListPlot[{Transpose[data], Transpose[{data[[1]], -ListConvolve[fir, data[[2]], 4]}]}, PlotRange -> All, PlotLegends -> {"original", "smoothed"}]Filter an image using a lowpass Chebyshev type 2 filter:
h = ToDiscreteTimeModel[Chebyshev2FilterModel[3], 1];
RecurrenceFilter[h, [image]]Filter an image using a highpass Chebyshev type 2 filter:
h = ToDiscreteTimeModel[Chebyshev2FilterModel[{"Highpass", {.5, 1}, {20, 1}}], 1];
RecurrenceFilter[h, [image]]Properties & Relations (5)
Compare Chebyshev type 1 and type 2 lowpass filters:
t1 = Chebyshev1FilterModel[{"Lowpass", {1., 2.}, {1., 20.}}]t2 = Chebyshev2FilterModel[{"Lowpass", {1., 2.}, {1., 20.}}]Plot[{Abs[t1[I * ω]], Abs[t2[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}}]}]Extract the order of the Chebyshev type 2 polynomial:
SystemsModelOrder[StateSpaceModel[Chebyshev2FilterModel[{"Lowpass", {1., 2.}, {1., 20.}}]]]Find the poles and zeros of a Chebyshev type 2 filter:
tfm = Chebyshev2FilterModel[11];{poles, zeros} = Through[{TransferFunctionPoles, TransferFunctionZeros}[tfm]]Plot poles and zeros of the Chebyshev filter:
PoleZeroPlot[tfm]Implement a lowpass digital Chebyshev type 2 filter:
dtfm = ToDiscreteTimeModel[Chebyshev2FilterModel[11], 1]Plot poles and zeros of the digital Chebyshev type 2 filter:
PoleZeroPlot[dtfm]Convert a lowpass filter to high pass:
lo = Chebyshev2FilterModel[3];
hi = TransferFunctionTransform[(1 / #&), lo]Plot[{Abs[lo[I w]], Abs[hi[I w]]}, {w, 0, 3}, PlotRange -> All]Related Guides
History
Text
Wolfram Research (2012), Chebyshev2FilterModel, Wolfram Language function, https://reference.wolfram.com/language/ref/Chebyshev2FilterModel.html.
CMS
Wolfram Language. 2012. "Chebyshev2FilterModel." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/Chebyshev2FilterModel.html.
APA
Wolfram Language. (2012). Chebyshev2FilterModel. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/Chebyshev2FilterModel.html
BibTeX
@misc{reference.wolfram_2026_chebyshev2filtermodel, author="Wolfram Research", title="{Chebyshev2FilterModel}", year="2012", howpublished="\url{https://reference.wolfram.com/language/ref/Chebyshev2FilterModel.html}", note=[Accessed: 13-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_chebyshev2filtermodel, organization={Wolfram Research}, title={Chebyshev2FilterModel}, year={2012}, url={https://reference.wolfram.com/language/ref/Chebyshev2FilterModel.html}, note=[Accessed: 13-June-2026]}