Get Lapalce transform from filter specifications

Hello,
Does exist a function that accept as input filter specification:
  • filter type: 'lowpass", "highpass"
  • passband cut-off frequency and attenuation
  • stopband cut-off frequency and attenuation
and outout Laplace coefficient of synthesized filter ?
Thanks in advance.
Pavel.

 采纳的回答

Not that I am aware of, however it would be relatively straightforward to create it —
Rp = 1;
Rs = 50;
[b,a] = ellip(5, Rp, Rs, 0.5, 's')
b = 1×6
0 0.0094 0.0000 0.0159 0.0000 0.0058
a = 1×6
1.0000 0.4637 0.4472 0.1339 0.0446 0.0058
H = tf(b,a) % Control System Toolbox
H = 0.009404 s^4 + 3.469e-19 s^3 + 0.01589 s^2 + 6.362e-19 s + 0.005787 ------------------------------------------------------------------- s^5 + 0.4637 s^4 + 0.4472 s^3 + 0.1339 s^2 + 0.04457 s + 0.005787 Continuous-time transfer function.
syms s
digits(5)
H = vpa(poly2sym(b,s)) / vpa(poly2sym(a,s)) % Symbolic Math Toolbox
H = 
Experiment to get the result you want.
.

4 个评论

Thanks,
Does exist the similar approach for "Buttheworth", "Chebyshev", "Bessel".
And does exist an option that allow instead of specifying order, specify two cut-off frequencies and two attenuations ?
Any filter design that can produce transfer function outputs should work with my code.
To specify more options and parameters, see the documentation for the relevant filter design functions.
Also consider using the designfilt function to create the filters using more specifications, and export the transfer function output.
Unless I misunderstood designfilt function, it seems that it's for digital filters, isn't it ?
For me the coefficients [a, b] it's Ok, I don't need Control/Symbolic toolboxes. My question was rather on another format of ellips function (as well as other approximations, e.g. "Buttherworth", "Bessel", etc) that allow design e.g. high-pass filter using 4 parameters, I mentionned Fs, Rs, Fp, Rp ... and not specifying filter order !
It does, because most of the MATLAB filter functions design digital filters. You can use the inverse of the bilinear function (or the d2c function) to convert them to continuous time filters.
EDIT — (6 Oct 2022 at 21:46)
With respect to the order, all filters must have some sort of order defined. In MATLAB, this is done in a separate function, for example ellipord, buttord, and others for other filter types. The order is a function of the poles and zeros, and those are functions of the filter parameters that deifine the transition regions and passband and stopband attenuation, among others.

请先登录,再进行评论。

更多回答(0 个)

类别

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by